atlas-react-widget 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js ADDED
@@ -0,0 +1,97 @@
1
+ (function(n1,a1){typeof exports=="object"&&typeof module<"u"?a1(exports,require("react")):typeof define=="function"&&define.amd?define(["exports","react"],a1):(n1=typeof globalThis<"u"?globalThis:n1||self,a1(n1.AtlasReactWidget={},n1.React))})(this,function(n1,a1){"use strict";var K0=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Qs(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function Bb(e){if(e.__esModule)return e;var t=e.default;if(typeof t=="function"){var n=function a(){return this instanceof a?Reflect.construct(t,arguments,this.constructor):t.apply(this,arguments)};n.prototype=t.prototype}else n={};return Object.defineProperty(n,"__esModule",{value:!0}),Object.keys(e).forEach(function(a){var s=Object.getOwnPropertyDescriptor(e,a);Object.defineProperty(n,a,s.get?s:{enumerable:!0,get:function(){return e[a]}})}),n}var ei={exports:{}},Dn={};/**
2
+ * @license React
3
+ * react-jsx-runtime.production.js
4
+ *
5
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
6
+ *
7
+ * This source code is licensed under the MIT license found in the
8
+ * LICENSE file in the root directory of this source tree.
9
+ */var Nb;function jm(){if(Nb)return Dn;Nb=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.fragment");function n(a,s,i){var f=null;if(i!==void 0&&(f=""+i),s.key!==void 0&&(f=""+s.key),"key"in s){i={};for(var d in s)d!=="key"&&(i[d]=s[d])}else i=s;return s=i.ref,{$$typeof:e,type:a,key:f,ref:s!==void 0?s:null,props:i}}return Dn.Fragment=t,Dn.jsx=n,Dn.jsxs=n,Dn}var kn={};/**
10
+ * @license React
11
+ * react-jsx-runtime.development.js
12
+ *
13
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
14
+ *
15
+ * This source code is licensed under the MIT license found in the
16
+ * LICENSE file in the root directory of this source tree.
17
+ */var Db;function Vm(){return Db||(Db=1,process.env.NODE_ENV!=="production"&&function(){function e(P){if(P==null)return null;if(typeof P=="function")return P.$$typeof===e0?null:P.displayName||P.name||null;if(typeof P=="string")return P;switch(P){case T:return"Fragment";case S:return"Profiler";case C:return"StrictMode";case $:return"Suspense";case L:return"SuspenseList";case q:return"Activity"}if(typeof P=="object")switch(typeof P.tag=="number"&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),P.$$typeof){case x:return"Portal";case A:return(P.displayName||"Context")+".Provider";case H:return(P._context.displayName||"Context")+".Consumer";case E:var V=P.render;return P=P.displayName,P||(P=V.displayName||V.name||"",P=P!==""?"ForwardRef("+P+")":"ForwardRef"),P;case R:return V=P.displayName||null,V!==null?V:e(P.type)||"Memo";case D:V=P._payload,P=P._init;try{return e(P(V))}catch{}}return null}function t(P){return""+P}function n(P){try{t(P);var V=!1}catch{V=!0}if(V){V=console;var a0=V.error,o0=typeof Symbol=="function"&&Symbol.toStringTag&&P[Symbol.toStringTag]||P.constructor.name||"Object";return a0.call(V,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",o0),t(P)}}function a(P){if(P===T)return"<>";if(typeof P=="object"&&P!==null&&P.$$typeof===D)return"<...>";try{var V=e(P);return V?"<"+V+">":"<...>"}catch{return"<...>"}}function s(){var P=z.A;return P===null?null:P.getOwner()}function i(){return Error("react-stack-top-frame")}function f(P){if(K.call(P,"key")){var V=Object.getOwnPropertyDescriptor(P,"key").get;if(V&&V.isReactWarning)return!1}return P.key!==void 0}function d(P,V){function a0(){_||(_=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",V))}a0.isReactWarning=!0,Object.defineProperty(P,"key",{get:a0,configurable:!0})}function b(){var P=e(this.type);return M[P]||(M[P]=!0,console.error("Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.")),P=this.props.ref,P!==void 0?P:null}function y(P,V,a0,o0,y0,s0,A0,V0){return a0=s0.ref,P={$$typeof:h,type:P,key:V,props:s0,_owner:y0},(a0!==void 0?a0:null)!==null?Object.defineProperty(P,"ref",{enumerable:!1,get:b}):Object.defineProperty(P,"ref",{enumerable:!1,value:null}),P._store={},Object.defineProperty(P._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(P,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(P,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:A0}),Object.defineProperty(P,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:V0}),Object.freeze&&(Object.freeze(P.props),Object.freeze(P)),P}function u(P,V,a0,o0,y0,s0,A0,V0){var $0=V.children;if($0!==void 0)if(o0)if(W($0)){for(o0=0;o0<$0.length;o0++)p($0[o0]);Object.freeze&&Object.freeze($0)}else console.error("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else p($0);if(K.call(V,"key")){$0=e(P);var N0=Object.keys(V).filter(function(Ve){return Ve!=="key"});o0=0<N0.length?"{key: someKey, "+N0.join(": ..., ")+": ...}":"{key: someKey}",U[$0+o0]||(N0=0<N0.length?"{"+N0.join(": ..., ")+": ...}":"{}",console.error(`A props object containing a "key" prop is being spread into JSX:
18
+ let props = %s;
19
+ <%s {...props} />
20
+ React keys must be passed directly to JSX without using spread:
21
+ let props = %s;
22
+ <%s key={someKey} {...props} />`,o0,$0,N0,$0),U[$0+o0]=!0)}if($0=null,a0!==void 0&&(n(a0),$0=""+a0),f(V)&&(n(V.key),$0=""+V.key),"key"in V){a0={};for(var fe in V)fe!=="key"&&(a0[fe]=V[fe])}else a0=V;return $0&&d(a0,typeof P=="function"?P.displayName||P.name||"Unknown":P),y(P,$0,s0,y0,s(),a0,A0,V0)}function p(P){typeof P=="object"&&P!==null&&P.$$typeof===h&&P._store&&(P._store.validated=1)}var m=a1,h=Symbol.for("react.transitional.element"),x=Symbol.for("react.portal"),T=Symbol.for("react.fragment"),C=Symbol.for("react.strict_mode"),S=Symbol.for("react.profiler"),H=Symbol.for("react.consumer"),A=Symbol.for("react.context"),E=Symbol.for("react.forward_ref"),$=Symbol.for("react.suspense"),L=Symbol.for("react.suspense_list"),R=Symbol.for("react.memo"),D=Symbol.for("react.lazy"),q=Symbol.for("react.activity"),e0=Symbol.for("react.client.reference"),z=m.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,K=Object.prototype.hasOwnProperty,W=Array.isArray,Z=console.createTask?console.createTask:function(){return null};m={react_stack_bottom_frame:function(P){return P()}};var _,M={},k=m.react_stack_bottom_frame.bind(m,i)(),B=Z(a(i)),U={};kn.Fragment=T,kn.jsx=function(P,V,a0,o0,y0){var s0=1e4>z.recentlyCreatedOwnerStacks++;return u(P,V,a0,!1,o0,y0,s0?Error("react-stack-top-frame"):k,s0?Z(a(P)):B)},kn.jsxs=function(P,V,a0,o0,y0){var s0=1e4>z.recentlyCreatedOwnerStacks++;return u(P,V,a0,!0,o0,y0,s0?Error("react-stack-top-frame"):k,s0?Z(a(P)):B)}}()),kn}process.env.NODE_ENV==="production"?ei.exports=jm():ei.exports=Vm();var i0=ei.exports;const qm="1.1.0";let Ke=class $b extends Error{constructor(t,n={}){var f;const a=n.cause instanceof $b?n.cause.details:(f=n.cause)!=null&&f.message?n.cause.message:n.details,s=n.cause instanceof $b&&n.cause.docsPath||n.docsPath,i=[t||"An error occurred.","",...n.metaMessages?[...n.metaMessages,""]:[],...s?[`Docs: https://abitype.dev${s}`]:[],...a?[`Details: ${a}`]:[],`Version: abitype@${qm}`].join(`
23
+ `);super(i),Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsPath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"metaMessages",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiTypeError"}),n.cause&&(this.cause=n.cause),this.details=a,this.docsPath=s,this.metaMessages=n.metaMessages,this.shortMessage=t}};function r1(e,t){const n=e.exec(t);return n==null?void 0:n.groups}const kb=/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/,Lb=/^u?int(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/,Fb=/^\(.+?\).*?$/,Ub=/^tuple(?<array>(\[(\d*)\])*)$/;function ti(e){let t=e.type;if(Ub.test(e.type)&&"components"in e){t="(";const n=e.components.length;for(let s=0;s<n;s++){const i=e.components[s];t+=ti(i),s<n-1&&(t+=", ")}const a=r1(Ub,e.type);return t+=`)${(a==null?void 0:a.array)??""}`,ti({...e,type:t})}return"indexed"in e&&e.indexed&&(t=`${t} indexed`),e.name?`${t} ${e.name}`:t}function Ln(e){let t="";const n=e.length;for(let a=0;a<n;a++){const s=e[a];t+=ti(s),a!==n-1&&(t+=", ")}return t}function Wm(e){var t;return e.type==="function"?`function ${e.name}(${Ln(e.inputs)})${e.stateMutability&&e.stateMutability!=="nonpayable"?` ${e.stateMutability}`:""}${(t=e.outputs)!=null&&t.length?` returns (${Ln(e.outputs)})`:""}`:e.type==="event"?`event ${e.name}(${Ln(e.inputs)})`:e.type==="error"?`error ${e.name}(${Ln(e.inputs)})`:e.type==="constructor"?`constructor(${Ln(e.inputs)})${e.stateMutability==="payable"?" payable":""}`:e.type==="fallback"?`fallback() external${e.stateMutability==="payable"?" payable":""}`:"receive() external payable"}const Hb=/^error (?<name>[a-zA-Z$_][a-zA-Z0-9$_]*)\((?<parameters>.*?)\)$/;function Zm(e){return Hb.test(e)}function Ym(e){return r1(Hb,e)}const Gb=/^event (?<name>[a-zA-Z$_][a-zA-Z0-9$_]*)\((?<parameters>.*?)\)$/;function Km(e){return Gb.test(e)}function Xm(e){return r1(Gb,e)}const zb=/^function (?<name>[a-zA-Z$_][a-zA-Z0-9$_]*)\((?<parameters>.*?)\)(?: (?<scope>external|public{1}))?(?: (?<stateMutability>pure|view|nonpayable|payable{1}))?(?: returns\s?\((?<returns>.*?)\))?$/;function Jm(e){return zb.test(e)}function Qm(e){return r1(zb,e)}const jb=/^struct (?<name>[a-zA-Z$_][a-zA-Z0-9$_]*) \{(?<properties>.*?)\}$/;function Vb(e){return jb.test(e)}function eh(e){return r1(jb,e)}const qb=/^constructor\((?<parameters>.*?)\)(?:\s(?<stateMutability>payable{1}))?$/;function th(e){return qb.test(e)}function nh(e){return r1(qb,e)}const Wb=/^fallback\(\) external(?:\s(?<stateMutability>payable{1}))?$/;function ah(e){return Wb.test(e)}function rh(e){return r1(Wb,e)}const sh=/^receive\(\) external payable$/;function ih(e){return sh.test(e)}const oh=new Set(["memory","indexed","storage","calldata"]),fh=new Set(["indexed"]),ni=new Set(["calldata","memory","storage"]);let bh=class extends Ke{constructor({type:t}){super("Unknown type.",{metaMessages:[`Type "${t}" is not a valid ABI type. Perhaps you forgot to include a struct signature?`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"UnknownTypeError"})}},dh=class extends Ke{constructor({type:t}){super("Unknown type.",{metaMessages:[`Type "${t}" is not a valid ABI type.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"UnknownSolidityTypeError"})}},ch=class extends Ke{constructor({params:t}){super("Failed to parse ABI parameters.",{details:`parseAbiParameters(${JSON.stringify(t,null,2)})`,docsPath:"/api/human#parseabiparameters-1"}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidAbiParametersError"})}},uh=class extends Ke{constructor({param:t}){super("Invalid ABI parameter.",{details:t}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidParameterError"})}},yh=class extends Ke{constructor({param:t,name:n}){super("Invalid ABI parameter.",{details:t,metaMessages:[`"${n}" is a protected Solidity keyword. More info: https://docs.soliditylang.org/en/latest/cheatsheet.html`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"SolidityProtectedKeywordError"})}},ph=class extends Ke{constructor({param:t,type:n,modifier:a}){super("Invalid ABI parameter.",{details:t,metaMessages:[`Modifier "${a}" not allowed${n?` in "${n}" type`:""}.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidModifierError"})}},lh=class extends Ke{constructor({param:t,type:n,modifier:a}){super("Invalid ABI parameter.",{details:t,metaMessages:[`Modifier "${a}" not allowed${n?` in "${n}" type`:""}.`,`Data location can only be specified for array, struct, or mapping types, but "${a}" was given.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidFunctionModifierError"})}},mh=class extends Ke{constructor({abiParameter:t}){super("Invalid ABI parameter.",{details:JSON.stringify(t,null,2),metaMessages:["ABI parameter type is invalid."]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidAbiTypeParameterError"})}},F6=class extends Ke{constructor({signature:t,type:n}){super(`Invalid ${n} signature.`,{details:t}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidSignatureError"})}},hh=class extends Ke{constructor({signature:t}){super("Unknown signature.",{details:t}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"UnknownSignatureError"})}},gh=class extends Ke{constructor({signature:t}){super("Invalid struct signature.",{details:t,metaMessages:["No properties exist."]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidStructSignatureError"})}},Th=class extends Ke{constructor({type:t}){super("Circular reference detected.",{metaMessages:[`Struct "${t}" is a circular reference.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"CircularReferenceError"})}},wh=class extends Ke{constructor({current:t,depth:n}){super("Unbalanced parentheses.",{metaMessages:[`"${t.trim()}" has too many ${n>0?"opening":"closing"} parentheses.`],details:`Depth "${n}"`}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidParenthesisError"})}};function vh(e,t,n){let a="";if(n)for(const s of Object.entries(n)){if(!s)continue;let i="";for(const f of s[1])i+=`[${f.type}${f.name?`:${f.name}`:""}]`;a+=`(${s[0]}{${i}})`}return t?`${t}:${e}${a}`:e}const ai=new Map([["address",{type:"address"}],["bool",{type:"bool"}],["bytes",{type:"bytes"}],["bytes32",{type:"bytes32"}],["int",{type:"int256"}],["int256",{type:"int256"}],["string",{type:"string"}],["uint",{type:"uint256"}],["uint8",{type:"uint8"}],["uint16",{type:"uint16"}],["uint24",{type:"uint24"}],["uint32",{type:"uint32"}],["uint64",{type:"uint64"}],["uint96",{type:"uint96"}],["uint112",{type:"uint112"}],["uint160",{type:"uint160"}],["uint192",{type:"uint192"}],["uint256",{type:"uint256"}],["address owner",{type:"address",name:"owner"}],["address to",{type:"address",name:"to"}],["bool approved",{type:"bool",name:"approved"}],["bytes _data",{type:"bytes",name:"_data"}],["bytes data",{type:"bytes",name:"data"}],["bytes signature",{type:"bytes",name:"signature"}],["bytes32 hash",{type:"bytes32",name:"hash"}],["bytes32 r",{type:"bytes32",name:"r"}],["bytes32 root",{type:"bytes32",name:"root"}],["bytes32 s",{type:"bytes32",name:"s"}],["string name",{type:"string",name:"name"}],["string symbol",{type:"string",name:"symbol"}],["string tokenURI",{type:"string",name:"tokenURI"}],["uint tokenId",{type:"uint256",name:"tokenId"}],["uint8 v",{type:"uint8",name:"v"}],["uint256 balance",{type:"uint256",name:"balance"}],["uint256 tokenId",{type:"uint256",name:"tokenId"}],["uint256 value",{type:"uint256",name:"value"}],["event:address indexed from",{type:"address",name:"from",indexed:!0}],["event:address indexed to",{type:"address",name:"to",indexed:!0}],["event:uint indexed tokenId",{type:"uint256",name:"tokenId",indexed:!0}],["event:uint256 indexed tokenId",{type:"uint256",name:"tokenId",indexed:!0}]]);function xh(e,t={}){if(Jm(e))return Eh(e,t);if(Km(e))return Ah(e,t);if(Zm(e))return _h(e,t);if(th(e))return Sh(e,t);if(ah(e))return Ih(e);if(ih(e))return{type:"receive",stateMutability:"payable"};throw new hh({signature:e})}function Eh(e,t={}){const n=Qm(e);if(!n)throw new F6({signature:e,type:"function"});const a=bt(n.parameters),s=[],i=a.length;for(let d=0;d<i;d++)s.push(O1(a[d],{modifiers:ni,structs:t,type:"function"}));const f=[];if(n.returns){const d=bt(n.returns),b=d.length;for(let y=0;y<b;y++)f.push(O1(d[y],{modifiers:ni,structs:t,type:"function"}))}return{name:n.name,type:"function",stateMutability:n.stateMutability??"nonpayable",inputs:s,outputs:f}}function Ah(e,t={}){const n=Xm(e);if(!n)throw new F6({signature:e,type:"event"});const a=bt(n.parameters),s=[],i=a.length;for(let f=0;f<i;f++)s.push(O1(a[f],{modifiers:fh,structs:t,type:"event"}));return{name:n.name,type:"event",inputs:s}}function _h(e,t={}){const n=Ym(e);if(!n)throw new F6({signature:e,type:"error"});const a=bt(n.parameters),s=[],i=a.length;for(let f=0;f<i;f++)s.push(O1(a[f],{structs:t,type:"error"}));return{name:n.name,type:"error",inputs:s}}function Sh(e,t={}){const n=nh(e);if(!n)throw new F6({signature:e,type:"constructor"});const a=bt(n.parameters),s=[],i=a.length;for(let f=0;f<i;f++)s.push(O1(a[f],{structs:t,type:"constructor"}));return{type:"constructor",stateMutability:n.stateMutability??"nonpayable",inputs:s}}function Ih(e){const t=rh(e);if(!t)throw new F6({signature:e,type:"fallback"});return{type:"fallback",stateMutability:t.stateMutability??"nonpayable"}}const Ch=/^(?<type>[a-zA-Z$_][a-zA-Z0-9$_]*(?:\spayable)?)(?<array>(?:\[\d*?\])+?)?(?:\s(?<modifier>calldata|indexed|memory|storage{1}))?(?:\s(?<name>[a-zA-Z$_][a-zA-Z0-9$_]*))?$/,Ph=/^\((?<type>.+?)\)(?<array>(?:\[\d*?\])+?)?(?:\s(?<modifier>calldata|indexed|memory|storage{1}))?(?:\s(?<name>[a-zA-Z$_][a-zA-Z0-9$_]*))?$/,Mh=/^u?int$/;function O1(e,t){var p,m;const n=vh(e,t==null?void 0:t.type,t==null?void 0:t.structs);if(ai.has(n))return ai.get(n);const a=Fb.test(e),s=r1(a?Ph:Ch,e);if(!s)throw new uh({param:e});if(s.name&&Oh(s.name))throw new yh({param:e,name:s.name});const i=s.name?{name:s.name}:{},f=s.modifier==="indexed"?{indexed:!0}:{},d=(t==null?void 0:t.structs)??{};let b,y={};if(a){b="tuple";const h=bt(s.type),x=[],T=h.length;for(let C=0;C<T;C++)x.push(O1(h[C],{structs:d}));y={components:x}}else if(s.type in d)b="tuple",y={components:d[s.type]};else if(Mh.test(s.type))b=`${s.type}256`;else if(s.type==="address payable")b="address";else if(b=s.type,(t==null?void 0:t.type)!=="struct"&&!Zb(b))throw new dh({type:b});if(s.modifier){if(!((m=(p=t==null?void 0:t.modifiers)==null?void 0:p.has)!=null&&m.call(p,s.modifier)))throw new ph({param:e,type:t==null?void 0:t.type,modifier:s.modifier});if(ni.has(s.modifier)&&!Rh(b,!!s.array))throw new lh({param:e,type:t==null?void 0:t.type,modifier:s.modifier})}const u={type:`${b}${s.array??""}`,...i,...f,...y};return ai.set(n,u),u}function bt(e,t=[],n="",a=0){const s=e.trim().length;for(let i=0;i<s;i++){const f=e[i],d=e.slice(i+1);switch(f){case",":return a===0?bt(d,[...t,n.trim()]):bt(d,t,`${n}${f}`,a);case"(":return bt(d,t,`${n}${f}`,a+1);case")":return bt(d,t,`${n}${f}`,a-1);default:return bt(d,t,`${n}${f}`,a)}}if(n==="")return t;if(a!==0)throw new wh({current:n,depth:a});return t.push(n.trim()),t}function Zb(e){return e==="address"||e==="bool"||e==="function"||e==="string"||kb.test(e)||Lb.test(e)}const $h=/^(?:after|alias|anonymous|apply|auto|byte|calldata|case|catch|constant|copyof|default|defined|error|event|external|false|final|function|immutable|implements|in|indexed|inline|internal|let|mapping|match|memory|mutable|null|of|override|partial|private|promise|public|pure|reference|relocatable|return|returns|sizeof|static|storage|struct|super|supports|switch|this|true|try|typedef|typeof|var|view|virtual)$/;function Oh(e){return e==="address"||e==="bool"||e==="function"||e==="string"||e==="tuple"||kb.test(e)||Lb.test(e)||$h.test(e)}function Rh(e,t){return t||e==="bytes"||e==="string"||e==="tuple"}function Bh(e){const t={},n=e.length;for(let f=0;f<n;f++){const d=e[f];if(!Vb(d))continue;const b=eh(d);if(!b)throw new F6({signature:d,type:"struct"});const y=b.properties.split(";"),u=[],p=y.length;for(let m=0;m<p;m++){const x=y[m].trim();if(!x)continue;const T=O1(x,{type:"struct"});u.push(T)}if(!u.length)throw new gh({signature:d});t[b.name]=u}const a={},s=Object.entries(t),i=s.length;for(let f=0;f<i;f++){const[d,b]=s[f];a[d]=Yb(b,t)}return a}const Nh=/^(?<type>[a-zA-Z$_][a-zA-Z0-9$_]*)(?<array>(?:\[\d*?\])+?)?$/;function Yb(e,t,n=new Set){const a=[],s=e.length;for(let i=0;i<s;i++){const f=e[i];if(Fb.test(f.type))a.push(f);else{const b=r1(Nh,f.type);if(!(b!=null&&b.type))throw new mh({abiParameter:f});const{array:y,type:u}=b;if(u in t){if(n.has(u))throw new Th({type:u});a.push({...f,type:`tuple${y??""}`,components:Yb(t[u]??[],t,new Set([...n,u]))})}else if(Zb(u))a.push(f);else throw new bh({type:u})}}return a}function ri(e){const t=Bh(e),n=[],a=e.length;for(let s=0;s<a;s++){const i=e[s];Vb(i)||n.push(xh(i,t))}return n}function Dh(e){const t=[];{const n=bt(e),a=n.length;for(let s=0;s<a;s++)t.push(O1(n[s],{modifiers:oh}))}if(t.length===0)throw new ch({params:e});return t}function d0(e,t,n){const a=e[t.name];if(typeof a=="function")return a;const s=e[n];return typeof s=="function"?s:i=>t(e,i)}function Mt(e,{includeName:t=!1}={}){if(e.type!=="function"&&e.type!=="event"&&e.type!=="error")throw new Wh(e.type);return`${e.name}(${xa(e.inputs,{includeName:t})})`}function xa(e,{includeName:t=!1}={}){return e?e.map(n=>kh(n,{includeName:t})).join(t?", ":","):""}function kh(e,{includeName:t}){return e.type.startsWith("tuple")?`(${xa(e.components,{includeName:t})})${e.type.slice(5)}`:e.type+(t&&e.name?` ${e.name}`:"")}function dt(e,{strict:t=!0}={}){return!e||typeof e!="string"?!1:t?/^0x[0-9a-fA-F]*$/.test(e):e.startsWith("0x")}function G0(e){return dt(e,{strict:!1})?Math.ceil((e.length-2)/2):e.length}const Kb="2.39.3";let Fn={getDocsUrl:({docsBaseUrl:e,docsPath:t="",docsSlug:n})=>t?`${e??"https://viem.sh"}${t}${n?`#${n}`:""}`:void 0,version:`viem@${Kb}`},G=class Ob extends Error{constructor(t,n={}){var d;const a=(()=>{var b;return n.cause instanceof Ob?n.cause.details:(b=n.cause)!=null&&b.message?n.cause.message:n.details})(),s=n.cause instanceof Ob&&n.cause.docsPath||n.docsPath,i=(d=Fn.getDocsUrl)==null?void 0:d.call(Fn,{...n,docsPath:s}),f=[t||"An error occurred.","",...n.metaMessages?[...n.metaMessages,""]:[],...i?[`Docs: ${i}`]:[],...a?[`Details: ${a}`]:[],...Fn.version?[`Version: ${Fn.version}`]:[]].join(`
24
+ `);super(f,n.cause?{cause:n.cause}:void 0),Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsPath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"metaMessages",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"version",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"BaseError"}),this.details=a,this.docsPath=s,this.metaMessages=n.metaMessages,this.name=n.name??this.name,this.shortMessage=t,this.version=Kb}walk(t){return Xb(this,t)}};function Xb(e,t){return t!=null&&t(e)?e:e&&typeof e=="object"&&"cause"in e&&e.cause!==void 0?Xb(e.cause,t):t?null:e}class Lh extends G{constructor({docsPath:t}){super(["A constructor was not found on the ABI.","Make sure you are using the correct ABI and that the constructor exists on it."].join(`
25
+ `),{docsPath:t,name:"AbiConstructorNotFoundError"})}}class Jb extends G{constructor({docsPath:t}){super(["Constructor arguments were provided (`args`), but a constructor parameters (`inputs`) were not found on the ABI.","Make sure you are using the correct ABI, and that the `inputs` attribute on the constructor exists."].join(`
26
+ `),{docsPath:t,name:"AbiConstructorParamsNotFoundError"})}}class Qb extends G{constructor({data:t,params:n,size:a}){super([`Data size of ${a} bytes is too small for given parameters.`].join(`
27
+ `),{metaMessages:[`Params: (${xa(n,{includeName:!0})})`,`Data: ${t} (${a} bytes)`],name:"AbiDecodingDataSizeTooSmallError"}),Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"params",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"size",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.data=t,this.params=n,this.size=a}}class Un extends G{constructor(){super('Cannot decode zero data ("0x") with ABI parameters.',{name:"AbiDecodingZeroDataError"})}}class Fh extends G{constructor({expectedLength:t,givenLength:n,type:a}){super([`ABI encoding array length mismatch for type ${a}.`,`Expected length: ${t}`,`Given length: ${n}`].join(`
28
+ `),{name:"AbiEncodingArrayLengthMismatchError"})}}class Uh extends G{constructor({expectedSize:t,value:n}){super(`Size of bytes "${n}" (bytes${G0(n)}) does not match expected size (bytes${t}).`,{name:"AbiEncodingBytesSizeMismatchError"})}}class ed extends G{constructor({expectedLength:t,givenLength:n}){super(["ABI encoding params/values length mismatch.",`Expected length (params): ${t}`,`Given length (values): ${n}`].join(`
29
+ `),{name:"AbiEncodingLengthMismatchError"})}}class Hh extends G{constructor(t,{docsPath:n}){super([`Arguments (\`args\`) were provided to "${t}", but "${t}" on the ABI does not contain any parameters (\`inputs\`).`,"Cannot encode error result without knowing what the parameter types are.","Make sure you are using the correct ABI and that the inputs exist on it."].join(`
30
+ `),{docsPath:n,name:"AbiErrorInputsNotFoundError"})}}class td extends G{constructor(t,{docsPath:n}={}){super([`Error ${t?`"${t}" `:""}not found on ABI.`,"Make sure you are using the correct ABI and that the error exists on it."].join(`
31
+ `),{docsPath:n,name:"AbiErrorNotFoundError"})}}class nd extends G{constructor(t,{docsPath:n}){super([`Encoded error signature "${t}" not found on ABI.`,"Make sure you are using the correct ABI and that the error exists on it.",`You can look up the decoded signature here: https://openchain.xyz/signatures?query=${t}.`].join(`
32
+ `),{docsPath:n,name:"AbiErrorSignatureNotFoundError"}),Object.defineProperty(this,"signature",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.signature=t}}class Gh extends G{constructor({docsPath:t}){super("Cannot extract event signature from empty topics.",{docsPath:t,name:"AbiEventSignatureEmptyTopicsError"})}}class ad extends G{constructor(t,{docsPath:n}){super([`Encoded event signature "${t}" not found on ABI.`,"Make sure you are using the correct ABI and that the event exists on it.",`You can look up the signature here: https://openchain.xyz/signatures?query=${t}.`].join(`
33
+ `),{docsPath:n,name:"AbiEventSignatureNotFoundError"})}}class rd extends G{constructor(t,{docsPath:n}={}){super([`Event ${t?`"${t}" `:""}not found on ABI.`,"Make sure you are using the correct ABI and that the event exists on it."].join(`
34
+ `),{docsPath:n,name:"AbiEventNotFoundError"})}}class U6 extends G{constructor(t,{docsPath:n}={}){super([`Function ${t?`"${t}" `:""}not found on ABI.`,"Make sure you are using the correct ABI and that the function exists on it."].join(`
35
+ `),{docsPath:n,name:"AbiFunctionNotFoundError"})}}class sd extends G{constructor(t,{docsPath:n}){super([`Function "${t}" does not contain any \`outputs\` on ABI.`,"Cannot decode function result without knowing what the parameter types are.","Make sure you are using the correct ABI and that the function exists on it."].join(`
36
+ `),{docsPath:n,name:"AbiFunctionOutputsNotFoundError"})}}class zh extends G{constructor(t,{docsPath:n}){super([`Encoded function signature "${t}" not found on ABI.`,"Make sure you are using the correct ABI and that the function exists on it.",`You can look up the signature here: https://openchain.xyz/signatures?query=${t}.`].join(`
37
+ `),{docsPath:n,name:"AbiFunctionSignatureNotFoundError"})}}class jh extends G{constructor(t,n){super("Found ambiguous types in overloaded ABI items.",{metaMessages:[`\`${t.type}\` in \`${Mt(t.abiItem)}\`, and`,`\`${n.type}\` in \`${Mt(n.abiItem)}\``,"","These types encode differently and cannot be distinguished at runtime.","Remove one of the ambiguous items in the ABI."],name:"AbiItemAmbiguityError"})}}let id=class extends G{constructor({expectedSize:t,givenSize:n}){super(`Expected bytes${t}, got bytes${n}.`,{name:"BytesSizeMismatchError"})}};class Hn extends G{constructor({abiItem:t,data:n,params:a,size:s}){super([`Data size of ${s} bytes is too small for non-indexed event parameters.`].join(`
38
+ `),{metaMessages:[`Params: (${xa(a,{includeName:!0})})`,`Data: ${n} (${s} bytes)`],name:"DecodeLogDataMismatch"}),Object.defineProperty(this,"abiItem",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"params",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"size",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.abiItem=t,this.data=n,this.params=a,this.size=s}}class Ea extends G{constructor({abiItem:t,param:n}){super([`Expected a topic for indexed event parameter${n.name?` "${n.name}"`:""} on event "${Mt(t,{includeName:!0})}".`].join(`
39
+ `),{name:"DecodeLogTopicsMismatch"}),Object.defineProperty(this,"abiItem",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.abiItem=t}}class Vh extends G{constructor(t,{docsPath:n}){super([`Type "${t}" is not a valid encoding type.`,"Please provide a valid ABI type."].join(`
40
+ `),{docsPath:n,name:"InvalidAbiEncodingType"})}}class qh extends G{constructor(t,{docsPath:n}){super([`Type "${t}" is not a valid decoding type.`,"Please provide a valid ABI type."].join(`
41
+ `),{docsPath:n,name:"InvalidAbiDecodingType"})}}let od=class extends G{constructor(t){super([`Value "${t}" is not a valid array.`].join(`
42
+ `),{name:"InvalidArrayError"})}};class Wh extends G{constructor(t){super([`"${t}" is not a valid definition type.`,'Valid types: "function", "event", "error"'].join(`
43
+ `),{name:"InvalidDefinitionTypeError"})}}class Zh extends G{constructor(t){super(`Type "${t}" is not supported for packed encoding.`,{name:"UnsupportedPackedAbiType"})}}class Yh extends G{constructor(t){super(`Filter type "${t}" is not supported.`,{name:"FilterTypeNotSupportedError"})}}let fd=class extends G{constructor({offset:t,position:n,size:a}){super(`Slice ${n==="start"?"starting":"ending"} at offset "${t}" is out-of-bounds (size: ${a}).`,{name:"SliceOffsetOutOfBoundsError"})}},bd=class extends G{constructor({size:t,targetSize:n,type:a}){super(`${a.charAt(0).toUpperCase()}${a.slice(1).toLowerCase()} size (${t}) exceeds padding size (${n}).`,{name:"SizeExceedsPaddingSizeError"})}};class dd extends G{constructor({size:t,targetSize:n,type:a}){super(`${a.charAt(0).toUpperCase()}${a.slice(1).toLowerCase()} is expected to be ${n} ${a} long, but is ${t} ${a} long.`,{name:"InvalidBytesLengthError"})}}function ee(e,{dir:t,size:n=32}={}){return typeof e=="string"?R1(e,{dir:t,size:n}):Kh(e,{dir:t,size:n})}function R1(e,{dir:t,size:n=32}={}){if(n===null)return e;const a=e.replace("0x","");if(a.length>n*2)throw new bd({size:Math.ceil(a.length/2),targetSize:n,type:"hex"});return`0x${a[t==="right"?"padEnd":"padStart"](n*2,"0")}`}function Kh(e,{dir:t,size:n=32}={}){if(n===null)return e;if(e.length>n)throw new bd({size:e.length,targetSize:n,type:"bytes"});const a=new Uint8Array(n);for(let s=0;s<n;s++){const i=t==="right";a[i?s:n-s-1]=e[i?s:e.length-s-1]}return a}let cd=class extends G{constructor({max:t,min:n,signed:a,size:s,value:i}){super(`Number "${i}" is not in safe ${s?`${s*8}-bit ${a?"signed":"unsigned"} `:""}integer range ${t?`(${n} to ${t})`:`(above ${n})`}`,{name:"IntegerOutOfRangeError"})}},Xh=class extends G{constructor(t){super(`Bytes value "${t}" is not a valid boolean. The bytes array must contain a single byte of either a 0 or 1 value.`,{name:"InvalidBytesBooleanError"})}};class Jh extends G{constructor(t){super(`Hex value "${t}" is not a valid boolean. The hex value must be "0x0" (false) or "0x1" (true).`,{name:"InvalidHexBooleanError"})}}let Qh=class extends G{constructor({givenSize:t,maxSize:n}){super(`Size cannot exceed ${n} bytes. Given size: ${t} bytes.`,{name:"SizeOverflowError"})}};function $t(e,{dir:t="left"}={}){let n=typeof e=="string"?e.replace("0x",""):e,a=0;for(let s=0;s<n.length-1&&n[t==="left"?s:n.length-s-1].toString()==="0";s++)a++;return n=t==="left"?n.slice(a):n.slice(0,n.length-a),typeof e=="string"?(n.length===1&&t==="right"&&(n=`${n}0`),`0x${n.length%2===1?`0${n}`:n}`):n}function Ot(e,{size:t}){if(G0(e)>t)throw new Qh({givenSize:G0(e),maxSize:t})}function U0(e,t={}){const{signed:n}=t;t.size&&Ot(e,{size:t.size});const a=BigInt(e);if(!n)return a;const s=(e.length-2)/2,i=(1n<<BigInt(s)*8n-1n)-1n;return a<=i?a:a-BigInt(`0x${"f".padStart(s*2,"f")}`)-1n}function eg(e,t={}){let n=e;if(t.size&&(Ot(n,{size:t.size}),n=$t(n)),$t(n)==="0x00")return!1;if($t(n)==="0x01")return!0;throw new Jh(n)}function zt(e,t={}){return Number(U0(e,t))}const tg=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function se(e,t={}){return typeof e=="number"||typeof e=="bigint"?t0(e,t):typeof e=="string"?H6(e,t):typeof e=="boolean"?si(e,t):te(e,t)}function si(e,t={}){const n=`0x${Number(e)}`;return typeof t.size=="number"?(Ot(n,{size:t.size}),ee(n,{size:t.size})):n}function te(e,t={}){let n="";for(let s=0;s<e.length;s++)n+=tg[e[s]];const a=`0x${n}`;return typeof t.size=="number"?(Ot(a,{size:t.size}),ee(a,{dir:"right",size:t.size})):a}function t0(e,t={}){const{signed:n,size:a}=t,s=BigInt(e);let i;a?n?i=(1n<<BigInt(a)*8n-1n)-1n:i=2n**(BigInt(a)*8n)-1n:typeof e=="number"&&(i=BigInt(Number.MAX_SAFE_INTEGER));const f=typeof i=="bigint"&&n?-i-1n:0;if(i&&s>i||s<f){const b=typeof e=="bigint"?"n":"";throw new cd({max:i?`${i}${b}`:void 0,min:`${f}${b}`,signed:n,size:a,value:`${e}${b}`})}const d=`0x${(n&&s<0?(1n<<BigInt(a*8))+BigInt(s):s).toString(16)}`;return a?ee(d,{size:a}):d}const ng=new TextEncoder;function H6(e,t={}){const n=ng.encode(e);return te(n,t)}const ag=new TextEncoder;function jt(e,t={}){return typeof e=="number"||typeof e=="bigint"?sg(e,t):typeof e=="boolean"?rg(e,t):dt(e)?ct(e,t):n6(e,t)}function rg(e,t={}){const n=new Uint8Array(1);return n[0]=Number(e),typeof t.size=="number"?(Ot(n,{size:t.size}),ee(n,{size:t.size})):n}const s1={zero:48,nine:57,A:65,F:70,a:97,f:102};function ud(e){if(e>=s1.zero&&e<=s1.nine)return e-s1.zero;if(e>=s1.A&&e<=s1.F)return e-(s1.A-10);if(e>=s1.a&&e<=s1.f)return e-(s1.a-10)}function ct(e,t={}){let n=e;t.size&&(Ot(n,{size:t.size}),n=ee(n,{dir:"right",size:t.size}));let a=n.slice(2);a.length%2&&(a=`0${a}`);const s=a.length/2,i=new Uint8Array(s);for(let f=0,d=0;f<s;f++){const b=ud(a.charCodeAt(d++)),y=ud(a.charCodeAt(d++));if(b===void 0||y===void 0)throw new G(`Invalid byte sequence ("${a[d-2]}${a[d-1]}" in "${a}").`);i[f]=b*16+y}return i}function sg(e,t){const n=t0(e,t);return ct(n)}function n6(e,t={}){const n=ag.encode(e);return typeof t.size=="number"?(Ot(n,{size:t.size}),ee(n,{dir:"right",size:t.size})):n}const Aa=BigInt(2**32-1),yd=BigInt(32);function ig(e,t=!1){return t?{h:Number(e&Aa),l:Number(e>>yd&Aa)}:{h:Number(e>>yd&Aa)|0,l:Number(e&Aa)|0}}function pd(e,t=!1){const n=e.length;let a=new Uint32Array(n),s=new Uint32Array(n);for(let i=0;i<n;i++){const{h:f,l:d}=ig(e[i],t);[a[i],s[i]]=[f,d]}return[a,s]}const ld=(e,t,n)=>e>>>n,md=(e,t,n)=>e<<32-n|t>>>n,G6=(e,t,n)=>e>>>n|t<<32-n,z6=(e,t,n)=>e<<32-n|t>>>n,_a=(e,t,n)=>e<<64-n|t>>>n-32,Sa=(e,t,n)=>e>>>n-32|t<<64-n,og=(e,t,n)=>e<<n|t>>>32-n,fg=(e,t,n)=>t<<n|e>>>32-n,bg=(e,t,n)=>t<<n-32|e>>>64-n,dg=(e,t,n)=>e<<n-32|t>>>64-n;function i1(e,t,n,a){const s=(t>>>0)+(a>>>0);return{h:e+n+(s/2**32|0)|0,l:s|0}}const cg=(e,t,n)=>(e>>>0)+(t>>>0)+(n>>>0),ug=(e,t,n,a)=>t+n+a+(e/2**32|0)|0,yg=(e,t,n,a)=>(e>>>0)+(t>>>0)+(n>>>0)+(a>>>0),pg=(e,t,n,a,s)=>t+n+a+s+(e/2**32|0)|0,lg=(e,t,n,a,s)=>(e>>>0)+(t>>>0)+(n>>>0)+(a>>>0)+(s>>>0),mg=(e,t,n,a,s,i)=>t+n+a+s+i+(e/2**32|0)|0,j6=typeof globalThis=="object"&&"crypto"in globalThis?globalThis.crypto:void 0;/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */function hg(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"}function V6(e){if(!Number.isSafeInteger(e)||e<0)throw new Error("positive integer expected, got "+e)}function B1(e,...t){if(!hg(e))throw new Error("Uint8Array expected");if(t.length>0&&!t.includes(e.length))throw new Error("Uint8Array expected of length "+t+", got length="+e.length)}function gg(e){if(typeof e!="function"||typeof e.create!="function")throw new Error("Hash should be wrapped by utils.createHasher");V6(e.outputLen),V6(e.blockLen)}function q6(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}function hd(e,t){B1(e);const n=t.outputLen;if(e.length<n)throw new Error("digestInto() expects output buffer of length at least "+n)}function Tg(e){return new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4))}function N1(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}function ii(e){return new DataView(e.buffer,e.byteOffset,e.byteLength)}function Vt(e,t){return e<<32-t|e>>>t}const wg=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function vg(e){return e<<24&4278190080|e<<8&16711680|e>>>8&65280|e>>>24&255}function xg(e){for(let t=0;t<e.length;t++)e[t]=vg(e[t]);return e}const gd=wg?e=>e:xg,Td=typeof Uint8Array.from([]).toHex=="function"&&typeof Uint8Array.fromHex=="function",Eg=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function Ag(e){if(B1(e),Td)return e.toHex();let t="";for(let n=0;n<e.length;n++)t+=Eg[e[n]];return t}const o1={_0:48,_9:57,A:65,F:70,a:97,f:102};function wd(e){if(e>=o1._0&&e<=o1._9)return e-o1._0;if(e>=o1.A&&e<=o1.F)return e-(o1.A-10);if(e>=o1.a&&e<=o1.f)return e-(o1.a-10)}function _g(e){if(typeof e!="string")throw new Error("hex string expected, got "+typeof e);if(Td)return Uint8Array.fromHex(e);const t=e.length,n=t/2;if(t%2)throw new Error("hex string expected, got unpadded hex of length "+t);const a=new Uint8Array(n);for(let s=0,i=0;s<n;s++,i+=2){const f=wd(e.charCodeAt(i)),d=wd(e.charCodeAt(i+1));if(f===void 0||d===void 0){const b=e[i]+e[i+1];throw new Error('hex string expected, got non-hex character "'+b+'" at index '+i)}a[s]=f*16+d}return a}function Sg(e){if(typeof e!="string")throw new Error("string expected");return new Uint8Array(new TextEncoder().encode(e))}function Ia(e){return typeof e=="string"&&(e=Sg(e)),B1(e),e}function vd(...e){let t=0;for(let a=0;a<e.length;a++){const s=e[a];B1(s),t+=s.length}const n=new Uint8Array(t);for(let a=0,s=0;a<e.length;a++){const i=e[a];n.set(i,s),s+=i.length}return n}class oi{}function Ca(e){const t=a=>e().update(Ia(a)).digest(),n=e();return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=()=>e(),t}function xd(e=32){if(j6&&typeof j6.getRandomValues=="function")return j6.getRandomValues(new Uint8Array(e));if(j6&&typeof j6.randomBytes=="function")return Uint8Array.from(j6.randomBytes(e));throw new Error("crypto.getRandomValues must be defined")}const Ig=BigInt(0),Gn=BigInt(1),Cg=BigInt(2),Pg=BigInt(7),Mg=BigInt(256),$g=BigInt(113),Ed=[],Ad=[],_d=[];for(let e=0,t=Gn,n=1,a=0;e<24;e++){[n,a]=[a,(2*n+3*a)%5],Ed.push(2*(5*a+n)),Ad.push((e+1)*(e+2)/2%64);let s=Ig;for(let i=0;i<7;i++)t=(t<<Gn^(t>>Pg)*$g)%Mg,t&Cg&&(s^=Gn<<(Gn<<BigInt(i))-Gn);_d.push(s)}const Sd=pd(_d,!0),Og=Sd[0],Rg=Sd[1],Id=(e,t,n)=>n>32?bg(e,t,n):og(e,t,n),Cd=(e,t,n)=>n>32?dg(e,t,n):fg(e,t,n);function Bg(e,t=24){const n=new Uint32Array(10);for(let a=24-t;a<24;a++){for(let f=0;f<10;f++)n[f]=e[f]^e[f+10]^e[f+20]^e[f+30]^e[f+40];for(let f=0;f<10;f+=2){const d=(f+8)%10,b=(f+2)%10,y=n[b],u=n[b+1],p=Id(y,u,1)^n[d],m=Cd(y,u,1)^n[d+1];for(let h=0;h<50;h+=10)e[f+h]^=p,e[f+h+1]^=m}let s=e[2],i=e[3];for(let f=0;f<24;f++){const d=Ad[f],b=Id(s,i,d),y=Cd(s,i,d),u=Ed[f];s=e[u],i=e[u+1],e[u]=b,e[u+1]=y}for(let f=0;f<50;f+=10){for(let d=0;d<10;d++)n[d]=e[f+d];for(let d=0;d<10;d++)e[f+d]^=~n[(d+2)%10]&n[(d+4)%10]}e[0]^=Og[a],e[1]^=Rg[a]}N1(n)}class fi extends oi{constructor(t,n,a,s=!1,i=24){if(super(),this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,this.enableXOF=!1,this.blockLen=t,this.suffix=n,this.outputLen=a,this.enableXOF=s,this.rounds=i,V6(a),!(0<t&&t<200))throw new Error("only keccak-f1600 function is supported");this.state=new Uint8Array(200),this.state32=Tg(this.state)}clone(){return this._cloneInto()}keccak(){gd(this.state32),Bg(this.state32,this.rounds),gd(this.state32),this.posOut=0,this.pos=0}update(t){q6(this),t=Ia(t),B1(t);const{blockLen:n,state:a}=this,s=t.length;for(let i=0;i<s;){const f=Math.min(n-this.pos,s-i);for(let d=0;d<f;d++)a[this.pos++]^=t[i++];this.pos===n&&this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;const{state:t,suffix:n,pos:a,blockLen:s}=this;t[a]^=n,n&128&&a===s-1&&this.keccak(),t[s-1]^=128,this.keccak()}writeInto(t){q6(this,!1),B1(t),this.finish();const n=this.state,{blockLen:a}=this;for(let s=0,i=t.length;s<i;){this.posOut>=a&&this.keccak();const f=Math.min(a-this.posOut,i-s);t.set(n.subarray(this.posOut,this.posOut+f),s),this.posOut+=f,s+=f}return t}xofInto(t){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(t)}xof(t){return V6(t),this.xofInto(new Uint8Array(t))}digestInto(t){if(hd(t,this),this.finished)throw new Error("digest() was already called");return this.writeInto(t),this.destroy(),t}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,N1(this.state)}_cloneInto(t){const{blockLen:n,suffix:a,outputLen:s,rounds:i,enableXOF:f}=this;return t||(t=new fi(n,a,s,f,i)),t.state32.set(this.state32),t.pos=this.pos,t.posOut=this.posOut,t.finished=this.finished,t.rounds=i,t.suffix=a,t.outputLen=s,t.enableXOF=f,t.destroyed=this.destroyed,t}}const Ng=(e,t,n)=>Ca(()=>new fi(t,e,n)),a6=Ng(1,136,256/8);function z0(e,t){const n=t||"hex",a=a6(dt(e,{strict:!1})?jt(e):e);return n==="bytes"?a:se(a)}const Dg=e=>z0(jt(e));function kg(e){return Dg(e)}function Lg(e){let t=!0,n="",a=0,s="",i=!1;for(let f=0;f<e.length;f++){const d=e[f];if(["(",")",","].includes(d)&&(t=!0),d==="("&&a++,d===")"&&a--,!!t){if(a===0){if(d===" "&&["event","function",""].includes(s))s="";else if(s+=d,d===")"){i=!0;break}continue}if(d===" "){e[f-1]!==","&&n!==","&&n!==",("&&(n="",t=!1);continue}s+=d,n+=d}}if(!i)throw new G("Unable to normalize signature.");return s}const Fg=e=>{const t=typeof e=="string"?e:Wm(e);return Lg(t)};function Pd(e){return kg(Fg(e))}const Pa=Pd;let ve=class extends G{constructor({address:t}){super(`Address "${t}" is invalid.`,{metaMessages:["- Address must be a hex value of 20 bytes (40 hex characters).","- Address must match its checksum counterpart."],name:"InvalidAddressError"})}},zn=class extends Map{constructor(t){super(),Object.defineProperty(this,"maxSize",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.maxSize=t}get(t){const n=super.get(t);return super.has(t)&&n!==void 0&&(this.delete(t),super.set(t,n)),n}set(t,n){if(super.set(t,n),this.maxSize&&this.size>this.maxSize){const a=this.keys().next().value;a&&this.delete(a)}return this}};const bi=new zn(8192);function Ma(e,t){if(bi.has(`${e}.${t}`))return bi.get(`${e}.${t}`);const n=e.substring(2).toLowerCase(),a=z0(n6(n),"bytes"),s=n.split("");for(let f=0;f<40;f+=2)a[f>>1]>>4>=8&&s[f]&&(s[f]=s[f].toUpperCase()),(a[f>>1]&15)>=8&&s[f+1]&&(s[f+1]=s[f+1].toUpperCase());const i=`0x${s.join("")}`;return bi.set(`${e}.${t}`,i),i}function r6(e,t){if(!ne(e,{strict:!1}))throw new ve({address:e});return Ma(e,t)}const Ug=/^0x[a-fA-F0-9]{40}$/,di=new zn(8192);function ne(e,t){const{strict:n=!0}=t??{},a=`${e}.${n}`;if(di.has(a))return di.get(a);const s=Ug.test(e)?e.toLowerCase()===e?!0:n?Ma(e)===e:!0:!1;return di.set(a,s),s}function Z0(e){return typeof e[0]=="string"?Fe(e):Hg(e)}function Hg(e){let t=0;for(const s of e)t+=s.length;const n=new Uint8Array(t);let a=0;for(const s of e)n.set(s,a),a+=s.length;return n}function Fe(e){return`0x${e.reduce((t,n)=>t+n.replace("0x",""),"")}`}function D1(e,t,n,{strict:a}={}){return dt(e,{strict:!1})?Gg(e,t,n,{strict:a}):Od(e,t,n,{strict:a})}function Md(e,t){if(typeof t=="number"&&t>0&&t>G0(e)-1)throw new fd({offset:t,position:"start",size:G0(e)})}function $d(e,t,n){if(typeof t=="number"&&typeof n=="number"&&G0(e)!==n-t)throw new fd({offset:n,position:"end",size:G0(e)})}function Od(e,t,n,{strict:a}={}){Md(e,t);const s=e.slice(t,n);return a&&$d(s,t,n),s}function Gg(e,t,n,{strict:a}={}){Md(e,t);const s=`0x${e.replace("0x","").slice((t??0)*2,(n??e.length)*2)}`;return a&&$d(s,t,n),s}const zg=/^(.*)\[([0-9]*)\]$/,Rd=/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/,ci=/^(u?int)(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/;function ut(e,t){if(e.length!==t.length)throw new ed({expectedLength:e.length,givenLength:t.length});const n=jg({params:e,values:t}),a=yi(n);return a.length===0?"0x":a}function jg({params:e,values:t}){const n=[];for(let a=0;a<e.length;a++)n.push(ui({param:e[a],value:t[a]}));return n}function ui({param:e,value:t}){const n=pi(e.type);if(n){const[a,s]=n;return qg(t,{length:a,param:{...e,type:s}})}if(e.type==="tuple")return Xg(t,{param:e});if(e.type==="address")return Vg(t);if(e.type==="bool")return Zg(t);if(e.type.startsWith("uint")||e.type.startsWith("int")){const a=e.type.startsWith("int"),[,,s="256"]=ci.exec(e.type)??[];return Yg(t,{signed:a,size:Number(s)})}if(e.type.startsWith("bytes"))return Wg(t,{param:e});if(e.type==="string")return Kg(t);throw new Vh(e.type,{docsPath:"/docs/contract/encodeAbiParameters"})}function yi(e){let t=0;for(let i=0;i<e.length;i++){const{dynamic:f,encoded:d}=e[i];f?t+=32:t+=G0(d)}const n=[],a=[];let s=0;for(let i=0;i<e.length;i++){const{dynamic:f,encoded:d}=e[i];f?(n.push(t0(t+s,{size:32})),a.push(d),s+=G0(d)):n.push(d)}return Z0([...n,...a])}function Vg(e){if(!ne(e))throw new ve({address:e});return{dynamic:!1,encoded:R1(e.toLowerCase())}}function qg(e,{length:t,param:n}){const a=t===null;if(!Array.isArray(e))throw new od(e);if(!a&&e.length!==t)throw new Fh({expectedLength:t,givenLength:e.length,type:`${n.type}[${t}]`});let s=!1;const i=[];for(let f=0;f<e.length;f++){const d=ui({param:n,value:e[f]});d.dynamic&&(s=!0),i.push(d)}if(a||s){const f=yi(i);if(a){const d=t0(i.length,{size:32});return{dynamic:!0,encoded:i.length>0?Z0([d,f]):d}}if(s)return{dynamic:!0,encoded:f}}return{dynamic:!1,encoded:Z0(i.map(({encoded:f})=>f))}}function Wg(e,{param:t}){const[,n]=t.type.split("bytes"),a=G0(e);if(!n){let s=e;return a%32!==0&&(s=R1(s,{dir:"right",size:Math.ceil((e.length-2)/2/32)*32})),{dynamic:!0,encoded:Z0([R1(t0(a,{size:32})),s])}}if(a!==Number.parseInt(n,10))throw new Uh({expectedSize:Number.parseInt(n,10),value:e});return{dynamic:!1,encoded:R1(e,{dir:"right"})}}function Zg(e){if(typeof e!="boolean")throw new G(`Invalid boolean value: "${e}" (type: ${typeof e}). Expected: \`true\` or \`false\`.`);return{dynamic:!1,encoded:R1(si(e))}}function Yg(e,{signed:t,size:n=256}){if(typeof n=="number"){const a=2n**(BigInt(n)-(t?1n:0n))-1n,s=t?-a-1n:0n;if(e>a||e<s)throw new cd({max:a.toString(),min:s.toString(),signed:t,size:n/8,value:e.toString()})}return{dynamic:!1,encoded:t0(e,{size:32,signed:t})}}function Kg(e){const t=H6(e),n=Math.ceil(G0(t)/32),a=[];for(let s=0;s<n;s++)a.push(R1(D1(t,s*32,(s+1)*32),{dir:"right"}));return{dynamic:!0,encoded:Z0([R1(t0(G0(t),{size:32})),...a])}}function Xg(e,{param:t}){let n=!1;const a=[];for(let s=0;s<t.components.length;s++){const i=t.components[s],f=Array.isArray(e)?s:i.name,d=ui({param:i,value:e[f]});a.push(d),d.dynamic&&(n=!0)}return{dynamic:n,encoded:n?yi(a):Z0(a.map(({encoded:s})=>s))}}function pi(e){const t=e.match(/^(.*)\[(\d+)?\]$/);return t?[t[2]?Number(t[2]):null,t[1]]:void 0}const jn=e=>D1(Pd(e),0,4);function s6(e){const{abi:t,args:n=[],name:a}=e,s=dt(a,{strict:!1}),i=t.filter(d=>s?d.type==="function"?jn(d)===a:d.type==="event"?Pa(d)===a:!1:"name"in d&&d.name===a);if(i.length===0)return;if(i.length===1)return i[0];let f;for(const d of i){if(!("inputs"in d))continue;if(!n||n.length===0){if(!d.inputs||d.inputs.length===0)return d;continue}if(!d.inputs||d.inputs.length===0||d.inputs.length!==n.length)continue;if(n.every((y,u)=>{const p="inputs"in d&&d.inputs[u];return p?li(y,p):!1})){if(f&&"inputs"in f&&f.inputs){const y=Bd(d.inputs,f.inputs,n);if(y)throw new jh({abiItem:d,type:y[0]},{abiItem:f,type:y[1]})}f=d}}return f||i[0]}function li(e,t){const n=typeof e,a=t.type;switch(a){case"address":return ne(e,{strict:!1});case"bool":return n==="boolean";case"function":return n==="string";case"string":return n==="string";default:return a==="tuple"&&"components"in t?Object.values(t.components).every((s,i)=>li(Object.values(e)[i],s)):/^u?int(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/.test(a)?n==="number"||n==="bigint":/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/.test(a)?n==="string"||e instanceof Uint8Array:/[a-z]+[1-9]{0,3}(\[[0-9]{0,}\])+$/.test(a)?Array.isArray(e)&&e.every(s=>li(s,{...t,type:a.replace(/(\[[0-9]{0,}\])$/,"")})):!1}}function Bd(e,t,n){for(const a in e){const s=e[a],i=t[a];if(s.type==="tuple"&&i.type==="tuple"&&"components"in s&&"components"in i)return Bd(s.components,i.components,n[a]);const f=[s.type,i.type];if(f.includes("address")&&f.includes("bytes20")?!0:f.includes("address")&&f.includes("string")?ne(n[a],{strict:!1}):f.includes("address")&&f.includes("bytes")?ne(n[a],{strict:!1}):!1)return f}}const Nd="/docs/contract/encodeEventTopics";function Vn(e){var b;const{abi:t,eventName:n,args:a}=e;let s=t[0];if(n){const y=s6({abi:t,name:n});if(!y)throw new rd(n,{docsPath:Nd});s=y}if(s.type!=="event")throw new rd(void 0,{docsPath:Nd});const i=Mt(s),f=Pa(i);let d=[];if(a&&"inputs"in s){const y=(b=s.inputs)==null?void 0:b.filter(p=>"indexed"in p&&p.indexed),u=Array.isArray(a)?a:Object.values(a).length>0?(y==null?void 0:y.map(p=>a[p.name]))??[]:[];u.length>0&&(d=(y==null?void 0:y.map((p,m)=>Array.isArray(u[m])?u[m].map((h,x)=>Dd({param:p,value:u[m][x]})):typeof u[m]<"u"&&u[m]!==null?Dd({param:p,value:u[m]}):null))??[])}return[f,...d]}function Dd({param:e,value:t}){if(e.type==="string"||e.type==="bytes")return z0(jt(t));if(e.type==="tuple"||e.type.match(/^(.*)\[(\d+)?\]$/))throw new Yh(e.type);return ut([e],[t])}function $a(e,{method:t}){var a,s;const n={};return e.transport.type==="fallback"&&((s=(a=e.transport).onResponse)==null||s.call(a,({method:i,response:f,status:d,transport:b})=>{d==="success"&&t===i&&(n[f]=b.request)})),i=>n[i]||e.request}async function kd(e,t){const{address:n,abi:a,args:s,eventName:i,fromBlock:f,strict:d,toBlock:b}=t,y=$a(e,{method:"eth_newFilter"}),u=i?Vn({abi:a,args:s,eventName:i}):void 0,p=await e.request({method:"eth_newFilter",params:[{address:n,fromBlock:typeof f=="bigint"?t0(f):f,toBlock:typeof b=="bigint"?t0(b):b,topics:u}]});return{abi:a,args:s,eventName:i,id:p,request:y(p),strict:!!d,type:"event"}}function ae(e){return typeof e=="string"?{address:e,type:"json-rpc"}:e}const Ld="/docs/contract/encodeFunctionData";function Jg(e){const{abi:t,args:n,functionName:a}=e;let s=t[0];if(a){const i=s6({abi:t,args:n,name:a});if(!i)throw new U6(a,{docsPath:Ld});s=i}if(s.type!=="function")throw new U6(void 0,{docsPath:Ld});return{abi:[s],functionName:jn(Mt(s))}}function T0(e){const{args:t}=e,{abi:n,functionName:a}=(()=>{var d;return e.abi.length===1&&((d=e.functionName)!=null&&d.startsWith("0x"))?e:Jg(e)})(),s=n[0],i=a,f="inputs"in s&&s.inputs?ut(s.inputs,t??[]):void 0;return Fe([i,f??"0x"])}const Qg={1:"An `assert` condition failed.",17:"Arithmetic operation resulted in underflow or overflow.",18:"Division or modulo by zero (e.g. `5 / 0` or `23 % 0`).",33:"Attempted to convert to an invalid type.",34:"Attempted to access a storage byte array that is incorrectly encoded.",49:"Performed `.pop()` on an empty array",50:"Array index is out of bounds.",65:"Allocated too much memory or created an array which is too large.",81:"Attempted to call a zero-initialized variable of internal function type."},Fd={inputs:[{name:"message",type:"string"}],name:"Error",type:"error"},eT={inputs:[{name:"reason",type:"uint256"}],name:"Panic",type:"error"};let Ud=class extends G{constructor({offset:t}){super(`Offset \`${t}\` cannot be negative.`,{name:"NegativeOffsetError"})}},Hd=class extends G{constructor({length:t,position:n}){super(`Position \`${n}\` is out of bounds (\`0 < position < ${t}\`).`,{name:"PositionOutOfBoundsError"})}},tT=class extends G{constructor({count:t,limit:n}){super(`Recursive read limit of \`${n}\` exceeded (recursive read count: \`${t}\`).`,{name:"RecursiveReadLimitExceededError"})}};const nT={bytes:new Uint8Array,dataView:new DataView(new ArrayBuffer(0)),position:0,positionReadCount:new Map,recursiveReadCount:0,recursiveReadLimit:Number.POSITIVE_INFINITY,assertReadLimit(){if(this.recursiveReadCount>=this.recursiveReadLimit)throw new tT({count:this.recursiveReadCount+1,limit:this.recursiveReadLimit})},assertPosition(e){if(e<0||e>this.bytes.length-1)throw new Hd({length:this.bytes.length,position:e})},decrementPosition(e){if(e<0)throw new Ud({offset:e});const t=this.position-e;this.assertPosition(t),this.position=t},getReadCount(e){return this.positionReadCount.get(e||this.position)||0},incrementPosition(e){if(e<0)throw new Ud({offset:e});const t=this.position+e;this.assertPosition(t),this.position=t},inspectByte(e){const t=e??this.position;return this.assertPosition(t),this.bytes[t]},inspectBytes(e,t){const n=t??this.position;return this.assertPosition(n+e-1),this.bytes.subarray(n,n+e)},inspectUint8(e){const t=e??this.position;return this.assertPosition(t),this.bytes[t]},inspectUint16(e){const t=e??this.position;return this.assertPosition(t+1),this.dataView.getUint16(t)},inspectUint24(e){const t=e??this.position;return this.assertPosition(t+2),(this.dataView.getUint16(t)<<8)+this.dataView.getUint8(t+2)},inspectUint32(e){const t=e??this.position;return this.assertPosition(t+3),this.dataView.getUint32(t)},pushByte(e){this.assertPosition(this.position),this.bytes[this.position]=e,this.position++},pushBytes(e){this.assertPosition(this.position+e.length-1),this.bytes.set(e,this.position),this.position+=e.length},pushUint8(e){this.assertPosition(this.position),this.bytes[this.position]=e,this.position++},pushUint16(e){this.assertPosition(this.position+1),this.dataView.setUint16(this.position,e),this.position+=2},pushUint24(e){this.assertPosition(this.position+2),this.dataView.setUint16(this.position,e>>8),this.dataView.setUint8(this.position+2,e&255),this.position+=3},pushUint32(e){this.assertPosition(this.position+3),this.dataView.setUint32(this.position,e),this.position+=4},readByte(){this.assertReadLimit(),this._touch();const e=this.inspectByte();return this.position++,e},readBytes(e,t){this.assertReadLimit(),this._touch();const n=this.inspectBytes(e);return this.position+=t??e,n},readUint8(){this.assertReadLimit(),this._touch();const e=this.inspectUint8();return this.position+=1,e},readUint16(){this.assertReadLimit(),this._touch();const e=this.inspectUint16();return this.position+=2,e},readUint24(){this.assertReadLimit(),this._touch();const e=this.inspectUint24();return this.position+=3,e},readUint32(){this.assertReadLimit(),this._touch();const e=this.inspectUint32();return this.position+=4,e},get remaining(){return this.bytes.length-this.position},setPosition(e){const t=this.position;return this.assertPosition(e),this.position=e,()=>this.position=t},_touch(){if(this.recursiveReadLimit===Number.POSITIVE_INFINITY)return;const e=this.getReadCount();this.positionReadCount.set(this.position,e+1),e>0&&this.recursiveReadCount++}};function mi(e,{recursiveReadLimit:t=8192}={}){const n=Object.create(nT);return n.bytes=e,n.dataView=new DataView(e.buffer,e.byteOffset,e.byteLength),n.positionReadCount=new Map,n.recursiveReadLimit=t,n}function aT(e,t={}){typeof t.size<"u"&&Ot(e,{size:t.size});const n=te(e,t);return U0(n,t)}function rT(e,t={}){let n=e;if(typeof t.size<"u"&&(Ot(n,{size:t.size}),n=$t(n)),n.length>1||n[0]>1)throw new Xh(n);return!!n[0]}function f1(e,t={}){typeof t.size<"u"&&Ot(e,{size:t.size});const n=te(e,t);return zt(n,t)}function sT(e,t={}){let n=e;return typeof t.size<"u"&&(Ot(n,{size:t.size}),n=$t(n,{dir:"right"})),new TextDecoder().decode(n)}function qn(e,t){const n=typeof t=="string"?ct(t):t,a=mi(n);if(G0(n)===0&&e.length>0)throw new Un;if(G0(t)&&G0(t)<32)throw new Qb({data:typeof t=="string"?t:te(t),params:e,size:G0(t)});let s=0;const i=[];for(let f=0;f<e.length;++f){const d=e[f];a.setPosition(s);const[b,y]=W6(a,d,{staticPosition:0});s+=y,i.push(b)}return i}function W6(e,t,{staticPosition:n}){const a=pi(t.type);if(a){const[s,i]=a;return oT(e,{...t,type:i},{length:s,staticPosition:n})}if(t.type==="tuple")return cT(e,t,{staticPosition:n});if(t.type==="address")return iT(e);if(t.type==="bool")return fT(e);if(t.type.startsWith("bytes"))return bT(e,t,{staticPosition:n});if(t.type.startsWith("uint")||t.type.startsWith("int"))return dT(e,t);if(t.type==="string")return uT(e,{staticPosition:n});throw new qh(t.type,{docsPath:"/docs/contract/decodeAbiParameters"})}const Gd=32,hi=32;function iT(e){const t=e.readBytes(32);return[Ma(te(Od(t,-20))),32]}function oT(e,t,{length:n,staticPosition:a}){if(!n){const f=f1(e.readBytes(hi)),d=a+f,b=d+Gd;e.setPosition(d);const y=f1(e.readBytes(Gd)),u=Wn(t);let p=0;const m=[];for(let h=0;h<y;++h){e.setPosition(b+(u?h*32:p));const[x,T]=W6(e,t,{staticPosition:b});p+=T,m.push(x)}return e.setPosition(a+32),[m,32]}if(Wn(t)){const f=f1(e.readBytes(hi)),d=a+f,b=[];for(let y=0;y<n;++y){e.setPosition(d+y*32);const[u]=W6(e,t,{staticPosition:d});b.push(u)}return e.setPosition(a+32),[b,32]}let s=0;const i=[];for(let f=0;f<n;++f){const[d,b]=W6(e,t,{staticPosition:a+s});s+=b,i.push(d)}return[i,s]}function fT(e){return[rT(e.readBytes(32),{size:32}),32]}function bT(e,t,{staticPosition:n}){const[a,s]=t.type.split("bytes");if(!s){const f=f1(e.readBytes(32));e.setPosition(n+f);const d=f1(e.readBytes(32));if(d===0)return e.setPosition(n+32),["0x",32];const b=e.readBytes(d);return e.setPosition(n+32),[te(b),32]}return[te(e.readBytes(Number.parseInt(s,10),32)),32]}function dT(e,t){const n=t.type.startsWith("int"),a=Number.parseInt(t.type.split("int")[1]||"256",10),s=e.readBytes(32);return[a>48?aT(s,{signed:n}):f1(s,{signed:n}),32]}function cT(e,t,{staticPosition:n}){const a=t.components.length===0||t.components.some(({name:f})=>!f),s=a?[]:{};let i=0;if(Wn(t)){const f=f1(e.readBytes(hi)),d=n+f;for(let b=0;b<t.components.length;++b){const y=t.components[b];e.setPosition(d+i);const[u,p]=W6(e,y,{staticPosition:d});i+=p,s[a?b:y==null?void 0:y.name]=u}return e.setPosition(n+32),[s,32]}for(let f=0;f<t.components.length;++f){const d=t.components[f],[b,y]=W6(e,d,{staticPosition:n});s[a?f:d==null?void 0:d.name]=b,i+=y}return[s,i]}function uT(e,{staticPosition:t}){const n=f1(e.readBytes(32)),a=t+n;e.setPosition(a);const s=f1(e.readBytes(32));if(s===0)return e.setPosition(t+32),["",32];const i=e.readBytes(s,32),f=sT($t(i));return e.setPosition(t+32),[f,32]}function Wn(e){var a;const{type:t}=e;if(t==="string"||t==="bytes"||t.endsWith("[]"))return!0;if(t==="tuple")return(a=e.components)==null?void 0:a.some(Wn);const n=pi(e.type);return!!(n&&Wn({...e,type:n[1]}))}function gi(e){const{abi:t,data:n}=e,a=D1(n,0,4);if(a==="0x")throw new Un;const i=[...t||[],Fd,eT].find(f=>f.type==="error"&&a===jn(Mt(f)));if(!i)throw new nd(a,{docsPath:"/docs/contract/decodeErrorResult"});return{abiItem:i,args:"inputs"in i&&i.inputs&&i.inputs.length>0?qn(i.inputs,D1(n,4)):void 0,errorName:i.name}}const re=(e,t,n)=>JSON.stringify(e,(a,s)=>typeof s=="bigint"?s.toString():s,n);function zd({abiItem:e,args:t,includeFunctionName:n=!0,includeName:a=!1}){if("name"in e&&"inputs"in e&&e.inputs)return`${n?e.name:""}(${e.inputs.map((s,i)=>`${a&&s.name?`${s.name}: `:""}${typeof t[i]=="object"?re(t[i]):t[i]}`).join(", ")})`}const yT={gwei:9,wei:18},pT={ether:-9,wei:9};function jd(e,t){let n=e.toString();const a=n.startsWith("-");a&&(n=n.slice(1)),n=n.padStart(t,"0");let[s,i]=[n.slice(0,n.length-t),n.slice(n.length-t)];return i=i.replace(/(0+)$/,""),`${a?"-":""}${s||"0"}${i?`.${i}`:""}`}function Ti(e,t="wei"){return jd(e,yT[t])}function xe(e,t="wei"){return jd(e,pT[t])}class lT extends G{constructor({address:t}){super(`State for account "${t}" is set multiple times.`,{name:"AccountStateConflictError"})}}class mT extends G{constructor(){super("state and stateDiff are set on the same account.",{name:"StateAssignmentConflictError"})}}function Vd(e){return e.reduce((t,{slot:n,value:a})=>`${t} ${n}: ${a}
44
+ `,"")}function hT(e){return e.reduce((t,{address:n,...a})=>{let s=`${t} ${n}:
45
+ `;return a.nonce&&(s+=` nonce: ${a.nonce}
46
+ `),a.balance&&(s+=` balance: ${a.balance}
47
+ `),a.code&&(s+=` code: ${a.code}
48
+ `),a.state&&(s+=` state:
49
+ `,s+=Vd(a.state)),a.stateDiff&&(s+=` stateDiff:
50
+ `,s+=Vd(a.stateDiff)),s},` State Override:
51
+ `).slice(0,-1)}function Z6(e){const t=Object.entries(e).map(([a,s])=>s===void 0||s===!1?null:[a,s]).filter(Boolean),n=t.reduce((a,[s])=>Math.max(a,s.length),0);return t.map(([a,s])=>` ${`${a}:`.padEnd(n+1)} ${s}`).join(`
52
+ `)}class gT extends G{constructor(){super(["Cannot specify both a `gasPrice` and a `maxFeePerGas`/`maxPriorityFeePerGas`.","Use `maxFeePerGas`/`maxPriorityFeePerGas` for EIP-1559 compatible networks, and `gasPrice` for others."].join(`
53
+ `),{name:"FeeConflictError"})}}class TT extends G{constructor({v:t}){super(`Invalid \`v\` value "${t}". Expected 27 or 28.`,{name:"InvalidLegacyVError"})}}class wT extends G{constructor({transaction:t}){super("Cannot infer a transaction type from provided transaction.",{metaMessages:["Provided Transaction:","{",Z6(t),"}","","To infer the type, either provide:","- a `type` to the Transaction, or","- an EIP-1559 Transaction with `maxFeePerGas`, or","- an EIP-2930 Transaction with `gasPrice` & `accessList`, or","- an EIP-4844 Transaction with `blobs`, `blobVersionedHashes`, `sidecars`, or","- an EIP-7702 Transaction with `authorizationList`, or","- a Legacy Transaction with `gasPrice`"],name:"InvalidSerializableTransactionError"})}}class vT extends G{constructor({storageKey:t}){super(`Size for storage key "${t}" is invalid. Expected 32 bytes. Got ${Math.floor((t.length-2)/2)} bytes.`,{name:"InvalidStorageKeySizeError"})}}class xT extends G{constructor(t,{account:n,docsPath:a,chain:s,data:i,gas:f,gasPrice:d,maxFeePerGas:b,maxPriorityFeePerGas:y,nonce:u,to:p,value:m}){var x;const h=Z6({chain:s&&`${s==null?void 0:s.name} (id: ${s==null?void 0:s.id})`,from:n==null?void 0:n.address,to:p,value:typeof m<"u"&&`${Ti(m)} ${((x=s==null?void 0:s.nativeCurrency)==null?void 0:x.symbol)||"ETH"}`,data:i,gas:f,gasPrice:typeof d<"u"&&`${xe(d)} gwei`,maxFeePerGas:typeof b<"u"&&`${xe(b)} gwei`,maxPriorityFeePerGas:typeof y<"u"&&`${xe(y)} gwei`,nonce:u});super(t.shortMessage,{cause:t,docsPath:a,metaMessages:[...t.metaMessages?[...t.metaMessages," "]:[],"Request Arguments:",h].filter(Boolean),name:"TransactionExecutionError"}),Object.defineProperty(this,"cause",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.cause=t}}class qd extends G{constructor({blockHash:t,blockNumber:n,blockTag:a,hash:s,index:i}){let f="Transaction";a&&i!==void 0&&(f=`Transaction at block time "${a}" at index "${i}"`),t&&i!==void 0&&(f=`Transaction at block hash "${t}" at index "${i}"`),n&&i!==void 0&&(f=`Transaction at block number "${n}" at index "${i}"`),s&&(f=`Transaction with hash "${s}"`),super(`${f} could not be found.`,{name:"TransactionNotFoundError"})}}class Wd extends G{constructor({hash:t}){super(`Transaction receipt with hash "${t}" could not be found. The Transaction may not be processed on a block yet.`,{name:"TransactionReceiptNotFoundError"})}}class ET extends G{constructor({receipt:t}){super(`Transaction with hash "${t.transactionHash}" reverted.`,{metaMessages:['The receipt marked the transaction as "reverted". This could mean that the function on the contract you are trying to call threw an error.'," ","You can attempt to extract the revert reason by:","- calling the `simulateContract` or `simulateCalls` Action with the `abi` and `functionName` of the contract","- using the `call` Action with raw `data`"],name:"TransactionReceiptRevertedError"}),Object.defineProperty(this,"receipt",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.receipt=t}}class AT extends G{constructor({hash:t}){super(`Timed out while waiting for transaction with hash "${t}" to be confirmed.`,{name:"WaitForTransactionReceiptTimeoutError"})}}const _T=e=>e,Zn=e=>e;class Zd extends G{constructor(t,{account:n,docsPath:a,chain:s,data:i,gas:f,gasPrice:d,maxFeePerGas:b,maxPriorityFeePerGas:y,nonce:u,to:p,value:m,stateOverride:h}){var C;const x=n?ae(n):void 0;let T=Z6({from:x==null?void 0:x.address,to:p,value:typeof m<"u"&&`${Ti(m)} ${((C=s==null?void 0:s.nativeCurrency)==null?void 0:C.symbol)||"ETH"}`,data:i,gas:f,gasPrice:typeof d<"u"&&`${xe(d)} gwei`,maxFeePerGas:typeof b<"u"&&`${xe(b)} gwei`,maxPriorityFeePerGas:typeof y<"u"&&`${xe(y)} gwei`,nonce:u});h&&(T+=`
54
+ ${hT(h)}`),super(t.shortMessage,{cause:t,docsPath:a,metaMessages:[...t.metaMessages?[...t.metaMessages," "]:[],"Raw Call Arguments:",T].filter(Boolean),name:"CallExecutionError"}),Object.defineProperty(this,"cause",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.cause=t}}class wi extends G{constructor(t,{abi:n,args:a,contractAddress:s,docsPath:i,functionName:f,sender:d}){const b=s6({abi:n,args:a,name:f}),y=b?zd({abiItem:b,args:a,includeFunctionName:!1,includeName:!1}):void 0,u=b?Mt(b,{includeName:!0}):void 0,p=Z6({address:s&&_T(s),function:u,args:y&&y!=="()"&&`${[...Array((f==null?void 0:f.length)??0).keys()].map(()=>" ").join("")}${y}`,sender:d});super(t.shortMessage||`An unknown error occurred while executing the contract function "${f}".`,{cause:t,docsPath:i,metaMessages:[...t.metaMessages?[...t.metaMessages," "]:[],p&&"Contract Call:",p].filter(Boolean),name:"ContractFunctionExecutionError"}),Object.defineProperty(this,"abi",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"args",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"cause",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"contractAddress",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"formattedArgs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"functionName",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"sender",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.abi=n,this.args=a,this.cause=t,this.contractAddress=s,this.functionName=f,this.sender=d}}class Oa extends G{constructor({abi:t,data:n,functionName:a,message:s}){let i,f,d,b;if(n&&n!=="0x")try{f=gi({abi:t,data:n});const{abiItem:u,errorName:p,args:m}=f;if(p==="Error")b=m[0];else if(p==="Panic"){const[h]=m;b=Qg[h]}else{const h=u?Mt(u,{includeName:!0}):void 0,x=u&&m?zd({abiItem:u,args:m,includeFunctionName:!1,includeName:!1}):void 0;d=[h?`Error: ${h}`:"",x&&x!=="()"?` ${[...Array((p==null?void 0:p.length)??0).keys()].map(()=>" ").join("")}${x}`:""]}}catch(u){i=u}else s&&(b=s);let y;i instanceof nd&&(y=i.signature,d=[`Unable to decode signature "${y}" as it was not found on the provided ABI.`,"Make sure you are using the correct ABI and that the error exists on it.",`You can look up the decoded signature here: https://openchain.xyz/signatures?query=${y}.`]),super(b&&b!=="execution reverted"||y?[`The contract function "${a}" reverted with the following ${y?"signature":"reason"}:`,b||y].join(`
55
+ `):`The contract function "${a}" reverted.`,{cause:i,metaMessages:d,name:"ContractFunctionRevertedError"}),Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"raw",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"reason",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"signature",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.data=f,this.raw=n,this.reason=b,this.signature=y}}class Yd extends G{constructor({functionName:t}){super(`The contract function "${t}" returned no data ("0x").`,{metaMessages:["This could be due to any of the following:",` - The contract does not have the function "${t}",`," - The parameters passed to the contract function may be invalid, or"," - The address is not a contract."],name:"ContractFunctionZeroDataError"})}}class ST extends G{constructor({factory:t}){super(`Deployment for counterfactual contract call failed${t?` for factory "${t}".`:""}`,{metaMessages:["Please ensure:","- The `factory` is a valid contract deployment factory (ie. Create2 Factory, ERC-4337 Factory, etc).","- The `factoryData` is a valid encoded function call for contract deployment function on the factory."],name:"CounterfactualDeploymentFailedError"})}}class Ra extends G{constructor({data:t,message:n}){super(n||"",{name:"RawContractError"}),Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:3}),Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.data=t}}class i6 extends G{constructor({body:t,cause:n,details:a,headers:s,status:i,url:f}){super("HTTP request failed.",{cause:n,details:a,metaMessages:[i&&`Status: ${i}`,`URL: ${Zn(f)}`,t&&`Request body: ${re(t)}`].filter(Boolean),name:"HttpRequestError"}),Object.defineProperty(this,"body",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"headers",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"status",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"url",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.body=t,this.headers=s,this.status=i,this.url=f}}class vi extends G{constructor({body:t,error:n,url:a}){super("RPC Request failed.",{cause:n,details:n.message,metaMessages:[`URL: ${Zn(a)}`,`Request body: ${re(t)}`],name:"RpcRequestError"}),Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.code=n.code,this.data=n.data}}class Kd extends G{constructor({body:t,url:n}){super("The request took too long to respond.",{details:"The request timed out.",metaMessages:[`URL: ${Zn(n)}`,`Request body: ${re(t)}`],name:"TimeoutError"})}}const IT=-1;class Ue extends G{constructor(t,{code:n,docsPath:a,metaMessages:s,name:i,shortMessage:f}){super(f,{cause:t,docsPath:a,metaMessages:s||(t==null?void 0:t.metaMessages),name:i||"RpcError"}),Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.name=i||t.name,this.code=t instanceof vi?t.code:n??IT}}class Xe extends Ue{constructor(t,n){super(t,n),Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.data=n.data}}class Yn extends Ue{constructor(t){super(t,{code:Yn.code,name:"ParseRpcError",shortMessage:"Invalid JSON was received by the server. An error occurred on the server while parsing the JSON text."})}}Object.defineProperty(Yn,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32700});class Kn extends Ue{constructor(t){super(t,{code:Kn.code,name:"InvalidRequestRpcError",shortMessage:"JSON is not a valid request object."})}}Object.defineProperty(Kn,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32600});class Xn extends Ue{constructor(t,{method:n}={}){super(t,{code:Xn.code,name:"MethodNotFoundRpcError",shortMessage:`The method${n?` "${n}"`:""} does not exist / is not available.`})}}Object.defineProperty(Xn,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32601});class Jn extends Ue{constructor(t){super(t,{code:Jn.code,name:"InvalidParamsRpcError",shortMessage:["Invalid parameters were provided to the RPC method.","Double check you have provided the correct parameters."].join(`
56
+ `)})}}Object.defineProperty(Jn,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32602});class o6 extends Ue{constructor(t){super(t,{code:o6.code,name:"InternalRpcError",shortMessage:"An internal error was received."})}}Object.defineProperty(o6,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32603});class k1 extends Ue{constructor(t){super(t,{code:k1.code,name:"InvalidInputRpcError",shortMessage:["Missing or invalid parameters.","Double check you have provided the correct parameters."].join(`
57
+ `)})}}Object.defineProperty(k1,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32e3});class Qn extends Ue{constructor(t){super(t,{code:Qn.code,name:"ResourceNotFoundRpcError",shortMessage:"Requested resource not found."}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"ResourceNotFoundRpcError"})}}Object.defineProperty(Qn,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32001});class e5 extends Ue{constructor(t){super(t,{code:e5.code,name:"ResourceUnavailableRpcError",shortMessage:"Requested resource not available."})}}Object.defineProperty(e5,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32002});class t5 extends Ue{constructor(t){super(t,{code:t5.code,name:"TransactionRejectedRpcError",shortMessage:"Transaction creation failed."})}}Object.defineProperty(t5,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32003});class f6 extends Ue{constructor(t,{method:n}={}){super(t,{code:f6.code,name:"MethodNotSupportedRpcError",shortMessage:`Method${n?` "${n}"`:""} is not supported.`})}}Object.defineProperty(f6,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32004});class Y6 extends Ue{constructor(t){super(t,{code:Y6.code,name:"LimitExceededRpcError",shortMessage:"Request exceeds defined limit."})}}Object.defineProperty(Y6,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32005});class n5 extends Ue{constructor(t){super(t,{code:n5.code,name:"JsonRpcVersionUnsupportedError",shortMessage:"Version of JSON-RPC protocol is not supported."})}}Object.defineProperty(n5,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32006});class K6 extends Xe{constructor(t){super(t,{code:K6.code,name:"UserRejectedRequestError",shortMessage:"User rejected the request."})}}Object.defineProperty(K6,"code",{enumerable:!0,configurable:!0,writable:!0,value:4001});class a5 extends Xe{constructor(t){super(t,{code:a5.code,name:"UnauthorizedProviderError",shortMessage:"The requested method and/or account has not been authorized by the user."})}}Object.defineProperty(a5,"code",{enumerable:!0,configurable:!0,writable:!0,value:4100});class r5 extends Xe{constructor(t,{method:n}={}){super(t,{code:r5.code,name:"UnsupportedProviderMethodError",shortMessage:`The Provider does not support the requested method${n?` " ${n}"`:""}.`})}}Object.defineProperty(r5,"code",{enumerable:!0,configurable:!0,writable:!0,value:4200});class s5 extends Xe{constructor(t){super(t,{code:s5.code,name:"ProviderDisconnectedError",shortMessage:"The Provider is disconnected from all chains."})}}Object.defineProperty(s5,"code",{enumerable:!0,configurable:!0,writable:!0,value:4900});class i5 extends Xe{constructor(t){super(t,{code:i5.code,name:"ChainDisconnectedError",shortMessage:"The Provider is not connected to the requested chain."})}}Object.defineProperty(i5,"code",{enumerable:!0,configurable:!0,writable:!0,value:4901});class o5 extends Xe{constructor(t){super(t,{code:o5.code,name:"SwitchChainError",shortMessage:"An error occurred when attempting to switch chain."})}}Object.defineProperty(o5,"code",{enumerable:!0,configurable:!0,writable:!0,value:4902});class f5 extends Xe{constructor(t){super(t,{code:f5.code,name:"UnsupportedNonOptionalCapabilityError",shortMessage:"This Wallet does not support a capability that was not marked as optional."})}}Object.defineProperty(f5,"code",{enumerable:!0,configurable:!0,writable:!0,value:5700});class b5 extends Xe{constructor(t){super(t,{code:b5.code,name:"UnsupportedChainIdError",shortMessage:"This Wallet does not support the requested chain ID."})}}Object.defineProperty(b5,"code",{enumerable:!0,configurable:!0,writable:!0,value:5710});class d5 extends Xe{constructor(t){super(t,{code:d5.code,name:"DuplicateIdError",shortMessage:"There is already a bundle submitted with this ID."})}}Object.defineProperty(d5,"code",{enumerable:!0,configurable:!0,writable:!0,value:5720});class c5 extends Xe{constructor(t){super(t,{code:c5.code,name:"UnknownBundleIdError",shortMessage:"This bundle id is unknown / has not been submitted"})}}Object.defineProperty(c5,"code",{enumerable:!0,configurable:!0,writable:!0,value:5730});class u5 extends Xe{constructor(t){super(t,{code:u5.code,name:"BundleTooLargeError",shortMessage:"The call bundle is too large for the Wallet to process."})}}Object.defineProperty(u5,"code",{enumerable:!0,configurable:!0,writable:!0,value:5740});class y5 extends Xe{constructor(t){super(t,{code:y5.code,name:"AtomicReadyWalletRejectedUpgradeError",shortMessage:"The Wallet can support atomicity after an upgrade, but the user rejected the upgrade."})}}Object.defineProperty(y5,"code",{enumerable:!0,configurable:!0,writable:!0,value:5750});class p5 extends Xe{constructor(t){super(t,{code:p5.code,name:"AtomicityNotSupportedError",shortMessage:"The wallet does not support atomic execution but the request requires it."})}}Object.defineProperty(p5,"code",{enumerable:!0,configurable:!0,writable:!0,value:5760});class CT extends Ue{constructor(t){super(t,{name:"UnknownRpcError",shortMessage:"An unknown RPC error occurred."})}}const PT=3;function b6(e,{abi:t,address:n,args:a,docsPath:s,functionName:i,sender:f}){const d=e instanceof Ra?e:e instanceof G?e.walk(x=>"data"in x)||e.walk():{},{code:b,data:y,details:u,message:p,shortMessage:m}=d,h=e instanceof Un?new Yd({functionName:i}):[PT,o6.code].includes(b)&&(y||u||p||m)||b===k1.code&&u==="execution reverted"&&y?new Oa({abi:t,data:typeof y=="object"?y.data:y,functionName:i,message:d instanceof vi?u:m??p}):e;return new wi(h,{abi:t,args:a,contractAddress:n,docsPath:s,functionName:i,sender:f})}function MT(e){const t=z0(`0x${e.substring(4)}`).substring(26);return Ma(`0x${t}`)}async function $T({hash:e,signature:t}){const n=dt(e)?e:se(e),{secp256k1:a}=await Promise.resolve().then(()=>g_);return`0x${(()=>{if(typeof t=="object"&&"r"in t&&"s"in t){const{r:y,s:u,v:p,yParity:m}=t,h=Number(m??p),x=Xd(h);return new a.Signature(U0(y),U0(u)).addRecoveryBit(x)}const f=dt(t)?t:se(t);if(G0(f)!==65)throw new Error("invalid signature length");const d=zt(`0x${f.slice(130)}`),b=Xd(d);return a.Signature.fromCompact(f.substring(2,130)).addRecoveryBit(b)})().recoverPublicKey(n.substring(2)).toHex(!1)}`}function Xd(e){if(e===0||e===1)return e;if(e===27)return 0;if(e===28)return 1;throw new Error("Invalid yParityOrV value")}async function Jd({hash:e,signature:t}){return MT(await $T({hash:e,signature:t}))}function L1(e,t="hex"){const n=Qd(e),a=mi(new Uint8Array(n.length));return n.encode(a),t==="hex"?te(a.bytes):a.bytes}function Qd(e){return Array.isArray(e)?OT(e.map(t=>Qd(t))):RT(e)}function OT(e){const t=e.reduce((s,i)=>s+i.length,0),n=ec(t);return{length:t<=55?1+t:1+n+t,encode(s){t<=55?s.pushByte(192+t):(s.pushByte(247+n),n===1?s.pushUint8(t):n===2?s.pushUint16(t):n===3?s.pushUint24(t):s.pushUint32(t));for(const{encode:i}of e)i(s)}}}function RT(e){const t=typeof e=="string"?ct(e):e,n=ec(t.length);return{length:t.length===1&&t[0]<128?1:t.length<=55?1+t.length:1+n+t.length,encode(s){t.length===1&&t[0]<128?s.pushBytes(t):t.length<=55?(s.pushByte(128+t.length),s.pushBytes(t)):(s.pushByte(183+n),n===1?s.pushUint8(t.length):n===2?s.pushUint16(t.length):n===3?s.pushUint24(t.length):s.pushUint32(t.length),s.pushBytes(t))}}}function ec(e){if(e<2**8)return 1;if(e<2**16)return 2;if(e<2**24)return 3;if(e<2**32)return 4;throw new G("Length is too large.")}function BT(e){const{chainId:t,nonce:n,to:a}=e,s=e.contractAddress??e.address,i=z0(Fe(["0x05",L1([t?t0(t):"0x",s,n?t0(n):"0x"])]));return a==="bytes"?ct(i):i}async function xi(e){const{authorization:t,signature:n}=e;return Jd({hash:BT(t),signature:n??t})}class NT extends G{constructor(t,{account:n,docsPath:a,chain:s,data:i,gas:f,gasPrice:d,maxFeePerGas:b,maxPriorityFeePerGas:y,nonce:u,to:p,value:m}){var x;const h=Z6({from:n==null?void 0:n.address,to:p,value:typeof m<"u"&&`${Ti(m)} ${((x=s==null?void 0:s.nativeCurrency)==null?void 0:x.symbol)||"ETH"}`,data:i,gas:f,gasPrice:typeof d<"u"&&`${xe(d)} gwei`,maxFeePerGas:typeof b<"u"&&`${xe(b)} gwei`,maxPriorityFeePerGas:typeof y<"u"&&`${xe(y)} gwei`,nonce:u});super(t.shortMessage,{cause:t,docsPath:a,metaMessages:[...t.metaMessages?[...t.metaMessages," "]:[],"Estimate Gas Arguments:",h].filter(Boolean),name:"EstimateGasExecutionError"}),Object.defineProperty(this,"cause",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.cause=t}}let X6=class extends G{constructor({cause:t,message:n}={}){var s;const a=(s=n==null?void 0:n.replace("execution reverted: ",""))==null?void 0:s.replace("execution reverted","");super(`Execution reverted ${a?`with reason: ${a}`:"for an unknown reason"}.`,{cause:t,name:"ExecutionRevertedError"})}};Object.defineProperty(X6,"code",{enumerable:!0,configurable:!0,writable:!0,value:3}),Object.defineProperty(X6,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/execution reverted/});class d6 extends G{constructor({cause:t,maxFeePerGas:n}={}){super(`The fee cap (\`maxFeePerGas\`${n?` = ${xe(n)} gwei`:""}) cannot be higher than the maximum allowed value (2^256-1).`,{cause:t,name:"FeeCapTooHighError"})}}Object.defineProperty(d6,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/max fee per gas higher than 2\^256-1|fee cap higher than 2\^256-1/});class Ei extends G{constructor({cause:t,maxFeePerGas:n}={}){super(`The fee cap (\`maxFeePerGas\`${n?` = ${xe(n)}`:""} gwei) cannot be lower than the block base fee.`,{cause:t,name:"FeeCapTooLowError"})}}Object.defineProperty(Ei,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/max fee per gas less than block base fee|fee cap less than block base fee|transaction is outdated/});class Ai extends G{constructor({cause:t,nonce:n}={}){super(`Nonce provided for the transaction ${n?`(${n}) `:""}is higher than the next one expected.`,{cause:t,name:"NonceTooHighError"})}}Object.defineProperty(Ai,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/nonce too high/});class _i extends G{constructor({cause:t,nonce:n}={}){super([`Nonce provided for the transaction ${n?`(${n}) `:""}is lower than the current nonce of the account.`,"Try increasing the nonce or find the latest nonce with `getTransactionCount`."].join(`
58
+ `),{cause:t,name:"NonceTooLowError"})}}Object.defineProperty(_i,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/nonce too low|transaction already imported|already known/});class Si extends G{constructor({cause:t,nonce:n}={}){super(`Nonce provided for the transaction ${n?`(${n}) `:""}exceeds the maximum allowed nonce.`,{cause:t,name:"NonceMaxValueError"})}}Object.defineProperty(Si,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/nonce has max value/});class Ii extends G{constructor({cause:t}={}){super(["The total cost (gas * gas fee + value) of executing this transaction exceeds the balance of the account."].join(`
59
+ `),{cause:t,metaMessages:["This error could arise when the account does not have enough funds to:"," - pay for the total gas fee,"," - pay for the value to send."," ","The cost of the transaction is calculated as `gas * gas fee + value`, where:"," - `gas` is the amount of gas needed for transaction to execute,"," - `gas fee` is the gas fee,"," - `value` is the amount of ether to send to the recipient."],name:"InsufficientFundsError"})}}Object.defineProperty(Ii,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/insufficient funds|exceeds transaction sender account balance/});class Ci extends G{constructor({cause:t,gas:n}={}){super(`The amount of gas ${n?`(${n}) `:""}provided for the transaction exceeds the limit allowed for the block.`,{cause:t,name:"IntrinsicGasTooHighError"})}}Object.defineProperty(Ci,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/intrinsic gas too high|gas limit reached/});class Pi extends G{constructor({cause:t,gas:n}={}){super(`The amount of gas ${n?`(${n}) `:""}provided for the transaction is too low.`,{cause:t,name:"IntrinsicGasTooLowError"})}}Object.defineProperty(Pi,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/intrinsic gas too low/});class Mi extends G{constructor({cause:t}){super("The transaction type is not supported for this chain.",{cause:t,name:"TransactionTypeNotSupportedError"})}}Object.defineProperty(Mi,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/transaction type not valid/});class l5 extends G{constructor({cause:t,maxPriorityFeePerGas:n,maxFeePerGas:a}={}){super([`The provided tip (\`maxPriorityFeePerGas\`${n?` = ${xe(n)} gwei`:""}) cannot be higher than the fee cap (\`maxFeePerGas\`${a?` = ${xe(a)} gwei`:""}).`].join(`
60
+ `),{cause:t,name:"TipAboveFeeCapError"})}}Object.defineProperty(l5,"nodeMessage",{enumerable:!0,configurable:!0,writable:!0,value:/max priority fee per gas higher than max fee per gas|tip higher than fee cap/});class m5 extends G{constructor({cause:t}){super(`An error occurred while executing: ${t==null?void 0:t.shortMessage}`,{cause:t,name:"UnknownNodeError"})}}function Ba(e,t){const n=(e.details||"").toLowerCase(),a=e instanceof G?e.walk(s=>(s==null?void 0:s.code)===X6.code):e;return a instanceof G?new X6({cause:e,message:a.details}):X6.nodeMessage.test(n)?new X6({cause:e,message:e.details}):d6.nodeMessage.test(n)?new d6({cause:e,maxFeePerGas:t==null?void 0:t.maxFeePerGas}):Ei.nodeMessage.test(n)?new Ei({cause:e,maxFeePerGas:t==null?void 0:t.maxFeePerGas}):Ai.nodeMessage.test(n)?new Ai({cause:e,nonce:t==null?void 0:t.nonce}):_i.nodeMessage.test(n)?new _i({cause:e,nonce:t==null?void 0:t.nonce}):Si.nodeMessage.test(n)?new Si({cause:e,nonce:t==null?void 0:t.nonce}):Ii.nodeMessage.test(n)?new Ii({cause:e}):Ci.nodeMessage.test(n)?new Ci({cause:e,gas:t==null?void 0:t.gas}):Pi.nodeMessage.test(n)?new Pi({cause:e,gas:t==null?void 0:t.gas}):Mi.nodeMessage.test(n)?new Mi({cause:e}):l5.nodeMessage.test(n)?new l5({cause:e,maxFeePerGas:t==null?void 0:t.maxFeePerGas,maxPriorityFeePerGas:t==null?void 0:t.maxPriorityFeePerGas}):new m5({cause:e})}function DT(e,{docsPath:t,...n}){const a=(()=>{const s=Ba(e,n);return s instanceof m5?e:s})();return new NT(a,{docsPath:t,...n})}function Na(e,{format:t}){if(!t)return{};const n={};function a(i){const f=Object.keys(i);for(const d of f)d in e&&(n[d]=e[d]),i[d]&&typeof i[d]=="object"&&!Array.isArray(i[d])&&a(i[d])}const s=t(e||{});return a(s),n}function $i(e,t){return({exclude:n,format:a})=>({exclude:n,format:(s,i)=>{const f=t(s,i);if(n)for(const d of n)delete f[d];return{...f,...a(s,i)}},type:e})}const kT={legacy:"0x0",eip2930:"0x1",eip1559:"0x2",eip4844:"0x3",eip7702:"0x4"};function h5(e,t){const n={};return typeof e.authorizationList<"u"&&(n.authorizationList=LT(e.authorizationList)),typeof e.accessList<"u"&&(n.accessList=e.accessList),typeof e.blobVersionedHashes<"u"&&(n.blobVersionedHashes=e.blobVersionedHashes),typeof e.blobs<"u"&&(typeof e.blobs[0]!="string"?n.blobs=e.blobs.map(a=>te(a)):n.blobs=e.blobs),typeof e.data<"u"&&(n.data=e.data),e.account&&(n.from=e.account.address),typeof e.from<"u"&&(n.from=e.from),typeof e.gas<"u"&&(n.gas=t0(e.gas)),typeof e.gasPrice<"u"&&(n.gasPrice=t0(e.gasPrice)),typeof e.maxFeePerBlobGas<"u"&&(n.maxFeePerBlobGas=t0(e.maxFeePerBlobGas)),typeof e.maxFeePerGas<"u"&&(n.maxFeePerGas=t0(e.maxFeePerGas)),typeof e.maxPriorityFeePerGas<"u"&&(n.maxPriorityFeePerGas=t0(e.maxPriorityFeePerGas)),typeof e.nonce<"u"&&(n.nonce=t0(e.nonce)),typeof e.to<"u"&&(n.to=e.to),typeof e.type<"u"&&(n.type=kT[e.type]),typeof e.value<"u"&&(n.value=t0(e.value)),n}function LT(e){return e.map(t=>({address:t.address,r:t.r?t0(BigInt(t.r)):t.r,s:t.s?t0(BigInt(t.s)):t.s,chainId:t0(t.chainId),nonce:t0(t.nonce),...typeof t.yParity<"u"?{yParity:t0(t.yParity)}:{},...typeof t.v<"u"&&typeof t.yParity>"u"?{v:t0(t.v)}:{}}))}function tc(e){if(!(!e||e.length===0))return e.reduce((t,{slot:n,value:a})=>{if(n.length!==66)throw new dd({size:n.length,targetSize:66,type:"hex"});if(a.length!==66)throw new dd({size:a.length,targetSize:66,type:"hex"});return t[n]=a,t},{})}function FT(e){const{balance:t,nonce:n,state:a,stateDiff:s,code:i}=e,f={};if(i!==void 0&&(f.code=i),t!==void 0&&(f.balance=t0(t)),n!==void 0&&(f.nonce=t0(n)),a!==void 0&&(f.state=tc(a)),s!==void 0){if(f.state)throw new mT;f.stateDiff=tc(s)}return f}function Da(e){if(!e)return;const t={};for(const{address:n,...a}of e){if(!ne(n,{strict:!1}))throw new ve({address:n});if(t[n])throw new lT({address:n});t[n]=FT(a)}return t}const ka=2n**256n-1n;function J6(e){const{account:t,gasPrice:n,maxFeePerGas:a,maxPriorityFeePerGas:s,to:i}=e,f=t?ae(t):void 0;if(f&&!ne(f.address))throw new ve({address:f.address});if(i&&!ne(i))throw new ve({address:i});if(typeof n<"u"&&(typeof a<"u"||typeof s<"u"))throw new gT;if(a&&a>ka)throw new d6({maxFeePerGas:a});if(s&&a&&s>a)throw new l5({maxFeePerGas:a,maxPriorityFeePerGas:s})}class UT extends G{constructor(){super("`baseFeeMultiplier` must be greater than 1.",{name:"BaseFeeScalarError"})}}class Oi extends G{constructor(){super("Chain does not support EIP-1559 fees.",{name:"Eip1559FeesNotSupportedError"})}}class HT extends G{constructor({maxPriorityFeePerGas:t}){super(`\`maxFeePerGas\` cannot be less than the \`maxPriorityFeePerGas\` (${xe(t)} gwei).`,{name:"MaxFeePerGasTooLowError"})}}class nc extends G{constructor({blockHash:t,blockNumber:n}){let a="Block";t&&(a=`Block at hash "${t}"`),n&&(a=`Block at number "${n}"`),super(`${a} could not be found.`,{name:"BlockNotFoundError"})}}const ac={"0x0":"legacy","0x1":"eip2930","0x2":"eip1559","0x3":"eip4844","0x4":"eip7702"};function La(e,t){const n={...e,blockHash:e.blockHash?e.blockHash:null,blockNumber:e.blockNumber?BigInt(e.blockNumber):null,chainId:e.chainId?zt(e.chainId):void 0,gas:e.gas?BigInt(e.gas):void 0,gasPrice:e.gasPrice?BigInt(e.gasPrice):void 0,maxFeePerBlobGas:e.maxFeePerBlobGas?BigInt(e.maxFeePerBlobGas):void 0,maxFeePerGas:e.maxFeePerGas?BigInt(e.maxFeePerGas):void 0,maxPriorityFeePerGas:e.maxPriorityFeePerGas?BigInt(e.maxPriorityFeePerGas):void 0,nonce:e.nonce?zt(e.nonce):void 0,to:e.to?e.to:null,transactionIndex:e.transactionIndex?Number(e.transactionIndex):null,type:e.type?ac[e.type]:void 0,typeHex:e.type?e.type:void 0,value:e.value?BigInt(e.value):void 0,v:e.v?BigInt(e.v):void 0};return e.authorizationList&&(n.authorizationList=zT(e.authorizationList)),n.yParity=(()=>{if(e.yParity)return Number(e.yParity);if(typeof n.v=="bigint"){if(n.v===0n||n.v===27n)return 0;if(n.v===1n||n.v===28n)return 1;if(n.v>=35n)return n.v%2n===0n?1:0}})(),n.type==="legacy"&&(delete n.accessList,delete n.maxFeePerBlobGas,delete n.maxFeePerGas,delete n.maxPriorityFeePerGas,delete n.yParity),n.type==="eip2930"&&(delete n.maxFeePerBlobGas,delete n.maxFeePerGas,delete n.maxPriorityFeePerGas),n.type==="eip1559"&&delete n.maxFeePerBlobGas,n}const GT=$i("transaction",La);function zT(e){return e.map(t=>({address:t.address,chainId:Number(t.chainId),nonce:Number(t.nonce),r:t.r,s:t.s,yParity:Number(t.yParity)}))}function Ri(e,t){const n=(e.transactions??[]).map(a=>typeof a=="string"?a:La(a));return{...e,baseFeePerGas:e.baseFeePerGas?BigInt(e.baseFeePerGas):null,blobGasUsed:e.blobGasUsed?BigInt(e.blobGasUsed):void 0,difficulty:e.difficulty?BigInt(e.difficulty):void 0,excessBlobGas:e.excessBlobGas?BigInt(e.excessBlobGas):void 0,gasLimit:e.gasLimit?BigInt(e.gasLimit):void 0,gasUsed:e.gasUsed?BigInt(e.gasUsed):void 0,hash:e.hash?e.hash:null,logsBloom:e.logsBloom?e.logsBloom:null,nonce:e.nonce?e.nonce:null,number:e.number?BigInt(e.number):null,size:e.size?BigInt(e.size):void 0,timestamp:e.timestamp?BigInt(e.timestamp):void 0,transactions:n,totalDifficulty:e.totalDifficulty?BigInt(e.totalDifficulty):null}}const jT=$i("block",Ri);async function yt(e,{blockHash:t,blockNumber:n,blockTag:a=e.experimental_blockTag??"latest",includeTransactions:s}={}){var y,u,p;const i=s??!1,f=n!==void 0?t0(n):void 0;let d=null;if(t?d=await e.request({method:"eth_getBlockByHash",params:[t,i]},{dedupe:!0}):d=await e.request({method:"eth_getBlockByNumber",params:[f||a,i]},{dedupe:!!f}),!d)throw new nc({blockHash:t,blockNumber:n});return(((p=(u=(y=e.chain)==null?void 0:y.formatters)==null?void 0:u.block)==null?void 0:p.format)||Ri)(d,"getBlock")}async function Bi(e){const t=await e.request({method:"eth_gasPrice"});return BigInt(t)}async function VT(e,t){return rc(e,t)}async function rc(e,t){var i,f;const{block:n,chain:a=e.chain,request:s}=t||{};try{const d=((i=a==null?void 0:a.fees)==null?void 0:i.maxPriorityFeePerGas)??((f=a==null?void 0:a.fees)==null?void 0:f.defaultPriorityFee);if(typeof d=="function"){const y=n||await d0(e,yt,"getBlock")({}),u=await d({block:y,client:e,request:s});if(u===null)throw new Error;return u}if(typeof d<"u")return d;const b=await e.request({method:"eth_maxPriorityFeePerGas"});return U0(b)}catch{const[d,b]=await Promise.all([n?Promise.resolve(n):d0(e,yt,"getBlock")({}),d0(e,Bi,"getGasPrice")({})]);if(typeof d.baseFeePerGas!="bigint")throw new Oi;const y=b-d.baseFeePerGas;return y<0n?0n:y}}async function sc(e,t){return Ni(e,t)}async function Ni(e,t){var m,h;const{block:n,chain:a=e.chain,request:s,type:i="eip1559"}=t||{},f=await(async()=>{var x,T;return typeof((x=a==null?void 0:a.fees)==null?void 0:x.baseFeeMultiplier)=="function"?a.fees.baseFeeMultiplier({block:n,client:e,request:s}):((T=a==null?void 0:a.fees)==null?void 0:T.baseFeeMultiplier)??1.2})();if(f<1)throw new UT;const b=10**(((m=f.toString().split(".")[1])==null?void 0:m.length)??0),y=x=>x*BigInt(Math.ceil(f*b))/BigInt(b),u=n||await d0(e,yt,"getBlock")({});if(typeof((h=a==null?void 0:a.fees)==null?void 0:h.estimateFeesPerGas)=="function"){const x=await a.fees.estimateFeesPerGas({block:n,client:e,multiply:y,request:s,type:i});if(x!==null)return x}if(i==="eip1559"){if(typeof u.baseFeePerGas!="bigint")throw new Oi;const x=typeof(s==null?void 0:s.maxPriorityFeePerGas)=="bigint"?s.maxPriorityFeePerGas:await rc(e,{block:u,chain:a,request:s}),T=y(u.baseFeePerGas);return{maxFeePerGas:(s==null?void 0:s.maxFeePerGas)??T+x,maxPriorityFeePerGas:x}}return{gasPrice:(s==null?void 0:s.gasPrice)??y(await d0(e,Bi,"getGasPrice")({}))}}async function Di(e,{address:t,blockTag:n="latest",blockNumber:a}){const s=await e.request({method:"eth_getTransactionCount",params:[t,typeof a=="bigint"?t0(a):n]},{dedupe:!!a});return zt(s)}function ki(e){const{kzg:t}=e,n=e.to??(typeof e.blobs[0]=="string"?"hex":"bytes"),a=typeof e.blobs[0]=="string"?e.blobs.map(i=>ct(i)):e.blobs,s=[];for(const i of a)s.push(Uint8Array.from(t.blobToKzgCommitment(i)));return n==="bytes"?s:s.map(i=>te(i))}function Li(e){const{kzg:t}=e,n=e.to??(typeof e.blobs[0]=="string"?"hex":"bytes"),a=typeof e.blobs[0]=="string"?e.blobs.map(f=>ct(f)):e.blobs,s=typeof e.commitments[0]=="string"?e.commitments.map(f=>ct(f)):e.commitments,i=[];for(let f=0;f<a.length;f++){const d=a[f],b=s[f];i.push(Uint8Array.from(t.computeBlobKzgProof(d,b)))}return n==="bytes"?i:i.map(f=>te(f))}function qT(e,t,n,a){if(typeof e.setBigUint64=="function")return e.setBigUint64(t,n,a);const s=BigInt(32),i=BigInt(4294967295),f=Number(n>>s&i),d=Number(n&i),b=a?4:0,y=a?0:4;e.setUint32(t+b,f,a),e.setUint32(t+y,d,a)}function WT(e,t,n){return e&t^~e&n}function ZT(e,t,n){return e&t^e&n^t&n}class ic extends oi{constructor(t,n,a,s){super(),this.finished=!1,this.length=0,this.pos=0,this.destroyed=!1,this.blockLen=t,this.outputLen=n,this.padOffset=a,this.isLE=s,this.buffer=new Uint8Array(t),this.view=ii(this.buffer)}update(t){q6(this),t=Ia(t),B1(t);const{view:n,buffer:a,blockLen:s}=this,i=t.length;for(let f=0;f<i;){const d=Math.min(s-this.pos,i-f);if(d===s){const b=ii(t);for(;s<=i-f;f+=s)this.process(b,f);continue}a.set(t.subarray(f,f+d),this.pos),this.pos+=d,f+=d,this.pos===s&&(this.process(n,0),this.pos=0)}return this.length+=t.length,this.roundClean(),this}digestInto(t){q6(this),hd(t,this),this.finished=!0;const{buffer:n,view:a,blockLen:s,isLE:i}=this;let{pos:f}=this;n[f++]=128,N1(this.buffer.subarray(f)),this.padOffset>s-f&&(this.process(a,0),f=0);for(let p=f;p<s;p++)n[p]=0;qT(a,s-8,BigInt(this.length*8),i),this.process(a,0);const d=ii(t),b=this.outputLen;if(b%4)throw new Error("_sha2: outputLen should be aligned to 32bit");const y=b/4,u=this.get();if(y>u.length)throw new Error("_sha2: outputLen bigger than state");for(let p=0;p<y;p++)d.setUint32(4*p,u[p],i)}digest(){const{buffer:t,outputLen:n}=this;this.digestInto(t);const a=t.slice(0,n);return this.destroy(),a}_cloneInto(t){t||(t=new this.constructor),t.set(...this.get());const{blockLen:n,buffer:a,length:s,finished:i,destroyed:f,pos:d}=this;return t.destroyed=f,t.finished=i,t.length=s,t.pos=d,s%n&&t.buffer.set(a),t}clone(){return this._cloneInto()}}const F1=Uint32Array.from([1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225]),Ee=Uint32Array.from([3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]),Ae=Uint32Array.from([1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209]),YT=Uint32Array.from([1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298]),U1=new Uint32Array(64);class KT extends ic{constructor(t=32){super(64,t,8,!1),this.A=F1[0]|0,this.B=F1[1]|0,this.C=F1[2]|0,this.D=F1[3]|0,this.E=F1[4]|0,this.F=F1[5]|0,this.G=F1[6]|0,this.H=F1[7]|0}get(){const{A:t,B:n,C:a,D:s,E:i,F:f,G:d,H:b}=this;return[t,n,a,s,i,f,d,b]}set(t,n,a,s,i,f,d,b){this.A=t|0,this.B=n|0,this.C=a|0,this.D=s|0,this.E=i|0,this.F=f|0,this.G=d|0,this.H=b|0}process(t,n){for(let p=0;p<16;p++,n+=4)U1[p]=t.getUint32(n,!1);for(let p=16;p<64;p++){const m=U1[p-15],h=U1[p-2],x=Vt(m,7)^Vt(m,18)^m>>>3,T=Vt(h,17)^Vt(h,19)^h>>>10;U1[p]=T+U1[p-7]+x+U1[p-16]|0}let{A:a,B:s,C:i,D:f,E:d,F:b,G:y,H:u}=this;for(let p=0;p<64;p++){const m=Vt(d,6)^Vt(d,11)^Vt(d,25),h=u+m+WT(d,b,y)+YT[p]+U1[p]|0,T=(Vt(a,2)^Vt(a,13)^Vt(a,22))+ZT(a,s,i)|0;u=y,y=b,b=d,d=f+h|0,f=i,i=s,s=a,a=h+T|0}a=a+this.A|0,s=s+this.B|0,i=i+this.C|0,f=f+this.D|0,d=d+this.E|0,b=b+this.F|0,y=y+this.G|0,u=u+this.H|0,this.set(a,s,i,f,d,b,y,u)}roundClean(){N1(U1)}destroy(){this.set(0,0,0,0,0,0,0,0),N1(this.buffer)}}const oc=pd(["0x428a2f98d728ae22","0x7137449123ef65cd","0xb5c0fbcfec4d3b2f","0xe9b5dba58189dbbc","0x3956c25bf348b538","0x59f111f1b605d019","0x923f82a4af194f9b","0xab1c5ed5da6d8118","0xd807aa98a3030242","0x12835b0145706fbe","0x243185be4ee4b28c","0x550c7dc3d5ffb4e2","0x72be5d74f27b896f","0x80deb1fe3b1696b1","0x9bdc06a725c71235","0xc19bf174cf692694","0xe49b69c19ef14ad2","0xefbe4786384f25e3","0x0fc19dc68b8cd5b5","0x240ca1cc77ac9c65","0x2de92c6f592b0275","0x4a7484aa6ea6e483","0x5cb0a9dcbd41fbd4","0x76f988da831153b5","0x983e5152ee66dfab","0xa831c66d2db43210","0xb00327c898fb213f","0xbf597fc7beef0ee4","0xc6e00bf33da88fc2","0xd5a79147930aa725","0x06ca6351e003826f","0x142929670a0e6e70","0x27b70a8546d22ffc","0x2e1b21385c26c926","0x4d2c6dfc5ac42aed","0x53380d139d95b3df","0x650a73548baf63de","0x766a0abb3c77b2a8","0x81c2c92e47edaee6","0x92722c851482353b","0xa2bfe8a14cf10364","0xa81a664bbc423001","0xc24b8b70d0f89791","0xc76c51a30654be30","0xd192e819d6ef5218","0xd69906245565a910","0xf40e35855771202a","0x106aa07032bbd1b8","0x19a4c116b8d2d0c8","0x1e376c085141ab53","0x2748774cdf8eeb99","0x34b0bcb5e19b48a8","0x391c0cb3c5c95a63","0x4ed8aa4ae3418acb","0x5b9cca4f7763e373","0x682e6ff3d6b2b8a3","0x748f82ee5defb2fc","0x78a5636f43172f60","0x84c87814a1f0ab72","0x8cc702081a6439ec","0x90befffa23631e28","0xa4506cebde82bde9","0xbef9a3f7b2c67915","0xc67178f2e372532b","0xca273eceea26619c","0xd186b8c721c0c207","0xeada7dd6cde0eb1e","0xf57d4f7fee6ed178","0x06f067aa72176fba","0x0a637dc5a2c898a6","0x113f9804bef90dae","0x1b710b35131c471b","0x28db77f523047d84","0x32caab7b40c72493","0x3c9ebe0a15c9bebc","0x431d67c49c100d4c","0x4cc5d4becb3e42b6","0x597f299cfc657e2a","0x5fcb6fab3ad6faec","0x6c44198c4a475817"].map(e=>BigInt(e))),XT=oc[0],JT=oc[1],H1=new Uint32Array(80),G1=new Uint32Array(80);class fc extends ic{constructor(t=64){super(128,t,16,!1),this.Ah=Ae[0]|0,this.Al=Ae[1]|0,this.Bh=Ae[2]|0,this.Bl=Ae[3]|0,this.Ch=Ae[4]|0,this.Cl=Ae[5]|0,this.Dh=Ae[6]|0,this.Dl=Ae[7]|0,this.Eh=Ae[8]|0,this.El=Ae[9]|0,this.Fh=Ae[10]|0,this.Fl=Ae[11]|0,this.Gh=Ae[12]|0,this.Gl=Ae[13]|0,this.Hh=Ae[14]|0,this.Hl=Ae[15]|0}get(){const{Ah:t,Al:n,Bh:a,Bl:s,Ch:i,Cl:f,Dh:d,Dl:b,Eh:y,El:u,Fh:p,Fl:m,Gh:h,Gl:x,Hh:T,Hl:C}=this;return[t,n,a,s,i,f,d,b,y,u,p,m,h,x,T,C]}set(t,n,a,s,i,f,d,b,y,u,p,m,h,x,T,C){this.Ah=t|0,this.Al=n|0,this.Bh=a|0,this.Bl=s|0,this.Ch=i|0,this.Cl=f|0,this.Dh=d|0,this.Dl=b|0,this.Eh=y|0,this.El=u|0,this.Fh=p|0,this.Fl=m|0,this.Gh=h|0,this.Gl=x|0,this.Hh=T|0,this.Hl=C|0}process(t,n){for(let A=0;A<16;A++,n+=4)H1[A]=t.getUint32(n),G1[A]=t.getUint32(n+=4);for(let A=16;A<80;A++){const E=H1[A-15]|0,$=G1[A-15]|0,L=G6(E,$,1)^G6(E,$,8)^ld(E,$,7),R=z6(E,$,1)^z6(E,$,8)^md(E,$,7),D=H1[A-2]|0,q=G1[A-2]|0,e0=G6(D,q,19)^_a(D,q,61)^ld(D,q,6),z=z6(D,q,19)^Sa(D,q,61)^md(D,q,6),K=yg(R,z,G1[A-7],G1[A-16]),W=pg(K,L,e0,H1[A-7],H1[A-16]);H1[A]=W|0,G1[A]=K|0}let{Ah:a,Al:s,Bh:i,Bl:f,Ch:d,Cl:b,Dh:y,Dl:u,Eh:p,El:m,Fh:h,Fl:x,Gh:T,Gl:C,Hh:S,Hl:H}=this;for(let A=0;A<80;A++){const E=G6(p,m,14)^G6(p,m,18)^_a(p,m,41),$=z6(p,m,14)^z6(p,m,18)^Sa(p,m,41),L=p&h^~p&T,R=m&x^~m&C,D=lg(H,$,R,JT[A],G1[A]),q=mg(D,S,E,L,XT[A],H1[A]),e0=D|0,z=G6(a,s,28)^_a(a,s,34)^_a(a,s,39),K=z6(a,s,28)^Sa(a,s,34)^Sa(a,s,39),W=a&i^a&d^i&d,Z=s&f^s&b^f&b;S=T|0,H=C|0,T=h|0,C=x|0,h=p|0,x=m|0,{h:p,l:m}=i1(y|0,u|0,q|0,e0|0),y=d|0,u=b|0,d=i|0,b=f|0,i=a|0,f=s|0;const _=cg(e0,K,Z);a=ug(_,q,z,W),s=_|0}({h:a,l:s}=i1(this.Ah|0,this.Al|0,a|0,s|0)),{h:i,l:f}=i1(this.Bh|0,this.Bl|0,i|0,f|0),{h:d,l:b}=i1(this.Ch|0,this.Cl|0,d|0,b|0),{h:y,l:u}=i1(this.Dh|0,this.Dl|0,y|0,u|0),{h:p,l:m}=i1(this.Eh|0,this.El|0,p|0,m|0),{h,l:x}=i1(this.Fh|0,this.Fl|0,h|0,x|0),{h:T,l:C}=i1(this.Gh|0,this.Gl|0,T|0,C|0),{h:S,l:H}=i1(this.Hh|0,this.Hl|0,S|0,H|0),this.set(a,s,i,f,d,b,y,u,p,m,h,x,T,C,S,H)}roundClean(){N1(H1,G1)}destroy(){N1(this.buffer),this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)}}class QT extends fc{constructor(){super(48),this.Ah=Ee[0]|0,this.Al=Ee[1]|0,this.Bh=Ee[2]|0,this.Bl=Ee[3]|0,this.Ch=Ee[4]|0,this.Cl=Ee[5]|0,this.Dh=Ee[6]|0,this.Dl=Ee[7]|0,this.Eh=Ee[8]|0,this.El=Ee[9]|0,this.Fh=Ee[10]|0,this.Fl=Ee[11]|0,this.Gh=Ee[12]|0,this.Gl=Ee[13]|0,this.Hh=Ee[14]|0,this.Hl=Ee[15]|0}}const Fi=Ca(()=>new KT),ew=Ca(()=>new fc),tw=Ca(()=>new QT),bc=Fi;function nw(e,t){return bc(dt(e,{strict:!1})?jt(e):e)}function aw(e){const{commitment:t,version:n=1}=e,a=e.to??(typeof t=="string"?"hex":"bytes"),s=nw(t);return s.set([n],0),a==="bytes"?s:te(s)}function dc(e){const{commitments:t,version:n}=e,a=e.to??(typeof t[0]=="string"?"hex":"bytes"),s=[];for(const i of t)s.push(aw({commitment:i,to:a,version:n}));return s}const cc=6,uc=32,Ui=4096,yc=uc*Ui,pc=yc*cc-1-1*Ui*cc,lc=1;class rw extends G{constructor({maxSize:t,size:n}){super("Blob size is too large.",{metaMessages:[`Max: ${t} bytes`,`Given: ${n} bytes`],name:"BlobSizeTooLargeError"})}}class mc extends G{constructor(){super("Blob data must not be empty.",{name:"EmptyBlobError"})}}class sw extends G{constructor({hash:t,size:n}){super(`Versioned hash "${t}" size is invalid.`,{metaMessages:["Expected: 32",`Received: ${n}`],name:"InvalidVersionedHashSizeError"})}}class iw extends G{constructor({hash:t,version:n}){super(`Versioned hash "${t}" version is invalid.`,{metaMessages:[`Expected: ${lc}`,`Received: ${n}`],name:"InvalidVersionedHashVersionError"})}}function ow(e){const t=e.to??(typeof e.data=="string"?"hex":"bytes"),n=typeof e.data=="string"?ct(e.data):e.data,a=G0(n);if(!a)throw new mc;if(a>pc)throw new rw({maxSize:pc,size:a});const s=[];let i=!0,f=0;for(;i;){const d=mi(new Uint8Array(yc));let b=0;for(;b<Ui;){const y=n.slice(f,f+(uc-1));if(d.pushByte(0),d.pushBytes(y),y.length<31){d.pushByte(128),i=!1;break}b++,f+=31}s.push(d)}return t==="bytes"?s.map(d=>d.bytes):s.map(d=>te(d.bytes))}function hc(e){const{data:t,kzg:n,to:a}=e,s=e.blobs??ow({data:t,to:a}),i=e.commitments??ki({blobs:s,kzg:n,to:a}),f=e.proofs??Li({blobs:s,commitments:i,kzg:n,to:a}),d=[];for(let b=0;b<s.length;b++)d.push({blob:s[b],commitment:i[b],proof:f[b]});return d}function gc(e){if(e.type)return e.type;if(typeof e.authorizationList<"u")return"eip7702";if(typeof e.blobs<"u"||typeof e.blobVersionedHashes<"u"||typeof e.maxFeePerBlobGas<"u"||typeof e.sidecars<"u")return"eip4844";if(typeof e.maxFeePerGas<"u"||typeof e.maxPriorityFeePerGas<"u")return"eip1559";if(typeof e.gasPrice<"u")return typeof e.accessList<"u"?"eip2930":"legacy";throw new wT({transaction:e})}async function Q6(e){const t=await e.request({method:"eth_chainId"},{dedupe:!0});return zt(t)}const Tc=["blobVersionedHashes","chainId","fees","gas","nonce","type"],wc=new Map;async function Hi(e,t){const{account:n=e.account,blobs:a,chain:s,gas:i,kzg:f,nonce:d,nonceManager:b,parameters:y=Tc,type:u}=t,p=n&&ae(n),m={...t,...p?{from:p==null?void 0:p.address}:{}};let h;async function x(){return h||(h=await d0(e,yt,"getBlock")({blockTag:"latest"}),h)}let T;async function C(){return T||(s?s.id:typeof t.chainId<"u"?t.chainId:(T=await d0(e,Q6,"getChainId")({}),T))}if(y.includes("nonce")&&typeof d>"u"&&p)if(b){const S=await C();m.nonce=await b.consume({address:p.address,chainId:S,client:e})}else m.nonce=await d0(e,Di,"getTransactionCount")({address:p.address,blockTag:"pending"});if((y.includes("blobVersionedHashes")||y.includes("sidecars"))&&a&&f){const S=ki({blobs:a,kzg:f});if(y.includes("blobVersionedHashes")){const H=dc({commitments:S,to:"hex"});m.blobVersionedHashes=H}if(y.includes("sidecars")){const H=Li({blobs:a,commitments:S,kzg:f}),A=hc({blobs:a,commitments:S,proofs:H,to:"hex"});m.sidecars=A}}if(y.includes("chainId")&&(m.chainId=await C()),(y.includes("fees")||y.includes("type"))&&typeof u>"u")try{m.type=gc(m)}catch{let S=wc.get(e.uid);if(typeof S>"u"){const H=await x();S=typeof(H==null?void 0:H.baseFeePerGas)=="bigint",wc.set(e.uid,S)}m.type=S?"eip1559":"legacy"}if(y.includes("fees"))if(m.type!=="legacy"&&m.type!=="eip2930"){if(typeof m.maxFeePerGas>"u"||typeof m.maxPriorityFeePerGas>"u"){const S=await x(),{maxFeePerGas:H,maxPriorityFeePerGas:A}=await Ni(e,{block:S,chain:s,request:m});if(typeof t.maxPriorityFeePerGas>"u"&&t.maxFeePerGas&&t.maxFeePerGas<A)throw new HT({maxPriorityFeePerGas:A});m.maxPriorityFeePerGas=A,m.maxFeePerGas=H}}else{if(typeof t.maxFeePerGas<"u"||typeof t.maxPriorityFeePerGas<"u")throw new Oi;if(typeof t.gasPrice>"u"){const S=await x(),{gasPrice:H}=await Ni(e,{block:S,chain:s,request:m,type:"legacy"});m.gasPrice=H}}return y.includes("gas")&&typeof i>"u"&&(m.gas=await d0(e,Gi,"estimateGas")({...m,account:p,prepare:(p==null?void 0:p.type)==="local"?[]:["blobVersionedHashes"]})),J6(m),delete m.parameters,m}async function Gi(e,t){var f,d,b;const{account:n=e.account,prepare:a=!0}=t,s=n?ae(n):void 0,i=(()=>{if(Array.isArray(a))return a;if((s==null?void 0:s.type)!=="local")return["blobVersionedHashes"]})();try{const{accessList:y,authorizationList:u,blobs:p,blobVersionedHashes:m,blockNumber:h,blockTag:x,data:T,gas:C,gasPrice:S,maxFeePerBlobGas:H,maxFeePerGas:A,maxPriorityFeePerGas:E,nonce:$,value:L,stateOverride:R,...D}=a?await Hi(e,{...t,parameters:i}):t,e0=(typeof h=="bigint"?t0(h):void 0)||x,z=Da(R),K=await(async()=>{if(D.to)return D.to;if(u&&u.length>0)return await xi({authorization:u[0]}).catch(()=>{throw new G("`to` is required. Could not infer from `authorizationList`")})})();J6(t);const W=(b=(d=(f=e.chain)==null?void 0:f.formatters)==null?void 0:d.transactionRequest)==null?void 0:b.format,_=(W||h5)({...Na(D,{format:W}),account:s,accessList:y,authorizationList:u,blobs:p,blobVersionedHashes:m,data:T,gas:C,gasPrice:S,maxFeePerBlobGas:H,maxFeePerGas:A,maxPriorityFeePerGas:E,nonce:$,to:K,value:L},"estimateGas");return BigInt(await e.request({method:"eth_estimateGas",params:z?[_,e0??e.experimental_blockTag??"latest",z]:e0?[_,e0]:[_]}))}catch(y){throw DT(y,{...t,account:s,chain:e.chain})}}async function fw(e,t){const{abi:n,address:a,args:s,functionName:i,dataSuffix:f,...d}=t,b=T0({abi:n,args:s,functionName:i});try{return await d0(e,Gi,"estimateGas")({data:`${b}${f?f.replace("0x",""):""}`,to:a,...d})}catch(y){const u=d.account?ae(d.account):void 0;throw b6(y,{abi:n,address:a,args:s,docsPath:"/docs/contract/estimateContractGas",functionName:i,sender:u==null?void 0:u.address})}}function z1(e,t){if(!ne(e,{strict:!1}))throw new ve({address:e});if(!ne(t,{strict:!1}))throw new ve({address:t});return e.toLowerCase()===t.toLowerCase()}const vc="/docs/contract/decodeEventLog";function zi(e){const{abi:t,data:n,strict:a,topics:s}=e,i=a??!0,[f,...d]=s;if(!f)throw new Gh({docsPath:vc});const b=t.find(T=>T.type==="event"&&f===Pa(Mt(T)));if(!(b&&"name"in b)||b.type!=="event")throw new ad(f,{docsPath:vc});const{name:y,inputs:u}=b,p=u==null?void 0:u.some(T=>!("name"in T&&T.name)),m=p?[]:{},h=u.map((T,C)=>[T,C]).filter(([T])=>"indexed"in T&&T.indexed);for(let T=0;T<h.length;T++){const[C,S]=h[T],H=d[T];if(!H)throw new Ea({abiItem:b,param:C});m[p?S:C.name||S]=bw({param:C,value:H})}const x=u.filter(T=>!("indexed"in T&&T.indexed));if(x.length>0){if(n&&n!=="0x")try{const T=qn(x,n);if(T)if(p)for(let C=0;C<u.length;C++)m[C]=m[C]??T.shift();else for(let C=0;C<x.length;C++)m[x[C].name]=T[C]}catch(T){if(i)throw T instanceof Qb||T instanceof Hd?new Hn({abiItem:b,data:n,params:x,size:G0(n)}):T}else if(i)throw new Hn({abiItem:b,data:"0x",params:x,size:0})}return{eventName:y,args:Object.values(m).length>0?m:void 0}}function bw({param:e,value:t}){return e.type==="string"||e.type==="bytes"||e.type==="tuple"||e.type.match(/^(.*)\[(\d+)?\]$/)?t:(qn([e],t)||[])[0]}function ji(e){const{abi:t,args:n,logs:a,strict:s=!0}=e,i=(()=>{if(e.eventName)return Array.isArray(e.eventName)?e.eventName:[e.eventName]})();return a.map(f=>{var d;try{const b=t.find(u=>u.type==="event"&&f.topics[0]===Pa(u));if(!b)return null;const y=zi({...f,abi:[b],strict:s});return i&&!i.includes(y.eventName)||!dw({args:y.args,inputs:b.inputs,matchArgs:n})?null:{...y,...f}}catch(b){let y,u;if(b instanceof ad)return null;if(b instanceof Hn||b instanceof Ea){if(s)return null;y=b.abiItem.name,u=(d=b.abiItem.inputs)==null?void 0:d.some(p=>!("name"in p&&p.name))}return{...f,args:u?[]:{},eventName:y}}}).filter(Boolean)}function dw(e){const{args:t,inputs:n,matchArgs:a}=e;if(!a)return!0;if(!t)return!1;function s(i,f,d){try{return i.type==="address"?z1(f,d):i.type==="string"||i.type==="bytes"?z0(jt(f))===d:f===d}catch{return!1}}return Array.isArray(t)&&Array.isArray(a)?a.every((i,f)=>{if(i==null)return!0;const d=n[f];return d?(Array.isArray(i)?i:[i]).some(y=>s(d,y,t[f])):!1}):typeof t=="object"&&!Array.isArray(t)&&typeof a=="object"&&!Array.isArray(a)?Object.entries(a).every(([i,f])=>{if(f==null)return!0;const d=n.find(y=>y.name===i);return d?(Array.isArray(f)?f:[f]).some(y=>s(d,y,t[i])):!1}):!1}function qt(e,{args:t,eventName:n}={}){return{...e,blockHash:e.blockHash?e.blockHash:null,blockNumber:e.blockNumber?BigInt(e.blockNumber):null,logIndex:e.logIndex?Number(e.logIndex):null,transactionHash:e.transactionHash?e.transactionHash:null,transactionIndex:e.transactionIndex?Number(e.transactionIndex):null,...n?{args:t,eventName:n}:{}}}async function Vi(e,{address:t,blockHash:n,fromBlock:a,toBlock:s,event:i,events:f,args:d,strict:b}={}){const y=b??!1,u=f??(i?[i]:void 0);let p=[];u&&(p=[u.flatMap(T=>Vn({abi:[T],eventName:T.name,args:f?void 0:d}))],i&&(p=p[0]));let m;n?m=await e.request({method:"eth_getLogs",params:[{address:t,topics:p,blockHash:n}]}):m=await e.request({method:"eth_getLogs",params:[{address:t,topics:p,fromBlock:typeof a=="bigint"?t0(a):a,toBlock:typeof s=="bigint"?t0(s):s}]});const h=m.map(x=>qt(x));return u?ji({abi:u,args:d,logs:h,strict:y}):h}async function xc(e,t){const{abi:n,address:a,args:s,blockHash:i,eventName:f,fromBlock:d,toBlock:b,strict:y}=t,u=f?s6({abi:n,name:f}):void 0,p=u?void 0:n.filter(m=>m.type==="event");return d0(e,Vi,"getLogs")({address:a,args:s,blockHash:i,event:u,events:p,fromBlock:d,toBlock:b,strict:y})}const qi="/docs/contract/decodeFunctionResult";function c6(e){const{abi:t,args:n,functionName:a,data:s}=e;let i=t[0];if(a){const d=s6({abi:t,args:n,name:a});if(!d)throw new U6(a,{docsPath:qi});i=d}if(i.type!=="function")throw new U6(void 0,{docsPath:qi});if(!i.outputs)throw new sd(i.name,{docsPath:qi});const f=qn(i.outputs,s);if(f&&f.length>1)return f;if(f&&f.length===1)return f[0]}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const Wi=BigInt(0),Zi=BigInt(1);function g5(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"}function Yi(e){if(!g5(e))throw new Error("Uint8Array expected")}function T5(e,t){if(typeof t!="boolean")throw new Error(e+" boolean expected, got "+t)}function Fa(e){const t=e.toString(16);return t.length&1?"0"+t:t}function Ec(e){if(typeof e!="string")throw new Error("hex string expected, got "+typeof e);return e===""?Wi:BigInt("0x"+e)}const Ac=typeof Uint8Array.from([]).toHex=="function"&&typeof Uint8Array.fromHex=="function",cw=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function w5(e){if(Yi(e),Ac)return e.toHex();let t="";for(let n=0;n<e.length;n++)t+=cw[e[n]];return t}const b1={_0:48,_9:57,A:65,F:70,a:97,f:102};function _c(e){if(e>=b1._0&&e<=b1._9)return e-b1._0;if(e>=b1.A&&e<=b1.F)return e-(b1.A-10);if(e>=b1.a&&e<=b1.f)return e-(b1.a-10)}function Ua(e){if(typeof e!="string")throw new Error("hex string expected, got "+typeof e);if(Ac)return Uint8Array.fromHex(e);const t=e.length,n=t/2;if(t%2)throw new Error("hex string expected, got unpadded hex of length "+t);const a=new Uint8Array(n);for(let s=0,i=0;s<n;s++,i+=2){const f=_c(e.charCodeAt(i)),d=_c(e.charCodeAt(i+1));if(f===void 0||d===void 0){const b=e[i]+e[i+1];throw new Error('hex string expected, got non-hex character "'+b+'" at index '+i)}a[s]=f*16+d}return a}function u6(e){return Ec(w5(e))}function Sc(e){return Yi(e),Ec(w5(Uint8Array.from(e).reverse()))}function v5(e,t){return Ua(e.toString(16).padStart(t*2,"0"))}function Ic(e,t){return v5(e,t).reverse()}function pt(e,t,n){let a;if(typeof t=="string")try{a=Ua(t)}catch(i){throw new Error(e+" must be hex string or Uint8Array, cause: "+i)}else if(g5(t))a=Uint8Array.from(t);else throw new Error(e+" must be hex string or Uint8Array");const s=a.length;if(typeof n=="number"&&s!==n)throw new Error(e+" of length "+n+" expected, got "+s);return a}function Ha(...e){let t=0;for(let a=0;a<e.length;a++){const s=e[a];Yi(s),t+=s.length}const n=new Uint8Array(t);for(let a=0,s=0;a<e.length;a++){const i=e[a];n.set(i,s),s+=i.length}return n}const Ki=e=>typeof e=="bigint"&&Wi<=e;function Xi(e,t,n){return Ki(e)&&Ki(t)&&Ki(n)&&t<=e&&e<n}function en(e,t,n,a){if(!Xi(t,n,a))throw new Error("expected valid "+e+": "+n+" <= n < "+a+", got "+t)}function uw(e){let t;for(t=0;e>Wi;e>>=Zi,t+=1);return t}const Ga=e=>(Zi<<BigInt(e))-Zi,Ji=e=>new Uint8Array(e),Cc=e=>Uint8Array.from(e);function yw(e,t,n){if(typeof e!="number"||e<2)throw new Error("hashLen must be a number");if(typeof t!="number"||t<2)throw new Error("qByteLen must be a number");if(typeof n!="function")throw new Error("hmacFn must be a function");let a=Ji(e),s=Ji(e),i=0;const f=()=>{a.fill(1),s.fill(0),i=0},d=(...p)=>n(s,a,...p),b=(p=Ji(0))=>{s=d(Cc([0]),p),a=d(),p.length!==0&&(s=d(Cc([1]),p),a=d())},y=()=>{if(i++>=1e3)throw new Error("drbg: tried 1000 values");let p=0;const m=[];for(;p<t;){a=d();const h=a.slice();m.push(h),p+=a.length}return Ha(...m)};return(p,m)=>{f(),b(p);let h;for(;!(h=m(y()));)b();return f(),h}}const pw={bigint:e=>typeof e=="bigint",function:e=>typeof e=="function",boolean:e=>typeof e=="boolean",string:e=>typeof e=="string",stringOrUint8Array:e=>typeof e=="string"||g5(e),isSafeInteger:e=>Number.isSafeInteger(e),array:e=>Array.isArray(e),field:(e,t)=>t.Fp.isValid(e),hash:e=>typeof e=="function"&&Number.isSafeInteger(e.outputLen)};function za(e,t,n={}){const a=(s,i,f)=>{const d=pw[i];if(typeof d!="function")throw new Error("invalid validator function");const b=e[s];if(!(f&&b===void 0)&&!d(b,e))throw new Error("param "+String(s)+" is invalid. Expected "+i+", got "+b)};for(const[s,i]of Object.entries(t))a(s,i,!1);for(const[s,i]of Object.entries(n))a(s,i,!0);return e}function Pc(e){const t=new WeakMap;return(n,...a)=>{const s=t.get(n);if(s!==void 0)return s;const i=e(n,...a);return t.set(n,i),i}}const lw="0.1.1";function mw(){return lw}let S0=class Rb extends Error{constructor(t,n={}){const a=(()=>{var b;if(n.cause instanceof Rb){if(n.cause.details)return n.cause.details;if(n.cause.shortMessage)return n.cause.shortMessage}return n.cause&&"details"in n.cause&&typeof n.cause.details=="string"?n.cause.details:(b=n.cause)!=null&&b.message?n.cause.message:n.details})(),s=n.cause instanceof Rb&&n.cause.docsPath||n.docsPath,f=`https://oxlib.sh${s??""}`,d=[t||"An error occurred.",...n.metaMessages?["",...n.metaMessages]:[],...a||s?["",a?`Details: ${a}`:void 0,s?`See: ${f}`:void 0]:[]].filter(b=>typeof b=="string").join(`
61
+ `);super(d,n.cause?{cause:n.cause}:void 0),Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docs",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsPath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"cause",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"BaseError"}),Object.defineProperty(this,"version",{enumerable:!0,configurable:!0,writable:!0,value:`ox@${mw()}`}),this.cause=n.cause,this.details=a,this.docs=f,this.docsPath=s,this.shortMessage=t}walk(t){return Mc(this,t)}};function Mc(e,t){return t!=null&&t(e)?e:e&&typeof e=="object"&&"cause"in e&&e.cause?Mc(e.cause,t):t?null:e}function x5(e,t){if(tn(e)>t)throw new Rw({givenSize:tn(e),maxSize:t})}const d1={zero:48,nine:57,A:65,F:70,a:97,f:102};function $c(e){if(e>=d1.zero&&e<=d1.nine)return e-d1.zero;if(e>=d1.A&&e<=d1.F)return e-(d1.A-10);if(e>=d1.a&&e<=d1.f)return e-(d1.a-10)}function hw(e,t={}){const{dir:n,size:a=32}=t;if(a===0)return e;if(e.length>a)throw new Bw({size:e.length,targetSize:a,type:"Bytes"});const s=new Uint8Array(a);for(let i=0;i<a;i++){const f=n==="right";s[f?i:a-i-1]=e[f?i:e.length-i-1]}return s}function Oc(e,t={}){const{dir:n="left"}=t;let a=e,s=0;for(let i=0;i<a.length-1&&a[n==="left"?i:a.length-i-1].toString()==="0";i++)s++;return a=n==="left"?a.slice(s):a.slice(0,a.length-s),a}function ja(e,t){if(Je(e)>t)throw new Uw({givenSize:Je(e),maxSize:t})}function gw(e,t){if(typeof t=="number"&&t>0&&t>Je(e)-1)throw new Gc({offset:t,position:"start",size:Je(e)})}function Tw(e,t,n){if(typeof t=="number"&&typeof n=="number"&&Je(e)!==n-t)throw new Gc({offset:n,position:"end",size:Je(e)})}function Rc(e,t={}){const{dir:n,size:a=32}=t;if(a===0)return e;const s=e.replace("0x","");if(s.length>a*2)throw new Hw({size:Math.ceil(s.length/2),targetSize:a,type:"Hex"});return`0x${s[n==="right"?"padEnd":"padStart"](a*2,"0")}`}const ww="#__bigint";function Bc(e,t,n){return JSON.stringify(e,(a,s)=>typeof s=="bigint"?s.toString()+ww:s,n)}const vw=new TextDecoder,xw=new TextEncoder;function Ew(e){return e instanceof Uint8Array?e:typeof e=="string"?Qi(e):Aw(e)}function Aw(e){return e instanceof Uint8Array?e:new Uint8Array(e)}function Qi(e,t={}){const{size:n}=t;let a=e;n&&(ja(e,n),a=p6(e,n));let s=a.slice(2);s.length%2&&(s=`0${s}`);const i=s.length/2,f=new Uint8Array(i);for(let d=0,b=0;d<i;d++){const y=$c(s.charCodeAt(b++)),u=$c(s.charCodeAt(b++));if(y===void 0||u===void 0)throw new S0(`Invalid byte sequence ("${s[b-2]}${s[b-1]}" in "${s}").`);f[d]=y*16+u}return f}function _w(e,t={}){const{size:n}=t,a=xw.encode(e);return typeof n=="number"?(x5(a,n),Sw(a,n)):a}function Sw(e,t){return hw(e,{dir:"right",size:t})}function tn(e){return e.length}function Iw(e,t,n,a={}){const{strict:s}=a;return e.slice(t,n)}function Cw(e,t={}){const{size:n}=t;typeof n<"u"&&x5(e,n);const a=He(e,t);return kc(a,t)}function Pw(e,t={}){const{size:n}=t;let a=e;if(typeof n<"u"&&(x5(a,n),a=Nc(a)),a.length>1||a[0]>1)throw new Ow(a);return!!a[0]}function c1(e,t={}){const{size:n}=t;typeof n<"u"&&x5(e,n);const a=He(e,t);return Lc(a,t)}function Mw(e,t={}){const{size:n}=t;let a=e;return typeof n<"u"&&(x5(a,n),a=$w(a)),vw.decode(a)}function Nc(e){return Oc(e,{dir:"left"})}function $w(e){return Oc(e,{dir:"right"})}class Ow extends S0{constructor(t){super(`Bytes value \`${t}\` is not a valid boolean.`,{metaMessages:["The bytes array must contain a single byte of either a `0` or `1` value."]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Bytes.InvalidBytesBooleanError"})}}let Rw=class extends S0{constructor({givenSize:t,maxSize:n}){super(`Size cannot exceed \`${n}\` bytes. Given size: \`${t}\` bytes.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Bytes.SizeOverflowError"})}},Bw=class extends S0{constructor({size:t,targetSize:n,type:a}){super(`${a.charAt(0).toUpperCase()}${a.slice(1).toLowerCase()} size (\`${t}\`) exceeds padding size (\`${n}\`).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Bytes.SizeExceedsPaddingSizeError"})}};const Nw=new TextEncoder,Dw=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function kw(e,t={}){const{strict:n=!1}=t;if(!e)throw new Uc(e);if(typeof e!="string")throw new Uc(e);if(n&&!/^0x[0-9a-fA-F]*$/.test(e))throw new Hc(e);if(!e.startsWith("0x"))throw new Hc(e)}function lt(...e){return`0x${e.reduce((t,n)=>t+n.replace("0x",""),"")}`}function Lw(e){return e instanceof Uint8Array?He(e):Array.isArray(e)?He(new Uint8Array(e)):e}function Dc(e,t={}){const n=`0x${Number(e)}`;return typeof t.size=="number"?(ja(n,t.size),y6(n,t.size)):n}function He(e,t={}){let n="";for(let s=0;s<e.length;s++)n+=Dw[e[s]];const a=`0x${n}`;return typeof t.size=="number"?(ja(a,t.size),p6(a,t.size)):a}function ce(e,t={}){const{signed:n,size:a}=t,s=BigInt(e);let i;a?n?i=(1n<<BigInt(a)*8n-1n)-1n:i=2n**(BigInt(a)*8n)-1n:typeof e=="number"&&(i=BigInt(Number.MAX_SAFE_INTEGER));const f=typeof i=="bigint"&&n?-i-1n:0;if(i&&s>i||s<f){const y=typeof e=="bigint"?"n":"";throw new Fc({max:i?`${i}${y}`:void 0,min:`${f}${y}`,signed:n,size:a,value:`${e}${y}`})}const b=`0x${(n&&s<0?(1n<<BigInt(a*8))+BigInt(s):s).toString(16)}`;return a?y6(b,a):b}function e8(e,t={}){return He(Nw.encode(e),t)}function y6(e,t){return Rc(e,{dir:"left",size:t})}function p6(e,t){return Rc(e,{dir:"right",size:t})}function Wt(e,t,n,a={}){const{strict:s}=a;gw(e,t);const i=`0x${e.replace("0x","").slice((t??0)*2,(n??e.length)*2)}`;return s&&Tw(i,t,n),i}function Je(e){return Math.ceil((e.length-2)/2)}function kc(e,t={}){const{signed:n}=t;t.size&&ja(e,t.size);const a=BigInt(e);if(!n)return a;const s=(e.length-2)/2,i=(1n<<BigInt(s)*8n)-1n,f=i>>1n;return a<=f?a:a-i-1n}function Lc(e,t={}){const{signed:n,size:a}=t;return Number(!n&&!a?e:kc(e,t))}function Fw(e,t={}){const{strict:n=!1}=t;try{return kw(e,{strict:n}),!0}catch{return!1}}class Fc extends S0{constructor({max:t,min:n,signed:a,size:s,value:i}){super(`Number \`${i}\` is not in safe${s?` ${s*8}-bit`:""}${a?" signed":" unsigned"} integer range ${t?`(\`${n}\` to \`${t}\`)`:`(above \`${n}\`)`}`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.IntegerOutOfRangeError"})}}class Uc extends S0{constructor(t){super(`Value \`${typeof t=="object"?Bc(t):t}\` of type \`${typeof t}\` is an invalid hex type.`,{metaMessages:['Hex types must be represented as `"0x${string}"`.']}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.InvalidHexTypeError"})}}class Hc extends S0{constructor(t){super(`Value \`${t}\` is an invalid hex value.`,{metaMessages:['Hex values must start with `"0x"` and contain only hexadecimal characters (0-9, a-f, A-F).']}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.InvalidHexValueError"})}}class Uw extends S0{constructor({givenSize:t,maxSize:n}){super(`Size cannot exceed \`${n}\` bytes. Given size: \`${t}\` bytes.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.SizeOverflowError"})}}class Gc extends S0{constructor({offset:t,position:n,size:a}){super(`Slice ${n==="start"?"starting":"ending"} at offset \`${t}\` is out-of-bounds (size: \`${a}\`).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.SliceOffsetOutOfBoundsError"})}}class Hw extends S0{constructor({size:t,targetSize:n,type:a}){super(`${a.charAt(0).toUpperCase()}${a.slice(1).toLowerCase()} size (\`${t}\`) exceeds padding size (\`${n}\`).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Hex.SizeExceedsPaddingSizeError"})}}function Gw(e){return{address:e.address,amount:ce(e.amount),index:ce(e.index),validatorIndex:ce(e.validatorIndex)}}function zc(e){return{...typeof e.baseFeePerGas=="bigint"&&{baseFeePerGas:ce(e.baseFeePerGas)},...typeof e.blobBaseFee=="bigint"&&{blobBaseFee:ce(e.blobBaseFee)},...typeof e.feeRecipient=="string"&&{feeRecipient:e.feeRecipient},...typeof e.gasLimit=="bigint"&&{gasLimit:ce(e.gasLimit)},...typeof e.number=="bigint"&&{number:ce(e.number)},...typeof e.prevRandao=="bigint"&&{prevRandao:ce(e.prevRandao)},...typeof e.time=="bigint"&&{time:ce(e.time)},...e.withdrawals&&{withdrawals:e.withdrawals.map(Gw)}}}const Va=[{inputs:[{components:[{name:"target",type:"address"},{name:"allowFailure",type:"bool"},{name:"callData",type:"bytes"}],name:"calls",type:"tuple[]"}],name:"aggregate3",outputs:[{components:[{name:"success",type:"bool"},{name:"returnData",type:"bytes"}],name:"returnData",type:"tuple[]"}],stateMutability:"view",type:"function"},{inputs:[],name:"getCurrentBlockTimestamp",outputs:[{internalType:"uint256",name:"timestamp",type:"uint256"}],stateMutability:"view",type:"function"}],t8=[{name:"query",type:"function",stateMutability:"view",inputs:[{type:"tuple[]",name:"queries",components:[{type:"address",name:"sender"},{type:"string[]",name:"urls"},{type:"bytes",name:"data"}]}],outputs:[{type:"bool[]",name:"failures"},{type:"bytes[]",name:"responses"}]},{name:"HttpError",type:"error",inputs:[{type:"uint16",name:"status"},{type:"string",name:"message"}]}],jc=[{inputs:[{name:"dns",type:"bytes"}],name:"DNSDecodingFailed",type:"error"},{inputs:[{name:"ens",type:"string"}],name:"DNSEncodingFailed",type:"error"},{inputs:[],name:"EmptyAddress",type:"error"},{inputs:[{name:"status",type:"uint16"},{name:"message",type:"string"}],name:"HttpError",type:"error"},{inputs:[],name:"InvalidBatchGatewayResponse",type:"error"},{inputs:[{name:"errorData",type:"bytes"}],name:"ResolverError",type:"error"},{inputs:[{name:"name",type:"bytes"},{name:"resolver",type:"address"}],name:"ResolverNotContract",type:"error"},{inputs:[{name:"name",type:"bytes"}],name:"ResolverNotFound",type:"error"},{inputs:[{name:"primary",type:"string"},{name:"primaryAddress",type:"bytes"}],name:"ReverseAddressMismatch",type:"error"},{inputs:[{internalType:"bytes4",name:"selector",type:"bytes4"}],name:"UnsupportedResolverProfile",type:"error"}],Vc=[...jc,{name:"resolveWithGateways",type:"function",stateMutability:"view",inputs:[{name:"name",type:"bytes"},{name:"data",type:"bytes"},{name:"gateways",type:"string[]"}],outputs:[{name:"",type:"bytes"},{name:"address",type:"address"}]}],zw=[...jc,{name:"reverseWithGateways",type:"function",stateMutability:"view",inputs:[{type:"bytes",name:"reverseName"},{type:"uint256",name:"coinType"},{type:"string[]",name:"gateways"}],outputs:[{type:"string",name:"resolvedName"},{type:"address",name:"resolver"},{type:"address",name:"reverseResolver"}]}],qc=[{name:"text",type:"function",stateMutability:"view",inputs:[{name:"name",type:"bytes32"},{name:"key",type:"string"}],outputs:[{name:"",type:"string"}]}],Wc=[{name:"addr",type:"function",stateMutability:"view",inputs:[{name:"name",type:"bytes32"}],outputs:[{name:"",type:"address"}]},{name:"addr",type:"function",stateMutability:"view",inputs:[{name:"name",type:"bytes32"},{name:"coinType",type:"uint256"}],outputs:[{name:"",type:"bytes"}]}],Zc=[{name:"isValidSignature",type:"function",stateMutability:"view",inputs:[{name:"hash",type:"bytes32"},{name:"signature",type:"bytes"}],outputs:[{name:"",type:"bytes4"}]}],Yc=[{inputs:[{name:"_signer",type:"address"},{name:"_hash",type:"bytes32"},{name:"_signature",type:"bytes"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[{name:"_signer",type:"address"},{name:"_hash",type:"bytes32"},{name:"_signature",type:"bytes"}],outputs:[{type:"bool"}],stateMutability:"nonpayable",type:"function",name:"isValidSig"}],jw="0x82ad56cb",Kc="0x608060405234801561001057600080fd5b5060405161018e38038061018e83398101604081905261002f91610124565b6000808351602085016000f59050803b61004857600080fd5b6000808351602085016000855af16040513d6000823e81610067573d81fd5b3d81f35b634e487b7160e01b600052604160045260246000fd5b600082601f83011261009257600080fd5b81516001600160401b038111156100ab576100ab61006b565b604051601f8201601f19908116603f011681016001600160401b03811182821017156100d9576100d961006b565b6040528181528382016020018510156100f157600080fd5b60005b82811015610110576020818601810151838301820152016100f4565b506000918101602001919091529392505050565b6000806040838503121561013757600080fd5b82516001600160401b0381111561014d57600080fd5b61015985828601610081565b602085015190935090506001600160401b0381111561017757600080fd5b61018385828601610081565b915050925092905056fe",Vw="0x608060405234801561001057600080fd5b506040516102c03803806102c083398101604081905261002f916101e6565b836001600160a01b03163b6000036100e457600080836001600160a01b03168360405161005c9190610270565b6000604051808303816000865af19150503d8060008114610099576040519150601f19603f3d011682016040523d82523d6000602084013e61009e565b606091505b50915091508115806100b857506001600160a01b0386163b155b156100e1578060405163101bb98d60e01b81526004016100d8919061028c565b60405180910390fd5b50505b6000808451602086016000885af16040513d6000823e81610103573d81fd5b3d81f35b80516001600160a01b038116811461011e57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561015457818101518382015260200161013c565b50506000910152565b600082601f83011261016e57600080fd5b81516001600160401b0381111561018757610187610123565b604051601f8201601f19908116603f011681016001600160401b03811182821017156101b5576101b5610123565b6040528181528382016020018510156101cd57600080fd5b6101de826020830160208701610139565b949350505050565b600080600080608085870312156101fc57600080fd5b61020585610107565b60208601519094506001600160401b0381111561022157600080fd5b61022d8782880161015d565b93505061023c60408601610107565b60608601519092506001600160401b0381111561025857600080fd5b6102648782880161015d565b91505092959194509250565b60008251610282818460208701610139565b9190910192915050565b60208152600082518060208401526102ab816040850160208701610139565b601f01601f1916919091016040019291505056fe",qw="0x608060405234801561001057600080fd5b5060405161069438038061069483398101604081905261002f9161051e565b600061003c848484610048565b9050806000526001601ff35b60007f64926492649264926492649264926492649264926492649264926492649264926100748361040c565b036101e7576000606080848060200190518101906100929190610577565b60405192955090935091506000906001600160a01b038516906100b69085906105dd565b6000604051808303816000865af19150503d80600081146100f3576040519150601f19603f3d011682016040523d82523d6000602084013e6100f8565b606091505b50509050876001600160a01b03163b60000361016057806101605760405162461bcd60e51b815260206004820152601e60248201527f5369676e617475726556616c696461746f723a206465706c6f796d656e74000060448201526064015b60405180910390fd5b604051630b135d3f60e11b808252906001600160a01b038a1690631626ba7e90610190908b9087906004016105f9565b602060405180830381865afa1580156101ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101d19190610633565b6001600160e01b03191614945050505050610405565b6001600160a01b0384163b1561027a57604051630b135d3f60e11b808252906001600160a01b03861690631626ba7e9061022790879087906004016105f9565b602060405180830381865afa158015610244573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102689190610633565b6001600160e01b031916149050610405565b81516041146102df5760405162461bcd60e51b815260206004820152603a602482015260008051602061067483398151915260448201527f3a20696e76616c6964207369676e6174757265206c656e6774680000000000006064820152608401610157565b6102e7610425565b5060208201516040808401518451859392600091859190811061030c5761030c61065d565b016020015160f81c9050601b811480159061032b57508060ff16601c14155b1561038c5760405162461bcd60e51b815260206004820152603b602482015260008051602061067483398151915260448201527f3a20696e76616c6964207369676e617475726520762076616c756500000000006064820152608401610157565b60408051600081526020810180835289905260ff83169181019190915260608101849052608081018390526001600160a01b0389169060019060a0016020604051602081039080840390855afa1580156103ea573d6000803e3d6000fd5b505050602060405103516001600160a01b0316149450505050505b9392505050565b600060208251101561041d57600080fd5b508051015190565b60405180606001604052806003906020820280368337509192915050565b6001600160a01b038116811461045857600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b60005b8381101561048c578181015183820152602001610474565b50506000910152565b600082601f8301126104a657600080fd5b81516001600160401b038111156104bf576104bf61045b565b604051601f8201601f19908116603f011681016001600160401b03811182821017156104ed576104ed61045b565b60405281815283820160200185101561050557600080fd5b610516826020830160208701610471565b949350505050565b60008060006060848603121561053357600080fd5b835161053e81610443565b6020850151604086015191945092506001600160401b0381111561056157600080fd5b61056d86828701610495565b9150509250925092565b60008060006060848603121561058c57600080fd5b835161059781610443565b60208501519093506001600160401b038111156105b357600080fd5b6105bf86828701610495565b604086015190935090506001600160401b0381111561056157600080fd5b600082516105ef818460208701610471565b9190910192915050565b828152604060208201526000825180604084015261061e816060850160208701610471565b601f01601f1916919091016060019392505050565b60006020828403121561064557600080fd5b81516001600160e01b03198116811461040557600080fd5b634e487b7160e01b600052603260045260246000fdfe5369676e617475726556616c696461746f72237265636f7665725369676e6572",n8="0x608060405234801561001057600080fd5b506115b9806100206000396000f3fe6080604052600436106100f35760003560e01c80634d2301cc1161008a578063a8b0574e11610059578063a8b0574e14610325578063bce38bd714610350578063c3077fa914610380578063ee82ac5e146103b2576100f3565b80634d2301cc1461026257806372425d9d1461029f57806382ad56cb146102ca57806386d516e8146102fa576100f3565b80633408e470116100c65780633408e470146101af578063399542e9146101da5780633e64a6961461020c57806342cbb15c14610237576100f3565b80630f28c97d146100f8578063174dea7114610123578063252dba421461015357806327e86d6e14610184575b600080fd5b34801561010457600080fd5b5061010d6103ef565b60405161011a9190610c0a565b60405180910390f35b61013d60048036038101906101389190610c94565b6103f7565b60405161014a9190610e94565b60405180910390f35b61016d60048036038101906101689190610f0c565b610615565b60405161017b92919061101b565b60405180910390f35b34801561019057600080fd5b506101996107ab565b6040516101a69190611064565b60405180910390f35b3480156101bb57600080fd5b506101c46107b7565b6040516101d19190610c0a565b60405180910390f35b6101f460048036038101906101ef91906110ab565b6107bf565b6040516102039392919061110b565b60405180910390f35b34801561021857600080fd5b506102216107e1565b60405161022e9190610c0a565b60405180910390f35b34801561024357600080fd5b5061024c6107e9565b6040516102599190610c0a565b60405180910390f35b34801561026e57600080fd5b50610289600480360381019061028491906111a7565b6107f1565b6040516102969190610c0a565b60405180910390f35b3480156102ab57600080fd5b506102b4610812565b6040516102c19190610c0a565b60405180910390f35b6102e460048036038101906102df919061122a565b61081a565b6040516102f19190610e94565b60405180910390f35b34801561030657600080fd5b5061030f6109e4565b60405161031c9190610c0a565b60405180910390f35b34801561033157600080fd5b5061033a6109ec565b6040516103479190611286565b60405180910390f35b61036a600480360381019061036591906110ab565b6109f4565b6040516103779190610e94565b60405180910390f35b61039a60048036038101906103959190610f0c565b610ba6565b6040516103a99392919061110b565b60405180910390f35b3480156103be57600080fd5b506103d960048036038101906103d491906112cd565b610bca565b6040516103e69190611064565b60405180910390f35b600042905090565b60606000808484905090508067ffffffffffffffff81111561041c5761041b6112fa565b5b60405190808252806020026020018201604052801561045557816020015b610442610bd5565b81526020019060019003908161043a5790505b5092503660005b828110156105c957600085828151811061047957610478611329565b5b6020026020010151905087878381811061049657610495611329565b5b90506020028101906104a89190611367565b925060008360400135905080860195508360000160208101906104cb91906111a7565b73ffffffffffffffffffffffffffffffffffffffff16818580606001906104f2919061138f565b604051610500929190611431565b60006040518083038185875af1925050503d806000811461053d576040519150601f19603f3d011682016040523d82523d6000602084013e610542565b606091505b5083600001846020018290528215151515815250505081516020850135176105bc577f08c379a000000000000000000000000000000000000000000000000000000000600052602060045260176024527f4d756c746963616c6c333a2063616c6c206661696c656400000000000000000060445260846000fd5b826001019250505061045c565b5082341461060c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610603906114a7565b60405180910390fd5b50505092915050565b6000606043915060008484905090508067ffffffffffffffff81111561063e5761063d6112fa565b5b60405190808252806020026020018201604052801561067157816020015b606081526020019060019003908161065c5790505b5091503660005b828110156107a157600087878381811061069557610694611329565b5b90506020028101906106a791906114c7565b92508260000160208101906106bc91906111a7565b73ffffffffffffffffffffffffffffffffffffffff168380602001906106e2919061138f565b6040516106f0929190611431565b6000604051808303816000865af19150503d806000811461072d576040519150601f19603f3d011682016040523d82523d6000602084013e610732565b606091505b5086848151811061074657610745611329565b5b60200260200101819052819250505080610795576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078c9061153b565b60405180910390fd5b81600101915050610678565b5050509250929050565b60006001430340905090565b600046905090565b6000806060439250434091506107d68686866109f4565b905093509350939050565b600048905090565b600043905090565b60008173ffffffffffffffffffffffffffffffffffffffff16319050919050565b600044905090565b606060008383905090508067ffffffffffffffff81111561083e5761083d6112fa565b5b60405190808252806020026020018201604052801561087757816020015b610864610bd5565b81526020019060019003908161085c5790505b5091503660005b828110156109db57600084828151811061089b5761089a611329565b5b602002602001015190508686838181106108b8576108b7611329565b5b90506020028101906108ca919061155b565b92508260000160208101906108df91906111a7565b73ffffffffffffffffffffffffffffffffffffffff16838060400190610905919061138f565b604051610913929190611431565b6000604051808303816000865af19150503d8060008114610950576040519150601f19603f3d011682016040523d82523d6000602084013e610955565b606091505b5082600001836020018290528215151515815250505080516020840135176109cf577f08c379a000000000000000000000000000000000000000000000000000000000600052602060045260176024527f4d756c746963616c6c333a2063616c6c206661696c656400000000000000000060445260646000fd5b8160010191505061087e565b50505092915050565b600045905090565b600041905090565b606060008383905090508067ffffffffffffffff811115610a1857610a176112fa565b5b604051908082528060200260200182016040528015610a5157816020015b610a3e610bd5565b815260200190600190039081610a365790505b5091503660005b82811015610b9c576000848281518110610a7557610a74611329565b5b60200260200101519050868683818110610a9257610a91611329565b5b9050602002810190610aa491906114c7565b9250826000016020810190610ab991906111a7565b73ffffffffffffffffffffffffffffffffffffffff16838060200190610adf919061138f565b604051610aed929190611431565b6000604051808303816000865af19150503d8060008114610b2a576040519150601f19603f3d011682016040523d82523d6000602084013e610b2f565b606091505b508260000183602001829052821515151581525050508715610b90578060000151610b8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b869061153b565b60405180910390fd5b5b81600101915050610a58565b5050509392505050565b6000806060610bb7600186866107bf565b8093508194508295505050509250925092565b600081409050919050565b6040518060400160405280600015158152602001606081525090565b6000819050919050565b610c0481610bf1565b82525050565b6000602082019050610c1f6000830184610bfb565b92915050565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b60008083601f840112610c5457610c53610c2f565b5b8235905067ffffffffffffffff811115610c7157610c70610c34565b5b602083019150836020820283011115610c8d57610c8c610c39565b5b9250929050565b60008060208385031215610cab57610caa610c25565b5b600083013567ffffffffffffffff811115610cc957610cc8610c2a565b5b610cd585828601610c3e565b92509250509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b60008115159050919050565b610d2281610d0d565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610d62578082015181840152602081019050610d47565b83811115610d71576000848401525b50505050565b6000601f19601f8301169050919050565b6000610d9382610d28565b610d9d8185610d33565b9350610dad818560208601610d44565b610db681610d77565b840191505092915050565b6000604083016000830151610dd96000860182610d19565b5060208301518482036020860152610df18282610d88565b9150508091505092915050565b6000610e0a8383610dc1565b905092915050565b6000602082019050919050565b6000610e2a82610ce1565b610e348185610cec565b935083602082028501610e4685610cfd565b8060005b85811015610e825784840389528151610e638582610dfe565b9450610e6e83610e12565b925060208a01995050600181019050610e4a565b50829750879550505050505092915050565b60006020820190508181036000830152610eae8184610e1f565b905092915050565b60008083601f840112610ecc57610ecb610c2f565b5b8235905067ffffffffffffffff811115610ee957610ee8610c34565b5b602083019150836020820283011115610f0557610f04610c39565b5b9250929050565b60008060208385031215610f2357610f22610c25565b5b600083013567ffffffffffffffff811115610f4157610f40610c2a565b5b610f4d85828601610eb6565b92509250509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6000610f918383610d88565b905092915050565b6000602082019050919050565b6000610fb182610f59565b610fbb8185610f64565b935083602082028501610fcd85610f75565b8060005b858110156110095784840389528151610fea8582610f85565b9450610ff583610f99565b925060208a01995050600181019050610fd1565b50829750879550505050505092915050565b60006040820190506110306000830185610bfb565b81810360208301526110428184610fa6565b90509392505050565b6000819050919050565b61105e8161104b565b82525050565b60006020820190506110796000830184611055565b92915050565b61108881610d0d565b811461109357600080fd5b50565b6000813590506110a58161107f565b92915050565b6000806000604084860312156110c4576110c3610c25565b5b60006110d286828701611096565b935050602084013567ffffffffffffffff8111156110f3576110f2610c2a565b5b6110ff86828701610eb6565b92509250509250925092565b60006060820190506111206000830186610bfb565b61112d6020830185611055565b818103604083015261113f8184610e1f565b9050949350505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061117482611149565b9050919050565b61118481611169565b811461118f57600080fd5b50565b6000813590506111a18161117b565b92915050565b6000602082840312156111bd576111bc610c25565b5b60006111cb84828501611192565b91505092915050565b60008083601f8401126111ea576111e9610c2f565b5b8235905067ffffffffffffffff81111561120757611206610c34565b5b60208301915083602082028301111561122357611222610c39565b5b9250929050565b6000806020838503121561124157611240610c25565b5b600083013567ffffffffffffffff81111561125f5761125e610c2a565b5b61126b858286016111d4565b92509250509250929050565b61128081611169565b82525050565b600060208201905061129b6000830184611277565b92915050565b6112aa81610bf1565b81146112b557600080fd5b50565b6000813590506112c7816112a1565b92915050565b6000602082840312156112e3576112e2610c25565b5b60006112f1848285016112b8565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b600080fd5b600080fd5b60008235600160800383360303811261138357611382611358565b5b80830191505092915050565b600080833560016020038436030381126113ac576113ab611358565b5b80840192508235915067ffffffffffffffff8211156113ce576113cd61135d565b5b6020830192506001820236038313156113ea576113e9611362565b5b509250929050565b600081905092915050565b82818337600083830152505050565b600061141883856113f2565b93506114258385846113fd565b82840190509392505050565b600061143e82848661140c565b91508190509392505050565b600082825260208201905092915050565b7f4d756c746963616c6c333a2076616c7565206d69736d61746368000000000000600082015250565b6000611491601a8361144a565b915061149c8261145b565b602082019050919050565b600060208201905081810360008301526114c081611484565b9050919050565b6000823560016040038336030381126114e3576114e2611358565b5b80830191505092915050565b7f4d756c746963616c6c333a2063616c6c206661696c6564000000000000000000600082015250565b600061152560178361144a565b9150611530826114ef565b602082019050919050565b6000602082019050818103600083015261155481611518565b9050919050565b60008235600160600383360303811261157757611576611358565b5b8083019150509291505056fea264697066735822122020c1bc9aacf8e4a6507193432a895a8e77094f45a1395583f07b24e860ef06cd64736f6c634300080c0033";class a8 extends G{constructor({blockNumber:t,chain:n,contract:a}){super(`Chain "${n.name}" does not support contract "${a.name}".`,{metaMessages:["This could be due to any of the following:",...t&&a.blockCreated&&a.blockCreated>t?[`- The contract "${a.name}" was not deployed until block ${a.blockCreated} (current block ${t}).`]:[`- The chain does not have the contract "${a.name}" configured.`]],name:"ChainDoesNotSupportContract"})}}class Ww extends G{constructor({chain:t,currentChainId:n}){super(`The current chain of the wallet (id: ${n}) does not match the target chain for the transaction (id: ${t.id} – ${t.name}).`,{metaMessages:[`Current Chain ID: ${n}`,`Expected Chain ID: ${t.id} – ${t.name}`],name:"ChainMismatchError"})}}class r8 extends G{constructor(){super(["No chain was provided to the request.","Please provide a chain with the `chain` argument on the Action, or by supplying a `chain` to WalletClient."].join(`
62
+ `),{name:"ChainNotFoundError"})}}class Xc extends G{constructor(){super("No chain was provided to the Client.",{name:"ClientChainNotConfiguredError"})}}class qa extends G{constructor({chainId:t}){super(typeof t=="number"?`Chain ID "${t}" is invalid.`:"Chain ID is invalid.",{name:"InvalidChainIdError"})}}const s8="/docs/contract/encodeDeployData";function Wa(e){const{abi:t,args:n,bytecode:a}=e;if(!n||n.length===0)return a;const s=t.find(f=>"type"in f&&f.type==="constructor");if(!s)throw new Lh({docsPath:s8});if(!("inputs"in s))throw new Jb({docsPath:s8});if(!s.inputs||s.inputs.length===0)throw new Jb({docsPath:s8});const i=ut(s.inputs,n);return Fe([a,i])}function nn({blockNumber:e,chain:t,contract:n}){var s;const a=(s=t==null?void 0:t.contracts)==null?void 0:s[n];if(!a)throw new a8({chain:t,contract:{name:n}});if(e&&a.blockCreated&&a.blockCreated>e)throw new a8({blockNumber:e,chain:t,contract:{name:n,blockCreated:a.blockCreated}});return a.address}function Jc(e,{docsPath:t,...n}){const a=(()=>{const s=Ba(e,n);return s instanceof m5?e:s})();return new Zd(a,{docsPath:t,...n})}function Qc(){let e=()=>{},t=()=>{};return{promise:new Promise((a,s)=>{e=a,t=s}),resolve:e,reject:t}}const i8=new Map;function eu({fn:e,id:t,shouldSplitBatch:n,wait:a=0,sort:s}){const i=async()=>{const u=b();f();const p=u.map(({args:m})=>m);p.length!==0&&e(p).then(m=>{s&&Array.isArray(m)&&m.sort(s);for(let h=0;h<u.length;h++){const{resolve:x}=u[h];x==null||x([m[h],m])}}).catch(m=>{for(let h=0;h<u.length;h++){const{reject:x}=u[h];x==null||x(m)}})},f=()=>i8.delete(t),d=()=>b().map(({args:u})=>u),b=()=>i8.get(t)||[],y=u=>i8.set(t,[...b(),u]);return{flush:f,async schedule(u){const{promise:p,resolve:m,reject:h}=Qc();return(n==null?void 0:n([...d(),u]))&&i(),b().length>0?(y({args:u,resolve:m,reject:h}),p):(y({args:u,resolve:m,reject:h}),setTimeout(i,a),p)}}}async function E5(e,t){var W,Z,_,M;const{account:n=e.account,authorizationList:a,batch:s=!!((W=e.batch)!=null&&W.multicall),blockNumber:i,blockTag:f=e.experimental_blockTag??"latest",accessList:d,blobs:b,blockOverrides:y,code:u,data:p,factory:m,factoryData:h,gas:x,gasPrice:T,maxFeePerBlobGas:C,maxFeePerGas:S,maxPriorityFeePerGas:H,nonce:A,to:E,value:$,stateOverride:L,...R}=t,D=n?ae(n):void 0;if(u&&(m||h))throw new G("Cannot provide both `code` & `factory`/`factoryData` as parameters.");if(u&&E)throw new G("Cannot provide both `code` & `to` as parameters.");const q=u&&p,e0=m&&h&&E&&p,z=q||e0,K=q?tu({code:u,data:p}):e0?Kw({data:p,factory:m,factoryData:h,to:E}):p;try{J6(t);const B=(typeof i=="bigint"?t0(i):void 0)||f,U=y?zc(y):void 0,P=Da(L),V=(M=(_=(Z=e.chain)==null?void 0:Z.formatters)==null?void 0:_.transactionRequest)==null?void 0:M.format,o0=(V||h5)({...Na(R,{format:V}),accessList:d,account:D,authorizationList:a,blobs:b,data:K,gas:x,gasPrice:T,maxFeePerBlobGas:C,maxFeePerGas:S,maxPriorityFeePerGas:H,nonce:A,to:z?void 0:E,value:$},"call");if(s&&Zw({request:o0})&&!P&&!U)try{return await Yw(e,{...o0,blockNumber:i,blockTag:f})}catch(A0){if(!(A0 instanceof Xc)&&!(A0 instanceof a8))throw A0}const y0=(()=>{const A0=[o0,B];return P&&U?[...A0,P,U]:P?[...A0,P]:U?[...A0,{},U]:A0})(),s0=await e.request({method:"eth_call",params:y0});return s0==="0x"?{data:void 0}:{data:s0}}catch(k){const B=Xw(k),{offchainLookup:U,offchainLookupSignature:P}=await Promise.resolve().then(()=>bx);if(e.ccipRead!==!1&&(B==null?void 0:B.slice(0,10))===P&&E)return{data:await U(e,{data:B,to:E})};throw z&&(B==null?void 0:B.slice(0,10))==="0x101bb98d"?new ST({factory:m}):Jc(k,{...t,account:D,chain:e.chain})}}function Zw({request:e}){const{data:t,to:n,...a}=e;return!(!t||t.startsWith(jw)||!n||Object.values(a).filter(s=>typeof s<"u").length>0)}async function Yw(e,t){var T;const{batchSize:n=1024,deployless:a=!1,wait:s=0}=typeof((T=e.batch)==null?void 0:T.multicall)=="object"?e.batch.multicall:{},{blockNumber:i,blockTag:f=e.experimental_blockTag??"latest",data:d,to:b}=t,y=(()=>{if(a)return null;if(t.multicallAddress)return t.multicallAddress;if(e.chain)return nn({blockNumber:i,chain:e.chain,contract:"multicall3"});throw new Xc})(),p=(typeof i=="bigint"?t0(i):void 0)||f,{schedule:m}=eu({id:`${e.uid}.${p}`,wait:s,shouldSplitBatch(C){return C.reduce((H,{data:A})=>H+(A.length-2),0)>n*2},fn:async C=>{const S=C.map(E=>({allowFailure:!0,callData:E.data,target:E.to})),H=T0({abi:Va,args:[S],functionName:"aggregate3"}),A=await e.request({method:"eth_call",params:[{...y===null?{data:tu({code:n8,data:H})}:{to:y,data:H}},p]});return c6({abi:Va,args:[S],functionName:"aggregate3",data:A||"0x"})}}),[{returnData:h,success:x}]=await m({data:d,to:b});if(!x)throw new Ra({data:h});return h==="0x"?{data:void 0}:{data:h}}function tu(e){const{code:t,data:n}=e;return Wa({abi:ri(["constructor(bytes, bytes)"]),bytecode:Kc,args:[t,n]})}function Kw(e){const{data:t,factory:n,factoryData:a,to:s}=e;return Wa({abi:ri(["constructor(address, bytes, address, bytes)"]),bytecode:Vw,args:[s,t,n,a]})}function Xw(e){var n;if(!(e instanceof G))return;const t=e.walk();return typeof(t==null?void 0:t.data)=="object"?(n=t.data)==null?void 0:n.data:t.data}async function u0(e,t){const{abi:n,address:a,args:s,functionName:i,...f}=t,d=T0({abi:n,args:s,functionName:i});try{const{data:b}=await d0(e,E5,"call")({...f,data:d,to:a});return c6({abi:n,args:s,functionName:i,data:b||"0x"})}catch(b){throw b6(b,{abi:n,address:a,args:s,docsPath:"/docs/contract/readContract",functionName:i})}}async function B0(e,t){const{abi:n,address:a,args:s,dataSuffix:i,functionName:f,...d}=t,b=d.account?ae(d.account):e.account,y=T0({abi:n,args:s,functionName:f});try{const{data:u}=await d0(e,E5,"call")({batch:!1,data:`${y}${i?i.replace("0x",""):""}`,to:a,...d,account:b}),p=c6({abi:n,args:s,functionName:f,data:u||"0x"}),m=n.filter(h=>"name"in h&&h.name===t.functionName);return{result:p,request:{abi:m,address:a,args:s,dataSuffix:i,functionName:f,...d,account:b}}}catch(u){throw b6(u,{abi:n,address:a,args:s,docsPath:"/docs/contract/simulateContract",functionName:f,sender:b==null?void 0:b.address})}}const o8=new Map,nu=new Map;let Jw=0;function u1(e,t,n){const a=++Jw,s=()=>o8.get(e)||[],i=()=>{const u=s();o8.set(e,u.filter(p=>p.id!==a))},f=()=>{const u=s();if(!u.some(m=>m.id===a))return;const p=nu.get(e);if(u.length===1&&p){const m=p();m instanceof Promise&&m.catch(()=>{})}i()},d=s();if(o8.set(e,[...d,{id:a,fns:t}]),d&&d.length>0)return f;const b={};for(const u in t)b[u]=(...p)=>{var h,x;const m=s();if(m.length!==0)for(const T of m)(x=(h=T.fns)[u])==null||x.call(h,...p)};const y=n(b);return typeof y=="function"&&nu.set(e,y),f}async function f8(e){return new Promise(t=>setTimeout(t,e))}function an(e,{emitOnBegin:t,initialWaitTime:n,interval:a}){let s=!0;const i=()=>s=!1;return(async()=>{let d;t&&(d=await e({unpoll:i}));const b=await(n==null?void 0:n(d))??a;await f8(b);const y=async()=>{s&&(await e({unpoll:i}),await f8(a),y())};y()})(),i}const Qw=new Map,ev=new Map;function tv(e){const t=(s,i)=>({clear:()=>i.delete(s),get:()=>i.get(s),set:f=>i.set(s,f)}),n=t(e,Qw),a=t(e,ev);return{clear:()=>{n.clear(),a.clear()},promise:n,response:a}}async function nv(e,{cacheKey:t,cacheTime:n=Number.POSITIVE_INFINITY}){const a=tv(t),s=a.response.get();if(s&&n>0&&Date.now()-s.created.getTime()<n)return s.data;let i=a.promise.get();i||(i=e(),a.promise.set(i));try{const f=await i;return a.response.set({created:new Date,data:f}),f}finally{a.promise.clear()}}const av=e=>`blockNumber.${e}`;async function A5(e,{cacheTime:t=e.cacheTime}={}){const n=await nv(()=>e.request({method:"eth_blockNumber"}),{cacheKey:av(e.uid),cacheTime:t});return BigInt(n)}async function Za(e,{filter:t}){const n="strict"in t&&t.strict,a=await t.request({method:"eth_getFilterChanges",params:[t.id]});if(typeof a[0]=="string")return a;const s=a.map(i=>qt(i));return!("abi"in t)||!t.abi?s:ji({abi:t.abi,logs:s,strict:n})}async function Ya(e,{filter:t}){return t.request({method:"eth_uninstallFilter",params:[t.id]})}function rv(e,t){const{abi:n,address:a,args:s,batch:i=!0,eventName:f,fromBlock:d,onError:b,onLogs:y,poll:u,pollingInterval:p=e.pollingInterval,strict:m}=t;return(typeof u<"u"?u:typeof d=="bigint"?!0:!(e.transport.type==="webSocket"||e.transport.type==="ipc"||e.transport.type==="fallback"&&(e.transport.transports[0].config.type==="webSocket"||e.transport.transports[0].config.type==="ipc")))?(()=>{const C=m??!1,S=re(["watchContractEvent",a,s,i,e.uid,f,p,C,d]);return u1(S,{onLogs:y,onError:b},H=>{let A;d!==void 0&&(A=d-1n);let E,$=!1;const L=an(async()=>{var R;if(!$){try{E=await d0(e,kd,"createContractEventFilter")({abi:n,address:a,args:s,eventName:f,strict:C,fromBlock:d})}catch{}$=!0;return}try{let D;if(E)D=await d0(e,Za,"getFilterChanges")({filter:E});else{const q=await d0(e,A5,"getBlockNumber")({});A&&A<q?D=await d0(e,xc,"getContractEvents")({abi:n,address:a,args:s,eventName:f,fromBlock:A+1n,toBlock:q,strict:C}):D=[],A=q}if(D.length===0)return;if(i)H.onLogs(D);else for(const q of D)H.onLogs([q])}catch(D){E&&D instanceof k1&&($=!1),(R=H.onError)==null||R.call(H,D)}},{emitOnBegin:!0,interval:p});return async()=>{E&&await d0(e,Ya,"uninstallFilter")({filter:E}),L()}})})():(()=>{const C=m??!1,S=re(["watchContractEvent",a,s,i,e.uid,f,p,C]);let H=!0,A=()=>H=!1;return u1(S,{onLogs:y,onError:b},E=>((async()=>{try{const $=(()=>{if(e.transport.type==="fallback"){const D=e.transport.transports.find(q=>q.config.type==="webSocket"||q.config.type==="ipc");return D?D.value:e.transport}return e.transport})(),L=f?Vn({abi:n,eventName:f,args:s}):[],{unsubscribe:R}=await $.subscribe({params:["logs",{address:a,topics:L}],onData(D){var e0;if(!H)return;const q=D.result;try{const{eventName:z,args:K}=zi({abi:n,data:q.data,topics:q.topics,strict:m}),W=qt(q,{args:K,eventName:z});E.onLogs([W])}catch(z){let K,W;if(z instanceof Hn||z instanceof Ea){if(m)return;K=z.abiItem.name,W=(e0=z.abiItem.inputs)==null?void 0:e0.some(_=>!("name"in _&&_.name))}const Z=qt(q,{args:W?[]:{},eventName:K});E.onLogs([Z])}},onError(D){var q;(q=E.onError)==null||q.call(E,D)}});A=R,H||A()}catch($){b==null||b($)}})(),()=>A()))})()}class rn extends G{constructor({docsPath:t}={}){super(["Could not find an Account to execute with this Action.","Please provide an Account with the `account` argument on the Action, or by supplying an `account` to the Client."].join(`
63
+ `),{docsPath:t,docsSlug:"account",name:"AccountNotFoundError"})}}class b8 extends G{constructor({docsPath:t,metaMessages:n,type:a}){super(`Account type "${a}" is not supported.`,{docsPath:t,metaMessages:n,name:"AccountTypeNotSupportedError"})}}function sv({chain:e,currentChainId:t}){if(!e)throw new r8;if(t!==e.id)throw new Ww({chain:e,currentChainId:t})}function iv(e,{docsPath:t,...n}){const a=(()=>{const s=Ba(e,n);return s instanceof m5?e:s})();return new xT(a,{docsPath:t,...n})}async function au(e,{serializedTransaction:t}){return e.request({method:"eth_sendRawTransaction",params:[t]},{retryCount:0})}const d8=new zn(128);async function ov(e,t){var H,A,E,$;const{account:n=e.account,chain:a=e.chain,accessList:s,authorizationList:i,blobs:f,data:d,gas:b,gasPrice:y,maxFeePerBlobGas:u,maxFeePerGas:p,maxPriorityFeePerGas:m,nonce:h,type:x,value:T,...C}=t;if(typeof n>"u")throw new rn({docsPath:"/docs/actions/wallet/sendTransaction"});const S=n?ae(n):null;try{J6(t);const L=await(async()=>{if(t.to)return t.to;if(t.to!==null&&i&&i.length>0)return await xi({authorization:i[0]}).catch(()=>{throw new G("`to` is required. Could not infer from `authorizationList`.")})})();if((S==null?void 0:S.type)==="json-rpc"||S===null){let R;a!==null&&(R=await d0(e,Q6,"getChainId")({}),sv({currentChainId:R,chain:a}));const D=(E=(A=(H=e.chain)==null?void 0:H.formatters)==null?void 0:A.transactionRequest)==null?void 0:E.format,e0=(D||h5)({...Na(C,{format:D}),accessList:s,account:S,authorizationList:i,blobs:f,chainId:R,data:d,gas:b,gasPrice:y,maxFeePerBlobGas:u,maxFeePerGas:p,maxPriorityFeePerGas:m,nonce:h,to:L,type:x,value:T},"sendTransaction"),z=d8.get(e.uid),K=z?"wallet_sendTransaction":"eth_sendTransaction";try{return await e.request({method:K,params:[e0]},{retryCount:0})}catch(W){if(z===!1)throw W;const Z=W;if(Z.name==="InvalidInputRpcError"||Z.name==="InvalidParamsRpcError"||Z.name==="MethodNotFoundRpcError"||Z.name==="MethodNotSupportedRpcError")return await e.request({method:"wallet_sendTransaction",params:[e0]},{retryCount:0}).then(_=>(d8.set(e.uid,!0),_)).catch(_=>{const M=_;throw M.name==="MethodNotFoundRpcError"||M.name==="MethodNotSupportedRpcError"?(d8.set(e.uid,!1),Z):M});throw Z}}if((S==null?void 0:S.type)==="local"){const R=await d0(e,Hi,"prepareTransactionRequest")({account:S,accessList:s,authorizationList:i,blobs:f,chain:a,data:d,gas:b,gasPrice:y,maxFeePerBlobGas:u,maxFeePerGas:p,maxPriorityFeePerGas:m,nonce:h,nonceManager:S.nonceManager,parameters:[...Tc,"sidecars"],type:x,value:T,...C,to:L}),D=($=a==null?void 0:a.serializers)==null?void 0:$.transaction,q=await S.signTransaction(R,{serializer:D});return await d0(e,au,"sendRawTransaction")({serializedTransaction:q})}throw(S==null?void 0:S.type)==="smart"?new b8({metaMessages:["Consider using the `sendUserOperation` Action instead."],docsPath:"/docs/actions/bundler/sendUserOperation",type:"smart"}):new b8({docsPath:"/docs/actions/wallet/sendTransaction",type:S==null?void 0:S.type})}catch(L){throw L instanceof b8?L:iv(L,{...t,account:S,chain:t.chain||void 0})}}async function ue(e,t){return ue.internal(e,ov,"sendTransaction",t)}(function(e){async function t(n,a,s,i){const{abi:f,account:d=n.account,address:b,args:y,dataSuffix:u,functionName:p,...m}=i;if(typeof d>"u")throw new rn({docsPath:"/docs/contract/writeContract"});const h=d?ae(d):null,x=T0({abi:f,args:y,functionName:p});try{return await d0(n,a,s)({data:`${x}${u?u.replace("0x",""):""}`,to:b,account:h,...m})}catch(T){throw b6(T,{abi:f,address:b,args:y,docsPath:"/docs/contract/writeContract",functionName:p,sender:h==null?void 0:h.address})}}e.internal=t})(ue||(ue={}));function c8(e,{delay:t=100,retryCount:n=2,shouldRetry:a=()=>!0}={}){return new Promise((s,i)=>{const f=async({count:d=0}={})=>{const b=async({error:y})=>{const u=typeof t=="function"?t({count:d,error:y}):t;u&&await f8(u),f({count:d+1})};try{const y=await e();s(y)}catch(y){if(d<n&&await a({count:d,error:y}))return b({error:y});i(y)}};f()})}const fv={"0x0":"reverted","0x1":"success"};function Ka(e,t){const n={...e,blockNumber:e.blockNumber?BigInt(e.blockNumber):null,contractAddress:e.contractAddress?e.contractAddress:null,cumulativeGasUsed:e.cumulativeGasUsed?BigInt(e.cumulativeGasUsed):null,effectiveGasPrice:e.effectiveGasPrice?BigInt(e.effectiveGasPrice):null,gasUsed:e.gasUsed?BigInt(e.gasUsed):null,logs:e.logs?e.logs.map(a=>qt(a)):null,to:e.to?e.to:null,transactionIndex:e.transactionIndex?zt(e.transactionIndex):null,status:e.status?fv[e.status]:null,type:e.type?ac[e.type]||e.type:null};return e.blobGasPrice&&(n.blobGasPrice=BigInt(e.blobGasPrice)),e.blobGasUsed&&(n.blobGasUsed=BigInt(e.blobGasUsed)),n}const bv=$i("transactionReceipt",Ka),u8=256;let Xa=u8,Ja;function ru(e=11){if(!Ja||Xa+e>u8*2){Ja="",Xa=0;for(let t=0;t<u8;t++)Ja+=(256+Math.random()*256|0).toString(16).substring(1)}return Ja.substring(Xa,Xa+++e)}function Qa(e){const{batch:t,chain:n,ccipRead:a,key:s="base",name:i="Base Client",type:f="base"}=e,d=e.experimental_blockTag??(typeof(n==null?void 0:n.experimental_preconfirmationTime)=="number"?"pending":void 0),b=(n==null?void 0:n.blockTime)??12e3,y=Math.min(Math.max(Math.floor(b/2),500),4e3),u=e.pollingInterval??y,p=e.cacheTime??u,m=e.account?ae(e.account):void 0,{config:h,request:x,value:T}=e.transport({account:m,chain:n,pollingInterval:u}),C={...h,...T},S={account:m,batch:t,cacheTime:p,ccipRead:a,chain:n,key:s,name:i,pollingInterval:u,request:x,transport:C,type:f,uid:ru(),...d?{experimental_blockTag:d}:{}};function H(A){return E=>{const $=E(A);for(const R in S)delete $[R];const L={...A,...$};return Object.assign(L,{extend:H(L)})}}return Object.assign(S,{extend:H(S)})}function y8(e){var n,a,s,i,f,d;if(!(e instanceof G))return!1;const t=e.walk(b=>b instanceof Oa);return t instanceof Oa?((n=t.data)==null?void 0:n.errorName)==="HttpError"||((a=t.data)==null?void 0:a.errorName)==="ResolverError"||((s=t.data)==null?void 0:s.errorName)==="ResolverNotContract"||((i=t.data)==null?void 0:i.errorName)==="ResolverNotFound"||((f=t.data)==null?void 0:f.errorName)==="ReverseAddressMismatch"||((d=t.data)==null?void 0:d.errorName)==="UnsupportedResolverProfile":!1}function dv(e){const{abi:t,data:n}=e,a=D1(n,0,4),s=t.find(i=>i.type==="function"&&a===jn(Mt(i)));if(!s)throw new zh(a,{docsPath:"/docs/contract/decodeFunctionData"});return{functionName:s.name,args:"inputs"in s&&s.inputs&&s.inputs.length>0?qn(s.inputs,D1(n,4)):void 0}}const p8="/docs/contract/encodeErrorResult";function su(e){const{abi:t,errorName:n,args:a}=e;let s=t[0];if(n){const b=s6({abi:t,args:a,name:n});if(!b)throw new td(n,{docsPath:p8});s=b}if(s.type!=="error")throw new td(void 0,{docsPath:p8});const i=Mt(s),f=jn(i);let d="0x";if(a&&a.length>0){if(!s.inputs)throw new Hh(s.name,{docsPath:p8});d=ut(s.inputs,a)}return Fe([f,d])}const l8="/docs/contract/encodeFunctionResult";function cv(e){const{abi:t,functionName:n,result:a}=e;let s=t[0];if(n){const f=s6({abi:t,name:n});if(!f)throw new U6(n,{docsPath:l8});s=f}if(s.type!=="function")throw new U6(void 0,{docsPath:l8});if(!s.outputs)throw new sd(s.name,{docsPath:l8});const i=(()=>{if(s.outputs.length===0)return[];if(s.outputs.length===1)return[a];if(Array.isArray(a))return a;throw new od(a)})();return ut(s.outputs,i)}const _5="x-batch-gateway:true";async function iu(e){const{data:t,ccipRequest:n}=e,{args:[a]}=dv({abi:t8,data:t}),s=[],i=[];return await Promise.all(a.map(async(f,d)=>{try{i[d]=f.urls.includes(_5)?await iu({data:f.data,ccipRequest:n}):await n(f),s[d]=!1}catch(b){s[d]=!0,i[d]=uv(b)}})),cv({abi:t8,functionName:"query",result:[s,i]})}function uv(e){return e.name==="HttpRequestError"&&e.status?su({abi:t8,errorName:"HttpError",args:[e.status,e.shortMessage]}):su({abi:[Fd],errorName:"Error",args:["shortMessage"in e?e.shortMessage:e.message]})}function ou(e){if(e.length!==66||e.indexOf("[")!==0||e.indexOf("]")!==65)return null;const t=`0x${e.slice(1,65)}`;return dt(t)?t:null}function m8(e){let t=new Uint8Array(32).fill(0);if(!e)return te(t);const n=e.split(".");for(let a=n.length-1;a>=0;a-=1){const s=ou(n[a]),i=s?jt(s):z0(n6(n[a]),"bytes");t=z0(Z0([t,i]),"bytes")}return te(t)}function yv(e){return`[${e.slice(2)}]`}function pv(e){const t=new Uint8Array(32).fill(0);return e?ou(e)||z0(n6(e)):te(t)}function h8(e){const t=e.replace(/^\.|\.$/gm,"");if(t.length===0)return new Uint8Array(1);const n=new Uint8Array(n6(t).byteLength+2);let a=0;const s=t.split(".");for(let i=0;i<s.length;i++){let f=n6(s[i]);f.byteLength>255&&(f=n6(yv(pv(s[i])))),n[a]=f.length,n.set(f,a+1),a+=f.length+1}return n.byteLength!==a+1?n.slice(0,a+1):n}async function lv(e,t){const{blockNumber:n,blockTag:a,coinType:s,name:i,gatewayUrls:f,strict:d}=t,{chain:b}=e,y=(()=>{if(t.universalResolverAddress)return t.universalResolverAddress;if(!b)throw new Error("client chain not configured. universalResolverAddress is required.");return nn({blockNumber:n,chain:b,contract:"ensUniversalResolver"})})(),u=b==null?void 0:b.ensTlds;if(u&&!u.some(m=>i.endsWith(m)))return null;const p=s!=null?[m8(i),BigInt(s)]:[m8(i)];try{const m=T0({abi:Wc,functionName:"addr",args:p}),h={address:y,abi:Vc,functionName:"resolveWithGateways",args:[se(h8(i)),m,f??[_5]],blockNumber:n,blockTag:a},T=await d0(e,u0,"readContract")(h);if(T[0]==="0x")return null;const C=c6({abi:Wc,args:p,functionName:"addr",data:T[0]});return C==="0x"||$t(C)==="0x00"?null:C}catch(m){if(d)throw m;if(y8(m))return null;throw m}}class mv extends G{constructor({data:t}){super("Unable to extract image from metadata. The metadata may be malformed or invalid.",{metaMessages:["- Metadata must be a JSON object with at least an `image`, `image_url` or `image_data` property.","",`Provided data: ${JSON.stringify(t)}`],name:"EnsAvatarInvalidMetadataError"})}}class S5 extends G{constructor({reason:t}){super(`ENS NFT avatar URI is invalid. ${t}`,{name:"EnsAvatarInvalidNftUriError"})}}class g8 extends G{constructor({uri:t}){super(`Unable to resolve ENS avatar URI "${t}". The URI may be malformed, invalid, or does not respond with a valid image.`,{name:"EnsAvatarUriResolutionError"})}}class hv extends G{constructor({namespace:t}){super(`ENS NFT avatar namespace "${t}" is not supported. Must be "erc721" or "erc1155".`,{name:"EnsAvatarUnsupportedNamespaceError"})}}const gv=/(?<protocol>https?:\/\/[^/]*|ipfs:\/|ipns:\/|ar:\/)?(?<root>\/)?(?<subpath>ipfs\/|ipns\/)?(?<target>[\w\-.]+)(?<subtarget>\/.*)?/,Tv=/^(Qm[1-9A-HJ-NP-Za-km-z]{44,}|b[A-Za-z2-7]{58,}|B[A-Z2-7]{58,}|z[1-9A-HJ-NP-Za-km-z]{48,}|F[0-9A-F]{50,})(\/(?<target>[\w\-.]+))?(?<subtarget>\/.*)?$/,wv=/^data:([a-zA-Z\-/+]*);base64,([^"].*)/,vv=/^data:([a-zA-Z\-/+]*)?(;[a-zA-Z0-9].*?)?(,)/;async function xv(e){try{const t=await fetch(e,{method:"HEAD"});if(t.status===200){const n=t.headers.get("content-type");return n==null?void 0:n.startsWith("image/")}return!1}catch(t){return typeof t=="object"&&typeof t.response<"u"||!Object.hasOwn(globalThis,"Image")?!1:new Promise(n=>{const a=new Image;a.onload=()=>{n(!0)},a.onerror=()=>{n(!1)},a.src=e})}}function fu(e,t){return e?e.endsWith("/")?e.slice(0,-1):e:t}function bu({uri:e,gatewayUrls:t}){const n=wv.test(e);if(n)return{uri:e,isOnChain:!0,isEncoded:n};const a=fu(t==null?void 0:t.ipfs,"https://ipfs.io"),s=fu(t==null?void 0:t.arweave,"https://arweave.net"),i=e.match(gv),{protocol:f,subpath:d,target:b,subtarget:y=""}=(i==null?void 0:i.groups)||{},u=f==="ipns:/"||d==="ipns/",p=f==="ipfs:/"||d==="ipfs/"||Tv.test(e);if(e.startsWith("http")&&!u&&!p){let h=e;return t!=null&&t.arweave&&(h=e.replace(/https:\/\/arweave.net/g,t==null?void 0:t.arweave)),{uri:h,isOnChain:!1,isEncoded:!1}}if((u||p)&&b)return{uri:`${a}/${u?"ipns":"ipfs"}/${b}${y}`,isOnChain:!1,isEncoded:!1};if(f==="ar:/"&&b)return{uri:`${s}/${b}${y||""}`,isOnChain:!1,isEncoded:!1};let m=e.replace(vv,"");if(m.startsWith("<svg")&&(m=`data:image/svg+xml;base64,${btoa(m)}`),m.startsWith("data:")||m.startsWith("{"))return{uri:m,isOnChain:!0,isEncoded:!1};throw new g8({uri:e})}function du(e){if(typeof e!="object"||!("image"in e)&&!("image_url"in e)&&!("image_data"in e))throw new mv({data:e});return e.image||e.image_url||e.image_data}async function Ev({gatewayUrls:e,uri:t}){try{const n=await fetch(t).then(s=>s.json());return await T8({gatewayUrls:e,uri:du(n)})}catch{throw new g8({uri:t})}}async function T8({gatewayUrls:e,uri:t}){const{uri:n,isOnChain:a}=bu({uri:t,gatewayUrls:e});if(a||await xv(n))return n;throw new g8({uri:t})}function Av(e){let t=e;t.startsWith("did:nft:")&&(t=t.replace("did:nft:","").replace(/_/g,"/"));const[n,a,s]=t.split("/"),[i,f]=n.split(":"),[d,b]=a.split(":");if(!i||i.toLowerCase()!=="eip155")throw new S5({reason:"Only EIP-155 supported"});if(!f)throw new S5({reason:"Chain ID not found"});if(!b)throw new S5({reason:"Contract address not found"});if(!s)throw new S5({reason:"Token ID not found"});if(!d)throw new S5({reason:"ERC namespace not found"});return{chainID:Number.parseInt(f,10),namespace:d.toLowerCase(),contractAddress:b,tokenID:s}}async function _v(e,{nft:t}){if(t.namespace==="erc721")return u0(e,{address:t.contractAddress,abi:[{name:"tokenURI",type:"function",stateMutability:"view",inputs:[{name:"tokenId",type:"uint256"}],outputs:[{name:"",type:"string"}]}],functionName:"tokenURI",args:[BigInt(t.tokenID)]});if(t.namespace==="erc1155")return u0(e,{address:t.contractAddress,abi:[{name:"uri",type:"function",stateMutability:"view",inputs:[{name:"_id",type:"uint256"}],outputs:[{name:"",type:"string"}]}],functionName:"uri",args:[BigInt(t.tokenID)]});throw new hv({namespace:t.namespace})}async function Sv(e,{gatewayUrls:t,record:n}){return/eip155:/i.test(n)?Iv(e,{gatewayUrls:t,record:n}):T8({uri:n,gatewayUrls:t})}async function Iv(e,{gatewayUrls:t,record:n}){const a=Av(n),s=await _v(e,{nft:a}),{uri:i,isOnChain:f,isEncoded:d}=bu({uri:s,gatewayUrls:t});if(f&&(i.includes("data:application/json;base64,")||i.startsWith("{"))){const y=d?atob(i.replace("data:application/json;base64,","")):i,u=JSON.parse(y);return T8({uri:du(u),gatewayUrls:t})}let b=a.tokenID;return a.namespace==="erc1155"&&(b=b.replace("0x","").padStart(64,"0")),Ev({gatewayUrls:t,uri:i.replace(/(?:0x)?{id}/,b)})}async function cu(e,t){const{blockNumber:n,blockTag:a,key:s,name:i,gatewayUrls:f,strict:d}=t,{chain:b}=e,y=(()=>{if(t.universalResolverAddress)return t.universalResolverAddress;if(!b)throw new Error("client chain not configured. universalResolverAddress is required.");return nn({blockNumber:n,chain:b,contract:"ensUniversalResolver"})})(),u=b==null?void 0:b.ensTlds;if(u&&!u.some(p=>i.endsWith(p)))return null;try{const p={address:y,abi:Vc,args:[se(h8(i)),T0({abi:qc,functionName:"text",args:[m8(i),s]}),f??[_5]],functionName:"resolveWithGateways",blockNumber:n,blockTag:a},h=await d0(e,u0,"readContract")(p);if(h[0]==="0x")return null;const x=c6({abi:qc,functionName:"text",data:h[0]});return x===""?null:x}catch(p){if(d)throw p;if(y8(p))return null;throw p}}async function Cv(e,{blockNumber:t,blockTag:n,assetGatewayUrls:a,name:s,gatewayUrls:i,strict:f,universalResolverAddress:d}){const b=await d0(e,cu,"getEnsText")({blockNumber:t,blockTag:n,key:"avatar",name:s,universalResolverAddress:d,gatewayUrls:i,strict:f});if(!b)return null;try{return await Sv(e,{record:b,gatewayUrls:a})}catch{return null}}async function Pv(e,t){const{address:n,blockNumber:a,blockTag:s,coinType:i=60n,gatewayUrls:f,strict:d}=t,{chain:b}=e,y=(()=>{if(t.universalResolverAddress)return t.universalResolverAddress;if(!b)throw new Error("client chain not configured. universalResolverAddress is required.");return nn({blockNumber:a,chain:b,contract:"ensUniversalResolver"})})();try{const u={address:y,abi:zw,args:[n,i,f??[_5]],functionName:"reverseWithGateways",blockNumber:a,blockTag:s},p=d0(e,u0,"readContract"),[m]=await p(u);return m||null}catch(u){if(d)throw u;if(y8(u))return null;throw u}}async function Mv(e,t){const{blockNumber:n,blockTag:a,name:s}=t,{chain:i}=e,f=(()=>{if(t.universalResolverAddress)return t.universalResolverAddress;if(!i)throw new Error("client chain not configured. universalResolverAddress is required.");return nn({blockNumber:n,chain:i,contract:"ensUniversalResolver"})})(),d=i==null?void 0:i.ensTlds;if(d&&!d.some(y=>s.endsWith(y)))throw new Error(`${s} is not a valid ENS TLD (${d==null?void 0:d.join(", ")}) for chain "${i.name}" (id: ${i.id}).`);const[b]=await d0(e,u0,"readContract")({address:f,abi:[{inputs:[{type:"bytes"}],name:"findResolver",outputs:[{type:"address"},{type:"bytes32"},{type:"uint256"}],stateMutability:"view",type:"function"}],functionName:"findResolver",args:[se(h8(s))],blockNumber:n,blockTag:a});return b}async function uu(e,t){var C,S,H;const{account:n=e.account,blockNumber:a,blockTag:s="latest",blobs:i,data:f,gas:d,gasPrice:b,maxFeePerBlobGas:y,maxFeePerGas:u,maxPriorityFeePerGas:p,to:m,value:h,...x}=t,T=n?ae(n):void 0;try{J6(t);const E=(typeof a=="bigint"?t0(a):void 0)||s,$=(H=(S=(C=e.chain)==null?void 0:C.formatters)==null?void 0:S.transactionRequest)==null?void 0:H.format,R=($||h5)({...Na(x,{format:$}),account:T,blobs:i,data:f,gas:d,gasPrice:b,maxFeePerBlobGas:y,maxFeePerGas:u,maxPriorityFeePerGas:p,to:m,value:h},"createAccessList"),D=await e.request({method:"eth_createAccessList",params:[R,E]});return{accessList:D.accessList,gasUsed:BigInt(D.gasUsed)}}catch(A){throw Jc(A,{...t,account:T,chain:e.chain})}}async function $v(e){const t=$a(e,{method:"eth_newBlockFilter"}),n=await e.request({method:"eth_newBlockFilter"});return{id:n,request:t(n),type:"block"}}async function yu(e,{address:t,args:n,event:a,events:s,fromBlock:i,strict:f,toBlock:d}={}){const b=s??(a?[a]:void 0),y=$a(e,{method:"eth_newFilter"});let u=[];b&&(u=[b.flatMap(h=>Vn({abi:[h],eventName:h.name,args:n}))],a&&(u=u[0]));const p=await e.request({method:"eth_newFilter",params:[{address:t,fromBlock:typeof i=="bigint"?t0(i):i,toBlock:typeof d=="bigint"?t0(d):d,...u.length?{topics:u}:{}}]});return{abi:b,args:n,eventName:a?a.name:void 0,fromBlock:i,id:p,request:y(p),strict:!!f,toBlock:d,type:"event"}}async function pu(e){const t=$a(e,{method:"eth_newPendingTransactionFilter"}),n=await e.request({method:"eth_newPendingTransactionFilter"});return{id:n,request:t(n),type:"transaction"}}async function Ov(e,{address:t,blockNumber:n,blockTag:a=e.experimental_blockTag??"latest"}){const s=typeof n=="bigint"?t0(n):void 0,i=await e.request({method:"eth_getBalance",params:[t,s||a]});return BigInt(i)}async function Rv(e){const t=await e.request({method:"eth_blobBaseFee"});return BigInt(t)}async function Bv(e,{blockHash:t,blockNumber:n,blockTag:a="latest"}={}){const s=n!==void 0?t0(n):void 0;let i;return t?i=await e.request({method:"eth_getBlockTransactionCountByHash",params:[t]},{dedupe:!0}):i=await e.request({method:"eth_getBlockTransactionCountByNumber",params:[s||a]},{dedupe:!!s}),zt(i)}async function sn(e,{address:t,blockNumber:n,blockTag:a="latest"}){const s=n!==void 0?t0(n):void 0,i=await e.request({method:"eth_getCode",params:[t,s||a]},{dedupe:!!s});if(i!=="0x")return i}class Nv extends G{constructor({address:t}){super(`No EIP-712 domain found on contract "${t}".`,{metaMessages:["Ensure that:",`- The contract is deployed at the address "${t}".`,"- `eip712Domain()` function exists on the contract.","- `eip712Domain()` function matches signature to ERC-5267 specification."],name:"Eip712DomainNotFoundError"})}}async function Dv(e,t){const{address:n,factory:a,factoryData:s}=t;try{const[i,f,d,b,y,u,p]=await d0(e,u0,"readContract")({abi:kv,address:n,functionName:"eip712Domain",factory:a,factoryData:s});return{domain:{name:f,version:d,chainId:Number(b),verifyingContract:y,salt:u},extensions:p,fields:i}}catch(i){const f=i;throw f.name==="ContractFunctionExecutionError"&&f.cause.name==="ContractFunctionZeroDataError"?new Nv({address:n}):f}}const kv=[{inputs:[],name:"eip712Domain",outputs:[{name:"fields",type:"bytes1"},{name:"name",type:"string"},{name:"version",type:"string"},{name:"chainId",type:"uint256"},{name:"verifyingContract",type:"address"},{name:"salt",type:"bytes32"},{name:"extensions",type:"uint256[]"}],stateMutability:"view",type:"function"}];function Lv(e){var t;return{baseFeePerGas:e.baseFeePerGas.map(n=>BigInt(n)),gasUsedRatio:e.gasUsedRatio,oldestBlock:BigInt(e.oldestBlock),reward:(t=e.reward)==null?void 0:t.map(n=>n.map(a=>BigInt(a)))}}async function Fv(e,{blockCount:t,blockNumber:n,blockTag:a="latest",rewardPercentiles:s}){const i=typeof n=="bigint"?t0(n):void 0,f=await e.request({method:"eth_feeHistory",params:[t0(t),i||a,s]},{dedupe:!!i});return Lv(f)}async function Uv(e,{filter:t}){const n=t.strict??!1,s=(await t.request({method:"eth_getFilterLogs",params:[t.id]})).map(i=>qt(i));return t.abi?ji({abi:t.abi,logs:s,strict:n}):s}function er(e,t){if(e.length!==t.length)throw new ed({expectedLength:e.length,givenLength:t.length});const n=[];for(let a=0;a<e.length;a++){const s=e[a],i=t[a];n.push(lu(s,i))}return Fe(n)}function lu(e,t,n=!1){if(e==="address"){const f=t;if(!ne(f))throw new ve({address:f});return ee(f.toLowerCase(),{size:n?32:null})}if(e==="string")return H6(t);if(e==="bytes")return t;if(e==="bool")return ee(si(t),{size:n?32:1});const a=e.match(ci);if(a){const[f,d,b="256"]=a,y=Number.parseInt(b,10)/8;return t0(t,{size:n?32:y,signed:d==="int"})}const s=e.match(Rd);if(s){const[f,d]=s;if(Number.parseInt(d,10)!==(t.length-2)/2)throw new id({expectedSize:Number.parseInt(d,10),givenSize:(t.length-2)/2});return ee(t,{dir:"right",size:n?32:null})}const i=e.match(zg);if(i&&Array.isArray(t)){const[f,d]=i,b=[];for(let y=0;y<t.length;y++)b.push(lu(d,t[y],!0));return b.length===0?"0x":Fe(b)}throw new Zh(e)}function mu(e){return!e||typeof e!="object"||!("BYTES_PER_ELEMENT"in e)?!1:e.BYTES_PER_ELEMENT===1&&e.constructor.name==="Uint8Array"}function Hv(e){return Gv(e)}function Gv(e){const t=jt(r6(e.from)),n=ee(mu(e.salt)?e.salt:jt(e.salt),{size:32}),a="bytecodeHash"in e?mu(e.bytecodeHash)?e.bytecodeHash:jt(e.bytecodeHash):z0(e.bytecode,"bytes");return r6(D1(z0(Z0([jt("0xff"),t,n,a])),12))}function zv(e){const{authorizationList:t}=e;if(t)for(const n of t){const{chainId:a}=n,s=n.address;if(!ne(s))throw new ve({address:s});if(a<0)throw new qa({chainId:a})}w8(e)}function jv(e){const{blobVersionedHashes:t}=e;if(t){if(t.length===0)throw new mc;for(const n of t){const a=G0(n),s=zt(D1(n,0,1));if(a!==32)throw new sw({hash:n,size:a});if(s!==lc)throw new iw({hash:n,version:s})}}w8(e)}function w8(e){const{chainId:t,maxPriorityFeePerGas:n,maxFeePerGas:a,to:s}=e;if(t<=0)throw new qa({chainId:t});if(s&&!ne(s))throw new ve({address:s});if(a&&a>ka)throw new d6({maxFeePerGas:a});if(n&&a&&n>a)throw new l5({maxFeePerGas:a,maxPriorityFeePerGas:n})}function Vv(e){const{chainId:t,maxPriorityFeePerGas:n,gasPrice:a,maxFeePerGas:s,to:i}=e;if(t<=0)throw new qa({chainId:t});if(i&&!ne(i))throw new ve({address:i});if(n||s)throw new G("`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid EIP-2930 Transaction attribute.");if(a&&a>ka)throw new d6({maxFeePerGas:a})}function qv(e){const{chainId:t,maxPriorityFeePerGas:n,gasPrice:a,maxFeePerGas:s,to:i}=e;if(i&&!ne(i))throw new ve({address:i});if(typeof t<"u"&&t<=0)throw new qa({chainId:t});if(n||s)throw new G("`maxFeePerGas`/`maxPriorityFeePerGas` is not a valid Legacy Transaction attribute.");if(a&&a>ka)throw new d6({maxFeePerGas:a})}function tr(e){if(!e||e.length===0)return[];const t=[];for(let n=0;n<e.length;n++){const{address:a,storageKeys:s}=e[n];for(let i=0;i<s.length;i++)if(s[i].length-2!==64)throw new vT({storageKey:s[i]});if(!ne(a,{strict:!1}))throw new ve({address:a});t.push([a,s])}return t}function Wv(e,t){const n=gc(e);return n==="eip1559"?Kv(e,t):n==="eip2930"?Xv(e,t):n==="eip4844"?Yv(e,t):n==="eip7702"?Zv(e,t):Jv(e,t)}function Zv(e,t){const{authorizationList:n,chainId:a,gas:s,nonce:i,to:f,value:d,maxFeePerGas:b,maxPriorityFeePerGas:y,accessList:u,data:p}=e;zv(e);const m=tr(u),h=Qv(n);return Fe(["0x04",L1([t0(a),i?t0(i):"0x",y?t0(y):"0x",b?t0(b):"0x",s?t0(s):"0x",f??"0x",d?t0(d):"0x",p??"0x",m,h,...I5(e,t)])])}function Yv(e,t){const{chainId:n,gas:a,nonce:s,to:i,value:f,maxFeePerBlobGas:d,maxFeePerGas:b,maxPriorityFeePerGas:y,accessList:u,data:p}=e;jv(e);let m=e.blobVersionedHashes,h=e.sidecars;if(e.blobs&&(typeof m>"u"||typeof h>"u")){const A=typeof e.blobs[0]=="string"?e.blobs:e.blobs.map(L=>te(L)),E=e.kzg,$=ki({blobs:A,kzg:E});if(typeof m>"u"&&(m=dc({commitments:$})),typeof h>"u"){const L=Li({blobs:A,commitments:$,kzg:E});h=hc({blobs:A,commitments:$,proofs:L})}}const x=tr(u),T=[t0(n),s?t0(s):"0x",y?t0(y):"0x",b?t0(b):"0x",a?t0(a):"0x",i??"0x",f?t0(f):"0x",p??"0x",x,d?t0(d):"0x",m??[],...I5(e,t)],C=[],S=[],H=[];if(h)for(let A=0;A<h.length;A++){const{blob:E,commitment:$,proof:L}=h[A];C.push(E),S.push($),H.push(L)}return Fe(["0x03",L1(h?[T,C,S,H]:T)])}function Kv(e,t){const{chainId:n,gas:a,nonce:s,to:i,value:f,maxFeePerGas:d,maxPriorityFeePerGas:b,accessList:y,data:u}=e;w8(e);const p=tr(y),m=[t0(n),s?t0(s):"0x",b?t0(b):"0x",d?t0(d):"0x",a?t0(a):"0x",i??"0x",f?t0(f):"0x",u??"0x",p,...I5(e,t)];return Fe(["0x02",L1(m)])}function Xv(e,t){const{chainId:n,gas:a,data:s,nonce:i,to:f,value:d,accessList:b,gasPrice:y}=e;Vv(e);const u=tr(b),p=[t0(n),i?t0(i):"0x",y?t0(y):"0x",a?t0(a):"0x",f??"0x",d?t0(d):"0x",s??"0x",u,...I5(e,t)];return Fe(["0x01",L1(p)])}function Jv(e,t){const{chainId:n=0,gas:a,data:s,nonce:i,to:f,value:d,gasPrice:b}=e;qv(e);let y=[i?t0(i):"0x",b?t0(b):"0x",a?t0(a):"0x",f??"0x",d?t0(d):"0x",s??"0x"];if(t){const u=(()=>{if(t.v>=35n)return(t.v-35n)/2n>0?t.v:27n+(t.v===35n?0n:1n);if(n>0)return BigInt(n*2)+BigInt(35n+t.v-27n);const h=27n+(t.v===27n?0n:1n);if(t.v!==h)throw new TT({v:t.v});return h})(),p=$t(t.r),m=$t(t.s);y=[...y,t0(u),p==="0x00"?"0x":p,m==="0x00"?"0x":m]}else n>0&&(y=[...y,t0(n),"0x","0x"]);return L1(y)}function I5(e,t){const n=t??e,{v:a,yParity:s}=n;if(typeof n.r>"u")return[];if(typeof n.s>"u")return[];if(typeof a>"u"&&typeof s>"u")return[];const i=$t(n.r),f=$t(n.s);return[typeof s=="number"?s?t0(1):"0x":a===0n?"0x":a===1n?t0(1):a===27n?"0x":t0(1),i==="0x00"?"0x":i,f==="0x00"?"0x":f]}function Qv(e){if(!e||e.length===0)return[];const t=[];for(const n of e){const{chainId:a,nonce:s,...i}=n,f=n.address;t.push([a?se(a):"0x",f,s?se(s):"0x",...I5({},i)])}return t}async function ex({address:e,authorization:t,signature:n}){return z1(r6(e),await xi({authorization:t,signature:n}))}const nr=new zn(8192);function tx(e,{enabled:t=!0,id:n}){if(!t||!n)return e();if(nr.get(n))return nr.get(n);const a=e().finally(()=>nr.delete(n));return nr.set(n,a),a}function nx(e,t={}){return async(n,a={})=>{var p;const{dedupe:s=!1,methods:i,retryDelay:f=150,retryCount:d=3,uid:b}={...t,...a},{method:y}=n;if((p=i==null?void 0:i.exclude)!=null&&p.includes(y))throw new f6(new Error("method not supported"),{method:y});if(i!=null&&i.include&&!i.include.includes(y))throw new f6(new Error("method not supported"),{method:y});const u=s?H6(`${b}.${re(n)}`):void 0;return tx(()=>c8(async()=>{try{return await e(n)}catch(m){const h=m;switch(h.code){case Yn.code:throw new Yn(h);case Kn.code:throw new Kn(h);case Xn.code:throw new Xn(h,{method:n.method});case Jn.code:throw new Jn(h);case o6.code:throw new o6(h);case k1.code:throw new k1(h);case Qn.code:throw new Qn(h);case e5.code:throw new e5(h);case t5.code:throw new t5(h);case f6.code:throw new f6(h,{method:n.method});case Y6.code:throw new Y6(h);case n5.code:throw new n5(h);case K6.code:throw new K6(h);case a5.code:throw new a5(h);case r5.code:throw new r5(h);case s5.code:throw new s5(h);case i5.code:throw new i5(h);case o5.code:throw new o5(h);case f5.code:throw new f5(h);case b5.code:throw new b5(h);case d5.code:throw new d5(h);case c5.code:throw new c5(h);case u5.code:throw new u5(h);case y5.code:throw new y5(h);case p5.code:throw new p5(h);case 5e3:throw new K6(h);default:throw m instanceof G?m:new CT(h)}}},{delay:({count:m,error:h})=>{var x;if(h&&h instanceof i6){const T=(x=h==null?void 0:h.headers)==null?void 0:x.get("Retry-After");if(T!=null&&T.match(/\d/))return Number.parseInt(T,10)*1e3}return~~(1<<m)*f},retryCount:d,shouldRetry:({error:m})=>ax(m)}),{enabled:s,id:u})}}function ax(e){return"code"in e&&typeof e.code=="number"?e.code===-1||e.code===Y6.code||e.code===o6.code:e instanceof i6&&e.status?e.status===403||e.status===408||e.status===413||e.status===429||e.status===500||e.status===502||e.status===503||e.status===504:!0}class rx extends G{constructor({callbackSelector:t,cause:n,data:a,extraData:s,sender:i,urls:f}){var d;super(n.shortMessage||"An error occurred while fetching for an offchain result.",{cause:n,metaMessages:[...n.metaMessages||[],(d=n.metaMessages)!=null&&d.length?"":[],"Offchain Gateway Call:",f&&[" Gateway URL(s):",...f.map(b=>` ${Zn(b)}`)],` Sender: ${i}`,` Data: ${a}`,` Callback selector: ${t}`,` Extra data: ${s}`].flat(),name:"OffchainLookupError"})}}class sx extends G{constructor({result:t,url:n}){super("Offchain gateway response is malformed. Response data must be a hex value.",{metaMessages:[`Gateway URL: ${Zn(n)}`,`Response: ${re(t)}`],name:"OffchainLookupResponseMalformedError"})}}class ix extends G{constructor({sender:t,to:n}){super("Reverted sender address does not match target contract address (`to`).",{metaMessages:[`Contract address: ${n}`,`OffchainLookup sender address: ${t}`],name:"OffchainLookupSenderMismatchError"})}}const ox="0x556f1830",hu={name:"OffchainLookup",type:"error",inputs:[{name:"sender",type:"address"},{name:"urls",type:"string[]"},{name:"callData",type:"bytes"},{name:"callbackFunction",type:"bytes4"},{name:"extraData",type:"bytes"}]};async function fx(e,{blockNumber:t,blockTag:n,data:a,to:s}){const{args:i}=gi({data:a,abi:[hu]}),[f,d,b,y,u]=i,{ccipRead:p}=e,m=p&&typeof(p==null?void 0:p.request)=="function"?p.request:gu;try{if(!z1(s,f))throw new ix({sender:f,to:s});const h=d.includes(_5)?await iu({data:b,ccipRequest:m}):await m({data:b,sender:f,urls:d}),{data:x}=await E5(e,{blockNumber:t,blockTag:n,data:Z0([y,ut([{type:"bytes"},{type:"bytes"}],[h,u])]),to:s});return x}catch(h){throw new rx({callbackSelector:y,cause:h,data:a,extraData:u,sender:f,urls:d})}}async function gu({data:e,sender:t,urls:n}){var s;let a=new Error("An unknown error occurred.");for(let i=0;i<n.length;i++){const f=n[i],d=f.includes("{data}")?"GET":"POST",b=d==="POST"?{data:e,sender:t}:void 0,y=d==="POST"?{"Content-Type":"application/json"}:{};try{const u=await fetch(f.replace("{sender}",t.toLowerCase()).replace("{data}",e),{body:JSON.stringify(b),headers:y,method:d});let p;if((s=u.headers.get("Content-Type"))!=null&&s.startsWith("application/json")?p=(await u.json()).data:p=await u.text(),!u.ok){a=new i6({body:b,details:p!=null&&p.error?re(p.error):u.statusText,headers:u.headers,status:u.status,url:f});continue}if(!dt(p)){a=new sx({result:p,url:f});continue}return p}catch(u){a=new i6({body:b,details:u.message,url:f})}}throw a}const bx=Object.freeze(Object.defineProperty({__proto__:null,ccipRequest:gu,offchainLookup:fx,offchainLookupAbiItem:hu,offchainLookupSignature:ox},Symbol.toStringTag,{value:"Module"}));function Tu(e){return{formatters:void 0,fees:void 0,serializers:void 0,...e}}function dx(e){const{source:t}=e,n=new Map,a=new zn(8192),s=new Map,i=({address:f,chainId:d})=>`${f}.${d}`;return{async consume({address:f,chainId:d,client:b}){const y=i({address:f,chainId:d}),u=this.get({address:f,chainId:d,client:b});this.increment({address:f,chainId:d});const p=await u;return await t.set({address:f,chainId:d},p),a.set(y,p),p},async increment({address:f,chainId:d}){const b=i({address:f,chainId:d}),y=n.get(b)??0;n.set(b,y+1)},async get({address:f,chainId:d,client:b}){const y=i({address:f,chainId:d});let u=s.get(y);return u||(u=(async()=>{try{const m=await t.get({address:f,chainId:d,client:b}),h=a.get(y)??0;return h>0&&m<=h?h+1:(a.delete(y),m)}finally{this.reset({address:f,chainId:d})}})(),s.set(y,u)),(n.get(y)??0)+await u},reset({address:f,chainId:d}){const b=i({address:f,chainId:d});n.delete(b),s.delete(b)}}}function cx(e,{errorInstance:t=new Error("timed out"),timeout:n,signal:a}){return new Promise((s,i)=>{(async()=>{let f;try{const d=new AbortController;n>0&&(f=setTimeout(()=>{a&&d.abort()},n)),s(await e({signal:(d==null?void 0:d.signal)||null}))}catch(d){(d==null?void 0:d.name)==="AbortError"&&i(t),i(d)}finally{clearTimeout(f)}})()})}function ux(){return{current:0,take(){return this.current++},reset(){this.current=0}}}const wu=ux();function yx(e,t={}){return{async request(n){var m;const{body:a,fetchFn:s=t.fetchFn??fetch,onRequest:i=t.onRequest,onResponse:f=t.onResponse,timeout:d=t.timeout??1e4}=n,b={...t.fetchOptions??{},...n.fetchOptions??{}},{headers:y,method:u,signal:p}=b;try{const h=await cx(async({signal:T})=>{const C={...b,body:Array.isArray(a)?re(a.map(E=>({jsonrpc:"2.0",id:E.id??wu.take(),...E}))):re({jsonrpc:"2.0",id:a.id??wu.take(),...a}),headers:{"Content-Type":"application/json",...y},method:u||"POST",signal:p||(d>0?T:null)},S=new Request(e,C),H=await(i==null?void 0:i(S,C))??{...C,url:e};return await s(H.url??e,H)},{errorInstance:new Kd({body:a,url:e}),timeout:d,signal:!0});f&&await f(h);let x;if((m=h.headers.get("Content-Type"))!=null&&m.startsWith("application/json"))x=await h.json();else{x=await h.text();try{x=JSON.parse(x||"{}")}catch(T){if(h.ok)throw T;x={error:x}}}if(!h.ok)throw new i6({body:a,details:re(x.error)||h.statusText,headers:h.headers,status:h.status,url:e});return x}catch(h){throw h instanceof i6||h instanceof Kd?h:new i6({body:a,cause:h,url:e})}}}}const px=`Ethereum Signed Message:
64
+ `;function lx(e){const t=typeof e=="string"?H6(e):typeof e.raw=="string"?e.raw:te(e.raw),n=H6(`${px}${G0(t)}`);return Z0([n,t])}function v8(e,t){return z0(lx(e),t)}class mx extends G{constructor({domain:t}){super(`Invalid domain "${re(t)}".`,{metaMessages:["Must be a valid EIP-712 domain."]})}}class hx extends G{constructor({primaryType:t,types:n}){super(`Invalid primary type \`${t}\` must be one of \`${JSON.stringify(Object.keys(n))}\`.`,{docsPath:"/api/glossary/Errors#typeddatainvalidprimarytypeerror",metaMessages:["Check that the primary type is a key in `types`."]})}}class gx extends G{constructor({type:t}){super(`Struct type "${t}" is invalid.`,{metaMessages:["Struct type must not be a Solidity type."],name:"InvalidStructTypeError"})}}function Tx(e){const{domain:t,message:n,primaryType:a,types:s}=e,i=(f,d)=>{for(const b of f){const{name:y,type:u}=b,p=d[y],m=u.match(ci);if(m&&(typeof p=="number"||typeof p=="bigint")){const[T,C,S]=m;t0(p,{signed:C==="int",size:Number.parseInt(S,10)/8})}if(u==="address"&&typeof p=="string"&&!ne(p))throw new ve({address:p});const h=u.match(Rd);if(h){const[T,C]=h;if(C&&G0(p)!==Number.parseInt(C,10))throw new id({expectedSize:Number.parseInt(C,10),givenSize:G0(p)})}const x=s[u];x&&(vx(u),i(x,p))}};if(s.EIP712Domain&&t){if(typeof t!="object")throw new mx({domain:t});i(s.EIP712Domain,t)}if(a!=="EIP712Domain")if(s[a])i(s[a],n);else throw new hx({primaryType:a,types:s})}function wx({domain:e}){return[typeof(e==null?void 0:e.name)=="string"&&{name:"name",type:"string"},(e==null?void 0:e.version)&&{name:"version",type:"string"},(typeof(e==null?void 0:e.chainId)=="number"||typeof(e==null?void 0:e.chainId)=="bigint")&&{name:"chainId",type:"uint256"},(e==null?void 0:e.verifyingContract)&&{name:"verifyingContract",type:"address"},(e==null?void 0:e.salt)&&{name:"salt",type:"bytes32"}].filter(Boolean)}function vx(e){if(e==="address"||e==="bool"||e==="string"||e.startsWith("bytes")||e.startsWith("uint")||e.startsWith("int"))throw new gx({type:e})}function vu(e){const{domain:t={},message:n,primaryType:a}=e,s={EIP712Domain:wx({domain:t}),...e.types};Tx({domain:t,message:n,primaryType:a,types:s});const i=["0x1901"];return t&&i.push(xx({domain:t,types:s})),a!=="EIP712Domain"&&i.push(xu({data:n,primaryType:a,types:s})),z0(Z0(i))}function xx({domain:e,types:t}){return xu({data:e,primaryType:"EIP712Domain",types:t})}function xu({data:e,primaryType:t,types:n}){const a=Eu({data:e,primaryType:t,types:n});return z0(a)}function Eu({data:e,primaryType:t,types:n}){const a=[{type:"bytes32"}],s=[Ex({primaryType:t,types:n})];for(const i of n[t]){const[f,d]=_u({types:n,name:i.name,type:i.type,value:e[i.name]});a.push(f),s.push(d)}return ut(a,s)}function Ex({primaryType:e,types:t}){const n=se(Ax({primaryType:e,types:t}));return z0(n)}function Ax({primaryType:e,types:t}){let n="";const a=Au({primaryType:e,types:t});a.delete(e);const s=[e,...Array.from(a).sort()];for(const i of s)n+=`${i}(${t[i].map(({name:f,type:d})=>`${d} ${f}`).join(",")})`;return n}function Au({primaryType:e,types:t},n=new Set){const a=e.match(/^\w*/u),s=a==null?void 0:a[0];if(n.has(s)||t[s]===void 0)return n;n.add(s);for(const i of t[s])Au({primaryType:i.type,types:t},n);return n}function _u({types:e,name:t,type:n,value:a}){if(e[n]!==void 0)return[{type:"bytes32"},z0(Eu({data:a,primaryType:n,types:e}))];if(n==="bytes")return[{type:"bytes32"},z0(a)];if(n==="string")return[{type:"bytes32"},z0(se(a))];if(n.lastIndexOf("]")===n.length-1){const s=n.slice(0,n.lastIndexOf("[")),i=a.map(f=>_u({name:t,type:s,types:e,value:f}));return[{type:"bytes32"},z0(ut(i.map(([f])=>f),i.map(([,f])=>f)))]}return[{type:n},a]}const _x="0x6492649264926492649264926492649264926492649264926492649264926492",Sx="1.2.2";class he extends Error{constructor(t,n={}){var f;const a=n.cause instanceof he?n.cause.details:(f=n.cause)!=null&&f.message?n.cause.message:n.details,s=n.cause instanceof he&&n.cause.docsPath||n.docsPath,i=[t||"An error occurred.","",...n.metaMessages?[...n.metaMessages,""]:[],...s?[`Docs: https://abitype.dev${s}`]:[],...a?[`Details: ${a}`]:[],`Version: abitype@${Sx}`].join(`
65
+ `);super(i),Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"docsPath",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"metaMessages",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"shortMessage",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiTypeError"}),n.cause&&(this.cause=n.cause),this.details=a,this.docsPath=s,this.metaMessages=n.metaMessages,this.shortMessage=t}}function y1(e,t){const n=e.exec(t);return n==null?void 0:n.groups}const Su=/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/,Iu=/^u?int(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/,Cu=/^\(.+?\).*?$/,Pu=/^tuple(?<array>(\[(\d*)\])*)$/;function x8(e){let t=e.type;if(Pu.test(e.type)&&"components"in e){t="(";const n=e.components.length;for(let s=0;s<n;s++){const i=e.components[s];t+=x8(i),s<n-1&&(t+=", ")}const a=y1(Pu,e.type);return t+=`)${(a==null?void 0:a.array)||""}`,x8({...e,type:t})}return"indexed"in e&&e.indexed&&(t=`${t} indexed`),e.name?`${t} ${e.name}`:t}function on(e){let t="";const n=e.length;for(let a=0;a<n;a++){const s=e[a];t+=x8(s),a!==n-1&&(t+=", ")}return t}function E8(e){var t;return e.type==="function"?`function ${e.name}(${on(e.inputs)})${e.stateMutability&&e.stateMutability!=="nonpayable"?` ${e.stateMutability}`:""}${(t=e.outputs)!=null&&t.length?` returns (${on(e.outputs)})`:""}`:e.type==="event"?`event ${e.name}(${on(e.inputs)})`:e.type==="error"?`error ${e.name}(${on(e.inputs)})`:e.type==="constructor"?`constructor(${on(e.inputs)})${e.stateMutability==="payable"?" payable":""}`:e.type==="fallback"?`fallback() external${e.stateMutability==="payable"?" payable":""}`:"receive() external payable"}const Mu=/^error (?<name>[a-zA-Z$_][a-zA-Z0-9$_]*)\((?<parameters>.*?)\)$/;function Ix(e){return Mu.test(e)}function Cx(e){return y1(Mu,e)}const $u=/^event (?<name>[a-zA-Z$_][a-zA-Z0-9$_]*)\((?<parameters>.*?)\)$/;function Px(e){return $u.test(e)}function Mx(e){return y1($u,e)}const Ou=/^function (?<name>[a-zA-Z$_][a-zA-Z0-9$_]*)\((?<parameters>.*?)\)(?: (?<scope>external|public{1}))?(?: (?<stateMutability>pure|view|nonpayable|payable{1}))?(?: returns\s?\((?<returns>.*?)\))?$/;function $x(e){return Ou.test(e)}function Ox(e){return y1(Ou,e)}const Ru=/^struct (?<name>[a-zA-Z$_][a-zA-Z0-9$_]*) \{(?<properties>.*?)\}$/;function A8(e){return Ru.test(e)}function Rx(e){return y1(Ru,e)}const Bu=/^constructor\((?<parameters>.*?)\)(?:\s(?<stateMutability>payable{1}))?$/;function Bx(e){return Bu.test(e)}function Nx(e){return y1(Bu,e)}const Nu=/^fallback\(\) external(?:\s(?<stateMutability>payable{1}))?$/;function Dx(e){return Nu.test(e)}function kx(e){return y1(Nu,e)}const Lx=/^receive\(\) external payable$/;function Fx(e){return Lx.test(e)}const Du=new Set(["memory","indexed","storage","calldata"]),Ux=new Set(["indexed"]),_8=new Set(["calldata","memory","storage"]);class Hx extends he{constructor({signature:t}){super("Failed to parse ABI item.",{details:`parseAbiItem(${JSON.stringify(t,null,2)})`,docsPath:"/api/human#parseabiitem-1"}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidAbiItemError"})}}class Gx extends he{constructor({type:t}){super("Unknown type.",{metaMessages:[`Type "${t}" is not a valid ABI type. Perhaps you forgot to include a struct signature?`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"UnknownTypeError"})}}class zx extends he{constructor({type:t}){super("Unknown type.",{metaMessages:[`Type "${t}" is not a valid ABI type.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"UnknownSolidityTypeError"})}}class jx extends he{constructor({params:t}){super("Failed to parse ABI parameters.",{details:`parseAbiParameters(${JSON.stringify(t,null,2)})`,docsPath:"/api/human#parseabiparameters-1"}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidAbiParametersError"})}}class Vx extends he{constructor({param:t}){super("Invalid ABI parameter.",{details:t}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidParameterError"})}}class qx extends he{constructor({param:t,name:n}){super("Invalid ABI parameter.",{details:t,metaMessages:[`"${n}" is a protected Solidity keyword. More info: https://docs.soliditylang.org/en/latest/cheatsheet.html`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"SolidityProtectedKeywordError"})}}class Wx extends he{constructor({param:t,type:n,modifier:a}){super("Invalid ABI parameter.",{details:t,metaMessages:[`Modifier "${a}" not allowed${n?` in "${n}" type`:""}.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidModifierError"})}}class Zx extends he{constructor({param:t,type:n,modifier:a}){super("Invalid ABI parameter.",{details:t,metaMessages:[`Modifier "${a}" not allowed${n?` in "${n}" type`:""}.`,`Data location can only be specified for array, struct, or mapping types, but "${a}" was given.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidFunctionModifierError"})}}class Yx extends he{constructor({abiParameter:t}){super("Invalid ABI parameter.",{details:JSON.stringify(t,null,2),metaMessages:["ABI parameter type is invalid."]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidAbiTypeParameterError"})}}class fn extends he{constructor({signature:t,type:n}){super(`Invalid ${n} signature.`,{details:t}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidSignatureError"})}}class Kx extends he{constructor({signature:t}){super("Unknown signature.",{details:t}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"UnknownSignatureError"})}}class Xx extends he{constructor({signature:t}){super("Invalid struct signature.",{details:t,metaMessages:["No properties exist."]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidStructSignatureError"})}}class Jx extends he{constructor({type:t}){super("Circular reference detected.",{metaMessages:[`Struct "${t}" is a circular reference.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"CircularReferenceError"})}}class Qx extends he{constructor({current:t,depth:n}){super("Unbalanced parentheses.",{metaMessages:[`"${t.trim()}" has too many ${n>0?"opening":"closing"} parentheses.`],details:`Depth "${n}"`}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"InvalidParenthesisError"})}}function eE(e,t,n){let a="";if(n)for(const s of Object.entries(n)){if(!s)continue;let i="";for(const f of s[1])i+=`[${f.type}${f.name?`:${f.name}`:""}]`;a+=`(${s[0]}{${i}})`}return t?`${t}:${e}${a}`:`${e}${a}`}const S8=new Map([["address",{type:"address"}],["bool",{type:"bool"}],["bytes",{type:"bytes"}],["bytes32",{type:"bytes32"}],["int",{type:"int256"}],["int256",{type:"int256"}],["string",{type:"string"}],["uint",{type:"uint256"}],["uint8",{type:"uint8"}],["uint16",{type:"uint16"}],["uint24",{type:"uint24"}],["uint32",{type:"uint32"}],["uint64",{type:"uint64"}],["uint96",{type:"uint96"}],["uint112",{type:"uint112"}],["uint160",{type:"uint160"}],["uint192",{type:"uint192"}],["uint256",{type:"uint256"}],["address owner",{type:"address",name:"owner"}],["address to",{type:"address",name:"to"}],["bool approved",{type:"bool",name:"approved"}],["bytes _data",{type:"bytes",name:"_data"}],["bytes data",{type:"bytes",name:"data"}],["bytes signature",{type:"bytes",name:"signature"}],["bytes32 hash",{type:"bytes32",name:"hash"}],["bytes32 r",{type:"bytes32",name:"r"}],["bytes32 root",{type:"bytes32",name:"root"}],["bytes32 s",{type:"bytes32",name:"s"}],["string name",{type:"string",name:"name"}],["string symbol",{type:"string",name:"symbol"}],["string tokenURI",{type:"string",name:"tokenURI"}],["uint tokenId",{type:"uint256",name:"tokenId"}],["uint8 v",{type:"uint8",name:"v"}],["uint256 balance",{type:"uint256",name:"balance"}],["uint256 tokenId",{type:"uint256",name:"tokenId"}],["uint256 value",{type:"uint256",name:"value"}],["event:address indexed from",{type:"address",name:"from",indexed:!0}],["event:address indexed to",{type:"address",name:"to",indexed:!0}],["event:uint indexed tokenId",{type:"uint256",name:"tokenId",indexed:!0}],["event:uint256 indexed tokenId",{type:"uint256",name:"tokenId",indexed:!0}]]);function ku(e,t={}){if($x(e))return tE(e,t);if(Px(e))return nE(e,t);if(Ix(e))return aE(e,t);if(Bx(e))return rE(e,t);if(Dx(e))return sE(e);if(Fx(e))return{type:"receive",stateMutability:"payable"};throw new Kx({signature:e})}function tE(e,t={}){const n=Ox(e);if(!n)throw new fn({signature:e,type:"function"});const a=Qe(n.parameters),s=[],i=a.length;for(let d=0;d<i;d++)s.push(p1(a[d],{modifiers:_8,structs:t,type:"function"}));const f=[];if(n.returns){const d=Qe(n.returns),b=d.length;for(let y=0;y<b;y++)f.push(p1(d[y],{modifiers:_8,structs:t,type:"function"}))}return{name:n.name,type:"function",stateMutability:n.stateMutability??"nonpayable",inputs:s,outputs:f}}function nE(e,t={}){const n=Mx(e);if(!n)throw new fn({signature:e,type:"event"});const a=Qe(n.parameters),s=[],i=a.length;for(let f=0;f<i;f++)s.push(p1(a[f],{modifiers:Ux,structs:t,type:"event"}));return{name:n.name,type:"event",inputs:s}}function aE(e,t={}){const n=Cx(e);if(!n)throw new fn({signature:e,type:"error"});const a=Qe(n.parameters),s=[],i=a.length;for(let f=0;f<i;f++)s.push(p1(a[f],{structs:t,type:"error"}));return{name:n.name,type:"error",inputs:s}}function rE(e,t={}){const n=Nx(e);if(!n)throw new fn({signature:e,type:"constructor"});const a=Qe(n.parameters),s=[],i=a.length;for(let f=0;f<i;f++)s.push(p1(a[f],{structs:t,type:"constructor"}));return{type:"constructor",stateMutability:n.stateMutability??"nonpayable",inputs:s}}function sE(e){const t=kx(e);if(!t)throw new fn({signature:e,type:"fallback"});return{type:"fallback",stateMutability:t.stateMutability??"nonpayable"}}const iE=/^(?<type>[a-zA-Z$_][a-zA-Z0-9$_]*(?:\spayable)?)(?<array>(?:\[\d*?\])+?)?(?:\s(?<modifier>calldata|indexed|memory|storage{1}))?(?:\s(?<name>[a-zA-Z$_][a-zA-Z0-9$_]*))?$/,oE=/^\((?<type>.+?)\)(?<array>(?:\[\d*?\])+?)?(?:\s(?<modifier>calldata|indexed|memory|storage{1}))?(?:\s(?<name>[a-zA-Z$_][a-zA-Z0-9$_]*))?$/,fE=/^u?int$/;function p1(e,t){var p,m;const n=eE(e,t==null?void 0:t.type,t==null?void 0:t.structs);if(S8.has(n))return S8.get(n);const a=Cu.test(e),s=y1(a?oE:iE,e);if(!s)throw new Vx({param:e});if(s.name&&dE(s.name))throw new qx({param:e,name:s.name});const i=s.name?{name:s.name}:{},f=s.modifier==="indexed"?{indexed:!0}:{},d=(t==null?void 0:t.structs)??{};let b,y={};if(a){b="tuple";const h=Qe(s.type),x=[],T=h.length;for(let C=0;C<T;C++)x.push(p1(h[C],{structs:d}));y={components:x}}else if(s.type in d)b="tuple",y={components:d[s.type]};else if(fE.test(s.type))b=`${s.type}256`;else if(s.type==="address payable")b="address";else if(b=s.type,(t==null?void 0:t.type)!=="struct"&&!Lu(b))throw new zx({type:b});if(s.modifier){if(!((m=(p=t==null?void 0:t.modifiers)==null?void 0:p.has)!=null&&m.call(p,s.modifier)))throw new Wx({param:e,type:t==null?void 0:t.type,modifier:s.modifier});if(_8.has(s.modifier)&&!cE(b,!!s.array))throw new Zx({param:e,type:t==null?void 0:t.type,modifier:s.modifier})}const u={type:`${b}${s.array??""}`,...i,...f,...y};return S8.set(n,u),u}function Qe(e,t=[],n="",a=0){const s=e.trim().length;for(let i=0;i<s;i++){const f=e[i],d=e.slice(i+1);switch(f){case",":return a===0?Qe(d,[...t,n.trim()]):Qe(d,t,`${n}${f}`,a);case"(":return Qe(d,t,`${n}${f}`,a+1);case")":return Qe(d,t,`${n}${f}`,a-1);default:return Qe(d,t,`${n}${f}`,a)}}if(n==="")return t;if(a!==0)throw new Qx({current:n,depth:a});return t.push(n.trim()),t}function Lu(e){return e==="address"||e==="bool"||e==="function"||e==="string"||Su.test(e)||Iu.test(e)}const bE=/^(?:after|alias|anonymous|apply|auto|byte|calldata|case|catch|constant|copyof|default|defined|error|event|external|false|final|function|immutable|implements|in|indexed|inline|internal|let|mapping|match|memory|mutable|null|of|override|partial|private|promise|public|pure|reference|relocatable|return|returns|sizeof|static|storage|struct|super|supports|switch|this|true|try|typedef|typeof|var|view|virtual)$/;function dE(e){return e==="address"||e==="bool"||e==="function"||e==="string"||e==="tuple"||Su.test(e)||Iu.test(e)||bE.test(e)}function cE(e,t){return t||e==="bytes"||e==="string"||e==="tuple"}function Fu(e){const t={},n=e.length;for(let f=0;f<n;f++){const d=e[f];if(!A8(d))continue;const b=Rx(d);if(!b)throw new fn({signature:d,type:"struct"});const y=b.properties.split(";"),u=[],p=y.length;for(let m=0;m<p;m++){const x=y[m].trim();if(!x)continue;const T=p1(x,{type:"struct"});u.push(T)}if(!u.length)throw new Xx({signature:d});t[b.name]=u}const a={},s=Object.entries(t),i=s.length;for(let f=0;f<i;f++){const[d,b]=s[f];a[d]=Uu(b,t)}return a}const uE=/^(?<type>[a-zA-Z$_][a-zA-Z0-9$_]*)(?<array>(?:\[\d*?\])+?)?$/;function Uu(e=[],t={},n=new Set){const a=[],s=e.length;for(let i=0;i<s;i++){const f=e[i];if(Cu.test(f.type))a.push(f);else{const b=y1(uE,f.type);if(!(b!=null&&b.type))throw new Yx({abiParameter:f});const{array:y,type:u}=b;if(u in t){if(n.has(u))throw new Jx({type:u});a.push({...f,type:`tuple${y??""}`,components:Uu(t[u],t,new Set([...n,u]))})}else if(Lu(u))a.push(f);else throw new Gx({type:u})}}return a}function Hu(e){let t;if(typeof e=="string")t=ku(e);else{const n=Fu(e),a=e.length;for(let s=0;s<a;s++){const i=e[s];if(!A8(i)){t=ku(i,n);break}}}if(!t)throw new Hx({signature:e});return t}function Gu(e){const t=[];if(typeof e=="string"){const n=Qe(e),a=n.length;for(let s=0;s<a;s++)t.push(p1(n[s],{modifiers:Du}))}else{const n=Fu(e),a=e.length;for(let s=0;s<a;s++){const i=e[s];if(A8(i))continue;const f=Qe(i),d=f.length;for(let b=0;b<d;b++)t.push(p1(f[b],{modifiers:Du,structs:n}))}}if(t.length===0)throw new jx({params:e});return t}class yE extends Map{constructor(t){super(),Object.defineProperty(this,"maxSize",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.maxSize=t}get(t){const n=super.get(t);return super.has(t)&&n!==void 0&&(this.delete(t),super.set(t,n)),n}set(t,n){if(super.set(t,n),this.maxSize&&this.size>this.maxSize){const a=this.keys().next().value;a&&this.delete(a)}return this}}const I8={checksum:new yE(8192)}.checksum;function zu(e,t={}){const{as:n=typeof e=="string"?"Hex":"Bytes"}=t,a=a6(Ew(e));return n==="Bytes"?a:He(a)}const pE=/^0x[a-fA-F0-9]{40}$/;function ar(e,t={}){const{strict:n=!0}=t;if(!pE.test(e))throw new Vu({address:e,cause:new lE});if(n){if(e.toLowerCase()===e)return;if(ju(e)!==e)throw new Vu({address:e,cause:new mE})}}function ju(e){if(I8.has(e))return I8.get(e);ar(e,{strict:!1});const t=e.substring(2).toLowerCase(),n=zu(_w(t),{as:"Bytes"}),a=t.split("");for(let i=0;i<40;i+=2)n[i>>1]>>4>=8&&a[i]&&(a[i]=a[i].toUpperCase()),(n[i>>1]&15)>=8&&a[i+1]&&(a[i+1]=a[i+1].toUpperCase());const s=`0x${a.join("")}`;return I8.set(e,s),s}function C8(e,t={}){const{strict:n=!0}=t??{};try{return ar(e,{strict:n}),!0}catch{return!1}}class Vu extends S0{constructor({address:t,cause:n}){super(`Address "${t}" is invalid.`,{cause:n}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Address.InvalidAddressError"})}}class lE extends S0{constructor(){super("Address is not a 20 byte (40 hexadecimal character) value."),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Address.InvalidInputError"})}}class mE extends S0{constructor(){super("Address does not match its checksum counterpart."),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Address.InvalidChecksumError"})}}const hE=/^(.*)\[([0-9]*)\]$/,gE=/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/,qu=/^(u?int)(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/,Wu=2n**256n-1n;function bn(e,t,n){const{checksumAddress:a,staticPosition:s}=n,i=O8(t.type);if(i){const[f,d]=i;return wE(e,{...t,type:d},{checksumAddress:a,length:f,staticPosition:s})}if(t.type==="tuple")return AE(e,t,{checksumAddress:a,staticPosition:s});if(t.type==="address")return TE(e,{checksum:a});if(t.type==="bool")return vE(e);if(t.type.startsWith("bytes"))return xE(e,t,{staticPosition:s});if(t.type.startsWith("uint")||t.type.startsWith("int"))return EE(e,t);if(t.type==="string")return _E(e,{staticPosition:s});throw new N8(t.type)}const Zu=32,P8=32;function TE(e,t={}){const{checksum:n=!1}=t,a=e.readBytes(32);return[(i=>n?ju(i):i)(He(Iw(a,-20))),32]}function wE(e,t,n){const{checksumAddress:a,length:s,staticPosition:i}=n;if(!s){const b=c1(e.readBytes(P8)),y=i+b,u=y+Zu;e.setPosition(y);const p=c1(e.readBytes(Zu)),m=C5(t);let h=0;const x=[];for(let T=0;T<p;++T){e.setPosition(u+(m?T*32:h));const[C,S]=bn(e,t,{checksumAddress:a,staticPosition:u});h+=S,x.push(C)}return e.setPosition(i+32),[x,32]}if(C5(t)){const b=c1(e.readBytes(P8)),y=i+b,u=[];for(let p=0;p<s;++p){e.setPosition(y+p*32);const[m]=bn(e,t,{checksumAddress:a,staticPosition:y});u.push(m)}return e.setPosition(i+32),[u,32]}let f=0;const d=[];for(let b=0;b<s;++b){const[y,u]=bn(e,t,{checksumAddress:a,staticPosition:i+f});f+=u,d.push(y)}return[d,f]}function vE(e){return[Pw(e.readBytes(32),{size:32}),32]}function xE(e,t,{staticPosition:n}){const[a,s]=t.type.split("bytes");if(!s){const f=c1(e.readBytes(32));e.setPosition(n+f);const d=c1(e.readBytes(32));if(d===0)return e.setPosition(n+32),["0x",32];const b=e.readBytes(d);return e.setPosition(n+32),[He(b),32]}return[He(e.readBytes(Number.parseInt(s,10),32)),32]}function EE(e,t){const n=t.type.startsWith("int"),a=Number.parseInt(t.type.split("int")[1]||"256",10),s=e.readBytes(32);return[a>48?Cw(s,{signed:n}):c1(s,{signed:n}),32]}function AE(e,t,n){const{checksumAddress:a,staticPosition:s}=n,i=t.components.length===0||t.components.some(({name:b})=>!b),f=i?[]:{};let d=0;if(C5(t)){const b=c1(e.readBytes(P8)),y=s+b;for(let u=0;u<t.components.length;++u){const p=t.components[u];e.setPosition(y+d);const[m,h]=bn(e,p,{checksumAddress:a,staticPosition:y});d+=h,f[i?u:p==null?void 0:p.name]=m}return e.setPosition(s+32),[f,32]}for(let b=0;b<t.components.length;++b){const y=t.components[b],[u,p]=bn(e,y,{checksumAddress:a,staticPosition:s});f[i?b:y==null?void 0:y.name]=u,d+=p}return[f,d]}function _E(e,{staticPosition:t}){const n=c1(e.readBytes(32)),a=t+n;e.setPosition(a);const s=c1(e.readBytes(32));if(s===0)return e.setPosition(t+32),["",32];const i=e.readBytes(s,32),f=Mw(Nc(i));return e.setPosition(t+32),[f,32]}function SE({checksumAddress:e,parameters:t,values:n}){const a=[];for(let s=0;s<t.length;s++)a.push(M8({checksumAddress:e,parameter:t[s],value:n[s]}));return a}function M8({checksumAddress:e=!1,parameter:t,value:n}){const a=t,s=O8(a.type);if(s){const[i,f]=s;return CE(n,{checksumAddress:e,length:i,parameter:{...a,type:f}})}if(a.type==="tuple")return RE(n,{checksumAddress:e,parameter:a});if(a.type==="address")return IE(n,{checksum:e});if(a.type==="bool")return ME(n);if(a.type.startsWith("uint")||a.type.startsWith("int")){const i=a.type.startsWith("int"),[,,f="256"]=qu.exec(a.type)??[];return $E(n,{signed:i,size:Number(f)})}if(a.type.startsWith("bytes"))return PE(n,{type:a.type});if(a.type==="string")return OE(n);throw new N8(a.type)}function $8(e){let t=0;for(let i=0;i<e.length;i++){const{dynamic:f,encoded:d}=e[i];f?t+=32:t+=Je(d)}const n=[],a=[];let s=0;for(let i=0;i<e.length;i++){const{dynamic:f,encoded:d}=e[i];f?(n.push(ce(t+s,{size:32})),a.push(d),s+=Je(d)):n.push(d)}return lt(...n,...a)}function IE(e,t){const{checksum:n=!1}=t;return ar(e,{strict:n}),{dynamic:!1,encoded:y6(e.toLowerCase())}}function CE(e,t){const{checksumAddress:n,length:a,parameter:s}=t,i=a===null;if(!Array.isArray(e))throw new GE(e);if(!i&&e.length!==a)throw new HE({expectedLength:a,givenLength:e.length,type:`${s.type}[${a}]`});let f=!1;const d=[];for(let b=0;b<e.length;b++){const y=M8({checksumAddress:n,parameter:s,value:e[b]});y.dynamic&&(f=!0),d.push(y)}if(i||f){const b=$8(d);if(i){const y=ce(d.length,{size:32});return{dynamic:!0,encoded:d.length>0?lt(y,b):y}}if(f)return{dynamic:!0,encoded:b}}return{dynamic:!1,encoded:lt(...d.map(({encoded:b})=>b))}}function PE(e,{type:t}){const[,n]=t.split("bytes"),a=Je(e);if(!n){let s=e;return a%32!==0&&(s=p6(s,Math.ceil((e.length-2)/2/32)*32)),{dynamic:!0,encoded:lt(y6(ce(a,{size:32})),s)}}if(a!==Number.parseInt(n,10))throw new Xu({expectedSize:Number.parseInt(n,10),value:e});return{dynamic:!1,encoded:p6(e)}}function ME(e){if(typeof e!="boolean")throw new S0(`Invalid boolean value: "${e}" (type: ${typeof e}). Expected: \`true\` or \`false\`.`);return{dynamic:!1,encoded:y6(Dc(e))}}function $E(e,{signed:t,size:n}){if(typeof n=="number"){const a=2n**(BigInt(n)-(t?1n:0n))-1n,s=t?-a-1n:0n;if(e>a||e<s)throw new Fc({max:a.toString(),min:s.toString(),signed:t,size:n/8,value:e.toString()})}return{dynamic:!1,encoded:ce(e,{size:32,signed:t})}}function OE(e){const t=e8(e),n=Math.ceil(Je(t)/32),a=[];for(let s=0;s<n;s++)a.push(p6(Wt(t,s*32,(s+1)*32)));return{dynamic:!0,encoded:lt(p6(ce(Je(t),{size:32})),...a)}}function RE(e,t){const{checksumAddress:n,parameter:a}=t;let s=!1;const i=[];for(let f=0;f<a.components.length;f++){const d=a.components[f],b=Array.isArray(e)?f:d.name,y=M8({checksumAddress:n,parameter:d,value:e[b]});i.push(y),y.dynamic&&(s=!0)}return{dynamic:s,encoded:s?$8(i):lt(...i.map(({encoded:f})=>f))}}function O8(e){const t=e.match(/^(.*)\[(\d+)?\]$/);return t?[t[2]?Number(t[2]):null,t[1]]:void 0}function C5(e){var a;const{type:t}=e;if(t==="string"||t==="bytes"||t.endsWith("[]"))return!0;if(t==="tuple")return(a=e.components)==null?void 0:a.some(C5);const n=O8(e.type);return!!(n&&C5({...e,type:n[1]}))}const BE={bytes:new Uint8Array,dataView:new DataView(new ArrayBuffer(0)),position:0,positionReadCount:new Map,recursiveReadCount:0,recursiveReadLimit:Number.POSITIVE_INFINITY,assertReadLimit(){if(this.recursiveReadCount>=this.recursiveReadLimit)throw new kE({count:this.recursiveReadCount+1,limit:this.recursiveReadLimit})},assertPosition(e){if(e<0||e>this.bytes.length-1)throw new DE({length:this.bytes.length,position:e})},decrementPosition(e){if(e<0)throw new Yu({offset:e});const t=this.position-e;this.assertPosition(t),this.position=t},getReadCount(e){return this.positionReadCount.get(e||this.position)||0},incrementPosition(e){if(e<0)throw new Yu({offset:e});const t=this.position+e;this.assertPosition(t),this.position=t},inspectByte(e){const t=e??this.position;return this.assertPosition(t),this.bytes[t]},inspectBytes(e,t){const n=t??this.position;return this.assertPosition(n+e-1),this.bytes.subarray(n,n+e)},inspectUint8(e){const t=e??this.position;return this.assertPosition(t),this.bytes[t]},inspectUint16(e){const t=e??this.position;return this.assertPosition(t+1),this.dataView.getUint16(t)},inspectUint24(e){const t=e??this.position;return this.assertPosition(t+2),(this.dataView.getUint16(t)<<8)+this.dataView.getUint8(t+2)},inspectUint32(e){const t=e??this.position;return this.assertPosition(t+3),this.dataView.getUint32(t)},pushByte(e){this.assertPosition(this.position),this.bytes[this.position]=e,this.position++},pushBytes(e){this.assertPosition(this.position+e.length-1),this.bytes.set(e,this.position),this.position+=e.length},pushUint8(e){this.assertPosition(this.position),this.bytes[this.position]=e,this.position++},pushUint16(e){this.assertPosition(this.position+1),this.dataView.setUint16(this.position,e),this.position+=2},pushUint24(e){this.assertPosition(this.position+2),this.dataView.setUint16(this.position,e>>8),this.dataView.setUint8(this.position+2,e&255),this.position+=3},pushUint32(e){this.assertPosition(this.position+3),this.dataView.setUint32(this.position,e),this.position+=4},readByte(){this.assertReadLimit(),this._touch();const e=this.inspectByte();return this.position++,e},readBytes(e,t){this.assertReadLimit(),this._touch();const n=this.inspectBytes(e);return this.position+=t??e,n},readUint8(){this.assertReadLimit(),this._touch();const e=this.inspectUint8();return this.position+=1,e},readUint16(){this.assertReadLimit(),this._touch();const e=this.inspectUint16();return this.position+=2,e},readUint24(){this.assertReadLimit(),this._touch();const e=this.inspectUint24();return this.position+=3,e},readUint32(){this.assertReadLimit(),this._touch();const e=this.inspectUint32();return this.position+=4,e},get remaining(){return this.bytes.length-this.position},setPosition(e){const t=this.position;return this.assertPosition(e),this.position=e,()=>this.position=t},_touch(){if(this.recursiveReadLimit===Number.POSITIVE_INFINITY)return;const e=this.getReadCount();this.positionReadCount.set(this.position,e+1),e>0&&this.recursiveReadCount++}};function NE(e,{recursiveReadLimit:t=8192}={}){const n=Object.create(BE);return n.bytes=e,n.dataView=new DataView(e.buffer,e.byteOffset,e.byteLength),n.positionReadCount=new Map,n.recursiveReadLimit=t,n}class Yu extends S0{constructor({offset:t}){super(`Offset \`${t}\` cannot be negative.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Cursor.NegativeOffsetError"})}}class DE extends S0{constructor({length:t,position:n}){super(`Position \`${n}\` is out of bounds (\`0 < position < ${t}\`).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Cursor.PositionOutOfBoundsError"})}}class kE extends S0{constructor({count:t,limit:n}){super(`Recursive read limit of \`${n}\` exceeded (recursive read count: \`${t}\`).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Cursor.RecursiveReadLimitExceededError"})}}function LE(e,t,n={}){const{as:a="Array",checksumAddress:s=!1}=n,i=typeof t=="string"?Qi(t):t,f=NE(i);if(tn(i)===0&&e.length>0)throw new UE;if(tn(i)&&tn(i)<32)throw new FE({data:typeof t=="string"?t:He(t),parameters:e,size:tn(i)});let d=0;const b=a==="Array"?[]:{};for(let y=0;y<e.length;++y){const u=e[y];f.setPosition(d);const[p,m]=bn(f,u,{checksumAddress:s,staticPosition:0});d+=m,a==="Array"?b.push(p):b[u.name??y]=p}return b}function R8(e,t,n){const{checksumAddress:a=!1}={};if(e.length!==t.length)throw new Ju({expectedLength:e.length,givenLength:t.length});const s=SE({checksumAddress:a,parameters:e,values:t}),i=$8(s);return i.length===0?"0x":i}function B8(e,t){if(e.length!==t.length)throw new Ju({expectedLength:e.length,givenLength:t.length});const n=[];for(let a=0;a<e.length;a++){const s=e[a],i=t[a];n.push(B8.encode(s,i))}return lt(...n)}(function(e){function t(n,a,s=!1){if(n==="address"){const b=a;return ar(b),y6(b.toLowerCase(),s?32:0)}if(n==="string")return e8(a);if(n==="bytes")return a;if(n==="bool")return y6(Dc(a),s?32:1);const i=n.match(qu);if(i){const[b,y,u="256"]=i,p=Number.parseInt(u,10)/8;return ce(a,{size:s?32:p,signed:y==="int"})}const f=n.match(gE);if(f){const[b,y]=f;if(Number.parseInt(y,10)!==(a.length-2)/2)throw new Xu({expectedSize:Number.parseInt(y,10),value:a});return p6(a,s?32:0)}const d=n.match(hE);if(d&&Array.isArray(a)){const[b,y]=d,u=[];for(let p=0;p<a.length;p++)u.push(t(y,a[p],!0));return u.length===0?"0x":lt(...u)}throw new N8(n)}e.encode=t})(B8||(B8={}));function Ku(e){return Array.isArray(e)&&typeof e[0]=="string"||typeof e=="string"?Gu(e):e}class FE extends S0{constructor({data:t,parameters:n,size:a}){super(`Data size of ${a} bytes is too small for given parameters.`,{metaMessages:[`Params: (${on(n)})`,`Data: ${t} (${a} bytes)`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.DataSizeTooSmallError"})}}class UE extends S0{constructor(){super('Cannot decode zero data ("0x") with ABI parameters.'),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.ZeroDataError"})}}class HE extends S0{constructor({expectedLength:t,givenLength:n,type:a}){super(`Array length mismatch for type \`${a}\`. Expected: \`${t}\`. Given: \`${n}\`.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.ArrayLengthMismatchError"})}}class Xu extends S0{constructor({expectedSize:t,value:n}){super(`Size of bytes "${n}" (bytes${Je(n)}) does not match expected size (bytes${t}).`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.BytesSizeMismatchError"})}}class Ju extends S0{constructor({expectedLength:t,givenLength:n}){super(["ABI encoding parameters/values length mismatch.",`Expected length (parameters): ${t}`,`Given length (values): ${n}`].join(`
66
+ `)),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.LengthMismatchError"})}}class GE extends S0{constructor(t){super(`Value \`${t}\` is not a valid array.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.InvalidArrayError"})}}class N8 extends S0{constructor(t){super(`Type \`${t}\` is not a valid ABI Type.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiParameters.InvalidTypeError"})}}class Qu extends oi{constructor(t,n){super(),this.finished=!1,this.destroyed=!1,gg(t);const a=Ia(n);if(this.iHash=t.create(),typeof this.iHash.update!="function")throw new Error("Expected instance of class which extends utils.Hash");this.blockLen=this.iHash.blockLen,this.outputLen=this.iHash.outputLen;const s=this.blockLen,i=new Uint8Array(s);i.set(a.length>s?t.create().update(a).digest():a);for(let f=0;f<i.length;f++)i[f]^=54;this.iHash.update(i),this.oHash=t.create();for(let f=0;f<i.length;f++)i[f]^=106;this.oHash.update(i),N1(i)}update(t){return q6(this),this.iHash.update(t),this}digestInto(t){q6(this),B1(t,this.outputLen),this.finished=!0,this.iHash.digestInto(t),this.oHash.update(t),this.oHash.digestInto(t),this.destroy()}digest(){const t=new Uint8Array(this.oHash.outputLen);return this.digestInto(t),t}_cloneInto(t){t||(t=Object.create(Object.getPrototypeOf(this),{}));const{oHash:n,iHash:a,finished:s,destroyed:i,blockLen:f,outputLen:d}=this;return t=t,t.finished=s,t.destroyed=i,t.blockLen=f,t.outputLen=d,t.oHash=n._cloneInto(t.oHash),t.iHash=a._cloneInto(t.iHash),t}clone(){return this._cloneInto()}destroy(){this.destroyed=!0,this.oHash.destroy(),this.iHash.destroy()}}const D8=(e,t,n)=>new Qu(e,t).update(n).digest();D8.create=(e,t)=>new Qu(e,t);/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const et=BigInt(0),Pe=BigInt(1),l6=BigInt(2),zE=BigInt(3),e3=BigInt(4),t3=BigInt(5),n3=BigInt(8);function mt(e,t){const n=e%t;return n>=et?n:t+n}function k8(e,t){if(e===et)throw new Error("invert: expected non-zero number");if(t<=et)throw new Error("invert: expected positive modulus, got "+t);let n=mt(e,t),a=t,s=et,i=Pe;for(;n!==et;){const d=a/n,b=a%n,y=s-i*d;a=n,n=b,s=i,i=y}if(a!==Pe)throw new Error("invert: does not exist");return mt(s,t)}function a3(e,t){const n=(e.ORDER+Pe)/e3,a=e.pow(t,n);if(!e.eql(e.sqr(a),t))throw new Error("Cannot find square root");return a}function jE(e,t){const n=(e.ORDER-t3)/n3,a=e.mul(t,l6),s=e.pow(a,n),i=e.mul(t,s),f=e.mul(e.mul(i,l6),s),d=e.mul(i,e.sub(f,e.ONE));if(!e.eql(e.sqr(d),t))throw new Error("Cannot find square root");return d}function VE(e){if(e<BigInt(3))throw new Error("sqrt is not defined for small field");let t=e-Pe,n=0;for(;t%l6===et;)t/=l6,n++;let a=l6;const s=P5(e);for(;s3(s,a)===1;)if(a++>1e3)throw new Error("Cannot find square root: probably non-prime P");if(n===1)return a3;let i=s.pow(a,t);const f=(t+Pe)/l6;return function(b,y){if(b.is0(y))return y;if(s3(b,y)!==1)throw new Error("Cannot find square root");let u=n,p=b.mul(b.ONE,i),m=b.pow(y,t),h=b.pow(y,f);for(;!b.eql(m,b.ONE);){if(b.is0(m))return b.ZERO;let x=1,T=b.sqr(m);for(;!b.eql(T,b.ONE);)if(x++,T=b.sqr(T),x===u)throw new Error("Cannot find square root");const C=Pe<<BigInt(u-x-1),S=b.pow(p,C);u=x,p=b.sqr(S),m=b.mul(m,p),h=b.mul(h,S)}return h}}function qE(e){return e%e3===zE?a3:e%n3===t3?jE:VE(e)}const WE=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function ZE(e){const t={ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"},n=WE.reduce((a,s)=>(a[s]="function",a),t);return za(e,n)}function YE(e,t,n){if(n<et)throw new Error("invalid exponent, negatives unsupported");if(n===et)return e.ONE;if(n===Pe)return t;let a=e.ONE,s=t;for(;n>et;)n&Pe&&(a=e.mul(a,s)),s=e.sqr(s),n>>=Pe;return a}function r3(e,t,n=!1){const a=new Array(t.length).fill(n?e.ZERO:void 0),s=t.reduce((f,d,b)=>e.is0(d)?f:(a[b]=f,e.mul(f,d)),e.ONE),i=e.inv(s);return t.reduceRight((f,d,b)=>e.is0(d)?f:(a[b]=e.mul(f,a[b]),e.mul(f,d)),i),a}function s3(e,t){const n=(e.ORDER-Pe)/l6,a=e.pow(t,n),s=e.eql(a,e.ONE),i=e.eql(a,e.ZERO),f=e.eql(a,e.neg(e.ONE));if(!s&&!i&&!f)throw new Error("invalid Legendre symbol result");return s?1:i?0:-1}function i3(e,t){t!==void 0&&V6(t);const n=t!==void 0?t:e.toString(2).length,a=Math.ceil(n/8);return{nBitLength:n,nByteLength:a}}function P5(e,t,n=!1,a={}){if(e<=et)throw new Error("invalid field: expected ORDER > 0, got "+e);const{nBitLength:s,nByteLength:i}=i3(e,t);if(i>2048)throw new Error("invalid field: expected ORDER of <= 2048 bytes");let f;const d=Object.freeze({ORDER:e,isLE:n,BITS:s,BYTES:i,MASK:Ga(s),ZERO:et,ONE:Pe,create:b=>mt(b,e),isValid:b=>{if(typeof b!="bigint")throw new Error("invalid field element: expected bigint, got "+typeof b);return et<=b&&b<e},is0:b=>b===et,isOdd:b=>(b&Pe)===Pe,neg:b=>mt(-b,e),eql:(b,y)=>b===y,sqr:b=>mt(b*b,e),add:(b,y)=>mt(b+y,e),sub:(b,y)=>mt(b-y,e),mul:(b,y)=>mt(b*y,e),pow:(b,y)=>YE(d,b,y),div:(b,y)=>mt(b*k8(y,e),e),sqrN:b=>b*b,addN:(b,y)=>b+y,subN:(b,y)=>b-y,mulN:(b,y)=>b*y,inv:b=>k8(b,e),sqrt:a.sqrt||(b=>(f||(f=qE(e)),f(d,b))),toBytes:b=>n?Ic(b,i):v5(b,i),fromBytes:b=>{if(b.length!==i)throw new Error("Field.fromBytes: expected "+i+" bytes, got "+b.length);return n?Sc(b):u6(b)},invertBatch:b=>r3(d,b),cmov:(b,y,u)=>u?y:b});return Object.freeze(d)}function o3(e){if(typeof e!="bigint")throw new Error("field order must be bigint");const t=e.toString(2).length;return Math.ceil(t/8)}function f3(e){const t=o3(e);return t+Math.ceil(t/2)}function KE(e,t,n=!1){const a=e.length,s=o3(t),i=f3(t);if(a<16||a<i||a>1024)throw new Error("expected "+i+"-1024 bytes of input, got "+a);const f=n?Sc(e):u6(e),d=mt(f,t-Pe)+Pe;return n?Ic(d,s):v5(d,s)}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const b3=BigInt(0),L8=BigInt(1);function F8(e,t){const n=t.negate();return e?n:t}function d3(e,t){if(!Number.isSafeInteger(e)||e<=0||e>t)throw new Error("invalid window size, expected [1.."+t+"], got W="+e)}function U8(e,t){d3(e,t);const n=Math.ceil(t/e)+1,a=2**(e-1),s=2**e,i=Ga(e),f=BigInt(e);return{windows:n,windowSize:a,mask:i,maxNumber:s,shiftBy:f}}function c3(e,t,n){const{windowSize:a,mask:s,maxNumber:i,shiftBy:f}=n;let d=Number(e&s),b=e>>f;d>a&&(d-=i,b+=L8);const y=t*a,u=y+Math.abs(d)-1,p=d===0,m=d<0,h=t%2!==0;return{nextN:b,offset:u,isZero:p,isNeg:m,isNegF:h,offsetF:y}}function XE(e,t){if(!Array.isArray(e))throw new Error("array expected");e.forEach((n,a)=>{if(!(n instanceof t))throw new Error("invalid point at index "+a)})}function JE(e,t){if(!Array.isArray(e))throw new Error("array of scalars expected");e.forEach((n,a)=>{if(!t.isValid(n))throw new Error("invalid scalar at index "+a)})}const H8=new WeakMap,u3=new WeakMap;function G8(e){return u3.get(e)||1}function QE(e,t){return{constTimeNegate:F8,hasPrecomputes(n){return G8(n)!==1},unsafeLadder(n,a,s=e.ZERO){let i=n;for(;a>b3;)a&L8&&(s=s.add(i)),i=i.double(),a>>=L8;return s},precomputeWindow(n,a){const{windows:s,windowSize:i}=U8(a,t),f=[];let d=n,b=d;for(let y=0;y<s;y++){b=d,f.push(b);for(let u=1;u<i;u++)b=b.add(d),f.push(b);d=b.double()}return f},wNAF(n,a,s){let i=e.ZERO,f=e.BASE;const d=U8(n,t);for(let b=0;b<d.windows;b++){const{nextN:y,offset:u,isZero:p,isNeg:m,isNegF:h,offsetF:x}=c3(s,b,d);s=y,p?f=f.add(F8(h,a[x])):i=i.add(F8(m,a[u]))}return{p:i,f}},wNAFUnsafe(n,a,s,i=e.ZERO){const f=U8(n,t);for(let d=0;d<f.windows&&s!==b3;d++){const{nextN:b,offset:y,isZero:u,isNeg:p}=c3(s,d,f);if(s=b,!u){const m=a[y];i=i.add(p?m.negate():m)}}return i},getPrecomputes(n,a,s){let i=H8.get(a);return i||(i=this.precomputeWindow(a,n),n!==1&&H8.set(a,s(i))),i},wNAFCached(n,a,s){const i=G8(n);return this.wNAF(i,this.getPrecomputes(i,n,s),a)},wNAFCachedUnsafe(n,a,s,i){const f=G8(n);return f===1?this.unsafeLadder(n,a,i):this.wNAFUnsafe(f,this.getPrecomputes(f,n,s),a,i)},setWindowSize(n,a){d3(a,t),u3.set(n,a),H8.delete(n)}}}function eA(e,t,n,a){XE(n,e),JE(a,t);const s=n.length,i=a.length;if(s!==i)throw new Error("arrays of points and scalars must have equal length");const f=e.ZERO,d=uw(BigInt(s));let b=1;d>12?b=d-3:d>4?b=d-2:d>0&&(b=2);const y=Ga(b),u=new Array(Number(y)+1).fill(f),p=Math.floor((t.BITS-1)/b)*b;let m=f;for(let h=p;h>=0;h-=b){u.fill(f);for(let T=0;T<i;T++){const C=a[T],S=Number(C>>BigInt(h)&y);u[S]=u[S].add(n[T])}let x=f;for(let T=u.length-1,C=f;T>0;T--)C=C.add(u[T]),x=x.add(C);if(m=m.add(x),h!==0)for(let T=0;T<b;T++)m=m.double()}return m}function y3(e){return ZE(e.Fp),za(e,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...i3(e.n,e.nBitLength),...e,p:e.Fp.ORDER})}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function p3(e){e.lowS!==void 0&&T5("lowS",e.lowS),e.prehash!==void 0&&T5("prehash",e.prehash)}function tA(e){const t=y3(e);za(t,{a:"field",b:"field"},{allowInfinityPoint:"boolean",allowedPrivateKeyLengths:"array",clearCofactor:"function",fromBytes:"function",isTorsionFree:"function",toBytes:"function",wrapPrivateKey:"boolean"});const{endo:n,Fp:a,a:s}=t;if(n){if(!a.eql(s,a.ZERO))throw new Error("invalid endo: CURVE.a must be 0");if(typeof n!="object"||typeof n.beta!="bigint"||typeof n.splitScalar!="function")throw new Error('invalid endo: expected "beta": bigint and "splitScalar": function')}return Object.freeze({...t})}const l1={Err:class extends Error{constructor(t=""){super(t)}},_tlv:{encode:(e,t)=>{const{Err:n}=l1;if(e<0||e>256)throw new n("tlv.encode: wrong tag");if(t.length&1)throw new n("tlv.encode: unpadded data");const a=t.length/2,s=Fa(a);if(s.length/2&128)throw new n("tlv.encode: long form length too big");const i=a>127?Fa(s.length/2|128):"";return Fa(e)+i+s+t},decode(e,t){const{Err:n}=l1;let a=0;if(e<0||e>256)throw new n("tlv.encode: wrong tag");if(t.length<2||t[a++]!==e)throw new n("tlv.decode: wrong tlv");const s=t[a++],i=!!(s&128);let f=0;if(!i)f=s;else{const b=s&127;if(!b)throw new n("tlv.decode(long): indefinite length not supported");if(b>4)throw new n("tlv.decode(long): byte length is too big");const y=t.subarray(a,a+b);if(y.length!==b)throw new n("tlv.decode: length bytes not complete");if(y[0]===0)throw new n("tlv.decode(long): zero leftmost byte");for(const u of y)f=f<<8|u;if(a+=b,f<128)throw new n("tlv.decode(long): not minimal encoding")}const d=t.subarray(a,a+f);if(d.length!==f)throw new n("tlv.decode: wrong value length");return{v:d,l:t.subarray(a+f)}}},_int:{encode(e){const{Err:t}=l1;if(e<m1)throw new t("integer: negative integers are not allowed");let n=Fa(e);if(Number.parseInt(n[0],16)&8&&(n="00"+n),n.length&1)throw new t("unexpected DER parsing assertion: unpadded hex");return n},decode(e){const{Err:t}=l1;if(e[0]&128)throw new t("invalid signature integer: negative");if(e[0]===0&&!(e[1]&128))throw new t("invalid signature integer: unnecessary leading zero");return u6(e)}},toSig(e){const{Err:t,_int:n,_tlv:a}=l1,s=pt("signature",e),{v:i,l:f}=a.decode(48,s);if(f.length)throw new t("invalid signature: left bytes after parsing");const{v:d,l:b}=a.decode(2,i),{v:y,l:u}=a.decode(2,b);if(u.length)throw new t("invalid signature: left bytes after parsing");return{r:n.decode(d),s:n.decode(y)}},hexFromSig(e){const{_tlv:t,_int:n}=l1,a=t.encode(2,n.encode(e.r)),s=t.encode(2,n.encode(e.s)),i=a+s;return t.encode(48,i)}};function z8(e,t){return w5(v5(e,t))}const m1=BigInt(0),ye=BigInt(1);BigInt(2);const j8=BigInt(3),nA=BigInt(4);function aA(e){const t=tA(e),{Fp:n}=t,a=P5(t.n,t.nBitLength),s=t.toBytes||((A,E,$)=>{const L=E.toAffine();return Ha(Uint8Array.from([4]),n.toBytes(L.x),n.toBytes(L.y))}),i=t.fromBytes||(A=>{const E=A.subarray(1),$=n.fromBytes(E.subarray(0,n.BYTES)),L=n.fromBytes(E.subarray(n.BYTES,2*n.BYTES));return{x:$,y:L}});function f(A){const{a:E,b:$}=t,L=n.sqr(A),R=n.mul(L,A);return n.add(n.add(R,n.mul(A,E)),$)}function d(A,E){const $=n.sqr(E),L=f(A);return n.eql($,L)}if(!d(t.Gx,t.Gy))throw new Error("bad curve params: generator point");const b=n.mul(n.pow(t.a,j8),nA),y=n.mul(n.sqr(t.b),BigInt(27));if(n.is0(n.add(b,y)))throw new Error("bad curve params: a or b");function u(A){return Xi(A,ye,t.n)}function p(A){const{allowedPrivateKeyLengths:E,nByteLength:$,wrapPrivateKey:L,n:R}=t;if(E&&typeof A!="bigint"){if(g5(A)&&(A=w5(A)),typeof A!="string"||!E.includes(A.length))throw new Error("invalid private key");A=A.padStart($*2,"0")}let D;try{D=typeof A=="bigint"?A:u6(pt("private key",A,$))}catch{throw new Error("invalid private key, expected hex or "+$+" bytes, got "+typeof A)}return L&&(D=mt(D,R)),en("private key",D,ye,R),D}function m(A){if(!(A instanceof T))throw new Error("ProjectivePoint expected")}const h=Pc((A,E)=>{const{px:$,py:L,pz:R}=A;if(n.eql(R,n.ONE))return{x:$,y:L};const D=A.is0();E==null&&(E=D?n.ONE:n.inv(R));const q=n.mul($,E),e0=n.mul(L,E),z=n.mul(R,E);if(D)return{x:n.ZERO,y:n.ZERO};if(!n.eql(z,n.ONE))throw new Error("invZ was invalid");return{x:q,y:e0}}),x=Pc(A=>{if(A.is0()){if(t.allowInfinityPoint&&!n.is0(A.py))return;throw new Error("bad point: ZERO")}const{x:E,y:$}=A.toAffine();if(!n.isValid(E)||!n.isValid($))throw new Error("bad point: x or y not FE");if(!d(E,$))throw new Error("bad point: equation left != right");if(!A.isTorsionFree())throw new Error("bad point: not in prime-order subgroup");return!0});class T{constructor(E,$,L){if(E==null||!n.isValid(E))throw new Error("x required");if($==null||!n.isValid($)||n.is0($))throw new Error("y required");if(L==null||!n.isValid(L))throw new Error("z required");this.px=E,this.py=$,this.pz=L,Object.freeze(this)}static fromAffine(E){const{x:$,y:L}=E||{};if(!E||!n.isValid($)||!n.isValid(L))throw new Error("invalid affine point");if(E instanceof T)throw new Error("projective point not allowed");const R=D=>n.eql(D,n.ZERO);return R($)&&R(L)?T.ZERO:new T($,L,n.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(E){const $=r3(n,E.map(L=>L.pz));return E.map((L,R)=>L.toAffine($[R])).map(T.fromAffine)}static fromHex(E){const $=T.fromAffine(i(pt("pointHex",E)));return $.assertValidity(),$}static fromPrivateKey(E){return T.BASE.multiply(p(E))}static msm(E,$){return eA(T,a,E,$)}_setWindowSize(E){H.setWindowSize(this,E)}assertValidity(){x(this)}hasEvenY(){const{y:E}=this.toAffine();if(n.isOdd)return!n.isOdd(E);throw new Error("Field doesn't support isOdd")}equals(E){m(E);const{px:$,py:L,pz:R}=this,{px:D,py:q,pz:e0}=E,z=n.eql(n.mul($,e0),n.mul(D,R)),K=n.eql(n.mul(L,e0),n.mul(q,R));return z&&K}negate(){return new T(this.px,n.neg(this.py),this.pz)}double(){const{a:E,b:$}=t,L=n.mul($,j8),{px:R,py:D,pz:q}=this;let e0=n.ZERO,z=n.ZERO,K=n.ZERO,W=n.mul(R,R),Z=n.mul(D,D),_=n.mul(q,q),M=n.mul(R,D);return M=n.add(M,M),K=n.mul(R,q),K=n.add(K,K),e0=n.mul(E,K),z=n.mul(L,_),z=n.add(e0,z),e0=n.sub(Z,z),z=n.add(Z,z),z=n.mul(e0,z),e0=n.mul(M,e0),K=n.mul(L,K),_=n.mul(E,_),M=n.sub(W,_),M=n.mul(E,M),M=n.add(M,K),K=n.add(W,W),W=n.add(K,W),W=n.add(W,_),W=n.mul(W,M),z=n.add(z,W),_=n.mul(D,q),_=n.add(_,_),W=n.mul(_,M),e0=n.sub(e0,W),K=n.mul(_,Z),K=n.add(K,K),K=n.add(K,K),new T(e0,z,K)}add(E){m(E);const{px:$,py:L,pz:R}=this,{px:D,py:q,pz:e0}=E;let z=n.ZERO,K=n.ZERO,W=n.ZERO;const Z=t.a,_=n.mul(t.b,j8);let M=n.mul($,D),k=n.mul(L,q),B=n.mul(R,e0),U=n.add($,L),P=n.add(D,q);U=n.mul(U,P),P=n.add(M,k),U=n.sub(U,P),P=n.add($,R);let V=n.add(D,e0);return P=n.mul(P,V),V=n.add(M,B),P=n.sub(P,V),V=n.add(L,R),z=n.add(q,e0),V=n.mul(V,z),z=n.add(k,B),V=n.sub(V,z),W=n.mul(Z,P),z=n.mul(_,B),W=n.add(z,W),z=n.sub(k,W),W=n.add(k,W),K=n.mul(z,W),k=n.add(M,M),k=n.add(k,M),B=n.mul(Z,B),P=n.mul(_,P),k=n.add(k,B),B=n.sub(M,B),B=n.mul(Z,B),P=n.add(P,B),M=n.mul(k,P),K=n.add(K,M),M=n.mul(V,P),z=n.mul(U,z),z=n.sub(z,M),M=n.mul(U,k),W=n.mul(V,W),W=n.add(W,M),new T(z,K,W)}subtract(E){return this.add(E.negate())}is0(){return this.equals(T.ZERO)}wNAF(E){return H.wNAFCached(this,E,T.normalizeZ)}multiplyUnsafe(E){const{endo:$,n:L}=t;en("scalar",E,m1,L);const R=T.ZERO;if(E===m1)return R;if(this.is0()||E===ye)return this;if(!$||H.hasPrecomputes(this))return H.wNAFCachedUnsafe(this,E,T.normalizeZ);let{k1neg:D,k1:q,k2neg:e0,k2:z}=$.splitScalar(E),K=R,W=R,Z=this;for(;q>m1||z>m1;)q&ye&&(K=K.add(Z)),z&ye&&(W=W.add(Z)),Z=Z.double(),q>>=ye,z>>=ye;return D&&(K=K.negate()),e0&&(W=W.negate()),W=new T(n.mul(W.px,$.beta),W.py,W.pz),K.add(W)}multiply(E){const{endo:$,n:L}=t;en("scalar",E,ye,L);let R,D;if($){const{k1neg:q,k1:e0,k2neg:z,k2:K}=$.splitScalar(E);let{p:W,f:Z}=this.wNAF(e0),{p:_,f:M}=this.wNAF(K);W=H.constTimeNegate(q,W),_=H.constTimeNegate(z,_),_=new T(n.mul(_.px,$.beta),_.py,_.pz),R=W.add(_),D=Z.add(M)}else{const{p:q,f:e0}=this.wNAF(E);R=q,D=e0}return T.normalizeZ([R,D])[0]}multiplyAndAddUnsafe(E,$,L){const R=T.BASE,D=(e0,z)=>z===m1||z===ye||!e0.equals(R)?e0.multiplyUnsafe(z):e0.multiply(z),q=D(this,$).add(D(E,L));return q.is0()?void 0:q}toAffine(E){return h(this,E)}isTorsionFree(){const{h:E,isTorsionFree:$}=t;if(E===ye)return!0;if($)return $(T,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){const{h:E,clearCofactor:$}=t;return E===ye?this:$?$(T,this):this.multiplyUnsafe(t.h)}toRawBytes(E=!0){return T5("isCompressed",E),this.assertValidity(),s(T,this,E)}toHex(E=!0){return T5("isCompressed",E),w5(this.toRawBytes(E))}}T.BASE=new T(t.Gx,t.Gy,n.ONE),T.ZERO=new T(n.ZERO,n.ONE,n.ZERO);const{endo:C,nBitLength:S}=t,H=QE(T,C?Math.ceil(S/2):S);return{CURVE:t,ProjectivePoint:T,normPrivateKeyToScalar:p,weierstrassEquation:f,isWithinCurveOrder:u}}function rA(e){const t=y3(e);return za(t,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...t})}function sA(e){const t=rA(e),{Fp:n,n:a,nByteLength:s,nBitLength:i}=t,f=n.BYTES+1,d=2*n.BYTES+1;function b(_){return mt(_,a)}function y(_){return k8(_,a)}const{ProjectivePoint:u,normPrivateKeyToScalar:p,weierstrassEquation:m,isWithinCurveOrder:h}=aA({...t,toBytes(_,M,k){const B=M.toAffine(),U=n.toBytes(B.x),P=Ha;return T5("isCompressed",k),k?P(Uint8Array.from([M.hasEvenY()?2:3]),U):P(Uint8Array.from([4]),U,n.toBytes(B.y))},fromBytes(_){const M=_.length,k=_[0],B=_.subarray(1);if(M===f&&(k===2||k===3)){const U=u6(B);if(!Xi(U,ye,n.ORDER))throw new Error("Point is not on curve");const P=m(U);let V;try{V=n.sqrt(P)}catch(y0){const s0=y0 instanceof Error?": "+y0.message:"";throw new Error("Point is not on curve"+s0)}const a0=(V&ye)===ye;return(k&1)===1!==a0&&(V=n.neg(V)),{x:U,y:V}}else if(M===d&&k===4){const U=n.fromBytes(B.subarray(0,n.BYTES)),P=n.fromBytes(B.subarray(n.BYTES,2*n.BYTES));return{x:U,y:P}}else{const U=f,P=d;throw new Error("invalid Point, expected length of "+U+", or uncompressed "+P+", got "+M)}}});function x(_){const M=a>>ye;return _>M}function T(_){return x(_)?b(-_):_}const C=(_,M,k)=>u6(_.slice(M,k));class S{constructor(M,k,B){en("r",M,ye,a),en("s",k,ye,a),this.r=M,this.s=k,B!=null&&(this.recovery=B),Object.freeze(this)}static fromCompact(M){const k=s;return M=pt("compactSignature",M,k*2),new S(C(M,0,k),C(M,k,2*k))}static fromDER(M){const{r:k,s:B}=l1.toSig(pt("DER",M));return new S(k,B)}assertValidity(){}addRecoveryBit(M){return new S(this.r,this.s,M)}recoverPublicKey(M){const{r:k,s:B,recovery:U}=this,P=R(pt("msgHash",M));if(U==null||![0,1,2,3].includes(U))throw new Error("recovery id invalid");const V=U===2||U===3?k+t.n:k;if(V>=n.ORDER)throw new Error("recovery id 2 or 3 invalid");const a0=U&1?"03":"02",o0=u.fromHex(a0+z8(V,n.BYTES)),y0=y(V),s0=b(-P*y0),A0=b(B*y0),V0=u.BASE.multiplyAndAddUnsafe(o0,s0,A0);if(!V0)throw new Error("point at infinify");return V0.assertValidity(),V0}hasHighS(){return x(this.s)}normalizeS(){return this.hasHighS()?new S(this.r,b(-this.s),this.recovery):this}toDERRawBytes(){return Ua(this.toDERHex())}toDERHex(){return l1.hexFromSig(this)}toCompactRawBytes(){return Ua(this.toCompactHex())}toCompactHex(){const M=s;return z8(this.r,M)+z8(this.s,M)}}const H={isValidPrivateKey(_){try{return p(_),!0}catch{return!1}},normPrivateKeyToScalar:p,randomPrivateKey:()=>{const _=f3(t.n);return KE(t.randomBytes(_),t.n)},precompute(_=8,M=u.BASE){return M._setWindowSize(_),M.multiply(BigInt(3)),M}};function A(_,M=!0){return u.fromPrivateKey(_).toRawBytes(M)}function E(_){if(typeof _=="bigint")return!1;if(_ instanceof u)return!0;const k=pt("key",_).length,B=n.BYTES,U=B+1,P=2*B+1;if(!(t.allowedPrivateKeyLengths||s===U))return k===U||k===P}function $(_,M,k=!0){if(E(_)===!0)throw new Error("first arg must be private key");if(E(M)===!1)throw new Error("second arg must be public key");return u.fromHex(M).multiply(p(_)).toRawBytes(k)}const L=t.bits2int||function(_){if(_.length>8192)throw new Error("input is too large");const M=u6(_),k=_.length*8-i;return k>0?M>>BigInt(k):M},R=t.bits2int_modN||function(_){return b(L(_))},D=Ga(i);function q(_){return en("num < 2^"+i,_,m1,D),v5(_,s)}function e0(_,M,k=z){if(["recovered","canonical"].some(N0=>N0 in k))throw new Error("sign() legacy options not supported");const{hash:B,randomBytes:U}=t;let{lowS:P,prehash:V,extraEntropy:a0}=k;P==null&&(P=!0),_=pt("msgHash",_),p3(k),V&&(_=pt("prehashed msgHash",B(_)));const o0=R(_),y0=p(M),s0=[q(y0),q(o0)];if(a0!=null&&a0!==!1){const N0=a0===!0?U(n.BYTES):a0;s0.push(pt("extraEntropy",N0))}const A0=Ha(...s0),V0=o0;function $0(N0){const fe=L(N0);if(!h(fe))return;const Ve=y(fe),Se=u.BASE.multiply(fe).toAffine(),le=b(Se.x);if(le===m1)return;const q0=b(Ve*b(V0+le*y0));if(q0===m1)return;let ge=(Se.x===le?0:2)|Number(Se.y&ye),Ne=q0;return P&&x(q0)&&(Ne=T(q0),ge^=1),new S(le,Ne,ge)}return{seed:A0,k2sig:$0}}const z={lowS:t.lowS,prehash:!1},K={lowS:t.lowS,prehash:!1};function W(_,M,k=z){const{seed:B,k2sig:U}=e0(_,M,k),P=t;return yw(P.hash.outputLen,P.nByteLength,P.hmac)(B,U)}u.BASE._setWindowSize(8);function Z(_,M,k,B=K){var ge;const U=_;M=pt("msgHash",M),k=pt("publicKey",k);const{lowS:P,prehash:V,format:a0}=B;if(p3(B),"strict"in B)throw new Error("options.strict was renamed to lowS");if(a0!==void 0&&a0!=="compact"&&a0!=="der")throw new Error("format must be compact or der");const o0=typeof U=="string"||g5(U),y0=!o0&&!a0&&typeof U=="object"&&U!==null&&typeof U.r=="bigint"&&typeof U.s=="bigint";if(!o0&&!y0)throw new Error("invalid signature, expected Uint8Array, hex string or Signature instance");let s0,A0;try{if(y0&&(s0=new S(U.r,U.s)),o0){try{a0!=="compact"&&(s0=S.fromDER(U))}catch(Ne){if(!(Ne instanceof l1.Err))throw Ne}!s0&&a0!=="der"&&(s0=S.fromCompact(U))}A0=u.fromHex(k)}catch{return!1}if(!s0||P&&s0.hasHighS())return!1;V&&(M=t.hash(M));const{r:V0,s:$0}=s0,N0=R(M),fe=y($0),Ve=b(N0*fe),Se=b(V0*fe),le=(ge=u.BASE.multiplyAndAddUnsafe(A0,Ve,Se))==null?void 0:ge.toAffine();return le?b(le.x)===V0:!1}return{CURVE:t,getPublicKey:A,getSharedSecret:$,sign:W,verify:Z,ProjectivePoint:u,Signature:S,utils:H}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function iA(e){return{hash:e,hmac:(t,...n)=>D8(e,t,vd(...n)),randomBytes:xd}}function V8(e,t){const n=a=>sA({...e,...iA(a)});return{...n(t),create:n}}function q8(e,t={}){const{recovered:n}=t;if(typeof e.r>"u")throw new Z8({signature:e});if(typeof e.s>"u")throw new Z8({signature:e});if(n&&typeof e.yParity>"u")throw new Z8({signature:e});if(e.r<0n||e.r>Wu)throw new lA({value:e.r});if(e.s<0n||e.s>Wu)throw new mA({value:e.s});if(typeof e.yParity=="number"&&e.yParity!==0&&e.yParity!==1)throw new rr({value:e.yParity})}function oA(e){return l3(He(e))}function l3(e){if(e.length!==130&&e.length!==132)throw new pA({signature:e});const t=BigInt(Wt(e,0,32)),n=BigInt(Wt(e,32,64)),a=(()=>{const s=+`0x${e.slice(130)}`;if(!Number.isNaN(s))try{return W8(s)}catch{throw new rr({value:s})}})();return typeof a>"u"?{r:t,s:n}:{r:t,s:n,yParity:a}}function fA(e){if(!(typeof e.r>"u")&&!(typeof e.s>"u"))return bA(e)}function bA(e){const t=typeof e=="string"?l3(e):e instanceof Uint8Array?oA(e):typeof e.r=="string"?cA(e):e.v?dA(e):{r:e.r,s:e.s,...typeof e.yParity<"u"?{yParity:e.yParity}:{}};return q8(t),t}function dA(e){return{r:e.r,s:e.s,yParity:W8(e.v)}}function cA(e){const t=(()=>{const n=e.v?Number(e.v):void 0;let a=e.yParity?Number(e.yParity):void 0;if(typeof n=="number"&&typeof a!="number"&&(a=W8(n)),typeof a!="number")throw new rr({value:e.yParity});return a})();return{r:BigInt(e.r),s:BigInt(e.s),yParity:t}}function uA(e){q8(e);const t=e.r,n=e.s;return lt(ce(t,{size:32}),ce(n,{size:32}),typeof e.yParity=="number"?ce(yA(e.yParity),{size:1}):"0x")}function W8(e){if(e===0||e===27)return 0;if(e===1||e===28)return 1;if(e>=35)return e%2===0?1:0;throw new hA({value:e})}function yA(e){if(e===0)return 27;if(e===1)return 28;throw new rr({value:e})}class pA extends S0{constructor({signature:t}){super(`Value \`${t}\` is an invalid signature size.`,{metaMessages:["Expected: 64 bytes or 65 bytes.",`Received ${Je(Lw(t))} bytes.`]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Signature.InvalidSerializedSizeError"})}}class Z8 extends S0{constructor({signature:t}){super(`Signature \`${Bc(t)}\` is missing either an \`r\`, \`s\`, or \`yParity\` property.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Signature.MissingPropertiesError"})}}class lA extends S0{constructor({value:t}){super(`Value \`${t}\` is an invalid r value. r must be a positive integer less than 2^256.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Signature.InvalidRError"})}}class mA extends S0{constructor({value:t}){super(`Value \`${t}\` is an invalid s value. s must be a positive integer less than 2^256.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Signature.InvalidSError"})}}class rr extends S0{constructor({value:t}){super(`Value \`${t}\` is an invalid y-parity value. Y-parity must be 0 or 1.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Signature.InvalidYParityError"})}}class hA extends S0{constructor({value:t}){super(`Value \`${t}\` is an invalid v value. v must be 27, 28 or >=35.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"Signature.InvalidVError"})}}function gA(e,t={}){return typeof e.chainId=="string"?TA(e):{...e,...t.signature}}function TA(e){const{address:t,chainId:n,nonce:a}=e,s=fA(e);return{address:t,chainId:Number(n),nonce:BigInt(a),...s}}const wA="0x8010801080108010801080108010801080108010801080108010801080108010",vA=Ku("(uint256 chainId, address delegation, uint256 nonce, uint8 yParity, uint256 r, uint256 s), address to, bytes data");function m3(e){if(typeof e=="string"){if(Wt(e,-32)!==wA)throw new AA(e)}else q8(e.authorization)}function xA(e){m3(e);const t=Lc(Wt(e,-64,-32)),n=Wt(e,-t-64,-64),a=Wt(e,0,-t-64),[s,i,f]=LE(vA,n);return{authorization:gA({address:s.delegation,chainId:Number(s.chainId),nonce:s.nonce,yParity:s.yParity,r:s.r,s:s.s}),signature:a,...f&&f!=="0x"?{data:f,to:i}:{}}}function EA(e){try{return m3(e),!0}catch{return!1}}let AA=class extends S0{constructor(t){super(`Value \`${t}\` is an invalid ERC-8010 wrapped signature.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"SignatureErc8010.InvalidWrappedSignatureError"})}};function Y8(e){const{address:t,data:n,signature:a,to:s="hex"}=e,i=Fe([ut([{type:"address"},{type:"bytes"},{type:"bytes"}],[t,n,a]),_x]);return s==="hex"?i:ct(i)}function _A(e){return e.map(t=>({...t,value:BigInt(t.value)}))}function SA(e){return{...e,balance:e.balance?BigInt(e.balance):void 0,nonce:e.nonce?zt(e.nonce):void 0,storageProof:e.storageProof?_A(e.storageProof):void 0}}async function IA(e,{address:t,blockNumber:n,blockTag:a,storageKeys:s}){const i=a??"latest",f=n!==void 0?t0(n):void 0,d=await e.request({method:"eth_getProof",params:[t,s,f||i]});return SA(d)}async function CA(e,{address:t,blockNumber:n,blockTag:a="latest",slot:s}){const i=n!==void 0?t0(n):void 0;return await e.request({method:"eth_getStorageAt",params:[t,s,i||a]})}async function K8(e,{blockHash:t,blockNumber:n,blockTag:a,hash:s,index:i,sender:f,nonce:d}){var m,h,x;const b=a||"latest",y=n!==void 0?t0(n):void 0;let u=null;if(s?u=await e.request({method:"eth_getTransactionByHash",params:[s]},{dedupe:!0}):t?u=await e.request({method:"eth_getTransactionByBlockHashAndIndex",params:[t,t0(i)]},{dedupe:!0}):typeof i=="number"?u=await e.request({method:"eth_getTransactionByBlockNumberAndIndex",params:[y||b,t0(i)]},{dedupe:!!y}):f&&typeof d=="number"&&(u=await e.request({method:"eth_getTransactionBySenderAndNonce",params:[f,t0(d)]},{dedupe:!0})),!u)throw new qd({blockHash:t,blockNumber:n,blockTag:b,hash:s,index:i});return(((x=(h=(m=e.chain)==null?void 0:m.formatters)==null?void 0:h.transaction)==null?void 0:x.format)||La)(u,"getTransaction")}async function PA(e,{hash:t,transactionReceipt:n}){const[a,s]=await Promise.all([d0(e,A5,"getBlockNumber")({}),t?d0(e,K8,"getTransaction")({hash:t}):void 0]),i=(n==null?void 0:n.blockNumber)||(s==null?void 0:s.blockNumber);return i?a-i+1n:0n}async function sr(e,{hash:t}){var s,i,f;const n=await e.request({method:"eth_getTransactionReceipt",params:[t]},{dedupe:!0});if(!n)throw new Wd({hash:t});return(((f=(i=(s=e.chain)==null?void 0:s.formatters)==null?void 0:i.transactionReceipt)==null?void 0:f.format)||Ka)(n,"getTransactionReceipt")}async function MA(e,t){var H;const{account:n,authorizationList:a,allowFailure:s=!0,blockNumber:i,blockOverrides:f,blockTag:d,stateOverride:b}=t,y=t.contracts,{batchSize:u=t.batchSize??1024,deployless:p=t.deployless??!1}=typeof((H=e.batch)==null?void 0:H.multicall)=="object"?e.batch.multicall:{},m=(()=>{if(t.multicallAddress)return t.multicallAddress;if(p)return null;if(e.chain)return nn({blockNumber:i,chain:e.chain,contract:"multicall3"});throw new Error("client chain not configured. multicallAddress is required.")})(),h=[[]];let x=0,T=0;for(let A=0;A<y.length;A++){const{abi:E,address:$,args:L,functionName:R}=y[A];try{const D=T0({abi:E,args:L,functionName:R});T+=(D.length-2)/2,u>0&&T>u&&h[x].length>0&&(x++,T=(D.length-2)/2,h[x]=[]),h[x]=[...h[x],{allowFailure:!0,callData:D,target:$}]}catch(D){const q=b6(D,{abi:E,address:$,args:L,docsPath:"/docs/contract/multicall",functionName:R,sender:n});if(!s)throw q;h[x]=[...h[x],{allowFailure:!0,callData:"0x",target:$}]}}const C=await Promise.allSettled(h.map(A=>d0(e,u0,"readContract")({...m===null?{code:n8}:{address:m},abi:Va,account:n,args:[A],authorizationList:a,blockNumber:i,blockOverrides:f,blockTag:d,functionName:"aggregate3",stateOverride:b}))),S=[];for(let A=0;A<C.length;A++){const E=C[A];if(E.status==="rejected"){if(!s)throw E.reason;for(let L=0;L<h[A].length;L++)S.push({status:"failure",error:E.reason,result:void 0});continue}const $=E.value;for(let L=0;L<$.length;L++){const{returnData:R,success:D}=$[L],{callData:q}=h[A][L],{abi:e0,address:z,functionName:K,args:W}=y[S.length];try{if(q==="0x")throw new Un;if(!D)throw new Ra({data:R});const Z=c6({abi:e0,args:W,data:R,functionName:K});S.push(s?{result:Z,status:"success"}:Z)}catch(Z){const _=b6(Z,{abi:e0,address:z,args:W,docsPath:"/docs/contract/multicall",functionName:K});if(!s)throw _;S.push({error:_,result:void 0,status:"failure"})}}}if(S.length!==y.length)throw new G("multicall results mismatch");return S}async function X8(e,t){const{blockNumber:n,blockTag:a=e.experimental_blockTag??"latest",blocks:s,returnFullTransactions:i,traceTransfers:f,validation:d}=t;try{const b=[];for(const m of s){const h=m.blockOverrides?zc(m.blockOverrides):void 0,x=m.calls.map(C=>{const S=C,H=S.account?ae(S.account):void 0,A=S.abi?T0(S):S.data,E={...S,account:H,data:S.dataSuffix?Z0([A||"0x",S.dataSuffix]):A,from:S.from??(H==null?void 0:H.address)};return J6(E),h5(E)}),T=m.stateOverrides?Da(m.stateOverrides):void 0;b.push({blockOverrides:h,calls:x,stateOverrides:T})}const u=(typeof n=="bigint"?t0(n):void 0)||a;return(await e.request({method:"eth_simulateV1",params:[{blockStateCalls:b,returnFullTransactions:i,traceTransfers:f,validation:d},u]})).map((m,h)=>({...Ri(m),calls:m.calls.map((x,T)=>{var e0,z;const{abi:C,args:S,functionName:H,to:A}=s[h].calls[T],E=((e0=x.error)==null?void 0:e0.data)??x.returnData,$=BigInt(x.gasUsed),L=(z=x.logs)==null?void 0:z.map(K=>qt(K)),R=x.status==="0x1"?"success":"failure",D=C&&R==="success"&&E!=="0x"?c6({abi:C,data:E,functionName:H}):null,q=(()=>{var W;if(R==="success")return;let K;if(((W=x.error)==null?void 0:W.data)==="0x"?K=new Un:x.error&&(K=new Ra(x.error)),!!K)return b6(K,{abi:C??[],address:A??"0x",args:S,functionName:H??"<unknown>"})})();return{data:E,gasUsed:$,logs:L,status:R,...R==="success"?{result:D}:{error:q}}})}))}catch(b){const y=b,u=Ba(y,{});throw u instanceof m5?y:u}}function J8(e){let t=!0,n="",a=0,s="",i=!1;for(let f=0;f<e.length;f++){const d=e[f];if(["(",")",","].includes(d)&&(t=!0),d==="("&&a++,d===")"&&a--,!!t){if(a===0){if(d===" "&&["event","function","error",""].includes(s))s="";else if(s+=d,d===")"){i=!0;break}continue}if(d===" "){e[f-1]!==","&&n!==","&&n!==",("&&(n="",t=!1);continue}s+=d,n+=d}}if(!i)throw new S0("Unable to normalize signature.");return s}function Q8(e,t){const n=typeof e,a=t.type;switch(a){case"address":return C8(e,{strict:!1});case"bool":return n==="boolean";case"function":return n==="string";case"string":return n==="string";default:return a==="tuple"&&"components"in t?Object.values(t.components).every((s,i)=>Q8(Object.values(e)[i],s)):/^u?int(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/.test(a)?n==="number"||n==="bigint":/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/.test(a)?n==="string"||e instanceof Uint8Array:/[a-z]+[1-9]{0,3}(\[[0-9]{0,}\])+$/.test(a)?Array.isArray(e)&&e.every(s=>Q8(s,{...t,type:a.replace(/(\[[0-9]{0,}\])$/,"")})):!1}}function h3(e,t,n){for(const a in e){const s=e[a],i=t[a];if(s.type==="tuple"&&i.type==="tuple"&&"components"in s&&"components"in i)return h3(s.components,i.components,n[a]);const f=[s.type,i.type];if(f.includes("address")&&f.includes("bytes20")?!0:f.includes("address")&&f.includes("string")?C8(n[a],{strict:!1}):f.includes("address")&&f.includes("bytes")?C8(n[a],{strict:!1}):!1)return f}}function g3(e,t={}){const{prepare:n=!0}=t,a=Array.isArray(e)||typeof e=="string"?Hu(e):e;return{...a,...n?{hash:dn(a)}:{}}}function ir(e,t,n){const{args:a=[],prepare:s=!0}=n??{},i=Fw(t,{strict:!1}),f=e.filter(y=>i?y.type==="function"||y.type==="error"?T3(y)===Wt(t,0,4):y.type==="event"?dn(y)===t:!1:"name"in y&&y.name===t);if(f.length===0)throw new or({name:t});if(f.length===1)return{...f[0],...s?{hash:dn(f[0])}:{}};let d;for(const y of f){if(!("inputs"in y))continue;if(!a||a.length===0){if(!y.inputs||y.inputs.length===0)return{...y,...s?{hash:dn(y)}:{}};continue}if(!y.inputs||y.inputs.length===0||y.inputs.length!==a.length)continue;if(a.every((p,m)=>{const h="inputs"in y&&y.inputs[m];return h?Q8(p,h):!1})){if(d&&"inputs"in d&&d.inputs){const p=h3(y.inputs,d.inputs,a);if(p)throw new OA({abiItem:y,type:p[0]},{abiItem:d,type:p[1]})}d=y}}const b=(()=>{if(d)return d;const[y,...u]=f;return{...y,overloads:u}})();if(!b)throw new or({name:t});return{...b,...s?{hash:dn(b)}:{}}}function T3(...e){const t=(()=>{if(Array.isArray(e[0])){const[n,a]=e;return ir(n,a)}return e[0]})();return Wt(dn(t),0,4)}function $A(...e){const t=(()=>{if(Array.isArray(e[0])){const[a,s]=e;return ir(a,s)}return e[0]})(),n=typeof t=="string"?t:E8(t);return J8(n)}function dn(...e){const t=(()=>{if(Array.isArray(e[0])){const[n,a]=e;return ir(n,a)}return e[0]})();return typeof t!="string"&&"hash"in t&&t.hash?t.hash:zu(e8($A(t)))}class OA extends S0{constructor(t,n){super("Found ambiguous types in overloaded ABI Items.",{metaMessages:[`\`${t.type}\` in \`${J8(E8(t.abiItem))}\`, and`,`\`${n.type}\` in \`${J8(E8(n.abiItem))}\``,"","These types encode differently and cannot be distinguished at runtime.","Remove one of the ambiguous items in the ABI."]}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiItem.AmbiguityError"})}}class or extends S0{constructor({name:t,data:n,type:a="item"}){const s=t?` with name "${t}"`:n?` with data "${n}"`:"";super(`ABI ${a}${s} not found.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"AbiItem.NotFoundError"})}}function RA(...e){var i;const[t,n]=(()=>{if(Array.isArray(e[0])){const[f,d]=e;return[NA(f),d]}return e})(),{bytecode:a,args:s}=n;return lt(a,(i=t.inputs)!=null&&i.length&&(s!=null&&s.length)?R8(t.inputs,s):"0x")}function BA(e){return g3(e)}function NA(e){const t=e.find(n=>n.type==="constructor");if(!t)throw new or({name:"constructor"});return t}function DA(...e){const[t,n=[]]=(()=>{if(Array.isArray(e[0])){const[y,u,p]=e;return[w3(y,u,{args:p}),p]}const[d,b]=e;return[d,b]})(),{overloads:a}=t,s=a?w3([t,...a],t.name,{args:n}):t,i=kA(s),f=n.length>0?R8(s.inputs,n):void 0;return f?lt(i,f):i}function cn(e,t={}){return g3(e,t)}function w3(e,t,n){const a=ir(e,t,n);if(a.type!=="function")throw new or({name:t,type:"function"});return a}function kA(e){return T3(e)}const LA="0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",Zt="0x0000000000000000000000000000000000000000",FA="0x6080604052348015600e575f80fd5b5061016d8061001c5f395ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c8063f8b2cb4f1461002d575b5f80fd5b610047600480360381019061004291906100db565b61005d565b604051610054919061011e565b60405180910390f35b5f8173ffffffffffffffffffffffffffffffffffffffff16319050919050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6100aa82610081565b9050919050565b6100ba816100a0565b81146100c4575f80fd5b50565b5f813590506100d5816100b1565b92915050565b5f602082840312156100f0576100ef61007d565b5b5f6100fd848285016100c7565b91505092915050565b5f819050919050565b61011881610106565b82525050565b5f6020820190506101315f83018461010f565b9291505056fea26469706673582212203b9fe929fe995c7cf9887f0bdba8a36dd78e8b73f149b17d2d9ad7cd09d2dc6264736f6c634300081a0033";async function UA(e,t){const{blockNumber:n,blockTag:a,calls:s,stateOverrides:i,traceAssetChanges:f,traceTransfers:d,validation:b}=t,y=t.account?ae(t.account):void 0;if(f&&!y)throw new G("`account` is required when `traceAssetChanges` is true");const u=y?RA(BA("constructor(bytes, bytes)"),{bytecode:Kc,args:[FA,DA(cn("function getBalance(address)"),[y.address])]}):void 0,p=f?await Promise.all(t.calls.map(async B=>{if(!B.data&&!B.abi)return;const{accessList:U}=await uu(e,{account:y.address,...B,data:B.abi?T0(B):B.data});return U.map(({address:P,storageKeys:V})=>V.length>0?P:null)})).then(B=>B.flat().filter(Boolean)):[],m=await X8(e,{blockNumber:n,blockTag:a,blocks:[...f?[{calls:[{data:u}],stateOverrides:i},{calls:p.map((B,U)=>({abi:[cn("function balanceOf(address) returns (uint256)")],functionName:"balanceOf",args:[y.address],to:B,from:Zt,nonce:U})),stateOverrides:[{address:Zt,nonce:0}]}]:[],{calls:[...s,{}].map(B=>({...B,from:y==null?void 0:y.address})),stateOverrides:i},...f?[{calls:[{data:u}]},{calls:p.map((B,U)=>({abi:[cn("function balanceOf(address) returns (uint256)")],functionName:"balanceOf",args:[y.address],to:B,from:Zt,nonce:U})),stateOverrides:[{address:Zt,nonce:0}]},{calls:p.map((B,U)=>({to:B,abi:[cn("function decimals() returns (uint256)")],functionName:"decimals",from:Zt,nonce:U})),stateOverrides:[{address:Zt,nonce:0}]},{calls:p.map((B,U)=>({to:B,abi:[cn("function tokenURI(uint256) returns (string)")],functionName:"tokenURI",args:[0n],from:Zt,nonce:U})),stateOverrides:[{address:Zt,nonce:0}]},{calls:p.map((B,U)=>({to:B,abi:[cn("function symbol() returns (string)")],functionName:"symbol",from:Zt,nonce:U})),stateOverrides:[{address:Zt,nonce:0}]}]:[]],traceTransfers:d,validation:b}),h=f?m[2]:m[0],[x,T,,C,S,H,A,E]=f?m:[],{calls:$,...L}=h,R=$.slice(0,-1)??[],D=(x==null?void 0:x.calls)??[],q=(T==null?void 0:T.calls)??[],e0=[...D,...q].map(B=>B.status==="success"?U0(B.data):null),z=(C==null?void 0:C.calls)??[],K=(S==null?void 0:S.calls)??[],W=[...z,...K].map(B=>B.status==="success"?U0(B.data):null),Z=((H==null?void 0:H.calls)??[]).map(B=>B.status==="success"?B.result:null),_=((E==null?void 0:E.calls)??[]).map(B=>B.status==="success"?B.result:null),M=((A==null?void 0:A.calls)??[]).map(B=>B.status==="success"?B.result:null),k=[];for(const[B,U]of W.entries()){const P=e0[B];if(typeof U!="bigint"||typeof P!="bigint")continue;const V=Z[B-1],a0=_[B-1],o0=M[B-1],y0=B===0?{address:LA,decimals:18,symbol:"ETH"}:{address:p[B-1],decimals:o0||V?Number(V??1):void 0,symbol:a0??void 0};k.some(s0=>s0.token.address===y0.address)||k.push({token:y0,value:{pre:P,post:U,diff:U-P}})}return{assetChanges:k,block:L,results:R}}const v3="0x6492649264926492649264926492649264926492649264926492649264926492";function HA(e){if(Wt(e,-32)!==v3)throw new jA(e)}function GA(e){const{data:t,signature:n,to:a}=e;return lt(R8(Ku("address, bytes, bytes"),[a,t,n]),v3)}function zA(e){try{return HA(e),!0}catch{return!1}}class jA extends S0{constructor(t){super(`Value \`${t}\` is an invalid ERC-6492 wrapped signature.`),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"SignatureErc6492.InvalidWrappedSignatureError"})}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const e2=BigInt(0),t2=BigInt(1);function M5(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"}function n2(e){if(!M5(e))throw new Error("Uint8Array expected")}function $5(e,t){if(typeof t!="boolean")throw new Error(e+" boolean expected, got "+t)}function fr(e){const t=e.toString(16);return t.length&1?"0"+t:t}function x3(e){if(typeof e!="string")throw new Error("hex string expected, got "+typeof e);return e===""?e2:BigInt("0x"+e)}const E3=typeof Uint8Array.from([]).toHex=="function"&&typeof Uint8Array.fromHex=="function",VA=Array.from({length:256},(e,t)=>t.toString(16).padStart(2,"0"));function O5(e){if(n2(e),E3)return e.toHex();let t="";for(let n=0;n<e.length;n++)t+=VA[e[n]];return t}const h1={_0:48,_9:57,A:65,F:70,a:97,f:102};function A3(e){if(e>=h1._0&&e<=h1._9)return e-h1._0;if(e>=h1.A&&e<=h1.F)return e-(h1.A-10);if(e>=h1.a&&e<=h1.f)return e-(h1.a-10)}function br(e){if(typeof e!="string")throw new Error("hex string expected, got "+typeof e);if(E3)return Uint8Array.fromHex(e);const t=e.length,n=t/2;if(t%2)throw new Error("hex string expected, got unpadded hex of length "+t);const a=new Uint8Array(n);for(let s=0,i=0;s<n;s++,i+=2){const f=A3(e.charCodeAt(i)),d=A3(e.charCodeAt(i+1));if(f===void 0||d===void 0){const b=e[i]+e[i+1];throw new Error('hex string expected, got non-hex character "'+b+'" at index '+i)}a[s]=f*16+d}return a}function m6(e){return x3(O5(e))}function _3(e){return n2(e),x3(O5(Uint8Array.from(e).reverse()))}function R5(e,t){return br(e.toString(16).padStart(t*2,"0"))}function S3(e,t){return R5(e,t).reverse()}function ht(e,t,n){let a;if(typeof t=="string")try{a=br(t)}catch(i){throw new Error(e+" must be hex string or Uint8Array, cause: "+i)}else if(M5(t))a=Uint8Array.from(t);else throw new Error(e+" must be hex string or Uint8Array");const s=a.length;if(typeof n=="number"&&s!==n)throw new Error(e+" of length "+n+" expected, got "+s);return a}function dr(...e){let t=0;for(let a=0;a<e.length;a++){const s=e[a];n2(s),t+=s.length}const n=new Uint8Array(t);for(let a=0,s=0;a<e.length;a++){const i=e[a];n.set(i,s),s+=i.length}return n}const a2=e=>typeof e=="bigint"&&e2<=e;function r2(e,t,n){return a2(e)&&a2(t)&&a2(n)&&t<=e&&e<n}function un(e,t,n,a){if(!r2(t,n,a))throw new Error("expected valid "+e+": "+n+" <= n < "+a+", got "+t)}function qA(e){let t;for(t=0;e>e2;e>>=t2,t+=1);return t}const cr=e=>(t2<<BigInt(e))-t2,s2=e=>new Uint8Array(e),I3=e=>Uint8Array.from(e);function WA(e,t,n){if(typeof e!="number"||e<2)throw new Error("hashLen must be a number");if(typeof t!="number"||t<2)throw new Error("qByteLen must be a number");if(typeof n!="function")throw new Error("hmacFn must be a function");let a=s2(e),s=s2(e),i=0;const f=()=>{a.fill(1),s.fill(0),i=0},d=(...p)=>n(s,a,...p),b=(p=s2(0))=>{s=d(I3([0]),p),a=d(),p.length!==0&&(s=d(I3([1]),p),a=d())},y=()=>{if(i++>=1e3)throw new Error("drbg: tried 1000 values");let p=0;const m=[];for(;p<t;){a=d();const h=a.slice();m.push(h),p+=a.length}return dr(...m)};return(p,m)=>{f(),b(p);let h;for(;!(h=m(y()));)b();return f(),h}}const ZA={bigint:e=>typeof e=="bigint",function:e=>typeof e=="function",boolean:e=>typeof e=="boolean",string:e=>typeof e=="string",stringOrUint8Array:e=>typeof e=="string"||M5(e),isSafeInteger:e=>Number.isSafeInteger(e),array:e=>Array.isArray(e),field:(e,t)=>t.Fp.isValid(e),hash:e=>typeof e=="function"&&Number.isSafeInteger(e.outputLen)};function ur(e,t,n={}){const a=(s,i,f)=>{const d=ZA[i];if(typeof d!="function")throw new Error("invalid validator function");const b=e[s];if(!(f&&b===void 0)&&!d(b,e))throw new Error("param "+String(s)+" is invalid. Expected "+i+", got "+b)};for(const[s,i]of Object.entries(t))a(s,i,!1);for(const[s,i]of Object.entries(n))a(s,i,!0);return e}function C3(e){const t=new WeakMap;return(n,...a)=>{const s=t.get(n);if(s!==void 0)return s;const i=e(n,...a);return t.set(n,i),i}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const Ge=BigInt(0),Me=BigInt(1),h6=BigInt(2),YA=BigInt(3),P3=BigInt(4),M3=BigInt(5),$3=BigInt(8);function ze(e,t){const n=e%t;return n>=Ge?n:t+n}function gt(e,t,n){let a=e;for(;t-- >Ge;)a*=a,a%=n;return a}function i2(e,t){if(e===Ge)throw new Error("invert: expected non-zero number");if(t<=Ge)throw new Error("invert: expected positive modulus, got "+t);let n=ze(e,t),a=t,s=Ge,i=Me;for(;n!==Ge;){const d=a/n,b=a%n,y=s-i*d;a=n,n=b,s=i,i=y}if(a!==Me)throw new Error("invert: does not exist");return ze(s,t)}function O3(e,t){const n=(e.ORDER+Me)/P3,a=e.pow(t,n);if(!e.eql(e.sqr(a),t))throw new Error("Cannot find square root");return a}function KA(e,t){const n=(e.ORDER-M3)/$3,a=e.mul(t,h6),s=e.pow(a,n),i=e.mul(t,s),f=e.mul(e.mul(i,h6),s),d=e.mul(i,e.sub(f,e.ONE));if(!e.eql(e.sqr(d),t))throw new Error("Cannot find square root");return d}function XA(e){if(e<BigInt(3))throw new Error("sqrt is not defined for small field");let t=e-Me,n=0;for(;t%h6===Ge;)t/=h6,n++;let a=h6;const s=o2(e);for(;B3(s,a)===1;)if(a++>1e3)throw new Error("Cannot find square root: probably non-prime P");if(n===1)return O3;let i=s.pow(a,t);const f=(t+Me)/h6;return function(b,y){if(b.is0(y))return y;if(B3(b,y)!==1)throw new Error("Cannot find square root");let u=n,p=b.mul(b.ONE,i),m=b.pow(y,t),h=b.pow(y,f);for(;!b.eql(m,b.ONE);){if(b.is0(m))return b.ZERO;let x=1,T=b.sqr(m);for(;!b.eql(T,b.ONE);)if(x++,T=b.sqr(T),x===u)throw new Error("Cannot find square root");const C=Me<<BigInt(u-x-1),S=b.pow(p,C);u=x,p=b.sqr(S),m=b.mul(m,p),h=b.mul(h,S)}return h}}function JA(e){return e%P3===YA?O3:e%$3===M3?KA:XA(e)}const QA=["create","isValid","is0","neg","inv","sqrt","sqr","eql","add","sub","mul","pow","div","addN","subN","mulN","sqrN"];function e_(e){const t={ORDER:"bigint",MASK:"bigint",BYTES:"isSafeInteger",BITS:"isSafeInteger"},n=QA.reduce((a,s)=>(a[s]="function",a),t);return ur(e,n)}function t_(e,t,n){if(n<Ge)throw new Error("invalid exponent, negatives unsupported");if(n===Ge)return e.ONE;if(n===Me)return t;let a=e.ONE,s=t;for(;n>Ge;)n&Me&&(a=e.mul(a,s)),s=e.sqr(s),n>>=Me;return a}function R3(e,t,n=!1){const a=new Array(t.length).fill(n?e.ZERO:void 0),s=t.reduce((f,d,b)=>e.is0(d)?f:(a[b]=f,e.mul(f,d)),e.ONE),i=e.inv(s);return t.reduceRight((f,d,b)=>e.is0(d)?f:(a[b]=e.mul(f,a[b]),e.mul(f,d)),i),a}function B3(e,t){const n=(e.ORDER-Me)/h6,a=e.pow(t,n),s=e.eql(a,e.ONE),i=e.eql(a,e.ZERO),f=e.eql(a,e.neg(e.ONE));if(!s&&!i&&!f)throw new Error("invalid Legendre symbol result");return s?1:i?0:-1}function N3(e,t){t!==void 0&&V6(t);const n=t!==void 0?t:e.toString(2).length,a=Math.ceil(n/8);return{nBitLength:n,nByteLength:a}}function o2(e,t,n=!1,a={}){if(e<=Ge)throw new Error("invalid field: expected ORDER > 0, got "+e);const{nBitLength:s,nByteLength:i}=N3(e,t);if(i>2048)throw new Error("invalid field: expected ORDER of <= 2048 bytes");let f;const d=Object.freeze({ORDER:e,isLE:n,BITS:s,BYTES:i,MASK:cr(s),ZERO:Ge,ONE:Me,create:b=>ze(b,e),isValid:b=>{if(typeof b!="bigint")throw new Error("invalid field element: expected bigint, got "+typeof b);return Ge<=b&&b<e},is0:b=>b===Ge,isOdd:b=>(b&Me)===Me,neg:b=>ze(-b,e),eql:(b,y)=>b===y,sqr:b=>ze(b*b,e),add:(b,y)=>ze(b+y,e),sub:(b,y)=>ze(b-y,e),mul:(b,y)=>ze(b*y,e),pow:(b,y)=>t_(d,b,y),div:(b,y)=>ze(b*i2(y,e),e),sqrN:b=>b*b,addN:(b,y)=>b+y,subN:(b,y)=>b-y,mulN:(b,y)=>b*y,inv:b=>i2(b,e),sqrt:a.sqrt||(b=>(f||(f=JA(e)),f(d,b))),toBytes:b=>n?S3(b,i):R5(b,i),fromBytes:b=>{if(b.length!==i)throw new Error("Field.fromBytes: expected "+i+" bytes, got "+b.length);return n?_3(b):m6(b)},invertBatch:b=>R3(d,b),cmov:(b,y,u)=>u?y:b});return Object.freeze(d)}function D3(e){if(typeof e!="bigint")throw new Error("field order must be bigint");const t=e.toString(2).length;return Math.ceil(t/8)}function k3(e){const t=D3(e);return t+Math.ceil(t/2)}function n_(e,t,n=!1){const a=e.length,s=D3(t),i=k3(t);if(a<16||a<i||a>1024)throw new Error("expected "+i+"-1024 bytes of input, got "+a);const f=n?_3(e):m6(e),d=ze(f,t-Me)+Me;return n?S3(d,s):R5(d,s)}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const L3=BigInt(0),f2=BigInt(1);function b2(e,t){const n=t.negate();return e?n:t}function F3(e,t){if(!Number.isSafeInteger(e)||e<=0||e>t)throw new Error("invalid window size, expected [1.."+t+"], got W="+e)}function d2(e,t){F3(e,t);const n=Math.ceil(t/e)+1,a=2**(e-1),s=2**e,i=cr(e),f=BigInt(e);return{windows:n,windowSize:a,mask:i,maxNumber:s,shiftBy:f}}function U3(e,t,n){const{windowSize:a,mask:s,maxNumber:i,shiftBy:f}=n;let d=Number(e&s),b=e>>f;d>a&&(d-=i,b+=f2);const y=t*a,u=y+Math.abs(d)-1,p=d===0,m=d<0,h=t%2!==0;return{nextN:b,offset:u,isZero:p,isNeg:m,isNegF:h,offsetF:y}}function a_(e,t){if(!Array.isArray(e))throw new Error("array expected");e.forEach((n,a)=>{if(!(n instanceof t))throw new Error("invalid point at index "+a)})}function r_(e,t){if(!Array.isArray(e))throw new Error("array of scalars expected");e.forEach((n,a)=>{if(!t.isValid(n))throw new Error("invalid scalar at index "+a)})}const c2=new WeakMap,H3=new WeakMap;function u2(e){return H3.get(e)||1}function s_(e,t){return{constTimeNegate:b2,hasPrecomputes(n){return u2(n)!==1},unsafeLadder(n,a,s=e.ZERO){let i=n;for(;a>L3;)a&f2&&(s=s.add(i)),i=i.double(),a>>=f2;return s},precomputeWindow(n,a){const{windows:s,windowSize:i}=d2(a,t),f=[];let d=n,b=d;for(let y=0;y<s;y++){b=d,f.push(b);for(let u=1;u<i;u++)b=b.add(d),f.push(b);d=b.double()}return f},wNAF(n,a,s){let i=e.ZERO,f=e.BASE;const d=d2(n,t);for(let b=0;b<d.windows;b++){const{nextN:y,offset:u,isZero:p,isNeg:m,isNegF:h,offsetF:x}=U3(s,b,d);s=y,p?f=f.add(b2(h,a[x])):i=i.add(b2(m,a[u]))}return{p:i,f}},wNAFUnsafe(n,a,s,i=e.ZERO){const f=d2(n,t);for(let d=0;d<f.windows&&s!==L3;d++){const{nextN:b,offset:y,isZero:u,isNeg:p}=U3(s,d,f);if(s=b,!u){const m=a[y];i=i.add(p?m.negate():m)}}return i},getPrecomputes(n,a,s){let i=c2.get(a);return i||(i=this.precomputeWindow(a,n),n!==1&&c2.set(a,s(i))),i},wNAFCached(n,a,s){const i=u2(n);return this.wNAF(i,this.getPrecomputes(i,n,s),a)},wNAFCachedUnsafe(n,a,s,i){const f=u2(n);return f===1?this.unsafeLadder(n,a,i):this.wNAFUnsafe(f,this.getPrecomputes(f,n,s),a,i)},setWindowSize(n,a){F3(a,t),H3.set(n,a),c2.delete(n)}}}function i_(e,t,n,a){a_(n,e),r_(a,t);const s=n.length,i=a.length;if(s!==i)throw new Error("arrays of points and scalars must have equal length");const f=e.ZERO,d=qA(BigInt(s));let b=1;d>12?b=d-3:d>4?b=d-2:d>0&&(b=2);const y=cr(b),u=new Array(Number(y)+1).fill(f),p=Math.floor((t.BITS-1)/b)*b;let m=f;for(let h=p;h>=0;h-=b){u.fill(f);for(let T=0;T<i;T++){const C=a[T],S=Number(C>>BigInt(h)&y);u[S]=u[S].add(n[T])}let x=f;for(let T=u.length-1,C=f;T>0;T--)C=C.add(u[T]),x=x.add(C);if(m=m.add(x),h!==0)for(let T=0;T<b;T++)m=m.double()}return m}function G3(e){return e_(e.Fp),ur(e,{n:"bigint",h:"bigint",Gx:"field",Gy:"field"},{nBitLength:"isSafeInteger",nByteLength:"isSafeInteger"}),Object.freeze({...N3(e.n,e.nBitLength),...e,p:e.Fp.ORDER})}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function z3(e){e.lowS!==void 0&&$5("lowS",e.lowS),e.prehash!==void 0&&$5("prehash",e.prehash)}function o_(e){const t=G3(e);ur(t,{a:"field",b:"field"},{allowInfinityPoint:"boolean",allowedPrivateKeyLengths:"array",clearCofactor:"function",fromBytes:"function",isTorsionFree:"function",toBytes:"function",wrapPrivateKey:"boolean"});const{endo:n,Fp:a,a:s}=t;if(n){if(!a.eql(s,a.ZERO))throw new Error("invalid endo: CURVE.a must be 0");if(typeof n!="object"||typeof n.beta!="bigint"||typeof n.splitScalar!="function")throw new Error('invalid endo: expected "beta": bigint and "splitScalar": function')}return Object.freeze({...t})}class f_ extends Error{constructor(t=""){super(t)}}const g1={Err:f_,_tlv:{encode:(e,t)=>{const{Err:n}=g1;if(e<0||e>256)throw new n("tlv.encode: wrong tag");if(t.length&1)throw new n("tlv.encode: unpadded data");const a=t.length/2,s=fr(a);if(s.length/2&128)throw new n("tlv.encode: long form length too big");const i=a>127?fr(s.length/2|128):"";return fr(e)+i+s+t},decode(e,t){const{Err:n}=g1;let a=0;if(e<0||e>256)throw new n("tlv.encode: wrong tag");if(t.length<2||t[a++]!==e)throw new n("tlv.decode: wrong tlv");const s=t[a++],i=!!(s&128);let f=0;if(!i)f=s;else{const b=s&127;if(!b)throw new n("tlv.decode(long): indefinite length not supported");if(b>4)throw new n("tlv.decode(long): byte length is too big");const y=t.subarray(a,a+b);if(y.length!==b)throw new n("tlv.decode: length bytes not complete");if(y[0]===0)throw new n("tlv.decode(long): zero leftmost byte");for(const u of y)f=f<<8|u;if(a+=b,f<128)throw new n("tlv.decode(long): not minimal encoding")}const d=t.subarray(a,a+f);if(d.length!==f)throw new n("tlv.decode: wrong value length");return{v:d,l:t.subarray(a+f)}}},_int:{encode(e){const{Err:t}=g1;if(e<T1)throw new t("integer: negative integers are not allowed");let n=fr(e);if(Number.parseInt(n[0],16)&8&&(n="00"+n),n.length&1)throw new t("unexpected DER parsing assertion: unpadded hex");return n},decode(e){const{Err:t}=g1;if(e[0]&128)throw new t("invalid signature integer: negative");if(e[0]===0&&!(e[1]&128))throw new t("invalid signature integer: unnecessary leading zero");return m6(e)}},toSig(e){const{Err:t,_int:n,_tlv:a}=g1,s=ht("signature",e),{v:i,l:f}=a.decode(48,s);if(f.length)throw new t("invalid signature: left bytes after parsing");const{v:d,l:b}=a.decode(2,i),{v:y,l:u}=a.decode(2,b);if(u.length)throw new t("invalid signature: left bytes after parsing");return{r:n.decode(d),s:n.decode(y)}},hexFromSig(e){const{_tlv:t,_int:n}=g1,a=t.encode(2,n.encode(e.r)),s=t.encode(2,n.encode(e.s)),i=a+s;return t.encode(48,i)}};function y2(e,t){return O5(R5(e,t))}const T1=BigInt(0),pe=BigInt(1);BigInt(2);const p2=BigInt(3),b_=BigInt(4);function d_(e){const t=o_(e),{Fp:n}=t,a=o2(t.n,t.nBitLength),s=t.toBytes||((A,E,$)=>{const L=E.toAffine();return dr(Uint8Array.from([4]),n.toBytes(L.x),n.toBytes(L.y))}),i=t.fromBytes||(A=>{const E=A.subarray(1),$=n.fromBytes(E.subarray(0,n.BYTES)),L=n.fromBytes(E.subarray(n.BYTES,2*n.BYTES));return{x:$,y:L}});function f(A){const{a:E,b:$}=t,L=n.sqr(A),R=n.mul(L,A);return n.add(n.add(R,n.mul(A,E)),$)}function d(A,E){const $=n.sqr(E),L=f(A);return n.eql($,L)}if(!d(t.Gx,t.Gy))throw new Error("bad curve params: generator point");const b=n.mul(n.pow(t.a,p2),b_),y=n.mul(n.sqr(t.b),BigInt(27));if(n.is0(n.add(b,y)))throw new Error("bad curve params: a or b");function u(A){return r2(A,pe,t.n)}function p(A){const{allowedPrivateKeyLengths:E,nByteLength:$,wrapPrivateKey:L,n:R}=t;if(E&&typeof A!="bigint"){if(M5(A)&&(A=O5(A)),typeof A!="string"||!E.includes(A.length))throw new Error("invalid private key");A=A.padStart($*2,"0")}let D;try{D=typeof A=="bigint"?A:m6(ht("private key",A,$))}catch{throw new Error("invalid private key, expected hex or "+$+" bytes, got "+typeof A)}return L&&(D=ze(D,R)),un("private key",D,pe,R),D}function m(A){if(!(A instanceof T))throw new Error("ProjectivePoint expected")}const h=C3((A,E)=>{const{px:$,py:L,pz:R}=A;if(n.eql(R,n.ONE))return{x:$,y:L};const D=A.is0();E==null&&(E=D?n.ONE:n.inv(R));const q=n.mul($,E),e0=n.mul(L,E),z=n.mul(R,E);if(D)return{x:n.ZERO,y:n.ZERO};if(!n.eql(z,n.ONE))throw new Error("invZ was invalid");return{x:q,y:e0}}),x=C3(A=>{if(A.is0()){if(t.allowInfinityPoint&&!n.is0(A.py))return;throw new Error("bad point: ZERO")}const{x:E,y:$}=A.toAffine();if(!n.isValid(E)||!n.isValid($))throw new Error("bad point: x or y not FE");if(!d(E,$))throw new Error("bad point: equation left != right");if(!A.isTorsionFree())throw new Error("bad point: not in prime-order subgroup");return!0});class T{constructor(E,$,L){if(E==null||!n.isValid(E))throw new Error("x required");if($==null||!n.isValid($)||n.is0($))throw new Error("y required");if(L==null||!n.isValid(L))throw new Error("z required");this.px=E,this.py=$,this.pz=L,Object.freeze(this)}static fromAffine(E){const{x:$,y:L}=E||{};if(!E||!n.isValid($)||!n.isValid(L))throw new Error("invalid affine point");if(E instanceof T)throw new Error("projective point not allowed");const R=D=>n.eql(D,n.ZERO);return R($)&&R(L)?T.ZERO:new T($,L,n.ONE)}get x(){return this.toAffine().x}get y(){return this.toAffine().y}static normalizeZ(E){const $=R3(n,E.map(L=>L.pz));return E.map((L,R)=>L.toAffine($[R])).map(T.fromAffine)}static fromHex(E){const $=T.fromAffine(i(ht("pointHex",E)));return $.assertValidity(),$}static fromPrivateKey(E){return T.BASE.multiply(p(E))}static msm(E,$){return i_(T,a,E,$)}_setWindowSize(E){H.setWindowSize(this,E)}assertValidity(){x(this)}hasEvenY(){const{y:E}=this.toAffine();if(n.isOdd)return!n.isOdd(E);throw new Error("Field doesn't support isOdd")}equals(E){m(E);const{px:$,py:L,pz:R}=this,{px:D,py:q,pz:e0}=E,z=n.eql(n.mul($,e0),n.mul(D,R)),K=n.eql(n.mul(L,e0),n.mul(q,R));return z&&K}negate(){return new T(this.px,n.neg(this.py),this.pz)}double(){const{a:E,b:$}=t,L=n.mul($,p2),{px:R,py:D,pz:q}=this;let e0=n.ZERO,z=n.ZERO,K=n.ZERO,W=n.mul(R,R),Z=n.mul(D,D),_=n.mul(q,q),M=n.mul(R,D);return M=n.add(M,M),K=n.mul(R,q),K=n.add(K,K),e0=n.mul(E,K),z=n.mul(L,_),z=n.add(e0,z),e0=n.sub(Z,z),z=n.add(Z,z),z=n.mul(e0,z),e0=n.mul(M,e0),K=n.mul(L,K),_=n.mul(E,_),M=n.sub(W,_),M=n.mul(E,M),M=n.add(M,K),K=n.add(W,W),W=n.add(K,W),W=n.add(W,_),W=n.mul(W,M),z=n.add(z,W),_=n.mul(D,q),_=n.add(_,_),W=n.mul(_,M),e0=n.sub(e0,W),K=n.mul(_,Z),K=n.add(K,K),K=n.add(K,K),new T(e0,z,K)}add(E){m(E);const{px:$,py:L,pz:R}=this,{px:D,py:q,pz:e0}=E;let z=n.ZERO,K=n.ZERO,W=n.ZERO;const Z=t.a,_=n.mul(t.b,p2);let M=n.mul($,D),k=n.mul(L,q),B=n.mul(R,e0),U=n.add($,L),P=n.add(D,q);U=n.mul(U,P),P=n.add(M,k),U=n.sub(U,P),P=n.add($,R);let V=n.add(D,e0);return P=n.mul(P,V),V=n.add(M,B),P=n.sub(P,V),V=n.add(L,R),z=n.add(q,e0),V=n.mul(V,z),z=n.add(k,B),V=n.sub(V,z),W=n.mul(Z,P),z=n.mul(_,B),W=n.add(z,W),z=n.sub(k,W),W=n.add(k,W),K=n.mul(z,W),k=n.add(M,M),k=n.add(k,M),B=n.mul(Z,B),P=n.mul(_,P),k=n.add(k,B),B=n.sub(M,B),B=n.mul(Z,B),P=n.add(P,B),M=n.mul(k,P),K=n.add(K,M),M=n.mul(V,P),z=n.mul(U,z),z=n.sub(z,M),M=n.mul(U,k),W=n.mul(V,W),W=n.add(W,M),new T(z,K,W)}subtract(E){return this.add(E.negate())}is0(){return this.equals(T.ZERO)}wNAF(E){return H.wNAFCached(this,E,T.normalizeZ)}multiplyUnsafe(E){const{endo:$,n:L}=t;un("scalar",E,T1,L);const R=T.ZERO;if(E===T1)return R;if(this.is0()||E===pe)return this;if(!$||H.hasPrecomputes(this))return H.wNAFCachedUnsafe(this,E,T.normalizeZ);let{k1neg:D,k1:q,k2neg:e0,k2:z}=$.splitScalar(E),K=R,W=R,Z=this;for(;q>T1||z>T1;)q&pe&&(K=K.add(Z)),z&pe&&(W=W.add(Z)),Z=Z.double(),q>>=pe,z>>=pe;return D&&(K=K.negate()),e0&&(W=W.negate()),W=new T(n.mul(W.px,$.beta),W.py,W.pz),K.add(W)}multiply(E){const{endo:$,n:L}=t;un("scalar",E,pe,L);let R,D;if($){const{k1neg:q,k1:e0,k2neg:z,k2:K}=$.splitScalar(E);let{p:W,f:Z}=this.wNAF(e0),{p:_,f:M}=this.wNAF(K);W=H.constTimeNegate(q,W),_=H.constTimeNegate(z,_),_=new T(n.mul(_.px,$.beta),_.py,_.pz),R=W.add(_),D=Z.add(M)}else{const{p:q,f:e0}=this.wNAF(E);R=q,D=e0}return T.normalizeZ([R,D])[0]}multiplyAndAddUnsafe(E,$,L){const R=T.BASE,D=(e0,z)=>z===T1||z===pe||!e0.equals(R)?e0.multiplyUnsafe(z):e0.multiply(z),q=D(this,$).add(D(E,L));return q.is0()?void 0:q}toAffine(E){return h(this,E)}isTorsionFree(){const{h:E,isTorsionFree:$}=t;if(E===pe)return!0;if($)return $(T,this);throw new Error("isTorsionFree() has not been declared for the elliptic curve")}clearCofactor(){const{h:E,clearCofactor:$}=t;return E===pe?this:$?$(T,this):this.multiplyUnsafe(t.h)}toRawBytes(E=!0){return $5("isCompressed",E),this.assertValidity(),s(T,this,E)}toHex(E=!0){return $5("isCompressed",E),O5(this.toRawBytes(E))}}T.BASE=new T(t.Gx,t.Gy,n.ONE),T.ZERO=new T(n.ZERO,n.ONE,n.ZERO);const{endo:C,nBitLength:S}=t,H=s_(T,C?Math.ceil(S/2):S);return{CURVE:t,ProjectivePoint:T,normPrivateKeyToScalar:p,weierstrassEquation:f,isWithinCurveOrder:u}}function c_(e){const t=G3(e);return ur(t,{hash:"hash",hmac:"function",randomBytes:"function"},{bits2int:"function",bits2int_modN:"function",lowS:"boolean"}),Object.freeze({lowS:!0,...t})}function u_(e){const t=c_(e),{Fp:n,n:a,nByteLength:s,nBitLength:i}=t,f=n.BYTES+1,d=2*n.BYTES+1;function b(_){return ze(_,a)}function y(_){return i2(_,a)}const{ProjectivePoint:u,normPrivateKeyToScalar:p,weierstrassEquation:m,isWithinCurveOrder:h}=d_({...t,toBytes(_,M,k){const B=M.toAffine(),U=n.toBytes(B.x),P=dr;return $5("isCompressed",k),k?P(Uint8Array.from([M.hasEvenY()?2:3]),U):P(Uint8Array.from([4]),U,n.toBytes(B.y))},fromBytes(_){const M=_.length,k=_[0],B=_.subarray(1);if(M===f&&(k===2||k===3)){const U=m6(B);if(!r2(U,pe,n.ORDER))throw new Error("Point is not on curve");const P=m(U);let V;try{V=n.sqrt(P)}catch(y0){const s0=y0 instanceof Error?": "+y0.message:"";throw new Error("Point is not on curve"+s0)}const a0=(V&pe)===pe;return(k&1)===1!==a0&&(V=n.neg(V)),{x:U,y:V}}else if(M===d&&k===4){const U=n.fromBytes(B.subarray(0,n.BYTES)),P=n.fromBytes(B.subarray(n.BYTES,2*n.BYTES));return{x:U,y:P}}else{const U=f,P=d;throw new Error("invalid Point, expected length of "+U+", or uncompressed "+P+", got "+M)}}});function x(_){const M=a>>pe;return _>M}function T(_){return x(_)?b(-_):_}const C=(_,M,k)=>m6(_.slice(M,k));class S{constructor(M,k,B){un("r",M,pe,a),un("s",k,pe,a),this.r=M,this.s=k,B!=null&&(this.recovery=B),Object.freeze(this)}static fromCompact(M){const k=s;return M=ht("compactSignature",M,k*2),new S(C(M,0,k),C(M,k,2*k))}static fromDER(M){const{r:k,s:B}=g1.toSig(ht("DER",M));return new S(k,B)}assertValidity(){}addRecoveryBit(M){return new S(this.r,this.s,M)}recoverPublicKey(M){const{r:k,s:B,recovery:U}=this,P=R(ht("msgHash",M));if(U==null||![0,1,2,3].includes(U))throw new Error("recovery id invalid");const V=U===2||U===3?k+t.n:k;if(V>=n.ORDER)throw new Error("recovery id 2 or 3 invalid");const a0=U&1?"03":"02",o0=u.fromHex(a0+y2(V,n.BYTES)),y0=y(V),s0=b(-P*y0),A0=b(B*y0),V0=u.BASE.multiplyAndAddUnsafe(o0,s0,A0);if(!V0)throw new Error("point at infinify");return V0.assertValidity(),V0}hasHighS(){return x(this.s)}normalizeS(){return this.hasHighS()?new S(this.r,b(-this.s),this.recovery):this}toDERRawBytes(){return br(this.toDERHex())}toDERHex(){return g1.hexFromSig(this)}toCompactRawBytes(){return br(this.toCompactHex())}toCompactHex(){const M=s;return y2(this.r,M)+y2(this.s,M)}}const H={isValidPrivateKey(_){try{return p(_),!0}catch{return!1}},normPrivateKeyToScalar:p,randomPrivateKey:()=>{const _=k3(t.n);return n_(t.randomBytes(_),t.n)},precompute(_=8,M=u.BASE){return M._setWindowSize(_),M.multiply(BigInt(3)),M}};function A(_,M=!0){return u.fromPrivateKey(_).toRawBytes(M)}function E(_){if(typeof _=="bigint")return!1;if(_ instanceof u)return!0;const k=ht("key",_).length,B=n.BYTES,U=B+1,P=2*B+1;if(!(t.allowedPrivateKeyLengths||s===U))return k===U||k===P}function $(_,M,k=!0){if(E(_)===!0)throw new Error("first arg must be private key");if(E(M)===!1)throw new Error("second arg must be public key");return u.fromHex(M).multiply(p(_)).toRawBytes(k)}const L=t.bits2int||function(_){if(_.length>8192)throw new Error("input is too large");const M=m6(_),k=_.length*8-i;return k>0?M>>BigInt(k):M},R=t.bits2int_modN||function(_){return b(L(_))},D=cr(i);function q(_){return un("num < 2^"+i,_,T1,D),R5(_,s)}function e0(_,M,k=z){if(["recovered","canonical"].some(N0=>N0 in k))throw new Error("sign() legacy options not supported");const{hash:B,randomBytes:U}=t;let{lowS:P,prehash:V,extraEntropy:a0}=k;P==null&&(P=!0),_=ht("msgHash",_),z3(k),V&&(_=ht("prehashed msgHash",B(_)));const o0=R(_),y0=p(M),s0=[q(y0),q(o0)];if(a0!=null&&a0!==!1){const N0=a0===!0?U(n.BYTES):a0;s0.push(ht("extraEntropy",N0))}const A0=dr(...s0),V0=o0;function $0(N0){const fe=L(N0);if(!h(fe))return;const Ve=y(fe),Se=u.BASE.multiply(fe).toAffine(),le=b(Se.x);if(le===T1)return;const q0=b(Ve*b(V0+le*y0));if(q0===T1)return;let ge=(Se.x===le?0:2)|Number(Se.y&pe),Ne=q0;return P&&x(q0)&&(Ne=T(q0),ge^=1),new S(le,Ne,ge)}return{seed:A0,k2sig:$0}}const z={lowS:t.lowS,prehash:!1},K={lowS:t.lowS,prehash:!1};function W(_,M,k=z){const{seed:B,k2sig:U}=e0(_,M,k),P=t;return WA(P.hash.outputLen,P.nByteLength,P.hmac)(B,U)}u.BASE._setWindowSize(8);function Z(_,M,k,B=K){var ge;const U=_;M=ht("msgHash",M),k=ht("publicKey",k);const{lowS:P,prehash:V,format:a0}=B;if(z3(B),"strict"in B)throw new Error("options.strict was renamed to lowS");if(a0!==void 0&&a0!=="compact"&&a0!=="der")throw new Error("format must be compact or der");const o0=typeof U=="string"||M5(U),y0=!o0&&!a0&&typeof U=="object"&&U!==null&&typeof U.r=="bigint"&&typeof U.s=="bigint";if(!o0&&!y0)throw new Error("invalid signature, expected Uint8Array, hex string or Signature instance");let s0,A0;try{if(y0&&(s0=new S(U.r,U.s)),o0){try{a0!=="compact"&&(s0=S.fromDER(U))}catch(Ne){if(!(Ne instanceof g1.Err))throw Ne}!s0&&a0!=="der"&&(s0=S.fromCompact(U))}A0=u.fromHex(k)}catch{return!1}if(!s0||P&&s0.hasHighS())return!1;V&&(M=t.hash(M));const{r:V0,s:$0}=s0,N0=R(M),fe=y($0),Ve=b(N0*fe),Se=b(V0*fe),le=(ge=u.BASE.multiplyAndAddUnsafe(A0,Ve,Se))==null?void 0:ge.toAffine();return le?b(le.x)===V0:!1}return{CURVE:t,getPublicKey:A,getSharedSecret:$,sign:W,verify:Z,ProjectivePoint:u,Signature:S,utils:H}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */function y_(e){return{hash:e,hmac:(t,...n)=>D8(e,t,vd(...n)),randomBytes:xd}}function p_(e,t){const n=a=>u_({...e,...y_(a)});return{...n(t),create:n}}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const j3=BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f"),V3=BigInt("0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141"),l_=BigInt(0),m_=BigInt(1),l2=BigInt(2),q3=(e,t)=>(e+t/l2)/t;function h_(e){const t=j3,n=BigInt(3),a=BigInt(6),s=BigInt(11),i=BigInt(22),f=BigInt(23),d=BigInt(44),b=BigInt(88),y=e*e*e%t,u=y*y*e%t,p=gt(u,n,t)*u%t,m=gt(p,n,t)*u%t,h=gt(m,l2,t)*y%t,x=gt(h,s,t)*h%t,T=gt(x,i,t)*x%t,C=gt(T,d,t)*T%t,S=gt(C,b,t)*C%t,H=gt(S,d,t)*T%t,A=gt(H,n,t)*u%t,E=gt(A,f,t)*x%t,$=gt(E,a,t)*y%t,L=gt($,l2,t);if(!m2.eql(m2.sqr(L),e))throw new Error("Cannot find square root");return L}const m2=o2(j3,void 0,void 0,{sqrt:h_}),W3=p_({a:l_,b:BigInt(7),Fp:m2,n:V3,Gx:BigInt("55066263022277343669578718895168534326250603453777594175500187360389116729240"),Gy:BigInt("32670510020758816978083085130507043184471273380659243275938904335757337482424"),h:BigInt(1),lowS:!0,endo:{beta:BigInt("0x7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee"),splitScalar:e=>{const t=V3,n=BigInt("0x3086d221a7d46bcde86c90e49284eb15"),a=-m_*BigInt("0xe4437ed6010e88286f547fa90abfe4c3"),s=BigInt("0x114ca50f7a8e2f3f657c1108d9d44cfd8"),i=n,f=BigInt("0x100000000000000000000000000000000"),d=q3(i*e,t),b=q3(-a*e,t);let y=ze(e-d*n-b*s,t),u=ze(-d*a-b*i,t);const p=y>f,m=u>f;if(p&&(y=t-y),m&&(u=t-u),y>f||u>f)throw new Error("splitScalar: Endomorphism failed, k="+e);return{k1neg:p,k1:y,k2neg:m,k2:u}}}},Fi),g_=Object.freeze(Object.defineProperty({__proto__:null,secp256k1:W3},Symbol.toStringTag,{value:"Module"}));function T_({r:e,s:t,to:n="hex",v:a,yParity:s}){const i=(()=>{if(s===0||s===1)return s;if(a&&(a===27n||a===28n||a>=35n))return a%2n===0n?1:0;throw new Error("Invalid `v` or `yParity` value")})(),f=`0x${new W3.Signature(U0(e),U0(t)).toCompactHex()}${i===0?"1b":"1c"}`;return n==="hex"?f:ct(f)}async function yr(e,t){var d,b,y,u,p,m;const{address:n,hash:a,erc6492VerifierAddress:s=t.universalSignatureVerifierAddress??((y=(b=(d=e.chain)==null?void 0:d.contracts)==null?void 0:b.erc6492Verifier)==null?void 0:y.address),multicallAddress:i=t.multicallAddress??((m=(p=(u=e.chain)==null?void 0:u.contracts)==null?void 0:p.multicall3)==null?void 0:m.address)}=t,f=(()=>{const h=t.signature;return dt(h)?h:typeof h=="object"&&"r"in h&&"s"in h?T_(h):te(h)})();try{return EA(f)?await w_(e,{...t,multicallAddress:i,signature:f}):await v_(e,{...t,verifierAddress:s,signature:f})}catch(h){try{if(z1(r6(n),await Jd({hash:a,signature:f})))return!0}catch{}if(h instanceof g6)return!1;throw h}}async function w_(e,t){var C;const{address:n,blockNumber:a,blockTag:s,hash:i,multicallAddress:f}=t,{authorization:d,data:b,signature:y,to:u}=xA(t.signature);if(await sn(e,{address:n,blockNumber:a,blockTag:s})===Fe(["0xef0100",d.address]))return await x_(e,{address:n,blockNumber:a,blockTag:s,hash:i,signature:y});const m={address:d.address,chainId:Number(d.chainId),nonce:Number(d.nonce),r:t0(d.r,{size:32}),s:t0(d.s,{size:32}),yParity:d.yParity};if(!await ex({address:n,authorization:m}))throw new g6;const x=await d0(e,u0,"readContract")({...f?{address:f}:{code:n8},authorizationList:[m],abi:Va,blockNumber:a,blockTag:"pending",functionName:"aggregate3",args:[[...b?[{allowFailure:!0,target:u??n,callData:b}]:[],{allowFailure:!0,target:n,callData:T0({abi:Zc,functionName:"isValidSignature",args:[i,y]})}]]}),T=(C=x[x.length-1])==null?void 0:C.returnData;if(T!=null&&T.startsWith("0x1626ba7e"))return!0;throw new g6}async function v_(e,t){const{address:n,factory:a,factoryData:s,hash:i,signature:f,verifierAddress:d,...b}=t,y=await(async()=>!a&&!s||zA(f)?f:GA({data:s,signature:f,to:a}))(),u=d?{to:d,data:T0({abi:Yc,functionName:"isValidSig",args:[n,i,y]}),...b}:{data:Wa({abi:Yc,args:[n,i,y],bytecode:qw}),...b},{data:p}=await d0(e,E5,"call")(u).catch(m=>{throw m instanceof Zd?new g6:m});if(eg(p??"0x0"))return!0;throw new g6}async function x_(e,t){const{address:n,blockNumber:a,blockTag:s,hash:i,signature:f}=t;if((await d0(e,u0,"readContract")({address:n,abi:Zc,args:[i,f],blockNumber:a,blockTag:s,functionName:"isValidSignature"}).catch(b=>{throw b instanceof wi?new g6:b})).startsWith("0x1626ba7e"))return!0;throw new g6}class g6 extends Error{}async function E_(e,{address:t,message:n,factory:a,factoryData:s,signature:i,...f}){const d=v8(n);return yr(e,{address:t,factory:a,factoryData:s,hash:d,signature:i,...f})}async function A_(e,t){const{address:n,factory:a,factoryData:s,signature:i,message:f,primaryType:d,types:b,domain:y,...u}=t,p=vu({message:f,primaryType:d,types:b,domain:y});return yr(e,{address:n,factory:a,factoryData:s,hash:p,signature:i,...u})}function Z3(e,{emitOnBegin:t=!1,emitMissed:n=!1,onBlockNumber:a,onError:s,poll:i,pollingInterval:f=e.pollingInterval}){const d=typeof i<"u"?i:!(e.transport.type==="webSocket"||e.transport.type==="ipc"||e.transport.type==="fallback"&&(e.transport.transports[0].config.type==="webSocket"||e.transport.transports[0].config.type==="ipc"));let b;return d?(()=>{const p=re(["watchBlockNumber",e.uid,t,n,f]);return u1(p,{onBlockNumber:a,onError:s},m=>an(async()=>{var h;try{const x=await d0(e,A5,"getBlockNumber")({cacheTime:0});if(b!==void 0){if(x===b)return;if(x-b>1&&n)for(let T=b+1n;T<x;T++)m.onBlockNumber(T,b),b=T}(b===void 0||x>b)&&(m.onBlockNumber(x,b),b=x)}catch(x){(h=m.onError)==null||h.call(m,x)}},{emitOnBegin:t,interval:f}))})():(()=>{const p=re(["watchBlockNumber",e.uid,t,n]);return u1(p,{onBlockNumber:a,onError:s},m=>{let h=!0,x=()=>h=!1;return(async()=>{try{const T=(()=>{if(e.transport.type==="fallback"){const S=e.transport.transports.find(H=>H.config.type==="webSocket"||H.config.type==="ipc");return S?S.value:e.transport}return e.transport})(),{unsubscribe:C}=await T.subscribe({params:["newHeads"],onData(S){var A;if(!h)return;const H=U0((A=S.result)==null?void 0:A.number);m.onBlockNumber(H,b),b=H},onError(S){var H;(H=m.onError)==null||H.call(m,S)}});x=C,h||x()}catch(T){s==null||s(T)}})(),()=>x()})})()}async function __(e,t){const{checkReplacement:n=!0,confirmations:a=1,hash:s,onReplaced:i,retryCount:f=6,retryDelay:d=({count:$})=>~~(1<<$)*200,timeout:b=18e4}=t,y=re(["waitForTransactionReceipt",e.uid,s]),u=(()=>{var $;return t.pollingInterval?t.pollingInterval:($=e.chain)!=null&&$.experimental_preconfirmationTime?e.chain.experimental_preconfirmationTime:e.pollingInterval})();let p,m,h,x=!1,T,C;const{promise:S,resolve:H,reject:A}=Qc(),E=b?setTimeout(()=>{C==null||C(),T==null||T(),A(new AT({hash:s}))},b):void 0;return T=u1(y,{onReplaced:i,resolve:H,reject:A},async $=>{if(h=await d0(e,sr,"getTransactionReceipt")({hash:s}).catch(()=>{}),h&&a<=1){clearTimeout(E),$.resolve(h),T==null||T();return}C=d0(e,Z3,"watchBlockNumber")({emitMissed:!0,emitOnBegin:!0,poll:!0,pollingInterval:u,async onBlockNumber(L){const R=q=>{clearTimeout(E),C==null||C(),q(),T==null||T()};let D=L;if(!x)try{if(h){if(a>1&&(!h.blockNumber||D-h.blockNumber+1n<a))return;R(()=>$.resolve(h));return}if(n&&!p&&(x=!0,await c8(async()=>{p=await d0(e,K8,"getTransaction")({hash:s}),p.blockNumber&&(D=p.blockNumber)},{delay:d,retryCount:f}),x=!1),h=await d0(e,sr,"getTransactionReceipt")({hash:s}),a>1&&(!h.blockNumber||D-h.blockNumber+1n<a))return;R(()=>$.resolve(h))}catch(q){if(q instanceof qd||q instanceof Wd){if(!p){x=!1;return}try{m=p,x=!0;const e0=await c8(()=>d0(e,yt,"getBlock")({blockNumber:D,includeTransactions:!0}),{delay:d,retryCount:f,shouldRetry:({error:W})=>W instanceof nc});x=!1;const z=e0.transactions.find(({from:W,nonce:Z})=>W===m.from&&Z===m.nonce);if(!z||(h=await d0(e,sr,"getTransactionReceipt")({hash:z.hash}),a>1&&(!h.blockNumber||D-h.blockNumber+1n<a)))return;let K="replaced";z.to===m.to&&z.value===m.value&&z.input===m.input?K="repriced":z.from===z.to&&z.value===0n&&(K="cancelled"),R(()=>{var W;(W=$.onReplaced)==null||W.call($,{reason:K,replacedTransaction:m,transaction:z,transactionReceipt:h}),$.resolve(h)})}catch(e0){R(()=>$.reject(e0))}}else R(()=>$.reject(q))}}})}),S}function S_(e,{blockTag:t=e.experimental_blockTag??"latest",emitMissed:n=!1,emitOnBegin:a=!1,onBlock:s,onError:i,includeTransactions:f,poll:d,pollingInterval:b=e.pollingInterval}){const y=typeof d<"u"?d:!(e.transport.type==="webSocket"||e.transport.type==="ipc"||e.transport.type==="fallback"&&(e.transport.transports[0].config.type==="webSocket"||e.transport.transports[0].config.type==="ipc")),u=f??!1;let p;return y?(()=>{const x=re(["watchBlocks",e.uid,t,n,a,u,b]);return u1(x,{onBlock:s,onError:i},T=>an(async()=>{var C;try{const S=await d0(e,yt,"getBlock")({blockTag:t,includeTransactions:u});if(S.number!==null&&(p==null?void 0:p.number)!=null){if(S.number===p.number)return;if(S.number-p.number>1&&n)for(let H=(p==null?void 0:p.number)+1n;H<S.number;H++){const A=await d0(e,yt,"getBlock")({blockNumber:H,includeTransactions:u});T.onBlock(A,p),p=A}}((p==null?void 0:p.number)==null||t==="pending"&&(S==null?void 0:S.number)==null||S.number!==null&&S.number>p.number)&&(T.onBlock(S,p),p=S)}catch(S){(C=T.onError)==null||C.call(T,S)}},{emitOnBegin:a,interval:b}))})():(()=>{let x=!0,T=!0,C=()=>x=!1;return(async()=>{try{a&&d0(e,yt,"getBlock")({blockTag:t,includeTransactions:u}).then(A=>{x&&T&&(s(A,void 0),T=!1)}).catch(i);const S=(()=>{if(e.transport.type==="fallback"){const A=e.transport.transports.find(E=>E.config.type==="webSocket"||E.config.type==="ipc");return A?A.value:e.transport}return e.transport})(),{unsubscribe:H}=await S.subscribe({params:["newHeads"],async onData(A){var $;if(!x)return;const E=await d0(e,yt,"getBlock")({blockNumber:($=A.result)==null?void 0:$.number,includeTransactions:u}).catch(()=>{});x&&(s(E,p),T=!1,p=E)},onError(A){i==null||i(A)}});C=H,x||C()}catch(S){i==null||i(S)}})(),()=>C()})()}function I_(e,{address:t,args:n,batch:a=!0,event:s,events:i,fromBlock:f,onError:d,onLogs:b,poll:y,pollingInterval:u=e.pollingInterval,strict:p}){const m=typeof y<"u"?y:typeof f=="bigint"?!0:!(e.transport.type==="webSocket"||e.transport.type==="ipc"||e.transport.type==="fallback"&&(e.transport.transports[0].config.type==="webSocket"||e.transport.transports[0].config.type==="ipc")),h=p??!1;return m?(()=>{const C=re(["watchEvent",t,n,a,e.uid,s,u,f]);return u1(C,{onLogs:b,onError:d},S=>{let H;f!==void 0&&(H=f-1n);let A,E=!1;const $=an(async()=>{var L;if(!E){try{A=await d0(e,yu,"createEventFilter")({address:t,args:n,event:s,events:i,strict:h,fromBlock:f})}catch{}E=!0;return}try{let R;if(A)R=await d0(e,Za,"getFilterChanges")({filter:A});else{const D=await d0(e,A5,"getBlockNumber")({});H&&H!==D?R=await d0(e,Vi,"getLogs")({address:t,args:n,event:s,events:i,fromBlock:H+1n,toBlock:D}):R=[],H=D}if(R.length===0)return;if(a)S.onLogs(R);else for(const D of R)S.onLogs([D])}catch(R){A&&R instanceof k1&&(E=!1),(L=S.onError)==null||L.call(S,R)}},{emitOnBegin:!0,interval:u});return async()=>{A&&await d0(e,Ya,"uninstallFilter")({filter:A}),$()}})})():(()=>{let C=!0,S=()=>C=!1;return(async()=>{try{const H=(()=>{if(e.transport.type==="fallback"){const L=e.transport.transports.find(R=>R.config.type==="webSocket"||R.config.type==="ipc");return L?L.value:e.transport}return e.transport})(),A=i??(s?[s]:void 0);let E=[];A&&(E=[A.flatMap(R=>Vn({abi:[R],eventName:R.name,args:n}))],s&&(E=E[0]));const{unsubscribe:$}=await H.subscribe({params:["logs",{address:t,topics:E}],onData(L){var D;if(!C)return;const R=L.result;try{const{eventName:q,args:e0}=zi({abi:A??[],data:R.data,topics:R.topics,strict:h}),z=qt(R,{args:e0,eventName:q});b([z])}catch(q){let e0,z;if(q instanceof Hn||q instanceof Ea){if(p)return;e0=q.abiItem.name,z=(D=q.abiItem.inputs)==null?void 0:D.some(W=>!("name"in W&&W.name))}const K=qt(R,{args:z?[]:{},eventName:e0});b([K])}},onError(L){d==null||d(L)}});S=$,C||S()}catch(H){d==null||d(H)}})(),()=>S()})()}function C_(e,{batch:t=!0,onError:n,onTransactions:a,poll:s,pollingInterval:i=e.pollingInterval}){return(typeof s<"u"?s:e.transport.type!=="webSocket"&&e.transport.type!=="ipc")?(()=>{const y=re(["watchPendingTransactions",e.uid,t,i]);return u1(y,{onTransactions:a,onError:n},u=>{let p;const m=an(async()=>{var h;try{if(!p)try{p=await d0(e,pu,"createPendingTransactionFilter")({});return}catch(T){throw m(),T}const x=await d0(e,Za,"getFilterChanges")({filter:p});if(x.length===0)return;if(t)u.onTransactions(x);else for(const T of x)u.onTransactions([T])}catch(x){(h=u.onError)==null||h.call(u,x)}},{emitOnBegin:!0,interval:i});return async()=>{p&&await d0(e,Ya,"uninstallFilter")({filter:p}),m()}})})():(()=>{let y=!0,u=()=>y=!1;return(async()=>{try{const{unsubscribe:p}=await e.transport.subscribe({params:["newPendingTransactions"],onData(m){if(!y)return;const h=m.result;a([h])},onError(m){n==null||n(m)}});u=p,y||u()}catch(p){n==null||n(p)}})(),()=>u()})()}function P_(e){var p,m,h;const{scheme:t,statement:n,...a}=((p=e.match(M_))==null?void 0:p.groups)??{},{chainId:s,expirationTime:i,issuedAt:f,notBefore:d,requestId:b,...y}=((m=e.match($_))==null?void 0:m.groups)??{},u=(h=e.split("Resources:")[1])==null?void 0:h.split(`
67
+ - `).slice(1);return{...a,...y,...s?{chainId:Number(s)}:{},...i?{expirationTime:new Date(i)}:{},...f?{issuedAt:new Date(f)}:{},...d?{notBefore:new Date(d)}:{},...b?{requestId:b}:{},...u?{resources:u}:{},...t?{scheme:t}:{},...n?{statement:n}:{}}}const M_=/^(?:(?<scheme>[a-zA-Z][a-zA-Z0-9+-.]*):\/\/)?(?<domain>[a-zA-Z0-9+-.]*(?::[0-9]{1,5})?) (?:wants you to sign in with your Ethereum account:\n)(?<address>0x[a-fA-F0-9]{40})\n\n(?:(?<statement>.*)\n\n)?/,$_=/(?:URI: (?<uri>.+))\n(?:Version: (?<version>.+))\n(?:Chain ID: (?<chainId>\d+))\n(?:Nonce: (?<nonce>[a-zA-Z0-9]+))\n(?:Issued At: (?<issuedAt>.+))(?:\nExpiration Time: (?<expirationTime>.+))?(?:\nNot Before: (?<notBefore>.+))?(?:\nRequest ID: (?<requestId>.+))?/;function O_(e){const{address:t,domain:n,message:a,nonce:s,scheme:i,time:f=new Date}=e;if(n&&a.domain!==n||s&&a.nonce!==s||i&&a.scheme!==i||a.expirationTime&&f>=a.expirationTime||a.notBefore&&f<a.notBefore)return!1;try{if(!a.address||!ne(a.address,{strict:!1})||t&&!z1(a.address,t))return!1}catch{return!1}return!0}async function R_(e,t){const{address:n,domain:a,message:s,nonce:i,scheme:f,signature:d,time:b=new Date,...y}=t,u=P_(s);if(!u.address||!O_({address:n,domain:a,message:u,nonce:i,scheme:f,time:b}))return!1;const m=v8(s);return yr(e,{address:u.address,hash:m,signature:d,...y})}async function B_(e,{serializedTransaction:t,throwOnReceiptRevert:n,timeout:a}){var d,b,y;const s=await e.request({method:"eth_sendRawTransactionSync",params:a?[t,t0(a)]:[t]},{retryCount:0}),f=(((y=(b=(d=e.chain)==null?void 0:d.formatters)==null?void 0:b.transactionReceipt)==null?void 0:y.format)||Ka)(s);if(f.status==="reverted"&&n)throw new ET({receipt:f});return f}function N_(e){return{call:t=>E5(e,t),createAccessList:t=>uu(e,t),createBlockFilter:()=>$v(e),createContractEventFilter:t=>kd(e,t),createEventFilter:t=>yu(e,t),createPendingTransactionFilter:()=>pu(e),estimateContractGas:t=>fw(e,t),estimateGas:t=>Gi(e,t),getBalance:t=>Ov(e,t),getBlobBaseFee:()=>Rv(e),getBlock:t=>yt(e,t),getBlockNumber:t=>A5(e,t),getBlockTransactionCount:t=>Bv(e,t),getBytecode:t=>sn(e,t),getChainId:()=>Q6(e),getCode:t=>sn(e,t),getContractEvents:t=>xc(e,t),getEip712Domain:t=>Dv(e,t),getEnsAddress:t=>lv(e,t),getEnsAvatar:t=>Cv(e,t),getEnsName:t=>Pv(e,t),getEnsResolver:t=>Mv(e,t),getEnsText:t=>cu(e,t),getFeeHistory:t=>Fv(e,t),estimateFeesPerGas:t=>sc(e,t),getFilterChanges:t=>Za(e,t),getFilterLogs:t=>Uv(e,t),getGasPrice:()=>Bi(e),getLogs:t=>Vi(e,t),getProof:t=>IA(e,t),estimateMaxPriorityFeePerGas:t=>VT(e,t),getStorageAt:t=>CA(e,t),getTransaction:t=>K8(e,t),getTransactionConfirmations:t=>PA(e,t),getTransactionCount:t=>Di(e,t),getTransactionReceipt:t=>sr(e,t),multicall:t=>MA(e,t),prepareTransactionRequest:t=>Hi(e,t),readContract:t=>u0(e,t),sendRawTransaction:t=>au(e,t),sendRawTransactionSync:t=>B_(e,t),simulate:t=>X8(e,t),simulateBlocks:t=>X8(e,t),simulateCalls:t=>UA(e,t),simulateContract:t=>B0(e,t),verifyHash:t=>yr(e,t),verifyMessage:t=>E_(e,t),verifySiweMessage:t=>R_(e,t),verifyTypedData:t=>A_(e,t),uninstallFilter:t=>Ya(e,t),waitForTransactionReceipt:t=>__(e,t),watchBlocks:t=>S_(e,t),watchBlockNumber:t=>Z3(e,t),watchContractEvent:t=>rv(e,t),watchEvent:t=>I_(e,t),watchPendingTransactions:t=>C_(e,t)}}function D_(e){const{key:t="public",name:n="Public Client"}=e;return Qa({...e,key:t,name:n,type:"publicClient"}).extend(N_)}async function k_(e,t){var b;const{account:n=e.account,chainId:a,nonce:s}=t;if(!n)throw new rn({docsPath:"/docs/eip7702/prepareAuthorization"});const i=ae(n),f=(()=>{if(t.executor)return t.executor==="self"?t.executor:ae(t.executor)})(),d={address:t.contractAddress??t.address,chainId:a,nonce:s};return typeof d.chainId>"u"&&(d.chainId=((b=e.chain)==null?void 0:b.id)??await d0(e,Q6,"getChainId")({})),typeof d.nonce>"u"&&(d.nonce=await d0(e,Di,"getTransactionCount")({address:i.address,blockTag:"pending"}),(f==="self"||f!=null&&f.address&&z1(f.address,i.address))&&(d.nonce+=1)),d}function L_({key:e,methods:t,name:n,request:a,retryCount:s=3,retryDelay:i=150,timeout:f,type:d},b){const y=ru();return{config:{key:e,methods:t,name:n,request:a,retryCount:s,retryDelay:i,timeout:f,type:d},request:nx(a,{methods:t,retryCount:s,retryDelay:i,uid:y}),value:b}}class F_ extends G{constructor(){super("No URL was provided to the Transport. Please provide a valid RPC URL to the Transport.",{docsPath:"/docs/clients/intro",name:"UrlRequiredError"})}}function pr(e,t={}){const{batch:n,fetchFn:a,fetchOptions:s,key:i="http",methods:f,name:d="HTTP JSON-RPC",onFetchRequest:b,onFetchResponse:y,retryDelay:u,raw:p}=t;return({chain:m,retryCount:h,timeout:x})=>{const{batchSize:T=1e3,wait:C=0}=typeof n=="object"?n:{},S=t.retryCount??h,H=x??t.timeout??1e4,A=e||(m==null?void 0:m.rpcUrls.default.http[0]);if(!A)throw new F_;const E=yx(A,{fetchFn:a,fetchOptions:s,onRequest:b,onResponse:y,timeout:H});return L_({key:i,methods:f,name:d,async request({method:$,params:L}){const R={method:$,params:L},{schedule:D}=eu({id:A,wait:C,shouldSplitBatch(K){return K.length>T},fn:K=>E.request({body:K}),sort:(K,W)=>K.id-W.id}),q=async K=>n?D(K):[await E.request({body:K})],[{error:e0,result:z}]=await q(R);if(p)return{error:e0,result:z};if(e0)throw new vi({body:R,error:e0,url:A});return z},retryCount:S,retryDelay:u,timeout:H,type:"http"},{fetchOptions:s,url:A})}}const U_=new TextEncoder;Array.from("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/").map((e,t)=>[t,e.charCodeAt(0)]);const lr={...Object.fromEntries(Array.from("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/").map((e,t)=>[e.charCodeAt(0),t])),61:0,45:62,95:63};function Y3(e){const t=e.replace(/=+$/,""),n=t.length,a=new Uint8Array(n+3);U_.encodeInto(t+"===",a);for(let i=0,f=0;i<t.length;i+=4,f+=3){const d=(lr[a[i]]<<18)+(lr[a[i+1]]<<12)+(lr[a[i+2]]<<6)+lr[a[i+3]];a[f]=d>>16,a[f+1]=d>>8&255,a[f+2]=d&255}const s=(n>>2)*3+(n%4&&n%4-1);return new Uint8Array(a.buffer,0,s)}/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const K3=P5(BigInt("0xffffffff00000001000000000000000000000000ffffffffffffffffffffffff")),H_=K3.create(BigInt("-3")),G_=BigInt("0x5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b"),z_=V8({a:H_,b:G_,Fp:K3,n:BigInt("0xffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551"),Gx:BigInt("0x6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296"),Gy:BigInt("0x4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5"),h:BigInt(1),lowS:!1},Fi),X3=P5(BigInt("0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff")),j_=X3.create(BigInt("-3")),V_=BigInt("0xb3312fa7e23ee7e4988e056be3f82d19181d9c6efe8141120314088f5013875ac656398d8a2ed19d2a85c8edd3ec2aef");V8({a:j_,b:V_,Fp:X3,n:BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973"),Gx:BigInt("0xaa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab7"),Gy:BigInt("0x3617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f"),h:BigInt(1),lowS:!1},tw);const J3=P5(BigInt("0x1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff")),q_=J3.create(BigInt("-3")),W_=BigInt("0x0051953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef109e156193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f00");V8({a:q_,b:W_,Fp:J3,n:BigInt("0x01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409"),Gx:BigInt("0x00c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66"),Gy:BigInt("0x011839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650"),h:BigInt(1),lowS:!1,allowedPrivateKeyLengths:[130,131,132]},ew);/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */const Q3=z_;function Z_(e){const t=e[4]===0?5:4,n=t+32,a=e[n+2]===0?n+3:n+2,s=BigInt(He(e.slice(t,n))),i=BigInt(He(e.slice(a)));return{r:s,s:i>Q3.CURVE.n/2n?Q3.CURVE.n-i:i}}Uint8Array.from([105,171,180,181,160,222,75,198,42,42,32,31,141,37,186,233]);function Y_(e){const{credentialId:t,challenge:n,extensions:a,rpId:s=window.location.hostname,userVerification:i="required"}=e;return{publicKey:{...t?{allowCredentials:Array.isArray(t)?t.map(f=>({id:Y3(f),type:"public-key"})):[{id:Y3(t),type:"public-key"}]}:{},challenge:Qi(n),...a&&{extensions:a},rpId:s,userVerification:i}}}async function K_(e){const{getFn:t=window.navigator.credentials.get.bind(window.navigator.credentials),...n}=e,a=Y_(n);try{const s=await t(a);if(!s)throw new e9;const i=s.response,f=String.fromCharCode(...new Uint8Array(i.clientDataJSON)),d=f.indexOf('"challenge"'),b=f.indexOf('"type"'),y=Z_(new Uint8Array(i.signature));return{metadata:{authenticatorData:He(new Uint8Array(i.authenticatorData)),clientDataJSON:f,challengeIndex:d,typeIndex:b,userVerificationRequired:a.publicKey.userVerification==="required"},signature:y,raw:s}}catch(s){throw new e9({cause:s})}}class e9 extends S0{constructor({cause:t}={}){super("Failed to request credential.",{cause:t}),Object.defineProperty(this,"name",{enumerable:!0,configurable:!0,writable:!0,value:"WebAuthnP256.CredentialRequestFailedError"})}}const X_=[{inputs:[{name:"success",type:"bool"},{name:"ret",type:"bytes"}],name:"DelegateAndRevert",type:"error"},{inputs:[{name:"opIndex",type:"uint256"},{name:"reason",type:"string"}],name:"FailedOp",type:"error"},{inputs:[{name:"opIndex",type:"uint256"},{name:"reason",type:"string"},{name:"inner",type:"bytes"}],name:"FailedOpWithRevert",type:"error"},{inputs:[{name:"returnData",type:"bytes"}],name:"PostOpReverted",type:"error"},{inputs:[],name:"ReentrancyGuardReentrantCall",type:"error"},{inputs:[{name:"sender",type:"address"}],name:"SenderAddressResult",type:"error"},{inputs:[{name:"aggregator",type:"address"}],name:"SignatureValidationFailed",type:"error"},{anonymous:!1,inputs:[{indexed:!0,name:"userOpHash",type:"bytes32"},{indexed:!0,name:"sender",type:"address"},{indexed:!1,name:"factory",type:"address"},{indexed:!1,name:"paymaster",type:"address"}],name:"AccountDeployed",type:"event"},{anonymous:!1,inputs:[],name:"BeforeExecution",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"account",type:"address"},{indexed:!1,name:"totalDeposit",type:"uint256"}],name:"Deposited",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"userOpHash",type:"bytes32"},{indexed:!0,name:"sender",type:"address"},{indexed:!1,name:"nonce",type:"uint256"},{indexed:!1,name:"revertReason",type:"bytes"}],name:"PostOpRevertReason",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"aggregator",type:"address"}],name:"SignatureAggregatorChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"account",type:"address"},{indexed:!1,name:"totalStaked",type:"uint256"},{indexed:!1,name:"unstakeDelaySec",type:"uint256"}],name:"StakeLocked",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"account",type:"address"},{indexed:!1,name:"withdrawTime",type:"uint256"}],name:"StakeUnlocked",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"account",type:"address"},{indexed:!1,name:"withdrawAddress",type:"address"},{indexed:!1,name:"amount",type:"uint256"}],name:"StakeWithdrawn",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"userOpHash",type:"bytes32"},{indexed:!0,name:"sender",type:"address"},{indexed:!0,name:"paymaster",type:"address"},{indexed:!1,name:"nonce",type:"uint256"},{indexed:!1,name:"success",type:"bool"},{indexed:!1,name:"actualGasCost",type:"uint256"},{indexed:!1,name:"actualGasUsed",type:"uint256"}],name:"UserOperationEvent",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"userOpHash",type:"bytes32"},{indexed:!0,name:"sender",type:"address"},{indexed:!1,name:"nonce",type:"uint256"}],name:"UserOperationPrefundTooLow",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"userOpHash",type:"bytes32"},{indexed:!0,name:"sender",type:"address"},{indexed:!1,name:"nonce",type:"uint256"},{indexed:!1,name:"revertReason",type:"bytes"}],name:"UserOperationRevertReason",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"account",type:"address"},{indexed:!1,name:"withdrawAddress",type:"address"},{indexed:!1,name:"amount",type:"uint256"}],name:"Withdrawn",type:"event"},{inputs:[{name:"unstakeDelaySec",type:"uint32"}],name:"addStake",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{name:"account",type:"address"}],name:"balanceOf",outputs:[{name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{name:"target",type:"address"},{name:"data",type:"bytes"}],name:"delegateAndRevert",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{name:"account",type:"address"}],name:"depositTo",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{name:"",type:"address"}],name:"deposits",outputs:[{name:"deposit",type:"uint256"},{name:"staked",type:"bool"},{name:"stake",type:"uint112"},{name:"unstakeDelaySec",type:"uint32"},{name:"withdrawTime",type:"uint48"}],stateMutability:"view",type:"function"},{inputs:[{name:"account",type:"address"}],name:"getDepositInfo",outputs:[{components:[{name:"deposit",type:"uint256"},{name:"staked",type:"bool"},{name:"stake",type:"uint112"},{name:"unstakeDelaySec",type:"uint32"},{name:"withdrawTime",type:"uint48"}],name:"info",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[{name:"sender",type:"address"},{name:"key",type:"uint192"}],name:"getNonce",outputs:[{name:"nonce",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{name:"initCode",type:"bytes"}],name:"getSenderAddress",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{name:"sender",type:"address"},{name:"nonce",type:"uint256"},{name:"initCode",type:"bytes"},{name:"callData",type:"bytes"},{name:"accountGasLimits",type:"bytes32"},{name:"preVerificationGas",type:"uint256"},{name:"gasFees",type:"bytes32"},{name:"paymasterAndData",type:"bytes"},{name:"signature",type:"bytes"}],name:"userOp",type:"tuple"}],name:"getUserOpHash",outputs:[{name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{components:[{components:[{name:"sender",type:"address"},{name:"nonce",type:"uint256"},{name:"initCode",type:"bytes"},{name:"callData",type:"bytes"},{name:"accountGasLimits",type:"bytes32"},{name:"preVerificationGas",type:"uint256"},{name:"gasFees",type:"bytes32"},{name:"paymasterAndData",type:"bytes"},{name:"signature",type:"bytes"}],name:"userOps",type:"tuple[]"},{name:"aggregator",type:"address"},{name:"signature",type:"bytes"}],name:"opsPerAggregator",type:"tuple[]"},{name:"beneficiary",type:"address"}],name:"handleAggregatedOps",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{name:"sender",type:"address"},{name:"nonce",type:"uint256"},{name:"initCode",type:"bytes"},{name:"callData",type:"bytes"},{name:"accountGasLimits",type:"bytes32"},{name:"preVerificationGas",type:"uint256"},{name:"gasFees",type:"bytes32"},{name:"paymasterAndData",type:"bytes"},{name:"signature",type:"bytes"}],name:"ops",type:"tuple[]"},{name:"beneficiary",type:"address"}],name:"handleOps",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{name:"key",type:"uint192"}],name:"incrementNonce",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{name:"callData",type:"bytes"},{components:[{components:[{name:"sender",type:"address"},{name:"nonce",type:"uint256"},{name:"verificationGasLimit",type:"uint256"},{name:"callGasLimit",type:"uint256"},{name:"paymasterVerificationGasLimit",type:"uint256"},{name:"paymasterPostOpGasLimit",type:"uint256"},{name:"preVerificationGas",type:"uint256"},{name:"paymaster",type:"address"},{name:"maxFeePerGas",type:"uint256"},{name:"maxPriorityFeePerGas",type:"uint256"}],name:"mUserOp",type:"tuple"},{name:"userOpHash",type:"bytes32"},{name:"prefund",type:"uint256"},{name:"contextOffset",type:"uint256"},{name:"preOpGas",type:"uint256"}],name:"opInfo",type:"tuple"},{name:"context",type:"bytes"}],name:"innerHandleOp",outputs:[{name:"actualGasCost",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{name:"",type:"address"},{name:"",type:"uint192"}],name:"nonceSequenceNumber",outputs:[{name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"unlockStake",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{name:"withdrawAddress",type:"address"}],name:"withdrawStake",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{name:"withdrawAddress",type:"address"},{name:"withdrawAmount",type:"uint256"}],name:"withdrawTo",outputs:[],stateMutability:"nonpayable",type:"function"},{stateMutability:"payable",type:"receive"}];function J_(e){const{authorization:t,factory:n,factoryData:a}=e;if(n==="0x7702"||n==="0x7702000000000000000000000000000000000000"){if(!t)return"0x7702000000000000000000000000000000000000";const s=t.address;return Z0([s,a??"0x"])}return n?Z0([n,a??"0x"]):"0x"}function t9(e){const{callGasLimit:t,callData:n,maxPriorityFeePerGas:a,maxFeePerGas:s,paymaster:i,paymasterData:f,paymasterPostOpGasLimit:d,paymasterVerificationGasLimit:b,sender:y,signature:u="0x",verificationGasLimit:p}=e,m=Z0([ee(t0(p||0n),{size:16}),ee(t0(t||0n),{size:16})]),h=J_(e),x=Z0([ee(t0(a||0n),{size:16}),ee(t0(s||0n),{size:16})]),T=e.nonce??0n,C=i?Z0([i,ee(t0(b||0n),{size:16}),ee(t0(d||0n),{size:16}),f||"0x"]):"0x",S=e.preVerificationGas??0n;return{accountGasLimits:m,callData:n,initCode:h,gasFees:x,nonce:T,paymasterAndData:C,preVerificationGas:S,sender:y,signature:u}}async function Q_(e){const{extend:t,nonceKeyManager:n=dx({source:{get(){return Date.now()},set(){}}}),...a}=e;let s=!1;const i=await e.getAddress();return{...t,...a,address:i,async getFactoryArgs(){return"isDeployed"in this&&await this.isDeployed()?{factory:void 0,factoryData:void 0}:e.getFactoryArgs()},async getNonce(f){const d=(f==null?void 0:f.key)??BigInt(await n.consume({address:i,chainId:e.client.chain.id,client:e.client}));return e.getNonce?await e.getNonce({...f,key:d}):await u0(e.client,{abi:ri(["function getNonce(address, uint192) pure returns (uint256)"]),address:e.entryPoint.address,functionName:"getNonce",args:[i,d]})},async isDeployed(){return s?!0:(s=!!await d0(e.client,sn,"getCode")({address:i}),s)},...e.sign?{async sign(f){const[{factory:d,factoryData:b},y]=await Promise.all([this.getFactoryArgs(),e.sign(f)]);return d&&b?Y8({address:d,data:b,signature:y}):y}}:{},async signMessage(f){const[{factory:d,factoryData:b},y]=await Promise.all([this.getFactoryArgs(),e.signMessage(f)]);return d&&b&&d!=="0x7702"?Y8({address:d,data:b,signature:y}):y},async signTypedData(f){const[{factory:d,factoryData:b},y]=await Promise.all([this.getFactoryArgs(),e.signTypedData(f)]);return d&&b&&d!=="0x7702"?Y8({address:d,data:b,signature:y}):y},type:"smart"}}/*! scure-base - MIT License (c) 2022 Paul Miller (paulmillr.com) */function n9(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"}function eS(e,...t){if(!n9(e))throw new Error("Uint8Array expected");if(t.length>0&&!t.includes(e.length))throw new Error("Uint8Array expected of length "+t+", got length="+e.length)}function a9(e,t){return Array.isArray(t)?t.length===0?!0:e?t.every(n=>typeof n=="string"):t.every(n=>Number.isSafeInteger(n)):!1}function B5(e,t){if(typeof t!="string")throw new Error(`${e}: string expected`);return!0}function h2(e){if(!Number.isSafeInteger(e))throw new Error(`invalid integer: ${e}`)}function g2(e){if(!Array.isArray(e))throw new Error("array expected")}function mr(e,t){if(!a9(!0,t))throw new Error(`${e}: array of strings expected`)}function tS(e,t){if(!a9(!1,t))throw new Error(`${e}: array of numbers expected`)}function nS(...e){const t=i=>i,n=(i,f)=>d=>i(f(d)),a=e.map(i=>i.encode).reduceRight(n,t),s=e.map(i=>i.decode).reduce(n,t);return{encode:a,decode:s}}function aS(e){const t=typeof e=="string"?e.split(""):e,n=t.length;mr("alphabet",t);const a=new Map(t.map((s,i)=>[s,i]));return{encode:s=>(g2(s),s.map(i=>{if(!Number.isSafeInteger(i)||i<0||i>=n)throw new Error(`alphabet.encode: digit index outside alphabet "${i}". Allowed: ${e}`);return t[i]})),decode:s=>(g2(s),s.map(i=>{B5("alphabet.decode",i);const f=a.get(i);if(f===void 0)throw new Error(`Unknown letter: "${i}". Allowed: ${e}`);return f}))}}function rS(e=""){return B5("join",e),{encode:t=>(mr("join.decode",t),t.join(e)),decode:t=>(B5("join.decode",t),t.split(e))}}function sS(e,t="="){return h2(e),B5("padding",t),{encode(n){for(mr("padding.encode",n);n.length*e%8;)n.push(t);return n},decode(n){mr("padding.decode",n);let a=n.length;if(a*e%8)throw new Error("padding: invalid, string should have whole number of bytes");for(;a>0&&n[a-1]===t;a--)if((a-1)*e%8===0)throw new Error("padding: invalid, string has too much padding");return n.slice(0,a)}}}const r9=(e,t)=>t===0?e:r9(t,e%t),hr=(e,t)=>e+(t-r9(e,t)),T2=(()=>{let e=[];for(let t=0;t<40;t++)e.push(2**t);return e})();function s9(e,t,n,a){if(g2(e),t<=0||t>32)throw new Error(`convertRadix2: wrong from=${t}`);if(n<=0||n>32)throw new Error(`convertRadix2: wrong to=${n}`);if(hr(t,n)>32)throw new Error(`convertRadix2: carry overflow from=${t} to=${n} carryBits=${hr(t,n)}`);let s=0,i=0;const f=T2[t],d=T2[n]-1,b=[];for(const y of e){if(h2(y),y>=f)throw new Error(`convertRadix2: invalid data word=${y} from=${t}`);if(s=s<<t|y,i+t>32)throw new Error(`convertRadix2: carry overflow pos=${i} from=${t}`);for(i+=t;i>=n;i-=n)b.push((s>>i-n&d)>>>0);const u=T2[i];if(u===void 0)throw new Error("invalid carry");s&=u-1}if(s=s<<n-i&d,!a&&i>=t)throw new Error("Excess padding");if(!a&&s>0)throw new Error(`Non-zero padding: ${s}`);return a&&i>0&&b.push(s>>>0),b}function iS(e,t=!1){if(h2(e),e<=0||e>32)throw new Error("radix2: bits should be in (0..32]");if(hr(8,e)>32||hr(e,8)>32)throw new Error("radix2: carry overflow");return{encode:n=>{if(!n9(n))throw new Error("radix2.encode input should be Uint8Array");return s9(Array.from(n),8,e,!t)},decode:n=>(tS("radix2.decode",n),Uint8Array.from(s9(n,e,8,t)))}}const oS=typeof Uint8Array.from([]).toBase64=="function"&&typeof Uint8Array.fromBase64=="function",fS=(e,t)=>{B5("base64",e);const n=/^[A-Za-z0-9=+/]+$/,a="base64";if(e.length>0&&!n.test(e))throw new Error("invalid base64");return Uint8Array.fromBase64(e,{alphabet:a,lastChunkHandling:"strict"})},i9=oS?{encode(e){return eS(e),e.toBase64()},decode(e){return fS(e)}}:nS(iS(6),aS("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"),sS(6),rS(""));function bS(e){const{getFn:t,rpId:n}=e,{id:a,publicKey:s}=e.credential;return{id:a,publicKey:s,async sign({hash:i}){const{metadata:f,raw:d,signature:b}=await K_({credentialId:a,getFn:t,challenge:i,rpId:n});return{signature:uA(b),raw:d,webauthn:f}},async signMessage({message:i}){return this.sign({hash:v8(i)})},async signTypedData(i){return this.sign({hash:vu(i)})},type:"webAuthn"}}class w2 extends G{constructor({cause:t}){super("Smart Account is not deployed.",{cause:t,metaMessages:["This could arise when:","- No `factory`/`factoryData` or `initCode` properties are provided for Smart Account deployment.","- An incorrect `sender` address is provided."],name:"AccountNotDeployedError"})}}Object.defineProperty(w2,"message",{enumerable:!0,configurable:!0,writable:!0,value:/aa20/});class yn extends G{constructor({cause:t,data:n,message:a}={}){var i;const s=(i=a==null?void 0:a.replace("execution reverted: ",""))==null?void 0:i.replace("execution reverted","");super(`Execution reverted ${s?`with reason: ${s}`:"for an unknown reason"}.`,{cause:t,name:"ExecutionRevertedError"}),Object.defineProperty(this,"data",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.data=n}}Object.defineProperty(yn,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32521}),Object.defineProperty(yn,"message",{enumerable:!0,configurable:!0,writable:!0,value:/execution reverted/});class v2 extends G{constructor({cause:t}){super("Failed to send funds to beneficiary.",{cause:t,name:"FailedToSendToBeneficiaryError"})}}Object.defineProperty(v2,"message",{enumerable:!0,configurable:!0,writable:!0,value:/aa91/});class x2 extends G{constructor({cause:t}){super("Gas value overflowed.",{cause:t,metaMessages:["This could arise when:","- one of the gas values exceeded 2**120 (uint120)"].filter(Boolean),name:"GasValuesOverflowError"})}}Object.defineProperty(x2,"message",{enumerable:!0,configurable:!0,writable:!0,value:/aa94/});class E2 extends G{constructor({cause:t}){super("The `handleOps` function was called by the Bundler with a gas limit too low.",{cause:t,name:"HandleOpsOutOfGasError"})}}Object.defineProperty(E2,"message",{enumerable:!0,configurable:!0,writable:!0,value:/aa95/});class A2 extends G{constructor({cause:t,factory:n,factoryData:a,initCode:s}){super("Failed to simulate deployment for Smart Account.",{cause:t,metaMessages:["This could arise when:","- Invalid `factory`/`factoryData` or `initCode` properties are present","- Smart Account deployment execution ran out of gas (low `verificationGasLimit` value)",`- Smart Account deployment execution reverted with an error
68
+ `,n&&`factory: ${n}`,a&&`factoryData: ${a}`,s&&`initCode: ${s}`].filter(Boolean),name:"InitCodeFailedError"})}}Object.defineProperty(A2,"message",{enumerable:!0,configurable:!0,writable:!0,value:/aa13/});class _2 extends G{constructor({cause:t,factory:n,factoryData:a,initCode:s}){super("Smart Account initialization implementation did not create an account.",{cause:t,metaMessages:["This could arise when:","- `factory`/`factoryData` or `initCode` properties are invalid",`- Smart Account initialization implementation is incorrect
69
+ `,n&&`factory: ${n}`,a&&`factoryData: ${a}`,s&&`initCode: ${s}`].filter(Boolean),name:"InitCodeMustCreateSenderError"})}}Object.defineProperty(_2,"message",{enumerable:!0,configurable:!0,writable:!0,value:/aa15/});class S2 extends G{constructor({cause:t,factory:n,factoryData:a,initCode:s,sender:i}){super("Smart Account initialization implementation does not return the expected sender.",{cause:t,metaMessages:["This could arise when:",`Smart Account initialization implementation does not return a sender address
70
+ `,n&&`factory: ${n}`,a&&`factoryData: ${a}`,s&&`initCode: ${s}`,i&&`sender: ${i}`].filter(Boolean),name:"InitCodeMustReturnSenderError"})}}Object.defineProperty(S2,"message",{enumerable:!0,configurable:!0,writable:!0,value:/aa14/});class I2 extends G{constructor({cause:t}){super("Smart Account does not have sufficient funds to execute the User Operation.",{cause:t,metaMessages:["This could arise when:","- the Smart Account does not have sufficient funds to cover the required prefund, or","- a Paymaster was not provided"].filter(Boolean),name:"InsufficientPrefundError"})}}Object.defineProperty(I2,"message",{enumerable:!0,configurable:!0,writable:!0,value:/aa21/});class C2 extends G{constructor({cause:t}){super("Bundler attempted to call an invalid function on the EntryPoint.",{cause:t,name:"InternalCallOnlyError"})}}Object.defineProperty(C2,"message",{enumerable:!0,configurable:!0,writable:!0,value:/aa92/});class P2 extends G{constructor({cause:t}){super("Bundler used an invalid aggregator for handling aggregated User Operations.",{cause:t,name:"InvalidAggregatorError"})}}Object.defineProperty(P2,"message",{enumerable:!0,configurable:!0,writable:!0,value:/aa96/});class M2 extends G{constructor({cause:t,nonce:n}){super("Invalid Smart Account nonce used for User Operation.",{cause:t,metaMessages:[n&&`nonce: ${n}`].filter(Boolean),name:"InvalidAccountNonceError"})}}Object.defineProperty(M2,"message",{enumerable:!0,configurable:!0,writable:!0,value:/aa25/});class $2 extends G{constructor({cause:t}){super("Bundler has not set a beneficiary address.",{cause:t,name:"InvalidBeneficiaryError"})}}Object.defineProperty($2,"message",{enumerable:!0,configurable:!0,writable:!0,value:/aa90/});class gr extends G{constructor({cause:t}){super("Invalid fields set on User Operation.",{cause:t,name:"InvalidFieldsError"})}}Object.defineProperty(gr,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32602});class O2 extends G{constructor({cause:t,paymasterAndData:n}){super("Paymaster properties provided are invalid.",{cause:t,metaMessages:["This could arise when:","- the `paymasterAndData` property is of an incorrect length\n",n&&`paymasterAndData: ${n}`].filter(Boolean),name:"InvalidPaymasterAndDataError"})}}Object.defineProperty(O2,"message",{enumerable:!0,configurable:!0,writable:!0,value:/aa93/});class T6 extends G{constructor({cause:t}){super("Paymaster deposit for the User Operation is too low.",{cause:t,metaMessages:["This could arise when:","- the Paymaster has deposited less than the expected amount via the `deposit` function"].filter(Boolean),name:"PaymasterDepositTooLowError"})}}Object.defineProperty(T6,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32508}),Object.defineProperty(T6,"message",{enumerable:!0,configurable:!0,writable:!0,value:/aa31/});class R2 extends G{constructor({cause:t}){super("The `validatePaymasterUserOp` function on the Paymaster reverted.",{cause:t,name:"PaymasterFunctionRevertedError"})}}Object.defineProperty(R2,"message",{enumerable:!0,configurable:!0,writable:!0,value:/aa33/});class B2 extends G{constructor({cause:t}){super("The Paymaster contract has not been deployed.",{cause:t,name:"PaymasterNotDeployedError"})}}Object.defineProperty(B2,"message",{enumerable:!0,configurable:!0,writable:!0,value:/aa30/});class Tr extends G{constructor({cause:t}){super("UserOperation rejected because paymaster (or signature aggregator) is throttled/banned.",{cause:t,name:"PaymasterRateLimitError"})}}Object.defineProperty(Tr,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32504});class wr extends G{constructor({cause:t}){super("UserOperation rejected because paymaster (or signature aggregator) is throttled/banned.",{cause:t,name:"PaymasterStakeTooLowError"})}}Object.defineProperty(wr,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32505});class N2 extends G{constructor({cause:t}){super("Paymaster `postOp` function reverted.",{cause:t,name:"PaymasterPostOpFunctionRevertedError"})}}Object.defineProperty(N2,"message",{enumerable:!0,configurable:!0,writable:!0,value:/aa50/});class D2 extends G{constructor({cause:t,factory:n,factoryData:a,initCode:s}){super("Smart Account has already been deployed.",{cause:t,metaMessages:["Remove the following properties and try again:",n&&"`factory`",a&&"`factoryData`",s&&"`initCode`"].filter(Boolean),name:"SenderAlreadyConstructedError"})}}Object.defineProperty(D2,"message",{enumerable:!0,configurable:!0,writable:!0,value:/aa10/});class vr extends G{constructor({cause:t}){super("UserOperation rejected because account signature check failed (or paymaster signature, if the paymaster uses its data as signature).",{cause:t,name:"SignatureCheckFailedError"})}}Object.defineProperty(vr,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32507});class k2 extends G{constructor({cause:t}){super("The `validateUserOp` function on the Smart Account reverted.",{cause:t,name:"SmartAccountFunctionRevertedError"})}}Object.defineProperty(k2,"message",{enumerable:!0,configurable:!0,writable:!0,value:/aa23/});class xr extends G{constructor({cause:t}){super("UserOperation rejected because account specified unsupported signature aggregator.",{cause:t,name:"UnsupportedSignatureAggregatorError"})}}Object.defineProperty(xr,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32506});class L2 extends G{constructor({cause:t}){super("User Operation expired.",{cause:t,metaMessages:["This could arise when:","- the `validAfter` or `validUntil` values returned from `validateUserOp` on the Smart Account are not satisfied"].filter(Boolean),name:"UserOperationExpiredError"})}}Object.defineProperty(L2,"message",{enumerable:!0,configurable:!0,writable:!0,value:/aa22/});class F2 extends G{constructor({cause:t}){super("Paymaster for User Operation expired.",{cause:t,metaMessages:["This could arise when:","- the `validAfter` or `validUntil` values returned from `validatePaymasterUserOp` on the Paymaster are not satisfied"].filter(Boolean),name:"UserOperationPaymasterExpiredError"})}}Object.defineProperty(F2,"message",{enumerable:!0,configurable:!0,writable:!0,value:/aa32/});class U2 extends G{constructor({cause:t}){super("Signature provided for the User Operation is invalid.",{cause:t,metaMessages:["This could arise when:","- the `signature` for the User Operation is incorrectly computed, and unable to be verified by the Smart Account"].filter(Boolean),name:"UserOperationSignatureError"})}}Object.defineProperty(U2,"message",{enumerable:!0,configurable:!0,writable:!0,value:/aa24/});class H2 extends G{constructor({cause:t}){super("Signature provided for the User Operation is invalid.",{cause:t,metaMessages:["This could arise when:","- the `signature` for the User Operation is incorrectly computed, and unable to be verified by the Paymaster"].filter(Boolean),name:"UserOperationPaymasterSignatureError"})}}Object.defineProperty(H2,"message",{enumerable:!0,configurable:!0,writable:!0,value:/aa34/});class Er extends G{constructor({cause:t}){super("User Operation rejected by EntryPoint's `simulateValidation` during account creation or validation.",{cause:t,name:"UserOperationRejectedByEntryPointError"})}}Object.defineProperty(Er,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32500});class Ar extends G{constructor({cause:t}){super("User Operation rejected by Paymaster's `validatePaymasterUserOp`.",{cause:t,name:"UserOperationRejectedByPaymasterError"})}}Object.defineProperty(Ar,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32501});class _r extends G{constructor({cause:t}){super("User Operation rejected with op code validation error.",{cause:t,name:"UserOperationRejectedByOpCodeError"})}}Object.defineProperty(_r,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32502});class Sr extends G{constructor({cause:t}){super("UserOperation out of time-range: either wallet or paymaster returned a time-range, and it is already expired (or will expire soon).",{cause:t,name:"UserOperationOutOfTimeRangeError"})}}Object.defineProperty(Sr,"code",{enumerable:!0,configurable:!0,writable:!0,value:-32503});class dS extends G{constructor({cause:t}){super(`An error occurred while executing user operation: ${t==null?void 0:t.shortMessage}`,{cause:t,name:"UnknownBundlerError"})}}class G2 extends G{constructor({cause:t}){super("User Operation verification gas limit exceeded.",{cause:t,metaMessages:["This could arise when:","- the gas used for verification exceeded the `verificationGasLimit`"].filter(Boolean),name:"VerificationGasLimitExceededError"})}}Object.defineProperty(G2,"message",{enumerable:!0,configurable:!0,writable:!0,value:/aa40/});class z2 extends G{constructor({cause:t}){super("User Operation verification gas limit is too low.",{cause:t,metaMessages:["This could arise when:","- the `verificationGasLimit` is too low to verify the User Operation"].filter(Boolean),name:"VerificationGasLimitTooLowError"})}}Object.defineProperty(z2,"message",{enumerable:!0,configurable:!0,writable:!0,value:/aa41/});class cS extends G{constructor(t,{callData:n,callGasLimit:a,docsPath:s,factory:i,factoryData:f,initCode:d,maxFeePerGas:b,maxPriorityFeePerGas:y,nonce:u,paymaster:p,paymasterAndData:m,paymasterData:h,paymasterPostOpGasLimit:x,paymasterVerificationGasLimit:T,preVerificationGas:C,sender:S,signature:H,verificationGasLimit:A}){const E=Z6({callData:n,callGasLimit:a,factory:i,factoryData:f,initCode:d,maxFeePerGas:typeof b<"u"&&`${xe(b)} gwei`,maxPriorityFeePerGas:typeof y<"u"&&`${xe(y)} gwei`,nonce:u,paymaster:p,paymasterAndData:m,paymasterData:h,paymasterPostOpGasLimit:x,paymasterVerificationGasLimit:T,preVerificationGas:C,sender:S,signature:H,verificationGasLimit:A});super(t.shortMessage,{cause:t,docsPath:s,metaMessages:[...t.metaMessages?[...t.metaMessages," "]:[],"Request Arguments:",E].filter(Boolean),name:"UserOperationExecutionError"}),Object.defineProperty(this,"cause",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.cause=t}}class uS extends G{constructor({hash:t}){super(`User Operation receipt with hash "${t}" could not be found. The User Operation may not have been processed yet.`,{name:"UserOperationReceiptNotFoundError"})}}class yS extends G{constructor({hash:t}){super(`User Operation with hash "${t}" could not be found.`,{name:"UserOperationNotFoundError"})}}class o9 extends G{constructor({hash:t}){super(`Timed out while waiting for User Operation with hash "${t}" to be confirmed.`,{name:"WaitForUserOperationReceiptTimeoutError"})}}const pS=[yn,gr,T6,Tr,wr,vr,xr,Sr,Er,Ar,_r];function lS(e,t){const n=(e.details||"").toLowerCase();if(w2.message.test(n))return new w2({cause:e});if(v2.message.test(n))return new v2({cause:e});if(x2.message.test(n))return new x2({cause:e});if(E2.message.test(n))return new E2({cause:e});if(A2.message.test(n))return new A2({cause:e,factory:t.factory,factoryData:t.factoryData,initCode:t.initCode});if(_2.message.test(n))return new _2({cause:e,factory:t.factory,factoryData:t.factoryData,initCode:t.initCode});if(S2.message.test(n))return new S2({cause:e,factory:t.factory,factoryData:t.factoryData,initCode:t.initCode,sender:t.sender});if(I2.message.test(n))return new I2({cause:e});if(C2.message.test(n))return new C2({cause:e});if(M2.message.test(n))return new M2({cause:e,nonce:t.nonce});if(P2.message.test(n))return new P2({cause:e});if($2.message.test(n))return new $2({cause:e});if(O2.message.test(n))return new O2({cause:e});if(T6.message.test(n))return new T6({cause:e});if(R2.message.test(n))return new R2({cause:e});if(B2.message.test(n))return new B2({cause:e});if(N2.message.test(n))return new N2({cause:e});if(k2.message.test(n))return new k2({cause:e});if(D2.message.test(n))return new D2({cause:e,factory:t.factory,factoryData:t.factoryData,initCode:t.initCode});if(L2.message.test(n))return new L2({cause:e});if(F2.message.test(n))return new F2({cause:e});if(H2.message.test(n))return new H2({cause:e});if(U2.message.test(n))return new U2({cause:e});if(G2.message.test(n))return new G2({cause:e});if(z2.message.test(n))return new z2({cause:e});const a=e.walk(s=>pS.some(i=>i.code===s.code));if(a){if(a.code===yn.code)return new yn({cause:e,data:a.data,message:a.details});if(a.code===gr.code)return new gr({cause:e});if(a.code===T6.code)return new T6({cause:e});if(a.code===Tr.code)return new Tr({cause:e});if(a.code===wr.code)return new wr({cause:e});if(a.code===vr.code)return new vr({cause:e});if(a.code===xr.code)return new xr({cause:e});if(a.code===Sr.code)return new Sr({cause:e});if(a.code===Er.code)return new Er({cause:e});if(a.code===Ar.code)return new Ar({cause:e});if(a.code===_r.code)return new _r({cause:e})}return new dS({cause:e})}function f9(e,{calls:t,docsPath:n,...a}){const s=(()=>{const i=lS(e,a);if(t&&i instanceof yn){const f=mS(i),d=t==null?void 0:t.filter(b=>b.abi);if(f&&d.length>0)return hS({calls:d,revertData:f})}return i})();return new cS(s,{docsPath:n,...a})}function mS(e){let t;return e.walk(n=>{var s,i,f,d;const a=n;if(typeof a.data=="string"||typeof((s=a.data)==null?void 0:s.revertData)=="string"||!(a instanceof G)&&typeof a.message=="string"){const b=(d=(f=((i=a.data)==null?void 0:i.revertData)||a.data||a.message).match)==null?void 0:d.call(f,/(0x[A-Za-z0-9]*)/);if(b)return t=b[1],!0}return!1}),t}function hS(e){const{calls:t,revertData:n}=e,{abi:a,functionName:s,args:i,to:f}=(()=>{const b=t==null?void 0:t.filter(u=>!!u.abi);if(b.length===1)return b[0];const y=b.filter(u=>{try{return!!gi({abi:u.abi,data:n})}catch{return!1}});return y.length===1?y[0]:{abi:[],functionName:b.reduce((u,p)=>`${u?`${u} | `:""}${p.functionName}`,""),args:void 0,to:void 0}})(),d=n==="0x"?new Yd({functionName:s}):new Oa({abi:a,data:n,functionName:s});return new wi(d,{abi:a,args:i,contractAddress:f,functionName:s})}function gS(e){const t={};return e.callGasLimit&&(t.callGasLimit=BigInt(e.callGasLimit)),e.preVerificationGas&&(t.preVerificationGas=BigInt(e.preVerificationGas)),e.verificationGasLimit&&(t.verificationGasLimit=BigInt(e.verificationGasLimit)),e.paymasterPostOpGasLimit&&(t.paymasterPostOpGasLimit=BigInt(e.paymasterPostOpGasLimit)),e.paymasterVerificationGasLimit&&(t.paymasterVerificationGasLimit=BigInt(e.paymasterVerificationGasLimit)),t}function Ir(e){const t={};return typeof e.callData<"u"&&(t.callData=e.callData),typeof e.callGasLimit<"u"&&(t.callGasLimit=t0(e.callGasLimit)),typeof e.factory<"u"&&(t.factory=e.factory),typeof e.factoryData<"u"&&(t.factoryData=e.factoryData),typeof e.initCode<"u"&&(t.initCode=e.initCode),typeof e.maxFeePerGas<"u"&&(t.maxFeePerGas=t0(e.maxFeePerGas)),typeof e.maxPriorityFeePerGas<"u"&&(t.maxPriorityFeePerGas=t0(e.maxPriorityFeePerGas)),typeof e.nonce<"u"&&(t.nonce=t0(e.nonce)),typeof e.paymaster<"u"&&(t.paymaster=e.paymaster),typeof e.paymasterAndData<"u"&&(t.paymasterAndData=e.paymasterAndData||"0x"),typeof e.paymasterData<"u"&&(t.paymasterData=e.paymasterData),typeof e.paymasterPostOpGasLimit<"u"&&(t.paymasterPostOpGasLimit=t0(e.paymasterPostOpGasLimit)),typeof e.paymasterVerificationGasLimit<"u"&&(t.paymasterVerificationGasLimit=t0(e.paymasterVerificationGasLimit)),typeof e.preVerificationGas<"u"&&(t.preVerificationGas=t0(e.preVerificationGas)),typeof e.sender<"u"&&(t.sender=e.sender),typeof e.signature<"u"&&(t.signature=e.signature),typeof e.verificationGasLimit<"u"&&(t.verificationGasLimit=t0(e.verificationGasLimit)),typeof e.authorization<"u"&&(t.eip7702Auth=TS(e.authorization)),t}function TS(e){return{address:e.address,chainId:t0(e.chainId),nonce:t0(e.nonce),r:e.r?t0(BigInt(e.r),{size:32}):ee("0x",{size:32}),s:e.s?t0(BigInt(e.s),{size:32}):ee("0x",{size:32}),yParity:e.yParity?t0(e.yParity,{size:1}):ee("0x",{size:32})}}async function b9(e,t){const{chainId:n,entryPointAddress:a,context:s,...i}=t,f=Ir(i),{paymasterPostOpGasLimit:d,paymasterVerificationGasLimit:b,...y}=await e.request({method:"pm_getPaymasterData",params:[{...f,callGasLimit:f.callGasLimit??"0x0",verificationGasLimit:f.verificationGasLimit??"0x0",preVerificationGas:f.preVerificationGas??"0x0"},a,t0(n),s]});return{...y,...d&&{paymasterPostOpGasLimit:U0(d)},...b&&{paymasterVerificationGasLimit:U0(b)}}}async function d9(e,t){const{chainId:n,entryPointAddress:a,context:s,...i}=t,f=Ir(i),{paymasterPostOpGasLimit:d,paymasterVerificationGasLimit:b,...y}=await e.request({method:"pm_getPaymasterStubData",params:[{...f,callGasLimit:f.callGasLimit??"0x0",verificationGasLimit:f.verificationGasLimit??"0x0",preVerificationGas:f.preVerificationGas??"0x0"},a,t0(n),s]});return{...y,...d&&{paymasterPostOpGasLimit:U0(d)},...b&&{paymasterVerificationGasLimit:U0(b)}}}const wS=["factory","fees","gas","paymaster","nonce","signature","authorization"];async function j2(e,t){var L;const n=t,{account:a=e.account,parameters:s=wS,stateOverride:i}=n;if(!a)throw new rn;const f=ae(a),d=e,b=n.paymaster??(d==null?void 0:d.paymaster),y=typeof b=="string"?b:void 0,{getPaymasterStubData:u,getPaymasterData:p}=(()=>{if(b===!0)return{getPaymasterStubData:R=>d0(d,d9,"getPaymasterStubData")(R),getPaymasterData:R=>d0(d,b9,"getPaymasterData")(R)};if(typeof b=="object"){const{getPaymasterStubData:R,getPaymasterData:D}=b;return{getPaymasterStubData:D&&R?R:D,getPaymasterData:D&&R?D:void 0}}return{getPaymasterStubData:void 0,getPaymasterData:void 0}})(),m=n.paymasterContext?n.paymasterContext:d==null?void 0:d.paymasterContext;let h={...n,paymaster:y,sender:f.address};const[x,T,C,S,H]=await Promise.all([(async()=>n.calls?f.encodeCalls(n.calls.map(R=>{const D=R;return D.abi?{data:T0(D),to:D.to,value:D.value}:D})):n.callData)(),(async()=>{if(!s.includes("factory"))return;if(n.initCode)return{initCode:n.initCode};if(n.factory&&n.factoryData)return{factory:n.factory,factoryData:n.factoryData};const{factory:R,factoryData:D}=await f.getFactoryArgs();return f.entryPoint.version==="0.6"?{initCode:R&&D?Z0([R,D]):void 0}:{factory:R,factoryData:D}})(),(async()=>{var R;if(s.includes("fees")){if(typeof n.maxFeePerGas=="bigint"&&typeof n.maxPriorityFeePerGas=="bigint")return h;if((R=d==null?void 0:d.userOperation)!=null&&R.estimateFeesPerGas){const D=await d.userOperation.estimateFeesPerGas({account:f,bundlerClient:d,userOperation:h});return{...h,...D}}try{const D=d.client??e,q=await d0(D,sc,"estimateFeesPerGas")({chain:D.chain,type:"eip1559"});return{maxFeePerGas:typeof n.maxFeePerGas=="bigint"?n.maxFeePerGas:BigInt(2n*q.maxFeePerGas),maxPriorityFeePerGas:typeof n.maxPriorityFeePerGas=="bigint"?n.maxPriorityFeePerGas:BigInt(2n*q.maxPriorityFeePerGas)}}catch{return}}})(),(async()=>{if(s.includes("nonce"))return typeof n.nonce=="bigint"?n.nonce:f.getNonce()})(),(async()=>{if(s.includes("authorization")){if(typeof n.authorization=="object")return n.authorization;if(f.authorization&&!await f.isDeployed())return{...await k_(f.client,f.authorization),r:"0xfffffffffffffffffffffffffffffff000000000000000000000000000000000",s:"0x7aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",yParity:1}}})()]);typeof x<"u"&&(h.callData=x),typeof T<"u"&&(h={...h,...T}),typeof C<"u"&&(h={...h,...C}),typeof S<"u"&&(h.nonce=S),typeof H<"u"&&(h.authorization=H),s.includes("signature")&&(typeof n.signature<"u"?h.signature=n.signature:h.signature=await f.getStubSignature(h)),f.entryPoint.version==="0.6"&&!h.initCode&&(h.initCode="0x");let A;async function E(){return A||(e.chain?e.chain.id:(A=await d0(e,Q6,"getChainId")({}),A))}let $=!1;if(s.includes("paymaster")&&u&&!y&&!n.paymasterAndData){const{isFinal:R=!1,sponsor:D,...q}=await u({chainId:await E(),entryPointAddress:f.entryPoint.address,context:m,...h});$=R,h={...h,...q}}if(f.entryPoint.version==="0.6"&&!h.paymasterAndData&&(h.paymasterAndData="0x"),s.includes("gas")){if((L=f.userOperation)!=null&&L.estimateGas){const R=await f.userOperation.estimateGas(h);h={...h,...R}}if(typeof h.callGasLimit>"u"||typeof h.preVerificationGas>"u"||typeof h.verificationGasLimit>"u"||h.paymaster&&typeof h.paymasterPostOpGasLimit>"u"||h.paymaster&&typeof h.paymasterVerificationGasLimit>"u"){const R=await d0(d,c9,"estimateUserOperationGas")({account:f,callGasLimit:0n,preVerificationGas:0n,verificationGasLimit:0n,stateOverride:i,...h.paymaster?{paymasterPostOpGasLimit:0n,paymasterVerificationGasLimit:0n}:{},...h});h={...h,callGasLimit:h.callGasLimit??R.callGasLimit,preVerificationGas:h.preVerificationGas??R.preVerificationGas,verificationGasLimit:h.verificationGasLimit??R.verificationGasLimit,paymasterPostOpGasLimit:h.paymasterPostOpGasLimit??R.paymasterPostOpGasLimit,paymasterVerificationGasLimit:h.paymasterVerificationGasLimit??R.paymasterVerificationGasLimit}}}if(s.includes("paymaster")&&p&&!y&&!n.paymasterAndData&&!$){const R=await p({chainId:await E(),entryPointAddress:f.entryPoint.address,context:m,...h});h={...h,...R}}return delete h.calls,delete h.parameters,delete h.paymasterContext,typeof h.paymaster!="string"&&delete h.paymaster,h}async function c9(e,t){var b;const{account:n=e.account,entryPointAddress:a,stateOverride:s}=t;if(!n&&!t.sender)throw new rn;const i=n?ae(n):void 0,f=Da(s),d=i?await d0(e,j2,"prepareUserOperation")({...t,parameters:["authorization","factory","nonce","paymaster","signature"]}):t;try{const y=[Ir(d),a??((b=i==null?void 0:i.entryPoint)==null?void 0:b.address)],u=await e.request({method:"eth_estimateUserOperationGas",params:f?[...y,f]:[...y]});return gS(u)}catch(y){const u=t.calls;throw f9(y,{...d,...u?{calls:u}:{}})}}function vS(e){return e.request({method:"eth_supportedEntryPoints"})}function xS(e){const t={...e};return e.callGasLimit&&(t.callGasLimit=BigInt(e.callGasLimit)),e.maxFeePerGas&&(t.maxFeePerGas=BigInt(e.maxFeePerGas)),e.maxPriorityFeePerGas&&(t.maxPriorityFeePerGas=BigInt(e.maxPriorityFeePerGas)),e.nonce&&(t.nonce=BigInt(e.nonce)),e.paymasterPostOpGasLimit&&(t.paymasterPostOpGasLimit=BigInt(e.paymasterPostOpGasLimit)),e.paymasterVerificationGasLimit&&(t.paymasterVerificationGasLimit=BigInt(e.paymasterVerificationGasLimit)),e.preVerificationGas&&(t.preVerificationGas=BigInt(e.preVerificationGas)),e.verificationGasLimit&&(t.verificationGasLimit=BigInt(e.verificationGasLimit)),t}async function ES(e,{hash:t}){const n=await e.request({method:"eth_getUserOperationByHash",params:[t]},{dedupe:!0});if(!n)throw new yS({hash:t});const{blockHash:a,blockNumber:s,entryPoint:i,transactionHash:f,userOperation:d}=n;return{blockHash:a,blockNumber:BigInt(s),entryPoint:i,transactionHash:f,userOperation:xS(d)}}function AS(e){const t={...e};return e.actualGasCost&&(t.actualGasCost=BigInt(e.actualGasCost)),e.actualGasUsed&&(t.actualGasUsed=BigInt(e.actualGasUsed)),e.logs&&(t.logs=e.logs.map(n=>qt(n))),e.receipt&&(t.receipt=Ka(t.receipt)),t}async function u9(e,{hash:t}){const n=await e.request({method:"eth_getUserOperationReceipt",params:[t]},{dedupe:!0});if(!n)throw new uS({hash:t});return AS(n)}async function _S(e,t){var b,y;const{account:n=e.account,entryPointAddress:a}=t;if(!n&&!t.sender)throw new rn;const s=n?ae(n):void 0,i=s?await d0(e,j2,"prepareUserOperation")(t):t,f=t.signature||await((b=s==null?void 0:s.signUserOperation)==null?void 0:b.call(s,i)),d=Ir({...i,signature:f});try{return await e.request({method:"eth_sendUserOperation",params:[d,a??((y=s==null?void 0:s.entryPoint)==null?void 0:y.address)]},{retryCount:0})}catch(u){const p=t.calls;throw f9(u,{...i,...p?{calls:p}:{},signature:f})}}function SS(e,t){const{hash:n,pollingInterval:a=e.pollingInterval,retryCount:s,timeout:i=12e4}=t;let f=0;const d=re(["waitForUserOperationReceipt",e.uid,n]);return new Promise((b,y)=>{const u=u1(d,{resolve:b,reject:y},p=>{const m=T=>{x(),T(),u()},h=i?setTimeout(()=>m(()=>p.reject(new o9({hash:n}))),i):void 0,x=an(async()=>{s&&f>=s&&(clearTimeout(h),m(()=>p.reject(new o9({hash:n}))));try{const T=await d0(e,u9,"getUserOperationReceipt")({hash:n});m(()=>p.resolve(T))}catch(T){const C=T;C.name!=="UserOperationReceiptNotFoundError"&&m(()=>p.reject(C))}finally{clearTimeout(h)}f++},{emitOnBegin:!0,interval:a});return x})})}function y9(e){return{estimateUserOperationGas:t=>c9(e,t),getChainId:()=>Q6(e),getSupportedEntryPoints:()=>vS(e),getUserOperation:t=>ES(e,t),getUserOperationReceipt:t=>u9(e,t),prepareUserOperation:t=>j2(e,t),sendUserOperation:t=>_S(e,t),waitForUserOperationReceipt:t=>SS(e,t)}}function IS(e){const{client:t,key:n="bundler",name:a="Bundler Client",paymaster:s,paymasterContext:i,transport:f,userOperation:d}=e;return Object.assign(Qa({...e,chain:e.chain??(t==null?void 0:t.chain),key:n,name:a,transport:f,type:"bundlerClient"}),{client:t,paymaster:s,paymasterContext:i,userOperation:d}).extend(y9)}function p9(e){return{getPaymasterData:t=>b9(e,t),getPaymasterStubData:t=>d9(e,t)}}function CS(e){const{key:t="bundler",name:n="Bundler Client",transport:a}=e;return Qa({...e,key:t,name:n,transport:a,type:"PaymasterClient"}).extend(p9)}const PS="0x0000000071727De22E5E9d8BAf0edAc6f37da032",l9=async(e,t)=>{var s,i;const n=((s=t.chain)==null?void 0:s.id)??((i=e.chain)==null?void 0:i.id);if(!n)throw new r8;return(await e.request({method:"pimlico_getTokenQuotes",params:[{tokens:t.tokens},t.entryPointAddress,t0(n)]})).quotes.map(f=>({...f,balanceSlot:f.balanceSlot?U0(f.balanceSlot):void 0,allowanceSlot:f.allowanceSlot?U0(f.allowanceSlot):void 0,postOpGas:U0(f.postOpGas),exchangeRate:U0(f.exchangeRate),exchangeRateNativeToUsd:U0(f.exchangeRateNativeToUsd)}))},MS=async e=>{const t=await e.request({method:"pimlico_getUserOperationGasPrice",params:[]});return{slow:{maxFeePerGas:BigInt(t.slow.maxFeePerGas),maxPriorityFeePerGas:BigInt(t.slow.maxPriorityFeePerGas)},standard:{maxFeePerGas:BigInt(t.standard.maxFeePerGas),maxPriorityFeePerGas:BigInt(t.standard.maxPriorityFeePerGas)},fast:{maxFeePerGas:BigInt(t.fast.maxFeePerGas),maxPriorityFeePerGas:BigInt(t.fast.maxPriorityFeePerGas)}}},$S=async(e,{hash:t})=>e.request({method:"pimlico_getUserOperationStatus",params:[t]}),OS=async(e,t)=>{const{compressedUserOperation:n,inflatorAddress:a,entryPointAddress:s}=t;return e.request({method:"pimlico_sendCompressedUserOperation",params:[n,a,s]})};function N5(e){if(typeof e!="function")return e==null||typeof e=="string"||typeof e=="boolean"?e:typeof e=="bigint"?se(e):e._isBigNumber!=null||typeof e!="object"?se(e).replace(/^0x0/,"0x"):Array.isArray(e)?e.map(t=>N5(t)):Object.keys(e).reduce((t,n)=>(t[n]=N5(e[n]),t),{})}const RS=async(e,t)=>{const{sponsorshipPolicyId:n,paymasterContext:a,userOperation:s,entryPoint:i}=t,f=n===void 0?a:{...a??{},sponsorshipPolicyId:n},d=await e.request({method:"pm_sponsorUserOperation",params:f?[N5(s),i.address,f]:[N5(s),i.address]});if(i.version==="0.6"){const y=d;return{paymasterAndData:y.paymasterAndData,preVerificationGas:BigInt(y.preVerificationGas),verificationGasLimit:BigInt(y.verificationGasLimit),callGasLimit:BigInt(y.callGasLimit)}}const b=d;return{callGasLimit:BigInt(b.callGasLimit),verificationGasLimit:BigInt(b.verificationGasLimit),preVerificationGas:BigInt(b.preVerificationGas),paymaster:b.paymaster,paymasterVerificationGasLimit:BigInt(b.paymasterVerificationGasLimit),paymasterPostOpGasLimit:BigInt(b.paymasterPostOpGasLimit),paymasterData:b.paymasterData}},BS=async(e,t)=>await e.request({method:"pm_validateSponsorshipPolicies",params:[N5(t.userOperation),t.entryPointAddress,t.sponsorshipPolicyIds]}),NS=({userOperation:e,entryPointVersion:t})=>{var s;if(t==="0.6"){const i=e,f=(((s=i.paymasterAndData)==null?void 0:s.length)??0)>2?BigInt(3):BigInt(1),d=i.callGasLimit+i.verificationGasLimit*f+i.preVerificationGas;return BigInt(d)*BigInt(i.maxFeePerGas)}const n=e;return(n.verificationGasLimit+n.callGasLimit+(n.paymasterVerificationGasLimit||0n)+(n.paymasterPostOpGasLimit||0n)+n.preVerificationGas)*n.maxFeePerGas},DS=async(e,t)=>{const n=t.chain??e.chain;if(!n)throw new r8;const{entryPoint:a,userOperation:s,token:i}=t,f=await d0(e,l9,"getTokenQuotes")({tokens:[i],entryPointAddress:a.address,chain:n}),d=f[0].postOpGas,b=f[0].exchangeRate,y=f[0].exchangeRateNativeToUsd,p=NS({userOperation:s,entryPointVersion:a.version})+d*s.maxFeePerGas,m=p*b/BigInt(1e18),h=p*y/10n**18n;return{costInToken:m,costInUsd:h}},kS=({entryPoint:e})=>t=>({getUserOperationGasPrice:async()=>MS(t),getUserOperationStatus:async n=>$S(t,n),sendCompressedUserOperation:async n=>OS(t,{...n,entryPointAddress:e.address}),sponsorUserOperation:async n=>RS(t,{...n,entryPoint:e}),validateSponsorshipPolicies:async n=>BS(t,{...n,entryPointAddress:e.address}),getTokenQuotes:async n=>l9(t,{...n,chain:n.chain,entryPointAddress:e.address}),estimateErc20PaymasterCost:async n=>DS(t,{...n,entryPoint:e,chain:n.chain})});function LS(e){const{key:t="public",name:n="Pimlico Bundler Client",entryPoint:a}=e;return Qa({...e,key:t,name:n,type:"pimlicoClient"}).extend(y9).extend(p9).extend(kS({entryPoint:{address:(a==null?void 0:a.address)??PS,version:(a==null?void 0:a.version)??"0.7"}}))}const FS={gasPriceOracle:{address:"0x420000000000000000000000000000000000000F"},l1Block:{address:"0x4200000000000000000000000000000000000015"},l2CrossDomainMessenger:{address:"0x4200000000000000000000000000000000000007"},l2Erc721Bridge:{address:"0x4200000000000000000000000000000000000014"},l2StandardBridge:{address:"0x4200000000000000000000000000000000000010"},l2ToL1MessagePasser:{address:"0x4200000000000000000000000000000000000016"}},US={block:jT({format(e){var n;return{transactions:(n=e.transactions)==null?void 0:n.map(a=>{if(typeof a=="string")return a;const s=La(a);return s.typeHex==="0x7e"&&(s.isSystemTx=a.isSystemTx,s.mint=a.mint?U0(a.mint):void 0,s.sourceHash=a.sourceHash,s.type="deposit"),s}),stateRoot:e.stateRoot}}}),transaction:GT({format(e){const t={};return e.type==="0x7e"&&(t.isSystemTx=e.isSystemTx,t.mint=e.mint?U0(e.mint):void 0,t.sourceHash=e.sourceHash,t.type="deposit"),t}}),transactionReceipt:bv({format(e){return{l1GasPrice:e.l1GasPrice?U0(e.l1GasPrice):null,l1GasUsed:e.l1GasUsed?U0(e.l1GasUsed):null,l1Fee:e.l1Fee?U0(e.l1Fee):null,l1FeeScalar:e.l1FeeScalar?Number(e.l1FeeScalar):null}}})};function HS(e,t){return jS(e)?zS(e):Wv(e,t)}const GS={transaction:HS};function zS(e){VS(e);const{sourceHash:t,data:n,from:a,gas:s,isSystemTx:i,mint:f,to:d,value:b}=e,y=[t,a,d??"0x",f?se(f):"0x",b?se(b):"0x",s?se(s):"0x",i?"0x1":"0x",n??"0x"];return Fe(["0x7e",L1(y)])}function jS(e){return e.type==="deposit"||typeof e.sourceHash<"u"}function VS(e){const{from:t,to:n}=e;if(t&&!ne(t))throw new ve({address:t});if(n&&!ne(n))throw new ve({address:n})}const m9={blockTime:2e3,contracts:FS,formatters:US,serializers:GS},D5=11155111,V2=Tu({...m9,id:84532,network:"base-sepolia",name:"Base Sepolia",nativeCurrency:{name:"Sepolia Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://sepolia.base.org"]}},blockExplorers:{default:{name:"Basescan",url:"https://sepolia.basescan.org",apiUrl:"https://api-sepolia.basescan.org/api"}},contracts:{...m9.contracts,disputeGameFactory:{[D5]:{address:"0xd6E6dBf4F7EA0ac412fD8b65ED297e64BB7a06E1"}},l2OutputOracle:{[D5]:{address:"0x84457ca9D0163FbC4bbfe4Dfbb20ba46e48DF254"}},portal:{[D5]:{address:"0x49f53e41452c74589e85ca1677426ba426459e85",blockCreated:4446677}},l1StandardBridge:{[D5]:{address:"0xfd0Bf71F60660E2f608ed56e1659C450eB113120",blockCreated:4446677}},multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:1059647}},testnet:!0,sourceId:D5});({...V2});const qS=D_({chain:V2,transport:pr(V2.rpcUrls.default.http[0])}),h9=CS({transport:pr("https://api.pimlico.io/v2/84532/rpc?apikey=pim_NXnPReaRmSZSZ9BfeiEshB")}),g9=IS({paymaster:h9,transport:pr("https://api.pimlico.io/v2/84532/rpc?apikey=pim_NXnPReaRmSZSZ9BfeiEshB")}),WS=LS({transport:pr("https://api.pimlico.io/v2/84532/rpc?apikey=pim_NXnPReaRmSZSZ9BfeiEshB")});class pn extends TypeError{constructor(t,n){let a;const{message:s,explanation:i,...f}=t,{path:d}=t,b=d.length===0?s:`At path: ${d.join(".")} -- ${s}`;super(i??b),i!=null&&(this.cause=b),Object.assign(this,f),this.name=this.constructor.name,this.failures=()=>a??(a=[t,...n()])}}function ZS(e){return tt(e)&&typeof e[Symbol.iterator]=="function"}function tt(e){return typeof e=="object"&&e!==null}function T9(e){if(Object.prototype.toString.call(e)!=="[object Object]")return!1;const t=Object.getPrototypeOf(e);return t===null||t===Object.prototype}function ie(e){return typeof e=="symbol"?e.toString():typeof e=="string"?JSON.stringify(e):`${e}`}function YS(e){const{done:t,value:n}=e.next();return t?void 0:n}function KS(e,t,n,a){if(e===!0)return;e===!1?e={}:typeof e=="string"&&(e={message:e});const{path:s,branch:i}=t,{type:f}=n,{refinement:d,message:b=`Expected a value of type \`${f}\`${d?` with refinement \`${d}\``:""}, but received: \`${ie(a)}\``}=e;return{value:a,type:f,refinement:d,key:s[s.length-1],path:s,branch:i,...e,message:b}}function*q2(e,t,n,a){ZS(e)||(e=[e]);for(const s of e){const i=KS(s,t,n,a);i&&(yield i)}}function*W2(e,t,n={}){const{path:a=[],branch:s=[e],coerce:i=!1,mask:f=!1}=n,d={path:a,branch:s};if(i&&(e=t.coercer(e,d),f&&t.type!=="type"&&tt(t.schema)&&tt(e)&&!Array.isArray(e)))for(const y in e)t.schema[y]===void 0&&delete e[y];let b="valid";for(const y of t.validator(e,d))y.explanation=n.message,b="not_valid",yield[y,void 0];for(let[y,u,p]of t.entries(e,d)){const m=W2(u,p,{path:y===void 0?a:[...a,y],branch:y===void 0?s:[...s,u],coerce:i,mask:f,message:n.message});for(const h of m)h[0]?(b=h[0].refinement===null||h[0].refinement===void 0?"not_valid":"not_refined",yield[h[0],void 0]):i&&(u=h[1],y===void 0?e=u:e instanceof Map?e.set(y,u):e instanceof Set?e.add(u):tt(e)&&(u!==void 0||y in e)&&(e[y]=u))}if(b!=="not_valid")for(const y of t.refiner(e,d))y.explanation=n.message,b="not_refined",yield[y,void 0];b==="valid"&&(yield[void 0,e])}class j0{constructor(t){const{type:n,schema:a,validator:s,refiner:i,coercer:f=b=>b,entries:d=function*(){}}=t;this.type=n,this.schema=a,this.entries=d,this.coercer=f,s?this.validator=(b,y)=>{const u=s(b,y);return q2(u,y,this,b)}:this.validator=()=>[],i?this.refiner=(b,y)=>{const u=i(b,y);return q2(u,y,this,b)}:this.refiner=()=>[]}assert(t,n){return Y2(t,this,n)}create(t,n){return w6(t,this,n)}is(t){return nt(t,this)}mask(t,n){return v9(t,this,n)}validate(t,n={}){return ln(t,this,n)}}const w9="EXACT_OPTIONAL";class Z2 extends j0{constructor(t){super({...t,type:`exact optional ${t.type}`}),this.brand=w9}static isExactOptional(t){return tt(t)&&"brand"in t&&t.brand===w9}}function Y2(e,t,n){const a=ln(e,t,{message:n});if(a[0])throw a[0]}function w6(e,t,n){const a=ln(e,t,{coerce:!0,message:n});if(a[0])throw a[0];return a[1]}function v9(e,t,n){const a=ln(e,t,{coerce:!0,mask:!0,message:n});if(a[0])throw a[0];return a[1]}function nt(e,t){return!ln(e,t)[0]}function ln(e,t,n={}){const a=W2(e,t,n),s=YS(a);return s[0]?[new pn(s[0],function*(){for(const d of a)d[0]&&(yield d[0])}),void 0]:[void 0,s[1]]}function XS(...e){var s;const t=((s=e[0])==null?void 0:s.type)==="type",n=e.map(({schema:i})=>i),a=Object.assign({},...n);return t?k5(a):v6(a)}function $e(e,t){return new j0({type:e,schema:null,validator:t})}function JS(e,t){return new j0({...e,refiner:(n,a)=>n===void 0||e.refiner(n,a),validator(n,a){return n===void 0?!0:(t(n,a),e.validator(n,a))}})}function QS(e){return new j0({type:"dynamic",schema:null,*entries(t,n){yield*e(t,n).entries(t,n)},validator(t,n){return e(t,n).validator(t,n)},coercer(t,n){return e(t,n).coercer(t,n)},refiner(t,n){return e(t,n).refiner(t,n)}})}function eI(e){let t;return new j0({type:"lazy",schema:null,*entries(n,a){t??(t=e()),yield*t.entries(n,a)},validator(n,a){return t??(t=e()),t.validator(n,a)},coercer(n,a){return t??(t=e()),t.coercer(n,a)},refiner(n,a){return t??(t=e()),t.refiner(n,a)}})}function tI(e,t){const{schema:n}=e,a={...n};for(const s of t)delete a[s];switch(e.type){case"type":return k5(a);default:return v6(a)}}function nI(e){const t=e instanceof j0,n=t?{...e.schema}:{...e};for(const a in n)n[a]=Mr(n[a]);return t&&e.type==="type"?k5(n):v6(n)}function aI(e,t){const{schema:n}=e,a={};for(const s of t)a[s]=n[s];switch(e.type){case"type":return k5(a);default:return v6(a)}}function x9(){return $e("any",()=>!0)}function E9(e){return new j0({type:"array",schema:e,*entries(t){if(e&&Array.isArray(t))for(const[n,a]of t.entries())yield[n,a,e]},coercer(t){return Array.isArray(t)?t.slice():t},validator(t){return Array.isArray(t)||`Expected an array value, but received: ${ie(t)}`}})}function K2(){return $e("bigint",e=>typeof e=="bigint")}function rI(){return $e("boolean",e=>typeof e=="boolean")}function sI(){return $e("date",e=>e instanceof Date&&!isNaN(e.getTime())||`Expected a valid \`Date\` object, but received: ${ie(e)}`)}function iI(e){const t={},n=e.map(a=>ie(a)).join();for(const a of e)t[a]=a;return new j0({type:"enums",schema:t,validator(a){return e.includes(a)||`Expected one of \`${n}\`, but received: ${ie(a)}`}})}function oI(){return $e("func",e=>typeof e=="function"||`Expected a function, but received: ${ie(e)}`)}function Cr(e){return $e("instance",t=>t instanceof e||`Expected a \`${e.name}\` instance, but received: ${ie(t)}`)}function A9(){return $e("integer",e=>typeof e=="number"&&!isNaN(e)&&Number.isInteger(e)||`Expected an integer, but received: ${ie(e)}`)}function fI(e){return new j0({type:"intersection",schema:null,*entries(t,n){for(const{entries:a}of e)yield*a(t,n)},*validator(t,n){for(const{validator:a}of e)yield*a(t,n)},*refiner(t,n){for(const{refiner:a}of e)yield*a(t,n)}})}function _9(e){const t=ie(e),n=typeof e;return new j0({type:"literal",schema:n==="string"||n==="number"||n==="boolean"?e:null,validator(a){return a===e||`Expected the literal \`${t}\`, but received: ${ie(a)}`}})}function bI(e,t){return new j0({type:"map",schema:null,*entries(n){if(e&&t&&n instanceof Map)for(const[a,s]of n.entries())yield[a,a,e],yield[a,s,t]},coercer(n){return n instanceof Map?new Map(n):n},validator(n){return n instanceof Map||`Expected a \`Map\` object, but received: ${ie(n)}`}})}function X2(){return $e("never",()=>!1)}function S9(e){return new j0({...e,validator:(t,n)=>t===null||e.validator(t,n),refiner:(t,n)=>t===null||e.refiner(t,n)})}function Pr(){return $e("number",e=>typeof e=="number"&&!isNaN(e)||`Expected a number, but received: ${ie(e)}`)}function v6(e){const t=e?Object.keys(e):[],n=X2();return new j0({type:"object",schema:e??null,*entries(a){if(e&&tt(a)){const s=new Set(Object.keys(a));for(const i of t){s.delete(i);const f=e[i];Z2.isExactOptional(f)&&!Object.prototype.hasOwnProperty.call(a,i)||(yield[i,a[i],e[i]])}for(const i of s)yield[i,a[i],n]}},validator(a){return tt(a)||`Expected an object, but received: ${ie(a)}`},coercer(a){return tt(a)?{...a}:a}})}function Mr(e){return new j0({...e,validator:(t,n)=>t===void 0||e.validator(t,n),refiner:(t,n)=>t===void 0||e.refiner(t,n)})}function dI(e){return new Z2(e)}function I9(e,t){return new j0({type:"record",schema:null,*entries(n){if(tt(n))for(const a in n){const s=n[a];yield[a,a,e],yield[a,s,t]}},validator(n){return tt(n)||`Expected an object, but received: ${ie(n)}`}})}function cI(){return $e("regexp",e=>e instanceof RegExp)}function uI(e){return new j0({type:"set",schema:null,*entries(t){if(e&&t instanceof Set)for(const n of t)yield[n,n,e]},coercer(t){return t instanceof Set?new Set(t):t},validator(t){return t instanceof Set||`Expected a \`Set\` object, but received: ${ie(t)}`}})}function _e(){return $e("string",e=>typeof e=="string"||`Expected a string, but received: ${ie(e)}`)}function yI(e){const t=X2();return new j0({type:"tuple",schema:null,*entries(n){if(Array.isArray(n)){const a=Math.max(e.length,n.length);for(let s=0;s<a;s++)yield[s,n[s],e[s]||t]}},validator(n){return Array.isArray(n)||`Expected an array, but received: ${ie(n)}`}})}function k5(e){const t=Object.keys(e);return new j0({type:"type",schema:e,*entries(n){if(tt(n))for(const a of t)yield[a,n[a],e[a]]},validator(n){return tt(n)||`Expected an object, but received: ${ie(n)}`},coercer(n){return tt(n)?{...n}:n}})}function x6(e){const t=e.map(n=>n.type).join(" | ");return new j0({type:"union",schema:null,coercer(n){for(const a of e){const[s,i]=a.validate(n,{coerce:!0});if(!s)return i}return n},validator(n,a){const s=[];for(const i of e){const[...f]=W2(n,i,a),[d]=f;if(!(d!=null&&d[0]))return[];for(const[b]of f)b&&s.push(b)}return[`Expected the value to satisfy a union of \`${t}\`, but received: ${ie(n)}`,...s]}})}function J2(){return $e("unknown",()=>!0)}function j1(e,t,n){return new j0({...e,coercer:(a,s)=>nt(a,t)?e.coercer(n(a,s),s):e.coercer(a,s)})}function pI(e,t,n={}){return j1(e,J2(),a=>{const s=typeof t=="function"?t():t;if(a===void 0)return s;if(!n.strict&&T9(a)&&T9(s)){const i={...a};let f=!1;for(const d in s)i[d]===void 0&&(i[d]=s[d],f=!0);if(f)return i}return a})}function lI(e){return j1(e,_e(),t=>t.trim())}function mI(e){return Yt(e,"empty",t=>{const n=C9(t);return n===0||`Expected an empty ${e.type} but received one with a size of \`${n}\``})}function C9(e){return e instanceof Map||e instanceof Set?e.size:e.length}function hI(e,t,n={}){const{exclusive:a}=n;return Yt(e,"max",s=>a?s<t:s<=t||`Expected a ${e.type} less than ${a?"":"or equal to "}${t} but received \`${s}\``)}function gI(e,t,n={}){const{exclusive:a}=n;return Yt(e,"min",s=>a?s>t:s>=t||`Expected a ${e.type} greater than ${a?"":"or equal to "}${t} but received \`${s}\``)}function TI(e){return Yt(e,"nonempty",t=>C9(t)>0||`Expected a nonempty ${e.type} but received an empty one`)}function mn(e,t){return Yt(e,"pattern",n=>t.test(n)||`Expected a ${e.type} matching \`/${t.source}/\` but received "${n}"`)}function P9(e,t,n=t){const a=`Expected a ${e.type}`,s=t===n?`of \`${t}\``:`between \`${t}\` and \`${n}\``;return Yt(e,"size",i=>{if(typeof i=="number"||i instanceof Date)return t<=i&&i<=n||`${a} ${s} but received \`${i}\``;if(i instanceof Map||i instanceof Set){const{size:d}=i;return t<=d&&d<=n||`${a} with a size ${s} but received one with a size of \`${d}\``}const{length:f}=i;return t<=f&&f<=n||`${a} with a length ${s} but received one with a length of \`${f}\``})}function Yt(e,t,n){return new j0({...e,*refiner(a,s){yield*e.refiner(a,s);const i=n(a,s),f=q2(i,s,e,a);for(const d of f)yield{...d,refinement:t}}})}const wI=Object.freeze(Object.defineProperty({__proto__:null,ExactOptionalStruct:Z2,Struct:j0,StructError:pn,any:x9,array:E9,assert:Y2,assign:XS,bigint:K2,boolean:rI,coerce:j1,create:w6,date:sI,defaulted:pI,define:$e,deprecated:JS,dynamic:QS,empty:mI,enums:iI,exactOptional:dI,func:oI,instance:Cr,integer:A9,intersection:fI,is:nt,lazy:eI,literal:_9,map:bI,mask:v9,max:hI,min:gI,never:X2,nonempty:TI,nullable:S9,number:Pr,object:v6,omit:tI,optional:Mr,partial:nI,pattern:mn,pick:aI,record:I9,refine:Yt,regexp:cI,set:uI,size:P9,string:_e,trimmed:lI,tuple:yI,type:k5,union:x6,unknown:J2,validate:ln},Symbol.toStringTag,{value:"Module"}));class Q2 extends Error{constructor(t,{cause:n}={}){super(t),this.name=Q2.name,n&&(this.cause=n),this.message=t}}function vI(e){return Array.isArray(e)&&e.length>0}function M9(e){return e==null}function $9(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}const O9=(e,t)=>Object.hasOwnProperty.call(e,t);function xI(e){return Object.getOwnPropertyNames(e)}var $r;(function(e){e[e.Null=4]="Null",e[e.Comma=1]="Comma",e[e.Wrapper=1]="Wrapper",e[e.True=4]="True",e[e.False=5]="False",e[e.Quote=1]="Quote",e[e.Colon=1]="Colon",e[e.Date=24]="Date"})($r=$r||($r={}));const R9=/"|\\|\n|\r|\t/gu;function EI(e){if(typeof e!="object"||e===null)return!1;try{let t=e;for(;Object.getPrototypeOf(t)!==null;)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}catch{return!1}}function B9(e){return e.charCodeAt(0)<=127}function AI(e){return e.split("").reduce((n,a)=>B9(a)?n+1:n+2,0)+(e.match(R9)??[]).length}function _I(e){return e.toString().length}function SI(e){return e instanceof Error||$9(e)&&e.constructor.name==="Error"}function N9(e){return typeof e=="object"&&e!==null&&"code"in e}function D9(e){return typeof e=="object"&&e!==null&&"message"in e}function II(e){return typeof e=="object"&&e!==null&&"stack"in e}function k9(e){return D9(e)&&typeof e.message=="string"?e.message:M9(e)?"":String(e)}function CI(e,t){if(SI(e)){let n;return Error.length===2?n=new Error(t,{cause:e}):n=new Q2(t,{cause:e}),N9(e)&&(n.code=e.code),n}return t.length>0?new Error(`${String(e)}: ${t}`):new Error(String(e))}function PI(e){var t,n;return typeof((n=(t=e==null?void 0:e.prototype)==null?void 0:t.constructor)==null?void 0:n.name)=="string"}function MI(e){return k9(e).replace(/\.$/u,"")}function L9(e,t){return PI(e)?new e({message:t}):e({message:t})}class eo extends Error{constructor(t){super(t.message),this.code="ERR_ASSERTION"}}function k0(e,t="Assertion failed.",n=eo){if(!e)throw t instanceof Error?t:L9(n,t)}function Rt(e,t,n="Assertion failed",a=eo){try{Y2(e,t)}catch(s){throw L9(a,`${n}: ${MI(s)}.`)}}function $I(e){throw new Error("Invalid branch reached. Should be detected during compilation.")}const F9=(e,t={})=>{const n=t.paddingRequired??!1,a=t.characterSet??"base64";let s;a==="base64"?s=String.raw`[A-Za-z0-9+\/]`:(k0(a==="base64url"),s=String.raw`[-_A-Za-z0-9]`);let i;return n?i=new RegExp(`^(?:${s}{4})*(?:${s}{3}=|${s}{2}==)?$`,"u"):i=new RegExp(`^(?:${s}{4})*(?:${s}{2,3}|${s}{3}=|${s}{2}==)?$`,"u"),mn(e,i)};var Or={exports:{}};/**
71
+ * @license
72
+ * Lodash <https://lodash.com/>
73
+ * Copyright OpenJS Foundation and other contributors <https://openjsf.org/>
74
+ * Released under MIT license <https://lodash.com/license>
75
+ * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
76
+ * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
77
+ */Or.exports,function(e,t){(function(){var n,a="4.17.21",s=200,i="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",f="Expected a function",d="Invalid `variable` option passed into `_.template`",b="__lodash_hash_undefined__",y=500,u="__lodash_placeholder__",p=1,m=2,h=4,x=1,T=2,C=1,S=2,H=4,A=8,E=16,$=32,L=64,R=128,D=256,q=512,e0=30,z="...",K=800,W=16,Z=1,_=2,M=3,k=1/0,B=9007199254740991,U=17976931348623157e292,P=NaN,V=4294967295,a0=V-1,o0=V>>>1,y0=[["ary",R],["bind",C],["bindKey",S],["curry",A],["curryRight",E],["flip",q],["partial",$],["partialRight",L],["rearg",D]],s0="[object Arguments]",A0="[object Array]",V0="[object AsyncFunction]",$0="[object Boolean]",N0="[object Date]",fe="[object DOMException]",Ve="[object Error]",Se="[object Function]",le="[object GeneratorFunction]",q0="[object Map]",ge="[object Number]",Ne="[object Null]",x1="[object Object]",p4="[object Promise]",EU="[object Proxy]",aa="[object RegExp]",Lt="[object Set]",ra="[object String]",ds="[object Symbol]",AU="[object Undefined]",sa="[object WeakMap]",_U="[object WeakSet]",ia="[object ArrayBuffer]",vn="[object DataView]",df="[object Float32Array]",cf="[object Float64Array]",uf="[object Int8Array]",yf="[object Int16Array]",pf="[object Int32Array]",lf="[object Uint8Array]",mf="[object Uint8ClampedArray]",hf="[object Uint16Array]",gf="[object Uint32Array]",SU=/\b__p \+= '';/g,IU=/\b(__p \+=) '' \+/g,CU=/(__e\(.*?\)|\b__t\)) \+\n'';/g,l4=/&(?:amp|lt|gt|quot|#39);/g,m4=/[&<>"']/g,PU=RegExp(l4.source),MU=RegExp(m4.source),$U=/<%-([\s\S]+?)%>/g,OU=/<%([\s\S]+?)%>/g,h4=/<%=([\s\S]+?)%>/g,RU=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,BU=/^\w*$/,NU=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Tf=/[\\^$.*+?()[\]{}|]/g,DU=RegExp(Tf.source),wf=/^\s+/,kU=/\s/,LU=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,FU=/\{\n\/\* \[wrapped with (.+)\] \*/,UU=/,? & /,HU=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,GU=/[()=,{}\[\]\/\s]/,zU=/\\(\\)?/g,jU=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,g4=/\w*$/,VU=/^[-+]0x[0-9a-f]+$/i,qU=/^0b[01]+$/i,WU=/^\[object .+?Constructor\]$/,ZU=/^0o[0-7]+$/i,YU=/^(?:0|[1-9]\d*)$/,KU=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,cs=/($^)/,XU=/['\n\r\u2028\u2029\\]/g,us="\\ud800-\\udfff",JU="\\u0300-\\u036f",QU="\\ufe20-\\ufe2f",eH="\\u20d0-\\u20ff",T4=JU+QU+eH,w4="\\u2700-\\u27bf",v4="a-z\\xdf-\\xf6\\xf8-\\xff",tH="\\xac\\xb1\\xd7\\xf7",nH="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",aH="\\u2000-\\u206f",rH=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",x4="A-Z\\xc0-\\xd6\\xd8-\\xde",E4="\\ufe0e\\ufe0f",A4=tH+nH+aH+rH,vf="['’]",sH="["+us+"]",_4="["+A4+"]",ys="["+T4+"]",S4="\\d+",iH="["+w4+"]",I4="["+v4+"]",C4="[^"+us+A4+S4+w4+v4+x4+"]",xf="\\ud83c[\\udffb-\\udfff]",oH="(?:"+ys+"|"+xf+")",P4="[^"+us+"]",Ef="(?:\\ud83c[\\udde6-\\uddff]){2}",Af="[\\ud800-\\udbff][\\udc00-\\udfff]",xn="["+x4+"]",M4="\\u200d",$4="(?:"+I4+"|"+C4+")",fH="(?:"+xn+"|"+C4+")",O4="(?:"+vf+"(?:d|ll|m|re|s|t|ve))?",R4="(?:"+vf+"(?:D|LL|M|RE|S|T|VE))?",B4=oH+"?",N4="["+E4+"]?",bH="(?:"+M4+"(?:"+[P4,Ef,Af].join("|")+")"+N4+B4+")*",dH="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",cH="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",D4=N4+B4+bH,uH="(?:"+[iH,Ef,Af].join("|")+")"+D4,yH="(?:"+[P4+ys+"?",ys,Ef,Af,sH].join("|")+")",pH=RegExp(vf,"g"),lH=RegExp(ys,"g"),_f=RegExp(xf+"(?="+xf+")|"+yH+D4,"g"),mH=RegExp([xn+"?"+I4+"+"+O4+"(?="+[_4,xn,"$"].join("|")+")",fH+"+"+R4+"(?="+[_4,xn+$4,"$"].join("|")+")",xn+"?"+$4+"+"+O4,xn+"+"+R4,cH,dH,S4,uH].join("|"),"g"),hH=RegExp("["+M4+us+T4+E4+"]"),gH=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,TH=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],wH=-1,F0={};F0[df]=F0[cf]=F0[uf]=F0[yf]=F0[pf]=F0[lf]=F0[mf]=F0[hf]=F0[gf]=!0,F0[s0]=F0[A0]=F0[ia]=F0[$0]=F0[vn]=F0[N0]=F0[Ve]=F0[Se]=F0[q0]=F0[ge]=F0[x1]=F0[aa]=F0[Lt]=F0[ra]=F0[sa]=!1;var L0={};L0[s0]=L0[A0]=L0[ia]=L0[vn]=L0[$0]=L0[N0]=L0[df]=L0[cf]=L0[uf]=L0[yf]=L0[pf]=L0[q0]=L0[ge]=L0[x1]=L0[aa]=L0[Lt]=L0[ra]=L0[ds]=L0[lf]=L0[mf]=L0[hf]=L0[gf]=!0,L0[Ve]=L0[Se]=L0[sa]=!1;var vH={À:"A",Á:"A",Â:"A",Ã:"A",Ä:"A",Å:"A",à:"a",á:"a",â:"a",ã:"a",ä:"a",å:"a",Ç:"C",ç:"c",Ð:"D",ð:"d",È:"E",É:"E",Ê:"E",Ë:"E",è:"e",é:"e",ê:"e",ë:"e",Ì:"I",Í:"I",Î:"I",Ï:"I",ì:"i",í:"i",î:"i",ï:"i",Ñ:"N",ñ:"n",Ò:"O",Ó:"O",Ô:"O",Õ:"O",Ö:"O",Ø:"O",ò:"o",ó:"o",ô:"o",õ:"o",ö:"o",ø:"o",Ù:"U",Ú:"U",Û:"U",Ü:"U",ù:"u",ú:"u",û:"u",ü:"u",Ý:"Y",ý:"y",ÿ:"y",Æ:"Ae",æ:"ae",Þ:"Th",þ:"th",ß:"ss",Ā:"A",Ă:"A",Ą:"A",ā:"a",ă:"a",ą:"a",Ć:"C",Ĉ:"C",Ċ:"C",Č:"C",ć:"c",ĉ:"c",ċ:"c",č:"c",Ď:"D",Đ:"D",ď:"d",đ:"d",Ē:"E",Ĕ:"E",Ė:"E",Ę:"E",Ě:"E",ē:"e",ĕ:"e",ė:"e",ę:"e",ě:"e",Ĝ:"G",Ğ:"G",Ġ:"G",Ģ:"G",ĝ:"g",ğ:"g",ġ:"g",ģ:"g",Ĥ:"H",Ħ:"H",ĥ:"h",ħ:"h",Ĩ:"I",Ī:"I",Ĭ:"I",Į:"I",İ:"I",ĩ:"i",ī:"i",ĭ:"i",į:"i",ı:"i",Ĵ:"J",ĵ:"j",Ķ:"K",ķ:"k",ĸ:"k",Ĺ:"L",Ļ:"L",Ľ:"L",Ŀ:"L",Ł:"L",ĺ:"l",ļ:"l",ľ:"l",ŀ:"l",ł:"l",Ń:"N",Ņ:"N",Ň:"N",Ŋ:"N",ń:"n",ņ:"n",ň:"n",ŋ:"n",Ō:"O",Ŏ:"O",Ő:"O",ō:"o",ŏ:"o",ő:"o",Ŕ:"R",Ŗ:"R",Ř:"R",ŕ:"r",ŗ:"r",ř:"r",Ś:"S",Ŝ:"S",Ş:"S",Š:"S",ś:"s",ŝ:"s",ş:"s",š:"s",Ţ:"T",Ť:"T",Ŧ:"T",ţ:"t",ť:"t",ŧ:"t",Ũ:"U",Ū:"U",Ŭ:"U",Ů:"U",Ű:"U",Ų:"U",ũ:"u",ū:"u",ŭ:"u",ů:"u",ű:"u",ų:"u",Ŵ:"W",ŵ:"w",Ŷ:"Y",ŷ:"y",Ÿ:"Y",Ź:"Z",Ż:"Z",Ž:"Z",ź:"z",ż:"z",ž:"z",IJ:"IJ",ij:"ij",Œ:"Oe",œ:"oe",ʼn:"'n",ſ:"s"},xH={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},EH={"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&#39;":"'"},AH={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},_H=parseFloat,SH=parseInt,k4=typeof K0=="object"&&K0&&K0.Object===Object&&K0,IH=typeof self=="object"&&self&&self.Object===Object&&self,Te=k4||IH||Function("return this")(),Sf=t&&!t.nodeType&&t,M6=Sf&&!0&&e&&!e.nodeType&&e,L4=M6&&M6.exports===Sf,If=L4&&k4.process,xt=function(){try{var N=M6&&M6.require&&M6.require("util").types;return N||If&&If.binding&&If.binding("util")}catch{}}(),F4=xt&&xt.isArrayBuffer,U4=xt&&xt.isDate,H4=xt&&xt.isMap,G4=xt&&xt.isRegExp,z4=xt&&xt.isSet,j4=xt&&xt.isTypedArray;function at(N,Y,j){switch(j.length){case 0:return N.call(Y);case 1:return N.call(Y,j[0]);case 2:return N.call(Y,j[0],j[1]);case 3:return N.call(Y,j[0],j[1],j[2])}return N.apply(Y,j)}function CH(N,Y,j,b0){for(var g0=-1,M0=N==null?0:N.length;++g0<M0;){var be=N[g0];Y(b0,be,j(be),N)}return b0}function Et(N,Y){for(var j=-1,b0=N==null?0:N.length;++j<b0&&Y(N[j],j,N)!==!1;);return N}function PH(N,Y){for(var j=N==null?0:N.length;j--&&Y(N[j],j,N)!==!1;);return N}function V4(N,Y){for(var j=-1,b0=N==null?0:N.length;++j<b0;)if(!Y(N[j],j,N))return!1;return!0}function W1(N,Y){for(var j=-1,b0=N==null?0:N.length,g0=0,M0=[];++j<b0;){var be=N[j];Y(be,j,N)&&(M0[g0++]=be)}return M0}function ps(N,Y){var j=N==null?0:N.length;return!!j&&En(N,Y,0)>-1}function Cf(N,Y,j){for(var b0=-1,g0=N==null?0:N.length;++b0<g0;)if(j(Y,N[b0]))return!0;return!1}function H0(N,Y){for(var j=-1,b0=N==null?0:N.length,g0=Array(b0);++j<b0;)g0[j]=Y(N[j],j,N);return g0}function Z1(N,Y){for(var j=-1,b0=Y.length,g0=N.length;++j<b0;)N[g0+j]=Y[j];return N}function Pf(N,Y,j,b0){var g0=-1,M0=N==null?0:N.length;for(b0&&M0&&(j=N[++g0]);++g0<M0;)j=Y(j,N[g0],g0,N);return j}function MH(N,Y,j,b0){var g0=N==null?0:N.length;for(b0&&g0&&(j=N[--g0]);g0--;)j=Y(j,N[g0],g0,N);return j}function Mf(N,Y){for(var j=-1,b0=N==null?0:N.length;++j<b0;)if(Y(N[j],j,N))return!0;return!1}var $H=$f("length");function OH(N){return N.split("")}function RH(N){return N.match(HU)||[]}function q4(N,Y,j){var b0;return j(N,function(g0,M0,be){if(Y(g0,M0,be))return b0=M0,!1}),b0}function ls(N,Y,j,b0){for(var g0=N.length,M0=j+(b0?1:-1);b0?M0--:++M0<g0;)if(Y(N[M0],M0,N))return M0;return-1}function En(N,Y,j){return Y===Y?VH(N,Y,j):ls(N,W4,j)}function BH(N,Y,j,b0){for(var g0=j-1,M0=N.length;++g0<M0;)if(b0(N[g0],Y))return g0;return-1}function W4(N){return N!==N}function Z4(N,Y){var j=N==null?0:N.length;return j?Rf(N,Y)/j:P}function $f(N){return function(Y){return Y==null?n:Y[N]}}function Of(N){return function(Y){return N==null?n:N[Y]}}function Y4(N,Y,j,b0,g0){return g0(N,function(M0,be,D0){j=b0?(b0=!1,M0):Y(j,M0,be,D0)}),j}function NH(N,Y){var j=N.length;for(N.sort(Y);j--;)N[j]=N[j].value;return N}function Rf(N,Y){for(var j,b0=-1,g0=N.length;++b0<g0;){var M0=Y(N[b0]);M0!==n&&(j=j===n?M0:j+M0)}return j}function Bf(N,Y){for(var j=-1,b0=Array(N);++j<N;)b0[j]=Y(j);return b0}function DH(N,Y){return H0(Y,function(j){return[j,N[j]]})}function K4(N){return N&&N.slice(0,e7(N)+1).replace(wf,"")}function rt(N){return function(Y){return N(Y)}}function Nf(N,Y){return H0(Y,function(j){return N[j]})}function oa(N,Y){return N.has(Y)}function X4(N,Y){for(var j=-1,b0=N.length;++j<b0&&En(Y,N[j],0)>-1;);return j}function J4(N,Y){for(var j=N.length;j--&&En(Y,N[j],0)>-1;);return j}function kH(N,Y){for(var j=N.length,b0=0;j--;)N[j]===Y&&++b0;return b0}var LH=Of(vH),FH=Of(xH);function UH(N){return"\\"+AH[N]}function HH(N,Y){return N==null?n:N[Y]}function An(N){return hH.test(N)}function GH(N){return gH.test(N)}function zH(N){for(var Y,j=[];!(Y=N.next()).done;)j.push(Y.value);return j}function Df(N){var Y=-1,j=Array(N.size);return N.forEach(function(b0,g0){j[++Y]=[g0,b0]}),j}function Q4(N,Y){return function(j){return N(Y(j))}}function Y1(N,Y){for(var j=-1,b0=N.length,g0=0,M0=[];++j<b0;){var be=N[j];(be===Y||be===u)&&(N[j]=u,M0[g0++]=j)}return M0}function ms(N){var Y=-1,j=Array(N.size);return N.forEach(function(b0){j[++Y]=b0}),j}function jH(N){var Y=-1,j=Array(N.size);return N.forEach(function(b0){j[++Y]=[b0,b0]}),j}function VH(N,Y,j){for(var b0=j-1,g0=N.length;++b0<g0;)if(N[b0]===Y)return b0;return-1}function qH(N,Y,j){for(var b0=j+1;b0--;)if(N[b0]===Y)return b0;return b0}function _n(N){return An(N)?ZH(N):$H(N)}function Ft(N){return An(N)?YH(N):OH(N)}function e7(N){for(var Y=N.length;Y--&&kU.test(N.charAt(Y)););return Y}var WH=Of(EH);function ZH(N){for(var Y=_f.lastIndex=0;_f.test(N);)++Y;return Y}function YH(N){return N.match(_f)||[]}function KH(N){return N.match(mH)||[]}var XH=function N(Y){Y=Y==null?Te:Sn.defaults(Te.Object(),Y,Sn.pick(Te,TH));var j=Y.Array,b0=Y.Date,g0=Y.Error,M0=Y.Function,be=Y.Math,D0=Y.Object,kf=Y.RegExp,JH=Y.String,At=Y.TypeError,hs=j.prototype,QH=M0.prototype,In=D0.prototype,gs=Y["__core-js_shared__"],Ts=QH.toString,R0=In.hasOwnProperty,eG=0,t7=function(){var r=/[^.]+$/.exec(gs&&gs.keys&&gs.keys.IE_PROTO||"");return r?"Symbol(src)_1."+r:""}(),ws=In.toString,tG=Ts.call(D0),nG=Te._,aG=kf("^"+Ts.call(R0).replace(Tf,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),vs=L4?Y.Buffer:n,K1=Y.Symbol,xs=Y.Uint8Array,n7=vs?vs.allocUnsafe:n,Es=Q4(D0.getPrototypeOf,D0),a7=D0.create,r7=In.propertyIsEnumerable,As=hs.splice,s7=K1?K1.isConcatSpreadable:n,fa=K1?K1.iterator:n,$6=K1?K1.toStringTag:n,_s=function(){try{var r=D6(D0,"defineProperty");return r({},"",{}),r}catch{}}(),rG=Y.clearTimeout!==Te.clearTimeout&&Y.clearTimeout,sG=b0&&b0.now!==Te.Date.now&&b0.now,iG=Y.setTimeout!==Te.setTimeout&&Y.setTimeout,Ss=be.ceil,Is=be.floor,Lf=D0.getOwnPropertySymbols,oG=vs?vs.isBuffer:n,i7=Y.isFinite,fG=hs.join,bG=Q4(D0.keys,D0),de=be.max,Ie=be.min,dG=b0.now,cG=Y.parseInt,o7=be.random,uG=hs.reverse,Ff=D6(Y,"DataView"),ba=D6(Y,"Map"),Uf=D6(Y,"Promise"),Cn=D6(Y,"Set"),da=D6(Y,"WeakMap"),ca=D6(D0,"create"),Cs=da&&new da,Pn={},yG=k6(Ff),pG=k6(ba),lG=k6(Uf),mG=k6(Cn),hG=k6(da),Ps=K1?K1.prototype:n,ua=Ps?Ps.valueOf:n,f7=Ps?Ps.toString:n;function w(r){if(Y0(r)&&!w0(r)&&!(r instanceof I0)){if(r instanceof _t)return r;if(R0.call(r,"__wrapped__"))return bm(r)}return new _t(r)}var Mn=function(){function r(){}return function(o){if(!W0(o))return{};if(a7)return a7(o);r.prototype=o;var c=new r;return r.prototype=n,c}}();function Ms(){}function _t(r,o){this.__wrapped__=r,this.__actions__=[],this.__chain__=!!o,this.__index__=0,this.__values__=n}w.templateSettings={escape:$U,evaluate:OU,interpolate:h4,variable:"",imports:{_:w}},w.prototype=Ms.prototype,w.prototype.constructor=w,_t.prototype=Mn(Ms.prototype),_t.prototype.constructor=_t;function I0(r){this.__wrapped__=r,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=V,this.__views__=[]}function gG(){var r=new I0(this.__wrapped__);return r.__actions__=qe(this.__actions__),r.__dir__=this.__dir__,r.__filtered__=this.__filtered__,r.__iteratees__=qe(this.__iteratees__),r.__takeCount__=this.__takeCount__,r.__views__=qe(this.__views__),r}function TG(){if(this.__filtered__){var r=new I0(this);r.__dir__=-1,r.__filtered__=!0}else r=this.clone(),r.__dir__*=-1;return r}function wG(){var r=this.__wrapped__.value(),o=this.__dir__,c=w0(r),l=o<0,g=c?r.length:0,v=Oz(0,g,this.__views__),I=v.start,O=v.end,F=O-I,X=l?O:I-1,J=this.__iteratees__,n0=J.length,r0=0,c0=Ie(F,this.__takeCount__);if(!c||!l&&g==F&&c0==F)return O7(r,this.__actions__);var l0=[];e:for(;F--&&r0<c0;){X+=o;for(var x0=-1,m0=r[X];++x0<n0;){var _0=J[x0],C0=_0.iteratee,ot=_0.type,Le=C0(m0);if(ot==_)m0=Le;else if(!Le){if(ot==Z)continue e;break e}}l0[r0++]=m0}return l0}I0.prototype=Mn(Ms.prototype),I0.prototype.constructor=I0;function O6(r){var o=-1,c=r==null?0:r.length;for(this.clear();++o<c;){var l=r[o];this.set(l[0],l[1])}}function vG(){this.__data__=ca?ca(null):{},this.size=0}function xG(r){var o=this.has(r)&&delete this.__data__[r];return this.size-=o?1:0,o}function EG(r){var o=this.__data__;if(ca){var c=o[r];return c===b?n:c}return R0.call(o,r)?o[r]:n}function AG(r){var o=this.__data__;return ca?o[r]!==n:R0.call(o,r)}function _G(r,o){var c=this.__data__;return this.size+=this.has(r)?0:1,c[r]=ca&&o===n?b:o,this}O6.prototype.clear=vG,O6.prototype.delete=xG,O6.prototype.get=EG,O6.prototype.has=AG,O6.prototype.set=_G;function E1(r){var o=-1,c=r==null?0:r.length;for(this.clear();++o<c;){var l=r[o];this.set(l[0],l[1])}}function SG(){this.__data__=[],this.size=0}function IG(r){var o=this.__data__,c=$s(o,r);if(c<0)return!1;var l=o.length-1;return c==l?o.pop():As.call(o,c,1),--this.size,!0}function CG(r){var o=this.__data__,c=$s(o,r);return c<0?n:o[c][1]}function PG(r){return $s(this.__data__,r)>-1}function MG(r,o){var c=this.__data__,l=$s(c,r);return l<0?(++this.size,c.push([r,o])):c[l][1]=o,this}E1.prototype.clear=SG,E1.prototype.delete=IG,E1.prototype.get=CG,E1.prototype.has=PG,E1.prototype.set=MG;function A1(r){var o=-1,c=r==null?0:r.length;for(this.clear();++o<c;){var l=r[o];this.set(l[0],l[1])}}function $G(){this.size=0,this.__data__={hash:new O6,map:new(ba||E1),string:new O6}}function OG(r){var o=zs(this,r).delete(r);return this.size-=o?1:0,o}function RG(r){return zs(this,r).get(r)}function BG(r){return zs(this,r).has(r)}function NG(r,o){var c=zs(this,r),l=c.size;return c.set(r,o),this.size+=c.size==l?0:1,this}A1.prototype.clear=$G,A1.prototype.delete=OG,A1.prototype.get=RG,A1.prototype.has=BG,A1.prototype.set=NG;function R6(r){var o=-1,c=r==null?0:r.length;for(this.__data__=new A1;++o<c;)this.add(r[o])}function DG(r){return this.__data__.set(r,b),this}function kG(r){return this.__data__.has(r)}R6.prototype.add=R6.prototype.push=DG,R6.prototype.has=kG;function Ut(r){var o=this.__data__=new E1(r);this.size=o.size}function LG(){this.__data__=new E1,this.size=0}function FG(r){var o=this.__data__,c=o.delete(r);return this.size=o.size,c}function UG(r){return this.__data__.get(r)}function HG(r){return this.__data__.has(r)}function GG(r,o){var c=this.__data__;if(c instanceof E1){var l=c.__data__;if(!ba||l.length<s-1)return l.push([r,o]),this.size=++c.size,this;c=this.__data__=new A1(l)}return c.set(r,o),this.size=c.size,this}Ut.prototype.clear=LG,Ut.prototype.delete=FG,Ut.prototype.get=UG,Ut.prototype.has=HG,Ut.prototype.set=GG;function b7(r,o){var c=w0(r),l=!c&&L6(r),g=!c&&!l&&t6(r),v=!c&&!l&&!g&&Bn(r),I=c||l||g||v,O=I?Bf(r.length,JH):[],F=O.length;for(var X in r)(o||R0.call(r,X))&&!(I&&(X=="length"||g&&(X=="offset"||X=="parent")||v&&(X=="buffer"||X=="byteLength"||X=="byteOffset")||C1(X,F)))&&O.push(X);return O}function d7(r){var o=r.length;return o?r[Xf(0,o-1)]:n}function zG(r,o){return js(qe(r),B6(o,0,r.length))}function jG(r){return js(qe(r))}function Hf(r,o,c){(c!==n&&!Ht(r[o],c)||c===n&&!(o in r))&&_1(r,o,c)}function ya(r,o,c){var l=r[o];(!(R0.call(r,o)&&Ht(l,c))||c===n&&!(o in r))&&_1(r,o,c)}function $s(r,o){for(var c=r.length;c--;)if(Ht(r[c][0],o))return c;return-1}function VG(r,o,c,l){return X1(r,function(g,v,I){o(l,g,c(g),I)}),l}function c7(r,o){return r&&Qt(o,me(o),r)}function qG(r,o){return r&&Qt(o,Ze(o),r)}function _1(r,o,c){o=="__proto__"&&_s?_s(r,o,{configurable:!0,enumerable:!0,value:c,writable:!0}):r[o]=c}function Gf(r,o){for(var c=-1,l=o.length,g=j(l),v=r==null;++c<l;)g[c]=v?n:xb(r,o[c]);return g}function B6(r,o,c){return r===r&&(c!==n&&(r=r<=c?r:c),o!==n&&(r=r>=o?r:o)),r}function St(r,o,c,l,g,v){var I,O=o&p,F=o&m,X=o&h;if(c&&(I=g?c(r,l,g,v):c(r)),I!==n)return I;if(!W0(r))return r;var J=w0(r);if(J){if(I=Bz(r),!O)return qe(r,I)}else{var n0=Ce(r),r0=n0==Se||n0==le;if(t6(r))return N7(r,O);if(n0==x1||n0==s0||r0&&!g){if(I=F||r0?{}:em(r),!O)return F?Ez(r,qG(I,r)):xz(r,c7(I,r))}else{if(!L0[n0])return g?r:{};I=Nz(r,n0,O)}}v||(v=new Ut);var c0=v.get(r);if(c0)return c0;v.set(r,I),Pm(r)?r.forEach(function(m0){I.add(St(m0,o,c,m0,r,v))}):Im(r)&&r.forEach(function(m0,_0){I.set(_0,St(m0,o,c,_0,r,v))});var l0=X?F?fb:ob:F?Ze:me,x0=J?n:l0(r);return Et(x0||r,function(m0,_0){x0&&(_0=m0,m0=r[_0]),ya(I,_0,St(m0,o,c,_0,r,v))}),I}function WG(r){var o=me(r);return function(c){return u7(c,r,o)}}function u7(r,o,c){var l=c.length;if(r==null)return!l;for(r=D0(r);l--;){var g=c[l],v=o[g],I=r[g];if(I===n&&!(g in r)||!v(I))return!1}return!0}function y7(r,o,c){if(typeof r!="function")throw new At(f);return wa(function(){r.apply(n,c)},o)}function pa(r,o,c,l){var g=-1,v=ps,I=!0,O=r.length,F=[],X=o.length;if(!O)return F;c&&(o=H0(o,rt(c))),l?(v=Cf,I=!1):o.length>=s&&(v=oa,I=!1,o=new R6(o));e:for(;++g<O;){var J=r[g],n0=c==null?J:c(J);if(J=l||J!==0?J:0,I&&n0===n0){for(var r0=X;r0--;)if(o[r0]===n0)continue e;F.push(J)}else v(o,n0,l)||F.push(J)}return F}var X1=U7(Jt),p7=U7(jf,!0);function ZG(r,o){var c=!0;return X1(r,function(l,g,v){return c=!!o(l,g,v),c}),c}function Os(r,o,c){for(var l=-1,g=r.length;++l<g;){var v=r[l],I=o(v);if(I!=null&&(O===n?I===I&&!it(I):c(I,O)))var O=I,F=v}return F}function YG(r,o,c,l){var g=r.length;for(c=v0(c),c<0&&(c=-c>g?0:g+c),l=l===n||l>g?g:v0(l),l<0&&(l+=g),l=c>l?0:$m(l);c<l;)r[c++]=o;return r}function l7(r,o){var c=[];return X1(r,function(l,g,v){o(l,g,v)&&c.push(l)}),c}function we(r,o,c,l,g){var v=-1,I=r.length;for(c||(c=kz),g||(g=[]);++v<I;){var O=r[v];o>0&&c(O)?o>1?we(O,o-1,c,l,g):Z1(g,O):l||(g[g.length]=O)}return g}var zf=H7(),m7=H7(!0);function Jt(r,o){return r&&zf(r,o,me)}function jf(r,o){return r&&m7(r,o,me)}function Rs(r,o){return W1(o,function(c){return P1(r[c])})}function N6(r,o){o=Q1(o,r);for(var c=0,l=o.length;r!=null&&c<l;)r=r[e1(o[c++])];return c&&c==l?r:n}function h7(r,o,c){var l=o(r);return w0(r)?l:Z1(l,c(r))}function De(r){return r==null?r===n?AU:Ne:$6&&$6 in D0(r)?$z(r):jz(r)}function Vf(r,o){return r>o}function KG(r,o){return r!=null&&R0.call(r,o)}function XG(r,o){return r!=null&&o in D0(r)}function JG(r,o,c){return r>=Ie(o,c)&&r<de(o,c)}function qf(r,o,c){for(var l=c?Cf:ps,g=r[0].length,v=r.length,I=v,O=j(v),F=1/0,X=[];I--;){var J=r[I];I&&o&&(J=H0(J,rt(o))),F=Ie(J.length,F),O[I]=!c&&(o||g>=120&&J.length>=120)?new R6(I&&J):n}J=r[0];var n0=-1,r0=O[0];e:for(;++n0<g&&X.length<F;){var c0=J[n0],l0=o?o(c0):c0;if(c0=c||c0!==0?c0:0,!(r0?oa(r0,l0):l(X,l0,c))){for(I=v;--I;){var x0=O[I];if(!(x0?oa(x0,l0):l(r[I],l0,c)))continue e}r0&&r0.push(l0),X.push(c0)}}return X}function QG(r,o,c,l){return Jt(r,function(g,v,I){o(l,c(g),v,I)}),l}function la(r,o,c){o=Q1(o,r),r=rm(r,o);var l=r==null?r:r[e1(Ct(o))];return l==null?n:at(l,r,c)}function g7(r){return Y0(r)&&De(r)==s0}function ez(r){return Y0(r)&&De(r)==ia}function tz(r){return Y0(r)&&De(r)==N0}function ma(r,o,c,l,g){return r===o?!0:r==null||o==null||!Y0(r)&&!Y0(o)?r!==r&&o!==o:nz(r,o,c,l,ma,g)}function nz(r,o,c,l,g,v){var I=w0(r),O=w0(o),F=I?A0:Ce(r),X=O?A0:Ce(o);F=F==s0?x1:F,X=X==s0?x1:X;var J=F==x1,n0=X==x1,r0=F==X;if(r0&&t6(r)){if(!t6(o))return!1;I=!0,J=!1}if(r0&&!J)return v||(v=new Ut),I||Bn(r)?X7(r,o,c,l,g,v):Pz(r,o,F,c,l,g,v);if(!(c&x)){var c0=J&&R0.call(r,"__wrapped__"),l0=n0&&R0.call(o,"__wrapped__");if(c0||l0){var x0=c0?r.value():r,m0=l0?o.value():o;return v||(v=new Ut),g(x0,m0,c,l,v)}}return r0?(v||(v=new Ut),Mz(r,o,c,l,g,v)):!1}function az(r){return Y0(r)&&Ce(r)==q0}function Wf(r,o,c,l){var g=c.length,v=g,I=!l;if(r==null)return!v;for(r=D0(r);g--;){var O=c[g];if(I&&O[2]?O[1]!==r[O[0]]:!(O[0]in r))return!1}for(;++g<v;){O=c[g];var F=O[0],X=r[F],J=O[1];if(I&&O[2]){if(X===n&&!(F in r))return!1}else{var n0=new Ut;if(l)var r0=l(X,J,F,r,o,n0);if(!(r0===n?ma(J,X,x|T,l,n0):r0))return!1}}return!0}function T7(r){if(!W0(r)||Fz(r))return!1;var o=P1(r)?aG:WU;return o.test(k6(r))}function rz(r){return Y0(r)&&De(r)==aa}function sz(r){return Y0(r)&&Ce(r)==Lt}function iz(r){return Y0(r)&&Ks(r.length)&&!!F0[De(r)]}function w7(r){return typeof r=="function"?r:r==null?Ye:typeof r=="object"?w0(r)?E7(r[0],r[1]):x7(r):Gm(r)}function Zf(r){if(!Ta(r))return bG(r);var o=[];for(var c in D0(r))R0.call(r,c)&&c!="constructor"&&o.push(c);return o}function oz(r){if(!W0(r))return zz(r);var o=Ta(r),c=[];for(var l in r)l=="constructor"&&(o||!R0.call(r,l))||c.push(l);return c}function Yf(r,o){return r<o}function v7(r,o){var c=-1,l=We(r)?j(r.length):[];return X1(r,function(g,v,I){l[++c]=o(g,v,I)}),l}function x7(r){var o=db(r);return o.length==1&&o[0][2]?nm(o[0][0],o[0][1]):function(c){return c===r||Wf(c,r,o)}}function E7(r,o){return ub(r)&&tm(o)?nm(e1(r),o):function(c){var l=xb(c,r);return l===n&&l===o?Eb(c,r):ma(o,l,x|T)}}function Bs(r,o,c,l,g){r!==o&&zf(o,function(v,I){if(g||(g=new Ut),W0(v))fz(r,o,I,c,Bs,l,g);else{var O=l?l(pb(r,I),v,I+"",r,o,g):n;O===n&&(O=v),Hf(r,I,O)}},Ze)}function fz(r,o,c,l,g,v,I){var O=pb(r,c),F=pb(o,c),X=I.get(F);if(X){Hf(r,c,X);return}var J=v?v(O,F,c+"",r,o,I):n,n0=J===n;if(n0){var r0=w0(F),c0=!r0&&t6(F),l0=!r0&&!c0&&Bn(F);J=F,r0||c0||l0?w0(O)?J=O:J0(O)?J=qe(O):c0?(n0=!1,J=N7(F,!0)):l0?(n0=!1,J=D7(F,!0)):J=[]:va(F)||L6(F)?(J=O,L6(O)?J=Om(O):(!W0(O)||P1(O))&&(J=em(F))):n0=!1}n0&&(I.set(F,J),g(J,F,l,v,I),I.delete(F)),Hf(r,c,J)}function A7(r,o){var c=r.length;if(c)return o+=o<0?c:0,C1(o,c)?r[o]:n}function _7(r,o,c){o.length?o=H0(o,function(v){return w0(v)?function(I){return N6(I,v.length===1?v[0]:v)}:v}):o=[Ye];var l=-1;o=H0(o,rt(p0()));var g=v7(r,function(v,I,O){var F=H0(o,function(X){return X(v)});return{criteria:F,index:++l,value:v}});return NH(g,function(v,I){return vz(v,I,c)})}function bz(r,o){return S7(r,o,function(c,l){return Eb(r,l)})}function S7(r,o,c){for(var l=-1,g=o.length,v={};++l<g;){var I=o[l],O=N6(r,I);c(O,I)&&ha(v,Q1(I,r),O)}return v}function dz(r){return function(o){return N6(o,r)}}function Kf(r,o,c,l){var g=l?BH:En,v=-1,I=o.length,O=r;for(r===o&&(o=qe(o)),c&&(O=H0(r,rt(c)));++v<I;)for(var F=0,X=o[v],J=c?c(X):X;(F=g(O,J,F,l))>-1;)O!==r&&As.call(O,F,1),As.call(r,F,1);return r}function I7(r,o){for(var c=r?o.length:0,l=c-1;c--;){var g=o[c];if(c==l||g!==v){var v=g;C1(g)?As.call(r,g,1):eb(r,g)}}return r}function Xf(r,o){return r+Is(o7()*(o-r+1))}function cz(r,o,c,l){for(var g=-1,v=de(Ss((o-r)/(c||1)),0),I=j(v);v--;)I[l?v:++g]=r,r+=c;return I}function Jf(r,o){var c="";if(!r||o<1||o>B)return c;do o%2&&(c+=r),o=Is(o/2),o&&(r+=r);while(o);return c}function E0(r,o){return lb(am(r,o,Ye),r+"")}function uz(r){return d7(Nn(r))}function yz(r,o){var c=Nn(r);return js(c,B6(o,0,c.length))}function ha(r,o,c,l){if(!W0(r))return r;o=Q1(o,r);for(var g=-1,v=o.length,I=v-1,O=r;O!=null&&++g<v;){var F=e1(o[g]),X=c;if(F==="__proto__"||F==="constructor"||F==="prototype")return r;if(g!=I){var J=O[F];X=l?l(J,F,O):n,X===n&&(X=W0(J)?J:C1(o[g+1])?[]:{})}ya(O,F,X),O=O[F]}return r}var C7=Cs?function(r,o){return Cs.set(r,o),r}:Ye,pz=_s?function(r,o){return _s(r,"toString",{configurable:!0,enumerable:!1,value:_b(o),writable:!0})}:Ye;function lz(r){return js(Nn(r))}function It(r,o,c){var l=-1,g=r.length;o<0&&(o=-o>g?0:g+o),c=c>g?g:c,c<0&&(c+=g),g=o>c?0:c-o>>>0,o>>>=0;for(var v=j(g);++l<g;)v[l]=r[l+o];return v}function mz(r,o){var c;return X1(r,function(l,g,v){return c=o(l,g,v),!c}),!!c}function Ns(r,o,c){var l=0,g=r==null?l:r.length;if(typeof o=="number"&&o===o&&g<=o0){for(;l<g;){var v=l+g>>>1,I=r[v];I!==null&&!it(I)&&(c?I<=o:I<o)?l=v+1:g=v}return g}return Qf(r,o,Ye,c)}function Qf(r,o,c,l){var g=0,v=r==null?0:r.length;if(v===0)return 0;o=c(o);for(var I=o!==o,O=o===null,F=it(o),X=o===n;g<v;){var J=Is((g+v)/2),n0=c(r[J]),r0=n0!==n,c0=n0===null,l0=n0===n0,x0=it(n0);if(I)var m0=l||l0;else X?m0=l0&&(l||r0):O?m0=l0&&r0&&(l||!c0):F?m0=l0&&r0&&!c0&&(l||!x0):c0||x0?m0=!1:m0=l?n0<=o:n0<o;m0?g=J+1:v=J}return Ie(v,a0)}function P7(r,o){for(var c=-1,l=r.length,g=0,v=[];++c<l;){var I=r[c],O=o?o(I):I;if(!c||!Ht(O,F)){var F=O;v[g++]=I===0?0:I}}return v}function M7(r){return typeof r=="number"?r:it(r)?P:+r}function st(r){if(typeof r=="string")return r;if(w0(r))return H0(r,st)+"";if(it(r))return f7?f7.call(r):"";var o=r+"";return o=="0"&&1/r==-k?"-0":o}function J1(r,o,c){var l=-1,g=ps,v=r.length,I=!0,O=[],F=O;if(c)I=!1,g=Cf;else if(v>=s){var X=o?null:Iz(r);if(X)return ms(X);I=!1,g=oa,F=new R6}else F=o?[]:O;e:for(;++l<v;){var J=r[l],n0=o?o(J):J;if(J=c||J!==0?J:0,I&&n0===n0){for(var r0=F.length;r0--;)if(F[r0]===n0)continue e;o&&F.push(n0),O.push(J)}else g(F,n0,c)||(F!==O&&F.push(n0),O.push(J))}return O}function eb(r,o){return o=Q1(o,r),r=rm(r,o),r==null||delete r[e1(Ct(o))]}function $7(r,o,c,l){return ha(r,o,c(N6(r,o)),l)}function Ds(r,o,c,l){for(var g=r.length,v=l?g:-1;(l?v--:++v<g)&&o(r[v],v,r););return c?It(r,l?0:v,l?v+1:g):It(r,l?v+1:0,l?g:v)}function O7(r,o){var c=r;return c instanceof I0&&(c=c.value()),Pf(o,function(l,g){return g.func.apply(g.thisArg,Z1([l],g.args))},c)}function tb(r,o,c){var l=r.length;if(l<2)return l?J1(r[0]):[];for(var g=-1,v=j(l);++g<l;)for(var I=r[g],O=-1;++O<l;)O!=g&&(v[g]=pa(v[g]||I,r[O],o,c));return J1(we(v,1),o,c)}function R7(r,o,c){for(var l=-1,g=r.length,v=o.length,I={};++l<g;){var O=l<v?o[l]:n;c(I,r[l],O)}return I}function nb(r){return J0(r)?r:[]}function ab(r){return typeof r=="function"?r:Ye}function Q1(r,o){return w0(r)?r:ub(r,o)?[r]:fm(O0(r))}var hz=E0;function e6(r,o,c){var l=r.length;return c=c===n?l:c,!o&&c>=l?r:It(r,o,c)}var B7=rG||function(r){return Te.clearTimeout(r)};function N7(r,o){if(o)return r.slice();var c=r.length,l=n7?n7(c):new r.constructor(c);return r.copy(l),l}function rb(r){var o=new r.constructor(r.byteLength);return new xs(o).set(new xs(r)),o}function gz(r,o){var c=o?rb(r.buffer):r.buffer;return new r.constructor(c,r.byteOffset,r.byteLength)}function Tz(r){var o=new r.constructor(r.source,g4.exec(r));return o.lastIndex=r.lastIndex,o}function wz(r){return ua?D0(ua.call(r)):{}}function D7(r,o){var c=o?rb(r.buffer):r.buffer;return new r.constructor(c,r.byteOffset,r.length)}function k7(r,o){if(r!==o){var c=r!==n,l=r===null,g=r===r,v=it(r),I=o!==n,O=o===null,F=o===o,X=it(o);if(!O&&!X&&!v&&r>o||v&&I&&F&&!O&&!X||l&&I&&F||!c&&F||!g)return 1;if(!l&&!v&&!X&&r<o||X&&c&&g&&!l&&!v||O&&c&&g||!I&&g||!F)return-1}return 0}function vz(r,o,c){for(var l=-1,g=r.criteria,v=o.criteria,I=g.length,O=c.length;++l<I;){var F=k7(g[l],v[l]);if(F){if(l>=O)return F;var X=c[l];return F*(X=="desc"?-1:1)}}return r.index-o.index}function L7(r,o,c,l){for(var g=-1,v=r.length,I=c.length,O=-1,F=o.length,X=de(v-I,0),J=j(F+X),n0=!l;++O<F;)J[O]=o[O];for(;++g<I;)(n0||g<v)&&(J[c[g]]=r[g]);for(;X--;)J[O++]=r[g++];return J}function F7(r,o,c,l){for(var g=-1,v=r.length,I=-1,O=c.length,F=-1,X=o.length,J=de(v-O,0),n0=j(J+X),r0=!l;++g<J;)n0[g]=r[g];for(var c0=g;++F<X;)n0[c0+F]=o[F];for(;++I<O;)(r0||g<v)&&(n0[c0+c[I]]=r[g++]);return n0}function qe(r,o){var c=-1,l=r.length;for(o||(o=j(l));++c<l;)o[c]=r[c];return o}function Qt(r,o,c,l){var g=!c;c||(c={});for(var v=-1,I=o.length;++v<I;){var O=o[v],F=l?l(c[O],r[O],O,c,r):n;F===n&&(F=r[O]),g?_1(c,O,F):ya(c,O,F)}return c}function xz(r,o){return Qt(r,cb(r),o)}function Ez(r,o){return Qt(r,J7(r),o)}function ks(r,o){return function(c,l){var g=w0(c)?CH:VG,v=o?o():{};return g(c,r,p0(l,2),v)}}function $n(r){return E0(function(o,c){var l=-1,g=c.length,v=g>1?c[g-1]:n,I=g>2?c[2]:n;for(v=r.length>3&&typeof v=="function"?(g--,v):n,I&&ke(c[0],c[1],I)&&(v=g<3?n:v,g=1),o=D0(o);++l<g;){var O=c[l];O&&r(o,O,l,v)}return o})}function U7(r,o){return function(c,l){if(c==null)return c;if(!We(c))return r(c,l);for(var g=c.length,v=o?g:-1,I=D0(c);(o?v--:++v<g)&&l(I[v],v,I)!==!1;);return c}}function H7(r){return function(o,c,l){for(var g=-1,v=D0(o),I=l(o),O=I.length;O--;){var F=I[r?O:++g];if(c(v[F],F,v)===!1)break}return o}}function Az(r,o,c){var l=o&C,g=ga(r);function v(){var I=this&&this!==Te&&this instanceof v?g:r;return I.apply(l?c:this,arguments)}return v}function G7(r){return function(o){o=O0(o);var c=An(o)?Ft(o):n,l=c?c[0]:o.charAt(0),g=c?e6(c,1).join(""):o.slice(1);return l[r]()+g}}function On(r){return function(o){return Pf(Um(Fm(o).replace(pH,"")),r,"")}}function ga(r){return function(){var o=arguments;switch(o.length){case 0:return new r;case 1:return new r(o[0]);case 2:return new r(o[0],o[1]);case 3:return new r(o[0],o[1],o[2]);case 4:return new r(o[0],o[1],o[2],o[3]);case 5:return new r(o[0],o[1],o[2],o[3],o[4]);case 6:return new r(o[0],o[1],o[2],o[3],o[4],o[5]);case 7:return new r(o[0],o[1],o[2],o[3],o[4],o[5],o[6])}var c=Mn(r.prototype),l=r.apply(c,o);return W0(l)?l:c}}function _z(r,o,c){var l=ga(r);function g(){for(var v=arguments.length,I=j(v),O=v,F=Rn(g);O--;)I[O]=arguments[O];var X=v<3&&I[0]!==F&&I[v-1]!==F?[]:Y1(I,F);if(v-=X.length,v<c)return W7(r,o,Ls,g.placeholder,n,I,X,n,n,c-v);var J=this&&this!==Te&&this instanceof g?l:r;return at(J,this,I)}return g}function z7(r){return function(o,c,l){var g=D0(o);if(!We(o)){var v=p0(c,3);o=me(o),c=function(O){return v(g[O],O,g)}}var I=r(o,c,l);return I>-1?g[v?o[I]:I]:n}}function j7(r){return I1(function(o){var c=o.length,l=c,g=_t.prototype.thru;for(r&&o.reverse();l--;){var v=o[l];if(typeof v!="function")throw new At(f);if(g&&!I&&Gs(v)=="wrapper")var I=new _t([],!0)}for(l=I?l:c;++l<c;){v=o[l];var O=Gs(v),F=O=="wrapper"?bb(v):n;F&&yb(F[0])&&F[1]==(R|A|$|D)&&!F[4].length&&F[9]==1?I=I[Gs(F[0])].apply(I,F[3]):I=v.length==1&&yb(v)?I[O]():I.thru(v)}return function(){var X=arguments,J=X[0];if(I&&X.length==1&&w0(J))return I.plant(J).value();for(var n0=0,r0=c?o[n0].apply(this,X):J;++n0<c;)r0=o[n0].call(this,r0);return r0}})}function Ls(r,o,c,l,g,v,I,O,F,X){var J=o&R,n0=o&C,r0=o&S,c0=o&(A|E),l0=o&q,x0=r0?n:ga(r);function m0(){for(var _0=arguments.length,C0=j(_0),ot=_0;ot--;)C0[ot]=arguments[ot];if(c0)var Le=Rn(m0),ft=kH(C0,Le);if(l&&(C0=L7(C0,l,g,c0)),v&&(C0=F7(C0,v,I,c0)),_0-=ft,c0&&_0<X){var Q0=Y1(C0,Le);return W7(r,o,Ls,m0.placeholder,c,C0,Q0,O,F,X-_0)}var Gt=n0?c:this,$1=r0?Gt[r]:r;return _0=C0.length,O?C0=Vz(C0,O):l0&&_0>1&&C0.reverse(),J&&F<_0&&(C0.length=F),this&&this!==Te&&this instanceof m0&&($1=x0||ga($1)),$1.apply(Gt,C0)}return m0}function V7(r,o){return function(c,l){return QG(c,r,o(l),{})}}function Fs(r,o){return function(c,l){var g;if(c===n&&l===n)return o;if(c!==n&&(g=c),l!==n){if(g===n)return l;typeof c=="string"||typeof l=="string"?(c=st(c),l=st(l)):(c=M7(c),l=M7(l)),g=r(c,l)}return g}}function sb(r){return I1(function(o){return o=H0(o,rt(p0())),E0(function(c){var l=this;return r(o,function(g){return at(g,l,c)})})})}function Us(r,o){o=o===n?" ":st(o);var c=o.length;if(c<2)return c?Jf(o,r):o;var l=Jf(o,Ss(r/_n(o)));return An(o)?e6(Ft(l),0,r).join(""):l.slice(0,r)}function Sz(r,o,c,l){var g=o&C,v=ga(r);function I(){for(var O=-1,F=arguments.length,X=-1,J=l.length,n0=j(J+F),r0=this&&this!==Te&&this instanceof I?v:r;++X<J;)n0[X]=l[X];for(;F--;)n0[X++]=arguments[++O];return at(r0,g?c:this,n0)}return I}function q7(r){return function(o,c,l){return l&&typeof l!="number"&&ke(o,c,l)&&(c=l=n),o=M1(o),c===n?(c=o,o=0):c=M1(c),l=l===n?o<c?1:-1:M1(l),cz(o,c,l,r)}}function Hs(r){return function(o,c){return typeof o=="string"&&typeof c=="string"||(o=Pt(o),c=Pt(c)),r(o,c)}}function W7(r,o,c,l,g,v,I,O,F,X){var J=o&A,n0=J?I:n,r0=J?n:I,c0=J?v:n,l0=J?n:v;o|=J?$:L,o&=~(J?L:$),o&H||(o&=-4);var x0=[r,o,g,c0,n0,l0,r0,O,F,X],m0=c.apply(n,x0);return yb(r)&&sm(m0,x0),m0.placeholder=l,im(m0,r,o)}function ib(r){var o=be[r];return function(c,l){if(c=Pt(c),l=l==null?0:Ie(v0(l),292),l&&i7(c)){var g=(O0(c)+"e").split("e"),v=o(g[0]+"e"+(+g[1]+l));return g=(O0(v)+"e").split("e"),+(g[0]+"e"+(+g[1]-l))}return o(c)}}var Iz=Cn&&1/ms(new Cn([,-0]))[1]==k?function(r){return new Cn(r)}:Cb;function Z7(r){return function(o){var c=Ce(o);return c==q0?Df(o):c==Lt?jH(o):DH(o,r(o))}}function S1(r,o,c,l,g,v,I,O){var F=o&S;if(!F&&typeof r!="function")throw new At(f);var X=l?l.length:0;if(X||(o&=-97,l=g=n),I=I===n?I:de(v0(I),0),O=O===n?O:v0(O),X-=g?g.length:0,o&L){var J=l,n0=g;l=g=n}var r0=F?n:bb(r),c0=[r,o,c,l,g,J,n0,v,I,O];if(r0&&Gz(c0,r0),r=c0[0],o=c0[1],c=c0[2],l=c0[3],g=c0[4],O=c0[9]=c0[9]===n?F?0:r.length:de(c0[9]-X,0),!O&&o&(A|E)&&(o&=-25),!o||o==C)var l0=Az(r,o,c);else o==A||o==E?l0=_z(r,o,O):(o==$||o==(C|$))&&!g.length?l0=Sz(r,o,c,l):l0=Ls.apply(n,c0);var x0=r0?C7:sm;return im(x0(l0,c0),r,o)}function Y7(r,o,c,l){return r===n||Ht(r,In[c])&&!R0.call(l,c)?o:r}function K7(r,o,c,l,g,v){return W0(r)&&W0(o)&&(v.set(o,r),Bs(r,o,n,K7,v),v.delete(o)),r}function Cz(r){return va(r)?n:r}function X7(r,o,c,l,g,v){var I=c&x,O=r.length,F=o.length;if(O!=F&&!(I&&F>O))return!1;var X=v.get(r),J=v.get(o);if(X&&J)return X==o&&J==r;var n0=-1,r0=!0,c0=c&T?new R6:n;for(v.set(r,o),v.set(o,r);++n0<O;){var l0=r[n0],x0=o[n0];if(l)var m0=I?l(x0,l0,n0,o,r,v):l(l0,x0,n0,r,o,v);if(m0!==n){if(m0)continue;r0=!1;break}if(c0){if(!Mf(o,function(_0,C0){if(!oa(c0,C0)&&(l0===_0||g(l0,_0,c,l,v)))return c0.push(C0)})){r0=!1;break}}else if(!(l0===x0||g(l0,x0,c,l,v))){r0=!1;break}}return v.delete(r),v.delete(o),r0}function Pz(r,o,c,l,g,v,I){switch(c){case vn:if(r.byteLength!=o.byteLength||r.byteOffset!=o.byteOffset)return!1;r=r.buffer,o=o.buffer;case ia:return!(r.byteLength!=o.byteLength||!v(new xs(r),new xs(o)));case $0:case N0:case ge:return Ht(+r,+o);case Ve:return r.name==o.name&&r.message==o.message;case aa:case ra:return r==o+"";case q0:var O=Df;case Lt:var F=l&x;if(O||(O=ms),r.size!=o.size&&!F)return!1;var X=I.get(r);if(X)return X==o;l|=T,I.set(r,o);var J=X7(O(r),O(o),l,g,v,I);return I.delete(r),J;case ds:if(ua)return ua.call(r)==ua.call(o)}return!1}function Mz(r,o,c,l,g,v){var I=c&x,O=ob(r),F=O.length,X=ob(o),J=X.length;if(F!=J&&!I)return!1;for(var n0=F;n0--;){var r0=O[n0];if(!(I?r0 in o:R0.call(o,r0)))return!1}var c0=v.get(r),l0=v.get(o);if(c0&&l0)return c0==o&&l0==r;var x0=!0;v.set(r,o),v.set(o,r);for(var m0=I;++n0<F;){r0=O[n0];var _0=r[r0],C0=o[r0];if(l)var ot=I?l(C0,_0,r0,o,r,v):l(_0,C0,r0,r,o,v);if(!(ot===n?_0===C0||g(_0,C0,c,l,v):ot)){x0=!1;break}m0||(m0=r0=="constructor")}if(x0&&!m0){var Le=r.constructor,ft=o.constructor;Le!=ft&&"constructor"in r&&"constructor"in o&&!(typeof Le=="function"&&Le instanceof Le&&typeof ft=="function"&&ft instanceof ft)&&(x0=!1)}return v.delete(r),v.delete(o),x0}function I1(r){return lb(am(r,n,um),r+"")}function ob(r){return h7(r,me,cb)}function fb(r){return h7(r,Ze,J7)}var bb=Cs?function(r){return Cs.get(r)}:Cb;function Gs(r){for(var o=r.name+"",c=Pn[o],l=R0.call(Pn,o)?c.length:0;l--;){var g=c[l],v=g.func;if(v==null||v==r)return g.name}return o}function Rn(r){var o=R0.call(w,"placeholder")?w:r;return o.placeholder}function p0(){var r=w.iteratee||Sb;return r=r===Sb?w7:r,arguments.length?r(arguments[0],arguments[1]):r}function zs(r,o){var c=r.__data__;return Lz(o)?c[typeof o=="string"?"string":"hash"]:c.map}function db(r){for(var o=me(r),c=o.length;c--;){var l=o[c],g=r[l];o[c]=[l,g,tm(g)]}return o}function D6(r,o){var c=HH(r,o);return T7(c)?c:n}function $z(r){var o=R0.call(r,$6),c=r[$6];try{r[$6]=n;var l=!0}catch{}var g=ws.call(r);return l&&(o?r[$6]=c:delete r[$6]),g}var cb=Lf?function(r){return r==null?[]:(r=D0(r),W1(Lf(r),function(o){return r7.call(r,o)}))}:Pb,J7=Lf?function(r){for(var o=[];r;)Z1(o,cb(r)),r=Es(r);return o}:Pb,Ce=De;(Ff&&Ce(new Ff(new ArrayBuffer(1)))!=vn||ba&&Ce(new ba)!=q0||Uf&&Ce(Uf.resolve())!=p4||Cn&&Ce(new Cn)!=Lt||da&&Ce(new da)!=sa)&&(Ce=function(r){var o=De(r),c=o==x1?r.constructor:n,l=c?k6(c):"";if(l)switch(l){case yG:return vn;case pG:return q0;case lG:return p4;case mG:return Lt;case hG:return sa}return o});function Oz(r,o,c){for(var l=-1,g=c.length;++l<g;){var v=c[l],I=v.size;switch(v.type){case"drop":r+=I;break;case"dropRight":o-=I;break;case"take":o=Ie(o,r+I);break;case"takeRight":r=de(r,o-I);break}}return{start:r,end:o}}function Rz(r){var o=r.match(FU);return o?o[1].split(UU):[]}function Q7(r,o,c){o=Q1(o,r);for(var l=-1,g=o.length,v=!1;++l<g;){var I=e1(o[l]);if(!(v=r!=null&&c(r,I)))break;r=r[I]}return v||++l!=g?v:(g=r==null?0:r.length,!!g&&Ks(g)&&C1(I,g)&&(w0(r)||L6(r)))}function Bz(r){var o=r.length,c=new r.constructor(o);return o&&typeof r[0]=="string"&&R0.call(r,"index")&&(c.index=r.index,c.input=r.input),c}function em(r){return typeof r.constructor=="function"&&!Ta(r)?Mn(Es(r)):{}}function Nz(r,o,c){var l=r.constructor;switch(o){case ia:return rb(r);case $0:case N0:return new l(+r);case vn:return gz(r,c);case df:case cf:case uf:case yf:case pf:case lf:case mf:case hf:case gf:return D7(r,c);case q0:return new l;case ge:case ra:return new l(r);case aa:return Tz(r);case Lt:return new l;case ds:return wz(r)}}function Dz(r,o){var c=o.length;if(!c)return r;var l=c-1;return o[l]=(c>1?"& ":"")+o[l],o=o.join(c>2?", ":" "),r.replace(LU,`{
78
+ /* [wrapped with `+o+`] */
79
+ `)}function kz(r){return w0(r)||L6(r)||!!(s7&&r&&r[s7])}function C1(r,o){var c=typeof r;return o=o??B,!!o&&(c=="number"||c!="symbol"&&YU.test(r))&&r>-1&&r%1==0&&r<o}function ke(r,o,c){if(!W0(c))return!1;var l=typeof o;return(l=="number"?We(c)&&C1(o,c.length):l=="string"&&o in c)?Ht(c[o],r):!1}function ub(r,o){if(w0(r))return!1;var c=typeof r;return c=="number"||c=="symbol"||c=="boolean"||r==null||it(r)?!0:BU.test(r)||!RU.test(r)||o!=null&&r in D0(o)}function Lz(r){var o=typeof r;return o=="string"||o=="number"||o=="symbol"||o=="boolean"?r!=="__proto__":r===null}function yb(r){var o=Gs(r),c=w[o];if(typeof c!="function"||!(o in I0.prototype))return!1;if(r===c)return!0;var l=bb(c);return!!l&&r===l[0]}function Fz(r){return!!t7&&t7 in r}var Uz=gs?P1:Mb;function Ta(r){var o=r&&r.constructor,c=typeof o=="function"&&o.prototype||In;return r===c}function tm(r){return r===r&&!W0(r)}function nm(r,o){return function(c){return c==null?!1:c[r]===o&&(o!==n||r in D0(c))}}function Hz(r){var o=Zs(r,function(l){return c.size===y&&c.clear(),l}),c=o.cache;return o}function Gz(r,o){var c=r[1],l=o[1],g=c|l,v=g<(C|S|R),I=l==R&&c==A||l==R&&c==D&&r[7].length<=o[8]||l==(R|D)&&o[7].length<=o[8]&&c==A;if(!(v||I))return r;l&C&&(r[2]=o[2],g|=c&C?0:H);var O=o[3];if(O){var F=r[3];r[3]=F?L7(F,O,o[4]):O,r[4]=F?Y1(r[3],u):o[4]}return O=o[5],O&&(F=r[5],r[5]=F?F7(F,O,o[6]):O,r[6]=F?Y1(r[5],u):o[6]),O=o[7],O&&(r[7]=O),l&R&&(r[8]=r[8]==null?o[8]:Ie(r[8],o[8])),r[9]==null&&(r[9]=o[9]),r[0]=o[0],r[1]=g,r}function zz(r){var o=[];if(r!=null)for(var c in D0(r))o.push(c);return o}function jz(r){return ws.call(r)}function am(r,o,c){return o=de(o===n?r.length-1:o,0),function(){for(var l=arguments,g=-1,v=de(l.length-o,0),I=j(v);++g<v;)I[g]=l[o+g];g=-1;for(var O=j(o+1);++g<o;)O[g]=l[g];return O[o]=c(I),at(r,this,O)}}function rm(r,o){return o.length<2?r:N6(r,It(o,0,-1))}function Vz(r,o){for(var c=r.length,l=Ie(o.length,c),g=qe(r);l--;){var v=o[l];r[l]=C1(v,c)?g[v]:n}return r}function pb(r,o){if(!(o==="constructor"&&typeof r[o]=="function")&&o!="__proto__")return r[o]}var sm=om(C7),wa=iG||function(r,o){return Te.setTimeout(r,o)},lb=om(pz);function im(r,o,c){var l=o+"";return lb(r,Dz(l,qz(Rz(l),c)))}function om(r){var o=0,c=0;return function(){var l=dG(),g=W-(l-c);if(c=l,g>0){if(++o>=K)return arguments[0]}else o=0;return r.apply(n,arguments)}}function js(r,o){var c=-1,l=r.length,g=l-1;for(o=o===n?l:o;++c<o;){var v=Xf(c,g),I=r[v];r[v]=r[c],r[c]=I}return r.length=o,r}var fm=Hz(function(r){var o=[];return r.charCodeAt(0)===46&&o.push(""),r.replace(NU,function(c,l,g,v){o.push(g?v.replace(zU,"$1"):l||c)}),o});function e1(r){if(typeof r=="string"||it(r))return r;var o=r+"";return o=="0"&&1/r==-k?"-0":o}function k6(r){if(r!=null){try{return Ts.call(r)}catch{}try{return r+""}catch{}}return""}function qz(r,o){return Et(y0,function(c){var l="_."+c[0];o&c[1]&&!ps(r,l)&&r.push(l)}),r.sort()}function bm(r){if(r instanceof I0)return r.clone();var o=new _t(r.__wrapped__,r.__chain__);return o.__actions__=qe(r.__actions__),o.__index__=r.__index__,o.__values__=r.__values__,o}function Wz(r,o,c){(c?ke(r,o,c):o===n)?o=1:o=de(v0(o),0);var l=r==null?0:r.length;if(!l||o<1)return[];for(var g=0,v=0,I=j(Ss(l/o));g<l;)I[v++]=It(r,g,g+=o);return I}function Zz(r){for(var o=-1,c=r==null?0:r.length,l=0,g=[];++o<c;){var v=r[o];v&&(g[l++]=v)}return g}function Yz(){var r=arguments.length;if(!r)return[];for(var o=j(r-1),c=arguments[0],l=r;l--;)o[l-1]=arguments[l];return Z1(w0(c)?qe(c):[c],we(o,1))}var Kz=E0(function(r,o){return J0(r)?pa(r,we(o,1,J0,!0)):[]}),Xz=E0(function(r,o){var c=Ct(o);return J0(c)&&(c=n),J0(r)?pa(r,we(o,1,J0,!0),p0(c,2)):[]}),Jz=E0(function(r,o){var c=Ct(o);return J0(c)&&(c=n),J0(r)?pa(r,we(o,1,J0,!0),n,c):[]});function Qz(r,o,c){var l=r==null?0:r.length;return l?(o=c||o===n?1:v0(o),It(r,o<0?0:o,l)):[]}function ej(r,o,c){var l=r==null?0:r.length;return l?(o=c||o===n?1:v0(o),o=l-o,It(r,0,o<0?0:o)):[]}function tj(r,o){return r&&r.length?Ds(r,p0(o,3),!0,!0):[]}function nj(r,o){return r&&r.length?Ds(r,p0(o,3),!0):[]}function aj(r,o,c,l){var g=r==null?0:r.length;return g?(c&&typeof c!="number"&&ke(r,o,c)&&(c=0,l=g),YG(r,o,c,l)):[]}function dm(r,o,c){var l=r==null?0:r.length;if(!l)return-1;var g=c==null?0:v0(c);return g<0&&(g=de(l+g,0)),ls(r,p0(o,3),g)}function cm(r,o,c){var l=r==null?0:r.length;if(!l)return-1;var g=l-1;return c!==n&&(g=v0(c),g=c<0?de(l+g,0):Ie(g,l-1)),ls(r,p0(o,3),g,!0)}function um(r){var o=r==null?0:r.length;return o?we(r,1):[]}function rj(r){var o=r==null?0:r.length;return o?we(r,k):[]}function sj(r,o){var c=r==null?0:r.length;return c?(o=o===n?1:v0(o),we(r,o)):[]}function ij(r){for(var o=-1,c=r==null?0:r.length,l={};++o<c;){var g=r[o];l[g[0]]=g[1]}return l}function ym(r){return r&&r.length?r[0]:n}function oj(r,o,c){var l=r==null?0:r.length;if(!l)return-1;var g=c==null?0:v0(c);return g<0&&(g=de(l+g,0)),En(r,o,g)}function fj(r){var o=r==null?0:r.length;return o?It(r,0,-1):[]}var bj=E0(function(r){var o=H0(r,nb);return o.length&&o[0]===r[0]?qf(o):[]}),dj=E0(function(r){var o=Ct(r),c=H0(r,nb);return o===Ct(c)?o=n:c.pop(),c.length&&c[0]===r[0]?qf(c,p0(o,2)):[]}),cj=E0(function(r){var o=Ct(r),c=H0(r,nb);return o=typeof o=="function"?o:n,o&&c.pop(),c.length&&c[0]===r[0]?qf(c,n,o):[]});function uj(r,o){return r==null?"":fG.call(r,o)}function Ct(r){var o=r==null?0:r.length;return o?r[o-1]:n}function yj(r,o,c){var l=r==null?0:r.length;if(!l)return-1;var g=l;return c!==n&&(g=v0(c),g=g<0?de(l+g,0):Ie(g,l-1)),o===o?qH(r,o,g):ls(r,W4,g,!0)}function pj(r,o){return r&&r.length?A7(r,v0(o)):n}var lj=E0(pm);function pm(r,o){return r&&r.length&&o&&o.length?Kf(r,o):r}function mj(r,o,c){return r&&r.length&&o&&o.length?Kf(r,o,p0(c,2)):r}function hj(r,o,c){return r&&r.length&&o&&o.length?Kf(r,o,n,c):r}var gj=I1(function(r,o){var c=r==null?0:r.length,l=Gf(r,o);return I7(r,H0(o,function(g){return C1(g,c)?+g:g}).sort(k7)),l});function Tj(r,o){var c=[];if(!(r&&r.length))return c;var l=-1,g=[],v=r.length;for(o=p0(o,3);++l<v;){var I=r[l];o(I,l,r)&&(c.push(I),g.push(l))}return I7(r,g),c}function mb(r){return r==null?r:uG.call(r)}function wj(r,o,c){var l=r==null?0:r.length;return l?(c&&typeof c!="number"&&ke(r,o,c)?(o=0,c=l):(o=o==null?0:v0(o),c=c===n?l:v0(c)),It(r,o,c)):[]}function vj(r,o){return Ns(r,o)}function xj(r,o,c){return Qf(r,o,p0(c,2))}function Ej(r,o){var c=r==null?0:r.length;if(c){var l=Ns(r,o);if(l<c&&Ht(r[l],o))return l}return-1}function Aj(r,o){return Ns(r,o,!0)}function _j(r,o,c){return Qf(r,o,p0(c,2),!0)}function Sj(r,o){var c=r==null?0:r.length;if(c){var l=Ns(r,o,!0)-1;if(Ht(r[l],o))return l}return-1}function Ij(r){return r&&r.length?P7(r):[]}function Cj(r,o){return r&&r.length?P7(r,p0(o,2)):[]}function Pj(r){var o=r==null?0:r.length;return o?It(r,1,o):[]}function Mj(r,o,c){return r&&r.length?(o=c||o===n?1:v0(o),It(r,0,o<0?0:o)):[]}function $j(r,o,c){var l=r==null?0:r.length;return l?(o=c||o===n?1:v0(o),o=l-o,It(r,o<0?0:o,l)):[]}function Oj(r,o){return r&&r.length?Ds(r,p0(o,3),!1,!0):[]}function Rj(r,o){return r&&r.length?Ds(r,p0(o,3)):[]}var Bj=E0(function(r){return J1(we(r,1,J0,!0))}),Nj=E0(function(r){var o=Ct(r);return J0(o)&&(o=n),J1(we(r,1,J0,!0),p0(o,2))}),Dj=E0(function(r){var o=Ct(r);return o=typeof o=="function"?o:n,J1(we(r,1,J0,!0),n,o)});function kj(r){return r&&r.length?J1(r):[]}function Lj(r,o){return r&&r.length?J1(r,p0(o,2)):[]}function Fj(r,o){return o=typeof o=="function"?o:n,r&&r.length?J1(r,n,o):[]}function hb(r){if(!(r&&r.length))return[];var o=0;return r=W1(r,function(c){if(J0(c))return o=de(c.length,o),!0}),Bf(o,function(c){return H0(r,$f(c))})}function lm(r,o){if(!(r&&r.length))return[];var c=hb(r);return o==null?c:H0(c,function(l){return at(o,n,l)})}var Uj=E0(function(r,o){return J0(r)?pa(r,o):[]}),Hj=E0(function(r){return tb(W1(r,J0))}),Gj=E0(function(r){var o=Ct(r);return J0(o)&&(o=n),tb(W1(r,J0),p0(o,2))}),zj=E0(function(r){var o=Ct(r);return o=typeof o=="function"?o:n,tb(W1(r,J0),n,o)}),jj=E0(hb);function Vj(r,o){return R7(r||[],o||[],ya)}function qj(r,o){return R7(r||[],o||[],ha)}var Wj=E0(function(r){var o=r.length,c=o>1?r[o-1]:n;return c=typeof c=="function"?(r.pop(),c):n,lm(r,c)});function mm(r){var o=w(r);return o.__chain__=!0,o}function Zj(r,o){return o(r),r}function Vs(r,o){return o(r)}var Yj=I1(function(r){var o=r.length,c=o?r[0]:0,l=this.__wrapped__,g=function(v){return Gf(v,r)};return o>1||this.__actions__.length||!(l instanceof I0)||!C1(c)?this.thru(g):(l=l.slice(c,+c+(o?1:0)),l.__actions__.push({func:Vs,args:[g],thisArg:n}),new _t(l,this.__chain__).thru(function(v){return o&&!v.length&&v.push(n),v}))});function Kj(){return mm(this)}function Xj(){return new _t(this.value(),this.__chain__)}function Jj(){this.__values__===n&&(this.__values__=Mm(this.value()));var r=this.__index__>=this.__values__.length,o=r?n:this.__values__[this.__index__++];return{done:r,value:o}}function Qj(){return this}function eV(r){for(var o,c=this;c instanceof Ms;){var l=bm(c);l.__index__=0,l.__values__=n,o?g.__wrapped__=l:o=l;var g=l;c=c.__wrapped__}return g.__wrapped__=r,o}function tV(){var r=this.__wrapped__;if(r instanceof I0){var o=r;return this.__actions__.length&&(o=new I0(this)),o=o.reverse(),o.__actions__.push({func:Vs,args:[mb],thisArg:n}),new _t(o,this.__chain__)}return this.thru(mb)}function nV(){return O7(this.__wrapped__,this.__actions__)}var aV=ks(function(r,o,c){R0.call(r,c)?++r[c]:_1(r,c,1)});function rV(r,o,c){var l=w0(r)?V4:ZG;return c&&ke(r,o,c)&&(o=n),l(r,p0(o,3))}function sV(r,o){var c=w0(r)?W1:l7;return c(r,p0(o,3))}var iV=z7(dm),oV=z7(cm);function fV(r,o){return we(qs(r,o),1)}function bV(r,o){return we(qs(r,o),k)}function dV(r,o,c){return c=c===n?1:v0(c),we(qs(r,o),c)}function hm(r,o){var c=w0(r)?Et:X1;return c(r,p0(o,3))}function gm(r,o){var c=w0(r)?PH:p7;return c(r,p0(o,3))}var cV=ks(function(r,o,c){R0.call(r,c)?r[c].push(o):_1(r,c,[o])});function uV(r,o,c,l){r=We(r)?r:Nn(r),c=c&&!l?v0(c):0;var g=r.length;return c<0&&(c=de(g+c,0)),Xs(r)?c<=g&&r.indexOf(o,c)>-1:!!g&&En(r,o,c)>-1}var yV=E0(function(r,o,c){var l=-1,g=typeof o=="function",v=We(r)?j(r.length):[];return X1(r,function(I){v[++l]=g?at(o,I,c):la(I,o,c)}),v}),pV=ks(function(r,o,c){_1(r,c,o)});function qs(r,o){var c=w0(r)?H0:v7;return c(r,p0(o,3))}function lV(r,o,c,l){return r==null?[]:(w0(o)||(o=o==null?[]:[o]),c=l?n:c,w0(c)||(c=c==null?[]:[c]),_7(r,o,c))}var mV=ks(function(r,o,c){r[c?0:1].push(o)},function(){return[[],[]]});function hV(r,o,c){var l=w0(r)?Pf:Y4,g=arguments.length<3;return l(r,p0(o,4),c,g,X1)}function gV(r,o,c){var l=w0(r)?MH:Y4,g=arguments.length<3;return l(r,p0(o,4),c,g,p7)}function TV(r,o){var c=w0(r)?W1:l7;return c(r,Ys(p0(o,3)))}function wV(r){var o=w0(r)?d7:uz;return o(r)}function vV(r,o,c){(c?ke(r,o,c):o===n)?o=1:o=v0(o);var l=w0(r)?zG:yz;return l(r,o)}function xV(r){var o=w0(r)?jG:lz;return o(r)}function EV(r){if(r==null)return 0;if(We(r))return Xs(r)?_n(r):r.length;var o=Ce(r);return o==q0||o==Lt?r.size:Zf(r).length}function AV(r,o,c){var l=w0(r)?Mf:mz;return c&&ke(r,o,c)&&(o=n),l(r,p0(o,3))}var _V=E0(function(r,o){if(r==null)return[];var c=o.length;return c>1&&ke(r,o[0],o[1])?o=[]:c>2&&ke(o[0],o[1],o[2])&&(o=[o[0]]),_7(r,we(o,1),[])}),Ws=sG||function(){return Te.Date.now()};function SV(r,o){if(typeof o!="function")throw new At(f);return r=v0(r),function(){if(--r<1)return o.apply(this,arguments)}}function Tm(r,o,c){return o=c?n:o,o=r&&o==null?r.length:o,S1(r,R,n,n,n,n,o)}function wm(r,o){var c;if(typeof o!="function")throw new At(f);return r=v0(r),function(){return--r>0&&(c=o.apply(this,arguments)),r<=1&&(o=n),c}}var gb=E0(function(r,o,c){var l=C;if(c.length){var g=Y1(c,Rn(gb));l|=$}return S1(r,l,o,c,g)}),vm=E0(function(r,o,c){var l=C|S;if(c.length){var g=Y1(c,Rn(vm));l|=$}return S1(o,l,r,c,g)});function xm(r,o,c){o=c?n:o;var l=S1(r,A,n,n,n,n,n,o);return l.placeholder=xm.placeholder,l}function Em(r,o,c){o=c?n:o;var l=S1(r,E,n,n,n,n,n,o);return l.placeholder=Em.placeholder,l}function Am(r,o,c){var l,g,v,I,O,F,X=0,J=!1,n0=!1,r0=!0;if(typeof r!="function")throw new At(f);o=Pt(o)||0,W0(c)&&(J=!!c.leading,n0="maxWait"in c,v=n0?de(Pt(c.maxWait)||0,o):v,r0="trailing"in c?!!c.trailing:r0);function c0(Q0){var Gt=l,$1=g;return l=g=n,X=Q0,I=r.apply($1,Gt),I}function l0(Q0){return X=Q0,O=wa(_0,o),J?c0(Q0):I}function x0(Q0){var Gt=Q0-F,$1=Q0-X,zm=o-Gt;return n0?Ie(zm,v-$1):zm}function m0(Q0){var Gt=Q0-F,$1=Q0-X;return F===n||Gt>=o||Gt<0||n0&&$1>=v}function _0(){var Q0=Ws();if(m0(Q0))return C0(Q0);O=wa(_0,x0(Q0))}function C0(Q0){return O=n,r0&&l?c0(Q0):(l=g=n,I)}function ot(){O!==n&&B7(O),X=0,l=F=g=O=n}function Le(){return O===n?I:C0(Ws())}function ft(){var Q0=Ws(),Gt=m0(Q0);if(l=arguments,g=this,F=Q0,Gt){if(O===n)return l0(F);if(n0)return B7(O),O=wa(_0,o),c0(F)}return O===n&&(O=wa(_0,o)),I}return ft.cancel=ot,ft.flush=Le,ft}var IV=E0(function(r,o){return y7(r,1,o)}),CV=E0(function(r,o,c){return y7(r,Pt(o)||0,c)});function PV(r){return S1(r,q)}function Zs(r,o){if(typeof r!="function"||o!=null&&typeof o!="function")throw new At(f);var c=function(){var l=arguments,g=o?o.apply(this,l):l[0],v=c.cache;if(v.has(g))return v.get(g);var I=r.apply(this,l);return c.cache=v.set(g,I)||v,I};return c.cache=new(Zs.Cache||A1),c}Zs.Cache=A1;function Ys(r){if(typeof r!="function")throw new At(f);return function(){var o=arguments;switch(o.length){case 0:return!r.call(this);case 1:return!r.call(this,o[0]);case 2:return!r.call(this,o[0],o[1]);case 3:return!r.call(this,o[0],o[1],o[2])}return!r.apply(this,o)}}function MV(r){return wm(2,r)}var $V=hz(function(r,o){o=o.length==1&&w0(o[0])?H0(o[0],rt(p0())):H0(we(o,1),rt(p0()));var c=o.length;return E0(function(l){for(var g=-1,v=Ie(l.length,c);++g<v;)l[g]=o[g].call(this,l[g]);return at(r,this,l)})}),Tb=E0(function(r,o){var c=Y1(o,Rn(Tb));return S1(r,$,n,o,c)}),_m=E0(function(r,o){var c=Y1(o,Rn(_m));return S1(r,L,n,o,c)}),OV=I1(function(r,o){return S1(r,D,n,n,n,o)});function RV(r,o){if(typeof r!="function")throw new At(f);return o=o===n?o:v0(o),E0(r,o)}function BV(r,o){if(typeof r!="function")throw new At(f);return o=o==null?0:de(v0(o),0),E0(function(c){var l=c[o],g=e6(c,0,o);return l&&Z1(g,l),at(r,this,g)})}function NV(r,o,c){var l=!0,g=!0;if(typeof r!="function")throw new At(f);return W0(c)&&(l="leading"in c?!!c.leading:l,g="trailing"in c?!!c.trailing:g),Am(r,o,{leading:l,maxWait:o,trailing:g})}function DV(r){return Tm(r,1)}function kV(r,o){return Tb(ab(o),r)}function LV(){if(!arguments.length)return[];var r=arguments[0];return w0(r)?r:[r]}function FV(r){return St(r,h)}function UV(r,o){return o=typeof o=="function"?o:n,St(r,h,o)}function HV(r){return St(r,p|h)}function GV(r,o){return o=typeof o=="function"?o:n,St(r,p|h,o)}function zV(r,o){return o==null||u7(r,o,me(o))}function Ht(r,o){return r===o||r!==r&&o!==o}var jV=Hs(Vf),VV=Hs(function(r,o){return r>=o}),L6=g7(function(){return arguments}())?g7:function(r){return Y0(r)&&R0.call(r,"callee")&&!r7.call(r,"callee")},w0=j.isArray,qV=F4?rt(F4):ez;function We(r){return r!=null&&Ks(r.length)&&!P1(r)}function J0(r){return Y0(r)&&We(r)}function WV(r){return r===!0||r===!1||Y0(r)&&De(r)==$0}var t6=oG||Mb,ZV=U4?rt(U4):tz;function YV(r){return Y0(r)&&r.nodeType===1&&!va(r)}function KV(r){if(r==null)return!0;if(We(r)&&(w0(r)||typeof r=="string"||typeof r.splice=="function"||t6(r)||Bn(r)||L6(r)))return!r.length;var o=Ce(r);if(o==q0||o==Lt)return!r.size;if(Ta(r))return!Zf(r).length;for(var c in r)if(R0.call(r,c))return!1;return!0}function XV(r,o){return ma(r,o)}function JV(r,o,c){c=typeof c=="function"?c:n;var l=c?c(r,o):n;return l===n?ma(r,o,n,c):!!l}function wb(r){if(!Y0(r))return!1;var o=De(r);return o==Ve||o==fe||typeof r.message=="string"&&typeof r.name=="string"&&!va(r)}function QV(r){return typeof r=="number"&&i7(r)}function P1(r){if(!W0(r))return!1;var o=De(r);return o==Se||o==le||o==V0||o==EU}function Sm(r){return typeof r=="number"&&r==v0(r)}function Ks(r){return typeof r=="number"&&r>-1&&r%1==0&&r<=B}function W0(r){var o=typeof r;return r!=null&&(o=="object"||o=="function")}function Y0(r){return r!=null&&typeof r=="object"}var Im=H4?rt(H4):az;function eq(r,o){return r===o||Wf(r,o,db(o))}function tq(r,o,c){return c=typeof c=="function"?c:n,Wf(r,o,db(o),c)}function nq(r){return Cm(r)&&r!=+r}function aq(r){if(Uz(r))throw new g0(i);return T7(r)}function rq(r){return r===null}function sq(r){return r==null}function Cm(r){return typeof r=="number"||Y0(r)&&De(r)==ge}function va(r){if(!Y0(r)||De(r)!=x1)return!1;var o=Es(r);if(o===null)return!0;var c=R0.call(o,"constructor")&&o.constructor;return typeof c=="function"&&c instanceof c&&Ts.call(c)==tG}var vb=G4?rt(G4):rz;function iq(r){return Sm(r)&&r>=-B&&r<=B}var Pm=z4?rt(z4):sz;function Xs(r){return typeof r=="string"||!w0(r)&&Y0(r)&&De(r)==ra}function it(r){return typeof r=="symbol"||Y0(r)&&De(r)==ds}var Bn=j4?rt(j4):iz;function oq(r){return r===n}function fq(r){return Y0(r)&&Ce(r)==sa}function bq(r){return Y0(r)&&De(r)==_U}var dq=Hs(Yf),cq=Hs(function(r,o){return r<=o});function Mm(r){if(!r)return[];if(We(r))return Xs(r)?Ft(r):qe(r);if(fa&&r[fa])return zH(r[fa]());var o=Ce(r),c=o==q0?Df:o==Lt?ms:Nn;return c(r)}function M1(r){if(!r)return r===0?r:0;if(r=Pt(r),r===k||r===-k){var o=r<0?-1:1;return o*U}return r===r?r:0}function v0(r){var o=M1(r),c=o%1;return o===o?c?o-c:o:0}function $m(r){return r?B6(v0(r),0,V):0}function Pt(r){if(typeof r=="number")return r;if(it(r))return P;if(W0(r)){var o=typeof r.valueOf=="function"?r.valueOf():r;r=W0(o)?o+"":o}if(typeof r!="string")return r===0?r:+r;r=K4(r);var c=qU.test(r);return c||ZU.test(r)?SH(r.slice(2),c?2:8):VU.test(r)?P:+r}function Om(r){return Qt(r,Ze(r))}function uq(r){return r?B6(v0(r),-B,B):r===0?r:0}function O0(r){return r==null?"":st(r)}var yq=$n(function(r,o){if(Ta(o)||We(o)){Qt(o,me(o),r);return}for(var c in o)R0.call(o,c)&&ya(r,c,o[c])}),Rm=$n(function(r,o){Qt(o,Ze(o),r)}),Js=$n(function(r,o,c,l){Qt(o,Ze(o),r,l)}),pq=$n(function(r,o,c,l){Qt(o,me(o),r,l)}),lq=I1(Gf);function mq(r,o){var c=Mn(r);return o==null?c:c7(c,o)}var hq=E0(function(r,o){r=D0(r);var c=-1,l=o.length,g=l>2?o[2]:n;for(g&&ke(o[0],o[1],g)&&(l=1);++c<l;)for(var v=o[c],I=Ze(v),O=-1,F=I.length;++O<F;){var X=I[O],J=r[X];(J===n||Ht(J,In[X])&&!R0.call(r,X))&&(r[X]=v[X])}return r}),gq=E0(function(r){return r.push(n,K7),at(Bm,n,r)});function Tq(r,o){return q4(r,p0(o,3),Jt)}function wq(r,o){return q4(r,p0(o,3),jf)}function vq(r,o){return r==null?r:zf(r,p0(o,3),Ze)}function xq(r,o){return r==null?r:m7(r,p0(o,3),Ze)}function Eq(r,o){return r&&Jt(r,p0(o,3))}function Aq(r,o){return r&&jf(r,p0(o,3))}function _q(r){return r==null?[]:Rs(r,me(r))}function Sq(r){return r==null?[]:Rs(r,Ze(r))}function xb(r,o,c){var l=r==null?n:N6(r,o);return l===n?c:l}function Iq(r,o){return r!=null&&Q7(r,o,KG)}function Eb(r,o){return r!=null&&Q7(r,o,XG)}var Cq=V7(function(r,o,c){o!=null&&typeof o.toString!="function"&&(o=ws.call(o)),r[o]=c},_b(Ye)),Pq=V7(function(r,o,c){o!=null&&typeof o.toString!="function"&&(o=ws.call(o)),R0.call(r,o)?r[o].push(c):r[o]=[c]},p0),Mq=E0(la);function me(r){return We(r)?b7(r):Zf(r)}function Ze(r){return We(r)?b7(r,!0):oz(r)}function $q(r,o){var c={};return o=p0(o,3),Jt(r,function(l,g,v){_1(c,o(l,g,v),l)}),c}function Oq(r,o){var c={};return o=p0(o,3),Jt(r,function(l,g,v){_1(c,g,o(l,g,v))}),c}var Rq=$n(function(r,o,c){Bs(r,o,c)}),Bm=$n(function(r,o,c,l){Bs(r,o,c,l)}),Bq=I1(function(r,o){var c={};if(r==null)return c;var l=!1;o=H0(o,function(v){return v=Q1(v,r),l||(l=v.length>1),v}),Qt(r,fb(r),c),l&&(c=St(c,p|m|h,Cz));for(var g=o.length;g--;)eb(c,o[g]);return c});function Nq(r,o){return Nm(r,Ys(p0(o)))}var Dq=I1(function(r,o){return r==null?{}:bz(r,o)});function Nm(r,o){if(r==null)return{};var c=H0(fb(r),function(l){return[l]});return o=p0(o),S7(r,c,function(l,g){return o(l,g[0])})}function kq(r,o,c){o=Q1(o,r);var l=-1,g=o.length;for(g||(g=1,r=n);++l<g;){var v=r==null?n:r[e1(o[l])];v===n&&(l=g,v=c),r=P1(v)?v.call(r):v}return r}function Lq(r,o,c){return r==null?r:ha(r,o,c)}function Fq(r,o,c,l){return l=typeof l=="function"?l:n,r==null?r:ha(r,o,c,l)}var Dm=Z7(me),km=Z7(Ze);function Uq(r,o,c){var l=w0(r),g=l||t6(r)||Bn(r);if(o=p0(o,4),c==null){var v=r&&r.constructor;g?c=l?new v:[]:W0(r)?c=P1(v)?Mn(Es(r)):{}:c={}}return(g?Et:Jt)(r,function(I,O,F){return o(c,I,O,F)}),c}function Hq(r,o){return r==null?!0:eb(r,o)}function Gq(r,o,c){return r==null?r:$7(r,o,ab(c))}function zq(r,o,c,l){return l=typeof l=="function"?l:n,r==null?r:$7(r,o,ab(c),l)}function Nn(r){return r==null?[]:Nf(r,me(r))}function jq(r){return r==null?[]:Nf(r,Ze(r))}function Vq(r,o,c){return c===n&&(c=o,o=n),c!==n&&(c=Pt(c),c=c===c?c:0),o!==n&&(o=Pt(o),o=o===o?o:0),B6(Pt(r),o,c)}function qq(r,o,c){return o=M1(o),c===n?(c=o,o=0):c=M1(c),r=Pt(r),JG(r,o,c)}function Wq(r,o,c){if(c&&typeof c!="boolean"&&ke(r,o,c)&&(o=c=n),c===n&&(typeof o=="boolean"?(c=o,o=n):typeof r=="boolean"&&(c=r,r=n)),r===n&&o===n?(r=0,o=1):(r=M1(r),o===n?(o=r,r=0):o=M1(o)),r>o){var l=r;r=o,o=l}if(c||r%1||o%1){var g=o7();return Ie(r+g*(o-r+_H("1e-"+((g+"").length-1))),o)}return Xf(r,o)}var Zq=On(function(r,o,c){return o=o.toLowerCase(),r+(c?Lm(o):o)});function Lm(r){return Ab(O0(r).toLowerCase())}function Fm(r){return r=O0(r),r&&r.replace(KU,LH).replace(lH,"")}function Yq(r,o,c){r=O0(r),o=st(o);var l=r.length;c=c===n?l:B6(v0(c),0,l);var g=c;return c-=o.length,c>=0&&r.slice(c,g)==o}function Kq(r){return r=O0(r),r&&MU.test(r)?r.replace(m4,FH):r}function Xq(r){return r=O0(r),r&&DU.test(r)?r.replace(Tf,"\\$&"):r}var Jq=On(function(r,o,c){return r+(c?"-":"")+o.toLowerCase()}),Qq=On(function(r,o,c){return r+(c?" ":"")+o.toLowerCase()}),eW=G7("toLowerCase");function tW(r,o,c){r=O0(r),o=v0(o);var l=o?_n(r):0;if(!o||l>=o)return r;var g=(o-l)/2;return Us(Is(g),c)+r+Us(Ss(g),c)}function nW(r,o,c){r=O0(r),o=v0(o);var l=o?_n(r):0;return o&&l<o?r+Us(o-l,c):r}function aW(r,o,c){r=O0(r),o=v0(o);var l=o?_n(r):0;return o&&l<o?Us(o-l,c)+r:r}function rW(r,o,c){return c||o==null?o=0:o&&(o=+o),cG(O0(r).replace(wf,""),o||0)}function sW(r,o,c){return(c?ke(r,o,c):o===n)?o=1:o=v0(o),Jf(O0(r),o)}function iW(){var r=arguments,o=O0(r[0]);return r.length<3?o:o.replace(r[1],r[2])}var oW=On(function(r,o,c){return r+(c?"_":"")+o.toLowerCase()});function fW(r,o,c){return c&&typeof c!="number"&&ke(r,o,c)&&(o=c=n),c=c===n?V:c>>>0,c?(r=O0(r),r&&(typeof o=="string"||o!=null&&!vb(o))&&(o=st(o),!o&&An(r))?e6(Ft(r),0,c):r.split(o,c)):[]}var bW=On(function(r,o,c){return r+(c?" ":"")+Ab(o)});function dW(r,o,c){return r=O0(r),c=c==null?0:B6(v0(c),0,r.length),o=st(o),r.slice(c,c+o.length)==o}function cW(r,o,c){var l=w.templateSettings;c&&ke(r,o,c)&&(o=n),r=O0(r),o=Js({},o,l,Y7);var g=Js({},o.imports,l.imports,Y7),v=me(g),I=Nf(g,v),O,F,X=0,J=o.interpolate||cs,n0="__p += '",r0=kf((o.escape||cs).source+"|"+J.source+"|"+(J===h4?jU:cs).source+"|"+(o.evaluate||cs).source+"|$","g"),c0="//# sourceURL="+(R0.call(o,"sourceURL")?(o.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++wH+"]")+`
80
+ `;r.replace(r0,function(m0,_0,C0,ot,Le,ft){return C0||(C0=ot),n0+=r.slice(X,ft).replace(XU,UH),_0&&(O=!0,n0+=`' +
81
+ __e(`+_0+`) +
82
+ '`),Le&&(F=!0,n0+=`';
83
+ `+Le+`;
84
+ __p += '`),C0&&(n0+=`' +
85
+ ((__t = (`+C0+`)) == null ? '' : __t) +
86
+ '`),X=ft+m0.length,m0}),n0+=`';
87
+ `;var l0=R0.call(o,"variable")&&o.variable;if(!l0)n0=`with (obj) {
88
+ `+n0+`
89
+ }
90
+ `;else if(GU.test(l0))throw new g0(d);n0=(F?n0.replace(SU,""):n0).replace(IU,"$1").replace(CU,"$1;"),n0="function("+(l0||"obj")+`) {
91
+ `+(l0?"":`obj || (obj = {});
92
+ `)+"var __t, __p = ''"+(O?", __e = _.escape":"")+(F?`, __j = Array.prototype.join;
93
+ function print() { __p += __j.call(arguments, '') }
94
+ `:`;
95
+ `)+n0+`return __p
96
+ }`;var x0=Hm(function(){return M0(v,c0+"return "+n0).apply(n,I)});if(x0.source=n0,wb(x0))throw x0;return x0}function uW(r){return O0(r).toLowerCase()}function yW(r){return O0(r).toUpperCase()}function pW(r,o,c){if(r=O0(r),r&&(c||o===n))return K4(r);if(!r||!(o=st(o)))return r;var l=Ft(r),g=Ft(o),v=X4(l,g),I=J4(l,g)+1;return e6(l,v,I).join("")}function lW(r,o,c){if(r=O0(r),r&&(c||o===n))return r.slice(0,e7(r)+1);if(!r||!(o=st(o)))return r;var l=Ft(r),g=J4(l,Ft(o))+1;return e6(l,0,g).join("")}function mW(r,o,c){if(r=O0(r),r&&(c||o===n))return r.replace(wf,"");if(!r||!(o=st(o)))return r;var l=Ft(r),g=X4(l,Ft(o));return e6(l,g).join("")}function hW(r,o){var c=e0,l=z;if(W0(o)){var g="separator"in o?o.separator:g;c="length"in o?v0(o.length):c,l="omission"in o?st(o.omission):l}r=O0(r);var v=r.length;if(An(r)){var I=Ft(r);v=I.length}if(c>=v)return r;var O=c-_n(l);if(O<1)return l;var F=I?e6(I,0,O).join(""):r.slice(0,O);if(g===n)return F+l;if(I&&(O+=F.length-O),vb(g)){if(r.slice(O).search(g)){var X,J=F;for(g.global||(g=kf(g.source,O0(g4.exec(g))+"g")),g.lastIndex=0;X=g.exec(J);)var n0=X.index;F=F.slice(0,n0===n?O:n0)}}else if(r.indexOf(st(g),O)!=O){var r0=F.lastIndexOf(g);r0>-1&&(F=F.slice(0,r0))}return F+l}function gW(r){return r=O0(r),r&&PU.test(r)?r.replace(l4,WH):r}var TW=On(function(r,o,c){return r+(c?" ":"")+o.toUpperCase()}),Ab=G7("toUpperCase");function Um(r,o,c){return r=O0(r),o=c?n:o,o===n?GH(r)?KH(r):RH(r):r.match(o)||[]}var Hm=E0(function(r,o){try{return at(r,n,o)}catch(c){return wb(c)?c:new g0(c)}}),wW=I1(function(r,o){return Et(o,function(c){c=e1(c),_1(r,c,gb(r[c],r))}),r});function vW(r){var o=r==null?0:r.length,c=p0();return r=o?H0(r,function(l){if(typeof l[1]!="function")throw new At(f);return[c(l[0]),l[1]]}):[],E0(function(l){for(var g=-1;++g<o;){var v=r[g];if(at(v[0],this,l))return at(v[1],this,l)}})}function xW(r){return WG(St(r,p))}function _b(r){return function(){return r}}function EW(r,o){return r==null||r!==r?o:r}var AW=j7(),_W=j7(!0);function Ye(r){return r}function Sb(r){return w7(typeof r=="function"?r:St(r,p))}function SW(r){return x7(St(r,p))}function IW(r,o){return E7(r,St(o,p))}var CW=E0(function(r,o){return function(c){return la(c,r,o)}}),PW=E0(function(r,o){return function(c){return la(r,c,o)}});function Ib(r,o,c){var l=me(o),g=Rs(o,l);c==null&&!(W0(o)&&(g.length||!l.length))&&(c=o,o=r,r=this,g=Rs(o,me(o)));var v=!(W0(c)&&"chain"in c)||!!c.chain,I=P1(r);return Et(g,function(O){var F=o[O];r[O]=F,I&&(r.prototype[O]=function(){var X=this.__chain__;if(v||X){var J=r(this.__wrapped__),n0=J.__actions__=qe(this.__actions__);return n0.push({func:F,args:arguments,thisArg:r}),J.__chain__=X,J}return F.apply(r,Z1([this.value()],arguments))})}),r}function MW(){return Te._===this&&(Te._=nG),this}function Cb(){}function $W(r){return r=v0(r),E0(function(o){return A7(o,r)})}var OW=sb(H0),RW=sb(V4),BW=sb(Mf);function Gm(r){return ub(r)?$f(e1(r)):dz(r)}function NW(r){return function(o){return r==null?n:N6(r,o)}}var DW=q7(),kW=q7(!0);function Pb(){return[]}function Mb(){return!1}function LW(){return{}}function FW(){return""}function UW(){return!0}function HW(r,o){if(r=v0(r),r<1||r>B)return[];var c=V,l=Ie(r,V);o=p0(o),r-=V;for(var g=Bf(l,o);++c<r;)o(c);return g}function GW(r){return w0(r)?H0(r,e1):it(r)?[r]:qe(fm(O0(r)))}function zW(r){var o=++eG;return O0(r)+o}var jW=Fs(function(r,o){return r+o},0),VW=ib("ceil"),qW=Fs(function(r,o){return r/o},1),WW=ib("floor");function ZW(r){return r&&r.length?Os(r,Ye,Vf):n}function YW(r,o){return r&&r.length?Os(r,p0(o,2),Vf):n}function KW(r){return Z4(r,Ye)}function XW(r,o){return Z4(r,p0(o,2))}function JW(r){return r&&r.length?Os(r,Ye,Yf):n}function QW(r,o){return r&&r.length?Os(r,p0(o,2),Yf):n}var eZ=Fs(function(r,o){return r*o},1),tZ=ib("round"),nZ=Fs(function(r,o){return r-o},0);function aZ(r){return r&&r.length?Rf(r,Ye):0}function rZ(r,o){return r&&r.length?Rf(r,p0(o,2)):0}return w.after=SV,w.ary=Tm,w.assign=yq,w.assignIn=Rm,w.assignInWith=Js,w.assignWith=pq,w.at=lq,w.before=wm,w.bind=gb,w.bindAll=wW,w.bindKey=vm,w.castArray=LV,w.chain=mm,w.chunk=Wz,w.compact=Zz,w.concat=Yz,w.cond=vW,w.conforms=xW,w.constant=_b,w.countBy=aV,w.create=mq,w.curry=xm,w.curryRight=Em,w.debounce=Am,w.defaults=hq,w.defaultsDeep=gq,w.defer=IV,w.delay=CV,w.difference=Kz,w.differenceBy=Xz,w.differenceWith=Jz,w.drop=Qz,w.dropRight=ej,w.dropRightWhile=tj,w.dropWhile=nj,w.fill=aj,w.filter=sV,w.flatMap=fV,w.flatMapDeep=bV,w.flatMapDepth=dV,w.flatten=um,w.flattenDeep=rj,w.flattenDepth=sj,w.flip=PV,w.flow=AW,w.flowRight=_W,w.fromPairs=ij,w.functions=_q,w.functionsIn=Sq,w.groupBy=cV,w.initial=fj,w.intersection=bj,w.intersectionBy=dj,w.intersectionWith=cj,w.invert=Cq,w.invertBy=Pq,w.invokeMap=yV,w.iteratee=Sb,w.keyBy=pV,w.keys=me,w.keysIn=Ze,w.map=qs,w.mapKeys=$q,w.mapValues=Oq,w.matches=SW,w.matchesProperty=IW,w.memoize=Zs,w.merge=Rq,w.mergeWith=Bm,w.method=CW,w.methodOf=PW,w.mixin=Ib,w.negate=Ys,w.nthArg=$W,w.omit=Bq,w.omitBy=Nq,w.once=MV,w.orderBy=lV,w.over=OW,w.overArgs=$V,w.overEvery=RW,w.overSome=BW,w.partial=Tb,w.partialRight=_m,w.partition=mV,w.pick=Dq,w.pickBy=Nm,w.property=Gm,w.propertyOf=NW,w.pull=lj,w.pullAll=pm,w.pullAllBy=mj,w.pullAllWith=hj,w.pullAt=gj,w.range=DW,w.rangeRight=kW,w.rearg=OV,w.reject=TV,w.remove=Tj,w.rest=RV,w.reverse=mb,w.sampleSize=vV,w.set=Lq,w.setWith=Fq,w.shuffle=xV,w.slice=wj,w.sortBy=_V,w.sortedUniq=Ij,w.sortedUniqBy=Cj,w.split=fW,w.spread=BV,w.tail=Pj,w.take=Mj,w.takeRight=$j,w.takeRightWhile=Oj,w.takeWhile=Rj,w.tap=Zj,w.throttle=NV,w.thru=Vs,w.toArray=Mm,w.toPairs=Dm,w.toPairsIn=km,w.toPath=GW,w.toPlainObject=Om,w.transform=Uq,w.unary=DV,w.union=Bj,w.unionBy=Nj,w.unionWith=Dj,w.uniq=kj,w.uniqBy=Lj,w.uniqWith=Fj,w.unset=Hq,w.unzip=hb,w.unzipWith=lm,w.update=Gq,w.updateWith=zq,w.values=Nn,w.valuesIn=jq,w.without=Uj,w.words=Um,w.wrap=kV,w.xor=Hj,w.xorBy=Gj,w.xorWith=zj,w.zip=jj,w.zipObject=Vj,w.zipObjectDeep=qj,w.zipWith=Wj,w.entries=Dm,w.entriesIn=km,w.extend=Rm,w.extendWith=Js,Ib(w,w),w.add=jW,w.attempt=Hm,w.camelCase=Zq,w.capitalize=Lm,w.ceil=VW,w.clamp=Vq,w.clone=FV,w.cloneDeep=HV,w.cloneDeepWith=GV,w.cloneWith=UV,w.conformsTo=zV,w.deburr=Fm,w.defaultTo=EW,w.divide=qW,w.endsWith=Yq,w.eq=Ht,w.escape=Kq,w.escapeRegExp=Xq,w.every=rV,w.find=iV,w.findIndex=dm,w.findKey=Tq,w.findLast=oV,w.findLastIndex=cm,w.findLastKey=wq,w.floor=WW,w.forEach=hm,w.forEachRight=gm,w.forIn=vq,w.forInRight=xq,w.forOwn=Eq,w.forOwnRight=Aq,w.get=xb,w.gt=jV,w.gte=VV,w.has=Iq,w.hasIn=Eb,w.head=ym,w.identity=Ye,w.includes=uV,w.indexOf=oj,w.inRange=qq,w.invoke=Mq,w.isArguments=L6,w.isArray=w0,w.isArrayBuffer=qV,w.isArrayLike=We,w.isArrayLikeObject=J0,w.isBoolean=WV,w.isBuffer=t6,w.isDate=ZV,w.isElement=YV,w.isEmpty=KV,w.isEqual=XV,w.isEqualWith=JV,w.isError=wb,w.isFinite=QV,w.isFunction=P1,w.isInteger=Sm,w.isLength=Ks,w.isMap=Im,w.isMatch=eq,w.isMatchWith=tq,w.isNaN=nq,w.isNative=aq,w.isNil=sq,w.isNull=rq,w.isNumber=Cm,w.isObject=W0,w.isObjectLike=Y0,w.isPlainObject=va,w.isRegExp=vb,w.isSafeInteger=iq,w.isSet=Pm,w.isString=Xs,w.isSymbol=it,w.isTypedArray=Bn,w.isUndefined=oq,w.isWeakMap=fq,w.isWeakSet=bq,w.join=uj,w.kebabCase=Jq,w.last=Ct,w.lastIndexOf=yj,w.lowerCase=Qq,w.lowerFirst=eW,w.lt=dq,w.lte=cq,w.max=ZW,w.maxBy=YW,w.mean=KW,w.meanBy=XW,w.min=JW,w.minBy=QW,w.stubArray=Pb,w.stubFalse=Mb,w.stubObject=LW,w.stubString=FW,w.stubTrue=UW,w.multiply=eZ,w.nth=pj,w.noConflict=MW,w.noop=Cb,w.now=Ws,w.pad=tW,w.padEnd=nW,w.padStart=aW,w.parseInt=rW,w.random=Wq,w.reduce=hV,w.reduceRight=gV,w.repeat=sW,w.replace=iW,w.result=kq,w.round=tZ,w.runInContext=N,w.sample=wV,w.size=EV,w.snakeCase=oW,w.some=AV,w.sortedIndex=vj,w.sortedIndexBy=xj,w.sortedIndexOf=Ej,w.sortedLastIndex=Aj,w.sortedLastIndexBy=_j,w.sortedLastIndexOf=Sj,w.startCase=bW,w.startsWith=dW,w.subtract=nZ,w.sum=aZ,w.sumBy=rZ,w.template=cW,w.times=HW,w.toFinite=M1,w.toInteger=v0,w.toLength=$m,w.toLower=uW,w.toNumber=Pt,w.toSafeInteger=uq,w.toString=O0,w.toUpper=yW,w.trim=pW,w.trimEnd=lW,w.trimStart=mW,w.truncate=hW,w.unescape=gW,w.uniqueId=zW,w.upperCase=TW,w.upperFirst=Ab,w.each=hm,w.eachRight=gm,w.first=ym,Ib(w,function(){var r={};return Jt(w,function(o,c){R0.call(w.prototype,c)||(r[c]=o)}),r}(),{chain:!1}),w.VERSION=a,Et(["bind","bindKey","curry","curryRight","partial","partialRight"],function(r){w[r].placeholder=w}),Et(["drop","take"],function(r,o){I0.prototype[r]=function(c){c=c===n?1:de(v0(c),0);var l=this.__filtered__&&!o?new I0(this):this.clone();return l.__filtered__?l.__takeCount__=Ie(c,l.__takeCount__):l.__views__.push({size:Ie(c,V),type:r+(l.__dir__<0?"Right":"")}),l},I0.prototype[r+"Right"]=function(c){return this.reverse()[r](c).reverse()}}),Et(["filter","map","takeWhile"],function(r,o){var c=o+1,l=c==Z||c==M;I0.prototype[r]=function(g){var v=this.clone();return v.__iteratees__.push({iteratee:p0(g,3),type:c}),v.__filtered__=v.__filtered__||l,v}}),Et(["head","last"],function(r,o){var c="take"+(o?"Right":"");I0.prototype[r]=function(){return this[c](1).value()[0]}}),Et(["initial","tail"],function(r,o){var c="drop"+(o?"":"Right");I0.prototype[r]=function(){return this.__filtered__?new I0(this):this[c](1)}}),I0.prototype.compact=function(){return this.filter(Ye)},I0.prototype.find=function(r){return this.filter(r).head()},I0.prototype.findLast=function(r){return this.reverse().find(r)},I0.prototype.invokeMap=E0(function(r,o){return typeof r=="function"?new I0(this):this.map(function(c){return la(c,r,o)})}),I0.prototype.reject=function(r){return this.filter(Ys(p0(r)))},I0.prototype.slice=function(r,o){r=v0(r);var c=this;return c.__filtered__&&(r>0||o<0)?new I0(c):(r<0?c=c.takeRight(-r):r&&(c=c.drop(r)),o!==n&&(o=v0(o),c=o<0?c.dropRight(-o):c.take(o-r)),c)},I0.prototype.takeRightWhile=function(r){return this.reverse().takeWhile(r).reverse()},I0.prototype.toArray=function(){return this.take(V)},Jt(I0.prototype,function(r,o){var c=/^(?:filter|find|map|reject)|While$/.test(o),l=/^(?:head|last)$/.test(o),g=w[l?"take"+(o=="last"?"Right":""):o],v=l||/^find/.test(o);g&&(w.prototype[o]=function(){var I=this.__wrapped__,O=l?[1]:arguments,F=I instanceof I0,X=O[0],J=F||w0(I),n0=function(_0){var C0=g.apply(w,Z1([_0],O));return l&&r0?C0[0]:C0};J&&c&&typeof X=="function"&&X.length!=1&&(F=J=!1);var r0=this.__chain__,c0=!!this.__actions__.length,l0=v&&!r0,x0=F&&!c0;if(!v&&J){I=x0?I:new I0(this);var m0=r.apply(I,O);return m0.__actions__.push({func:Vs,args:[n0],thisArg:n}),new _t(m0,r0)}return l0&&x0?r.apply(this,O):(m0=this.thru(n0),l0?l?m0.value()[0]:m0.value():m0)})}),Et(["pop","push","shift","sort","splice","unshift"],function(r){var o=hs[r],c=/^(?:push|sort|unshift)$/.test(r)?"tap":"thru",l=/^(?:pop|shift)$/.test(r);w.prototype[r]=function(){var g=arguments;if(l&&!this.__chain__){var v=this.value();return o.apply(w0(v)?v:[],g)}return this[c](function(I){return o.apply(w0(I)?I:[],g)})}}),Jt(I0.prototype,function(r,o){var c=w[o];if(c){var l=c.name+"";R0.call(Pn,l)||(Pn[l]=[]),Pn[l].push({name:o,func:c})}}),Pn[Ls(n,S).name]=[{name:"wrapper",func:n}],I0.prototype.clone=gG,I0.prototype.reverse=TG,I0.prototype.value=wG,w.prototype.at=Yj,w.prototype.chain=Kj,w.prototype.commit=Xj,w.prototype.next=Jj,w.prototype.plant=eV,w.prototype.reverse=tV,w.prototype.toJSON=w.prototype.valueOf=w.prototype.value=nV,w.prototype.first=w.prototype.head,fa&&(w.prototype[fa]=Qj),w},Sn=XH();M6?((M6.exports=Sn)._=Sn,Sf._=Sn):Te._=Sn}).call(K0)}(Or,Or.exports);var OI=Or.exports;const RI=Qs(OI),{memoize:to}=RI,U9=/^(?:0x)?[0-9a-f]+$/iu,H9=/^0x[0-9a-f]+$/iu,G9=/^0x[0-9a-f]{40}$/u,z9=/^0x[0-9a-fA-F]{40}$/u,BI=mn(_e(),U9),L5=mn(_e(),H9),NI=mn(_e(),G9),DI=mn(_e(),z9),Rr=e=>typeof e=="string";function j9(e){return Rr(e)&&U9.test(e)}function V9(e){return Rr(e)&&H9.test(e)}function q9(e){return Rr(e)&&G9.test(e)}function no(e){return Rr(e)&&z9.test(e)}function Br(e){k0(j9(e),"Value must be a hexadecimal string.")}function kI(e){k0(V9(e),'Value must be a hexadecimal string, starting with "0x".')}function LI(e){k0(no(e),"Invalid hex address.");const t=ao(e).toLowerCase(),n=a6(t),{length:a}=t,s=new Array(a);for(let i=0;i<a;i++){const f=i>>1,d=i&1,b=n[f],y=d===0?b>>4:b&15;s[i]=y>=8?t[i].toUpperCase():t[i]}return`0x${s.join("")}`}const W9=to(LI);function FI(e){return no(e)?W9(e)===e:!1}const Z9=to(FI);function UI(e){return q9(e)||Z9(e)}const HI=to(UI);function F5(e){return e.startsWith("0x")?e:e.startsWith("0X")?`0x${e.substring(2)}`:`0x${e}`}function ao(e){return e.startsWith("0x")||e.startsWith("0X")?e.substring(2):e}const Y9=48,K9=58,X9=87;function GI(){const e=[];return()=>{if(e.length===0)for(let t=0;t<256;t++)e.push(t.toString(16).padStart(2,"0"));return e}}const zI=GI();function ro(e){return e instanceof Uint8Array}function E6(e){k0(ro(e),"Value must be a Uint8Array.")}function Nr(e){if(E6(e),e.length===0)return"0x";const t=zI(),n=new Array(e.length);for(let a=0;a<e.length;a++)n[a]=t[e[a]];return F5(n.join(""))}function J9(e){E6(e);const t=Nr(e);return BigInt(t)}function jI(e){E6(e);let t=BigInt(0);for(const n of e)t=(t<<BigInt(8))+BigInt(n);return BigInt.asIntN(e.length*8,t)}function VI(e){E6(e);const t=J9(e);return k0(t<=BigInt(Number.MAX_SAFE_INTEGER),"Number is not a safe integer. Use `bytesToBigInt` instead."),Number(t)}function qI(e){return E6(e),new TextDecoder().decode(e)}function WI(e){return E6(e),i9.encode(e)}function A6(e){var s;if(((s=e==null?void 0:e.toLowerCase)==null?void 0:s.call(e))==="0x")return new Uint8Array;Br(e);const t=ao(e).toLowerCase(),n=t.length%2===0?t:`0${t}`,a=new Uint8Array(n.length/2);for(let i=0;i<a.length;i++){const f=n.charCodeAt(i*2),d=n.charCodeAt(i*2+1),b=f-(f<K9?Y9:X9),y=d-(d<K9?Y9:X9);a[i]=b*16+y}return a}function Q9(e){k0(typeof e=="bigint","Value must be a bigint."),k0(e>=BigInt(0),"Value must be a non-negative bigint.");const t=e.toString(16);return A6(t)}function ZI(e,t){k0(t>0);const n=e>>BigInt(31);return!((~e&n)+(e&~n)>>BigInt(t*8+-1))}function YI(e,t){k0(typeof e=="bigint","Value must be a bigint."),k0(typeof t=="number","Byte length must be a number."),k0(t>0,"Byte length must be greater than 0."),k0(ZI(e,t),"Byte length is too small to represent the given value.");let n=e;const a=new Uint8Array(t);for(let s=0;s<a.length;s++)a[s]=Number(BigInt.asUintN(8,n)),n>>=BigInt(8);return a.reverse()}function ey(e){k0(typeof e=="number","Value must be a number."),k0(e>=0,"Value must be a non-negative number."),k0(Number.isSafeInteger(e),"Value is not a safe integer. Use `bigIntToBytes` instead.");const t=e.toString(16);return A6(t)}function ty(e){return k0(typeof e=="string","Value must be a string."),new TextEncoder().encode(e)}function KI(e){return k0(typeof e=="string","Value must be a string."),i9.decode(e)}function ny(e){if(typeof e=="bigint")return Q9(e);if(typeof e=="number")return ey(e);if(typeof e=="string")return e.startsWith("0x")?A6(e):ty(e);if(ro(e))return e;throw new TypeError(`Unsupported value type: "${typeof e}".`)}function XI(e){const t=new Array(e.length);let n=0;for(let s=0;s<e.length;s++){const i=ny(e[s]);t[s]=i,n+=i.length}const a=new Uint8Array(n);for(let s=0,i=0;s<t.length;s++)a.set(t[s],i),i+=t[s].length;return a}function JI(e){if(typeof Buffer<"u"&&e instanceof Buffer){const t=e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength);return new DataView(t)}return new DataView(e.buffer,e.byteOffset,e.byteLength)}function QI(e,t){let n=e.byteLength^t.byteLength;const a=Math.max(e.byteLength,t.byteLength);for(let s=0;s<a;s++){const i=e[s]??0,f=t[s]??0;n|=i^f}return n===0}function Tt(e,t){return $e(e,n=>typeof n=="string"&&t.test(n))}const Dr=/^(?<namespace>[-a-z0-9]{3,8}):(?<reference>[-_a-zA-Z0-9]{1,32})$/u,_6=/^[-a-z0-9]{3,8}$/u,S6=/^[-_a-zA-Z0-9]{1,32}$/u,kr=/^(?<chainId>(?<namespace>[-a-z0-9]{3,8}):(?<reference>[-_a-zA-Z0-9]{1,32})):(?<accountAddress>[-.%a-zA-Z0-9]{1,128})$/u,Lr=/^[-.%a-zA-Z0-9]{1,128}$/u,U5=/^[-a-z0-9]{3,8}$/u,H5=/^[-.%a-zA-Z0-9]{1,128}$/u,Fr=/^[-.%a-zA-Z0-9]{1,78}$/u,Ur=/^(?<chainId>(?<namespace>[-a-z0-9]{3,8}):(?<reference>[-_a-zA-Z0-9]{1,32}))\/(?<assetNamespace>[-a-z0-9]{3,8}):(?<assetReference>[-.%a-zA-Z0-9]{1,128})$/u,Hr=/^(?<chainId>(?<namespace>[-a-z0-9]{3,8}):(?<reference>[-_a-zA-Z0-9]{1,32}))\/(?<assetNamespace>[-a-z0-9]{3,8}):(?<assetReference>[-.%a-zA-Z0-9]{1,128})\/(?<tokenId>[-.%a-zA-Z0-9]{1,78})$/u,eC=/^(?<chainId>(?<namespace>[-a-z0-9]{3,8}):(?<reference>[-_a-zA-Z0-9]{1,32}))\/(?<assetNamespace>[-a-z0-9]{3,8}):(?<assetReference>[-.%a-zA-Z0-9]{1,128})(\/(?<tokenId>[-.%a-zA-Z0-9]{1,78}))?$/u,tC=Tt("CaipChainId",Dr),nC=Tt("CaipNamespace",_6),aC=Tt("CaipReference",S6),rC=Tt("CaipAccountId",kr),sC=Tt("CaipAccountAddress",Lr),iC=Tt("CaipAssetNamespace",U5),oC=Tt("CaipAssetReference",H5),fC=Tt("CaipTokenId",Fr),bC=Tt("CaipAssetType",Ur),dC=Tt("CaipAssetId",Hr),cC=Tt("CaipAssetTypeOrId",eC);var Gr;(function(e){e.Bip122="bip122",e.Solana="solana",e.Tron="tron",e.Eip155="eip155",e.Wallet="wallet"})(Gr=Gr||(Gr={}));function uC(e){return typeof e=="string"&&Dr.test(e)}function G5(e){return typeof e=="string"&&_6.test(e)}function z5(e){return typeof e=="string"&&S6.test(e)}function yC(e){return typeof e=="string"&&kr.test(e)}function ay(e){return typeof e=="string"&&Lr.test(e)}function so(e){return typeof e=="string"&&U5.test(e)}function io(e){return typeof e=="string"&&H5.test(e)}function ry(e){return typeof e=="string"&&Fr.test(e)}function pC(e){return typeof e=="string"&&Ur.test(e)}function lC(e){return typeof e=="string"&&Hr.test(e)}function mC(e){const t=Dr.exec(e);if(!(t!=null&&t.groups))throw new Error("Invalid CAIP chain ID.");return{namespace:t.groups.namespace,reference:t.groups.reference}}function hC(e){const t=kr.exec(e);if(!(t!=null&&t.groups))throw new Error("Invalid CAIP account ID.");return{address:t.groups.accountAddress,chainId:t.groups.chainId,chain:{namespace:t.groups.namespace,reference:t.groups.reference}}}function gC(e){const t=Ur.exec(e);if(!(t!=null&&t.groups))throw new Error("Invalid CAIP asset type.");return{assetNamespace:t.groups.assetNamespace,assetReference:t.groups.assetReference,chainId:t.groups.chainId,chain:{namespace:t.groups.namespace,reference:t.groups.reference}}}function TC(e){const t=Hr.exec(e);if(!(t!=null&&t.groups))throw new Error("Invalid CAIP asset ID.");return{assetNamespace:t.groups.assetNamespace,assetReference:t.groups.assetReference,tokenId:t.groups.tokenId,chainId:t.groups.chainId,chain:{namespace:t.groups.namespace,reference:t.groups.reference}}}function wC(e,t){if(!G5(e))throw new Error(`Invalid "namespace", must match: ${_6.toString()}`);if(!z5(t))throw new Error(`Invalid "reference", must match: ${S6.toString()}`);return`${e}:${t}`}function vC(e,t,n){if(!G5(e))throw new Error(`Invalid "namespace", must match: ${_6.toString()}`);if(!z5(t))throw new Error(`Invalid "reference", must match: ${S6.toString()}`);if(!ay(n))throw new Error(`Invalid "accountAddress", must match: ${Lr.toString()}`);return`${e}:${t}:${n}`}function xC(e,t,n,a){if(!G5(e))throw new Error(`Invalid "namespace", must match: ${_6.toString()}`);if(!z5(t))throw new Error(`Invalid "reference", must match: ${S6.toString()}`);if(!so(n))throw new Error(`Invalid "assetNamespace", must match: ${U5.toString()}`);if(!io(a))throw new Error(`Invalid "assetReference", must match: ${H5.toString()}`);return`${e}:${t}/${n}:${a}`}function EC(e,t,n,a,s){if(!G5(e))throw new Error(`Invalid "namespace", must match: ${_6.toString()}`);if(!z5(t))throw new Error(`Invalid "reference", must match: ${S6.toString()}`);if(!so(n))throw new Error(`Invalid "assetNamespace", must match: ${U5.toString()}`);if(!io(a))throw new Error(`Invalid "assetReference", must match: ${H5.toString()}`);if(!ry(s))throw new Error(`Invalid "tokenId", must match: ${Fr.toString()}`);return`${e}:${t}/${n}:${a}/${s}`}const AC=P9(F9(_e(),{paddingRequired:!0}),44,44),sy=x6([Pr(),K2(),_e(),L5]),_C=j1(Pr(),sy,Number),SC=j1(K2(),sy,BigInt);x6([L5,Cr(Uint8Array)]);const IC=j1(Cr(Uint8Array),x6([L5]),A6),CC=j1(L5,Cr(Uint8Array),Nr);function PC(e){try{const t=w6(e,_C);return k0(Number.isFinite(t),`Expected a number-like value, got "${e}".`),t}catch(t){throw t instanceof pn?new Error(`Expected a number-like value, got "${e}".`):t}}function MC(e){try{return w6(e,SC)}catch(t){throw t instanceof pn?new Error(`Expected a number-like value, got "${String(t.value)}".`):t}}function $C(e){if(typeof e=="string"&&e.toLowerCase()==="0x")return new Uint8Array;try{return w6(e,IC)}catch(t){throw t instanceof pn?new Error(`Expected a bytes-like value, got "${String(t.value)}".`):t}}function OC(e){if(e instanceof Uint8Array&&e.length===0||typeof e=="string"&&e.toLowerCase()==="0x")return"0x";try{return w6(e,CC)}catch(t){throw t instanceof pn?new Error(`Expected a bytes-like value, got "${String(t.value)}".`):t}}var Oe=function(e,t,n,a){if(n==="a"&&!a)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?e!==t||!a:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return n==="m"?a:n==="a"?a.call(e):a?a.value:t.get(e)},iy=function(e,t,n,a,s){if(a==="m")throw new TypeError("Private method is not writable");if(a==="a"&&!s)throw new TypeError("Private accessor was defined without a setter");if(typeof t=="function"?e!==t||!s:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return a==="a"?s.call(e,n):s?s.value=n:t.set(e,n),n},Bt,Kt;class oo{get size(){return Oe(this,Bt,"f").size}[(Bt=new WeakMap,Symbol.iterator)](){return Oe(this,Bt,"f")[Symbol.iterator]()}constructor(t){Bt.set(this,void 0),iy(this,Bt,new Map(t),"f"),Object.freeze(this)}entries(){return Oe(this,Bt,"f").entries()}forEach(t,n){return Oe(this,Bt,"f").forEach((a,s,i)=>t.call(n,a,s,this))}get(t){return Oe(this,Bt,"f").get(t)}has(t){return Oe(this,Bt,"f").has(t)}keys(){return Oe(this,Bt,"f").keys()}values(){return Oe(this,Bt,"f").values()}toString(){return`FrozenMap(${this.size}) {${this.size>0?` ${[...this.entries()].map(([t,n])=>`${String(t)} => ${String(n)}`).join(", ")} `:""}}`}}class fo{get size(){return Oe(this,Kt,"f").size}[(Kt=new WeakMap,Symbol.iterator)](){return Oe(this,Kt,"f")[Symbol.iterator]()}constructor(t){Kt.set(this,void 0),iy(this,Kt,new Set(t),"f"),Object.freeze(this)}entries(){return Oe(this,Kt,"f").entries()}forEach(t,n){return Oe(this,Kt,"f").forEach((a,s,i)=>t.call(n,a,s,this))}has(t){return Oe(this,Kt,"f").has(t)}keys(){return Oe(this,Kt,"f").keys()}values(){return Oe(this,Kt,"f").values()}toString(){return`FrozenSet(${this.size}) {${this.size>0?` ${[...this.values()].map(t=>String(t)).join(", ")} `:""}}`}}Object.freeze(oo),Object.freeze(oo.prototype),Object.freeze(fo),Object.freeze(fo.prototype);async function RC(e){var t;return"crypto"in globalThis&&typeof globalThis.crypto=="object"&&((t=globalThis.crypto.subtle)!=null&&t.digest)?new Uint8Array(await globalThis.crypto.subtle.digest("SHA-256",e)):bc(e)}const hn=e=>v6(e);function oy({path:e,branch:t}){const n=e[e.length-1];return O9(t[t.length-2],n)}function j5(e){return new j0({...e,type:`optional ${e.type}`,validator:(t,n)=>!oy(n)||e.validator(t,n),refiner:(t,n)=>!oy(n)||e.refiner(t,n)})}function bo(e){if(e===null||typeof e=="boolean"||typeof e=="string"||typeof e=="number"&&Number.isFinite(e))return!0;if(typeof e=="object"){let t=!0;if(Array.isArray(e)){for(let a=0;a<e.length;a++)if(!bo(e[a])){t=!1;break}return t}const n=Object.entries(e);for(let a=0;a<n.length;a++)if(typeof n[a][0]!="string"||!bo(n[a][1])){t=!1;break}return t}return!1}const co=$e("JSON",e=>bo(e)),I6=j1(co,Yt(x9(),"JSON",e=>nt(e,co)),e=>JSON.parse(JSON.stringify(e,(t,n)=>{if(!(t==="__proto__"||t==="constructor"))return n})));function BC(e){try{return fy(e),!0}catch{return!1}}function fy(e){return w6(e,I6)}function NC(e){Rt(e,I6,"Invalid JSON value");const t=JSON.stringify(e);return new TextEncoder().encode(t).byteLength}const by="2.0",gn=_9(by),V5=S9(x6([Pr(),_e()])),q5=hn({code:A9(),message:_e(),data:j5(I6),stack:j5(_e())}),uo=x6([I9(_e(),I6),E9(I6)]),yo=hn({id:V5,jsonrpc:gn,method:_e(),params:j5(uo)}),po=hn({jsonrpc:gn,method:_e(),params:j5(uo)});function DC(e){return nt(e,po)}function kC(e,t){Rt(e,po,"Invalid JSON-RPC notification",t)}function LC(e){return nt(e,yo)}function FC(e,t){Rt(e,yo,"Invalid JSON-RPC request",t)}const lo=v6({id:V5,jsonrpc:gn,result:Mr(J2()),error:Mr(q5)}),zr=hn({id:V5,jsonrpc:gn,result:I6}),jr=hn({id:V5,jsonrpc:gn,error:q5}),mo=x6([zr,jr]);function UC(e){return nt(e,lo)}function HC(e,t){Rt(e,lo,"Invalid pending JSON-RPC response",t)}function GC(e){return nt(e,mo)}function zC(e,t){Rt(e,mo,"Invalid JSON-RPC response",t)}function jC(e){return nt(e,zr)}function VC(e,t){Rt(e,zr,"Invalid JSON-RPC success response",t)}function qC(e){return nt(e,jr)}function WC(e,t){Rt(e,jr,"Invalid JSON-RPC failure response",t)}function ZC(e){return nt(e,q5)}function YC(e,t){Rt(e,q5,"Invalid JSON-RPC error",t)}function KC(e){const{permitEmptyString:t,permitFractions:n,permitNull:a}={permitEmptyString:!0,permitFractions:!1,permitNull:!0,...e};return i=>!!(typeof i=="number"&&(n||Number.isInteger(i))||typeof i=="string"&&(t||i.length>0)||a&&i===null)}var ho={exports:{}},go,dy;function XC(){if(dy)return go;dy=1;var e=1e3,t=e*60,n=t*60,a=n*24,s=a*7,i=a*365.25;go=function(u,p){p=p||{};var m=typeof u;if(m==="string"&&u.length>0)return f(u);if(m==="number"&&isFinite(u))return p.long?b(u):d(u);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(u))};function f(u){if(u=String(u),!(u.length>100)){var p=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(u);if(p){var m=parseFloat(p[1]),h=(p[2]||"ms").toLowerCase();switch(h){case"years":case"year":case"yrs":case"yr":case"y":return m*i;case"weeks":case"week":case"w":return m*s;case"days":case"day":case"d":return m*a;case"hours":case"hour":case"hrs":case"hr":case"h":return m*n;case"minutes":case"minute":case"mins":case"min":case"m":return m*t;case"seconds":case"second":case"secs":case"sec":case"s":return m*e;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return m;default:return}}}}function d(u){var p=Math.abs(u);return p>=a?Math.round(u/a)+"d":p>=n?Math.round(u/n)+"h":p>=t?Math.round(u/t)+"m":p>=e?Math.round(u/e)+"s":u+"ms"}function b(u){var p=Math.abs(u);return p>=a?y(u,p,a,"day"):p>=n?y(u,p,n,"hour"):p>=t?y(u,p,t,"minute"):p>=e?y(u,p,e,"second"):u+" ms"}function y(u,p,m,h){var x=p>=m*1.5;return Math.round(u/m)+" "+h+(x?"s":"")}return go}function JC(e){n.debug=n,n.default=n,n.coerce=b,n.disable=f,n.enable=s,n.enabled=d,n.humanize=XC(),n.destroy=y,Object.keys(e).forEach(u=>{n[u]=e[u]}),n.names=[],n.skips=[],n.formatters={};function t(u){let p=0;for(let m=0;m<u.length;m++)p=(p<<5)-p+u.charCodeAt(m),p|=0;return n.colors[Math.abs(p)%n.colors.length]}n.selectColor=t;function n(u){let p,m=null,h,x;function T(...C){if(!T.enabled)return;const S=T,H=Number(new Date),A=H-(p||H);S.diff=A,S.prev=p,S.curr=H,p=H,C[0]=n.coerce(C[0]),typeof C[0]!="string"&&C.unshift("%O");let E=0;C[0]=C[0].replace(/%([a-zA-Z%])/g,(L,R)=>{if(L==="%%")return"%";E++;const D=n.formatters[R];if(typeof D=="function"){const q=C[E];L=D.call(S,q),C.splice(E,1),E--}return L}),n.formatArgs.call(S,C),(S.log||n.log).apply(S,C)}return T.namespace=u,T.useColors=n.useColors(),T.color=n.selectColor(u),T.extend=a,T.destroy=n.destroy,Object.defineProperty(T,"enabled",{enumerable:!0,configurable:!1,get:()=>m!==null?m:(h!==n.namespaces&&(h=n.namespaces,x=n.enabled(u)),x),set:C=>{m=C}}),typeof n.init=="function"&&n.init(T),T}function a(u,p){const m=n(this.namespace+(typeof p>"u"?":":p)+u);return m.log=this.log,m}function s(u){n.save(u),n.namespaces=u,n.names=[],n.skips=[];const p=(typeof u=="string"?u:"").trim().replace(/\s+/g,",").split(",").filter(Boolean);for(const m of p)m[0]==="-"?n.skips.push(m.slice(1)):n.names.push(m)}function i(u,p){let m=0,h=0,x=-1,T=0;for(;m<u.length;)if(h<p.length&&(p[h]===u[m]||p[h]==="*"))p[h]==="*"?(x=h,T=m,h++):(m++,h++);else if(x!==-1)h=x+1,T++,m=T;else return!1;for(;h<p.length&&p[h]==="*";)h++;return h===p.length}function f(){const u=[...n.names,...n.skips.map(p=>"-"+p)].join(",");return n.enable(""),u}function d(u){for(const p of n.skips)if(i(u,p))return!1;for(const p of n.names)if(i(u,p))return!0;return!1}function b(u){return u instanceof Error?u.stack||u.message:u}function y(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return n.enable(n.load()),n}var QC=JC;(function(e,t){t.formatArgs=a,t.save=s,t.load=i,t.useColors=n,t.storage=f(),t.destroy=(()=>{let b=!1;return()=>{b||(b=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})(),t.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function n(){if(typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let b;return typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&(b=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(b[1],10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function a(b){if(b[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+b[0]+(this.useColors?"%c ":" ")+"+"+e.exports.humanize(this.diff),!this.useColors)return;const y="color: "+this.color;b.splice(1,0,y,"color: inherit");let u=0,p=0;b[0].replace(/%[a-zA-Z%]/g,m=>{m!=="%%"&&(u++,m==="%c"&&(p=u))}),b.splice(p,0,y)}t.log=console.debug||console.log||(()=>{});function s(b){try{b?t.storage.setItem("debug",b):t.storage.removeItem("debug")}catch{}}function i(){let b;try{b=t.storage.getItem("debug")||t.storage.getItem("DEBUG")}catch{}return!b&&typeof process<"u"&&"env"in process&&(b=process.env.DEBUG),b}function f(){try{return localStorage}catch{}}e.exports=QC(t);const{formatters:d}=e.exports;d.j=function(b){try{return JSON.stringify(b)}catch(y){return"[UnexpectedJSONParseError]: "+y.message}}})(ho,ho.exports);var eP=ho.exports;const tP=Qs(eP)("metamask");function nP(e){return tP.extend(e)}function aP(e,t){return e.extend(t)}const rP=e=>(k0(typeof e=="number","Value must be a number."),k0(e>=0,"Value must be a non-negative number."),k0(Number.isSafeInteger(e),"Value is not a safe integer. Use `bigIntToHex` instead."),F5(e.toString(16))),sP=e=>(k0(typeof e=="bigint","Value must be a bigint."),k0(e>=0,"Value must be a non-negative bigint."),F5(e.toString(16))),iP=e=>{Br(e);const t=parseInt(e,16);return k0(Number.isSafeInteger(t),"Value is not a safe integer. Use `hexToBigInt` instead."),t},oP=e=>(Br(e),BigInt(F5(e)));function fP({suppressUnhandledRejection:e=!1}={}){let t,n;const a=new Promise((s,i)=>{t=s,n=i});return e&&a.catch(s=>{}),{promise:a,resolve:t,reject:n}}var Vr;(function(e){e[e.Millisecond=1]="Millisecond",e[e.Second=1e3]="Second",e[e.Minute=6e4]="Minute",e[e.Hour=36e5]="Hour",e[e.Day=864e5]="Day",e[e.Week=6048e5]="Week",e[e.Year=31536e6]="Year"})(Vr=Vr||(Vr={}));const bP=e=>Number.isInteger(e)&&e>=0,cy=(e,t)=>{if(!bP(e))throw new Error(`"${t}" must be a non-negative integer. Received: "${e}".`)};function dP(e,t){return cy(e,"count"),e*t}function cP(e){return cy(e,"timestamp"),Date.now()-e}var To={exports:{}};const uP="2.0.0",uy=256,yP=Number.MAX_SAFE_INTEGER||9007199254740991,pP=16,lP=uy-6;var qr={MAX_LENGTH:uy,MAX_SAFE_COMPONENT_LENGTH:pP,MAX_SAFE_BUILD_LENGTH:lP,MAX_SAFE_INTEGER:yP,RELEASE_TYPES:["major","premajor","minor","preminor","patch","prepatch","prerelease"],SEMVER_SPEC_VERSION:uP,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2},Wr=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...e)=>console.error("SEMVER",...e):()=>{};(function(e,t){const{MAX_SAFE_COMPONENT_LENGTH:n,MAX_SAFE_BUILD_LENGTH:a,MAX_LENGTH:s}=qr,i=Wr;t=e.exports={};const f=t.re=[],d=t.safeRe=[],b=t.src=[],y=t.safeSrc=[],u=t.t={};let p=0;const m="[a-zA-Z0-9-]",h=[["\\s",1],["\\d",s],[m,a]],x=C=>{for(const[S,H]of h)C=C.split(`${S}*`).join(`${S}{0,${H}}`).split(`${S}+`).join(`${S}{1,${H}}`);return C},T=(C,S,H)=>{const A=x(S),E=p++;i(C,E,S),u[C]=E,b[E]=S,y[E]=A,f[E]=new RegExp(S,H?"g":void 0),d[E]=new RegExp(A,H?"g":void 0)};T("NUMERICIDENTIFIER","0|[1-9]\\d*"),T("NUMERICIDENTIFIERLOOSE","\\d+"),T("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${m}*`),T("MAINVERSION",`(${b[u.NUMERICIDENTIFIER]})\\.(${b[u.NUMERICIDENTIFIER]})\\.(${b[u.NUMERICIDENTIFIER]})`),T("MAINVERSIONLOOSE",`(${b[u.NUMERICIDENTIFIERLOOSE]})\\.(${b[u.NUMERICIDENTIFIERLOOSE]})\\.(${b[u.NUMERICIDENTIFIERLOOSE]})`),T("PRERELEASEIDENTIFIER",`(?:${b[u.NONNUMERICIDENTIFIER]}|${b[u.NUMERICIDENTIFIER]})`),T("PRERELEASEIDENTIFIERLOOSE",`(?:${b[u.NONNUMERICIDENTIFIER]}|${b[u.NUMERICIDENTIFIERLOOSE]})`),T("PRERELEASE",`(?:-(${b[u.PRERELEASEIDENTIFIER]}(?:\\.${b[u.PRERELEASEIDENTIFIER]})*))`),T("PRERELEASELOOSE",`(?:-?(${b[u.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${b[u.PRERELEASEIDENTIFIERLOOSE]})*))`),T("BUILDIDENTIFIER",`${m}+`),T("BUILD",`(?:\\+(${b[u.BUILDIDENTIFIER]}(?:\\.${b[u.BUILDIDENTIFIER]})*))`),T("FULLPLAIN",`v?${b[u.MAINVERSION]}${b[u.PRERELEASE]}?${b[u.BUILD]}?`),T("FULL",`^${b[u.FULLPLAIN]}$`),T("LOOSEPLAIN",`[v=\\s]*${b[u.MAINVERSIONLOOSE]}${b[u.PRERELEASELOOSE]}?${b[u.BUILD]}?`),T("LOOSE",`^${b[u.LOOSEPLAIN]}$`),T("GTLT","((?:<|>)?=?)"),T("XRANGEIDENTIFIERLOOSE",`${b[u.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`),T("XRANGEIDENTIFIER",`${b[u.NUMERICIDENTIFIER]}|x|X|\\*`),T("XRANGEPLAIN",`[v=\\s]*(${b[u.XRANGEIDENTIFIER]})(?:\\.(${b[u.XRANGEIDENTIFIER]})(?:\\.(${b[u.XRANGEIDENTIFIER]})(?:${b[u.PRERELEASE]})?${b[u.BUILD]}?)?)?`),T("XRANGEPLAINLOOSE",`[v=\\s]*(${b[u.XRANGEIDENTIFIERLOOSE]})(?:\\.(${b[u.XRANGEIDENTIFIERLOOSE]})(?:\\.(${b[u.XRANGEIDENTIFIERLOOSE]})(?:${b[u.PRERELEASELOOSE]})?${b[u.BUILD]}?)?)?`),T("XRANGE",`^${b[u.GTLT]}\\s*${b[u.XRANGEPLAIN]}$`),T("XRANGELOOSE",`^${b[u.GTLT]}\\s*${b[u.XRANGEPLAINLOOSE]}$`),T("COERCEPLAIN",`(^|[^\\d])(\\d{1,${n}})(?:\\.(\\d{1,${n}}))?(?:\\.(\\d{1,${n}}))?`),T("COERCE",`${b[u.COERCEPLAIN]}(?:$|[^\\d])`),T("COERCEFULL",b[u.COERCEPLAIN]+`(?:${b[u.PRERELEASE]})?(?:${b[u.BUILD]})?(?:$|[^\\d])`),T("COERCERTL",b[u.COERCE],!0),T("COERCERTLFULL",b[u.COERCEFULL],!0),T("LONETILDE","(?:~>?)"),T("TILDETRIM",`(\\s*)${b[u.LONETILDE]}\\s+`,!0),t.tildeTrimReplace="$1~",T("TILDE",`^${b[u.LONETILDE]}${b[u.XRANGEPLAIN]}$`),T("TILDELOOSE",`^${b[u.LONETILDE]}${b[u.XRANGEPLAINLOOSE]}$`),T("LONECARET","(?:\\^)"),T("CARETTRIM",`(\\s*)${b[u.LONECARET]}\\s+`,!0),t.caretTrimReplace="$1^",T("CARET",`^${b[u.LONECARET]}${b[u.XRANGEPLAIN]}$`),T("CARETLOOSE",`^${b[u.LONECARET]}${b[u.XRANGEPLAINLOOSE]}$`),T("COMPARATORLOOSE",`^${b[u.GTLT]}\\s*(${b[u.LOOSEPLAIN]})$|^$`),T("COMPARATOR",`^${b[u.GTLT]}\\s*(${b[u.FULLPLAIN]})$|^$`),T("COMPARATORTRIM",`(\\s*)${b[u.GTLT]}\\s*(${b[u.LOOSEPLAIN]}|${b[u.XRANGEPLAIN]})`,!0),t.comparatorTrimReplace="$1$2$3",T("HYPHENRANGE",`^\\s*(${b[u.XRANGEPLAIN]})\\s+-\\s+(${b[u.XRANGEPLAIN]})\\s*$`),T("HYPHENRANGELOOSE",`^\\s*(${b[u.XRANGEPLAINLOOSE]})\\s+-\\s+(${b[u.XRANGEPLAINLOOSE]})\\s*$`),T("STAR","(<|>)?=?\\s*\\*"),T("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$"),T("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")})(To,To.exports);var W5=To.exports;const mP=Object.freeze({loose:!0}),hP=Object.freeze({});var wo=e=>e?typeof e!="object"?mP:e:hP;const yy=/^[0-9]+$/,py=(e,t)=>{if(typeof e=="number"&&typeof t=="number")return e===t?0:e<t?-1:1;const n=yy.test(e),a=yy.test(t);return n&&a&&(e=+e,t=+t),e===t?0:n&&!a?-1:a&&!n?1:e<t?-1:1};var ly={compareIdentifiers:py,rcompareIdentifiers:(e,t)=>py(t,e)};const Zr=Wr,{MAX_LENGTH:my,MAX_SAFE_INTEGER:Yr}=qr,{safeRe:Kr,t:Xr}=W5,gP=wo,{compareIdentifiers:vo}=ly;var Re=class t1{constructor(t,n){if(n=gP(n),t instanceof t1){if(t.loose===!!n.loose&&t.includePrerelease===!!n.includePrerelease)return t;t=t.version}else if(typeof t!="string")throw new TypeError(`Invalid version. Must be a string. Got type "${typeof t}".`);if(t.length>my)throw new TypeError(`version is longer than ${my} characters`);Zr("SemVer",t,n),this.options=n,this.loose=!!n.loose,this.includePrerelease=!!n.includePrerelease;const a=t.trim().match(n.loose?Kr[Xr.LOOSE]:Kr[Xr.FULL]);if(!a)throw new TypeError(`Invalid Version: ${t}`);if(this.raw=t,this.major=+a[1],this.minor=+a[2],this.patch=+a[3],this.major>Yr||this.major<0)throw new TypeError("Invalid major version");if(this.minor>Yr||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>Yr||this.patch<0)throw new TypeError("Invalid patch version");a[4]?this.prerelease=a[4].split(".").map(s=>{if(/^[0-9]+$/.test(s)){const i=+s;if(i>=0&&i<Yr)return i}return s}):this.prerelease=[],this.build=a[5]?a[5].split("."):[],this.format()}format(){return this.version=`${this.major}.${this.minor}.${this.patch}`,this.prerelease.length&&(this.version+=`-${this.prerelease.join(".")}`),this.version}toString(){return this.version}compare(t){if(Zr("SemVer.compare",this.version,this.options,t),!(t instanceof t1)){if(typeof t=="string"&&t===this.version)return 0;t=new t1(t,this.options)}return t.version===this.version?0:this.compareMain(t)||this.comparePre(t)}compareMain(t){return t instanceof t1||(t=new t1(t,this.options)),this.major<t.major?-1:this.major>t.major?1:this.minor<t.minor?-1:this.minor>t.minor?1:this.patch<t.patch?-1:this.patch>t.patch?1:0}comparePre(t){if(t instanceof t1||(t=new t1(t,this.options)),this.prerelease.length&&!t.prerelease.length)return-1;if(!this.prerelease.length&&t.prerelease.length)return 1;if(!this.prerelease.length&&!t.prerelease.length)return 0;let n=0;do{const a=this.prerelease[n],s=t.prerelease[n];if(Zr("prerelease compare",n,a,s),a===void 0&&s===void 0)return 0;if(s===void 0)return 1;if(a===void 0)return-1;if(a===s)continue;return vo(a,s)}while(++n)}compareBuild(t){t instanceof t1||(t=new t1(t,this.options));let n=0;do{const a=this.build[n],s=t.build[n];if(Zr("build compare",n,a,s),a===void 0&&s===void 0)return 0;if(s===void 0)return 1;if(a===void 0)return-1;if(a===s)continue;return vo(a,s)}while(++n)}inc(t,n,a){if(t.startsWith("pre")){if(!n&&a===!1)throw new Error("invalid increment argument: identifier is empty");if(n){const s=`-${n}`.match(this.options.loose?Kr[Xr.PRERELEASELOOSE]:Kr[Xr.PRERELEASE]);if(!s||s[1]!==n)throw new Error(`invalid identifier: ${n}`)}}switch(t){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",n,a);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",n,a);break;case"prepatch":this.prerelease.length=0,this.inc("patch",n,a),this.inc("pre",n,a);break;case"prerelease":this.prerelease.length===0&&this.inc("patch",n,a),this.inc("pre",n,a);break;case"release":if(this.prerelease.length===0)throw new Error(`version ${this.raw} is not a prerelease`);this.prerelease.length=0;break;case"major":(this.minor!==0||this.patch!==0||this.prerelease.length===0)&&this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":(this.patch!==0||this.prerelease.length===0)&&this.minor++,this.patch=0,this.prerelease=[];break;case"patch":this.prerelease.length===0&&this.patch++,this.prerelease=[];break;case"pre":{const s=Number(a)?1:0;if(this.prerelease.length===0)this.prerelease=[s];else{let i=this.prerelease.length;for(;--i>=0;)typeof this.prerelease[i]=="number"&&(this.prerelease[i]++,i=-2);if(i===-1){if(n===this.prerelease.join(".")&&a===!1)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(s)}}if(n){let i=[n,s];a===!1&&(i=[n]),vo(this.prerelease[0],n)===0?isNaN(this.prerelease[1])&&(this.prerelease=i):this.prerelease=i}break}default:throw new Error(`invalid increment argument: ${t}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}};const hy=Re;var Tn=(e,t,n=!1)=>{if(e instanceof hy)return e;try{return new hy(e,t)}catch(a){if(!n)return null;throw a}};const TP=Tn;var wP=(e,t)=>{const n=TP(e,t);return n?n.version:null};const vP=Tn;var xP=(e,t)=>{const n=vP(e.trim().replace(/^[=v]+/,""),t);return n?n.version:null};const gy=Re;var EP=(e,t,n,a,s)=>{typeof n=="string"&&(s=a,a=n,n=void 0);try{return new gy(e instanceof gy?e.version:e,n).inc(t,a,s).version}catch{return null}};const Ty=Tn;var AP=(e,t)=>{const n=Ty(e,null,!0),a=Ty(t,null,!0),s=n.compare(a);if(s===0)return null;const i=s>0,f=i?n:a,d=i?a:n,b=!!f.prerelease.length;if(!!d.prerelease.length&&!b){if(!d.patch&&!d.minor)return"major";if(d.compareMain(f)===0)return d.minor&&!d.patch?"minor":"patch"}const u=b?"pre":"";return n.major!==a.major?u+"major":n.minor!==a.minor?u+"minor":n.patch!==a.patch?u+"patch":"prerelease"};const _P=Re;var SP=(e,t)=>new _P(e,t).major;const IP=Re;var CP=(e,t)=>new IP(e,t).minor;const PP=Re;var MP=(e,t)=>new PP(e,t).patch;const $P=Tn;var OP=(e,t)=>{const n=$P(e,t);return n&&n.prerelease.length?n.prerelease:null};const wy=Re;var Nt=(e,t,n)=>new wy(e,n).compare(new wy(t,n));const RP=Nt;var BP=(e,t,n)=>RP(t,e,n);const NP=Nt;var DP=(e,t)=>NP(e,t,!0);const vy=Re;var xo=(e,t,n)=>{const a=new vy(e,n),s=new vy(t,n);return a.compare(s)||a.compareBuild(s)};const kP=xo;var LP=(e,t)=>e.sort((n,a)=>kP(n,a,t));const FP=xo;var UP=(e,t)=>e.sort((n,a)=>FP(a,n,t));const HP=Nt;var Jr=(e,t,n)=>HP(e,t,n)>0;const GP=Nt;var Eo=(e,t,n)=>GP(e,t,n)<0;const zP=Nt;var xy=(e,t,n)=>zP(e,t,n)===0;const jP=Nt;var Ey=(e,t,n)=>jP(e,t,n)!==0;const VP=Nt;var Ao=(e,t,n)=>VP(e,t,n)>=0;const qP=Nt;var _o=(e,t,n)=>qP(e,t,n)<=0;const WP=xy,ZP=Ey,YP=Jr,KP=Ao,XP=Eo,JP=_o;var Ay=(e,t,n,a)=>{switch(t){case"===":return typeof e=="object"&&(e=e.version),typeof n=="object"&&(n=n.version),e===n;case"!==":return typeof e=="object"&&(e=e.version),typeof n=="object"&&(n=n.version),e!==n;case"":case"=":case"==":return WP(e,n,a);case"!=":return ZP(e,n,a);case">":return YP(e,n,a);case">=":return KP(e,n,a);case"<":return XP(e,n,a);case"<=":return JP(e,n,a);default:throw new TypeError(`Invalid operator: ${t}`)}};const QP=Re,eM=Tn,{safeRe:Qr,t:es}=W5;var tM=(e,t)=>{if(e instanceof QP)return e;if(typeof e=="number"&&(e=String(e)),typeof e!="string")return null;t=t||{};let n=null;if(!t.rtl)n=e.match(t.includePrerelease?Qr[es.COERCEFULL]:Qr[es.COERCE]);else{const b=t.includePrerelease?Qr[es.COERCERTLFULL]:Qr[es.COERCERTL];let y;for(;(y=b.exec(e))&&(!n||n.index+n[0].length!==e.length);)(!n||y.index+y[0].length!==n.index+n[0].length)&&(n=y),b.lastIndex=y.index+y[1].length+y[2].length;b.lastIndex=-1}if(n===null)return null;const a=n[2],s=n[3]||"0",i=n[4]||"0",f=t.includePrerelease&&n[5]?`-${n[5]}`:"",d=t.includePrerelease&&n[6]?`+${n[6]}`:"";return eM(`${a}.${s}.${i}${f}${d}`,t)};class nM{constructor(){this.max=1e3,this.map=new Map}get(t){const n=this.map.get(t);if(n!==void 0)return this.map.delete(t),this.map.set(t,n),n}delete(t){return this.map.delete(t)}set(t,n){if(!this.delete(t)&&n!==void 0){if(this.map.size>=this.max){const s=this.map.keys().next().value;this.delete(s)}this.map.set(t,n)}return this}}var aM=nM,So,_y;function Dt(){if(_y)return So;_y=1;const e=/\s+/g;class t{constructor(_,M){if(M=s(M),_ instanceof t)return _.loose===!!M.loose&&_.includePrerelease===!!M.includePrerelease?_:new t(_.raw,M);if(_ instanceof i)return this.raw=_.value,this.set=[[_]],this.formatted=void 0,this;if(this.options=M,this.loose=!!M.loose,this.includePrerelease=!!M.includePrerelease,this.raw=_.trim().replace(e," "),this.set=this.raw.split("||").map(k=>this.parseRange(k.trim())).filter(k=>k.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${this.raw}`);if(this.set.length>1){const k=this.set[0];if(this.set=this.set.filter(B=>!T(B[0])),this.set.length===0)this.set=[k];else if(this.set.length>1){for(const B of this.set)if(B.length===1&&C(B[0])){this.set=[B];break}}}this.formatted=void 0}get range(){if(this.formatted===void 0){this.formatted="";for(let _=0;_<this.set.length;_++){_>0&&(this.formatted+="||");const M=this.set[_];for(let k=0;k<M.length;k++)k>0&&(this.formatted+=" "),this.formatted+=M[k].toString().trim()}}return this.formatted}format(){return this.range}toString(){return this.range}parseRange(_){const k=((this.options.includePrerelease&&h)|(this.options.loose&&x))+":"+_,B=a.get(k);if(B)return B;const U=this.options.loose,P=U?b[y.HYPHENRANGELOOSE]:b[y.HYPHENRANGE];_=_.replace(P,K(this.options.includePrerelease)),f("hyphen replace",_),_=_.replace(b[y.COMPARATORTRIM],u),f("comparator trim",_),_=_.replace(b[y.TILDETRIM],p),f("tilde trim",_),_=_.replace(b[y.CARETTRIM],m),f("caret trim",_);let V=_.split(" ").map(s0=>H(s0,this.options)).join(" ").split(/\s+/).map(s0=>z(s0,this.options));U&&(V=V.filter(s0=>(f("loose invalid filter",s0,this.options),!!s0.match(b[y.COMPARATORLOOSE])))),f("range list",V);const a0=new Map,o0=V.map(s0=>new i(s0,this.options));for(const s0 of o0){if(T(s0))return[s0];a0.set(s0.value,s0)}a0.size>1&&a0.has("")&&a0.delete("");const y0=[...a0.values()];return a.set(k,y0),y0}intersects(_,M){if(!(_ instanceof t))throw new TypeError("a Range is required");return this.set.some(k=>S(k,M)&&_.set.some(B=>S(B,M)&&k.every(U=>B.every(P=>U.intersects(P,M)))))}test(_){if(!_)return!1;if(typeof _=="string")try{_=new d(_,this.options)}catch{return!1}for(let M=0;M<this.set.length;M++)if(W(this.set[M],_,this.options))return!0;return!1}}So=t;const n=aM,a=new n,s=wo,i=ts(),f=Wr,d=Re,{safeRe:b,t:y,comparatorTrimReplace:u,tildeTrimReplace:p,caretTrimReplace:m}=W5,{FLAG_INCLUDE_PRERELEASE:h,FLAG_LOOSE:x}=qr,T=Z=>Z.value==="<0.0.0-0",C=Z=>Z.value==="",S=(Z,_)=>{let M=!0;const k=Z.slice();let B=k.pop();for(;M&&k.length;)M=k.every(U=>B.intersects(U,_)),B=k.pop();return M},H=(Z,_)=>(Z=Z.replace(b[y.BUILD],""),f("comp",Z,_),Z=L(Z,_),f("caret",Z),Z=E(Z,_),f("tildes",Z),Z=D(Z,_),f("xrange",Z),Z=e0(Z,_),f("stars",Z),Z),A=Z=>!Z||Z.toLowerCase()==="x"||Z==="*",E=(Z,_)=>Z.trim().split(/\s+/).map(M=>$(M,_)).join(" "),$=(Z,_)=>{const M=_.loose?b[y.TILDELOOSE]:b[y.TILDE];return Z.replace(M,(k,B,U,P,V)=>{f("tilde",Z,k,B,U,P,V);let a0;return A(B)?a0="":A(U)?a0=`>=${B}.0.0 <${+B+1}.0.0-0`:A(P)?a0=`>=${B}.${U}.0 <${B}.${+U+1}.0-0`:V?(f("replaceTilde pr",V),a0=`>=${B}.${U}.${P}-${V} <${B}.${+U+1}.0-0`):a0=`>=${B}.${U}.${P} <${B}.${+U+1}.0-0`,f("tilde return",a0),a0})},L=(Z,_)=>Z.trim().split(/\s+/).map(M=>R(M,_)).join(" "),R=(Z,_)=>{f("caret",Z,_);const M=_.loose?b[y.CARETLOOSE]:b[y.CARET],k=_.includePrerelease?"-0":"";return Z.replace(M,(B,U,P,V,a0)=>{f("caret",Z,B,U,P,V,a0);let o0;return A(U)?o0="":A(P)?o0=`>=${U}.0.0${k} <${+U+1}.0.0-0`:A(V)?U==="0"?o0=`>=${U}.${P}.0${k} <${U}.${+P+1}.0-0`:o0=`>=${U}.${P}.0${k} <${+U+1}.0.0-0`:a0?(f("replaceCaret pr",a0),U==="0"?P==="0"?o0=`>=${U}.${P}.${V}-${a0} <${U}.${P}.${+V+1}-0`:o0=`>=${U}.${P}.${V}-${a0} <${U}.${+P+1}.0-0`:o0=`>=${U}.${P}.${V}-${a0} <${+U+1}.0.0-0`):(f("no pr"),U==="0"?P==="0"?o0=`>=${U}.${P}.${V}${k} <${U}.${P}.${+V+1}-0`:o0=`>=${U}.${P}.${V}${k} <${U}.${+P+1}.0-0`:o0=`>=${U}.${P}.${V} <${+U+1}.0.0-0`),f("caret return",o0),o0})},D=(Z,_)=>(f("replaceXRanges",Z,_),Z.split(/\s+/).map(M=>q(M,_)).join(" ")),q=(Z,_)=>{Z=Z.trim();const M=_.loose?b[y.XRANGELOOSE]:b[y.XRANGE];return Z.replace(M,(k,B,U,P,V,a0)=>{f("xRange",Z,k,B,U,P,V,a0);const o0=A(U),y0=o0||A(P),s0=y0||A(V),A0=s0;return B==="="&&A0&&(B=""),a0=_.includePrerelease?"-0":"",o0?B===">"||B==="<"?k="<0.0.0-0":k="*":B&&A0?(y0&&(P=0),V=0,B===">"?(B=">=",y0?(U=+U+1,P=0,V=0):(P=+P+1,V=0)):B==="<="&&(B="<",y0?U=+U+1:P=+P+1),B==="<"&&(a0="-0"),k=`${B+U}.${P}.${V}${a0}`):y0?k=`>=${U}.0.0${a0} <${+U+1}.0.0-0`:s0&&(k=`>=${U}.${P}.0${a0} <${U}.${+P+1}.0-0`),f("xRange return",k),k})},e0=(Z,_)=>(f("replaceStars",Z,_),Z.trim().replace(b[y.STAR],"")),z=(Z,_)=>(f("replaceGTE0",Z,_),Z.trim().replace(b[_.includePrerelease?y.GTE0PRE:y.GTE0],"")),K=Z=>(_,M,k,B,U,P,V,a0,o0,y0,s0,A0)=>(A(k)?M="":A(B)?M=`>=${k}.0.0${Z?"-0":""}`:A(U)?M=`>=${k}.${B}.0${Z?"-0":""}`:P?M=`>=${M}`:M=`>=${M}${Z?"-0":""}`,A(o0)?a0="":A(y0)?a0=`<${+o0+1}.0.0-0`:A(s0)?a0=`<${o0}.${+y0+1}.0-0`:A0?a0=`<=${o0}.${y0}.${s0}-${A0}`:Z?a0=`<${o0}.${y0}.${+s0+1}-0`:a0=`<=${a0}`,`${M} ${a0}`.trim()),W=(Z,_,M)=>{for(let k=0;k<Z.length;k++)if(!Z[k].test(_))return!1;if(_.prerelease.length&&!M.includePrerelease){for(let k=0;k<Z.length;k++)if(f(Z[k].semver),Z[k].semver!==i.ANY&&Z[k].semver.prerelease.length>0){const B=Z[k].semver;if(B.major===_.major&&B.minor===_.minor&&B.patch===_.patch)return!0}return!1}return!0};return So}var Io,Sy;function ts(){if(Sy)return Io;Sy=1;const e=Symbol("SemVer ANY");class t{static get ANY(){return e}constructor(u,p){if(p=n(p),u instanceof t){if(u.loose===!!p.loose)return u;u=u.value}u=u.trim().split(/\s+/).join(" "),f("comparator",u,p),this.options=p,this.loose=!!p.loose,this.parse(u),this.semver===e?this.value="":this.value=this.operator+this.semver.version,f("comp",this)}parse(u){const p=this.options.loose?a[s.COMPARATORLOOSE]:a[s.COMPARATOR],m=u.match(p);if(!m)throw new TypeError(`Invalid comparator: ${u}`);this.operator=m[1]!==void 0?m[1]:"",this.operator==="="&&(this.operator=""),m[2]?this.semver=new d(m[2],this.options.loose):this.semver=e}toString(){return this.value}test(u){if(f("Comparator.test",u,this.options.loose),this.semver===e||u===e)return!0;if(typeof u=="string")try{u=new d(u,this.options)}catch{return!1}return i(u,this.operator,this.semver,this.options)}intersects(u,p){if(!(u instanceof t))throw new TypeError("a Comparator is required");return this.operator===""?this.value===""?!0:new b(u.value,p).test(this.value):u.operator===""?u.value===""?!0:new b(this.value,p).test(u.semver):(p=n(p),p.includePrerelease&&(this.value==="<0.0.0-0"||u.value==="<0.0.0-0")||!p.includePrerelease&&(this.value.startsWith("<0.0.0")||u.value.startsWith("<0.0.0"))?!1:!!(this.operator.startsWith(">")&&u.operator.startsWith(">")||this.operator.startsWith("<")&&u.operator.startsWith("<")||this.semver.version===u.semver.version&&this.operator.includes("=")&&u.operator.includes("=")||i(this.semver,"<",u.semver,p)&&this.operator.startsWith(">")&&u.operator.startsWith("<")||i(this.semver,">",u.semver,p)&&this.operator.startsWith("<")&&u.operator.startsWith(">")))}}Io=t;const n=wo,{safeRe:a,t:s}=W5,i=Ay,f=Wr,d=Re,b=Dt();return Io}const rM=Dt();var ns=(e,t,n)=>{try{t=new rM(t,n)}catch{return!1}return t.test(e)};const sM=Dt();var iM=(e,t)=>new sM(e,t).set.map(n=>n.map(a=>a.value).join(" ").trim().split(" "));const oM=Re,fM=Dt();var bM=(e,t,n)=>{let a=null,s=null,i=null;try{i=new fM(t,n)}catch{return null}return e.forEach(f=>{i.test(f)&&(!a||s.compare(f)===-1)&&(a=f,s=new oM(a,n))}),a};const dM=Re,cM=Dt();var uM=(e,t,n)=>{let a=null,s=null,i=null;try{i=new cM(t,n)}catch{return null}return e.forEach(f=>{i.test(f)&&(!a||s.compare(f)===1)&&(a=f,s=new dM(a,n))}),a};const Co=Re,yM=Dt(),Iy=Jr;var pM=(e,t)=>{e=new yM(e,t);let n=new Co("0.0.0");if(e.test(n)||(n=new Co("0.0.0-0"),e.test(n)))return n;n=null;for(let a=0;a<e.set.length;++a){const s=e.set[a];let i=null;s.forEach(f=>{const d=new Co(f.semver.version);switch(f.operator){case">":d.prerelease.length===0?d.patch++:d.prerelease.push(0),d.raw=d.format();case"":case">=":(!i||Iy(d,i))&&(i=d);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${f.operator}`)}}),i&&(!n||Iy(n,i))&&(n=i)}return n&&e.test(n)?n:null};const lM=Dt();var mM=(e,t)=>{try{return new lM(e,t).range||"*"}catch{return null}};const hM=Re,Cy=ts(),{ANY:gM}=Cy,TM=Dt(),wM=ns,Py=Jr,My=Eo,vM=_o,xM=Ao;var Po=(e,t,n,a)=>{e=new hM(e,a),t=new TM(t,a);let s,i,f,d,b;switch(n){case">":s=Py,i=vM,f=My,d=">",b=">=";break;case"<":s=My,i=xM,f=Py,d="<",b="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(wM(e,t,a))return!1;for(let y=0;y<t.set.length;++y){const u=t.set[y];let p=null,m=null;if(u.forEach(h=>{h.semver===gM&&(h=new Cy(">=0.0.0")),p=p||h,m=m||h,s(h.semver,p.semver,a)?p=h:f(h.semver,m.semver,a)&&(m=h)}),p.operator===d||p.operator===b||(!m.operator||m.operator===d)&&i(e,m.semver))return!1;if(m.operator===b&&f(e,m.semver))return!1}return!0};const EM=Po;var AM=(e,t,n)=>EM(e,t,">",n);const _M=Po;var SM=(e,t,n)=>_M(e,t,"<",n);const $y=Dt();var IM=(e,t,n)=>(e=new $y(e,n),t=new $y(t,n),e.intersects(t,n));const CM=ns,PM=Nt;var MM=(e,t,n)=>{const a=[];let s=null,i=null;const f=e.sort((u,p)=>PM(u,p,n));for(const u of f)CM(u,t,n)?(i=u,s||(s=u)):(i&&a.push([s,i]),i=null,s=null);s&&a.push([s,null]);const d=[];for(const[u,p]of a)u===p?d.push(u):!p&&u===f[0]?d.push("*"):p?u===f[0]?d.push(`<=${p}`):d.push(`${u} - ${p}`):d.push(`>=${u}`);const b=d.join(" || "),y=typeof t.raw=="string"?t.raw:String(t);return b.length<y.length?b:t};const Oy=Dt(),Mo=ts(),{ANY:$o}=Mo,Z5=ns,Oo=Nt,$M=(e,t,n={})=>{if(e===t)return!0;e=new Oy(e,n),t=new Oy(t,n);let a=!1;e:for(const s of e.set){for(const i of t.set){const f=RM(s,i,n);if(a=a||f!==null,f)continue e}if(a)return!1}return!0},OM=[new Mo(">=0.0.0-0")],Ry=[new Mo(">=0.0.0")],RM=(e,t,n)=>{if(e===t)return!0;if(e.length===1&&e[0].semver===$o){if(t.length===1&&t[0].semver===$o)return!0;n.includePrerelease?e=OM:e=Ry}if(t.length===1&&t[0].semver===$o){if(n.includePrerelease)return!0;t=Ry}const a=new Set;let s,i;for(const h of e)h.operator===">"||h.operator===">="?s=By(s,h,n):h.operator==="<"||h.operator==="<="?i=Ny(i,h,n):a.add(h.semver);if(a.size>1)return null;let f;if(s&&i){if(f=Oo(s.semver,i.semver,n),f>0)return null;if(f===0&&(s.operator!==">="||i.operator!=="<="))return null}for(const h of a){if(s&&!Z5(h,String(s),n)||i&&!Z5(h,String(i),n))return null;for(const x of t)if(!Z5(h,String(x),n))return!1;return!0}let d,b,y,u,p=i&&!n.includePrerelease&&i.semver.prerelease.length?i.semver:!1,m=s&&!n.includePrerelease&&s.semver.prerelease.length?s.semver:!1;p&&p.prerelease.length===1&&i.operator==="<"&&p.prerelease[0]===0&&(p=!1);for(const h of t){if(u=u||h.operator===">"||h.operator===">=",y=y||h.operator==="<"||h.operator==="<=",s){if(m&&h.semver.prerelease&&h.semver.prerelease.length&&h.semver.major===m.major&&h.semver.minor===m.minor&&h.semver.patch===m.patch&&(m=!1),h.operator===">"||h.operator===">="){if(d=By(s,h,n),d===h&&d!==s)return!1}else if(s.operator===">="&&!Z5(s.semver,String(h),n))return!1}if(i){if(p&&h.semver.prerelease&&h.semver.prerelease.length&&h.semver.major===p.major&&h.semver.minor===p.minor&&h.semver.patch===p.patch&&(p=!1),h.operator==="<"||h.operator==="<="){if(b=Ny(i,h,n),b===h&&b!==i)return!1}else if(i.operator==="<="&&!Z5(i.semver,String(h),n))return!1}if(!h.operator&&(i||s)&&f!==0)return!1}return!(s&&y&&!i&&f!==0||i&&u&&!s&&f!==0||m||p)},By=(e,t,n)=>{if(!e)return t;const a=Oo(e.semver,t.semver,n);return a>0?e:a<0||t.operator===">"&&e.operator===">="?t:e},Ny=(e,t,n)=>{if(!e)return t;const a=Oo(e.semver,t.semver,n);return a<0?e:a>0||t.operator==="<"&&e.operator==="<="?t:e};var BM=$M;const Ro=W5,Dy=qr,NM=Re,ky=ly,DM=Tn,kM=wP,LM=xP,FM=EP,UM=AP,HM=SP,GM=CP,zM=MP,jM=OP,VM=Nt,qM=BP,WM=DP,ZM=xo,YM=LP,KM=UP,XM=Jr,JM=Eo,QM=xy,e$=Ey,t$=Ao,n$=_o,a$=Ay,r$=tM,s$=ts(),i$=Dt();var o$={parse:DM,valid:kM,clean:LM,inc:FM,diff:UM,major:HM,minor:GM,patch:zM,prerelease:jM,compare:VM,rcompare:qM,compareLoose:WM,compareBuild:ZM,sort:YM,rsort:KM,gt:XM,lt:JM,eq:QM,neq:e$,gte:t$,lte:n$,cmp:a$,coerce:r$,Comparator:s$,Range:i$,satisfies:ns,toComparators:iM,maxSatisfying:bM,minSatisfying:uM,minVersion:pM,validRange:mM,outside:Po,gtr:AM,ltr:SM,intersects:IM,simplifyRange:MM,subset:BM,SemVer:NM,re:Ro.re,src:Ro.src,tokens:Ro.t,SEMVER_SPEC_VERSION:Dy.SEMVER_SPEC_VERSION,RELEASE_TYPES:Dy.RELEASE_TYPES,compareIdentifiers:ky.compareIdentifiers,rcompareIdentifiers:ky.rcompareIdentifiers};const f$=Qs(o$),{gt:b$,gtr:d$,satisfies:c$,valid:u$,validRange:y$}=f$,Bo=Yt(_e(),"Version",e=>u$(e)===null?`Expected SemVer version, got "${e}"`:!0),No=Yt(_e(),"Version range",e=>y$(e)===null?`Expected SemVer range, got "${e}"`:!0);function p$(e){return nt(e,Bo)}function l$(e){return nt(e,No)}function m$(e){Rt(e,Bo)}function h$(e){Rt(e,No)}function g$(e,t){return b$(e,t)}function T$(e,t){return d$(e,t)}function w$(e,t){return c$(e,t,{includePrerelease:!0})}const as=BigInt(0),Ly=BigInt(-1);function v$(e){if(typeof e=="string"||typeof e=="number")return BigInt(e);if(typeof e=="bigint")return e;throw new Error(`Cannot convert ${typeof e} to BigInt`)}const wn={noether:"0",wei:"1",kwei:"1000",Kwei:"1000",babbage:"1000",femtoether:"1000",mwei:"1000000",Mwei:"1000000",lovelace:"1000000",picoether:"1000000",gwei:"1000000000",Gwei:"1000000000",shannon:"1000000000",nanoether:"1000000000",nano:"1000000000",szabo:"1000000000000",microether:"1000000000000",micro:"1000000000000",finney:"1000000000000000",milliether:"1000000000000000",milli:"1000000000000000",ether:"1000000000000000000",kether:"1000000000000000000000",grand:"1000000000000000000000",mether:"1000000000000000000000000",gether:"1000000000000000000000000000",tether:"1000000000000000000000000000000"},Do=Object.fromEntries(Object.entries(wn).map(([e,t])=>[e,BigInt(t)])),Fy=Object.fromEntries(Object.entries(wn).map(([e,t])=>[e,t.length-1||1])),x$=/^-?[0-9.]+$/u,E$=/^([0-9]*[1-9]|0)(0*)/u,A$=/\B(?=(\d{3})+(?!\d))/gu;function _$(e="ether"){const t=e.toLowerCase(),n=Do[t];if(n===void 0)throw new Error(`The unit provided ${e} doesn't exist, please use the one of the following units ${JSON.stringify(wn,null,2)}`);return n}function Uy(e){if(typeof e=="string"){if(!x$.test(e))throw new Error(`while converting number to string, invalid number value '${e}', should be a number matching (^-?[0-9.]+).`);return e}if(typeof e=="number")return String(e);if(typeof e=="bigint")return e.toString();throw new Error(`while converting number to string, invalid number value '${String(e)}' type ${typeof e}.`)}function S$(e,t,n){let a=v$(e);const s=a<as,i=t.toLowerCase(),f=Do[i],d=Fy[i],b=n??{};if(f===void 0)throw new Error(`The unit provided ${t} doesn't exist, please use the one of the following units ${JSON.stringify(wn,null,2)}`);if(f===as)return s?"-0":"0";s&&(a=a*Ly);let y=(a%f).toString();if(y=y.padStart(d,"0"),!b.pad){const m=y.match(E$);y=(m==null?void 0:m[1])??"0"}let u=(a/f).toString();b.commify&&(u=u.replace(A$,","));let p=`${u}${y==="0"?"":`.${y}`}`;return s&&(p=`-${p}`),p}function I$(e,t){const n=t.toLowerCase(),a=Do[n],s=Fy[n];if(a===void 0)throw new Error(`The unit provided ${t} doesn't exist, please use the one of the following units ${JSON.stringify(wn,null,2)}`);if(a===as)return as;if(typeof e=="bigint"&&n==="wei")return e;if(typeof e=="bigint")return e*a;let i=Uy(e);const f=i.startsWith("-");if(f&&(i=i.substring(1)),i===".")throw new Error(`While converting number ${e} to wei, invalid value`);const d=i.split(".");if(d.length>2)throw new Error(`While converting number ${e} to wei, too many decimal points`);let b=d[0],y=d[1];if(b||(b="0"),y||(y="0"),y.length>s)throw new Error(`While converting number ${e} to wei, too many decimal places`);y=y.padEnd(s,"0");const u=BigInt(b),p=BigInt(y);let m=u*a+p;return f&&(m=m*Ly),m}const C$=Object.freeze(Object.defineProperty({__proto__:null,AssertionError:eo,CAIP_ACCOUNT_ADDRESS_REGEX:Lr,CAIP_ACCOUNT_ID_REGEX:kr,CAIP_ASSET_ID_REGEX:Hr,CAIP_ASSET_NAMESPACE_REGEX:U5,CAIP_ASSET_REFERENCE_REGEX:H5,CAIP_ASSET_TYPE_REGEX:Ur,CAIP_CHAIN_ID_REGEX:Dr,CAIP_NAMESPACE_REGEX:_6,CAIP_REFERENCE_REGEX:S6,CAIP_TOKEN_ID_REGEX:Fr,CaipAccountAddressStruct:sC,CaipAccountIdStruct:rC,CaipAssetIdStruct:dC,CaipAssetNamespaceStruct:iC,CaipAssetReferenceStruct:oC,CaipAssetTypeOrIdStruct:cC,CaipAssetTypeStruct:bC,CaipChainIdStruct:tC,CaipNamespaceStruct:nC,CaipReferenceStruct:aC,CaipTokenIdStruct:fC,ChecksumStruct:AC,get Duration(){return Vr},ESCAPE_CHARACTERS_REGEXP:R9,FrozenMap:oo,FrozenSet:fo,HexAddressStruct:NI,HexChecksumAddressStruct:DI,HexStruct:BI,JsonRpcErrorStruct:q5,JsonRpcFailureStruct:jr,JsonRpcIdStruct:V5,JsonRpcNotificationStruct:po,JsonRpcParamsStruct:uo,JsonRpcRequestStruct:yo,JsonRpcResponseStruct:mo,JsonRpcSuccessStruct:zr,JsonRpcVersionStruct:gn,get JsonSize(){return $r},JsonStruct:I6,get KnownCaipNamespace(){return Gr},PendingJsonRpcResponseStruct:lo,StrictHexStruct:L5,UnsafeJsonStruct:co,VersionRangeStruct:No,VersionStruct:Bo,add0x:F5,areUint8ArraysEqual:QI,assert:k0,assertExhaustive:$I,assertIsBytes:E6,assertIsHexString:Br,assertIsJsonRpcError:YC,assertIsJsonRpcFailure:WC,assertIsJsonRpcNotification:kC,assertIsJsonRpcRequest:FC,assertIsJsonRpcResponse:zC,assertIsJsonRpcSuccess:VC,assertIsPendingJsonRpcResponse:HC,assertIsSemVerRange:h$,assertIsSemVerVersion:m$,assertIsStrictHexString:kI,assertStruct:Rt,base64:F9,base64ToBytes:KI,bigIntToBytes:Q9,bigIntToHex:sP,bytesToBase64:WI,bytesToBigInt:J9,bytesToHex:Nr,bytesToNumber:VI,bytesToSignedBigInt:jI,bytesToString:qI,calculateNumberSize:_I,calculateStringSize:AI,concatBytes:XI,createBigInt:MC,createBytes:$C,createDataView:JI,createDeferredPromise:fP,createHex:OC,createModuleLogger:aP,createNumber:PC,createProjectLogger:nP,definePattern:Tt,exactOptional:j5,fromWei:S$,getChecksumAddress:W9,getErrorMessage:k9,getJsonRpcIdValidator:KC,getJsonSize:NC,getKnownPropertyNames:xI,getSafeJson:fy,getValueOfUnit:_$,gtRange:T$,gtVersion:g$,hasProperty:O9,hexToBigInt:oP,hexToBytes:A6,hexToNumber:iP,inMilliseconds:dP,isASCII:B9,isBytes:ro,isCaipAccountAddress:ay,isCaipAccountId:yC,isCaipAssetId:lC,isCaipAssetNamespace:so,isCaipAssetReference:io,isCaipAssetType:pC,isCaipChainId:uC,isCaipNamespace:G5,isCaipReference:z5,isCaipTokenId:ry,isErrorWithCode:N9,isErrorWithMessage:D9,isErrorWithStack:II,isHexAddress:q9,isHexChecksumAddress:no,isHexString:j9,isJsonRpcError:ZC,isJsonRpcFailure:qC,isJsonRpcNotification:DC,isJsonRpcRequest:LC,isJsonRpcResponse:GC,isJsonRpcSuccess:jC,isNonEmptyArray:vI,isNullOrUndefined:M9,isObject:$9,isPendingJsonRpcResponse:UC,isPlainObject:EI,isStrictHexString:V9,isValidChecksumAddress:Z9,isValidHexAddress:HI,isValidJson:BC,isValidSemVerRange:l$,isValidSemVerVersion:p$,jsonrpc2:by,numberToBytes:ey,numberToHex:rP,numberToString:Uy,object:hn,parseCaipAccountId:hC,parseCaipAssetId:TC,parseCaipAssetType:gC,parseCaipChainId:mC,remove0x:ao,satisfiesVersionRange:w$,sha256:RC,signedBigIntToBytes:YI,stringToBytes:ty,timeSince:cP,toCaipAccountId:vC,toCaipAssetId:EC,toCaipAssetType:xC,toCaipChainId:wC,toWei:I$,unitMap:wn,valueToBytes:ny,wrapError:CI},Symbol.toStringTag,{value:"Module"}));var rs={},Hy={};const je=Bb(C$);var kt={};(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.ParserError=e.getErrorStack=e.getErrorMessage=void 0;const t=je,n=i=>typeof i=="string"?i:i instanceof Error||(0,t.isObject)(i)&&(0,t.hasProperty)(i,"message")&&typeof i.message=="string"?i.message:"Unknown error.";e.getErrorMessage=n;const a=i=>{if(i instanceof Error)return i.stack};e.getErrorStack=a;class s extends Error{constructor(f,d){super(f),this.name="ParserError";const b=(0,e.getErrorStack)(d);b&&(this.stack=b)}}e.ParserError=s})(kt);var ko={},ss={};Object.defineProperty(ss,"__esModule",{value:!0}),ss.iterate=void 0;const Gy=je,P$=function*(e,t=32){for(let n=0;n<e.length;n+=t){const a=i=>{(0,Gy.assert)(i>=0,"Cannot skip a negative number of bytes."),(0,Gy.assert)(i%t===0,"Length must be a multiple of the size."),n+=i},s=e.subarray(n);yield{skip:a,value:s}}return{skip:()=>{},value:new Uint8Array}};ss.iterate=P$;var Lo={},zy={},C6={},V1={};Object.defineProperty(V1,"__esModule",{value:!0}),V1.padEnd=V1.padStart=V1.set=void 0;const Fo=je,jy=32,M$=(e,t,n)=>(0,Fo.concatBytes)([e.subarray(0,n),t,e.subarray(n+t.length)]);V1.set=M$;const $$=(e,t=jy)=>{const n=new Uint8Array(Math.max(t-e.length,0)).fill(0);return(0,Fo.concatBytes)([n,e])};V1.padStart=$$;const O$=(e,t=jy)=>{const n=new Uint8Array(Math.max(t-e.length,0)).fill(0);return(0,Fo.concatBytes)([e,n])};V1.padEnd=O$,function(e){var t=K0&&K0.__createBinding||(Object.create?function(a,s,i,f){f===void 0&&(f=i);var d=Object.getOwnPropertyDescriptor(s,i);(!d||("get"in d?!s.__esModule:d.writable||d.configurable))&&(d={enumerable:!0,get:function(){return s[i]}}),Object.defineProperty(a,f,d)}:function(a,s,i,f){f===void 0&&(f=i),a[f]=s[i]}),n=K0&&K0.__exportStar||function(a,s){for(var i in a)i!=="default"&&!Object.prototype.hasOwnProperty.call(s,i)&&t(s,a,i)};Object.defineProperty(e,"__esModule",{value:!0}),n(V1,e)}(C6),function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.address=e.getAddress=void 0;const t=je,n=kt,a=C6,s=i=>{const f=(0,t.createBytes)(i);return(0,t.assert)(f.length<=20,new n.ParserError(`Invalid address value. Expected address to be 20 bytes long, but received ${f.length} bytes.`)),(0,a.padStart)(f,20)};e.getAddress=s,e.address={isDynamic:!1,isType:i=>i==="address",getByteLength(){return 32},encode({buffer:i,value:f,packed:d}){const b=(0,e.getAddress)(f);if(d)return(0,t.concatBytes)([i,b]);const y=(0,a.padStart)(b);return(0,t.concatBytes)([i,y])},decode({value:i}){return(0,t.add0x)((0,t.bytesToHex)(i.slice(12,32)))}}}(zy);var Uo={},is={};(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.fixedBytes=e.getByteLength=void 0;const t=je,n=kt,a=C6,s=/^bytes([0-9]{1,2})$/u,i=f=>{var y;const d=(y=f.match(s))==null?void 0:y[1];(0,t.assert)(d,`Invalid byte length. Expected a number between 1 and 32, but received "${f}".`);const b=Number(d);return(0,t.assert)(b>0&&b<=32,new n.ParserError(`Invalid byte length. Expected a number between 1 and 32, but received "${f}".`)),b};e.getByteLength=i,e.fixedBytes={isDynamic:!1,isType(f){return s.test(f)},getByteLength(){return 32},encode({type:f,buffer:d,value:b,packed:y}){const u=(0,e.getByteLength)(f),p=(0,t.createBytes)(b);return(0,t.assert)(p.length<=u,new n.ParserError(`Expected a value of length ${u}, but received a value of length ${p.length}.`)),y?(0,t.concatBytes)([d,(0,a.padEnd)(p,u)]):(0,t.concatBytes)([d,(0,a.padEnd)(p)])},decode({type:f,value:d}){const b=(0,e.getByteLength)(f);return d.slice(0,b)}}})(is);var Ho={},Vy;function qy(){return Vy||(Vy=1,function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.tuple=e.getTupleElements=void 0;const t=je,n=kt,a=zo(),s=/^\((.+)\)$/u,i=d=>s.test(d),f=d=>{(0,t.assert)(d.startsWith("(")&&d.endsWith(")"),new n.ParserError(`Invalid tuple type. Expected tuple type, but received "${d}".`));const b=[];let y="",u=0;for(let p=1;p<d.length-1;p++){const m=d[p];m===","&&u===0?(b.push(y.trim()),y=""):(y+=m,m==="("?u+=1:m===")"&&(u-=1))}return y.trim()&&b.push(y.trim()),b};e.getTupleElements=f,e.tuple={isDynamic(d){return(0,e.getTupleElements)(d).some(y=>{const u=(0,a.getParser)(y);return(0,a.isDynamicParser)(u,y)})},isType(d){return i(d)},getByteLength(d){return(0,a.isDynamicParser)(this,d)?32:(0,e.getTupleElements)(d).reduce((y,u)=>y+(0,a.getParser)(u).getByteLength(u),0)},encode({type:d,buffer:b,value:y,packed:u,tight:p}){const m=(0,e.getTupleElements)(d);return(0,a.pack)({types:m,values:y,byteArray:b,packed:u,tight:p})},decode({type:d,value:b,skip:y}){const u=(0,e.getTupleElements)(d),p=this.getByteLength(d)-32;return y(p),(0,a.unpack)(u,b)}}}(Ho)),Ho}var Wy;function R$(){return Wy||(Wy=1,function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.array=e.getTupleType=e.getArrayType=e.isArrayType=void 0;const t=je,n=kt,a=zo(),s=C6,i=is,f=qy(),d=/^(?<type>.*)\[(?<length>\d*?)\]$/u,b=p=>d.test(p);e.isArrayType=b;const y=p=>{var h;const m=p.match(d);return(0,t.assert)((h=m==null?void 0:m.groups)==null?void 0:h.type,new n.ParserError(`Invalid array type. Expected an array type, but received "${p}".`)),[m.groups.type,m.groups.length?parseInt(m.groups.length,10):void 0]};e.getArrayType=y;const u=(p,m)=>`(${new Array(m).fill(p).join(",")})`;e.getTupleType=u,e.array={isDynamic(p){const[m,h]=(0,e.getArrayType)(p);return h===void 0||(0,a.isDynamicParser)((0,a.getParser)(m),m)},isType(p){return(0,e.isArrayType)(p)},getByteLength(p){(0,t.assert)((0,e.isArrayType)(p),new n.ParserError(`Expected an array type, but received "${p}".`));const[m,h]=(0,e.getArrayType)(p);return!(0,a.isDynamicParser)(this,p)&&h!==void 0?f.tuple.getByteLength((0,e.getTupleType)(m,h)):32},encode({type:p,buffer:m,value:h,packed:x,tight:T}){const[C,S]=(0,e.getArrayType)(p);if((0,t.assert)(!x||!(0,e.isArrayType)(C),new n.ParserError("Cannot pack nested arrays.")),x&&(0,a.isDynamicParser)((0,a.getParser)(C),C))return(0,a.pack)({types:new Array(h.length).fill(C),values:h,byteArray:m,packed:x,arrayPacked:!0,tight:T});if(S)return(0,t.assert)(S===h.length,new n.ParserError(`Array length does not match type length. Expected a length of ${S}, but received ${h.length}.`)),f.tuple.encode({type:(0,e.getTupleType)(C,S),buffer:m,value:h,packed:i.fixedBytes.isType(C)&&T,tight:T});if(x)return(0,a.pack)({types:new Array(h.length).fill(C),values:h,byteArray:m,packed:i.fixedBytes.isType(C)&&T,arrayPacked:!0,tight:T});const H=(0,s.padStart)((0,t.numberToBytes)(h.length));return(0,a.pack)({types:new Array(h.length).fill(C),values:h,byteArray:(0,t.concatBytes)([m,H]),packed:x,tight:T})},decode({type:p,value:m,...h}){const[x,T]=(0,e.getArrayType)(p);if(T){const S=f.tuple.decode({type:(0,e.getTupleType)(x,T),value:m,...h});return(0,t.assert)(S.length===T,new n.ParserError(`Array length does not match type length. Expected a length of ${T}, but received ${S.length}.`)),S}const C=(0,t.bytesToNumber)(m.subarray(0,32));return(0,a.unpack)(new Array(C).fill(x),m.subarray(32))}}}(Uo)),Uo}var Zy={};const Yy=Bb(wI);var Go={};(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.number=e.getBigInt=e.assertNumberLength=e.getLength=e.isSigned=void 0;const t=je,n=kt,a=C6,s=/^u?int(?<length>[0-9]*)?$/u,i=y=>!y.startsWith("u");e.isSigned=i;const f=y=>{var m;if(y==="int"||y==="uint")return 256;const u=y.match(s);(0,t.assert)((m=u==null?void 0:u.groups)==null?void 0:m.length,new n.ParserError(`Invalid number type. Expected a number type, but received "${y}".`));const p=parseInt(u.groups.length,10);return(0,t.assert)(p>=8&&p<=256,new n.ParserError(`Invalid number length. Expected a number between 8 and 256, but received "${y}".`)),(0,t.assert)(p%8===0,new n.ParserError(`Invalid number length. Expected a multiple of 8, but received "${y}".`)),p};e.getLength=f;const d=(y,u)=>{const p=(0,e.getLength)(u),m=BigInt(2)**BigInt(p-((0,e.isSigned)(u)?1:0))-BigInt(1);if((0,e.isSigned)(u)){(0,t.assert)(y>=-(m+BigInt(1))&&y<=m,new n.ParserError(`Number "${y}" is out of range for type "${u}".`));return}(0,t.assert)(y<=m,new n.ParserError(`Number "${y}" is out of range for type "${u}".`))};e.assertNumberLength=d;const b=y=>{try{return(0,t.createBigInt)(y)}catch{throw new n.ParserError(`Invalid number. Expected a valid number value, but received "${y}".`)}};e.getBigInt=b,e.number={isDynamic:!1,isType(y){return s.test(y)},getByteLength(){return 32},encode({type:y,buffer:u,value:p,packed:m}){const h=(0,e.getBigInt)(p);if((0,e.assertNumberLength)(h,y),(0,e.isSigned)(y)){if(m){const x=(0,e.getLength)(y)/8;return(0,t.concatBytes)([u,(0,t.signedBigIntToBytes)(h,x)])}return(0,t.concatBytes)([u,(0,a.padStart)((0,t.signedBigIntToBytes)(h,32))])}if(m){const x=(0,e.getLength)(y)/8;return(0,t.concatBytes)([u,(0,a.padStart)((0,t.bigIntToBytes)(h),x)])}return(0,t.concatBytes)([u,(0,a.padStart)((0,t.bigIntToBytes)(h))])},decode({type:y,value:u}){const p=u.subarray(0,32);if((0,e.isSigned)(y)){const h=(0,t.bytesToSignedBigInt)(p);return(0,e.assertNumberLength)(h,y),h}const m=(0,t.bytesToBigInt)(p);return(0,e.assertNumberLength)(m,y),m}}})(Go),function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.bool=e.getBooleanValue=void 0;const t=Yy,n=je,a=kt,s=Go,i=(0,t.coerce)((0,t.boolean)(),(0,t.union)([(0,t.literal)("true"),(0,t.literal)("false")]),d=>d==="true"),f=d=>{try{return(0,t.create)(d,i)?BigInt(1):BigInt(0)}catch{throw new a.ParserError(`Invalid boolean value. Expected a boolean literal, or the string "true" or "false", but received "${d}".`)}};e.getBooleanValue=f,e.bool={isDynamic:!1,isType:d=>d==="bool",getByteLength(){return 32},encode({buffer:d,value:b,packed:y,tight:u}){const p=(0,e.getBooleanValue)(b);return y?(0,n.concatBytes)([d,(0,n.bigIntToBytes)(p)]):s.number.encode({type:"uint256",buffer:d,value:p,packed:y,tight:u})},decode(d){return s.number.decode({...d,type:"uint256"})===BigInt(1)}}}(Zy);var Y5={};Object.defineProperty(Y5,"__esModule",{value:!0}),Y5.bytes=void 0;const K5=je,Ky=C6;Y5.bytes={isDynamic:!0,isType:e=>e==="bytes",getByteLength(){return 32},encode({buffer:e,value:t,packed:n}){const a=(0,K5.createBytes)(t);if(n)return(0,K5.concatBytes)([e,a]);const s=Math.ceil(a.byteLength/32)*32;return(0,K5.concatBytes)([e,(0,Ky.padStart)((0,K5.numberToBytes)(a.byteLength)),(0,Ky.padEnd)(a,s)])},decode({value:e}){const t=e.subarray(0,32),n=(0,K5.bytesToNumber)(t);return e.slice(32,32+n)}};var Xy={};(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.fn=e.getFunction=void 0;const t=Yy,n=je,a=kt,s=is,i=(0,t.coerce)((0,t.object)({address:n.StrictHexStruct,selector:n.StrictHexStruct}),(0,t.union)([n.StrictHexStruct,(0,t.instance)(Uint8Array)]),d=>{const b=(0,n.createBytes)(d);return(0,n.assert)(b.length===24,new a.ParserError(`Invalid Solidity function. Expected function to be 24 bytes long, but received ${b.length} bytes.`)),{address:(0,n.bytesToHex)(b.subarray(0,20)),selector:(0,n.bytesToHex)(b.subarray(20,24))}}),f=d=>{const b=(0,t.create)(d,i);return(0,n.concatBytes)([(0,n.hexToBytes)(b.address),(0,n.hexToBytes)(b.selector)])};e.getFunction=f,e.fn={isDynamic:!1,isType:d=>d==="function",getByteLength(){return 32},encode({buffer:d,value:b,packed:y,tight:u}){const p=(0,e.getFunction)(b);return s.fixedBytes.encode({type:"bytes24",buffer:d,value:p,packed:y,tight:u})},decode({value:d}){return{address:(0,n.bytesToHex)(d.slice(0,20)),selector:(0,n.bytesToHex)(d.slice(20,24))}}}})(Xy);var Jy={};Object.defineProperty(Jy,"__esModule",{value:!0});var os={};Object.defineProperty(os,"__esModule",{value:!0}),os.string=void 0;const Qy=je,ep=Y5;os.string={isDynamic:!0,isType:e=>e==="string",getByteLength(){return 32},encode({buffer:e,value:t,packed:n,tight:a}){return ep.bytes.encode({type:"bytes",buffer:e,value:(0,Qy.stringToBytes)(t),packed:n,tight:a})},decode(e){return(0,Qy.bytesToString)(ep.bytes.decode(e))}};var tp;function B$(){return tp||(tp=1,function(e){var t=K0&&K0.__createBinding||(Object.create?function(a,s,i,f){f===void 0&&(f=i);var d=Object.getOwnPropertyDescriptor(s,i);(!d||("get"in d?!s.__esModule:d.writable||d.configurable))&&(d={enumerable:!0,get:function(){return s[i]}}),Object.defineProperty(a,f,d)}:function(a,s,i,f){f===void 0&&(f=i),a[f]=s[i]}),n=K0&&K0.__exportStar||function(a,s){for(var i in a)i!=="default"&&!Object.prototype.hasOwnProperty.call(s,i)&&t(s,a,i)};Object.defineProperty(e,"__esModule",{value:!0}),n(zy,e),n(R$(),e),n(Zy,e),n(Y5,e),n(is,e),n(Xy,e),n(Go,e),n(Jy,e),n(os,e),n(qy(),e)}(Lo)),Lo}var np;function zo(){return np||(np=1,function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.unpack=e.pack=e.isDynamicParser=e.getParser=void 0;const t=je,n=kt,a=ss,s=B$(),i=C6,f=u=>{const p={address:s.address,array:s.array,bool:s.bool,bytes:s.bytes,fixedBytes:s.fixedBytes,function:s.fn,number:s.number,string:s.string,tuple:s.tuple},m=p[u];if(m)return m;const h=Object.values(p).find(x=>x.isType(u));if(h)return h;throw new n.ParserError(`The type "${u}" is not supported.`)};e.getParser=f;const d=(u,p)=>{const{isDynamic:m}=u;return typeof m=="function"?m(p):m};e.isDynamicParser=d;const b=({types:u,values:p,packed:m=!1,tight:h=!1,arrayPacked:x=!1,byteArray:T=new Uint8Array})=>{(0,t.assert)(u.length===p.length,new n.ParserError(`The number of types (${u.length}) does not match the number of values (${p.length}).`));const{staticBuffer:C,dynamicBuffer:S,pointers:H}=u.reduce(({staticBuffer:$,dynamicBuffer:L,pointers:R},D,q)=>{const e0=(0,e.getParser)(D),z=p[q];if(m||x||!(0,e.isDynamicParser)(e0,D))return{staticBuffer:e0.encode({buffer:$,value:z,type:D,packed:m,tight:h}),dynamicBuffer:L,pointers:R};const K=(0,t.concatBytes)([$,new Uint8Array(32)]),W=e0.encode({buffer:L,value:z,type:D,packed:m,tight:h});return{staticBuffer:K,dynamicBuffer:W,pointers:[...R,{position:$.length,pointer:L.length}]}},{staticBuffer:new Uint8Array,dynamicBuffer:new Uint8Array,pointers:[]});(0,t.assert)(!m&&!x||S.length===0,new n.ParserError("Invalid pack state."));const A=C.length,E=H.reduce(($,{pointer:L,position:R})=>{const D=(0,i.padStart)((0,t.numberToBytes)(A+L));return(0,i.set)($,D,R)},C);return(0,t.concatBytes)([T,E,S])};e.pack=b;const y=(u,p)=>{const m=(0,a.iterate)(p);return u.map(h=>{const{value:{value:x,skip:T},done:C}=m.next();(0,t.assert)(!C,new n.ParserError(`The encoded value is invalid for the provided types. Reached end of buffer while attempting to parse "${h}".`));const S=(0,e.getParser)(h);if((0,e.isDynamicParser)(S,h)){const A=(0,t.bytesToNumber)(x.subarray(0,32)),E=p.subarray(A);return S.decode({type:h,value:E,skip:T})}return S.decode({type:h,value:x,skip:T})})};e.unpack=y}(ko)),ko}(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.decodeSingle=e.decode=e.encodePacked=e.encodeSingle=e.encode=void 0;const t=je,n=kt,a=zo(),s=(y,u,p,m)=>{try{return(0,a.pack)({types:y,values:u,packed:p,tight:m})}catch(h){throw h instanceof n.ParserError?new n.ParserError(`Unable to encode value: ${h.message}`,h):new n.ParserError(`An unexpected error occurred: ${(0,n.getErrorMessage)(h)}`,h)}};e.encode=s;const i=(y,u)=>(0,e.encode)([y],[u]);e.encodeSingle=i;const f=(y,u,p)=>(0,e.encode)(y,u,!0,p);e.encodePacked=f;const d=(y,u)=>{const p=(0,t.createBytes)(u);try{return(0,a.unpack)(y,p)}catch(m){throw m instanceof n.ParserError?new n.ParserError(`Unable to decode value: ${m.message}`,m):new n.ParserError(`An unexpected error occurred: ${(0,n.getErrorMessage)(m)}`,m)}};e.decode=d;const b=(y,u)=>{const p=(0,e.decode)([y],u);return(0,t.assert)(p.length===1,new n.ParserError("Decoded value array has unexpected length.")),p[0]};e.decodeSingle=b})(Hy);var ap={},rp={};Object.defineProperty(rp,"__esModule",{value:!0}),function(e){var t=K0&&K0.__createBinding||(Object.create?function(a,s,i,f){f===void 0&&(f=i);var d=Object.getOwnPropertyDescriptor(s,i);(!d||("get"in d?!s.__esModule:d.writable||d.configurable))&&(d={enumerable:!0,get:function(){return s[i]}}),Object.defineProperty(a,f,d)}:function(a,s,i,f){f===void 0&&(f=i),a[f]=s[i]}),n=K0&&K0.__exportStar||function(a,s){for(var i in a)i!=="default"&&!Object.prototype.hasOwnProperty.call(s,i)&&t(s,a,i)};Object.defineProperty(e,"__esModule",{value:!0}),n(rp,e)}(ap),function(e){var t=K0&&K0.__createBinding||(Object.create?function(a,s,i,f){f===void 0&&(f=i);var d=Object.getOwnPropertyDescriptor(s,i);(!d||("get"in d?!s.__esModule:d.writable||d.configurable))&&(d={enumerable:!0,get:function(){return s[i]}}),Object.defineProperty(a,f,d)}:function(a,s,i,f){f===void 0&&(f=i),a[f]=s[i]}),n=K0&&K0.__exportStar||function(a,s){for(var i in a)i!=="default"&&!Object.prototype.hasOwnProperty.call(s,i)&&t(s,a,i)};Object.defineProperty(e,"__esModule",{value:!0}),n(Hy,e),n(kt,e),n(ap,e)}(rs);var sp={out:"hex"};function ip(e,t){if(t.out==="hex"){const a=typeof e=="string"?e:Nr(e);return a.startsWith("0x")?a:`0x${a}`}return e instanceof Uint8Array?e:A6(e)}var op="0x0000000000000000000000000000000000000a11",jo="0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",N$="0x88c1d2ecf185adf710588203a5f263f0ff61be0d33da39792cde19ba9aa4331e",D$="0x80ad7e1b04ee6d994a125f4714ca0720908bd80ed16063ec8aee4b88e9253e2d",k$="(address,address,bytes32,(address,bytes,bytes)[],uint256,bytes)[]";function L$(e,t=sp){let n;if(e.length===0)n=new Uint8Array(64),n[31]=32;else{const a=e.map(s=>[s.delegate,s.delegator,s.authority,s.caveats.map(i=>[i.enforcer,i.terms,i.args]),s.salt,s.signature]);n=rs.encodeSingle(k$,a)}return ip(n,t)}function F$(e,t=sp){const n=rs.encode(["bytes32","address","address","bytes32","bytes32","uint256"],[N$,e.delegate,e.delegator,e.authority,U$(e.caveats),e.salt]),a=a6(n);return ip(a,t)}function U$(e){const t=32*e.length,n=new Uint8Array(t);for(let a=0;a<e.length;a++){const s=e[a];if(!s)throw new Error(`Caveat was undefined at index ${a}`);const i=H$(s);n.set(i,a*32)}return a6(n)}function H$(e){const t=typeof e.terms=="string"?A6(e.terms):e.terms,n=a6(t),a=rs.encode(["bytes32","address","bytes32"],[D$,e.enforcer,n]);return a6(a)}var G$=Object.defineProperty,f0=(e,t)=>{for(var n in t)G$(e,n,{get:t[n],enumerable:!0})};z0(se("Caveat(address enforcer,bytes terms)"));var wt=e=>{const t=e.caveats.map(a=>({enforcer:r6(a.enforcer),terms:a.terms,args:a.args})),n=e.salt==="0x"?0n:BigInt(e.salt);return{delegate:r6(e.delegate),delegator:r6(e.delegator),authority:e.authority===void 0?jo:e.authority,caveats:t,salt:n,signature:e.signature}},z$=e=>{const t=e.map(wt);return L$(t)},fp=e=>e.map(n=>z$(n)),bp={Caveat:[{name:"enforcer",type:"address"},{name:"terms",type:"bytes"}],Delegation:[{name:"delegate",type:"address"},{name:"delegator",type:"address"},{name:"authority",type:"bytes32"},{name:"caveats",type:"Caveat[]"},{name:"salt",type:"uint256"}]},X5=e=>{const t=wt(e);return F$(t)},j$=({delegation:e,delegationManager:t,chainId:n,name:a="DelegationManager",version:s="1",allowInsecureUnrestrictedDelegation:i=!1})=>{const f=wt({...e,signature:"0x"});if(f.caveats.length===0&&!i)throw new Error("No caveats found. If you definitely want to sign a delegation without caveats, set `allowInsecureUnrestrictedDelegation` to `true`.");return{domain:{chainId:n,name:a,version:s,verifyingContract:t},types:bp,primaryType:"Delegation",message:f}},V$=Object.defineProperty,Q=(e,t)=>{for(var n in t)V$(e,n,{get:t[n],enumerable:!0})},q$={};Q(q$,{abi:()=>W$,bytecode:()=>Z$});var W$=[{type:"error",name:"AddressEmptyCode",inputs:[{name:"target",type:"address",internalType:"address"}]},{type:"error",name:"AddressInsufficientBalance",inputs:[{name:"account",type:"address",internalType:"address"}]},{type:"error",name:"FailedInnerCall",inputs:[]}],Z$="0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212204a050c4fa34153d3fae9d282b8c08f593842bb7e1d0caa440348574559167b6a64736f6c63430008170033",Y$={};Q(Y$,{abi:()=>K$,bytecode:()=>X$});var K$=[{type:"function",name:"afterAllHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"afterHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"beforeAllHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"beforeHook",inputs:[{name:"_terms",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"_mode",type:"bytes32",internalType:"ModeCode"},{name:"_executionCallData",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"pure"},{type:"function",name:"getTermsInfo",inputs:[{name:"_terms",type:"bytes",internalType:"bytes"}],outputs:[{name:"allowedMethods_",type:"bytes4[]",internalType:"bytes4[]"}],stateMutability:"pure"}],X$="0x608060405234801561001057600080fd5b506107fc806100206000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c8063414c3e331461005c578063a145832a14610078578063b99deb0e1461008b578063d3eddcc51461005c578063ed4633671461005c575b600080fd5b61007661006a366004610512565b50505050505050505050565b005b610076610086366004610512565b6100b4565b61009e6100993660046105df565b610197565b6040516100ab9190610621565b60405180910390f35b856100c08160006102e5565b6101115760405162461bcd60e51b815260206004820181905260248201527f436176656174456e666f726365723a696e76616c69642d63616c6c2d7479706560448201526064015b60405180910390fd5b86600881901b6101228160006102e5565b61017c5760405162461bcd60e51b815260206004820152602560248201527f436176656174456e666f726365723a696e76616c69642d657865637574696f6e6044820152642d7479706560d81b6064820152608401610108565b506101898c8c89896102fc565b505050505050505050505050565b60606000826101a7600482610685565b1580156101b357508015155b6102135760405162461bcd60e51b815260206004820152602b60248201527f416c6c6f7765644d6574686f6473456e666f726365723a696e76616c69642d7460448201526a0cae4dae65ad8cadccee8d60ab1b6064820152608401610108565b61021e6004826106af565b67ffffffffffffffff811115610236576102366106c3565b60405190808252806020026020018201604052801561025f578160200160208202803683370190505b50925060005b818110156102dc5785818661027b8260046106d9565b92610288939291906106ec565b61029191610716565b8484815181106102a3576102a3610746565b6001600160e01b031990921660209283029190910190910152826102c68161075c565b93506102d590506004826106d9565b9050610265565b50505092915050565b6001600160f81b0319828116908216145b92915050565b366000610309848461045c565b90945092505050600481101561037e5760405162461bcd60e51b815260206004820152603460248201527f416c6c6f7765644d6574686f6473456e666f726365723a696e76616c69642d656044820152730f0cac6eae8d2dedc5ac8c2e8c25ad8cadccee8d60631b6064820152608401610108565b600061038d60048284866106ec565b61039691610716565b905060006103a48888610197565b805190915060005b818110156103fb578281815181106103c6576103c6610746565b60200260200101516001600160e01b031916846001600160e01b031916036103f357505050505050610456565b6001016103ac565b5060405162461bcd60e51b815260206004820152602960248201527f416c6c6f7765644d6574686f6473456e666f726365723a6d6574686f642d6e6f6044820152681d0b585b1b1bddd95960ba1b6064820152608401610108565b50505050565b600080368161046e60148287896106ec565b61047791610775565b60601c935061048a6034601487896106ec565b610493916107a8565b92506104a285603481896106ec565b949793965094505050565b60008083601f8401126104bf57600080fd5b50813567ffffffffffffffff8111156104d757600080fd5b6020830191508360208285010111156104ef57600080fd5b9250929050565b80356001600160a01b038116811461050d57600080fd5b919050565b60008060008060008060008060008060e08b8d03121561053157600080fd5b8a3567ffffffffffffffff8082111561054957600080fd5b6105558e838f016104ad565b909c509a5060208d013591508082111561056e57600080fd5b61057a8e838f016104ad565b909a50985060408d0135975060608d013591508082111561059a57600080fd5b506105a78d828e016104ad565b90965094505060808b013592506105c060a08c016104f6565b91506105ce60c08c016104f6565b90509295989b9194979a5092959850565b600080602083850312156105f257600080fd5b823567ffffffffffffffff81111561060957600080fd5b610615858286016104ad565b90969095509350505050565b6020808252825182820181905260009190848201906040850190845b818110156106635783516001600160e01b0319168352928401929184019160010161063d565b50909695505050505050565b634e487b7160e01b600052601260045260246000fd5b6000826106945761069461066f565b500690565b634e487b7160e01b600052601160045260246000fd5b6000826106be576106be61066f565b500490565b634e487b7160e01b600052604160045260246000fd5b808201808211156102f6576102f6610699565b600080858511156106fc57600080fd5b8386111561070957600080fd5b5050820193919092039150565b6001600160e01b0319813581811691600485101561073e5780818660040360031b1b83161692505b505092915050565b634e487b7160e01b600052603260045260246000fd5b60006001820161076e5761076e610699565b5060010190565b6bffffffffffffffffffffffff19813581811691601485101561073e5760149490940360031b84901b1690921692915050565b803560208310156102f657600019602084900360031b1b169291505056fea26469706673582212200b708c0be5e7b588370a3a50ea4c9e1f7cb79f4e1abc8d9c979a4f6d6867e5ae64736f6c63430008170033",J$={};Q(J$,{abi:()=>Q$,bytecode:()=>eO});var Q$=[{type:"function",name:"afterAllHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"afterHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"beforeAllHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"beforeHook",inputs:[{name:"_terms",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"_mode",type:"bytes32",internalType:"ModeCode"},{name:"_executionCallData",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"pure"},{type:"function",name:"getTermsInfo",inputs:[{name:"_terms",type:"bytes",internalType:"bytes"}],outputs:[{name:"allowedTargets_",type:"address[]",internalType:"address[]"}],stateMutability:"pure"}],eO="0x608060405234801561001057600080fd5b50610736806100206000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c8063414c3e331461005c578063a145832a14610078578063b99deb0e1461008b578063d3eddcc51461005c578063ed4633671461005c575b600080fd5b61007661006a36600461047b565b50505050505050505050565b005b61007661008636600461047b565b6100b4565b61009e610099366004610548565b61025e565b6040516100ab919061058a565b60405180910390f35b856100c08160006103ae565b6101115760405162461bcd60e51b815260206004820181905260248201527f436176656174456e666f726365723a696e76616c69642d63616c6c2d7479706560448201526064015b60405180910390fd5b86600881901b6101228160006103ae565b61017c5760405162461bcd60e51b815260206004820152602560248201527f436176656174456e666f726365723a696e76616c69642d657865637574696f6e6044820152642d7479706560d81b6064820152608401610108565b50600061018988886103c5565b5050509050600061019a8e8e61025e565b805190915060005b818110156101ed578281815181106101bc576101bc6105d7565b60200260200101516001600160a01b0316846001600160a01b0316036101e55750505050610250565b6001016101a2565b5060405162461bcd60e51b815260206004820152603160248201527f416c6c6f77656454617267657473456e666f726365723a7461726765742d6164604482015270191c995cdccb5b9bdd0b585b1b1bddd959607a1b6064820152608401610108565b505050505050505050505050565b606060008261026e601482610603565b15801561027a57508015155b6102da5760405162461bcd60e51b815260206004820152602b60248201527f416c6c6f77656454617267657473456e666f726365723a696e76616c69642d7460448201526a0cae4dae65ad8cadccee8d60ab1b6064820152608401610108565b6102e560148261062d565b67ffffffffffffffff8111156102fd576102fd610641565b604051908082528060200260200182016040528015610326578160200160208202803683370190505b50925060005b818110156103a557858186610342826014610657565b9261034f9392919061066a565b61035891610694565b60601c84848151811061036d5761036d6105d7565b6001600160a01b03909216602092830291909101909101528261038f816106c9565b935061039e9050601482610657565b905061032c565b50505092915050565b6001600160f81b0319828116908216145b92915050565b60008036816103d7601482878961066a565b6103e091610694565b60601c93506103f360346014878961066a565b6103fc916106e2565b925061040b856034818961066a565b949793965094505050565b60008083601f84011261042857600080fd5b50813567ffffffffffffffff81111561044057600080fd5b60208301915083602082850101111561045857600080fd5b9250929050565b80356001600160a01b038116811461047657600080fd5b919050565b60008060008060008060008060008060e08b8d03121561049a57600080fd5b8a3567ffffffffffffffff808211156104b257600080fd5b6104be8e838f01610416565b909c509a5060208d01359150808211156104d757600080fd5b6104e38e838f01610416565b909a50985060408d0135975060608d013591508082111561050357600080fd5b506105108d828e01610416565b90965094505060808b0135925061052960a08c0161045f565b915061053760c08c0161045f565b90509295989b9194979a5092959850565b6000806020838503121561055b57600080fd5b823567ffffffffffffffff81111561057257600080fd5b61057e85828601610416565b90969095509350505050565b6020808252825182820181905260009190848201906040850190845b818110156105cb5783516001600160a01b0316835292840192918401916001016105a6565b50909695505050505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601260045260246000fd5b600082610612576106126105ed565b500690565b634e487b7160e01b600052601160045260246000fd5b60008261063c5761063c6105ed565b500490565b634e487b7160e01b600052604160045260246000fd5b808201808211156103bf576103bf610617565b6000808585111561067a57600080fd5b8386111561068757600080fd5b5050820193919092039150565b6bffffffffffffffffffffffff1981358181169160148510156106c15780818660140360031b1b83161692505b505092915050565b6000600182016106db576106db610617565b5060010190565b803560208310156103bf57600019602084900360031b1b169291505056fea2646970667358221220192854344f7cbe5e3a46630068ff1c57d1382d110f4c7dae36ce8f18206bd1c864736f6c63430008170033",tO={};Q(tO,{abi:()=>nO,bytecode:()=>aO});var nO=[],aO="0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122088f05df9a321ebbfd15b9ae491704455fd55c5a0ef490ba4f3111c5cd7aa944764736f6c63430008170033",rO={};Q(rO,{abi:()=>sO,bytecode:()=>iO});var sO=[],iO="0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ba35151db75ea04dd32865d4b2bd18ac453d87dfd60b81ec325260f801c1709564736f6c63430008170033",oO={};Q(oO,{abi:()=>fO,bytecode:()=>bO});var fO=[{type:"function",name:"afterAllHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"afterHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"beforeAllHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"beforeHook",inputs:[{name:"_terms",type:"bytes",internalType:"bytes"},{name:"_args",type:"bytes",internalType:"bytes"},{name:"_mode",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"_delegationHash",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"_redeemer",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"event",name:"DifferentArgsAndTerms",inputs:[{name:"sender",type:"address",indexed:!0,internalType:"address"},{name:"redeemer",type:"address",indexed:!0,internalType:"address"},{name:"delegationHash",type:"bytes32",indexed:!0,internalType:"bytes32"},{name:"terms",type:"bytes",indexed:!1,internalType:"bytes"},{name:"args",type:"bytes",indexed:!1,internalType:"bytes"}],anonymous:!1}],bO="0x608060405234801561001057600080fd5b506103b7806100206000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c8063414c3e3314610051578063a145832a1461006d578063d3eddcc514610051578063ed46336714610051575b600080fd5b61006b61005f366004610249565b50505050505050505050565b005b61006b61007b366004610249565b85600881901b6001600160f81b03198116156100ec5760405162461bcd60e51b815260206004820152602560248201527f436176656174456e666f726365723a696e76616c69642d657865637574696f6e6044820152642d7479706560d81b60648201526084015b60405180910390fd5b5088886040516100fd929190610316565b60405180910390208b8b604051610115929190610316565b6040518091039020146101d75783826001600160a01b0316336001600160a01b03167f07fc5f2898fc1f1cf9d6012177b7abb8d010b9e64055979af3a5bcd274e2a11a8e8e8e8e60405161016c949392919061034f565b60405180910390a460405162461bcd60e51b815260206004820152603260248201527f41726773457175616c697479436865636b456e666f726365723a646966666572604482015271656e742d617267732d616e642d7465726d7360701b60648201526084016100e3565b5050505050505050505050565b60008083601f8401126101f657600080fd5b50813567ffffffffffffffff81111561020e57600080fd5b60208301915083602082850101111561022657600080fd5b9250929050565b80356001600160a01b038116811461024457600080fd5b919050565b60008060008060008060008060008060e08b8d03121561026857600080fd5b8a3567ffffffffffffffff8082111561028057600080fd5b61028c8e838f016101e4565b909c509a5060208d01359150808211156102a557600080fd5b6102b18e838f016101e4565b909a50985060408d0135975060608d01359150808211156102d157600080fd5b506102de8d828e016101e4565b90965094505060808b013592506102f760a08c0161022d565b915061030560c08c0161022d565b90509295989b9194979a5092959850565b8183823760009101908152919050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b604081526000610363604083018688610326565b8281036020840152610376818587610326565b97965050505050505056fea264697066735822122078e67ed2011e86335117ad2962f5a7ffbe2179a19bda7b4e0f3c3beff2ca893c64736f6c63430008170033",dO={};Q(dO,{abi:()=>cO,bytecode:()=>uO});var cO=[],uO="0x",yO={};Q(yO,{abi:()=>pO,bytecode:()=>lO});var pO=[{type:"error",name:"Create2EmptyBytecode",inputs:[]},{type:"error",name:"Create2FailedDeployment",inputs:[]},{type:"error",name:"Create2InsufficientBalance",inputs:[{name:"balance",type:"uint256",internalType:"uint256"},{name:"needed",type:"uint256",internalType:"uint256"}]}],lO="0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122010c6b66ba2fc3a92f070bf47f6d02e68772a73d44eed07c73bca1c9f7fab44e964736f6c63430008170033",mO={};Q(mO,{abi:()=>hO,bytecode:()=>gO});var hO=[{type:"function",name:"afterAllHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"afterHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"beforeAllHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"beforeHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"}],gO="0x",oe={};Q(oe,{abi:()=>TO,bytecode:()=>wO});var TO=[{type:"receive",stateMutability:"payable"},{type:"function",name:"PACKED_USER_OP_TYPEHASH",inputs:[],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"UPGRADE_INTERFACE_VERSION",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"addDeposit",inputs:[],outputs:[],stateMutability:"payable"},{type:"function",name:"delegationManager",inputs:[],outputs:[{name:"",type:"address",internalType:"contract IDelegationManager"}],stateMutability:"view"},{type:"function",name:"disableDelegation",inputs:[{name:"_delegation",type:"tuple",internalType:"struct Delegation",components:[{name:"delegate",type:"address",internalType:"address"},{name:"delegator",type:"address",internalType:"address"},{name:"authority",type:"bytes32",internalType:"bytes32"},{name:"caveats",type:"tuple[]",internalType:"struct Caveat[]",components:[{name:"enforcer",type:"address",internalType:"address"},{name:"terms",type:"bytes",internalType:"bytes"},{name:"args",type:"bytes",internalType:"bytes"}]},{name:"salt",type:"uint256",internalType:"uint256"},{name:"signature",type:"bytes",internalType:"bytes"}]}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"eip712Domain",inputs:[],outputs:[{name:"fields",type:"bytes1",internalType:"bytes1"},{name:"name",type:"string",internalType:"string"},{name:"version",type:"string",internalType:"string"},{name:"chainId",type:"uint256",internalType:"uint256"},{name:"verifyingContract",type:"address",internalType:"address"},{name:"salt",type:"bytes32",internalType:"bytes32"},{name:"extensions",type:"uint256[]",internalType:"uint256[]"}],stateMutability:"view"},{type:"function",name:"enableDelegation",inputs:[{name:"_delegation",type:"tuple",internalType:"struct Delegation",components:[{name:"delegate",type:"address",internalType:"address"},{name:"delegator",type:"address",internalType:"address"},{name:"authority",type:"bytes32",internalType:"bytes32"},{name:"caveats",type:"tuple[]",internalType:"struct Caveat[]",components:[{name:"enforcer",type:"address",internalType:"address"},{name:"terms",type:"bytes",internalType:"bytes"},{name:"args",type:"bytes",internalType:"bytes"}]},{name:"salt",type:"uint256",internalType:"uint256"},{name:"signature",type:"bytes",internalType:"bytes"}]}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"entryPoint",inputs:[],outputs:[{name:"",type:"address",internalType:"contract IEntryPoint"}],stateMutability:"view"},{type:"function",name:"execute",inputs:[{name:"_execution",type:"tuple",internalType:"struct Execution",components:[{name:"target",type:"address",internalType:"address"},{name:"value",type:"uint256",internalType:"uint256"},{name:"callData",type:"bytes",internalType:"bytes"}]}],outputs:[],stateMutability:"payable"},{type:"function",name:"execute",inputs:[{name:"_mode",type:"bytes32",internalType:"ModeCode"},{name:"_executionCalldata",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"payable"},{type:"function",name:"executeFromExecutor",inputs:[{name:"_mode",type:"bytes32",internalType:"ModeCode"},{name:"_executionCalldata",type:"bytes",internalType:"bytes"}],outputs:[{name:"returnData_",type:"bytes[]",internalType:"bytes[]"}],stateMutability:"payable"},{type:"function",name:"getDeposit",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getDomainHash",inputs:[],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"getImplementation",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"getInitializedVersion",inputs:[],outputs:[{name:"",type:"uint64",internalType:"uint64"}],stateMutability:"view"},{type:"function",name:"getNonce",inputs:[{name:"_key",type:"uint192",internalType:"uint192"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getNonce",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getPackedUserOperationHash",inputs:[{name:"_userOp",type:"tuple",internalType:"struct PackedUserOperation",components:[{name:"sender",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"},{name:"initCode",type:"bytes",internalType:"bytes"},{name:"callData",type:"bytes",internalType:"bytes"},{name:"accountGasLimits",type:"bytes32",internalType:"bytes32"},{name:"preVerificationGas",type:"uint256",internalType:"uint256"},{name:"gasFees",type:"bytes32",internalType:"bytes32"},{name:"paymasterAndData",type:"bytes",internalType:"bytes"},{name:"signature",type:"bytes",internalType:"bytes"}]}],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"getPackedUserOperationTypedDataHash",inputs:[{name:"_userOp",type:"tuple",internalType:"struct PackedUserOperation",components:[{name:"sender",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"},{name:"initCode",type:"bytes",internalType:"bytes"},{name:"callData",type:"bytes",internalType:"bytes"},{name:"accountGasLimits",type:"bytes32",internalType:"bytes32"},{name:"preVerificationGas",type:"uint256",internalType:"uint256"},{name:"gasFees",type:"bytes32",internalType:"bytes32"},{name:"paymasterAndData",type:"bytes",internalType:"bytes"},{name:"signature",type:"bytes",internalType:"bytes"}]}],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"isDelegationDisabled",inputs:[{name:"_delegationHash",type:"bytes32",internalType:"bytes32"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"isValidSignature",inputs:[{name:"_hash",type:"bytes32",internalType:"bytes32"},{name:"_signature",type:"bytes",internalType:"bytes"}],outputs:[{name:"magicValue_",type:"bytes4",internalType:"bytes4"}],stateMutability:"view"},{type:"function",name:"onERC1155BatchReceived",inputs:[{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"},{name:"",type:"uint256[]",internalType:"uint256[]"},{name:"",type:"uint256[]",internalType:"uint256[]"},{name:"",type:"bytes",internalType:"bytes"}],outputs:[{name:"",type:"bytes4",internalType:"bytes4"}],stateMutability:"view"},{type:"function",name:"onERC1155Received",inputs:[{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"},{name:"",type:"uint256",internalType:"uint256"},{name:"",type:"uint256",internalType:"uint256"},{name:"",type:"bytes",internalType:"bytes"}],outputs:[{name:"",type:"bytes4",internalType:"bytes4"}],stateMutability:"view"},{type:"function",name:"onERC721Received",inputs:[{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"},{name:"",type:"uint256",internalType:"uint256"},{name:"",type:"bytes",internalType:"bytes"}],outputs:[{name:"",type:"bytes4",internalType:"bytes4"}],stateMutability:"view"},{type:"function",name:"proxiableUUID",inputs:[],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"redeemDelegations",inputs:[{name:"_permissionContexts",type:"bytes[]",internalType:"bytes[]"},{name:"_modes",type:"bytes32[]",internalType:"ModeCode[]"},{name:"_executionCallDatas",type:"bytes[]",internalType:"bytes[]"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"supportsInterface",inputs:[{name:"_interfaceId",type:"bytes4",internalType:"bytes4"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"upgradeToAndCall",inputs:[{name:"_newImplementation",type:"address",internalType:"address"},{name:"_data",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"payable"},{type:"function",name:"upgradeToAndCallAndRetainStorage",inputs:[{name:"_newImplementation",type:"address",internalType:"address"},{name:"_data",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"payable"},{type:"function",name:"validateUserOp",inputs:[{name:"_userOp",type:"tuple",internalType:"struct PackedUserOperation",components:[{name:"sender",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"},{name:"initCode",type:"bytes",internalType:"bytes"},{name:"callData",type:"bytes",internalType:"bytes"},{name:"accountGasLimits",type:"bytes32",internalType:"bytes32"},{name:"preVerificationGas",type:"uint256",internalType:"uint256"},{name:"gasFees",type:"bytes32",internalType:"bytes32"},{name:"paymasterAndData",type:"bytes",internalType:"bytes"},{name:"signature",type:"bytes",internalType:"bytes"}]},{name:"",type:"bytes32",internalType:"bytes32"},{name:"_missingAccountFunds",type:"uint256",internalType:"uint256"}],outputs:[{name:"validationData_",type:"uint256",internalType:"uint256"}],stateMutability:"nonpayable"},{type:"function",name:"withdrawDeposit",inputs:[{name:"_withdrawAddress",type:"address",internalType:"address payable"},{name:"_withdrawAmount",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"event",name:"ClearedStorage",inputs:[],anonymous:!1},{type:"event",name:"EIP712DomainChanged",inputs:[],anonymous:!1},{type:"event",name:"Initialized",inputs:[{name:"version",type:"uint64",indexed:!1,internalType:"uint64"}],anonymous:!1},{type:"event",name:"SentPrefund",inputs:[{name:"sender",type:"address",indexed:!0,internalType:"address"},{name:"amount",type:"uint256",indexed:!1,internalType:"uint256"},{name:"success",type:"bool",indexed:!1,internalType:"bool"}],anonymous:!1},{type:"event",name:"SetDelegationManager",inputs:[{name:"newDelegationManager",type:"address",indexed:!0,internalType:"contract IDelegationManager"}],anonymous:!1},{type:"event",name:"SetEntryPoint",inputs:[{name:"entryPoint",type:"address",indexed:!0,internalType:"contract IEntryPoint"}],anonymous:!1},{type:"event",name:"TryExecuteUnsuccessful",inputs:[{name:"batchExecutionindex",type:"uint256",indexed:!1,internalType:"uint256"},{name:"result",type:"bytes",indexed:!1,internalType:"bytes"}],anonymous:!1},{type:"event",name:"Upgraded",inputs:[{name:"implementation",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"error",name:"AddressEmptyCode",inputs:[{name:"target",type:"address",internalType:"address"}]},{type:"error",name:"ERC1967InvalidImplementation",inputs:[{name:"implementation",type:"address",internalType:"address"}]},{type:"error",name:"ERC1967NonPayable",inputs:[]},{type:"error",name:"ExecutionFailed",inputs:[]},{type:"error",name:"FailedInnerCall",inputs:[]},{type:"error",name:"InvalidInitialization",inputs:[]},{type:"error",name:"InvalidShortString",inputs:[]},{type:"error",name:"NotDelegationManager",inputs:[]},{type:"error",name:"NotEntryPoint",inputs:[]},{type:"error",name:"NotEntryPointOrSelf",inputs:[]},{type:"error",name:"NotInitializing",inputs:[]},{type:"error",name:"NotSelf",inputs:[]},{type:"error",name:"StringTooLong",inputs:[{name:"str",type:"string",internalType:"string"}]},{type:"error",name:"UUPSUnauthorizedCallContext",inputs:[]},{type:"error",name:"UUPSUnsupportedProxiableUUID",inputs:[{name:"slot",type:"bytes32",internalType:"bytes32"}]},{type:"error",name:"UnsupportedCallType",inputs:[{name:"callType",type:"bytes1",internalType:"CallType"}]},{type:"error",name:"UnsupportedExecType",inputs:[{name:"execType",type:"bytes1",internalType:"ExecType"}]}],wO="0x",vO={};Q(vO,{abi:()=>xO,bytecode:()=>EO});var xO=[{type:"constructor",inputs:[{name:"_owner",type:"address",internalType:"address"},{name:"_swapApiSigner",type:"address",internalType:"address"},{name:"_delegationManager",type:"address",internalType:"contract IDelegationManager"},{name:"_metaSwap",type:"address",internalType:"contract IMetaSwap"},{name:"_argsEqualityCheckEnforcer",type:"address",internalType:"address"}],stateMutability:"nonpayable"},{type:"receive",stateMutability:"payable"},{type:"function",name:"WHITELIST_ENFORCED",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"WHITELIST_NOT_ENFORCED",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"acceptOwnership",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"argsEqualityCheckEnforcer",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"delegationManager",inputs:[],outputs:[{name:"",type:"address",internalType:"contract IDelegationManager"}],stateMutability:"view"},{type:"function",name:"executeFromExecutor",inputs:[{name:"_mode",type:"bytes32",internalType:"ModeCode"},{name:"_executionCalldata",type:"bytes",internalType:"bytes"}],outputs:[{name:"returnData_",type:"bytes[]",internalType:"bytes[]"}],stateMutability:"payable"},{type:"function",name:"isAggregatorAllowed",inputs:[{name:"aggregatorIdHash",type:"bytes32",internalType:"bytes32"}],outputs:[{name:"allowed",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"isTokenAllowed",inputs:[{name:"token",type:"address",internalType:"contract IERC20"}],outputs:[{name:"allowed",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"metaSwap",inputs:[],outputs:[{name:"",type:"address",internalType:"contract IMetaSwap"}],stateMutability:"view"},{type:"function",name:"owner",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"pendingOwner",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"renounceOwnership",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setSwapApiSigner",inputs:[{name:"_newSigner",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"swapApiSigner",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"swapByDelegation",inputs:[{name:"_signatureData",type:"tuple",internalType:"struct DelegationMetaSwapAdapter.SignatureData",components:[{name:"apiData",type:"bytes",internalType:"bytes"},{name:"expiration",type:"uint256",internalType:"uint256"},{name:"signature",type:"bytes",internalType:"bytes"}]},{name:"_delegations",type:"tuple[]",internalType:"struct Delegation[]",components:[{name:"delegate",type:"address",internalType:"address"},{name:"delegator",type:"address",internalType:"address"},{name:"authority",type:"bytes32",internalType:"bytes32"},{name:"caveats",type:"tuple[]",internalType:"struct Caveat[]",components:[{name:"enforcer",type:"address",internalType:"address"},{name:"terms",type:"bytes",internalType:"bytes"},{name:"args",type:"bytes",internalType:"bytes"}]},{name:"salt",type:"uint256",internalType:"uint256"},{name:"signature",type:"bytes",internalType:"bytes"}]},{name:"_useTokenWhitelist",type:"bool",internalType:"bool"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"swapTokens",inputs:[{name:"_aggregatorId",type:"string",internalType:"string"},{name:"_tokenFrom",type:"address",internalType:"contract IERC20"},{name:"_tokenTo",type:"address",internalType:"contract IERC20"},{name:"_recipient",type:"address",internalType:"address"},{name:"_amountFrom",type:"uint256",internalType:"uint256"},{name:"_balanceFromBefore",type:"uint256",internalType:"uint256"},{name:"_swapData",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"transferOwnership",inputs:[{name:"newOwner",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"updateAllowedAggregatorIds",inputs:[{name:"_aggregatorIds",type:"string[]",internalType:"string[]"},{name:"_statuses",type:"bool[]",internalType:"bool[]"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"updateAllowedTokens",inputs:[{name:"_tokens",type:"address[]",internalType:"contract IERC20[]"},{name:"_statuses",type:"bool[]",internalType:"bool[]"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"withdraw",inputs:[{name:"_token",type:"address",internalType:"contract IERC20"},{name:"_amount",type:"uint256",internalType:"uint256"},{name:"_recipient",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"event",name:"ChangedAggregatorIdStatus",inputs:[{name:"aggregatorIdHash",type:"bytes32",indexed:!0,internalType:"bytes32"},{name:"aggregatorId",type:"string",indexed:!1,internalType:"string"},{name:"status",type:"bool",indexed:!1,internalType:"bool"}],anonymous:!1},{type:"event",name:"ChangedTokenStatus",inputs:[{name:"token",type:"address",indexed:!1,internalType:"contract IERC20"},{name:"status",type:"bool",indexed:!1,internalType:"bool"}],anonymous:!1},{type:"event",name:"OwnershipTransferStarted",inputs:[{name:"previousOwner",type:"address",indexed:!0,internalType:"address"},{name:"newOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"OwnershipTransferred",inputs:[{name:"previousOwner",type:"address",indexed:!0,internalType:"address"},{name:"newOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"SentTokens",inputs:[{name:"token",type:"address",indexed:!0,internalType:"contract IERC20"},{name:"recipient",type:"address",indexed:!0,internalType:"address"},{name:"amount",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"SetArgsEqualityCheckEnforcer",inputs:[{name:"newArgsEqualityCheckEnforcer",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"SetDelegationManager",inputs:[{name:"newDelegationManager",type:"address",indexed:!0,internalType:"contract IDelegationManager"}],anonymous:!1},{type:"event",name:"SetMetaSwap",inputs:[{name:"newMetaSwap",type:"address",indexed:!0,internalType:"contract IMetaSwap"}],anonymous:!1},{type:"event",name:"SwapApiSignerUpdated",inputs:[{name:"newSigner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"TryExecuteUnsuccessful",inputs:[{name:"batchExecutionindex",type:"uint256",indexed:!1,internalType:"uint256"},{name:"result",type:"bytes",indexed:!1,internalType:"bytes"}],anonymous:!1},{type:"error",name:"AddressEmptyCode",inputs:[{name:"target",type:"address",internalType:"address"}]},{type:"error",name:"AddressInsufficientBalance",inputs:[{name:"account",type:"address",internalType:"address"}]},{type:"error",name:"AggregatorIdIsNotAllowed",inputs:[{name:"aggregatorId",type:"string",internalType:"string"}]},{type:"error",name:"AmountFromMismatch",inputs:[]},{type:"error",name:"ECDSAInvalidSignature",inputs:[]},{type:"error",name:"ECDSAInvalidSignatureLength",inputs:[{name:"length",type:"uint256",internalType:"uint256"}]},{type:"error",name:"ECDSAInvalidSignatureS",inputs:[{name:"s",type:"bytes32",internalType:"bytes32"}]},{type:"error",name:"ExecutionFailed",inputs:[]},{type:"error",name:"FailedInnerCall",inputs:[]},{type:"error",name:"FailedNativeTokenTransfer",inputs:[{name:"recipient",type:"address",internalType:"address"}]},{type:"error",name:"InputLengthsMismatch",inputs:[]},{type:"error",name:"InsufficientTokens",inputs:[]},{type:"error",name:"InvalidApiSignature",inputs:[]},{type:"error",name:"InvalidEmptyDelegations",inputs:[]},{type:"error",name:"InvalidIdenticalTokens",inputs:[]},{type:"error",name:"InvalidSwapFunctionSelector",inputs:[]},{type:"error",name:"InvalidZeroAddress",inputs:[]},{type:"error",name:"MissingArgsEqualityCheckEnforcer",inputs:[]},{type:"error",name:"NotDelegationManager",inputs:[]},{type:"error",name:"NotLeafDelegator",inputs:[]},{type:"error",name:"NotSelf",inputs:[]},{type:"error",name:"OwnableInvalidOwner",inputs:[{name:"owner",type:"address",internalType:"address"}]},{type:"error",name:"OwnableUnauthorizedAccount",inputs:[{name:"account",type:"address",internalType:"address"}]},{type:"error",name:"SafeERC20FailedOperation",inputs:[{name:"token",type:"address",internalType:"address"}]},{type:"error",name:"SignatureExpired",inputs:[]},{type:"error",name:"TokenFromIsNotAllowed",inputs:[{name:"token",type:"address",internalType:"contract IERC20"}]},{type:"error",name:"TokenFromMismatch",inputs:[]},{type:"error",name:"TokenToIsNotAllowed",inputs:[{name:"token",type:"address",internalType:"contract IERC20"}]},{type:"error",name:"UnsupportedCallType",inputs:[{name:"callType",type:"bytes1",internalType:"CallType"}]},{type:"error",name:"UnsupportedExecType",inputs:[{name:"execType",type:"bytes1",internalType:"ExecType"}]}],EO="0x60e06040523480156200001157600080fd5b506040516200306738038062003067833981016040819052620000349162000258565b846001600160a01b0381166200006457604051631e4fbdf760e01b81526000600482015260240160405180910390fd5b6200006f81620001d4565b506001600160a01b03841615806200008e57506001600160a01b038316155b80620000a157506001600160a01b038216155b80620000b457506001600160a01b038116155b15620000d35760405163f6b2911f60e01b815260040160405180910390fd5b600280546001600160a01b0319166001600160a01b0386811691821790925584821660805283821660a05290821660c0526040517fdeeca532e75e413fdd750935f0d28d3686b7e2074831c42f70db2ca0dc7b32d090600090a26040516001600160a01b038416907fb2e8eb88b584ae71ef4e854c10847f4d39bd93e52599f147bfb4dcc8de52014d90600090a26040516001600160a01b038316907f5a3c783d657606d324917524307587fd272edc5e8b257da020bb6072226b6b2c90600090a26040516001600160a01b038216907fb21681281e4a8a2f3a982e391c6e8b4638d9ccd60e9fa9715dc26c7e3cd15bbe90600090a25050505050620002d8565b600180546001600160a01b0319169055620001ef81620001f2565b50565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0381168114620001ef57600080fd5b600080600080600060a086880312156200027157600080fd5b85516200027e8162000242565b6020870151909550620002918162000242565b6040870151909450620002a48162000242565b6060870151909350620002b78162000242565b6080870151909250620002ca8162000242565b809150509295509295909350565b60805160a05160c051612d356200033260003960008181610288015261136801526000818161033201528181610f4601528181610fd601526110010152600081816103a4015281816109120152610cf30152612d356000f3fe6080604052600436106101235760003560e01c8063ab7180f7116100a0578063ea4d3c9b11610064578063ea4d3c9b14610392578063ea9c6555146103c6578063f2fde38b1461040a578063f9eaee0d1461042a578063fcdea7a91461045a57600080fd5b8063ab7180f7146102aa578063b555ddad14610300578063cb2ef5fe14610320578063d691c96414610354578063e30c39781461037457600080fd5b8063715018a6116100e7578063715018a61461020e57806379ba5097146102235780638da5cb5b1461023857806390ef4d1b14610256578063a42ff9311461027657600080fd5b8063059ba4ee1461012f578063178984911461016c5780636451b418146101ac57806367ebd8a2146101ce57806369328dec146101ee57600080fd5b3661012a57005b600080fd5b34801561013b57600080fd5b5060025461014f906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561017857600080fd5b5061019c610187366004611e85565b60046020526000908152604090205460ff1681565b6040519015158152602001610163565b3480156101b857600080fd5b506101cc6101c7366004612108565b61047a565b005b3480156101da57600080fd5b506101cc6101e9366004612281565b61098c565b3480156101fa57600080fd5b506101cc61020936600461229e565b610a05565b34801561021a57600080fd5b506101cc610a1d565b34801561022f57600080fd5b506101cc610a31565b34801561024457600080fd5b506000546001600160a01b031661014f565b34801561026257600080fd5b506101cc61027136600461232b565b610a75565b34801561028257600080fd5b5061014f7f000000000000000000000000000000000000000000000000000000000000000081565b3480156102b657600080fd5b506102f36040518060400160405280601c81526020017f546f6b656e2d57686974656c6973742d4e6f742d456e666f726365640000000081525081565b60405161016391906123e6565b34801561030c57600080fd5b506101cc61031b36600461232b565b610bcb565b34801561032c57600080fd5b5061014f7f000000000000000000000000000000000000000000000000000000000000000081565b61036761036236600461243a565b610ce6565b60405161016391906124df565b34801561038057600080fd5b506001546001600160a01b031661014f565b34801561039e57600080fd5b5061014f7f000000000000000000000000000000000000000000000000000000000000000081565b3480156103d257600080fd5b506102f360405180604001604052806018815260200177151bdad95b8b55da1a5d195b1a5cdd0b515b999bdc98d95960421b81525081565b34801561041657600080fd5b506101cc610425366004612281565b610e1f565b34801561043657600080fd5b5061019c610445366004612281565b60036020526000908152604090205460ff1681565b34801561046657600080fd5b506101cc6104753660046124f2565b610e90565b61048b610486846125b4565b6110ba565b6000808080806104a361049e898061262a565b611194565b94509450945094509450600087519050806000036104d45760405163478bfa6560e01b815260040160405180910390fd5b836001600160a01b0316856001600160a01b03160361050657604051634e570e4560e01b815260040160405180910390fd5b61051285858a8a61132c565b600460008760405160200161052791906123e6565b60408051601f198184030181529181528151602092830120835290820192909252016000205460ff16610578578560405163b55e93d160e01b815260040161056f91906123e6565b60405180910390fd5b336001600160a01b03168860008151811061059557610595612670565b6020026020010151602001516001600160a01b0316146105c85760405163a711bbaf60e01b815260040160405180910390fd5b60003063fcdea7a98888888d6105df60018961269c565b815181106105ef576105ef612670565b602002602001015160200151896106058d6115b4565b8a60405160240161061c97969594939291906126af565b60408051601f19818403018152918152602080830180516001600160e01b031660e09590951b94909417909352805160028082526060820190925291945060009350909182015b60608152602001906001900390816106635790505090508960405160200161068b919061270f565b604051602081830303815290604052816000815181106106ad576106ad612670565b6020908102919091010152600060405190808252806020026020018201604052801561073957816020015b6107266040518060c0016040528060006001600160a01b0316815260200160006001600160a01b03168152602001600080191681526020016060815260200160008152602001606081525090565b8152602001906001900390816106d85790505b5060405160200161074a919061270f565b6040516020818303038152906040528160018151811061076c5761076c612670565b6020908102919091010152604080516002808252606082019092526000918160200160208202803683370190505090506107a4611639565b816000815181106107b7576107b7612670565b6020026020010181815250506107cb611639565b816001815181106107de576107de612670565b602090810291909101015260408051600280825260608201909252600091816020015b60608152602001906001900390816108015790505090506001600160a01b0389166108635761084030886040518060200160405280600081525061164c565b8160008151811061085357610853612670565b60200260200101819052506108d1565b6040513060248201526044810188905260009060640160408051601f198184030181529190526020810180516001600160e01b031663a9059cbb60e01b17905290506108b18a60008361164c565b826000815181106108c4576108c4612670565b6020026020010181905250505b6108dd3060008661164c565b816001815181106108f0576108f0612670565b602090810291909101015260405163cef6d20960e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cef6d2099061094b90869086908690600401612841565b600060405180830381600087803b15801561096557600080fd5b505af1158015610979573d6000803e3d6000fd5b5050505050505050505050505050505050565b61099461167b565b6001600160a01b0381166109bb5760405163f6b2911f60e01b815260040160405180910390fd5b600280546001600160a01b0319166001600160a01b0383169081179091556040517fdeeca532e75e413fdd750935f0d28d3686b7e2074831c42f70db2ca0dc7b32d090600090a250565b610a0d61167b565b610a188383836116a8565b505050565b610a2561167b565b610a2f60006117a1565b565b60015433906001600160a01b03168114610a695760405163118cdaa760e01b81526001600160a01b038216600482015260240161056f565b610a72816117a1565b50565b610a7d61167b565b82818114610a9e57604051637e26301b60e11b815260040160405180910390fd5b60005b81811015610bc3576000868683818110610abd57610abd612670565b9050602002810190610acf919061262a565b604051602001610ae09291906128d4565b6040516020818303038152906040528051906020012090506000858584818110610b0c57610b0c612670565b9050602002016020810190610b2191906128f0565b60008381526004602052604090205490915060ff16151581151514610bb9576000828152600460205260409020805460ff1916821515179055817ffe89a7e0da76ce9087f67dbe71c999de74699125edabbdd3ef09b42dafdf9e55898986818110610b8e57610b8e612670565b9050602002810190610ba0919061262a565b84604051610bb09392919061290d565b60405180910390a25b5050600101610aa1565b505050505050565b610bd361167b565b82818114610bf457604051637e26301b60e11b815260040160405180910390fd5b60005b81811015610bc3576000868683818110610c1357610c13612670565b9050602002016020810190610c289190612281565b90506000858584818110610c3e57610c3e612670565b9050602002016020810190610c5391906128f0565b6001600160a01b03831660009081526003602052604090205490915060ff16151581151514610cdc576001600160a01b038216600081815260036020908152604091829020805460ff19168515159081179091558251938452908301527fd0847c60d8132f1d2a3af347506243fa046f163a2c9c6698c43b31e1d7d95bc4910160405180910390a15b5050600101610bf7565b6060336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610d3157604051630692ce8160e21b815260040160405180910390fd5b83600881901b6001600160f81b0319821615610d6c57604051632e5bf3f960e21b81526001600160f81b03198316600482015260240161056f565b6001600160f81b0319811615610da1576040516308c3ee0360e11b81526001600160f81b03198216600482015260240161056f565b600080366000610db189896117ba565b6040805160018082528183019092529498509296509094509250816020015b6060815260200190600190039081610dd0579050509650610df38484848461180b565b87600081518110610e0657610e06612670565b60200260200101819052505050505050505b9392505050565b610e2761167b565b600180546001600160a01b0383166001600160a01b03199091168117909155610e586000546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b333014610eb0576040516314e1dbf760e11b815260040160405180910390fd5b600083610ebc896115b4565b610ec6919061269c565b905084811015610ee9576040516378dbf0af60e11b815260040160405180910390fd5b84811115610f0557610f0588610eff878461269c565b886116a8565b6000610f10886115b4565b905060006001600160a01b038a16610f29575085610fff565b604051636eb1769f60e11b81523060048201526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166024830152600091908c169063dd62ed3e90604401602060405180830381865afa158015610f99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fbd9190612933565b905087811015610ffd57610ffd6001600160a01b038c167f0000000000000000000000000000000000000000000000000000000000000000600019611841565b505b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316635f575529828e8e8e8c8b8b6040518863ffffffff1660e01b81526004016110569695949392919061294c565b6000604051808303818588803b15801561106f57600080fd5b505af1158015611083573d6000803e3d6000fd5b50505050506000826110948b6115b4565b61109e919061269c565b90506110ab8a828b6116a8565b50505050505050505050505050565b806020015142106110de57604051630819bdcd60e01b815260040160405180910390fd5b6000816000015182602001516040516020016110fb929190612996565b604051602081830303815290604052805190602001209050600061114c827f19457468657265756d205369676e6564204d6573736167653a0a3332000000006000908152601c91909152603c902090565b9050600061115e8285604001516118cb565b6002549091506001600160a01b0380831691161461118e57604051626d46e960e31b815260040160405180910390fd5b50505050565b60606000808083816111a9600482898b6129b8565b6111b2916129e2565b90506001600160e01b03198116635f57552960e01b146111e557604051632033702760e11b815260040160405180910390fd5b60006111f4886004818c6129b8565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505082519293506112419284016020908101925084019050612a62565b60408051600060208201819052959c50939a50919750955082918291829182910160408051601f1981840301815290829052611281918a90602001612af9565b6040516020818303038152906040528060200190518101906112a39190612b28565b98505097505050955095509550508a6001600160a01b0316856001600160a01b0316146112e3576040516356cf902d60e01b815260040160405180910390fd5b801580156112fa5750886112f78484612be6565b14155b1561131857604051632f0e599760e11b815260040160405180910390fd5b839950505050505050509295509295909350565b60006001835161133c919061269c565b905082818151811061135057611350612670565b60200260200101516060015151600014806113d857507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168382815181106113a2576113a2612670565b6020026020010151606001516000815181106113c0576113c0612670565b6020026020010151600001516001600160a01b031614155b156113f65760405163113f78d160e31b815260040160405180910390fd5b8115611518576001600160a01b03851660009081526003602052604090205460ff166114405760405163550a4b9360e01b81526001600160a01b038616600482015260240161056f565b6001600160a01b03841660009081526003602052604090205460ff166114845760405163022330e760e61b81526001600160a01b038516600482015260240161056f565b60405180604001604052806018815260200177151bdad95b8b55da1a5d195b1a5cdd0b515b999bdc98d95960421b8152506040516020016114c591906123e6565b6040516020818303038152906040528382815181106114e6576114e6612670565b60200260200101516060015160008151811061150457611504612670565b6020026020010151604001819052506115ad565b6040518060400160405280601c81526020017f546f6b656e2d57686974656c6973742d4e6f742d456e666f726365640000000081525060405160200161155e91906123e6565b60405160208183030381529060405283828151811061157f5761157f612670565b60200260200101516060015160008151811061159d5761159d612670565b6020026020010151604001819052505b5050505050565b60006001600160a01b0382166115cb575047919050565b6040516370a0823160e01b81523060048201526001600160a01b038316906370a0823190602401602060405180830381865afa15801561160f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116339190612933565b92915050565b6000611647818080806118f5565b905090565b606083838360405160200161166393929190612bf9565b60405160208183030381529060405290509392505050565b6000546001600160a01b03163314610a2f5760405163118cdaa760e01b815233600482015260240161056f565b6001600160a01b03831661173b576000816001600160a01b03168360405160006040518083038185875af1925050503d8060008114611703576040519150601f19603f3d011682016040523d82523d6000602084013e611708565b606091505b5050905080611735576040516312988bef60e21b81526001600160a01b038316600482015260240161056f565b5061174f565b61174f6001600160a01b0384168284611960565b806001600160a01b0316836001600160a01b03167f2c42af0ac449800f98313b961b8c9e7d69c3065be5b86449ed4c358e01d3a7808460405161179491815260200190565b60405180910390a3505050565b600180546001600160a01b0319169055610a72816119bf565b60008036816117cc60148287896129b8565b6117d591612c38565b60601c93506117e86034601487896129b8565b6117f191612c6b565b925061180085603481896129b8565b949793965094505050565b60405181838237600038838387895af1611828573d6000823e3d81fd5b3d8152602081013d6000823e3d01604052949350505050565b604051636eb1769f60e11b81523060048201526001600160a01b0383811660248301526000919085169063dd62ed3e90604401602060405180830381865afa158015611891573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118b59190612933565b905061118e84846118c68585612be6565b611a0f565b6000806000806118db8686611a9f565b9250925092506118eb8282611aec565b5090949350505050565b604080516001600160f81b03198087166020830152851660218201526000602282018190526001600160e01b03198516602683015269ffffffffffffffffffff198416602a830152910160405160208183030381529060405261195790612c89565b95945050505050565b6040516001600160a01b03838116602483015260448201839052610a1891859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180516001600160e01b038381831617835250505050611ba9565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b179052611a608482611c0c565b61118e576040516001600160a01b03848116602483015260006044830152611a9591869182169063095ea7b39060640161198d565b61118e8482611ba9565b60008060008351604103611ad95760208401516040850151606086015160001a611acb88828585611caf565b955095509550505050611ae5565b50508151600091506002905b9250925092565b6000826003811115611b0057611b00612cb0565b03611b09575050565b6001826003811115611b1d57611b1d612cb0565b03611b3b5760405163f645eedf60e01b815260040160405180910390fd5b6002826003811115611b4f57611b4f612cb0565b03611b705760405163fce698f760e01b81526004810182905260240161056f565b6003826003811115611b8457611b84612cb0565b03611ba5576040516335e2f38360e21b81526004810182905260240161056f565b5050565b6000611bbe6001600160a01b03841683611d7e565b90508051600014158015611be3575080806020019051810190611be19190612cc6565b155b15610a1857604051635274afe760e01b81526001600160a01b038416600482015260240161056f565b6000806000846001600160a01b031684604051611c299190612ce3565b6000604051808303816000865af19150503d8060008114611c66576040519150601f19603f3d011682016040523d82523d6000602084013e611c6b565b606091505b5091509150818015611c95575080511580611c95575080806020019051810190611c959190612cc6565b80156119575750505050506001600160a01b03163b151590565b600080807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841115611cea5750600091506003905082611d74565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015611d3e573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116611d6a57506000925060019150829050611d74565b9250600091508190505b9450945094915050565b6060610e188383600084600080856001600160a01b03168486604051611da49190612ce3565b60006040518083038185875af1925050503d8060008114611de1576040519150601f19603f3d011682016040523d82523d6000602084013e611de6565b606091505b5091509150611df6868383611e00565b9695505050505050565b606082611e1557611e1082611e5c565b610e18565b8151158015611e2c57506001600160a01b0384163b155b15611e5557604051639996b31560e01b81526001600160a01b038516600482015260240161056f565b5080610e18565b805115611e6c5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b600060208284031215611e9757600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b604051606081016001600160401b0381118282101715611ed657611ed6611e9e565b60405290565b60405160c081016001600160401b0381118282101715611ed657611ed6611e9e565b604051601f8201601f191681016001600160401b0381118282101715611f2657611f26611e9e565b604052919050565b60006001600160401b03821115611f4757611f47611e9e565b5060051b60200190565b6001600160a01b0381168114610a7257600080fd5b8035611f7181611f51565b919050565b60006001600160401b03821115611f8f57611f8f611e9e565b50601f01601f191660200190565b600082601f830112611fae57600080fd5b8135611fc1611fbc82611f76565b611efe565b818152846020838601011115611fd657600080fd5b816020850160208301376000918101602001919091529392505050565b600082601f83011261200457600080fd5b81356020612014611fbc83611f2e565b82815260059290921b8401810191818101908684111561203357600080fd5b8286015b848110156120e45780356001600160401b03808211156120575760008081fd5b908801906060828b03601f19018113156120715760008081fd5b612079611eb4565b8784013561208681611f51565b81526040848101358481111561209c5760008081fd5b6120aa8e8b83890101611f9d565b838b0152509184013591838311156120c25760008081fd5b6120d08d8a85880101611f9d565b908201528652505050918301918301612037565b509695505050505050565b8015158114610a7257600080fd5b8035611f71816120ef565b60008060006060848603121561211d57600080fd5b83356001600160401b038082111561213457600080fd5b908501906060828803121561214857600080fd5b909350602090858201358181111561215f57600080fd5b8601601f8101881361217057600080fd5b803561217e611fbc82611f2e565b81815260059190911b8201840190848101908a83111561219d57600080fd5b8584015b83811015612262578035868111156121b857600080fd5b850160c0818e03601f190112156121ce57600080fd5b6121d6611edc565b6121e1898301611f66565b81526121ef60408301611f66565b898201526060820135604082015260808201358881111561220f57600080fd5b61221d8f8b83860101611ff3565b60608301525060a0820135608082015260c0820135888111156122405760008081fd5b61224e8f8b83860101611f9d565b60a0830152508452509186019186016121a1565b50809750505050505050612278604085016120fd565b90509250925092565b60006020828403121561229357600080fd5b8135610e1881611f51565b6000806000606084860312156122b357600080fd5b83356122be81611f51565b92506020840135915060408401356122d581611f51565b809150509250925092565b60008083601f8401126122f257600080fd5b5081356001600160401b0381111561230957600080fd5b6020830191508360208260051b850101111561232457600080fd5b9250929050565b6000806000806040858703121561234157600080fd5b84356001600160401b038082111561235857600080fd5b612364888389016122e0565b9096509450602087013591508082111561237d57600080fd5b5061238a878288016122e0565b95989497509550505050565b60005b838110156123b1578181015183820152602001612399565b50506000910152565b600081518084526123d2816020860160208601612396565b601f01601f19169290920160200192915050565b602081526000610e1860208301846123ba565b60008083601f84011261240b57600080fd5b5081356001600160401b0381111561242257600080fd5b60208301915083602082850101111561232457600080fd5b60008060006040848603121561244f57600080fd5b8335925060208401356001600160401b0381111561246c57600080fd5b612478868287016123f9565b9497909650939450505050565b60008282518085526020808601955060208260051b8401016020860160005b848110156124d257601f198684030189526124c08383516123ba565b988401989250908301906001016124a4565b5090979650505050505050565b602081526000610e186020830184612485565b600080600080600080600080600060e08a8c03121561251057600080fd5b89356001600160401b038082111561252757600080fd5b6125338d838e016123f9565b909b50995060208c0135915061254882611f51565b90975060408b01359061255a82611f51565b90965060608b01359061256c82611f51565b90955060808b0135945060a08b0135935060c08b0135908082111561259057600080fd5b5061259d8c828d016123f9565b915080935050809150509295985092959850929598565b6000606082360312156125c657600080fd5b6125ce611eb4565b82356001600160401b03808211156125e557600080fd5b6125f136838701611f9d565b835260208501356020840152604085013591508082111561261157600080fd5b5061261e36828601611f9d565b60408301525092915050565b6000808335601e1984360301811261264157600080fd5b8301803591506001600160401b0382111561265b57600080fd5b60200191503681900382131561232457600080fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b8181038181111561163357611633612686565b60e0815260006126c260e083018a6123ba565b6001600160a01b0389811660208501528881166040850152871660608401526080830186905260a0830185905282810360c084015261270181856123ba565b9a9950505050505050505050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561283457603f19888603018452815160c0860160018060a01b038083511688528089840151168989015260408301516040890152606083015160c060608a015282815180855260e08b01915060e08160051b8c010194508b8301925060005b818110156127f85760df198c870301835283518581511687528d81015160608f8901526127c960608901826123ba565b90506040820151915087810360408901526127e481836123ba565b97505050928c0192918c0191600101612799565b50505050506080820151608088015260a0820151915086810360a088015261282081836123ba565b965050509285019290850190600101612736565b5092979650505050505050565b6060815260006128546060830186612485565b82810360208481019190915285518083528682019282019060005b8181101561288b5784518352938301939183019160010161286f565b5050848103604086015261289f8187612485565b98975050505050505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6020815260006128e86020830184866128ab565b949350505050565b60006020828403121561290257600080fd5b8135610e18816120ef565b6040815260006129216040830185876128ab565b90508215156020830152949350505050565b60006020828403121561294557600080fd5b5051919050565b60808152600061296060808301888a6128ab565b6001600160a01b03871660208401526040830186905282810360608401526129898185876128ab565b9998505050505050505050565b6040815260006129a960408301856123ba565b90508260208301529392505050565b600080858511156129c857600080fd5b838611156129d557600080fd5b5050820193919092039150565b6001600160e01b03198135818116916004851015612a0a5780818660040360031b1b83161692505b505092915050565b6000612a20611fbc84611f76565b9050828152838383011115612a3457600080fd5b610e18836020830184612396565b600082601f830112612a5357600080fd5b610e1883835160208501612a12565b60008060008060808587031215612a7857600080fd5b84516001600160401b0380821115612a8f57600080fd5b818701915087601f830112612aa357600080fd5b612ab288835160208501612a12565b955060208701519150612ac482611f51565b60408701516060880151929550935080821115612ae057600080fd5b50612aed87828801612a42565b91505092959194509250565b60008351612b0b818460208801612396565b835190830190612b1f818360208801612396565b01949350505050565b60008060008060008060008060006101208a8c031215612b4757600080fd5b8951612b5281611f51565b60208b0151909950612b6381611f51565b60408b0151909850612b7481611f51565b8097505060608a0151955060808a0151945060a08a01516001600160401b03811115612b9f57600080fd5b612bab8c828d01612a42565b94505060c08a0151925060e08a0151612bc381611f51565b6101008b0151909250612bd5816120ef565b809150509295985092959850929598565b8082018082111561163357611633612686565b6bffffffffffffffffffffffff198460601b16815282601482015260008251612c29816034850160208701612396565b91909101603401949350505050565b6bffffffffffffffffffffffff198135818116916014851015612a0a5760149490940360031b84901b1690921692915050565b8035602083101561163357600019602084900360031b1b1692915050565b80516020808301519190811015612caa576000198160200360031b1b821691505b50919050565b634e487b7160e01b600052602160045260246000fd5b600060208284031215612cd857600080fd5b8151610e18816120ef565b60008251612cf5818460208701612396565b919091019291505056fea2646970667358221220e6349ea62bd7b0c0d8eed7da3947908c16ca3383370cc10da3a8b2b40c83b05264736f6c63430008170033",AO={};Q(AO,{abi:()=>_O,bytecode:()=>SO});var _O=[{type:"function",name:"afterAllHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"afterHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"beforeAllHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"beforeHook",inputs:[{name:"_terms",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"_mode",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"view"},{type:"function",name:"getTermsInfo",inputs:[{name:"_terms",type:"bytes",internalType:"bytes"}],outputs:[{name:"blockAfterThreshold_",type:"uint128",internalType:"uint128"},{name:"blockBeforeThreshold_",type:"uint128",internalType:"uint128"}],stateMutability:"pure"}],SO="0x608060405234801561001057600080fd5b506104ed806100206000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c8063414c3e331461005c578063a145832a14610078578063b99deb0e1461008b578063d3eddcc51461005c578063ed4633671461005c575b600080fd5b61007661006a366004610345565b50505050505050505050565b005b610076610086366004610345565b6100c2565b61009e610099366004610412565b61023e565b604080516001600160801b0393841681529290911660208301520160405180910390f35b85600881901b6001600160f81b03198116156101335760405162461bcd60e51b815260206004820152602560248201527f436176656174456e666f726365723a696e76616c69642d657865637574696f6e6044820152642d7479706560d81b60648201526084015b60405180910390fd5b506000806101418d8d61023e565b90925090506001600160801b038216156101b957816001600160801b031643116101b95760405162461bcd60e51b8152602060048201526024808201527f426c6f636b4e756d626572456e666f726365723a6561726c792d64656c6567616044820152633a34b7b760e11b606482015260840161012a565b6001600160801b0381161561022f57806001600160801b0316431061022f5760405162461bcd60e51b815260206004820152602660248201527f426c6f636b4e756d626572456e666f726365723a657870697265642d64656c6560448201526533b0ba34b7b760d11b606482015260840161012a565b50505050505050505050505050565b600080602083146102a25760405162461bcd60e51b815260206004820152602860248201527f426c6f636b4e756d626572456e666f726365723a696e76616c69642d7465726d6044820152670e65ad8cadccee8d60c31b606482015260840161012a565b6102b0601060008587610454565b6102b99161047e565b60801c91506102cb8360108187610454565b6102d49161047e565b60801c90509250929050565b60008083601f8401126102f257600080fd5b50813567ffffffffffffffff81111561030a57600080fd5b60208301915083602082850101111561032257600080fd5b9250929050565b80356001600160a01b038116811461034057600080fd5b919050565b60008060008060008060008060008060e08b8d03121561036457600080fd5b8a3567ffffffffffffffff8082111561037c57600080fd5b6103888e838f016102e0565b909c509a5060208d01359150808211156103a157600080fd5b6103ad8e838f016102e0565b909a50985060408d0135975060608d01359150808211156103cd57600080fd5b506103da8d828e016102e0565b90965094505060808b013592506103f360a08c01610329565b915061040160c08c01610329565b90509295989b9194979a5092959850565b6000806020838503121561042557600080fd5b823567ffffffffffffffff81111561043c57600080fd5b610448858286016102e0565b90969095509350505050565b6000808585111561046457600080fd5b8386111561047157600080fd5b5050820193919092039150565b6fffffffffffffffffffffffffffffffff1981358181169160108510156104af5780818660100360031b1b83161692505b50509291505056fea2646970667358221220e786ddc75b5e54c089f23ff0a2c6c7b67417725b5021ebc3aa3b2726c852e6cb64736f6c63430008170033",IO={};Q(IO,{abi:()=>CO,bytecode:()=>PO});var CO=[{type:"function",name:"afterAllHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"afterHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"beforeAllHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"beforeHook",inputs:[{name:"_terms",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"_mode",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"computeAddress",inputs:[{name:"_bytecodeHash",type:"bytes32",internalType:"bytes32"},{name:"_salt",type:"bytes32",internalType:"bytes32"}],outputs:[{name:"addr_",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"getTermsInfo",inputs:[{name:"_terms",type:"bytes",internalType:"bytes"}],outputs:[{name:"expectedAddress_",type:"address",internalType:"address"},{name:"salt_",type:"bytes32",internalType:"bytes32"},{name:"bytecode_",type:"bytes",internalType:"bytes"}],stateMutability:"pure"},{type:"event",name:"DeployedContract",inputs:[{name:"contractAddress",type:"address",indexed:!1,internalType:"address"}],anonymous:!1},{type:"event",name:"SkippedDeployment",inputs:[{name:"contractAddress",type:"address",indexed:!1,internalType:"address"}],anonymous:!1},{type:"error",name:"Create2EmptyBytecode",inputs:[]},{type:"error",name:"Create2FailedDeployment",inputs:[]},{type:"error",name:"Create2InsufficientBalance",inputs:[{name:"balance",type:"uint256",internalType:"uint256"},{name:"needed",type:"uint256",internalType:"uint256"}]},{type:"error",name:"DeployedEmptyContract",inputs:[{name:"contractAddress",type:"address",internalType:"address"}]}],PO="0x608060405234801561001057600080fd5b50610748806100206000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c8063414c3e3314610067578063481286e614610083578063a145832a146100b3578063b99deb0e146100c6578063d3eddcc514610067578063ed46336714610067575b600080fd5b6100816100753660046104fe565b50505050505050505050565b005b6100966100913660046105cb565b6100e8565b6040516001600160a01b0390911681526020015b60405180910390f35b6100816100c13660046104fe565b6100fd565b6100d96100d43660046105ed565b61026d565b6040516100aa9392919061062f565b60006100f48284610353565b90505b92915050565b85600881901b6001600160f81b031981161561016e5760405162461bcd60e51b815260206004820152602560248201527f436176656174456e666f726365723a696e76616c69642d657865637574696f6e6044820152642d7479706560d81b60648201526084015b60405180910390fd5b50600080600061017e8e8e61026d565b919450925090506001600160a01b0383163b156101d9576040516001600160a01b03841681527f641dafeb23238fae3ef71c64fced975da90c34dede63890507f3dda6b1e0dfef9060200160405180910390a1505050610260565b60006101e58284610360565b9050836001600160a01b0316816001600160a01b03161461025b5760405162461bcd60e51b815260206004820152602a60248201527f4465706c6f796564456e666f726365723a6465706c6f7965642d6164647265736044820152690e65adad2e6dac2e8c6d60b31b6064820152608401610165565b505050505b5050505050505050505050565b6000806060603484116102d05760405162461bcd60e51b815260206004820152602560248201527f4465706c6f796564456e666f726365723a696e76616c69642d7465726d732d6c6044820152640cadccee8d60db1b6064820152608401610165565b6102de601460008688610695565b6102e7916106bf565b60601c92506102fa603460148688610695565b610303916106f4565b91506103128460348188610695565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509598949750919550929350505050565b60006100f48383306103e8565b600061036e60008385610412565b9050806001600160a01b03163b6000036103a6576040516352c7cd4960e11b81526001600160a01b0382166004820152602401610165565b6040516001600160a01b03821681527faf3c4b03f515b5a38f3c238fdc24abf10854a2f27f2a85743a71de17e9bc7e7f9060200160405180910390a192915050565b6000604051836040820152846020820152828152600b8101905060ff815360559020949350505050565b60008347101561043e5760405163392efb2b60e21b815247600482015260248101859052604401610165565b815160000361046057604051631328927760e21b815260040160405180910390fd5b8282516020840186f590506001600160a01b03811661049257604051633a0ba96160e11b815260040160405180910390fd5b9392505050565b60008083601f8401126104ab57600080fd5b50813567ffffffffffffffff8111156104c357600080fd5b6020830191508360208285010111156104db57600080fd5b9250929050565b80356001600160a01b03811681146104f957600080fd5b919050565b60008060008060008060008060008060e08b8d03121561051d57600080fd5b8a3567ffffffffffffffff8082111561053557600080fd5b6105418e838f01610499565b909c509a5060208d013591508082111561055a57600080fd5b6105668e838f01610499565b909a50985060408d0135975060608d013591508082111561058657600080fd5b506105938d828e01610499565b90965094505060808b013592506105ac60a08c016104e2565b91506105ba60c08c016104e2565b90509295989b9194979a5092959850565b600080604083850312156105de57600080fd5b50508035926020909101359150565b6000806020838503121561060057600080fd5b823567ffffffffffffffff81111561061757600080fd5b61062385828601610499565b90969095509350505050565b60018060a01b03841681526000602084602084015260606040840152835180606085015260005b8181101561067257858101830151858201608001528201610656565b506000608082860101526080601f19601f83011685010192505050949350505050565b600080858511156106a557600080fd5b838611156106b257600080fd5b5050820193919092039150565b6bffffffffffffffffffffffff1981358181169160148510156106ec5780818660140360031b1b83161692505b505092915050565b803560208310156100f757600019602084900360031b1b169291505056fea264697066735822122012632a27b82f8f9b4b083a1f26c705dcd1ceb840e52519ff7902232eb956870464736f6c63430008170033",MO={};Q(MO,{abi:()=>$O,bytecode:()=>OO});var $O=[],OO="0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212201124664c489cae3f1f240552ace1b72f497b65d8c9bdbce66e0c2b36268dcd2c64736f6c63430008170033",RO={};Q(RO,{abi:()=>BO,bytecode:()=>NO});var BO=[{type:"receive",stateMutability:"payable"},{type:"function",name:"PACKED_USER_OP_TYPEHASH",inputs:[],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"addDeposit",inputs:[],outputs:[],stateMutability:"payable"},{type:"function",name:"delegationManager",inputs:[],outputs:[{name:"",type:"address",internalType:"contract IDelegationManager"}],stateMutability:"view"},{type:"function",name:"disableDelegation",inputs:[{name:"_delegation",type:"tuple",internalType:"struct Delegation",components:[{name:"delegate",type:"address",internalType:"address"},{name:"delegator",type:"address",internalType:"address"},{name:"authority",type:"bytes32",internalType:"bytes32"},{name:"caveats",type:"tuple[]",internalType:"struct Caveat[]",components:[{name:"enforcer",type:"address",internalType:"address"},{name:"terms",type:"bytes",internalType:"bytes"},{name:"args",type:"bytes",internalType:"bytes"}]},{name:"salt",type:"uint256",internalType:"uint256"},{name:"signature",type:"bytes",internalType:"bytes"}]}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"eip712Domain",inputs:[],outputs:[{name:"fields",type:"bytes1",internalType:"bytes1"},{name:"name",type:"string",internalType:"string"},{name:"version",type:"string",internalType:"string"},{name:"chainId",type:"uint256",internalType:"uint256"},{name:"verifyingContract",type:"address",internalType:"address"},{name:"salt",type:"bytes32",internalType:"bytes32"},{name:"extensions",type:"uint256[]",internalType:"uint256[]"}],stateMutability:"view"},{type:"function",name:"enableDelegation",inputs:[{name:"_delegation",type:"tuple",internalType:"struct Delegation",components:[{name:"delegate",type:"address",internalType:"address"},{name:"delegator",type:"address",internalType:"address"},{name:"authority",type:"bytes32",internalType:"bytes32"},{name:"caveats",type:"tuple[]",internalType:"struct Caveat[]",components:[{name:"enforcer",type:"address",internalType:"address"},{name:"terms",type:"bytes",internalType:"bytes"},{name:"args",type:"bytes",internalType:"bytes"}]},{name:"salt",type:"uint256",internalType:"uint256"},{name:"signature",type:"bytes",internalType:"bytes"}]}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"entryPoint",inputs:[],outputs:[{name:"",type:"address",internalType:"contract IEntryPoint"}],stateMutability:"view"},{type:"function",name:"execute",inputs:[{name:"_execution",type:"tuple",internalType:"struct Execution",components:[{name:"target",type:"address",internalType:"address"},{name:"value",type:"uint256",internalType:"uint256"},{name:"callData",type:"bytes",internalType:"bytes"}]}],outputs:[],stateMutability:"payable"},{type:"function",name:"execute",inputs:[{name:"_mode",type:"bytes32",internalType:"ModeCode"},{name:"_executionCalldata",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"payable"},{type:"function",name:"executeFromExecutor",inputs:[{name:"_mode",type:"bytes32",internalType:"ModeCode"},{name:"_executionCalldata",type:"bytes",internalType:"bytes"}],outputs:[{name:"returnData_",type:"bytes[]",internalType:"bytes[]"}],stateMutability:"payable"},{type:"function",name:"getDeposit",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getDomainHash",inputs:[],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"getNonce",inputs:[{name:"_key",type:"uint192",internalType:"uint192"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getNonce",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getPackedUserOperationHash",inputs:[{name:"_userOp",type:"tuple",internalType:"struct PackedUserOperation",components:[{name:"sender",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"},{name:"initCode",type:"bytes",internalType:"bytes"},{name:"callData",type:"bytes",internalType:"bytes"},{name:"accountGasLimits",type:"bytes32",internalType:"bytes32"},{name:"preVerificationGas",type:"uint256",internalType:"uint256"},{name:"gasFees",type:"bytes32",internalType:"bytes32"},{name:"paymasterAndData",type:"bytes",internalType:"bytes"},{name:"signature",type:"bytes",internalType:"bytes"}]}],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"getPackedUserOperationTypedDataHash",inputs:[{name:"_userOp",type:"tuple",internalType:"struct PackedUserOperation",components:[{name:"sender",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"},{name:"initCode",type:"bytes",internalType:"bytes"},{name:"callData",type:"bytes",internalType:"bytes"},{name:"accountGasLimits",type:"bytes32",internalType:"bytes32"},{name:"preVerificationGas",type:"uint256",internalType:"uint256"},{name:"gasFees",type:"bytes32",internalType:"bytes32"},{name:"paymasterAndData",type:"bytes",internalType:"bytes"},{name:"signature",type:"bytes",internalType:"bytes"}]}],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"isDelegationDisabled",inputs:[{name:"_delegationHash",type:"bytes32",internalType:"bytes32"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"isValidSignature",inputs:[{name:"_hash",type:"bytes32",internalType:"bytes32"},{name:"_signature",type:"bytes",internalType:"bytes"}],outputs:[{name:"magicValue_",type:"bytes4",internalType:"bytes4"}],stateMutability:"view"},{type:"function",name:"onERC1155BatchReceived",inputs:[{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"},{name:"",type:"uint256[]",internalType:"uint256[]"},{name:"",type:"uint256[]",internalType:"uint256[]"},{name:"",type:"bytes",internalType:"bytes"}],outputs:[{name:"",type:"bytes4",internalType:"bytes4"}],stateMutability:"view"},{type:"function",name:"onERC1155Received",inputs:[{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"},{name:"",type:"uint256",internalType:"uint256"},{name:"",type:"uint256",internalType:"uint256"},{name:"",type:"bytes",internalType:"bytes"}],outputs:[{name:"",type:"bytes4",internalType:"bytes4"}],stateMutability:"view"},{type:"function",name:"onERC721Received",inputs:[{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"},{name:"",type:"uint256",internalType:"uint256"},{name:"",type:"bytes",internalType:"bytes"}],outputs:[{name:"",type:"bytes4",internalType:"bytes4"}],stateMutability:"view"},{type:"function",name:"redeemDelegations",inputs:[{name:"_permissionContexts",type:"bytes[]",internalType:"bytes[]"},{name:"_modes",type:"bytes32[]",internalType:"ModeCode[]"},{name:"_executionCallDatas",type:"bytes[]",internalType:"bytes[]"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"supportsExecutionMode",inputs:[{name:"_mode",type:"bytes32",internalType:"ModeCode"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"supportsInterface",inputs:[{name:"_interfaceId",type:"bytes4",internalType:"bytes4"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"validateUserOp",inputs:[{name:"_userOp",type:"tuple",internalType:"struct PackedUserOperation",components:[{name:"sender",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"},{name:"initCode",type:"bytes",internalType:"bytes"},{name:"callData",type:"bytes",internalType:"bytes"},{name:"accountGasLimits",type:"bytes32",internalType:"bytes32"},{name:"preVerificationGas",type:"uint256",internalType:"uint256"},{name:"gasFees",type:"bytes32",internalType:"bytes32"},{name:"paymasterAndData",type:"bytes",internalType:"bytes"},{name:"signature",type:"bytes",internalType:"bytes"}]},{name:"",type:"bytes32",internalType:"bytes32"},{name:"_missingAccountFunds",type:"uint256",internalType:"uint256"}],outputs:[{name:"validationData_",type:"uint256",internalType:"uint256"}],stateMutability:"nonpayable"},{type:"function",name:"withdrawDeposit",inputs:[{name:"_withdrawAddress",type:"address",internalType:"address payable"},{name:"_withdrawAmount",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"event",name:"EIP712DomainChanged",inputs:[],anonymous:!1},{type:"event",name:"SentPrefund",inputs:[{name:"sender",type:"address",indexed:!0,internalType:"address"},{name:"amount",type:"uint256",indexed:!1,internalType:"uint256"},{name:"success",type:"bool",indexed:!1,internalType:"bool"}],anonymous:!1},{type:"event",name:"SetDelegationManager",inputs:[{name:"newDelegationManager",type:"address",indexed:!0,internalType:"contract IDelegationManager"}],anonymous:!1},{type:"event",name:"SetEntryPoint",inputs:[{name:"entryPoint",type:"address",indexed:!0,internalType:"contract IEntryPoint"}],anonymous:!1},{type:"event",name:"TryExecuteUnsuccessful",inputs:[{name:"batchExecutionindex",type:"uint256",indexed:!1,internalType:"uint256"},{name:"result",type:"bytes",indexed:!1,internalType:"bytes"}],anonymous:!1},{type:"error",name:"ExecutionFailed",inputs:[]},{type:"error",name:"InvalidEIP712NameLength",inputs:[]},{type:"error",name:"InvalidEIP712VersionLength",inputs:[]},{type:"error",name:"InvalidShortString",inputs:[]},{type:"error",name:"NotDelegationManager",inputs:[]},{type:"error",name:"NotEntryPoint",inputs:[]},{type:"error",name:"NotEntryPointOrSelf",inputs:[]},{type:"error",name:"NotSelf",inputs:[]},{type:"error",name:"StringTooLong",inputs:[{name:"str",type:"string",internalType:"string"}]},{type:"error",name:"UnauthorizedCallContext",inputs:[]},{type:"error",name:"UnsupportedCallType",inputs:[{name:"callType",type:"bytes1",internalType:"CallType"}]},{type:"error",name:"UnsupportedExecType",inputs:[{name:"execType",type:"bytes1",internalType:"ExecType"}]}],NO="0x",DO={};Q(DO,{abi:()=>kO,bytecode:()=>LO});var kO=[{type:"function",name:"afterAllHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"afterHook",inputs:[{name:"_terms",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"_delegationHash",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"balanceCache",inputs:[{name:"hashKey",type:"bytes32",internalType:"bytes32"}],outputs:[{name:"balance",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"beforeAllHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"beforeHook",inputs:[{name:"_terms",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"_mode",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"_delegationHash",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"getHashKey",inputs:[{name:"_caller",type:"address",internalType:"address"},{name:"_token",type:"address",internalType:"address"},{name:"_recipient",type:"address",internalType:"address"},{name:"_tokenId",type:"uint256",internalType:"uint256"},{name:"_delegationHash",type:"bytes32",internalType:"bytes32"}],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"pure"},{type:"function",name:"getTermsInfo",inputs:[{name:"_terms",type:"bytes",internalType:"bytes"}],outputs:[{name:"enforceDecrease_",type:"bool",internalType:"bool"},{name:"token_",type:"address",internalType:"address"},{name:"recipient_",type:"address",internalType:"address"},{name:"tokenId_",type:"uint256",internalType:"uint256"},{name:"amount_",type:"uint256",internalType:"uint256"}],stateMutability:"pure"},{type:"function",name:"isLocked",inputs:[{name:"hashKey",type:"bytes32",internalType:"bytes32"}],outputs:[{name:"lock",type:"bool",internalType:"bool"}],stateMutability:"view"}],LO="0x608060405234801561001057600080fd5b506109cb806100206000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c8063b99deb0e1161005b578063b99deb0e14610122578063d0a3529f1461016b578063d3eddcc51461017e578063ed463367146100c557600080fd5b806332a16f4e1461008d578063414c3e33146100c5578063a145832a146100e1578063b5e54492146100f4575b600080fd5b6100b061009b3660046106cb565b60016020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b6100df6100d3366004610749565b50505050505050505050565b005b6100df6100ef366004610749565b610191565b6101146101023660046106cb565b60006020819052908152604090205481565b6040519081526020016100bc565b610135610130366004610816565b610350565b6040805195151586526001600160a01b03948516602087015292909316918401919091526060830152608082015260a0016100bc565b610114610179366004610858565b61045d565b6100df61018c366004610749565b610476565b85600881901b6101a2816000610661565b6102015760405162461bcd60e51b815260206004820152602560248201527f436176656174456e666f726365723a696e76616c69642d657865637574696f6e6044820152642d7479706560d81b60648201526084015b60405180910390fd5b5060008060006102118e8e610350565b50935093509350506000610228338585858c610678565b60008181526001602052604090205490915060ff16156102a25760405162461bcd60e51b815260206004820152602f60248201527f4552433131353542616c616e63654368616e6765456e666f726365723a656e6660448201526e1bdc98d95c8b5a5ccb5b1bd8dad959608a1b60648201526084016101f8565b6000818152600160208190526040808320805460ff191690921790915551627eeac760e11b81526001600160a01b0385811660048301526024820185905286169062fdd58e90604401602060405180830381865afa158015610308573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061032c91906108ad565b60009283526020839052604090922091909155505050505050505050505050505050565b600080808080606986146103c05760405162461bcd60e51b815260206004820152603160248201527f4552433131353542616c616e63654368616e6765456e666f726365723a696e766044820152700c2d8d2c85ae8cae4dae65ad8cadccee8d607b1b60648201526084016101f8565b868660008181106103d3576103d36108c6565b909101356001600160f81b031916151595506103f5905060156001888a6108dc565b6103fe91610906565b60601c935061041160296015888a6108dc565b61041a91610906565b60601c925061042d60496029888a6108dc565b6104369161093b565b9150610445866049818a6108dc565b61044e9161093b565b60001c90509295509295909350565b600061046c8686868686610678565b9695505050505050565b60008060008060006104888f8f610350565b9450945094509450945060006104a1338686868d610678565b600081815260016020526040808220805460ff1916905551627eeac760e11b81526001600160a01b03878116600483015260248201879052929350909187169062fdd58e90604401602060405180830381865afa158015610506573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061052a91906108ad565b905086156105bf5760008281526020819052604090205461054c90849061096f565b8110156105ba5760405162461bcd60e51b815260206004820152603660248201527f4552433131353542616c616e63654368616e6765456e666f726365723a65786360448201527565656465642d62616c616e63652d646563726561736560501b60648201526084016101f8565b61064e565b6000828152602081905260409020546105d9908490610982565b81101561064e5760405162461bcd60e51b815260206004820152603a60248201527f4552433131353542616c616e63654368616e6765456e666f726365723a696e7360448201527f756666696369656e742d62616c616e63652d696e63726561736500000000000060648201526084016101f8565b5050505050505050505050505050505050565b6001600160f81b0319828116908216145b92915050565b604080516001600160a01b0396871660208083019190915295871681830152939095166060840152608083019190915260a0808301919091528351808303909101815260c0909101909252815191012090565b6000602082840312156106dd57600080fd5b5035919050565b60008083601f8401126106f657600080fd5b50813567ffffffffffffffff81111561070e57600080fd5b60208301915083602082850101111561072657600080fd5b9250929050565b80356001600160a01b038116811461074457600080fd5b919050565b60008060008060008060008060008060e08b8d03121561076857600080fd5b8a3567ffffffffffffffff8082111561078057600080fd5b61078c8e838f016106e4565b909c509a5060208d01359150808211156107a557600080fd5b6107b18e838f016106e4565b909a50985060408d0135975060608d01359150808211156107d157600080fd5b506107de8d828e016106e4565b90965094505060808b013592506107f760a08c0161072d565b915061080560c08c0161072d565b90509295989b9194979a5092959850565b6000806020838503121561082957600080fd5b823567ffffffffffffffff81111561084057600080fd5b61084c858286016106e4565b90969095509350505050565b600080600080600060a0868803121561087057600080fd5b6108798661072d565b94506108876020870161072d565b93506108956040870161072d565b94979396509394606081013594506080013592915050565b6000602082840312156108bf57600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b600080858511156108ec57600080fd5b838611156108f957600080fd5b5050820193919092039150565b6bffffffffffffffffffffffff1981358181169160148510156109335780818660140360031b1b83161692505b505092915050565b8035602083101561067257600019602084900360031b1b1692915050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561067257610672610959565b808201808211156106725761067261095956fea264697066735822122095ab63871cc701b6845065f3118822a1bb1778b7d93ba045a40145ebc06f19af64736f6c63430008170033",vt={};Q(vt,{abi:()=>FO,bytecode:()=>UO});var FO=[{type:"constructor",inputs:[{name:"_owner",type:"address",internalType:"address"}],stateMutability:"nonpayable"},{type:"function",name:"ANY_DELEGATE",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"DOMAIN_VERSION",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"NAME",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"ROOT_AUTHORITY",inputs:[],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"VERSION",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"acceptOwnership",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"disableDelegation",inputs:[{name:"_delegation",type:"tuple",internalType:"struct Delegation",components:[{name:"delegate",type:"address",internalType:"address"},{name:"delegator",type:"address",internalType:"address"},{name:"authority",type:"bytes32",internalType:"bytes32"},{name:"caveats",type:"tuple[]",internalType:"struct Caveat[]",components:[{name:"enforcer",type:"address",internalType:"address"},{name:"terms",type:"bytes",internalType:"bytes"},{name:"args",type:"bytes",internalType:"bytes"}]},{name:"salt",type:"uint256",internalType:"uint256"},{name:"signature",type:"bytes",internalType:"bytes"}]}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"disabledDelegations",inputs:[{name:"delegationHash",type:"bytes32",internalType:"bytes32"}],outputs:[{name:"isDisabled",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"eip712Domain",inputs:[],outputs:[{name:"fields",type:"bytes1",internalType:"bytes1"},{name:"name",type:"string",internalType:"string"},{name:"version",type:"string",internalType:"string"},{name:"chainId",type:"uint256",internalType:"uint256"},{name:"verifyingContract",type:"address",internalType:"address"},{name:"salt",type:"bytes32",internalType:"bytes32"},{name:"extensions",type:"uint256[]",internalType:"uint256[]"}],stateMutability:"view"},{type:"function",name:"enableDelegation",inputs:[{name:"_delegation",type:"tuple",internalType:"struct Delegation",components:[{name:"delegate",type:"address",internalType:"address"},{name:"delegator",type:"address",internalType:"address"},{name:"authority",type:"bytes32",internalType:"bytes32"},{name:"caveats",type:"tuple[]",internalType:"struct Caveat[]",components:[{name:"enforcer",type:"address",internalType:"address"},{name:"terms",type:"bytes",internalType:"bytes"},{name:"args",type:"bytes",internalType:"bytes"}]},{name:"salt",type:"uint256",internalType:"uint256"},{name:"signature",type:"bytes",internalType:"bytes"}]}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"getDelegationHash",inputs:[{name:"_input",type:"tuple",internalType:"struct Delegation",components:[{name:"delegate",type:"address",internalType:"address"},{name:"delegator",type:"address",internalType:"address"},{name:"authority",type:"bytes32",internalType:"bytes32"},{name:"caveats",type:"tuple[]",internalType:"struct Caveat[]",components:[{name:"enforcer",type:"address",internalType:"address"},{name:"terms",type:"bytes",internalType:"bytes"},{name:"args",type:"bytes",internalType:"bytes"}]},{name:"salt",type:"uint256",internalType:"uint256"},{name:"signature",type:"bytes",internalType:"bytes"}]}],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"pure"},{type:"function",name:"getDomainHash",inputs:[],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"owner",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"pause",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"paused",inputs:[],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"pendingOwner",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"redeemDelegations",inputs:[{name:"_permissionContexts",type:"bytes[]",internalType:"bytes[]"},{name:"_modes",type:"bytes32[]",internalType:"ModeCode[]"},{name:"_executionCallDatas",type:"bytes[]",internalType:"bytes[]"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"renounceOwnership",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"transferOwnership",inputs:[{name:"newOwner",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"unpause",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"event",name:"DisabledDelegation",inputs:[{name:"delegationHash",type:"bytes32",indexed:!0,internalType:"bytes32"},{name:"delegator",type:"address",indexed:!0,internalType:"address"},{name:"delegate",type:"address",indexed:!0,internalType:"address"},{name:"delegation",type:"tuple",indexed:!1,internalType:"struct Delegation",components:[{name:"delegate",type:"address",internalType:"address"},{name:"delegator",type:"address",internalType:"address"},{name:"authority",type:"bytes32",internalType:"bytes32"},{name:"caveats",type:"tuple[]",internalType:"struct Caveat[]",components:[{name:"enforcer",type:"address",internalType:"address"},{name:"terms",type:"bytes",internalType:"bytes"},{name:"args",type:"bytes",internalType:"bytes"}]},{name:"salt",type:"uint256",internalType:"uint256"},{name:"signature",type:"bytes",internalType:"bytes"}]}],anonymous:!1},{type:"event",name:"EIP712DomainChanged",inputs:[],anonymous:!1},{type:"event",name:"EnabledDelegation",inputs:[{name:"delegationHash",type:"bytes32",indexed:!0,internalType:"bytes32"},{name:"delegator",type:"address",indexed:!0,internalType:"address"},{name:"delegate",type:"address",indexed:!0,internalType:"address"},{name:"delegation",type:"tuple",indexed:!1,internalType:"struct Delegation",components:[{name:"delegate",type:"address",internalType:"address"},{name:"delegator",type:"address",internalType:"address"},{name:"authority",type:"bytes32",internalType:"bytes32"},{name:"caveats",type:"tuple[]",internalType:"struct Caveat[]",components:[{name:"enforcer",type:"address",internalType:"address"},{name:"terms",type:"bytes",internalType:"bytes"},{name:"args",type:"bytes",internalType:"bytes"}]},{name:"salt",type:"uint256",internalType:"uint256"},{name:"signature",type:"bytes",internalType:"bytes"}]}],anonymous:!1},{type:"event",name:"OwnershipTransferStarted",inputs:[{name:"previousOwner",type:"address",indexed:!0,internalType:"address"},{name:"newOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"OwnershipTransferred",inputs:[{name:"previousOwner",type:"address",indexed:!0,internalType:"address"},{name:"newOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"Paused",inputs:[{name:"account",type:"address",indexed:!1,internalType:"address"}],anonymous:!1},{type:"event",name:"RedeemedDelegation",inputs:[{name:"rootDelegator",type:"address",indexed:!0,internalType:"address"},{name:"redeemer",type:"address",indexed:!0,internalType:"address"},{name:"delegation",type:"tuple",indexed:!1,internalType:"struct Delegation",components:[{name:"delegate",type:"address",internalType:"address"},{name:"delegator",type:"address",internalType:"address"},{name:"authority",type:"bytes32",internalType:"bytes32"},{name:"caveats",type:"tuple[]",internalType:"struct Caveat[]",components:[{name:"enforcer",type:"address",internalType:"address"},{name:"terms",type:"bytes",internalType:"bytes"},{name:"args",type:"bytes",internalType:"bytes"}]},{name:"salt",type:"uint256",internalType:"uint256"},{name:"signature",type:"bytes",internalType:"bytes"}]}],anonymous:!1},{type:"event",name:"SetDomain",inputs:[{name:"domainHash",type:"bytes32",indexed:!0,internalType:"bytes32"},{name:"name",type:"string",indexed:!1,internalType:"string"},{name:"domainVersion",type:"string",indexed:!1,internalType:"string"},{name:"chainId",type:"uint256",indexed:!1,internalType:"uint256"},{name:"contractAddress",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"Unpaused",inputs:[{name:"account",type:"address",indexed:!1,internalType:"address"}],anonymous:!1},{type:"error",name:"AlreadyDisabled",inputs:[]},{type:"error",name:"AlreadyEnabled",inputs:[]},{type:"error",name:"BatchDataLengthMismatch",inputs:[]},{type:"error",name:"CannotUseADisabledDelegation",inputs:[]},{type:"error",name:"ECDSAInvalidSignature",inputs:[]},{type:"error",name:"ECDSAInvalidSignatureLength",inputs:[{name:"length",type:"uint256",internalType:"uint256"}]},{type:"error",name:"ECDSAInvalidSignatureS",inputs:[{name:"s",type:"bytes32",internalType:"bytes32"}]},{type:"error",name:"EmptySignature",inputs:[]},{type:"error",name:"EnforcedPause",inputs:[]},{type:"error",name:"ExpectedPause",inputs:[]},{type:"error",name:"InvalidAuthority",inputs:[]},{type:"error",name:"InvalidDelegate",inputs:[]},{type:"error",name:"InvalidDelegator",inputs:[]},{type:"error",name:"InvalidEOASignature",inputs:[]},{type:"error",name:"InvalidERC1271Signature",inputs:[]},{type:"error",name:"InvalidShortString",inputs:[]},{type:"error",name:"OwnableInvalidOwner",inputs:[{name:"owner",type:"address",internalType:"address"}]},{type:"error",name:"OwnableUnauthorizedAccount",inputs:[{name:"account",type:"address",internalType:"address"}]},{type:"error",name:"StringTooLong",inputs:[{name:"str",type:"string",internalType:"string"}]}],UO="0x6101606040523480156200001257600080fd5b506040516200334f3803806200334f833981016040819052620000359162000384565b60408051808201825260118152702232b632b3b0ba34b7b726b0b730b3b2b960791b602080830191909152825180840190935260018352603160f81b9083015290826001600160a01b038116620000a757604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b620000b28162000204565b506001805460ff60a01b19169055620000cd82600262000222565b61012052620000de81600362000222565b61014052815160208084019190912060e052815190820120610100524660a0526200015b60e05161010051604080516000805160206200332f83398151915260208201529081019290925260608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b60805250503060c0526000620001706200025b565b9050306001600160a01b0316817f04a46d9007577c7ff1e513b900545162ec25d25991ae3dc60cf26ec01a84806d604051806040016040528060118152602001702232b632b3b0ba34b7b726b0b730b3b2b960791b815250604051806040016040528060018152602001603160f81b81525046604051620001f493929190620003fe565b60405180910390a35050620005e5565b600180546001600160a01b03191690556200021f81620002f1565b50565b600060208351101562000242576200023a8362000341565b905062000255565b816200024f8482620004df565b5060ff90505b92915050565b600060c0516001600160a01b0316306001600160a01b031614801562000282575060a05146145b156200028f575060805190565b620002ec60e05161010051604080516000805160206200332f83398151915260208201529081019290925260608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b905090565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600080829050601f815111156200036f578260405163305a27a960e01b81526004016200009e9190620005ab565b80516200037c82620005c0565b179392505050565b6000602082840312156200039757600080fd5b81516001600160a01b0381168114620003af57600080fd5b9392505050565b6000815180845260005b81811015620003de57602081850181015186830182015201620003c0565b506000602082860101526020601f19601f83011685010191505092915050565b606081526000620004136060830186620003b6565b8281036020840152620004278186620003b6565b915050826040830152949350505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200046357607f821691505b6020821081036200048457634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620004da576000816000526020600020601f850160051c81016020861015620004b55750805b601f850160051c820191505b81811015620004d657828155600101620004c1565b5050505b505050565b81516001600160401b03811115620004fb57620004fb62000438565b62000513816200050c84546200044e565b846200048a565b602080601f8311600181146200054b5760008415620005325750858301515b600019600386901b1c1916600185901b178555620004d6565b600085815260208120601f198616915b828110156200057c578886015182559484019460019091019084016200055b565b50858210156200059b5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b602081526000620003af6020830184620003b6565b80516020808301519190811015620004845760001960209190910360031b1b16919050565b60805160a05160c05160e051610100516101205161014051612cef620006406000396000611bda01526000611bad01526000611b1201526000611aea01526000611a4501526000611a6f01526000611a990152612cef6000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c806383ebb771116100ad578063acb8cc4911610071578063acb8cc491461027f578063cef6d2091461029f578063e30c3978146102b2578063f2fde38b146102c3578063ffa1ad74146102d657600080fd5b806383ebb771146102065780638456cb591461020e57806384b0196e146102165780638da5cb5b14610231578063a3f4df7e1461024257600080fd5b806358909ebc116100f457806358909ebc146101b05780635c975abb146101d157806366134607146101e3578063715018a6146101f657806379ba5097146101fe57600080fd5b80631b13cac2146101315780632d40d0521461014d5780633ed01015146101805780633f4ba83a14610195578063499340471461019d575b600080fd5b61013a60001981565b6040519081526020015b60405180910390f35b61017061015b3660046120e6565b60046020526000908152604090205460ff1681565b6040519015158152602001610144565b61019361018e3660046120ff565b6102fa565b005b6101936103f4565b6101936101ab3660046120ff565b610406565b6101b9610a1181565b6040516001600160a01b039091168152602001610144565b600154600160a01b900460ff16610170565b61013a6101f13660046120ff565b6104f6565b61019361050f565b610193610521565b61013a61056a565b610193610579565b61021e610589565b6040516101449796959493929190612190565b6000546001600160a01b03166101b9565b610272604051806040016040528060118152602001702232b632b3b0ba34b7b726b0b730b3b2b960791b81525081565b6040516101449190612229565b610272604051806040016040528060018152602001603160f81b81525081565b6101936102ad366004612287565b6105cf565b6001546001600160a01b03166101b9565b6101936102d136600461233c565b611891565b610272604051806040016040528060058152602001640312e332e360dc1b81525081565b61030a604082016020830161233c565b6001600160a01b03811633146103335760405163b9f0f17160e01b815260040160405180910390fd5b600061033e836104f6565b60008181526004602052604090205490915060ff1661037057604051637952fbad60e11b815260040160405180910390fd5b6000818152600460209081526040909120805460ff191690556103959084018461233c565b6001600160a01b03166103ae604085016020860161233c565b6001600160a01b0316827f3feadce88fc1b49db633a56fd5307ed6ee18734df83bcc4011daa720c9cd95f1866040516103e79190612484565b60405180910390a4505050565b6103fc611902565b61040461192f565b565b610416604082016020830161233c565b6001600160a01b038116331461043f5760405163b9f0f17160e01b815260040160405180910390fd5b600061044a836104f6565b60008181526004602052604090205490915060ff161561047c57604051625ecddb60e01b815260040160405180910390fd5b6000818152600460209081526040909120805460ff191660011790556104a49084018461233c565b6001600160a01b03166104bd604085016020860161233c565b6001600160a01b0316827fea589ba9473ee1fe77d352c7ed919747715a5d22931b972de9b02a907c66d5dd866040516103e79190612484565b600061050961050483612823565b611984565b92915050565b610517611902565b6104046000611a1f565b60015433906001600160a01b0316811461055e5760405163118cdaa760e01b81526001600160a01b03821660048201526024015b60405180910390fd5b61056781611a1f565b50565b6000610574611a38565b905090565b610581611902565b610404611b63565b60006060806000806000606061059d611ba6565b6105a5611bd3565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b6105d7611c00565b8481811415806105e75750808414155b1561060557604051631bcaf69f60e01b815260040160405180910390fd5b6000816001600160401b0381111561061f5761061f612555565b60405190808252806020026020018201604052801561065257816020015b606081526020019060019003908161063d5790505b5090506000826001600160401b0381111561066f5761066f612555565b6040519080825280602002602001820160405280156106a257816020015b606081526020019060019003908161068d5790505b50905060005b83811015610c815760008a8a838181106106c4576106c461282f565b90506020028101906106d69190612845565b8101906106e3919061288b565b905080516000036107d1576040805160008082526020820190925290610765565b6107526040518060c0016040528060006001600160a01b0316815260200160006001600160a01b03168152602001600080191681526020016060815260200160008152602001606081525090565b8152602001906001900390816107045790505b508483815181106107785761077861282f565b602090810291909101015260006040519080825280602002602001820160405280156107ae578160200160208202803683370190505b508383815181106107c1576107c161282f565b6020026020010181905250610c78565b808483815181106107e4576107e461282f565b6020026020010181905250600081516001600160401b0381111561080a5761080a612555565b604051908082528060200260200182016040528015610833578160200160208202803683370190505b509050808484815181106108495761084961282f565b6020026020010181905250336001600160a01b0316826000815181106108715761087161282f565b6020026020010151600001516001600160a01b0316141580156108c65750610a116001600160a01b0316826000815181106108ae576108ae61282f565b6020026020010151600001516001600160a01b031614155b156108e457604051632d618d8160e21b815260040160405180910390fd5b60005b8251811015610ab55760008382815181106109045761090461282f565b6020026020010151905061091781611984565b8383815181106109295761092961282f565b60200260200101818152505080602001516001600160a01b03163b6000036109dc57600061099e61099461095b61056a565b86868151811061096d5761096d61282f565b602002602001015160405161190160f01b8152600281019290925260228201526042902090565b8360a00151611c2b565b905081602001516001600160a01b0316816001600160a01b0316146109d657604051630f6d9e4760e21b815260040160405180910390fd5b50610aac565b60006109fb6109e961056a565b85858151811061096d5761096d61282f565b9050600082602001516001600160a01b0316631626ba7e838560a001516040518363ffffffff1660e01b8152600401610a3592919061293b565b602060405180830381865afa158015610a52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a76919061295c565b6001600160e01b0319169050630b135d3f60e11b8114610aa95760405163155ff42760e01b815260040160405180910390fd5b50505b506001016108e7565b5060005b8251811015610c755760046000838381518110610ad857610ad861282f565b60209081029190910181015182528101919091526040016000205460ff1615610b14576040516302dd502960e11b815260040160405180910390fd5b60018351610b22919061299c565b8114610c2b5781610b348260016129af565b81518110610b4457610b4461282f565b6020026020010151838281518110610b5e57610b5e61282f565b60200260200101516040015114610b8857604051636f6a1b8760e11b815260040160405180910390fd5b600083610b968360016129af565b81518110610ba657610ba661282f565b6020026020010151600001519050610a116001600160a01b0316816001600160a01b031614158015610c075750806001600160a01b0316848381518110610bef57610bef61282f565b6020026020010151602001516001600160a01b031614155b15610c2557604051632d618d8160e21b815260040160405180910390fd5b50610c6d565b60001960001b838281518110610c4357610c4361282f565b60200260200101516040015114610c6d57604051636f6a1b8760e11b815260040160405180910390fd5b600101610ab9565b50505b506001016106a8565b5060005b83811015610ea6576000838281518110610ca157610ca161282f565b6020026020010151511115610e9e5760005b838281518110610cc557610cc561282f565b602002602001015151811015610e9c576000848381518110610ce957610ce961282f565b60200260200101518281518110610d0257610d0261282f565b602002602001015160600151905060005b8151811015610e92576000828281518110610d3057610d3061282f565b6020026020010151600001519050806001600160a01b031663414c3e33848481518110610d5f57610d5f61282f565b602002602001015160200151858581518110610d7d57610d7d61282f565b6020026020010151604001518f8f8a818110610d9b57610d9b61282f565b905060200201358e8e8b818110610db457610db461282f565b9050602002810190610dc69190612845565b8c8c81518110610dd857610dd861282f565b60200260200101518b81518110610df157610df161282f565b60200260200101518e8d81518110610e0b57610e0b61282f565b60200260200101518c81518110610e2457610e2461282f565b602002602001015160200151336040518963ffffffff1660e01b8152600401610e549897969594939291906129c2565b600060405180830381600087803b158015610e6e57600080fd5b505af1158015610e82573d6000803e3d6000fd5b5050505050806001019050610d13565b5050600101610cb3565b505b600101610c85565b5060005b838110156114ca57828181518110610ec457610ec461282f565b602002602001015151600003610f82573363d691c964898984818110610eec57610eec61282f565b90506020020135888885818110610f0557610f0561282f565b9050602002810190610f179190612845565b6040518463ffffffff1660e01b8152600401610f3593929190612a2d565b6000604051808303816000875af1158015610f54573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f7c9190810190612a50565b506114c2565b60005b838281518110610f9757610f9761282f565b60200260200101515181101561116e576000848381518110610fbb57610fbb61282f565b60200260200101518281518110610fd457610fd461282f565b602002602001015160600151905060005b81518110156111645760008282815181106110025761100261282f565b6020026020010151600001519050806001600160a01b031663a145832a8484815181106110315761103161282f565b60200260200101516020015185858151811061104f5761104f61282f565b6020026020010151604001518f8f8a81811061106d5761106d61282f565b905060200201358e8e8b8181106110865761108661282f565b90506020028101906110989190612845565b8c8c815181106110aa576110aa61282f565b60200260200101518b815181106110c3576110c361282f565b60200260200101518e8d815181106110dd576110dd61282f565b60200260200101518c815181106110f6576110f661282f565b602002602001015160200151336040518963ffffffff1660e01b81526004016111269897969594939291906129c2565b600060405180830381600087803b15801561114057600080fd5b505af1158015611154573d6000803e3d6000fd5b5050505050806001019050610fe5565b5050600101610f85565b508281815181106111815761118161282f565b6020026020010151600184838151811061119d5761119d61282f565b6020026020010151516111b0919061299c565b815181106111c0576111c061282f565b6020026020010151602001516001600160a01b031663d691c9648989848181106111ec576111ec61282f565b905060200201358888858181106112055761120561282f565b90506020028101906112179190612845565b6040518463ffffffff1660e01b815260040161123593929190612a2d565b6000604051808303816000875af1158015611254573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261127c9190810190612a50565b5060008382815181106112915761129161282f565b60200260200101515190505b80156114c05760008483815181106112b7576112b761282f565b60200260200101516001836112cc919061299c565b815181106112dc576112dc61282f565b60200260200101516060015190506000815190505b80156114ad5760008261130560018461299c565b815181106113155761131561282f565b6020026020010151600001519050806001600160a01b031663d3eddcc584600185611340919061299c565b815181106113505761135061282f565b6020026020010151602001518560018661136a919061299c565b8151811061137a5761137a61282f565b6020026020010151604001518f8f8a8181106113985761139861282f565b905060200201358e8e8b8181106113b1576113b161282f565b90506020028101906113c39190612845565b8c8c815181106113d5576113d561282f565b602002602001015160018c6113ea919061299c565b815181106113fa576113fa61282f565b60200260200101518e8d815181106114145761141461282f565b602002602001015160018d611429919061299c565b815181106114395761143961282f565b602002602001015160200151336040518963ffffffff1660e01b81526004016114699897969594939291906129c2565b600060405180830381600087803b15801561148357600080fd5b505af1158015611497573d6000803e3d6000fd5b5050505050806114a690612b2f565b90506112f1565b5050806114b990612b2f565b905061129d565b505b600101610eaa565b5060005b838110156117465760008382815181106114ea576114ea61282f565b602002602001015151111561173e57600083828151811061150d5761150d61282f565b60200260200101515190505b801561173c5760008483815181106115335761153361282f565b6020026020010151600183611548919061299c565b815181106115585761155861282f565b60200260200101516060015190506000815190505b80156117295760008261158160018461299c565b815181106115915761159161282f565b6020026020010151600001519050806001600160a01b031663ed463367846001856115bc919061299c565b815181106115cc576115cc61282f565b602002602001015160200151856001866115e6919061299c565b815181106115f6576115f661282f565b6020026020010151604001518f8f8a8181106116145761161461282f565b905060200201358e8e8b81811061162d5761162d61282f565b905060200281019061163f9190612845565b8c8c815181106116515761165161282f565b602002602001015160018c611666919061299c565b815181106116765761167661282f565b60200260200101518e8d815181106116905761169061282f565b602002602001015160018d6116a5919061299c565b815181106116b5576116b561282f565b602002602001015160200151336040518963ffffffff1660e01b81526004016116e59897969594939291906129c2565b600060405180830381600087803b1580156116ff57600080fd5b505af1158015611713573d6000803e3d6000fd5b50505050508061172290612b2f565b905061156d565b50508061173590612b2f565b9050611519565b505b6001016114ce565b5060005b838110156118855760008382815181106117665761176661282f565b602002602001015151111561187d5760005b83828151811061178a5761178a61282f565b60200260200101515181101561187b57336001600160a01b03168483815181106117b6576117b661282f565b602002602001015160018685815181106117d2576117d261282f565b6020026020010151516117e5919061299c565b815181106117f5576117f561282f565b6020026020010151602001516001600160a01b03167f40dadaa36c6c2e3d7317e24757451ffb2d603d875f0ad5e92c5dd156573b187386858151811061183d5761183d61282f565b602002602001015184815181106118565761185661282f565b602002602001015160405161186b9190612b46565b60405180910390a3600101611778565b505b60010161174a565b50505050505050505050565b611899611902565b600180546001600160a01b0383166001600160a01b031990911681179091556118ca6000546001600160a01b031690565b6001600160a01b03167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e2270060405160405180910390a350565b6000546001600160a01b031633146104045760405163118cdaa760e01b8152336004820152602401610555565b611937611c55565b6001805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6000807f88c1d2ecf185adf710588203a5f263f0ff61be0d33da39792cde19ba9aa4331e8360000151846020015185604001516119c48760600151611c7f565b6080808901516040805160208101989098526001600160a01b03968716908801529490931660608601529184015260a083015260c082015260e0015b60408051601f1981840301815291905280516020909101209392505050565b600180546001600160a01b031916905561056781611d4a565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015611a9157507f000000000000000000000000000000000000000000000000000000000000000046145b15611abb57507f000000000000000000000000000000000000000000000000000000000000000090565b610574604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f0000000000000000000000000000000000000000000000000000000000000000918101919091527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b611b6b611c00565b6001805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586119673390565b60606105747f00000000000000000000000000000000000000000000000000000000000000006002611d9a565b60606105747f00000000000000000000000000000000000000000000000000000000000000006003611d9a565b600154600160a01b900460ff16156104045760405163d93c066560e01b815260040160405180910390fd5b600080600080611c3b8686611e45565b925092509250611c4b8282611e92565b5090949350505050565b600154600160a01b900460ff1661040457604051638dfc202b60e01b815260040160405180910390fd5b60008082516001600160401b03811115611c9b57611c9b612555565b604051908082528060200260200182016040528015611cc4578160200160208202803683370190505b50905060005b8351811015611d1a57611cf5848281518110611ce857611ce861282f565b6020026020010151611f4f565b828281518110611d0757611d0761282f565b6020908102919091010152600101611cca565b5080604051602001611d2c9190612c33565b60405160208183030381529060405280519060200120915050919050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b606060ff8314611db457611dad83611fb0565b9050610509565b818054611dc090612c69565b80601f0160208091040260200160405190810160405280929190818152602001828054611dec90612c69565b8015611e395780601f10611e0e57610100808354040283529160200191611e39565b820191906000526020600020905b815481529060010190602001808311611e1c57829003601f168201915b50505050509050610509565b60008060008351604103611e7f5760208401516040850151606086015160001a611e7188828585611fef565b955095509550505050611e8b565b50508151600091506002905b9250925092565b6000826003811115611ea657611ea6612ca3565b03611eaf575050565b6001826003811115611ec357611ec3612ca3565b03611ee15760405163f645eedf60e01b815260040160405180910390fd5b6002826003811115611ef557611ef5612ca3565b03611f165760405163fce698f760e01b815260048101829052602401610555565b6003826003811115611f2a57611f2a612ca3565b03611f4b576040516335e2f38360e21b815260048101829052602401610555565b5050565b6000807f80ad7e1b04ee6d994a125f4714ca0720908bd80ed16063ec8aee4b88e9253e2d8360000151846020015180519060200120604051602001611a00939291909283526001600160a01b03919091166020830152604082015260600190565b60606000611fbd836120be565b604080516020808252818301909252919250600091906020820181803683375050509182525060208101929092525090565b600080807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084111561202a57506000915060039050826120b4565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa15801561207e573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166120aa575060009250600191508290506120b4565b9250600091508190505b9450945094915050565b600060ff8216601f81111561050957604051632cd44ac360e21b815260040160405180910390fd5b6000602082840312156120f857600080fd5b5035919050565b60006020828403121561211157600080fd5b81356001600160401b0381111561212757600080fd5b820160c0818503121561213957600080fd5b9392505050565b60005b8381101561215b578181015183820152602001612143565b50506000910152565b6000815180845261217c816020860160208601612140565b601f01601f19169290920160200192915050565b60ff60f81b881681526000602060e060208401526121b160e084018a612164565b83810360408501526121c3818a612164565b606085018990526001600160a01b038816608086015260a0850187905284810360c08601528551808252602080880193509091019060005b81811015612217578351835292840192918401916001016121fb565b50909c9b505050505050505050505050565b6020815260006121396020830184612164565b60008083601f84011261224e57600080fd5b5081356001600160401b0381111561226557600080fd5b6020830191508360208260051b850101111561228057600080fd5b9250929050565b600080600080600080606087890312156122a057600080fd5b86356001600160401b03808211156122b757600080fd5b6122c38a838b0161223c565b909850965060208901359150808211156122dc57600080fd5b6122e88a838b0161223c565b9096509450604089013591508082111561230157600080fd5b5061230e89828a0161223c565b979a9699509497509295939492505050565b80356001600160a01b038116811461233757600080fd5b919050565b60006020828403121561234e57600080fd5b61213982612320565b6000808335601e1984360301811261236e57600080fd5b83016020810192503590506001600160401b0381111561238d57600080fd5b80360382131561228057600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60008383855260208086019550808560051b830101846000805b8881101561247657858403601f19018a52823536899003605e19018112612404578283fd5b880160606001600160a01b0361241983612320565b16865261242887830183612357565b828989015261243a838901828461239c565b92505050604061244c81840184612357565b93508783038289015261246083858361239c565b9d89019d975050509386019350506001016123df565b509198975050505050505050565b6020815260006001600160a01b038061249c85612320565b166020840152806124af60208601612320565b16604084015250604083013560608301526060830135601e198436030181126124d757600080fd5b83016020810190356001600160401b038111156124f357600080fd5b8060051b360382131561250557600080fd5b60c0608085015261251a60e0850182846123c5565b915050608084013560a084015261253460a0850185612357565b848303601f190160c086015261254b83828461239c565b9695505050505050565b634e487b7160e01b600052604160045260246000fd5b604051606081016001600160401b038111828210171561258d5761258d612555565b60405290565b60405160c081016001600160401b038111828210171561258d5761258d612555565b604051601f8201601f191681016001600160401b03811182821017156125dd576125dd612555565b604052919050565b60006001600160401b038211156125fe576125fe612555565b5060051b60200190565b60006001600160401b0382111561262157612621612555565b50601f01601f191660200190565b600082601f83011261264057600080fd5b813561265361264e82612608565b6125b5565b81815284602083860101111561266857600080fd5b816020850160208301376000918101602001919091529392505050565b600082601f83011261269657600080fd5b813560206126a661264e836125e5565b82815260059290921b840181019181810190868411156126c557600080fd5b8286015b848110156127745780356001600160401b03808211156126e95760008081fd5b908801906060828b03601f19018113156127035760008081fd5b61270b61256b565b612716888501612320565b81526040808501358481111561272c5760008081fd5b61273a8e8b8389010161262f565b838b0152509184013591838311156127525760008081fd5b6127608d8a8588010161262f565b9082015286525050509183019183016126c9565b509695505050505050565b600060c0828403121561279157600080fd5b612799612593565b90506127a482612320565b81526127b260208301612320565b60208201526040820135604082015260608201356001600160401b03808211156127db57600080fd5b6127e785838601612685565b60608401526080840135608084015260a084013591508082111561280a57600080fd5b506128178482850161262f565b60a08301525092915050565b6000610509368361277f565b634e487b7160e01b600052603260045260246000fd5b6000808335601e1984360301811261285c57600080fd5b8301803591506001600160401b0382111561287657600080fd5b60200191503681900382131561228057600080fd5b6000602080838503121561289e57600080fd5b82356001600160401b03808211156128b557600080fd5b818501915085601f8301126128c957600080fd5b81356128d761264e826125e5565b81815260059190911b830184019084810190888311156128f657600080fd5b8585015b8381101561292e578035858111156129125760008081fd5b6129208b89838a010161277f565b8452509186019186016128fa565b5098975050505050505050565b8281526040602082015260006129546040830184612164565b949350505050565b60006020828403121561296e57600080fd5b81516001600160e01b03198116811461213957600080fd5b634e487b7160e01b600052601160045260246000fd5b8181038181111561050957610509612986565b8082018082111561050957610509612986565b60e0815260006129d560e083018b612164565b82810360208401526129e7818b612164565b90508860408401528281036060840152612a0281888a61239c565b608084019690965250506001600160a01b0392831660a0820152911660c09091015295945050505050565b838152604060208201526000612a4760408301848661239c565b95945050505050565b60006020808385031215612a6357600080fd5b82516001600160401b0380821115612a7a57600080fd5b818501915085601f830112612a8e57600080fd5b8151612a9c61264e826125e5565b81815260059190911b83018401908481019088831115612abb57600080fd5b8585015b8381101561292e57805185811115612ad75760008081fd5b8601603f81018b13612ae95760008081fd5b878101516040612afb61264e83612608565b8281528d82848601011115612b105760008081fd5b612b1f838c8301848701612140565b8652505050918601918601612abf565b600081612b3e57612b3e612986565b506000190190565b602080825282516001600160a01b0390811683830152838201518116604080850191909152808501516060808601919091528086015160c06080870152805160e0870181905260009594610100600583901b8901810195919493870193919290890190885b81811015612c055760ff198b8903018352855187815116895289810151858b8b0152612bd9868b0182612164565b918701518a83038b890152919050612bf18183612164565b995050509488019491880191600101612bab565b50505050505050608085015160a085015260a08501519150601f198482030160c0850152612a478183612164565b815160009082906020808601845b83811015612c5d57815185529382019390820190600101612c41565b50929695505050505050565b600181811c90821680612c7d57607f821691505b602082108103612c9d57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052602160045260246000fdfea2646970667358221220ca409e8c9582544b3b8d8c05ed7b77fb8b148a77f098b1aea58f1517227de31d64736f6c634300081700338b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f",HO={};Q(HO,{abi:()=>GO,bytecode:()=>zO});var GO=[{type:"error",name:"ECDSAInvalidSignature",inputs:[]},{type:"error",name:"ECDSAInvalidSignatureLength",inputs:[{name:"length",type:"uint256",internalType:"uint256"}]},{type:"error",name:"ECDSAInvalidSignatureS",inputs:[{name:"s",type:"bytes32",internalType:"bytes32"}]}],zO="0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212204f453c45fd8890597438ba3740ed042994be373737c9bd8ac833ff249df3eaab64736f6c63430008170033",jO={};Q(jO,{abi:()=>VO,bytecode:()=>qO});var VO=[{type:"function",name:"eip712Domain",inputs:[],outputs:[{name:"fields",type:"bytes1",internalType:"bytes1"},{name:"name",type:"string",internalType:"string"},{name:"version",type:"string",internalType:"string"},{name:"chainId",type:"uint256",internalType:"uint256"},{name:"verifyingContract",type:"address",internalType:"address"},{name:"salt",type:"bytes32",internalType:"bytes32"},{name:"extensions",type:"uint256[]",internalType:"uint256[]"}],stateMutability:"view"},{type:"event",name:"EIP712DomainChanged",inputs:[],anonymous:!1},{type:"error",name:"InvalidShortString",inputs:[]},{type:"error",name:"StringTooLong",inputs:[{name:"str",type:"string",internalType:"string"}]}],qO="0x",Vo={};Q(Vo,{abi:()=>WO,bytecode:()=>ZO});var WO=[{type:"constructor",inputs:[{name:"implementation",type:"address",internalType:"address"},{name:"_data",type:"bytes",internalType:"bytes"}],stateMutability:"payable"},{type:"fallback",stateMutability:"payable"},{type:"event",name:"Upgraded",inputs:[{name:"implementation",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"error",name:"AddressEmptyCode",inputs:[{name:"target",type:"address",internalType:"address"}]},{type:"error",name:"ERC1967InvalidImplementation",inputs:[{name:"implementation",type:"address",internalType:"address"}]},{type:"error",name:"ERC1967NonPayable",inputs:[]},{type:"error",name:"FailedInnerCall",inputs:[]}],ZO="0x60806040526040516103f03803806103f08339810160408190526100229161025e565b61002c8282610033565b5050610341565b61003c82610091565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a280511561008557610080828261010c565b505050565b61008d61017f565b5050565b806001600160a01b03163b5f036100cb57604051634c9c8ce360e01b81526001600160a01b03821660048201526024015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b60605f80846001600160a01b0316846040516101289190610326565b5f60405180830381855af49150503d805f8114610160576040519150601f19603f3d011682016040523d82523d5f602084013e610165565b606091505b5090925090506101768583836101a0565b95945050505050565b341561019e5760405163b398979f60e01b815260040160405180910390fd5b565b6060826101b5576101b0826101ff565b6101f8565b81511580156101cc57506001600160a01b0384163b155b156101f557604051639996b31560e01b81526001600160a01b03851660048201526024016100c2565b50805b9392505050565b80511561020f5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b634e487b7160e01b5f52604160045260245ffd5b5f5b8381101561025657818101518382015260200161023e565b50505f910152565b5f806040838503121561026f575f80fd5b82516001600160a01b0381168114610285575f80fd5b60208401519092506001600160401b03808211156102a1575f80fd5b818501915085601f8301126102b4575f80fd5b8151818111156102c6576102c6610228565b604051601f8201601f19908116603f011681019083821181831017156102ee576102ee610228565b81604052828152886020848701011115610306575f80fd5b61031783602083016020880161023c565b80955050505050509250929050565b5f825161033781846020870161023c565b9190910192915050565b60a38061034d5f395ff3fe6080604052600a600c565b005b60186014601a565b6050565b565b5f604b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b365f80375f80365f845af43d5f803e8080156069573d5ff35b3d5ffdfea2646970667358221220fd2cc92935c943d341edacaf5318a0b9ab0185ce62ef72e95ab393ef358730c464736f6c63430008170033",YO={};Q(YO,{abi:()=>KO,bytecode:()=>XO});var KO=[{type:"function",name:"afterAllHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"afterHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"beforeAllHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"beforeHook",inputs:[{name:"_terms",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"_mode",type:"bytes32",internalType:"ModeCode"},{name:"_executionCallData",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"pure"},{type:"function",name:"getTermsInfo",inputs:[{name:"_terms",type:"bytes",internalType:"bytes"}],outputs:[{name:"dataStart_",type:"uint256",internalType:"uint256"},{name:"value_",type:"bytes",internalType:"bytes"}],stateMutability:"pure"}],XO="0x608060405234801561001057600080fd5b506106dc806100206000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c8063414c3e331461005c578063a145832a14610078578063b99deb0e1461008b578063d3eddcc51461005c578063ed4633671461005c575b600080fd5b61007661006a3660046104a2565b50505050505050505050565b005b6100766100863660046104a2565b6100b5565b61009e61009936600461056f565b610198565b6040516100ac9291906105b1565b60405180910390f35b856100c1816000610265565b6101125760405162461bcd60e51b815260206004820181905260248201527f436176656174456e666f726365723a696e76616c69642d63616c6c2d7479706560448201526064015b60405180910390fd5b86600881901b610123816000610265565b61017d5760405162461bcd60e51b815260206004820152602560248201527f436176656174456e666f726365723a696e76616c69642d657865637574696f6e6044820152642d7479706560d81b6064820152608401610109565b5061018a8c8c898961027c565b505050505050505050505050565b6000606060218310156102005760405162461bcd60e51b815260206004820152602a60248201527f416c6c6f77656443616c6c64617461456e666f726365723a696e76616c69642d6044820152697465726d732d73697a6560b01b6064820152608401610109565b61020e602060008587610608565b61021791610632565b91506102268360208187610608565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250949792965091945050505050565b6001600160f81b0319828116908216145b92915050565b6000606036600061028d86866103d6565b93509350505061029d8888610198565b80519195509350816102af8287610650565b11156103155760405162461bcd60e51b815260206004820152602f60248201527f416c6c6f77656443616c6c64617461456e666f726365723a696e76616c69642d60448201526e0c6c2d8d8c8c2e8c25ad8cadccee8d608b1b6064820152608401610109565b61036e8386846103258583610650565b9261033293929190610608565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250889250610427915050565b6103cb5760405162461bcd60e51b815260206004820152602860248201527f416c6c6f77656443616c6c64617461456e666f726365723a696e76616c69642d60448201526763616c6c6461746160c01b6064820152608401610109565b505050505050505050565b60008036816103e86014828789610608565b6103f191610671565b60601c9350610404603460148789610608565b61040d91610632565b925061041c8560348189610608565b949793965094505050565b8051602091820120825192909101919091201490565b60008083601f84011261044f57600080fd5b50813567ffffffffffffffff81111561046757600080fd5b60208301915083602082850101111561047f57600080fd5b9250929050565b80356001600160a01b038116811461049d57600080fd5b919050565b60008060008060008060008060008060e08b8d0312156104c157600080fd5b8a3567ffffffffffffffff808211156104d957600080fd5b6104e58e838f0161043d565b909c509a5060208d01359150808211156104fe57600080fd5b61050a8e838f0161043d565b909a50985060408d0135975060608d013591508082111561052a57600080fd5b506105378d828e0161043d565b90965094505060808b0135925061055060a08c01610486565b915061055e60c08c01610486565b90509295989b9194979a5092959850565b6000806020838503121561058257600080fd5b823567ffffffffffffffff81111561059957600080fd5b6105a58582860161043d565b90969095509350505050565b8281526000602060406020840152835180604085015260005b818110156105e6578581018301518582016060015282016105ca565b506000606082860101526060601f19601f830116850101925050509392505050565b6000808585111561061857600080fd5b8386111561062557600080fd5b5050820193919092039150565b8035602083101561027657600019602084900360031b1b1692915050565b8082018082111561027657634e487b7160e01b600052601160045260246000fd5b6bffffffffffffffffffffffff19813581811691601485101561069e5780818660140360031b1b83161692505b50509291505056fea2646970667358221220040ece6946150f16c5413920be7d1b9c5d49d2aae2b6945d7da6faa6f92f5ef664736f6c63430008170033",JO={};Q(JO,{abi:()=>QO,bytecode:()=>eR});var QO=[],eR="0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e387e66c46ba5a334fec27a4edf89a8be9952b587b8297dbf10cb57e8c1726d964736f6c63430008170033",qo={};Q(qo,{abi:()=>tR,bytecode:()=>nR});var tR=[{type:"function",name:"afterAllHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"afterHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"beforeAllHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"beforeHook",inputs:[{name:"_terms",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"_mode",type:"bytes32",internalType:"ModeCode"},{name:"_executionCallData",type:"bytes",internalType:"bytes"},{name:"_delegationHash",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"_redeemer",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"getTermsInfo",inputs:[{name:"_terms",type:"bytes",internalType:"bytes"}],outputs:[{name:"allowedContract_",type:"address",internalType:"address"},{name:"maxTokens_",type:"uint256",internalType:"uint256"}],stateMutability:"pure"},{type:"function",name:"spentMap",inputs:[{name:"delegationManager",type:"address",internalType:"address"},{name:"delegationHash",type:"bytes32",internalType:"bytes32"}],outputs:[{name:"amount",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"event",name:"IncreasedSpentMap",inputs:[{name:"sender",type:"address",indexed:!0,internalType:"address"},{name:"redeemer",type:"address",indexed:!0,internalType:"address"},{name:"delegationHash",type:"bytes32",indexed:!0,internalType:"bytes32"},{name:"limit",type:"uint256",indexed:!1,internalType:"uint256"},{name:"spent",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1}],nR="0x608060405234801561001057600080fd5b5061081e806100206000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c8063414c3e33146100675780639dd5d9ab14610083578063a145832a146100be578063b99deb0e146100d1578063d3eddcc514610067578063ed46336714610067575b600080fd5b6100816100753660046105c3565b50505050505050505050565b005b6100ab610091366004610690565b600060208181529281526040808220909352908152205481565b6040519081526020015b60405180910390f35b6100816100cc3660046105c3565b610103565b6100e46100df3660046106ba565b610247565b604080516001600160a01b0390931683526020830191909152016100b5565b8561010f8160006102df565b6101605760405162461bcd60e51b815260206004820181905260248201527f436176656174456e666f726365723a696e76616c69642d63616c6c2d7479706560448201526064015b60405180910390fd5b86600881901b6101718160006102df565b6101cb5760405162461bcd60e51b815260206004820152602560248201527f436176656174456e666f726365723a696e76616c69642d657865637574696f6e6044820152642d7479706560d81b6064820152608401610157565b506000806101dc8e8e8b8b8b6102f6565b9150915086856001600160a01b0316336001600160a01b03167fc026e493323d526061a052b5dd562495120e2f648797a48be61966d3a6beec8d858560405161022f929190918252602082015260400190565b60405180910390a45050505050505050505050505050565b600080603483146102a15760405162461bcd60e51b815260206004820152603060248201526000805160206107c983398151915260448201526f0d8d2c85ae8cae4dae65ad8cadccee8d60831b6064820152608401610157565b6102af6014600085876106fc565b6102b891610726565b60601c91506102ca83601481876106fc565b6102d39161075b565b60001c90509250929050565b6001600160f81b0319828116908216145b92915050565b6000806000366000610308888861050d565b9295509350909150506044811461036c5760405162461bcd60e51b815260206004820152603460248201526000805160206107c98339815191526044820152730d8d2c85acaf0cac6eae8d2dedc5ad8cadccee8d60631b6064820152608401610157565b60006103788b8b610247565b965090506001600160a01b03808216908516146103da5760405162461bcd60e51b815260206004820152602c60248201526000805160206107c983398151915260448201526b1b1a590b58dbdb9d1c9858dd60a21b6064820152608401610157565b63a9059cbb60e01b6103f06004600085876106fc565b6103f991610779565b6001600160e01b031916146104515760405162461bcd60e51b815260206004820152602a60248201526000805160206107c98339815191526044820152691b1a590b5b595d1a1bd960b21b6064820152608401610157565b61045f6044602484866106fc565b6104689161075b565b336000908152602081815260408083208b8452909152812080549091906104909084906107a7565b9250508190559450858511156104ff5760405162461bcd60e51b815260206004820152602e60248201527f45524332305472616e73666572416d6f756e74456e666f726365723a616c6c6f60448201526d1dd85b98d94b595e18d95959195960921b6064820152608401610157565b505050509550959350505050565b600080368161051f60148287896106fc565b61052891610726565b60601c935061053b6034601487896106fc565b6105449161075b565b925061055385603481896106fc565b949793965094505050565b60008083601f84011261057057600080fd5b50813567ffffffffffffffff81111561058857600080fd5b6020830191508360208285010111156105a057600080fd5b9250929050565b80356001600160a01b03811681146105be57600080fd5b919050565b60008060008060008060008060008060e08b8d0312156105e257600080fd5b8a3567ffffffffffffffff808211156105fa57600080fd5b6106068e838f0161055e565b909c509a5060208d013591508082111561061f57600080fd5b61062b8e838f0161055e565b909a50985060408d0135975060608d013591508082111561064b57600080fd5b506106588d828e0161055e565b90965094505060808b0135925061067160a08c016105a7565b915061067f60c08c016105a7565b90509295989b9194979a5092959850565b600080604083850312156106a357600080fd5b6106ac836105a7565b946020939093013593505050565b600080602083850312156106cd57600080fd5b823567ffffffffffffffff8111156106e457600080fd5b6106f08582860161055e565b90969095509350505050565b6000808585111561070c57600080fd5b8386111561071957600080fd5b5050820193919092039150565b6bffffffffffffffffffffffff1981358181169160148510156107535780818660140360031b1b83161692505b505092915050565b803560208310156102f057600019602084900360031b1b1692915050565b6001600160e01b031981358181169160048510156107535760049490940360031b84901b1690921692915050565b808201808211156102f057634e487b7160e01b600052601160045260246000fdfe45524332305472616e73666572416d6f756e74456e666f726365723a696e7661a2646970667358221220936350618a5001f34797bf97c50cd107709e028340c60e13df9fe9a2d10d7fb364736f6c63430008170033",dp={};Q(dp,{abi:()=>aR,bytecode:()=>rR});var aR=[{type:"function",name:"afterAllHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"afterHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"beforeAllHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"beforeHook",inputs:[{name:"_terms",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"_mode",type:"bytes32",internalType:"ModeCode"},{name:"_executionCallData",type:"bytes",internalType:"bytes"},{name:"_delegationHash",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"_redeemer",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"getAvailableAmount",inputs:[{name:"_delegationHash",type:"bytes32",internalType:"bytes32"},{name:"_delegationManager",type:"address",internalType:"address"},{name:"_terms",type:"bytes",internalType:"bytes"}],outputs:[{name:"availableAmount_",type:"uint256",internalType:"uint256"},{name:"isNewPeriod_",type:"bool",internalType:"bool"},{name:"currentPeriod_",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getTermsInfo",inputs:[{name:"_terms",type:"bytes",internalType:"bytes"}],outputs:[{name:"token_",type:"address",internalType:"address"},{name:"periodAmount_",type:"uint256",internalType:"uint256"},{name:"periodDuration_",type:"uint256",internalType:"uint256"},{name:"startDate_",type:"uint256",internalType:"uint256"}],stateMutability:"pure"},{type:"function",name:"periodicAllowances",inputs:[{name:"delegationManager",type:"address",internalType:"address"},{name:"delegationHash",type:"bytes32",internalType:"bytes32"}],outputs:[{name:"periodAmount",type:"uint256",internalType:"uint256"},{name:"periodDuration",type:"uint256",internalType:"uint256"},{name:"startDate",type:"uint256",internalType:"uint256"},{name:"lastTransferPeriod",type:"uint256",internalType:"uint256"},{name:"transferredInCurrentPeriod",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"event",name:"TransferredInPeriod",inputs:[{name:"sender",type:"address",indexed:!0,internalType:"address"},{name:"redeemer",type:"address",indexed:!0,internalType:"address"},{name:"delegationHash",type:"bytes32",indexed:!0,internalType:"bytes32"},{name:"token",type:"address",indexed:!1,internalType:"address"},{name:"periodAmount",type:"uint256",indexed:!1,internalType:"uint256"},{name:"periodDuration",type:"uint256",indexed:!1,internalType:"uint256"},{name:"startDate",type:"uint256",indexed:!1,internalType:"uint256"},{name:"transferredInCurrentPeriod",type:"uint256",indexed:!1,internalType:"uint256"},{name:"transferTimestamp",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1}],rR="0x608060405234801561001057600080fd5b50610d12806100206000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c8063a145832a1161005b578063a145832a1461013e578063b99deb0e14610151578063d3eddcc514610082578063ed4633671461008257600080fd5b8063414c3e33146100825780636a9843f61461009e5780637b91dc78146100d1575b600080fd5b61009c610090366004610a20565b50505050505050505050565b005b6100b16100ac366004610aed565b61018e565b604080519384529115156020840152908201526060015b60405180910390f35b6101166100df366004610b47565b6000602081815292815260408082209093529081522080546001820154600283015460038401546004909401549293919290919085565b604080519586526020860194909452928401919091526060830152608082015260a0016100c8565b61009c61014c366004610a20565b610265565b61016461015f366004610b71565b61034a565b604080516001600160a01b03909516855260208501939093529183015260608201526080016100c8565b6001600160a01b0383166000908152602081815260408083208784528252808320815160a081018352815481526001820154938101939093526002810154918301829052600381015460608401526004015460808301528291829115610203576101f781610416565b9350935093505061025b565b6000806000610212898961034a565b9350935093505060006040518060a00160405280858152602001848152602001838152602001600081526020016000815250905061024f81610416565b97509750975050505050505b9450945094915050565b856102718160006104aa565b6102c25760405162461bcd60e51b815260206004820181905260248201527f436176656174456e666f726365723a696e76616c69642d63616c6c2d7479706560448201526064015b60405180910390fd5b86600881901b6102d38160006104aa565b61032d5760405162461bcd60e51b815260206004820152602560248201527f436176656174456e666f726365723a696e76616c69642d657865637574696f6e6044820152642d7479706560d81b60648201526084016102b9565b5061033c8c8c898989886104c1565b505050505050505050505050565b6000808080607485146103a65760405162461bcd60e51b81526020600482015260306024820152600080516020610cbd83398151915260448201526f0d8d2c85ae8cae4dae65ad8cadccee8d60831b60648201526084016102b9565b6103b4601460008789610bb3565b6103bd91610bdd565b60601c93506103d0603460148789610bb3565b6103d991610c12565b92506103e9605460348789610bb3565b6103f291610c12565b9150610402607460548789610bb3565b61040b91610c12565b939692955090935050565b60008060008360400151421015610435575060009150819050806104a3565b602084015160408501516104499042610c46565b6104539190610c59565b61045e906001610c7b565b90508084606001511415915060008261047b57846080015161047e565b60005b90508085600001511161049257600061049f565b845161049f908290610c46565b9350505b9193909250565b6001600160f81b0319828116908216145b92915050565b60003660006104d0878761096a565b929550935090915050604481146105345760405162461bcd60e51b81526020600482015260346024820152600080516020610cbd8339815191526044820152730d8d2c85acaf0cac6eae8d2dedc5ad8cadccee8d60631b60648201526084016102b9565b6000806000806105448d8d61034a565b9350935093509350866001600160a01b0316846001600160a01b0316146105b05760405162461bcd60e51b815260206004820152602c6024820152600080516020610cbd83398151915260448201526b1b1a590b58dbdb9d1c9858dd60a21b60648201526084016102b9565b63a9059cbb60e01b6105c660046000888a610bb3565b6105cf91610c8e565b6001600160e01b031916146106275760405162461bcd60e51b815260206004820152602a6024820152600080516020610cbd8339815191526044820152691b1a590b5b595d1a1bd960b21b60648201526084016102b9565b336000908152602081815260408083208c8452909152812060028101549091036107e157600082116106a55760405162461bcd60e51b81526020600482015260336024820152600080516020610cbd8339815191526044820152726c69642d7a65726f2d73746172742d6461746560681b60648201526084016102b9565b600084116107025760405162461bcd60e51b81526020600482015260366024820152600080516020610cbd8339815191526044820152751b1a590b5e995c9bcb5c195c9a5bd90b585b5bdd5b9d60521b60648201526084016102b9565b600083116107665760405162461bcd60e51b81526020600482015260386024820152600080516020610cbd83398151915260448201527f6c69642d7a65726f2d706572696f642d6475726174696f6e000000000000000060648201526084016102b9565b814210156107cf5760405162461bcd60e51b815260206004820152603060248201527f4552433230506572696f645472616e73666572456e666f726365723a7472616e60448201526f1cd9995c8b5b9bdd0b5cdd185c9d195960821b60648201526084016102b9565b83815560018101839055600281018290555b600080600061082c846040518060a001604052908160008201548152602001600182015481526020016002820154815260200160038201548152602001600482015481525050610416565b919450925090506000610843604460248c8e610bb3565b61084c91610c12565b9050838111156108bb5760405162461bcd60e51b815260206004820152603460248201527f4552433230506572696f645472616e73666572456e666f726365723a7472616e6044820152731cd9995c8b585b5bdd5b9d0b595e18d95959195960621b60648201526084016102b9565b82156108d05760038501829055600060048601555b808560040160008282546108e49190610c7b565b90915550506004850154604080516001600160a01b038c81168252602082018c90529181018a90526060810189905260808101929092524260a08301528f91908f169033907fb2a345c7f80b4be490c405f4a994faf85384dd05da7d70be0801dc31a8c253af9060c00160405180910390a4505050505050505050505050505050505050565b600080368161097c6014828789610bb3565b61098591610bdd565b60601c9350610998603460148789610bb3565b6109a191610c12565b92506109b08560348189610bb3565b949793965094505050565b60008083601f8401126109cd57600080fd5b50813567ffffffffffffffff8111156109e557600080fd5b6020830191508360208285010111156109fd57600080fd5b9250929050565b80356001600160a01b0381168114610a1b57600080fd5b919050565b60008060008060008060008060008060e08b8d031215610a3f57600080fd5b8a3567ffffffffffffffff80821115610a5757600080fd5b610a638e838f016109bb565b909c509a5060208d0135915080821115610a7c57600080fd5b610a888e838f016109bb565b909a50985060408d0135975060608d0135915080821115610aa857600080fd5b50610ab58d828e016109bb565b90965094505060808b01359250610ace60a08c01610a04565b9150610adc60c08c01610a04565b90509295989b9194979a5092959850565b60008060008060608587031215610b0357600080fd5b84359350610b1360208601610a04565b9250604085013567ffffffffffffffff811115610b2f57600080fd5b610b3b878288016109bb565b95989497509550505050565b60008060408385031215610b5a57600080fd5b610b6383610a04565b946020939093013593505050565b60008060208385031215610b8457600080fd5b823567ffffffffffffffff811115610b9b57600080fd5b610ba7858286016109bb565b90969095509350505050565b60008085851115610bc357600080fd5b83861115610bd057600080fd5b5050820193919092039150565b6bffffffffffffffffffffffff198135818116916014851015610c0a5780818660140360031b1b83161692505b505092915050565b803560208310156104bb57600019602084900360031b1b1692915050565b634e487b7160e01b600052601160045260246000fd5b818103818111156104bb576104bb610c30565b600082610c7657634e487b7160e01b600052601260045260246000fd5b500490565b808201808211156104bb576104bb610c30565b6001600160e01b03198135818116916004851015610c0a5760049490940360031b84901b169092169291505056fe4552433230506572696f645472616e73666572456e666f726365723a696e7661a264697066735822122078259b929dc2fea71614ebe238bd74e88ff3ea3542e0d11a18122c300122d3f664736f6c63430008170033",sR={};Q(sR,{abi:()=>iR,bytecode:()=>oR});var iR=[{type:"function",name:"supportsInterface",inputs:[{name:"interfaceId",type:"bytes4",internalType:"bytes4"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"}],oR="0x",fR={};Q(fR,{abi:()=>bR,bytecode:()=>dR});var bR=[],dR="0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ac220b672ee89e055a56513b249d66df06ecb6da367b913fa0b7b7f3f838634764736f6c63430008170033",cR={};Q(cR,{abi:()=>uR,bytecode:()=>yR});var uR=[{type:"event",name:"AdminChanged",inputs:[{name:"previousAdmin",type:"address",indexed:!1,internalType:"address"},{name:"newAdmin",type:"address",indexed:!1,internalType:"address"}],anonymous:!1},{type:"event",name:"BeaconUpgraded",inputs:[{name:"beacon",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"Upgraded",inputs:[{name:"implementation",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"error",name:"ERC1967InvalidAdmin",inputs:[{name:"admin",type:"address",internalType:"address"}]},{type:"error",name:"ERC1967InvalidBeacon",inputs:[{name:"beacon",type:"address",internalType:"address"}]},{type:"error",name:"ERC1967InvalidImplementation",inputs:[{name:"implementation",type:"address",internalType:"address"}]},{type:"error",name:"ERC1967NonPayable",inputs:[]}],yR="0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220bf999523a2735d33a4f148563c82738a41cc465257ff9df9a8912b831ab5af9564736f6c63430008170033",cp={};Q(cp,{abi:()=>pR,bytecode:()=>lR});var pR=[{type:"constructor",inputs:[{name:"_delegationManager",type:"address",internalType:"contract IDelegationManager"},{name:"_entryPoint",type:"address",internalType:"contract IEntryPoint"}],stateMutability:"nonpayable"},{type:"receive",stateMutability:"payable"},{type:"function",name:"DOMAIN_VERSION",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"NAME",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"PACKED_USER_OP_TYPEHASH",inputs:[],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"VERSION",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"addDeposit",inputs:[],outputs:[],stateMutability:"payable"},{type:"function",name:"delegationManager",inputs:[],outputs:[{name:"",type:"address",internalType:"contract IDelegationManager"}],stateMutability:"view"},{type:"function",name:"disableDelegation",inputs:[{name:"_delegation",type:"tuple",internalType:"struct Delegation",components:[{name:"delegate",type:"address",internalType:"address"},{name:"delegator",type:"address",internalType:"address"},{name:"authority",type:"bytes32",internalType:"bytes32"},{name:"caveats",type:"tuple[]",internalType:"struct Caveat[]",components:[{name:"enforcer",type:"address",internalType:"address"},{name:"terms",type:"bytes",internalType:"bytes"},{name:"args",type:"bytes",internalType:"bytes"}]},{name:"salt",type:"uint256",internalType:"uint256"},{name:"signature",type:"bytes",internalType:"bytes"}]}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"eip712Domain",inputs:[],outputs:[{name:"fields",type:"bytes1",internalType:"bytes1"},{name:"name",type:"string",internalType:"string"},{name:"version",type:"string",internalType:"string"},{name:"chainId",type:"uint256",internalType:"uint256"},{name:"verifyingContract",type:"address",internalType:"address"},{name:"salt",type:"bytes32",internalType:"bytes32"},{name:"extensions",type:"uint256[]",internalType:"uint256[]"}],stateMutability:"view"},{type:"function",name:"enableDelegation",inputs:[{name:"_delegation",type:"tuple",internalType:"struct Delegation",components:[{name:"delegate",type:"address",internalType:"address"},{name:"delegator",type:"address",internalType:"address"},{name:"authority",type:"bytes32",internalType:"bytes32"},{name:"caveats",type:"tuple[]",internalType:"struct Caveat[]",components:[{name:"enforcer",type:"address",internalType:"address"},{name:"terms",type:"bytes",internalType:"bytes"},{name:"args",type:"bytes",internalType:"bytes"}]},{name:"salt",type:"uint256",internalType:"uint256"},{name:"signature",type:"bytes",internalType:"bytes"}]}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"entryPoint",inputs:[],outputs:[{name:"",type:"address",internalType:"contract IEntryPoint"}],stateMutability:"view"},{type:"function",name:"execute",inputs:[{name:"_execution",type:"tuple",internalType:"struct Execution",components:[{name:"target",type:"address",internalType:"address"},{name:"value",type:"uint256",internalType:"uint256"},{name:"callData",type:"bytes",internalType:"bytes"}]}],outputs:[],stateMutability:"payable"},{type:"function",name:"execute",inputs:[{name:"_mode",type:"bytes32",internalType:"ModeCode"},{name:"_executionCalldata",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"payable"},{type:"function",name:"executeFromExecutor",inputs:[{name:"_mode",type:"bytes32",internalType:"ModeCode"},{name:"_executionCalldata",type:"bytes",internalType:"bytes"}],outputs:[{name:"returnData_",type:"bytes[]",internalType:"bytes[]"}],stateMutability:"payable"},{type:"function",name:"getDeposit",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getDomainHash",inputs:[],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"getNonce",inputs:[{name:"_key",type:"uint192",internalType:"uint192"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getNonce",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getPackedUserOperationHash",inputs:[{name:"_userOp",type:"tuple",internalType:"struct PackedUserOperation",components:[{name:"sender",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"},{name:"initCode",type:"bytes",internalType:"bytes"},{name:"callData",type:"bytes",internalType:"bytes"},{name:"accountGasLimits",type:"bytes32",internalType:"bytes32"},{name:"preVerificationGas",type:"uint256",internalType:"uint256"},{name:"gasFees",type:"bytes32",internalType:"bytes32"},{name:"paymasterAndData",type:"bytes",internalType:"bytes"},{name:"signature",type:"bytes",internalType:"bytes"}]}],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"getPackedUserOperationTypedDataHash",inputs:[{name:"_userOp",type:"tuple",internalType:"struct PackedUserOperation",components:[{name:"sender",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"},{name:"initCode",type:"bytes",internalType:"bytes"},{name:"callData",type:"bytes",internalType:"bytes"},{name:"accountGasLimits",type:"bytes32",internalType:"bytes32"},{name:"preVerificationGas",type:"uint256",internalType:"uint256"},{name:"gasFees",type:"bytes32",internalType:"bytes32"},{name:"paymasterAndData",type:"bytes",internalType:"bytes"},{name:"signature",type:"bytes",internalType:"bytes"}]}],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"isDelegationDisabled",inputs:[{name:"_delegationHash",type:"bytes32",internalType:"bytes32"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"isValidSignature",inputs:[{name:"_hash",type:"bytes32",internalType:"bytes32"},{name:"_signature",type:"bytes",internalType:"bytes"}],outputs:[{name:"magicValue_",type:"bytes4",internalType:"bytes4"}],stateMutability:"view"},{type:"function",name:"onERC1155BatchReceived",inputs:[{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"},{name:"",type:"uint256[]",internalType:"uint256[]"},{name:"",type:"uint256[]",internalType:"uint256[]"},{name:"",type:"bytes",internalType:"bytes"}],outputs:[{name:"",type:"bytes4",internalType:"bytes4"}],stateMutability:"view"},{type:"function",name:"onERC1155Received",inputs:[{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"},{name:"",type:"uint256",internalType:"uint256"},{name:"",type:"uint256",internalType:"uint256"},{name:"",type:"bytes",internalType:"bytes"}],outputs:[{name:"",type:"bytes4",internalType:"bytes4"}],stateMutability:"view"},{type:"function",name:"onERC721Received",inputs:[{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"},{name:"",type:"uint256",internalType:"uint256"},{name:"",type:"bytes",internalType:"bytes"}],outputs:[{name:"",type:"bytes4",internalType:"bytes4"}],stateMutability:"view"},{type:"function",name:"redeemDelegations",inputs:[{name:"_permissionContexts",type:"bytes[]",internalType:"bytes[]"},{name:"_modes",type:"bytes32[]",internalType:"ModeCode[]"},{name:"_executionCallDatas",type:"bytes[]",internalType:"bytes[]"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"supportsExecutionMode",inputs:[{name:"_mode",type:"bytes32",internalType:"ModeCode"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"supportsInterface",inputs:[{name:"_interfaceId",type:"bytes4",internalType:"bytes4"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"validateUserOp",inputs:[{name:"_userOp",type:"tuple",internalType:"struct PackedUserOperation",components:[{name:"sender",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"},{name:"initCode",type:"bytes",internalType:"bytes"},{name:"callData",type:"bytes",internalType:"bytes"},{name:"accountGasLimits",type:"bytes32",internalType:"bytes32"},{name:"preVerificationGas",type:"uint256",internalType:"uint256"},{name:"gasFees",type:"bytes32",internalType:"bytes32"},{name:"paymasterAndData",type:"bytes",internalType:"bytes"},{name:"signature",type:"bytes",internalType:"bytes"}]},{name:"",type:"bytes32",internalType:"bytes32"},{name:"_missingAccountFunds",type:"uint256",internalType:"uint256"}],outputs:[{name:"validationData_",type:"uint256",internalType:"uint256"}],stateMutability:"nonpayable"},{type:"function",name:"withdrawDeposit",inputs:[{name:"_withdrawAddress",type:"address",internalType:"address payable"},{name:"_withdrawAmount",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"event",name:"EIP712DomainChanged",inputs:[],anonymous:!1},{type:"event",name:"SentPrefund",inputs:[{name:"sender",type:"address",indexed:!0,internalType:"address"},{name:"amount",type:"uint256",indexed:!1,internalType:"uint256"},{name:"success",type:"bool",indexed:!1,internalType:"bool"}],anonymous:!1},{type:"event",name:"SetDelegationManager",inputs:[{name:"newDelegationManager",type:"address",indexed:!0,internalType:"contract IDelegationManager"}],anonymous:!1},{type:"event",name:"SetEntryPoint",inputs:[{name:"entryPoint",type:"address",indexed:!0,internalType:"contract IEntryPoint"}],anonymous:!1},{type:"event",name:"TryExecuteUnsuccessful",inputs:[{name:"batchExecutionindex",type:"uint256",indexed:!1,internalType:"uint256"},{name:"result",type:"bytes",indexed:!1,internalType:"bytes"}],anonymous:!1},{type:"error",name:"ECDSAInvalidSignature",inputs:[]},{type:"error",name:"ECDSAInvalidSignatureLength",inputs:[{name:"length",type:"uint256",internalType:"uint256"}]},{type:"error",name:"ECDSAInvalidSignatureS",inputs:[{name:"s",type:"bytes32",internalType:"bytes32"}]},{type:"error",name:"ExecutionFailed",inputs:[]},{type:"error",name:"InvalidEIP712NameLength",inputs:[]},{type:"error",name:"InvalidEIP712VersionLength",inputs:[]},{type:"error",name:"InvalidShortString",inputs:[]},{type:"error",name:"NotDelegationManager",inputs:[]},{type:"error",name:"NotEntryPoint",inputs:[]},{type:"error",name:"NotEntryPointOrSelf",inputs:[]},{type:"error",name:"NotSelf",inputs:[]},{type:"error",name:"StringTooLong",inputs:[{name:"str",type:"string",internalType:"string"}]},{type:"error",name:"UnauthorizedCallContext",inputs:[]},{type:"error",name:"UnsupportedCallType",inputs:[{name:"callType",type:"bytes1",internalType:"CallType"}]},{type:"error",name:"UnsupportedExecType",inputs:[{name:"execType",type:"bytes1",internalType:"ExecType"}]}],lR="0x6101c060405230610160523480156200001757600080fd5b50604051620031b0380380620031b08339810160408190526200003a91620002b3565b81816040518060400160405280601981526020017f4549503737303253746174656c65737344656c654761746f7200000000000000815250604051806040016040528060018152602001603160f81b8152508181620000a46000836200021560201b90919060201c565b61012052620000b581600162000215565b61014052815160208084019190912060e052815190820120610100524660a0526200014360e05161010051604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201529081019290925260608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b60805250503060c0528151601f10156200017057604051631ad9af3960e21b815260040160405180910390fd5b601f8151111562000194576040516309203c9d60e41b815260040160405180910390fd5b6001600160a01b038085166101808190529084166101a0526040517fb2e8eb88b584ae71ef4e854c10847f4d39bd93e52599f147bfb4dcc8de52014d90600090a26040516001600160a01b038416907fee8699dc0e27105da2653bdba54be0edcaadc3e33890a3ad705517ffe9bf0a9990600090a2505050505050620004db565b600060208351101562000235576200022d836200024e565b905062000248565b8162000242848262000399565b5060ff90505b92915050565b600080829050601f8151111562000285578260405163305a27a960e01b81526004016200027c919062000465565b60405180910390fd5b80516200029282620004b6565b179392505050565b6001600160a01b0381168114620002b057600080fd5b50565b60008060408385031215620002c757600080fd5b8251620002d4816200029a565b6020840151909250620002e7816200029a565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200031d57607f821691505b6020821081036200033e57634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111562000394576000816000526020600020601f850160051c810160208610156200036f5750805b601f850160051c820191505b8181101562000390578281556001016200037b565b5050505b505050565b81516001600160401b03811115620003b557620003b5620002f2565b620003cd81620003c6845462000308565b8462000344565b602080601f831160018114620004055760008415620003ec5750858301515b600019600386901b1c1916600185901b17855562000390565b600085815260208120601f198616915b82811015620004365788860151825594840194600190910190840162000415565b5085821015620004555787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60006020808352835180602085015260005b81811015620004955785810183015185820160400152820162000477565b506000604082860101526040601f19601f8301168501019250505092915050565b805160208083015191908110156200033e5760001960209190910360031b1b16919050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a051612bb1620005ff60003960008181610471015281816107f7015281816108c20152818161094001528181610aa401528181610b9a01528181610bf201528181610c7401528181610ce601528181610e1001528181610e8f01528181611015015281816112cd01526115ce01526000818161057a015281816109a301528181610a2601528181610b0701528181610ef201526110590152600081816106190152818161073a015281816107960152818161083f01528181610b4601528181610da7015261162101526000611960015260006119330152600061174c015260006117240152600061167f015260006116a9015260006116d30152612bb16000f3fe6080604052600436106101c65760003560e01c806384b0196e116100f7578063d03c791411610095578063ea4d3c9b11610064578063ea4d3c9b14610568578063ed8101b51461059c578063f23a6e61146105bc578063ffa1ad74146105dc57600080fd5b8063d03c791414610500578063d087d28814610520578063d691c96414610535578063e9ae5c531461055557600080fd5b8063b0d691fe116100d1578063b0d691fe1461045f578063bc197c81146104ab578063c399ec88146104cb578063cef6d209146104e057600080fd5b806384b0196e146103b4578063a3f4df7e146103dc578063acb8cc491461043257600080fd5b80633ed01015116101645780634a58db191161013e5780634a58db19146103645780635c1c6dcd1461036c5780637f07bfdc1461037f57806383ebb7711461039f57600080fd5b80633ed0101514610302578063445140b814610324578063499340471461034457600080fd5b80631626ba7e116101a05780631626ba7e1461026e57806319822f7c1461028e5780632b3afd99146102ae5780633e1b0812146102e257600080fd5b806301ffc9a7146101d257806306394d6714610207578063150b7a021461023557600080fd5b366101cd57005b600080fd5b3480156101de57600080fd5b506101f26101ed366004611fb2565b61060d565b60405190151581526020015b60405180910390f35b34801561021357600080fd5b50610227610222366004611ff5565b6106f9565b6040519081526020016101fe565b34801561024157600080fd5b506102556102503660046120fb565b61072e565b6040516001600160e01b031990911681526020016101fe565b34801561027a57600080fd5b506102556102893660046121ae565b61078a565b34801561029a57600080fd5b506102276102a93660046121f9565b6107ea565b3480156102ba57600080fd5b506102277fbc37962d8bd1d319c95199bdfda6d3f92baa8903a61b32d5f4ec1f4b36a3bc1881565b3480156102ee57600080fd5b506102276102fd366004612246565b61089b565b34801561030e57600080fd5b5061032261031d36600461226f565b610935565b005b34801561033057600080fd5b506101f261033f3660046122a9565b610a0d565b34801561035057600080fd5b5061032261035f36600461226f565b610a99565b610322610b3c565b61032261037a3660046122c2565b610be7565b34801561038b57600080fd5b5061032261039a3660046122fc565b610c69565b3480156103ab57600080fd5b50610227610d46565b3480156103c057600080fd5b506103c9610d55565b6040516101fe979695949392919061236e565b3480156103e857600080fd5b506104256040518060400160405280601981526020017f4549503737303253746174656c65737344656c654761746f720000000000000081525081565b6040516101fe9190612407565b34801561043e57600080fd5b50610425604051806040016040528060018152602001603160f81b81525081565b34801561046b57600080fd5b506104937f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016101fe565b3480156104b757600080fd5b506102556104c6366004612499565b610d9b565b3480156104d757600080fd5b50610227610df8565b3480156104ec57600080fd5b506103226104fb36600461258a565b610e84565b34801561050c57600080fd5b506101f261051b3660046122a9565b610f6b565b34801561052c57600080fd5b50610227610ff6565b6105486105433660046121ae565b61104c565b6040516101fe9190612623565b6103226105633660046121ae565b6112c2565b34801561057457600080fd5b506104937f000000000000000000000000000000000000000000000000000000000000000081565b3480156105a857600080fd5b506102276105b7366004611ff5565b6114d3565b3480156105c857600080fd5b506102556105d7366004612687565b611615565b3480156105e857600080fd5b50610425604051806040016040528060058152602001640312e332e360dc1b81525081565b60006001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361065857604051634f81d01360e11b815260040160405180910390fd5b6001600160e01b031982166335a4725960e21b148061068757506001600160e01b03198216630a85bd0160e11b145b806106a257506001600160e01b03198216630271189760e51b145b806106bd57506001600160e01b031982166301ffc9a760e01b145b806106d857506001600160e01b03198216630b135d3f60e11b145b806106f357506001600160e01b03198216633992254760e01b145b92915050565b60006106f3610706611672565b61070f846114d3565b60405161190160f01b8152600281019290925260228201526042902090565b60006001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361077957604051634f81d01360e11b815260040160405180910390fd5b50630a85bd0160e11b949350505050565b60006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036107d557604051634f81d01360e11b815260040160405180910390fd5b6107e084848461179d565b90505b9392505050565b6000336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461083557604051636b31ba1560e11b815260040160405180910390fd5b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361087e57604051634f81d01360e11b815260040160405180910390fd5b6108908461088b866106f9565b611816565b90506107e38261185e565b604051631aab3f0d60e11b81523060048201526001600160c01b03821660248201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906335567e1a90604401602060405180830381865afa158015610911573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106f391906126ef565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480159061096e5750333014155b1561098c57604051630796d94560e01b815260040160405180910390fd5b604051633ed0101560e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633ed01015906109d8908490600401612837565b600060405180830381600087803b1580156109f257600080fd5b505af1158015610a06573d6000803e3d6000fd5b5050505050565b6040516316a0682960e11b8152600481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632d40d05290602401602060405180830381865afa158015610a75573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106f39190612908565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801590610ad25750333014155b15610af057604051630796d94560e01b815260040160405180910390fd5b604051634993404760e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906349934047906109d8908490600401612837565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610b8557604051634f81d01360e11b815260040160405180910390fd5b60405163b760faf960e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063b760faf99034906024016000604051808303818588803b1580156109f257600080fd5b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801590610c205750333014155b15610c3e57604051630796d94560e01b815260040160405180910390fd5b610c65610c4e602083018361292a565b6020830135610c606040850185612947565b6118f6565b5050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801590610ca25750333014155b15610cc057604051630796d94560e01b815260040160405180910390fd5b60405163040b850f60e31b81526001600160a01b038381166004830152602482018390527f0000000000000000000000000000000000000000000000000000000000000000169063205c287890604401600060405180830381600087803b158015610d2a57600080fd5b505af1158015610d3e573d6000803e3d6000fd5b505050505050565b6000610d50611672565b905090565b600060608060008060006060610d6961192c565b610d71611959565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b60006001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610de657604051634f81d01360e11b815260040160405180910390fd5b5063bc197c8160e01b95945050505050565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a08231906024015b602060405180830381865afa158015610e60573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d5091906126ef565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801590610ebd5750333014155b15610edb57604051630796d94560e01b815260040160405180910390fd5b60405163cef6d20960e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cef6d20990610f31908990899089908990899089906004016129ee565b600060405180830381600087803b158015610f4b57600080fd5b505af1158015610f5f573d6000803e3d6000fd5b50505050505050505050565b600081600881901b603082901b605083901b610f878486611986565b80610f9b5750610f9b84600160f81b611986565b8015610fc15750610fad836000611986565b80610fc15750610fc183600160f81b611986565b8015610fd557506001600160e01b03198216155b8015610fec575069ffffffffffffffffffff198116155b9695505050505050565b604051631aab3f0d60e11b8152306004820152600060248201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906335567e1a90604401610e43565b6060336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461109757604051630692ce8160e21b815260040160405180910390fd5b83600881901b6110ab82600160f81b611986565b15611131573660006110bd8787611998565b90925090506110cd836000611986565b156110e3576110dc8282611a31565b945061112a565b6110f183600160f81b611986565b15611100576110dc8282611af2565b6040516308c3ee0360e11b81526001600160f81b0319841660048201526024015b60405180910390fd5b50506112b9565b61113c826000611986565b15611294576000803660006111518989611c1f565b6040805160018082528183019092529498509296509094509250816020015b606081526020019060019003908161117057905050965060006111938682611986565b156111c7576111a4858585856118f6565b886000815181106111b7576111b7612a57565b602002602001018190525061128a565b6111d586600160f81b611986565b15611265576111e685858585611c70565b896000815181106111f9576111f9612a57565b6020908102919091010152905080611260577fe723f28f104e46b47fd3531f3608374ac226bcf3ddda334a23a266453e0efdb760008960008151811061124157611241612a57565b6020026020010151604051611257929190612a6d565b60405180910390a15b61128a565b6040516308c3ee0360e11b81526001600160f81b031987166004820152602401611121565b50505050506112b9565b604051632e5bf3f960e21b81526001600160f81b031983166004820152602401611121565b50509392505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015906112fb5750333014155b1561131957604051630796d94560e01b815260040160405180910390fd5b82600881901b61132d82600160f81b611986565b156113885736600061133f8686611998565b909250905061134f836000611986565b156113645761135e8282611a31565b50611381565b61137283600160f81b611986565b156111005761135e8282611af2565b5050610a06565b611393826000611986565b15611294576000803660006113a88888611c1f565b93509350935093506113be85600060f81b611986565b156113d5576113cf848484846118f6565b506114ca565b6113e385600160f81b611986565b156114a557604080516001808252818301909252600091816020015b60608152602001906001900390816113ff579050509050600061142486868686611c70565b8360008151811061143757611437612a57565b602090810291909101015290508061149e577fe723f28f104e46b47fd3531f3608374ac226bcf3ddda334a23a266453e0efdb760008360008151811061147f5761147f612a57565b6020026020010151604051611495929190612a6d565b60405180910390a15b50506114ca565b6040516308c3ee0360e11b81526001600160f81b031986166004820152602401611121565b50505050610a06565b60007fbc37962d8bd1d319c95199bdfda6d3f92baa8903a61b32d5f4ec1f4b36a3bc18611503602084018461292a565b60208401356115156040860186612947565b604051611523929190612a86565b6040519081900390206115396060870187612947565b604051611547929190612a86565b604051908190039020608087013560a088013560c089013561156c60e08b018b612947565b60405161157a929190612a86565b60408051918290038220602083019a909a526001600160a01b03988916908201526060810196909652608086019490945260a085019290925260c084015260e08301526101008201526101208101929092527f00000000000000000000000000000000000000000000000000000000000000001661014082015261016001604051602081830303815290604052805190602001209050919050565b60006001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361166057604051634f81d01360e11b815260040160405180910390fd5b5063f23a6e6160e01b95945050505050565b6000306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480156116cb57507f000000000000000000000000000000000000000000000000000000000000000046145b156116f557507f000000000000000000000000000000000000000000000000000000000000000090565b610d50604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f0000000000000000000000000000000000000000000000000000000000000000918101919091527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b6000306001600160a01b03166117e98585858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611ca192505050565b6001600160a01b0316036118055750630b135d3f60e11b6107e3565b506001600160e01b03199392505050565b6000806118308361182b610100870187612947565b61179d565b90506374eca2c160e11b6001600160e01b03198216016118545760009150506106f3565b5060019392505050565b80156118f357604051600090339060001990849084818181858888f193505050503d80600081146118ab576040519150601f19603f3d011682016040523d82523d6000602084013e6118b0565b606091505b505060408051848152821515602082015291925033917fa427c7d47f24d01b170779a7600b1d4c0d7cdbabaa0f19c4f0e6182053ffc931910160405180910390a2505b50565b60405181838237600038838387895af1611913573d6000823e3d81fd5b3d8152602081013d6000823e3d01604052949350505050565b6060610d507f00000000000000000000000000000000000000000000000000000000000000006000611ccb565b6060610d507f00000000000000000000000000000000000000000000000000000000000000006001611ccb565b6001600160f81b031990811691161490565b366000833580850160208587010360208201945081359350808460051b8301118360401c17156119d05763ba597e7e6000526004601cfd5b8315611a27578392505b6001830392508260051b850135915081850160408101358082018381358201118460408501111782861782351760401c1715611a1e5763ba597e7e6000526004601cfd5b505050826119da575b5050509250929050565b606081806001600160401b03811115611a4c57611a4c612046565b604051908082528060200260200182016040528015611a7f57816020015b6060815260200190600190039081611a6a5790505b50915060005b81811015611aea5736858583818110611aa057611aa0612a57565b9050602002810190611ab29190612a96565b9050611ac4610c4e602083018361292a565b848381518110611ad657611ad6612a57565b602090810291909101015250600101611a85565b505092915050565b606081806001600160401b03811115611b0d57611b0d612046565b604051908082528060200260200182016040528015611b4057816020015b6060815260200190600190039081611b2b5790505b50915060005b81811015611aea5736858583818110611b6157611b61612a57565b9050602002810190611b739190612a96565b90506000611b9e611b87602084018461292a565b6020840135611b996040860186612947565b611c70565b868581518110611bb057611bb0612a57565b6020908102919091010152905080611c15577fe723f28f104e46b47fd3531f3608374ac226bcf3ddda334a23a266453e0efdb783868581518110611bf657611bf6612a57565b6020026020010151604051611c0c929190612a6d565b60405180910390a15b5050600101611b46565b6000803681611c316014828789612ab6565b611c3a91612ae0565b60601c9350611c4d603460148789612ab6565b611c5691612b13565b9250611c658560348189612ab6565b949793965094505050565b604051600090828482376000388483888a5af191503d8152602081013d6000823e3d81016040525094509492505050565b600080600080611cb18686611d76565b925092509250611cc18282611dc3565b5090949350505050565b606060ff8314611ce557611cde83611e7c565b90506106f3565b818054611cf190612b31565b80601f0160208091040260200160405190810160405280929190818152602001828054611d1d90612b31565b8015611d6a5780601f10611d3f57610100808354040283529160200191611d6a565b820191906000526020600020905b815481529060010190602001808311611d4d57829003601f168201915b505050505090506106f3565b60008060008351604103611db05760208401516040850151606086015160001a611da288828585611ebb565b955095509550505050611dbc565b50508151600091506002905b9250925092565b6000826003811115611dd757611dd7612b65565b03611de0575050565b6001826003811115611df457611df4612b65565b03611e125760405163f645eedf60e01b815260040160405180910390fd5b6002826003811115611e2657611e26612b65565b03611e475760405163fce698f760e01b815260048101829052602401611121565b6003826003811115611e5b57611e5b612b65565b03610c65576040516335e2f38360e21b815260048101829052602401611121565b60606000611e8983611f8a565b604080516020808252818301909252919250600091906020820181803683375050509182525060208101929092525090565b600080807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841115611ef65750600091506003905082611f80565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015611f4a573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116611f7657506000925060019150829050611f80565b9250600091508190505b9450945094915050565b600060ff8216601f8111156106f357604051632cd44ac360e21b815260040160405180910390fd5b600060208284031215611fc457600080fd5b81356001600160e01b0319811681146107e357600080fd5b60006101208284031215611fef57600080fd5b50919050565b60006020828403121561200757600080fd5b81356001600160401b0381111561201d57600080fd5b61202984828501611fdc565b949350505050565b6001600160a01b03811681146118f357600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561208457612084612046565b604052919050565b600082601f83011261209d57600080fd5b81356001600160401b038111156120b6576120b6612046565b6120c9601f8201601f191660200161205c565b8181528460208386010111156120de57600080fd5b816020850160208301376000918101602001919091529392505050565b6000806000806080858703121561211157600080fd5b843561211c81612031565b9350602085013561212c81612031565b92506040850135915060608501356001600160401b0381111561214e57600080fd5b61215a8782880161208c565b91505092959194509250565b60008083601f84011261217857600080fd5b5081356001600160401b0381111561218f57600080fd5b6020830191508360208285010111156121a757600080fd5b9250929050565b6000806000604084860312156121c357600080fd5b8335925060208401356001600160401b038111156121e057600080fd5b6121ec86828701612166565b9497909650939450505050565b60008060006060848603121561220e57600080fd5b83356001600160401b0381111561222457600080fd5b61223086828701611fdc565b9660208601359650604090950135949350505050565b60006020828403121561225857600080fd5b81356001600160c01b03811681146107e357600080fd5b60006020828403121561228157600080fd5b81356001600160401b0381111561229757600080fd5b820160c081850312156107e357600080fd5b6000602082840312156122bb57600080fd5b5035919050565b6000602082840312156122d457600080fd5b81356001600160401b038111156122ea57600080fd5b8201606081850312156107e357600080fd5b6000806040838503121561230f57600080fd5b823561231a81612031565b946020939093013593505050565b6000815180845260005b8181101561234e57602081850181015186830182015201612332565b506000602082860101526020601f19601f83011685010191505092915050565b60ff60f81b881681526000602060e0602084015261238f60e084018a612328565b83810360408501526123a1818a612328565b606085018990526001600160a01b038816608086015260a0850187905284810360c08601528551808252602080880193509091019060005b818110156123f5578351835292840192918401916001016123d9565b50909c9b505050505050505050505050565b6020815260006107e36020830184612328565b600082601f83011261242b57600080fd5b813560206001600160401b0382111561244657612446612046565b8160051b61245582820161205c565b928352848101820192828101908785111561246f57600080fd5b83870192505b8483101561248e57823582529183019190830190612475565b979650505050505050565b600080600080600060a086880312156124b157600080fd5b85356124bc81612031565b945060208601356124cc81612031565b935060408601356001600160401b03808211156124e857600080fd5b6124f489838a0161241a565b9450606088013591508082111561250a57600080fd5b61251689838a0161241a565b9350608088013591508082111561252c57600080fd5b506125398882890161208c565b9150509295509295909350565b60008083601f84011261255857600080fd5b5081356001600160401b0381111561256f57600080fd5b6020830191508360208260051b85010111156121a757600080fd5b600080600080600080606087890312156125a357600080fd5b86356001600160401b03808211156125ba57600080fd5b6125c68a838b01612546565b909850965060208901359150808211156125df57600080fd5b6125eb8a838b01612546565b9096509450604089013591508082111561260457600080fd5b5061261189828a01612546565b979a9699509497509295939492505050565b600060208083016020845280855180835260408601915060408160051b87010192506020870160005b8281101561267a57603f19888603018452612668858351612328565b9450928501929085019060010161264c565b5092979650505050505050565b600080600080600060a0868803121561269f57600080fd5b85356126aa81612031565b945060208601356126ba81612031565b9350604086013592506060860135915060808601356001600160401b038111156126e357600080fd5b6125398882890161208c565b60006020828403121561270157600080fd5b5051919050565b6000808335601e1984360301811261271f57600080fd5b83016020810192503590506001600160401b0381111561273e57600080fd5b8036038213156121a757600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60008383855260208086019550808560051b830101846000805b8881101561282957858403601f19018a52823536899003605e190181126127b5578283fd5b8801606081356127c481612031565b6001600160a01b031686526127db82880183612708565b82898901526127ed838901828461274d565b9250505060406127ff81840184612708565b93508783038289015261281383858361274d565b9d89019d97505050938601935050600101612790565b509198975050505050505050565b602081526000823561284881612031565b6001600160a01b039081166020848101919091528401359061286982612031565b80821660408501525050604083013560608301526060830135601e1984360301811261289457600080fd5b83016020810190356001600160401b038111156128b057600080fd5b8060051b36038213156128c257600080fd5b60c060808501526128d760e085018284612776565b915050608084013560a08401526128f160a0850185612708565b848303601f190160c0860152610fec83828461274d565b60006020828403121561291a57600080fd5b815180151581146107e357600080fd5b60006020828403121561293c57600080fd5b81356107e381612031565b6000808335601e1984360301811261295e57600080fd5b8301803591506001600160401b0382111561297857600080fd5b6020019150368190038213156121a757600080fd5b6000838385526020808601955060208560051b8301018460005b878110156129e157848303601f190189526129c28288612708565b6129cd85828461274d565b9a86019a94505050908301906001016129a7565b5090979650505050505050565b606081526000612a0260608301888a61298d565b8281036020848101919091528682528791810160005b88811015612a3457833582529282019290820190600101612a18565b508481036040860152612a4881878961298d565b9b9a5050505050505050505050565b634e487b7160e01b600052603260045260246000fd5b8281526040602082015260006107e06040830184612328565b8183823760009101908152919050565b60008235605e19833603018112612aac57600080fd5b9190910192915050565b60008085851115612ac657600080fd5b83861115612ad357600080fd5b5050820193919092039150565b6bffffffffffffffffffffffff198135818116916014851015611aea5760149490940360031b84901b1690921692915050565b803560208310156106f357600019602084900360031b1b1692915050565b600181811c90821680612b4557607f821691505b602082108103611fef57634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052602160045260246000fdfea26469706673582212202a8fc88ef923739742bc7ec1685cd9198a7251cfb58c7e873c821a7e716b2ca664736f6c63430008170033",mR={};Q(mR,{abi:()=>hR,bytecode:()=>gR});var hR=[{type:"function",name:"afterAllHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"afterHook",inputs:[{name:"_terms",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"_delegationHash",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"balanceCache",inputs:[{name:"hashKey",type:"bytes32",internalType:"bytes32"}],outputs:[{name:"balance",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"beforeAllHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"beforeHook",inputs:[{name:"_terms",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"_mode",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"_delegationHash",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"getHashKey",inputs:[{name:"_caller",type:"address",internalType:"address"},{name:"_token",type:"address",internalType:"address"},{name:"_delegationHash",type:"bytes32",internalType:"bytes32"}],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"pure"},{type:"function",name:"getTermsInfo",inputs:[{name:"_terms",type:"bytes",internalType:"bytes"}],outputs:[{name:"enforceDecrease_",type:"bool",internalType:"bool"},{name:"token_",type:"address",internalType:"address"},{name:"recipient_",type:"address",internalType:"address"},{name:"amount_",type:"uint256",internalType:"uint256"}],stateMutability:"pure"},{type:"function",name:"isLocked",inputs:[{name:"hashKey",type:"bytes32",internalType:"bytes32"}],outputs:[{name:"lock",type:"bool",internalType:"bool"}],stateMutability:"view"}],gR="0x608060405234801561001057600080fd5b5061095e806100206000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c8063b5e544921161005b578063b5e5449214610115578063b99deb0e14610135578063d3eddcc51461017a578063ed463367146100c557600080fd5b806332a16f4e1461008d578063414c3e33146100c55780638678d6ef146100e1578063a145832a14610102575b600080fd5b6100b061009b366004610677565b60016020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b6100df6100d33660046106f5565b50505050505050505050565b005b6100f46100ef3660046107c2565b61018d565b6040519081526020016100bc565b6100df6101103660046106f5565b6101a2565b6100f4610123366004610677565b60006020819052908152604090205481565b6101486101433660046107fe565b610353565b6040516100bc949392919093151584526001600160a01b03928316602085015291166040830152606082015260800190565b6100df6101883660046106f5565b610440565b600061019a84848461061d565b949350505050565b85600881901b6101b3816000610660565b6102125760405162461bcd60e51b815260206004820152602560248201527f436176656174456e666f726365723a696e76616c69642d657865637574696f6e6044820152642d7479706560d81b60648201526084015b60405180910390fd5b506000806102208d8d610353565b509250925050600061023333848961061d565b60008181526001602052604090205490915060ff16156102ab5760405162461bcd60e51b815260206004820152602d60248201527f455243323042616c616e63654368616e6765456e666f726365723a656e666f7260448201526c18d95c8b5a5ccb5b1bd8dad959609a1b6064820152608401610209565b6000818152600160208190526040808320805460ff1916909217909155516370a0823160e01b81526001600160a01b0384811660048301528516906370a0823190602401602060405180830381865afa15801561030c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103309190610840565b600092835260208390526040909220919091555050505050505050505050505050565b6000808080604985146103c05760405162461bcd60e51b815260206004820152602f60248201527f455243323042616c616e63654368616e6765456e666f726365723a696e76616c60448201526e0d2c85ae8cae4dae65ad8cadccee8d608b1b6064820152608401610209565b858560008181106103d3576103d3610859565b909101356001600160f81b031916151594506103f5905060156001878961086f565b6103fe91610899565b60601c925061041160296015878961086f565b61041a91610899565b60601c915061042c856029818961086f565b610435916108ce565b939692955090935050565b6000806000806104508e8e610353565b9350935093509350600061046533858a61061d565b600081815260016020526040808220805460ff19169055516370a0823160e01b81526001600160a01b03868116600483015292935090918616906370a0823190602401602060405180830381865afa1580156104c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104e99190610840565b9050851561057c5760008281526020819052604090205461050b908490610902565b8110156105775760405162461bcd60e51b815260206004820152603460248201527f455243323042616c616e63654368616e6765456e666f726365723a65786365656044820152736465642d62616c616e63652d646563726561736560601b6064820152608401610209565b61060b565b600082815260208190526040902054610596908490610915565b81101561060b5760405162461bcd60e51b815260206004820152603860248201527f455243323042616c616e63654368616e6765456e666f726365723a696e73756660448201527f66696369656e742d62616c616e63652d696e63726561736500000000000000006064820152608401610209565b50505050505050505050505050505050565b604080516001600160a01b039485166020808301919091529390941684820152606080850192909252805180850390920182526080909301909252815191012090565b6001600160f81b0319828116908216145b92915050565b60006020828403121561068957600080fd5b5035919050565b60008083601f8401126106a257600080fd5b50813567ffffffffffffffff8111156106ba57600080fd5b6020830191508360208285010111156106d257600080fd5b9250929050565b80356001600160a01b03811681146106f057600080fd5b919050565b60008060008060008060008060008060e08b8d03121561071457600080fd5b8a3567ffffffffffffffff8082111561072c57600080fd5b6107388e838f01610690565b909c509a5060208d013591508082111561075157600080fd5b61075d8e838f01610690565b909a50985060408d0135975060608d013591508082111561077d57600080fd5b5061078a8d828e01610690565b90965094505060808b013592506107a360a08c016106d9565b91506107b160c08c016106d9565b90509295989b9194979a5092959850565b6000806000606084860312156107d757600080fd5b6107e0846106d9565b92506107ee602085016106d9565b9150604084013590509250925092565b6000806020838503121561081157600080fd5b823567ffffffffffffffff81111561082857600080fd5b61083485828601610690565b90969095509350505050565b60006020828403121561085257600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b6000808585111561087f57600080fd5b8386111561088c57600080fd5b5050820193919092039150565b6bffffffffffffffffffffffff1981358181169160148510156108c65780818660140360031b1b83161692505b505092915050565b8035602083101561067157600019602084900360031b1b1692915050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610671576106716108ec565b80820180821115610671576106716108ec56fea26469706673582212202ee065285e6d78b8f4f72189bef225cff106ed6fed2f250af767e847d4faa24364736f6c63430008170033",TR={};Q(TR,{abi:()=>wR,bytecode:()=>vR});var wR=[],vR="0x60556032600b8282823980515f1a607314602657634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe730000000000000000000000000000000000000000301460806040525f80fdfea26469706673582212201dfea0fb90d440a56b093020135bfa0529382b21cf5681ce6bf65b9ef384b15664736f6c63430008170033",xR={};Q(xR,{abi:()=>ER,bytecode:()=>AR});var ER=[{type:"function",name:"afterAllHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"afterHook",inputs:[{name:"_terms",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"_delegationHash",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"balanceCache",inputs:[{name:"hashKey",type:"bytes32",internalType:"bytes32"}],outputs:[{name:"balance",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"beforeAllHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"beforeHook",inputs:[{name:"_terms",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"_mode",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"_delegationHash",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"getHashKey",inputs:[{name:"_caller",type:"address",internalType:"address"},{name:"_token",type:"address",internalType:"address"},{name:"_recipient",type:"address",internalType:"address"},{name:"_delegationHash",type:"bytes32",internalType:"bytes32"}],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"pure"},{type:"function",name:"getTermsInfo",inputs:[{name:"_terms",type:"bytes",internalType:"bytes"}],outputs:[{name:"enforceDecrease_",type:"bool",internalType:"bool"},{name:"token_",type:"address",internalType:"address"},{name:"recipient_",type:"address",internalType:"address"},{name:"amount_",type:"uint256",internalType:"uint256"}],stateMutability:"pure"},{type:"function",name:"isLocked",inputs:[{name:"hashKey",type:"bytes32",internalType:"bytes32"}],outputs:[{name:"lock",type:"bool",internalType:"bool"}],stateMutability:"view"}],AR="0x608060405234801561001057600080fd5b5061097c806100206000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c8063b5e544921161005b578063b5e5449214610115578063b99deb0e14610135578063d3eddcc51461017a578063ed463367146100c557600080fd5b806332a16f4e1461008d578063414c3e33146100c55780635f6f02e0146100e1578063a145832a14610102575b600080fd5b6100b061009b366004610686565b60016020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b6100df6100d3366004610704565b50505050505050505050565b005b6100f46100ef3660046107d1565b61018d565b6040519081526020016100bc565b6100df610110366004610704565b6101a4565b6100f4610123366004610686565b60006020819052908152604090205481565b61014861014336600461081c565b610357565b6040516100bc949392919093151584526001600160a01b03928316602085015291166040830152606082015260800190565b6100df610188366004610704565b610445565b600061019b85858585610624565b95945050505050565b85600881901b6101b581600061066f565b6102145760405162461bcd60e51b815260206004820152602560248201527f436176656174456e666f726365723a696e76616c69642d657865637574696f6e6044820152642d7479706560d81b60648201526084015b60405180910390fd5b506000806102228d8d610357565b50925092505060006102363384848a610624565b60008181526001602052604090205490915060ff16156102af5760405162461bcd60e51b815260206004820152602e60248201527f45524337323142616c616e63654368616e6765456e666f726365723a656e666f60448201526d1c98d95c8b5a5ccb5b1bd8dad95960921b606482015260840161020b565b6000818152600160208190526040808320805460ff1916909217909155516370a0823160e01b81526001600160a01b0384811660048301528516906370a0823190602401602060405180830381865afa158015610310573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610334919061085e565b600092835260208390526040909220919091555050505050505050505050505050565b6000808080604985146103c55760405162461bcd60e51b815260206004820152603060248201527f45524337323142616c616e63654368616e6765456e666f726365723a696e766160448201526f0d8d2c85ae8cae4dae65ad8cadccee8d60831b606482015260840161020b565b858560008181106103d8576103d8610877565b909101356001600160f81b031916151594506103fa905060156001878961088d565b610403916108b7565b60601c925061041660296015878961088d565b61041f916108b7565b60601c9150610431856029818961088d565b61043a916108ec565b939692955090935050565b6000806000806104558e8e610357565b9350935093509350600061046b3385858b610624565b600081815260016020526040808220805460ff19169055516370a0823160e01b81526001600160a01b03868116600483015292935090918616906370a0823190602401602060405180830381865afa1580156104cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ef919061085e565b9050851561058357600082815260208190526040902054610511908490610920565b81101561057e5760405162461bcd60e51b815260206004820152603560248201527f45524337323142616c616e63654368616e6765456e666f726365723a65786365604482015274656465642d62616c616e63652d646563726561736560581b606482015260840161020b565b610612565b60008281526020819052604090205461059d908490610933565b8110156106125760405162461bcd60e51b815260206004820152603960248201527f45524337323142616c616e63654368616e6765456e666f726365723a696e737560448201527f6666696369656e742d62616c616e63652d696e63726561736500000000000000606482015260840161020b565b50505050505050505050505050505050565b604080516001600160a01b03958616602080830191909152948616818301529290941660608301526080808301919091528351808303909101815260a0909101909252815191012090565b6001600160f81b0319828116908216145b92915050565b60006020828403121561069857600080fd5b5035919050565b60008083601f8401126106b157600080fd5b50813567ffffffffffffffff8111156106c957600080fd5b6020830191508360208285010111156106e157600080fd5b9250929050565b80356001600160a01b03811681146106ff57600080fd5b919050565b60008060008060008060008060008060e08b8d03121561072357600080fd5b8a3567ffffffffffffffff8082111561073b57600080fd5b6107478e838f0161069f565b909c509a5060208d013591508082111561076057600080fd5b61076c8e838f0161069f565b909a50985060408d0135975060608d013591508082111561078c57600080fd5b506107998d828e0161069f565b90965094505060808b013592506107b260a08c016106e8565b91506107c060c08c016106e8565b90509295989b9194979a5092959850565b600080600080608085870312156107e757600080fd5b6107f0856106e8565b93506107fe602086016106e8565b925061080c604086016106e8565b9396929550929360600135925050565b6000806020838503121561082f57600080fd5b823567ffffffffffffffff81111561084657600080fd5b6108528582860161069f565b90969095509350505050565b60006020828403121561087057600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b6000808585111561089d57600080fd5b838611156108aa57600080fd5b5050820193919092039150565b6bffffffffffffffffffffffff1981358181169160148510156108e45780818660140360031b1b83161692505b505092915050565b8035602083101561068057600019602084900360031b1b1692915050565b634e487b7160e01b600052601160045260246000fd5b818103818111156106805761068061090a565b808201808211156106805761068061090a56fea26469706673582212201a908643c89c30b103124ac1346de2de7964be6fc4c537dea357364db407b9ad64736f6c63430008170033",_R={};Q(_R,{abi:()=>SR,bytecode:()=>IR});var SR=[{type:"error",name:"ERC7579DecodingError",inputs:[]}],IR="0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e31e42482ef7832f3e446f04f27415313e49db77c6e6717169033c8535b19d3764736f6c63430008170033",CR={};Q(CR,{abi:()=>PR,bytecode:()=>MR});var PR=[{type:"function",name:"afterAllHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"afterHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"beforeAllHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"beforeHook",inputs:[{name:"_terms",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"_mode",type:"bytes32",internalType:"ModeCode"},{name:"_executionCallData",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"getTermsInfo",inputs:[{name:"_terms",type:"bytes",internalType:"bytes"}],outputs:[{name:"permittedContract_",type:"address",internalType:"address"},{name:"permittedTokenId_",type:"uint256",internalType:"uint256"}],stateMutability:"pure"}],MR="0x608060405234801561001057600080fd5b50610821806100206000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c8063414c3e331461005c578063a145832a14610078578063b99deb0e1461008b578063d3eddcc51461005c578063ed4633671461005c575b600080fd5b61007661006a3660046105ea565b50505050505050505050565b005b6100766100863660046105ea565b6100c1565b61009e6100993660046106bd565b61047c565b604080516001600160a01b03909316835260208301919091520160405180910390f35b856100cd816000610521565b61011e5760405162461bcd60e51b815260206004820181905260248201527f436176656174456e666f726365723a696e76616c69642d63616c6c2d7479706560448201526064015b60405180910390fd5b86600881901b61012f816000610521565b6101895760405162461bcd60e51b815260206004820152602560248201527f436176656174456e666f726365723a696e76616c69642d657865637574696f6e6044820152642d7479706560d81b6064820152608401610115565b506000806101978e8e61047c565b9150915060003660006101aa8c8c610538565b929550935090915050606481101561021b5760405162461bcd60e51b815260206004820152602e60248201527f4552433732315472616e73666572456e666f726365723a696e76616c69642d6360448201526d0c2d8d8c8c2e8c25ad8cadccee8d60931b6064820152608401610115565b6000808061022c84600481886106ff565b8101906102399190610729565b919450925090506001600160a01b038316158061025d57506001600160a01b038216155b156102b95760405162461bcd60e51b815260206004820152602660248201527f4552433732315472616e73666572456e666f726365723a696e76616c69642d6160448201526564647265737360d01b6064820152608401610115565b60006102c860048287896106ff565b6102d19161076a565b9050886001600160a01b0316876001600160a01b0316146103505760405162461bcd60e51b815260206004820152603360248201527f4552433732315472616e73666572456e666f726365723a756e617574686f72696044820152721e99590b58dbdb9d1c9858dd0b5d185c99d95d606a1b6064820152608401610115565b6001600160e01b031981166323b872dd60e01b1480159061038257506001600160e01b03198116632142170760e11b14155b801561039f57506001600160e01b03198116635c46a7ef60e11b14155b156104015760405162461bcd60e51b815260206004820152602c60248201527f4552433732315472616e73666572456e666f726365723a756e617574686f726960448201526b3d32b216b9b2b632b1ba37b960a11b6064820152608401610115565b8782146104655760405162461bcd60e51b815260206004820152602c60248201527f4552433732315472616e73666572456e666f726365723a756e617574686f726960448201526b1e99590b5d1bdad95b8b5a5960a21b6064820152608401610115565b505050505050505050505050505050505050505050565b600080603483146104e35760405162461bcd60e51b815260206004820152602b60248201527f4552433732315472616e73666572456e666f726365723a696e76616c69642d7460448201526a0cae4dae65ad8cadccee8d60ab1b6064820152608401610115565b6104f16014600085876106ff565b6104fa9161079a565b60601c915061050c83601481876106ff565b610515916107cd565b60001c90509250929050565b6001600160f81b0319828116908216145b92915050565b600080368161054a60148287896106ff565b6105539161079a565b60601c93506105666034601487896106ff565b61056f916107cd565b925061057e85603481896106ff565b949793965094505050565b60008083601f84011261059b57600080fd5b50813567ffffffffffffffff8111156105b357600080fd5b6020830191508360208285010111156105cb57600080fd5b9250929050565b6001600160a01b03811681146105e757600080fd5b50565b60008060008060008060008060008060e08b8d03121561060957600080fd5b8a3567ffffffffffffffff8082111561062157600080fd5b61062d8e838f01610589565b909c509a5060208d013591508082111561064657600080fd5b6106528e838f01610589565b909a50985060408d0135975060608d013591508082111561067257600080fd5b5061067f8d828e01610589565b90965094505060808b0135925060a08b013561069a816105d2565b915060c08b01356106aa816105d2565b809150509295989b9194979a5092959850565b600080602083850312156106d057600080fd5b823567ffffffffffffffff8111156106e757600080fd5b6106f385828601610589565b90969095509350505050565b6000808585111561070f57600080fd5b8386111561071c57600080fd5b5050820193919092039150565b60008060006060848603121561073e57600080fd5b8335610749816105d2565b92506020840135610759816105d2565b929592945050506040919091013590565b6001600160e01b031981358181169160048510156107925780818660040360031b1b83161692505b505092915050565b6bffffffffffffffffffffffff1981358181169160148510156107925760149490940360031b84901b1690921692915050565b8035602083101561053257600019602084900360031b1b169291505056fea264697066735822122059baae7c286b09a388772bb8a0feea8851f9a4fec98691fdc00e38b6eb1a59b964736f6c63430008170033",Wo={};Q(Wo,{abi:()=>$R,bytecode:()=>OR});var $R=[{type:"function",name:"afterAllHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"afterHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"beforeAllHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"beforeHook",inputs:[{name:"_terms",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"_mode",type:"bytes32",internalType:"ModeCode"},{name:"_executionCallData",type:"bytes",internalType:"bytes"},{name:"_delegationHash",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"_redeemer",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"getAvailableAmount",inputs:[{name:"_delegationManager",type:"address",internalType:"address"},{name:"_delegationHash",type:"bytes32",internalType:"bytes32"}],outputs:[{name:"availableAmount_",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getTermsInfo",inputs:[{name:"_terms",type:"bytes",internalType:"bytes"}],outputs:[{name:"token_",type:"address",internalType:"address"},{name:"initialAmount_",type:"uint256",internalType:"uint256"},{name:"maxAmount_",type:"uint256",internalType:"uint256"},{name:"amountPerSecond_",type:"uint256",internalType:"uint256"},{name:"startTime_",type:"uint256",internalType:"uint256"}],stateMutability:"pure"},{type:"function",name:"streamingAllowances",inputs:[{name:"delegationManager",type:"address",internalType:"address"},{name:"delegationHash",type:"bytes32",internalType:"bytes32"}],outputs:[{name:"initialAmount",type:"uint256",internalType:"uint256"},{name:"maxAmount",type:"uint256",internalType:"uint256"},{name:"amountPerSecond",type:"uint256",internalType:"uint256"},{name:"startTime",type:"uint256",internalType:"uint256"},{name:"spent",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"event",name:"IncreasedSpentMap",inputs:[{name:"sender",type:"address",indexed:!0,internalType:"address"},{name:"redeemer",type:"address",indexed:!0,internalType:"address"},{name:"delegationHash",type:"bytes32",indexed:!0,internalType:"bytes32"},{name:"token",type:"address",indexed:!1,internalType:"address"},{name:"initialAmount",type:"uint256",indexed:!1,internalType:"uint256"},{name:"maxAmount",type:"uint256",indexed:!1,internalType:"uint256"},{name:"amountPerSecond",type:"uint256",indexed:!1,internalType:"uint256"},{name:"startTime",type:"uint256",indexed:!1,internalType:"uint256"},{name:"spent",type:"uint256",indexed:!1,internalType:"uint256"},{name:"lastUpdateTimestamp",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1}],OR="0x608060405234801561001057600080fd5b50610b7d806100206000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c8063d3eddcc51161005b578063d3eddcc514610082578063ed46336714610082578063ee73d772146100fb578063fb7d2c5b1461011c57600080fd5b8063414c3e3314610082578063a145832a1461009e578063b99deb0e146100b1575b600080fd5b61009c610090366004610910565b50505050505050505050565b005b61009c6100ac366004610910565b610189565b6100c46100bf3660046109dd565b61026e565b604080516001600160a01b0390961686526020860194909452928401919091526060830152608082015260a0015b60405180910390f35b61010e610109366004610a1f565b610365565b6040519081526020016100f2565b61016161012a366004610a1f565b6000602081815292815260408082209093529081522080546001820154600283015460038401546004909401549293919290919085565b604080519586526020860194909452928401919091526060830152608082015260a0016100f2565b856101958160006103d0565b6101e65760405162461bcd60e51b815260206004820181905260248201527f436176656174456e666f726365723a696e76616c69642d63616c6c2d7479706560448201526064015b60405180910390fd5b86600881901b6101f78160006103d0565b6102515760405162461bcd60e51b815260206004820152602560248201527f436176656174456e666f726365723a696e76616c69642d657865637574696f6e6044820152642d7479706560d81b60648201526084016101dd565b506102608c8c898989886103e7565b505050505050505050505050565b600080808080609486146102d85760405162461bcd60e51b815260206004820152602b60248201527f455243323053747265616d696e67456e666f726365723a696e76616c69642d7460448201526a0cae4dae65ad8cadccee8d60ab1b60648201526084016101dd565b6102e660146000888a610a49565b6102ef91610a73565b60601c945061030260346014888a610a49565b61030b91610aa8565b935061031b60546034888a610a49565b61032491610aa8565b925061033460746054888a610a49565b61033d91610aa8565b915061034d60946074888a610a49565b61035691610aa8565b60001c90509295509295909350565b6001600160a01b0382166000908152602081815260408083208484528252808320815160a081018352815481526001820154938101939093526002810154918301919091526003810154606083015260048101546080830152906103c8906107d9565b949350505050565b6001600160f81b0319828116908216145b92915050565b60003660006103f6878761085a565b929550935090915050604481146104675760405162461bcd60e51b815260206004820152602f60248201527f455243323053747265616d696e67456e666f726365723a696e76616c69642d6560448201526e0f0cac6eae8d2dedc5ad8cadccee8d608b1b60648201526084016101dd565b60008060008060006104798e8e61026e565b94509450945094509450838310156104e55760405162461bcd60e51b815260206004820152602960248201527f455243323053747265616d696e67456e666f726365723a696e76616c69642d6d604482015268185e0b585b5bdd5b9d60ba1b60648201526084016101dd565b6000811161054c5760405162461bcd60e51b815260206004820152602e60248201527f455243323053747265616d696e67456e666f726365723a696e76616c69642d7a60448201526d65726f2d73746172742d74696d6560901b60648201526084016101dd565b876001600160a01b0316856001600160a01b0316146105bd5760405162461bcd60e51b815260206004820152602760248201527f455243323053747265616d696e67456e666f726365723a696e76616c69642d636044820152661bdb9d1c9858dd60ca1b60648201526084016101dd565b63a9059cbb60e01b6105d360046000898b610a49565b6105dc91610ac6565b6001600160e01b031916146106415760405162461bcd60e51b815260206004820152602560248201527f455243323053747265616d696e67456e666f726365723a696e76616c69642d6d604482015264195d1a1bd960da1b60648201526084016101dd565b336000908152602081815260408083208d84529091528120600481015490910361067e578481556001810184905560028101839055600381018290555b600061068e604460248a8c610a49565b61069791610aa8565b6040805160a081018252845481526001850154602082015260028501549181019190915260038401546060820152600484015460808201529091506106db906107d9565b81111561073c5760405162461bcd60e51b815260206004820152602960248201527f455243323053747265616d696e67456e666f726365723a616c6c6f77616e63656044820152680b595e18d95959195960ba1b60648201526084016101dd565b808260040160008282546107509190610b0a565b90915550506004820154604080516001600160a01b038a81168252602082018a9052818301899052606082018890526080820187905260a08201939093524260c082015290518e928e169133917f30ceca901166c86cac9d1024230d7f5740b26cce6bdd9bad7b1d6e616904ea639181900360e00190a450505050505050505050505050505050565b600081606001514210156107ef57506000919050565b60008260600151426108019190610b1d565b905060008184604001516108159190610b30565b84516108219190610b0a565b90508360200151811115610836575060208301515b8084608001511061084b575060009392505050565b60808401516103c89082610b1d565b600080368161086c6014828789610a49565b61087591610a73565b60601c9350610888603460148789610a49565b61089191610aa8565b92506108a08560348189610a49565b949793965094505050565b60008083601f8401126108bd57600080fd5b50813567ffffffffffffffff8111156108d557600080fd5b6020830191508360208285010111156108ed57600080fd5b9250929050565b80356001600160a01b038116811461090b57600080fd5b919050565b60008060008060008060008060008060e08b8d03121561092f57600080fd5b8a3567ffffffffffffffff8082111561094757600080fd5b6109538e838f016108ab565b909c509a5060208d013591508082111561096c57600080fd5b6109788e838f016108ab565b909a50985060408d0135975060608d013591508082111561099857600080fd5b506109a58d828e016108ab565b90965094505060808b013592506109be60a08c016108f4565b91506109cc60c08c016108f4565b90509295989b9194979a5092959850565b600080602083850312156109f057600080fd5b823567ffffffffffffffff811115610a0757600080fd5b610a13858286016108ab565b90969095509350505050565b60008060408385031215610a3257600080fd5b610a3b836108f4565b946020939093013593505050565b60008085851115610a5957600080fd5b83861115610a6657600080fd5b5050820193919092039150565b6bffffffffffffffffffffffff198135818116916014851015610aa05780818660140360031b1b83161692505b505092915050565b803560208310156103e157600019602084900360031b1b1692915050565b6001600160e01b03198135818116916004851015610aa05760049490940360031b84901b1690921692915050565b634e487b7160e01b600052601160045260246000fd5b808201808211156103e1576103e1610af4565b818103818111156103e1576103e1610af4565b80820281158282048414176103e1576103e1610af456fea2646970667358221220d9282c553e448eac7b4631259f5a457c28077fd4d88ef08db72ec3df532e99ed64736f6c63430008170033",RR={};Q(RR,{abi:()=>BR,bytecode:()=>NR});var BR=[{type:"function",name:"validateUserOp",inputs:[{name:"userOp",type:"tuple",internalType:"struct PackedUserOperation",components:[{name:"sender",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"},{name:"initCode",type:"bytes",internalType:"bytes"},{name:"callData",type:"bytes",internalType:"bytes"},{name:"accountGasLimits",type:"bytes32",internalType:"bytes32"},{name:"preVerificationGas",type:"uint256",internalType:"uint256"},{name:"gasFees",type:"bytes32",internalType:"bytes32"},{name:"paymasterAndData",type:"bytes",internalType:"bytes"},{name:"signature",type:"bytes",internalType:"bytes"}]},{name:"userOpHash",type:"bytes32",internalType:"bytes32"},{name:"missingAccountFunds",type:"uint256",internalType:"uint256"}],outputs:[{name:"validationData",type:"uint256",internalType:"uint256"}],stateMutability:"nonpayable"}],NR="0x",DR={};Q(DR,{abi:()=>kR,bytecode:()=>LR});var kR=[{type:"function",name:"afterAllHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"afterHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"beforeAllHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"beforeHook",inputs:[{name:"_terms",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"_mode",type:"bytes32",internalType:"ModeCode"},{name:"_executionCallData",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"pure"},{type:"function",name:"getTermsInfo",inputs:[{name:"_terms",type:"bytes",internalType:"bytes"}],outputs:[{name:"callData_",type:"bytes",internalType:"bytes"}],stateMutability:"pure"}],LR="0x608060405234801561001057600080fd5b50610559806100206000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c8063414c3e331461005c578063a145832a14610078578063b99deb0e1461008b578063d3eddcc51461005c578063ed4633671461005c575b600080fd5b61007661006a366004610338565b50505050505050505050565b005b610076610086366004610338565b6100b4565b61009e610099366004610405565b61022b565b6040516100ab9190610447565b60405180910390f35b856100c081600061026b565b6101115760405162461bcd60e51b815260206004820181905260248201527f436176656174456e666f726365723a696e76616c69642d63616c6c2d7479706560448201526064015b60405180910390fd5b86600881901b61012281600061026b565b61017c5760405162461bcd60e51b815260206004820152602560248201527f436176656174456e666f726365723a696e76616c69642d657865637574696f6e6044820152642d7479706560d81b6064820152608401610108565b5036600061018a8989610282565b935093505050600061019c8f8f61022b565b905082826040516101ae929190610496565b604051809103902081805190602001201461021a5760405162461bcd60e51b815260206004820152602660248201527f457861637443616c6c64617461456e666f726365723a696e76616c69642d63616044820152656c6c6461746160d01b6064820152608401610108565b505050505050505050505050505050565b606082828080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929695505050505050565b6001600160f81b0319828116908216145b92915050565b600080368161029460148287896104a6565b61029d916104d0565b60601c93506102b06034601487896104a6565b6102b991610505565b92506102c885603481896104a6565b949793965094505050565b60008083601f8401126102e557600080fd5b50813567ffffffffffffffff8111156102fd57600080fd5b60208301915083602082850101111561031557600080fd5b9250929050565b80356001600160a01b038116811461033357600080fd5b919050565b60008060008060008060008060008060e08b8d03121561035757600080fd5b8a3567ffffffffffffffff8082111561036f57600080fd5b61037b8e838f016102d3565b909c509a5060208d013591508082111561039457600080fd5b6103a08e838f016102d3565b909a50985060408d0135975060608d01359150808211156103c057600080fd5b506103cd8d828e016102d3565b90965094505060808b013592506103e660a08c0161031c565b91506103f460c08c0161031c565b90509295989b9194979a5092959850565b6000806020838503121561041857600080fd5b823567ffffffffffffffff81111561042f57600080fd5b61043b858286016102d3565b90969095509350505050565b60006020808352835180602085015260005b8181101561047557858101830151858201604001528201610459565b506000604082860101526040601f19601f8301168501019250505092915050565b8183823760009101908152919050565b600080858511156104b657600080fd5b838611156104c357600080fd5b5050820193919092039150565b6bffffffffffffffffffffffff1981358181169160148510156104fd5780818660140360031b1b83161692505b505092915050565b8035602083101561027c57600019602084900360031b1b169291505056fea26469706673582212207ea2be587c5142bd07609ab1e9e3d82af76502619dbab0e88f14c164094d01e564736f6c63430008170033",FR={};Q(FR,{abi:()=>UR,bytecode:()=>HR});var UR=[{type:"function",name:"aggregateSignatures",inputs:[{name:"userOps",type:"tuple[]",internalType:"struct PackedUserOperation[]",components:[{name:"sender",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"},{name:"initCode",type:"bytes",internalType:"bytes"},{name:"callData",type:"bytes",internalType:"bytes"},{name:"accountGasLimits",type:"bytes32",internalType:"bytes32"},{name:"preVerificationGas",type:"uint256",internalType:"uint256"},{name:"gasFees",type:"bytes32",internalType:"bytes32"},{name:"paymasterAndData",type:"bytes",internalType:"bytes"},{name:"signature",type:"bytes",internalType:"bytes"}]}],outputs:[{name:"aggregatedSignature",type:"bytes",internalType:"bytes"}],stateMutability:"view"},{type:"function",name:"validateSignatures",inputs:[{name:"userOps",type:"tuple[]",internalType:"struct PackedUserOperation[]",components:[{name:"sender",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"},{name:"initCode",type:"bytes",internalType:"bytes"},{name:"callData",type:"bytes",internalType:"bytes"},{name:"accountGasLimits",type:"bytes32",internalType:"bytes32"},{name:"preVerificationGas",type:"uint256",internalType:"uint256"},{name:"gasFees",type:"bytes32",internalType:"bytes32"},{name:"paymasterAndData",type:"bytes",internalType:"bytes"},{name:"signature",type:"bytes",internalType:"bytes"}]},{name:"signature",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"view"},{type:"function",name:"validateUserOpSignature",inputs:[{name:"userOp",type:"tuple",internalType:"struct PackedUserOperation",components:[{name:"sender",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"},{name:"initCode",type:"bytes",internalType:"bytes"},{name:"callData",type:"bytes",internalType:"bytes"},{name:"accountGasLimits",type:"bytes32",internalType:"bytes32"},{name:"preVerificationGas",type:"uint256",internalType:"uint256"},{name:"gasFees",type:"bytes32",internalType:"bytes32"},{name:"paymasterAndData",type:"bytes",internalType:"bytes"},{name:"signature",type:"bytes",internalType:"bytes"}]}],outputs:[{name:"sigForUserOp",type:"bytes",internalType:"bytes"}],stateMutability:"view"}],HR="0x",GR={};Q(GR,{abi:()=>zR,bytecode:()=>jR});var zR=[{type:"function",name:"afterAllHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"afterHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"beforeAllHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"beforeHook",inputs:[{name:"_terms",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"_mode",type:"bytes32",internalType:"ModeCode"},{name:"_executionCallData",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"pure"},{type:"function",name:"getTermsInfo",inputs:[{name:"_terms",type:"bytes",internalType:"bytes"}],outputs:[{name:"execution_",type:"tuple",internalType:"struct Execution",components:[{name:"target",type:"address",internalType:"address"},{name:"value",type:"uint256",internalType:"uint256"},{name:"callData",type:"bytes",internalType:"bytes"}]}],stateMutability:"pure"}],jR="0x608060405234801561001057600080fd5b5061062f806100206000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c8063414c3e331461005c578063a145832a14610078578063b99deb0e1461008b578063d3eddcc51461005c578063ed4633671461005c575b600080fd5b61007661006a3660046103e9565b50505050505050505050565b005b6100766100863660046103e9565b6100b4565b61009e6100993660046104b6565b610197565b6040516100ab91906104f8565b60405180910390f35b856100c0816000610210565b6101115760405162461bcd60e51b815260206004820181905260248201527f436176656174456e666f726365723a696e76616c69642d63616c6c2d7479706560448201526064015b60405180910390fd5b86600881901b610122816000610210565b61017c5760405162461bcd60e51b815260206004820152602560248201527f436176656174456e666f726365723a696e76616c69642d657865637574696f6e6044820152642d7479706560d81b6064820152608401610108565b506101898c8c8989610227565b505050505050505050505050565b604080516060808201835260008083526020830152918101919091526101bd8383610333565b81818080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050506040860152505060208301526001600160a01b0316815292915050565b6001600160f81b0319828116908216145b92915050565b6000803660006102378686610333565b929650909450925090506001600160a01b038416610259601460008a8c61056c565b61026291610596565b60601c14801561028757508261027c603460148a8c61056c565b610285916105cb565b145b80156102cc5750818160405161029e9291906105e9565b6040519081900390206102b4886034818c61056c565b6040516102c29291906105e9565b6040518091039020145b6103295760405162461bcd60e51b815260206004820152602860248201527f4578616374457865637574696f6e456e666f726365723a696e76616c69642d656044820152673c32b1baba34b7b760c11b6064820152608401610108565b5050505050505050565b6000803681610345601482878961056c565b61034e91610596565b60601c935061036160346014878961056c565b61036a916105cb565b9250610379856034818961056c565b949793965094505050565b60008083601f84011261039657600080fd5b50813567ffffffffffffffff8111156103ae57600080fd5b6020830191508360208285010111156103c657600080fd5b9250929050565b80356001600160a01b03811681146103e457600080fd5b919050565b60008060008060008060008060008060e08b8d03121561040857600080fd5b8a3567ffffffffffffffff8082111561042057600080fd5b61042c8e838f01610384565b909c509a5060208d013591508082111561044557600080fd5b6104518e838f01610384565b909a50985060408d0135975060608d013591508082111561047157600080fd5b5061047e8d828e01610384565b90965094505060808b0135925061049760a08c016103cd565b91506104a560c08c016103cd565b90509295989b9194979a5092959850565b600080602083850312156104c957600080fd5b823567ffffffffffffffff8111156104e057600080fd5b6104ec85828601610384565b90969095509350505050565b6000602080835260018060a01b038451166020840152602084015160408401526040840151606080850152805180608086015260005b8181101561054a5782810184015186820160a00152830161052e565b50600060a0828701015260a0601f19601f830116860101935050505092915050565b6000808585111561057c57600080fd5b8386111561058957600080fd5b5050820193919092039150565b6bffffffffffffffffffffffff1981358181169160148510156105c35780818660140360031b1b83161692505b505092915050565b8035602083101561022157600019602084900360031b1b1692915050565b818382376000910190815291905056fea2646970667358221220e961f8992a129634c5841f6f8ff7eac208b6822d2646363c613c0f46bcd65a0b64736f6c63430008170033",VR={};Q(VR,{abi:()=>qR,bytecode:()=>WR});var qR=[{type:"function",name:"implementation",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"}],WR="0x",ZR={};Q(ZR,{abi:()=>YR,bytecode:()=>KR});var YR=[{type:"function",name:"disableDelegation",inputs:[{name:"_delegation",type:"tuple",internalType:"struct Delegation",components:[{name:"delegate",type:"address",internalType:"address"},{name:"delegator",type:"address",internalType:"address"},{name:"authority",type:"bytes32",internalType:"bytes32"},{name:"caveats",type:"tuple[]",internalType:"struct Caveat[]",components:[{name:"enforcer",type:"address",internalType:"address"},{name:"terms",type:"bytes",internalType:"bytes"},{name:"args",type:"bytes",internalType:"bytes"}]},{name:"salt",type:"uint256",internalType:"uint256"},{name:"signature",type:"bytes",internalType:"bytes"}]}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"disabledDelegations",inputs:[{name:"_delegationHash",type:"bytes32",internalType:"bytes32"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"enableDelegation",inputs:[{name:"_delegation",type:"tuple",internalType:"struct Delegation",components:[{name:"delegate",type:"address",internalType:"address"},{name:"delegator",type:"address",internalType:"address"},{name:"authority",type:"bytes32",internalType:"bytes32"},{name:"caveats",type:"tuple[]",internalType:"struct Caveat[]",components:[{name:"enforcer",type:"address",internalType:"address"},{name:"terms",type:"bytes",internalType:"bytes"},{name:"args",type:"bytes",internalType:"bytes"}]},{name:"salt",type:"uint256",internalType:"uint256"},{name:"signature",type:"bytes",internalType:"bytes"}]}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"getDelegationHash",inputs:[{name:"_delegation",type:"tuple",internalType:"struct Delegation",components:[{name:"delegate",type:"address",internalType:"address"},{name:"delegator",type:"address",internalType:"address"},{name:"authority",type:"bytes32",internalType:"bytes32"},{name:"caveats",type:"tuple[]",internalType:"struct Caveat[]",components:[{name:"enforcer",type:"address",internalType:"address"},{name:"terms",type:"bytes",internalType:"bytes"},{name:"args",type:"bytes",internalType:"bytes"}]},{name:"salt",type:"uint256",internalType:"uint256"},{name:"signature",type:"bytes",internalType:"bytes"}]}],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"pure"},{type:"function",name:"getDomainHash",inputs:[],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"pause",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"redeemDelegations",inputs:[{name:"_permissionContexts",type:"bytes[]",internalType:"bytes[]"},{name:"_modes",type:"bytes32[]",internalType:"ModeCode[]"},{name:"_executionCallDatas",type:"bytes[]",internalType:"bytes[]"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"unpause",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"event",name:"DisabledDelegation",inputs:[{name:"delegationHash",type:"bytes32",indexed:!0,internalType:"bytes32"},{name:"delegator",type:"address",indexed:!0,internalType:"address"},{name:"delegate",type:"address",indexed:!0,internalType:"address"},{name:"delegation",type:"tuple",indexed:!1,internalType:"struct Delegation",components:[{name:"delegate",type:"address",internalType:"address"},{name:"delegator",type:"address",internalType:"address"},{name:"authority",type:"bytes32",internalType:"bytes32"},{name:"caveats",type:"tuple[]",internalType:"struct Caveat[]",components:[{name:"enforcer",type:"address",internalType:"address"},{name:"terms",type:"bytes",internalType:"bytes"},{name:"args",type:"bytes",internalType:"bytes"}]},{name:"salt",type:"uint256",internalType:"uint256"},{name:"signature",type:"bytes",internalType:"bytes"}]}],anonymous:!1},{type:"event",name:"EnabledDelegation",inputs:[{name:"delegationHash",type:"bytes32",indexed:!0,internalType:"bytes32"},{name:"delegator",type:"address",indexed:!0,internalType:"address"},{name:"delegate",type:"address",indexed:!0,internalType:"address"},{name:"delegation",type:"tuple",indexed:!1,internalType:"struct Delegation",components:[{name:"delegate",type:"address",internalType:"address"},{name:"delegator",type:"address",internalType:"address"},{name:"authority",type:"bytes32",internalType:"bytes32"},{name:"caveats",type:"tuple[]",internalType:"struct Caveat[]",components:[{name:"enforcer",type:"address",internalType:"address"},{name:"terms",type:"bytes",internalType:"bytes"},{name:"args",type:"bytes",internalType:"bytes"}]},{name:"salt",type:"uint256",internalType:"uint256"},{name:"signature",type:"bytes",internalType:"bytes"}]}],anonymous:!1},{type:"event",name:"RedeemedDelegation",inputs:[{name:"rootDelegator",type:"address",indexed:!0,internalType:"address"},{name:"redeemer",type:"address",indexed:!0,internalType:"address"},{name:"delegation",type:"tuple",indexed:!1,internalType:"struct Delegation",components:[{name:"delegate",type:"address",internalType:"address"},{name:"delegator",type:"address",internalType:"address"},{name:"authority",type:"bytes32",internalType:"bytes32"},{name:"caveats",type:"tuple[]",internalType:"struct Caveat[]",components:[{name:"enforcer",type:"address",internalType:"address"},{name:"terms",type:"bytes",internalType:"bytes"},{name:"args",type:"bytes",internalType:"bytes"}]},{name:"salt",type:"uint256",internalType:"uint256"},{name:"signature",type:"bytes",internalType:"bytes"}]}],anonymous:!1},{type:"event",name:"SetDomain",inputs:[{name:"domainHash",type:"bytes32",indexed:!0,internalType:"bytes32"},{name:"name",type:"string",indexed:!1,internalType:"string"},{name:"domainVersion",type:"string",indexed:!1,internalType:"string"},{name:"chainId",type:"uint256",indexed:!1,internalType:"uint256"},{name:"contractAddress",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"error",name:"AlreadyDisabled",inputs:[]},{type:"error",name:"AlreadyEnabled",inputs:[]},{type:"error",name:"BatchDataLengthMismatch",inputs:[]},{type:"error",name:"CannotUseADisabledDelegation",inputs:[]},{type:"error",name:"EmptySignature",inputs:[]},{type:"error",name:"InvalidAuthority",inputs:[]},{type:"error",name:"InvalidDelegate",inputs:[]},{type:"error",name:"InvalidDelegator",inputs:[]},{type:"error",name:"InvalidEOASignature",inputs:[]},{type:"error",name:"InvalidERC1271Signature",inputs:[]}],KR="0x",up={};Q(up,{abi:()=>XR,bytecode:()=>JR});var XR=[{type:"receive",stateMutability:"payable"},{type:"function",name:"addStake",inputs:[{name:"unstakeDelaySec",type:"uint32",internalType:"uint32"}],outputs:[],stateMutability:"payable"},{type:"function",name:"balanceOf",inputs:[{name:"account",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"delegateAndRevert",inputs:[{name:"target",type:"address",internalType:"address"},{name:"data",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"depositTo",inputs:[{name:"account",type:"address",internalType:"address"}],outputs:[],stateMutability:"payable"},{type:"function",name:"deposits",inputs:[{name:"",type:"address",internalType:"address"}],outputs:[{name:"deposit",type:"uint256",internalType:"uint256"},{name:"staked",type:"bool",internalType:"bool"},{name:"stake",type:"uint112",internalType:"uint112"},{name:"unstakeDelaySec",type:"uint32",internalType:"uint32"},{name:"withdrawTime",type:"uint48",internalType:"uint48"}],stateMutability:"view"},{type:"function",name:"getDepositInfo",inputs:[{name:"account",type:"address",internalType:"address"}],outputs:[{name:"info",type:"tuple",internalType:"struct IStakeManager.DepositInfo",components:[{name:"deposit",type:"uint256",internalType:"uint256"},{name:"staked",type:"bool",internalType:"bool"},{name:"stake",type:"uint112",internalType:"uint112"},{name:"unstakeDelaySec",type:"uint32",internalType:"uint32"},{name:"withdrawTime",type:"uint48",internalType:"uint48"}]}],stateMutability:"view"},{type:"function",name:"getNonce",inputs:[{name:"sender",type:"address",internalType:"address"},{name:"key",type:"uint192",internalType:"uint192"}],outputs:[{name:"nonce",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getSenderAddress",inputs:[{name:"initCode",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"getUserOpHash",inputs:[{name:"userOp",type:"tuple",internalType:"struct PackedUserOperation",components:[{name:"sender",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"},{name:"initCode",type:"bytes",internalType:"bytes"},{name:"callData",type:"bytes",internalType:"bytes"},{name:"accountGasLimits",type:"bytes32",internalType:"bytes32"},{name:"preVerificationGas",type:"uint256",internalType:"uint256"},{name:"gasFees",type:"bytes32",internalType:"bytes32"},{name:"paymasterAndData",type:"bytes",internalType:"bytes"},{name:"signature",type:"bytes",internalType:"bytes"}]}],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"handleAggregatedOps",inputs:[{name:"opsPerAggregator",type:"tuple[]",internalType:"struct IEntryPoint.UserOpsPerAggregator[]",components:[{name:"userOps",type:"tuple[]",internalType:"struct PackedUserOperation[]",components:[{name:"sender",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"},{name:"initCode",type:"bytes",internalType:"bytes"},{name:"callData",type:"bytes",internalType:"bytes"},{name:"accountGasLimits",type:"bytes32",internalType:"bytes32"},{name:"preVerificationGas",type:"uint256",internalType:"uint256"},{name:"gasFees",type:"bytes32",internalType:"bytes32"},{name:"paymasterAndData",type:"bytes",internalType:"bytes"},{name:"signature",type:"bytes",internalType:"bytes"}]},{name:"aggregator",type:"address",internalType:"contract IAggregator"},{name:"signature",type:"bytes",internalType:"bytes"}]},{name:"beneficiary",type:"address",internalType:"address payable"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"handleOps",inputs:[{name:"ops",type:"tuple[]",internalType:"struct PackedUserOperation[]",components:[{name:"sender",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"},{name:"initCode",type:"bytes",internalType:"bytes"},{name:"callData",type:"bytes",internalType:"bytes"},{name:"accountGasLimits",type:"bytes32",internalType:"bytes32"},{name:"preVerificationGas",type:"uint256",internalType:"uint256"},{name:"gasFees",type:"bytes32",internalType:"bytes32"},{name:"paymasterAndData",type:"bytes",internalType:"bytes"},{name:"signature",type:"bytes",internalType:"bytes"}]},{name:"beneficiary",type:"address",internalType:"address payable"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"incrementNonce",inputs:[{name:"key",type:"uint192",internalType:"uint192"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"innerHandleOp",inputs:[{name:"callData",type:"bytes",internalType:"bytes"},{name:"opInfo",type:"tuple",internalType:"struct EntryPoint.UserOpInfo",components:[{name:"mUserOp",type:"tuple",internalType:"struct EntryPoint.MemoryUserOp",components:[{name:"sender",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"},{name:"verificationGasLimit",type:"uint256",internalType:"uint256"},{name:"callGasLimit",type:"uint256",internalType:"uint256"},{name:"paymasterVerificationGasLimit",type:"uint256",internalType:"uint256"},{name:"paymasterPostOpGasLimit",type:"uint256",internalType:"uint256"},{name:"preVerificationGas",type:"uint256",internalType:"uint256"},{name:"paymaster",type:"address",internalType:"address"},{name:"maxFeePerGas",type:"uint256",internalType:"uint256"},{name:"maxPriorityFeePerGas",type:"uint256",internalType:"uint256"}]},{name:"userOpHash",type:"bytes32",internalType:"bytes32"},{name:"prefund",type:"uint256",internalType:"uint256"},{name:"contextOffset",type:"uint256",internalType:"uint256"},{name:"preOpGas",type:"uint256",internalType:"uint256"}]},{name:"context",type:"bytes",internalType:"bytes"}],outputs:[{name:"actualGasCost",type:"uint256",internalType:"uint256"}],stateMutability:"nonpayable"},{type:"function",name:"nonceSequenceNumber",inputs:[{name:"",type:"address",internalType:"address"},{name:"",type:"uint192",internalType:"uint192"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"supportsInterface",inputs:[{name:"interfaceId",type:"bytes4",internalType:"bytes4"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"unlockStake",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"withdrawStake",inputs:[{name:"withdrawAddress",type:"address",internalType:"address payable"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"withdrawTo",inputs:[{name:"withdrawAddress",type:"address",internalType:"address payable"},{name:"withdrawAmount",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"event",name:"AccountDeployed",inputs:[{name:"userOpHash",type:"bytes32",indexed:!0,internalType:"bytes32"},{name:"sender",type:"address",indexed:!0,internalType:"address"},{name:"factory",type:"address",indexed:!1,internalType:"address"},{name:"paymaster",type:"address",indexed:!1,internalType:"address"}],anonymous:!1},{type:"event",name:"BeforeExecution",inputs:[],anonymous:!1},{type:"event",name:"Deposited",inputs:[{name:"account",type:"address",indexed:!0,internalType:"address"},{name:"totalDeposit",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"PostOpRevertReason",inputs:[{name:"userOpHash",type:"bytes32",indexed:!0,internalType:"bytes32"},{name:"sender",type:"address",indexed:!0,internalType:"address"},{name:"nonce",type:"uint256",indexed:!1,internalType:"uint256"},{name:"revertReason",type:"bytes",indexed:!1,internalType:"bytes"}],anonymous:!1},{type:"event",name:"SignatureAggregatorChanged",inputs:[{name:"aggregator",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"StakeLocked",inputs:[{name:"account",type:"address",indexed:!0,internalType:"address"},{name:"totalStaked",type:"uint256",indexed:!1,internalType:"uint256"},{name:"unstakeDelaySec",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"StakeUnlocked",inputs:[{name:"account",type:"address",indexed:!0,internalType:"address"},{name:"withdrawTime",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"StakeWithdrawn",inputs:[{name:"account",type:"address",indexed:!0,internalType:"address"},{name:"withdrawAddress",type:"address",indexed:!1,internalType:"address"},{name:"amount",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"UserOperationEvent",inputs:[{name:"userOpHash",type:"bytes32",indexed:!0,internalType:"bytes32"},{name:"sender",type:"address",indexed:!0,internalType:"address"},{name:"paymaster",type:"address",indexed:!0,internalType:"address"},{name:"nonce",type:"uint256",indexed:!1,internalType:"uint256"},{name:"success",type:"bool",indexed:!1,internalType:"bool"},{name:"actualGasCost",type:"uint256",indexed:!1,internalType:"uint256"},{name:"actualGasUsed",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"UserOperationPrefundTooLow",inputs:[{name:"userOpHash",type:"bytes32",indexed:!0,internalType:"bytes32"},{name:"sender",type:"address",indexed:!0,internalType:"address"},{name:"nonce",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"UserOperationRevertReason",inputs:[{name:"userOpHash",type:"bytes32",indexed:!0,internalType:"bytes32"},{name:"sender",type:"address",indexed:!0,internalType:"address"},{name:"nonce",type:"uint256",indexed:!1,internalType:"uint256"},{name:"revertReason",type:"bytes",indexed:!1,internalType:"bytes"}],anonymous:!1},{type:"event",name:"Withdrawn",inputs:[{name:"account",type:"address",indexed:!0,internalType:"address"},{name:"withdrawAddress",type:"address",indexed:!1,internalType:"address"},{name:"amount",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"error",name:"DelegateAndRevert",inputs:[{name:"success",type:"bool",internalType:"bool"},{name:"ret",type:"bytes",internalType:"bytes"}]},{type:"error",name:"FailedOp",inputs:[{name:"opIndex",type:"uint256",internalType:"uint256"},{name:"reason",type:"string",internalType:"string"}]},{type:"error",name:"FailedOpWithRevert",inputs:[{name:"opIndex",type:"uint256",internalType:"uint256"},{name:"reason",type:"string",internalType:"string"},{name:"inner",type:"bytes",internalType:"bytes"}]},{type:"error",name:"PostOpReverted",inputs:[{name:"returnData",type:"bytes",internalType:"bytes"}]},{type:"error",name:"ReentrancyGuardReentrantCall",inputs:[]},{type:"error",name:"SenderAddressResult",inputs:[{name:"sender",type:"address",internalType:"address"}]},{type:"error",name:"SignatureValidationFailed",inputs:[{name:"aggregator",type:"address",internalType:"address"}]}],JR="0x60a0604052604051620000129062000051565b604051809103905ff0801580156200002c573d5f803e3d5ffd5b506001600160a01b031660805234801562000045575f80fd5b5060016002556200005f565b6101ff806200374883390190565b6080516136c96200007f5f395f8181610de0015261271501526136c95ff3fe608060405260043610610107575f3560e01c806370a0823111610092578063b760faf911610062578063b760faf914610425578063bb9fe6bf14610438578063c23a5cea1461044c578063dbed18e01461046b578063fc7e286d1461048a575f80fd5b806370a0823114610394578063765e827f146103c8578063850aaf62146103e75780639b249f6914610406575f80fd5b80631b2e01b8116100d85780631b2e01b8146101ae578063205c2878146101e457806322cdde4c1461020357806335567e1a146102225780635287ce1214610280575f80fd5b806242dc531461011b57806301ffc9a71461014d5780630396cb601461017c5780630bd28e3b1461018f575f80fd5b366101175761011533610530565b005b5f80fd5b348015610126575f80fd5b5061013a610135366004612c4f565b610584565b6040519081526020015b60405180910390f35b348015610158575f80fd5b5061016c610167366004612d06565b610702565b6040519015158152602001610144565b61011561018a366004612d2d565b610789565b34801561019a575f80fd5b506101156101a9366004612d66565b610a14565b3480156101b9575f80fd5b5061013a6101c8366004612d7f565b600160209081525f928352604080842090915290825290205481565b3480156101ef575f80fd5b506101156101fe366004612db2565b610a4a565b34801561020e575f80fd5b5061013a61021d366004612ddc565b610b96565b34801561022d575f80fd5b5061013a61023c366004612d7f565b6001600160a01b0382165f9081526001602090815260408083206001600160c01b038516845290915290819020549082901b67ffffffffffffffff19161792915050565b34801561028b575f80fd5b5061033a61029a366004612e13565b6040805160a0810182525f80825260208201819052918101829052606081018290526080810191909152506001600160a01b03165f9081526020818152604091829020825160a0810184528154815260019091015460ff811615159282019290925261010082046001600160701b031692810192909252600160781b810463ffffffff166060830152600160981b900465ffffffffffff16608082015290565b60405161014491905f60a082019050825182526020830151151560208301526001600160701b03604084015116604083015263ffffffff606084015116606083015265ffffffffffff608084015116608083015292915050565b34801561039f575f80fd5b5061013a6103ae366004612e13565b6001600160a01b03165f9081526020819052604090205490565b3480156103d3575f80fd5b506101156103e2366004612e6e565b610bd7565b3480156103f2575f80fd5b50610115610401366004612ec0565b610d4c565b348015610411575f80fd5b50610115610420366004612f10565b610dc7565b610115610433366004612e13565b610530565b348015610443575f80fd5b50610115610e7e565b348015610457575f80fd5b50610115610466366004612e13565b610fa8565b348015610476575f80fd5b50610115610485366004612e6e565b6111c7565b348015610495575f80fd5b506104ed6104a4366004612e13565b5f602081905290815260409020805460019091015460ff81169061010081046001600160701b031690600160781b810463ffffffff1690600160981b900465ffffffffffff1685565b6040805195865293151560208601526001600160701b039092169284019290925263ffffffff909116606083015265ffffffffffff16608082015260a001610144565b5f61053b82346115ce565b9050816001600160a01b03167f2da466a7b24304f47e87fa2e1e5a81b9831ce54fec19055ce277ca2f39ba42c48260405161057891815260200190565b60405180910390a25050565b5f805a90503330146105dd5760405162461bcd60e51b815260206004820152601760248201527f4141393220696e7465726e616c2063616c6c206f6e6c7900000000000000000060448201526064015b60405180910390fd5b8451606081015160a082015181016127100160405a603f028161060257610602612f4e565b0410156106185763deaddead60e01b5f5260205ffd5b87515f90156106a6575f610631845f01515f8c86611600565b9050806106a4575f610644610800611616565b80519091501561069e57845f01516001600160a01b03168a602001517f1c4fada7374c0a9ee8841fc38afe82932dc0f8e69012e927f061a8bae611a201876020015184604051610695929190612faf565b60405180910390a35b60019250505b505b5f88608001515a86030190506106f4828a8a8a8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250879250611641915050565b9a9950505050505050505050565b5f6001600160e01b0319821663307e35b760e11b148061073257506001600160e01b0319821663122a0e9b60e31b145b8061074d57506001600160e01b0319821663cf28ef9760e01b145b8061076857506001600160e01b03198216633e84f02160e01b145b8061078357506301ffc9a760e01b6001600160e01b03198316145b92915050565b335f90815260208190526040902063ffffffff82166107ea5760405162461bcd60e51b815260206004820152601a60248201527f6d757374207370656369667920756e7374616b652064656c617900000000000060448201526064016105d4565b600181015463ffffffff600160781b9091048116908316101561084f5760405162461bcd60e51b815260206004820152601c60248201527f63616e6e6f7420646563726561736520756e7374616b652074696d650000000060448201526064016105d4565b60018101545f9061086f90349061010090046001600160701b0316612fdb565b90505f81116108b55760405162461bcd60e51b81526020600482015260126024820152711b9bc81cdd185ad9481cdc1958da599a595960721b60448201526064016105d4565b6001600160701b038111156108fd5760405162461bcd60e51b815260206004820152600e60248201526d7374616b65206f766572666c6f7760901b60448201526064016105d4565b6040805160a08101825283548152600160208083018281526001600160701b0386811685870190815263ffffffff8a8116606088018181525f60808a0181815233808352828a52918c90209a518b55965199909801805494519151965165ffffffffffff16600160981b0265ffffffffffff60981b1997909416600160781b029690961669ffffffffffffffffffff60781b1991909516610100026effffffffffffffffffffffffffff0019991515999099166effffffffffffffffffffffffffffff1990941693909317979097179190911691909117179055835185815290810192909252917fa5ae833d0bb1dcd632d98a8b70973e8516812898e19bf27b70071ebc8dc52c01910160405180910390a2505050565b335f9081526001602090815260408083206001600160c01b03851684529091528120805491610a4283612fee565b919050555050565b335f9081526020819052604090208054821115610aa95760405162461bcd60e51b815260206004820152601960248201527f576974686472617720616d6f756e7420746f6f206c617267650000000000000060448201526064016105d4565b8054610ab6908390613006565b8155604080516001600160a01b03851681526020810184905233917fd1c19fbcd4551a5edfb66d43d2e337c04837afda3482b42bdf569a8fccdae5fb910160405180910390a25f836001600160a01b0316836040515f6040518083038185875af1925050503d805f8114610b45576040519150601f19603f3d011682016040523d82523d5f602084013e610b4a565b606091505b5050905080610b905760405162461bcd60e51b81526020600482015260126024820152716661696c656420746f20776974686472617760701b60448201526064016105d4565b50505050565b5f610ba0826117f9565b6040805160208101929092523090820152466060820152608001604051602081830303815290604052805190602001209050919050565b610bdf611811565b815f816001600160401b03811115610bf957610bf9612a5a565b604051908082528060200260200182016040528015610c3257816020015b610c1f6129d0565b815260200190600190039081610c175790505b5090505f5b82811015610ca7575f828281518110610c5257610c52613019565b602002602001015190505f80610c8c848a8a87818110610c7457610c74613019565b9050602002810190610c86919061302d565b85611839565b91509150610c9c8483835f611a3b565b505050600101610c37565b506040515f907fbb47ee3e183a558b1a2ff0874b079f3fc5478b7454eacf2bfc5af2ff5878f972908290a15f5b83811015610d2f57610d2381888884818110610cf257610cf2613019565b9050602002810190610d04919061302d565b858481518110610d1657610d16613019565b6020026020010151611bd5565b90910190600101610cd4565b50610d3a8482611e83565b505050610d476001600255565b505050565b5f80846001600160a01b03168484604051610d6892919061304c565b5f60405180830381855af49150503d805f8114610da0576040519150601f19603f3d011682016040523d82523d5f602084013e610da5565b606091505b50915091508181604051632650415560e21b81526004016105d492919061305b565b604051632b870d1b60e11b81525f906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063570e1a3690610e17908690869060040161309d565b6020604051808303815f875af1158015610e33573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e5791906130b0565b604051633653dc0360e11b81526001600160a01b03821660048201529091506024016105d4565b335f90815260208190526040812060018101549091600160781b90910463ffffffff169003610edc5760405162461bcd60e51b815260206004820152600a6024820152691b9bdd081cdd185ad95960b21b60448201526064016105d4565b600181015460ff16610f245760405162461bcd60e51b8152602060048201526011602482015270616c726561647920756e7374616b696e6760781b60448201526064016105d4565b60018101545f90610f4290600160781b900463ffffffff16426130cb565b60018301805460ff65ffffffffffff60981b011916600160981b65ffffffffffff841690810260ff19169190911790915560405190815290915033907ffa9b3c14cc825c412c9ed81b3ba365a5b459439403f18829e572ed53a4180f0a90602001610578565b335f908152602081905260409020600181015461010090046001600160701b03168061100d5760405162461bcd60e51b81526020600482015260146024820152734e6f207374616b6520746f20776974686472617760601b60448201526064016105d4565b6001820154600160981b900465ffffffffffff1661106d5760405162461bcd60e51b815260206004820152601d60248201527f6d7573742063616c6c20756e6c6f636b5374616b65282920666972737400000060448201526064016105d4565b600182015442600160981b90910465ffffffffffff1611156110d15760405162461bcd60e51b815260206004820152601b60248201527f5374616b65207769746864726177616c206973206e6f7420647565000000000060448201526064016105d4565b600182018054610100600160c81b0319169055604080516001600160a01b03851681526020810183905233917fb7c918e0e249f999e965cafeb6c664271b3f4317d296461500e71da39f0cbda3910160405180910390a25f836001600160a01b0316826040515f6040518083038185875af1925050503d805f8114611171576040519150601f19603f3d011682016040523d82523d5f602084013e611176565b606091505b5050905080610b905760405162461bcd60e51b815260206004820152601860248201527f6661696c656420746f207769746864726177207374616b65000000000000000060448201526064016105d4565b6111cf611811565b815f805b8281101561133657368686838181106111ee576111ee613019565b905060200281019061120091906130f1565b9050365f61120e8380613105565b90925090505f6112246040850160208601612e13565b90505f196001600160a01b0382160161127f5760405162461bcd60e51b815260206004820152601760248201527f4141393620696e76616c69642061676772656761746f7200000000000000000060448201526064016105d4565b6001600160a01b0381161561131a576001600160a01b038116632dd8113384846112ac604089018961314a565b6040518563ffffffff1660e01b81526004016112cb94939291906132ab565b5f6040518083038186803b1580156112e1575f80fd5b505afa9250505080156112f2575060015b61131a5760405163086a9f7560e41b81526001600160a01b03821660048201526024016105d4565b6113248287612fdb565b955050600190930192506111d3915050565b505f816001600160401b0381111561135057611350612a5a565b60405190808252806020026020018201604052801561138957816020015b6113766129d0565b81526020019060019003908161136e5790505b5090505f805b8481101561146057368888838181106113aa576113aa613019565b90506020028101906113bc91906130f1565b9050365f6113ca8380613105565b90925090505f6113e06040850160208601612e13565b9050815f5b8181101561144e575f89898151811061140057611400613019565b602002602001015190505f806114228b898987818110610c7457610c74613019565b9150915061143284838389611a3b565b8a61143c81612fee565b9b5050600190930192506113e5915050565b50506001909401935061138f92505050565b506040517fbb47ee3e183a558b1a2ff0874b079f3fc5478b7454eacf2bfc5af2ff5878f972905f90a1505f80805b8581101561158a57368989838181106114a9576114a9613019565b90506020028101906114bb91906130f1565b90506114cd6040820160208301612e13565b6001600160a01b03167f575ff3acadd5ab348fe1855e217e0f3678f8d767d7494c9f9fefbee2e17cca4d60405160405180910390a2365f61150e8380613105565b9092509050805f5b81811015611579576115588885858481811061153457611534613019565b9050602002810190611546919061302d565b8b8b81518110610d1657610d16613019565b6115629088612fdb565b96508761156e81612fee565b985050600101611516565b50506001909301925061148e915050565b506040515f907f575ff3acadd5ab348fe1855e217e0f3678f8d767d7494c9f9fefbee2e17cca4d908290a26115bf8682611e83565b5050505050610d476001600255565b6001600160a01b0382165f908152602081905260408120805482906115f4908590612fdb565b91829055509392505050565b5f805f845160208601878987f195945050505050565b60603d828111156116245750815b604051602082018101604052818152815f602083013e9392505050565b5f805a85519091505f908161165582611f78565b60e08301519091506001600160a01b038116611674578251935061172b565b8093505f8851111561172b57868202955060028a600281111561169957611699613325565b1461172b5760a0830151604051637c627b2160e01b81526001600160a01b03831691637c627b21916116d5908e908d908c908990600401613339565b5f604051808303815f88803b1580156116ec575f80fd5b5087f1935050505080156116fe575060015b61172b575f61170e610800611616565b905080604051632b5e552f60e21b81526004016105d49190613380565b5a60a0840151606085015160808c01519288039990990198019088038082111561175e576064600a828403020498909801975b505060408901518783029650868110156117b75760028b600281111561178657611786613325565b036117a8578096506117978a611fa9565b6117a38a5f898b611ff8565b6117eb565b63deadaa5160e01b5f5260205ffd5b8681036117c486826115ce565b505f808d60028111156117d9576117d9613325565b1490506117e88c828b8d611ff8565b50505b505050505050949350505050565b5f61180382612073565b805190602001209050919050565b600280540361183357604051633ee5aeb560e01b815260040160405180910390fd5b60028055565b5f805f5a845190915061184c8682612128565b61185586610b96565b6020860152604081015161012082015161010083015160a08401516080850151606086015160c0870151861717171717176effffffffffffffffffffffffffffff8111156118e55760405162461bcd60e51b815260206004820152601860248201527f41413934206761732076616c756573206f766572666c6f77000000000000000060448201526064016105d4565b5f6119138460c081015160a08201516080830151606084015160408501516101009095015194010101010290565b90506119228a8a8a8487612234565b9650611935845f015185602001516123c5565b61198b5789604051631101335b60e11b81526004016105d4918152604060208201819052601a908201527f4141323520696e76616c6964206163636f756e74206e6f6e6365000000000000606082015260800190565b825a860311156119e75789604051631101335b60e11b81526004016105d4918152604060208201819052601e908201527f41413236206f76657220766572696669636174696f6e4761734c696d69740000606082015260800190565b60e08401516060906001600160a01b031615611a0e57611a098b8b8b85612411565b975090505b604089018290528060608a015260a08a01355a870301896080018181525050505050505050935093915050565b5f80611a46856125c8565b91509150816001600160a01b0316836001600160a01b031614611aac5785604051631101335b60e11b81526004016105d49181526040602082018190526014908201527320a0991a1039b4b3b730ba3ab9329032b93937b960611b606082015260800190565b8015611b045785604051631101335b60e11b81526004016105d49181526040602082018190526017908201527f414132322065787069726564206f72206e6f7420647565000000000000000000606082015260800190565b5f611b0e856125c8565b925090506001600160a01b03811615611b6a5786604051631101335b60e11b81526004016105d49181526040602082018190526014908201527320a0999a1039b4b3b730ba3ab9329032b93937b960611b606082015260800190565b8115611bcc5786604051631101335b60e11b81526004016105d49181526040602082018190526021908201527f41413332207061796d61737465722065787069726564206f72206e6f742064756060820152606560f81b608082015260a00190565b50505050505050565b5f805a90505f611be6846060015190565b6040519091505f903682611bfd60608a018a61314a565b9150915060605f826003811115611c1357843591505b506372288ed160e01b6001600160e01b0319821601611cc0575f8b8b60200151604051602401611c44929190613392565b60408051601f198184030181529181526020820180516001600160e01b0316638dd7712f60e01b1790525190915030906242dc5390611c8b9084908f908d9060240161345d565b604051602081830303815290604052915060e01b6020820180516001600160e01b038381831617835250505050925050611d15565b306001600160a01b03166242dc5385858d8b604051602401611ce5949392919061349c565b604051602081830303815290604052915060e01b6020820180516001600160e01b03838183161783525050505091505b60205f8351602085015f305af195505f51985084604052505050505080611e79575f3d80602003611d4a5760205f803e5f5191505b5063deaddead60e01b8103611d9d5787604051631101335b60e11b81526004016105d4918152604060208201819052600f908201526e41413935206f7574206f662067617360881b606082015260800190565b63deadaa5160e01b8103611dec575f86608001515a611dbc9087613006565b611dc69190612fdb565b6040880151909150611dd788611fa9565b611de3885f8385611ff8565b9550611e779050565b855180516020808901519201516001600160a01b0390911691907ff62676f440ff169a3a9afdbf812e89e7f95975ee8e5c31214ffdef631c5f479290611e33610800611616565b604051611e41929190612faf565b60405180910390a35f86608001515a611e5a9087613006565b611e649190612fdb565b9050611e736002888684611641565b9550505b505b5050509392505050565b6001600160a01b038216611ed95760405162461bcd60e51b815260206004820152601860248201527f4141393020696e76616c69642062656e6566696369617279000000000000000060448201526064016105d4565b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f8114611f22576040519150601f19603f3d011682016040523d82523d5f602084013e611f27565b606091505b5050905080610d475760405162461bcd60e51b815260206004820152601f60248201527f41413931206661696c65642073656e6420746f2062656e65666963696172790060448201526064016105d4565b6101008101516101208201515f9190808203611f95575092915050565b611fa182488301612617565b949350505050565b80518051602080840151928101516040519081526001600160a01b0390921692917f67b4fa9642f42120bf031f3051d1824b0fe25627945b27b8a6a65d5761d5482e910160405180910390a350565b835160e081015181516020808801519301516040516001600160a01b039384169492909316927f49628fd1471006c1482da88028e9ce4dbb080b815c9b0344d39e5a8e6ec1419f916120659189908990899093845291151560208401526040830152606082015260800190565b60405180910390a450505050565b6060813560208301355f61209261208d604087018761314a565b61262e565b90505f6120a561208d606088018861314a565b9050608086013560a087013560c08801355f6120c761208d60e08c018c61314a565b604080516001600160a01b039a909a1660208b015289810198909852606089019690965250608087019390935260a086019190915260c085015260e08401526101008084019190915281518084039091018152610120909201905292915050565b6121356020830183612e13565b6001600160a01b03168152602082810135908201526001600160801b036080808401358281166060850152811c604084015260a084013560c0808501919091528401359182166101008401521c610120820152365f61219760e085018561314a565b9092509050801561221a5760348110156121f35760405162461bcd60e51b815260206004820152601d60248201527f4141393320696e76616c6964207061796d6173746572416e644461746100000060448201526064016105d4565b6121fd8282612640565b60a086015260808501526001600160a01b031660e0840152610b90565b5f60e084018190526080840181905260a084015250505050565b825180515f9190612252888761224d60408b018b61314a565b6126a7565b60e08201515f6001600160a01b038216612293576001600160a01b0383165f9081526020819052604090205487811161228d5780880361228f565b5f5b9150505b60208801516040516306608bdf60e21b81526001600160a01b038516916319822f7c9189916122c9918e919087906004016134d2565b6020604051808303815f8887f193505050508015612304575060408051601f3d908101601f19168201909252612301918101906134f6565b60015b61232f5789612314610800611616565b6040516365c8fd4d60e01b81526004016105d492919061350d565b94506001600160a01b0382166123b8576001600160a01b0383165f9081526020819052604090208054808911156123b2578b604051631101335b60e11b81526004016105d49181526040602082018190526017908201527f41413231206469646e2774207061792070726566756e64000000000000000000606082015260800190565b88900390555b5050505095945050505050565b6001600160a01b0382165f90815260016020908152604080832084821c80855292528220805484916001600160401b03831691908561240383612fee565b909155501495945050505050565b60605f805a855160e08101516001600160a01b0381165f9081526020819052604090208054939450919290919087811015612498578a604051631101335b60e11b81526004016105d4918152604060208201819052601e908201527f41413331207061796d6173746572206465706f73697420746f6f206c6f770000606082015260800190565b878103825f01819055505f84608001519050836001600160a01b03166352b7512c828d8d602001518d6040518563ffffffff1660e01b81526004016124df939291906134d2565b5f604051808303815f8887f19350505050801561251d57506040513d5f823e601f3d908101601f1916820160405261251a9190810190613549565b60015b612548578b61252d610800611616565b6040516365c8fd4d60e01b81526004016105d49291906135c4565b9098509650805a870311156125b9578b604051631101335b60e11b81526004016105d49181526040602082018190526027908201527f41413336206f766572207061796d6173746572566572696669636174696f6e47606082015266185cd31a5b5a5d60ca1b608082015260a00190565b50505050505094509492505050565b5f80825f036125db57505f928392509050565b5f6125e584612961565b9050806040015165ffffffffffff1642118061260c5750806020015165ffffffffffff1642105b905194909350915050565b5f8183106126255781612627565b825b9392505050565b5f604051828085833790209392505050565b5f80806126506014828688613600565b61265991613627565b60601c61266a602460148789613600565b6126739161365c565b60801c61268460346024888a613600565b61268d9161365c565b9194506001600160801b0316925060801c90509250925092565b8015610b90578251516001600160a01b0381163b156127125784604051631101335b60e11b81526004016105d4918152604060208201819052601f908201527f414131302073656e64657220616c726561647920636f6e737472756374656400606082015260800190565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663570e1a36865f01516040015186866040518463ffffffff1660e01b815260040161276992919061309d565b6020604051808303815f8887f1158015612785573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906127aa91906130b0565b90506001600160a01b03811661280c5785604051631101335b60e11b81526004016105d4918152604060208201819052601b908201527f4141313320696e6974436f6465206661696c6564206f72204f4f470000000000606082015260800190565b816001600160a01b0316816001600160a01b0316146128765785604051631101335b60e11b81526004016105d491815260406020808301829052908201527f4141313420696e6974436f6465206d7573742072657475726e2073656e646572606082015260800190565b806001600160a01b03163b5f036128d85785604051631101335b60e11b81526004016105d491815260406020808301829052908201527f4141313520696e6974436f6465206d757374206372656174652073656e646572606082015260800190565b5f6128e66014828688613600565b6128ef91613627565b60601c9050826001600160a01b031686602001517fd51a9c61267aa6196961883ecf5ff2da6619c37dac0fa92122513fb32c032d2d83895f015160e001516040516129509291906001600160a01b0392831681529116602082015260400190565b60405180910390a350505050505050565b604080516060810182525f80825260208201819052918101919091528160a081901c65ffffffffffff81165f0361299b575065ffffffffffff5b604080516060810182526001600160a01b03909316835260d09490941c602083015265ffffffffffff16928101929092525090565b6040518060a00160405280612a396040518061014001604052805f6001600160a01b031681526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f6001600160a01b031681526020015f81526020015f81525090565b81526020015f80191681526020015f81526020015f81526020015f81525090565b634e487b7160e01b5f52604160045260245ffd5b60405160a081016001600160401b0381118282101715612a9057612a90612a5a565b60405290565b60405161014081016001600160401b0381118282101715612a9057612a90612a5a565b604051601f8201601f191681016001600160401b0381118282101715612ae157612ae1612a5a565b604052919050565b5f6001600160401b03821115612b0157612b01612a5a565b50601f01601f191660200190565b6001600160a01b0381168114612b23575f80fd5b50565b8035612b3181612b0f565b919050565b5f8183036101c0811215612b48575f80fd5b612b50612a6e565b915061014080821215612b61575f80fd5b612b69612a96565b9150612b7484612b26565b82526020840135602083015260408401356040830152606084013560608301526080840135608083015260a084013560a083015260c084013560c0830152612bbe60e08501612b26565b60e0830152610100848101359083015261012080850135908301529082528201356020820152610160820135604082015261018082013560608201526101a0909101356080820152919050565b5f8083601f840112612c1b575f80fd5b5081356001600160401b03811115612c31575f80fd5b602083019150836020828501011115612c48575f80fd5b9250929050565b5f805f806102008587031215612c63575f80fd5b84356001600160401b0380821115612c79575f80fd5b818701915087601f830112612c8c575f80fd5b8135612c9f612c9a82612ae9565b612ab9565b818152896020838601011115612cb3575f80fd5b816020850160208301375f602083830101528097505050612cd78860208901612b36565b94506101e0870135915080821115612ced575f80fd5b50612cfa87828801612c0b565b95989497509550505050565b5f60208284031215612d16575f80fd5b81356001600160e01b031981168114612627575f80fd5b5f60208284031215612d3d575f80fd5b813563ffffffff81168114612627575f80fd5b80356001600160c01b0381168114612b31575f80fd5b5f60208284031215612d76575f80fd5b61262782612d50565b5f8060408385031215612d90575f80fd5b8235612d9b81612b0f565b9150612da960208401612d50565b90509250929050565b5f8060408385031215612dc3575f80fd5b8235612dce81612b0f565b946020939093013593505050565b5f60208284031215612dec575f80fd5b81356001600160401b03811115612e01575f80fd5b82016101208185031215612627575f80fd5b5f60208284031215612e23575f80fd5b813561262781612b0f565b5f8083601f840112612e3e575f80fd5b5081356001600160401b03811115612e54575f80fd5b6020830191508360208260051b8501011115612c48575f80fd5b5f805f60408486031215612e80575f80fd5b83356001600160401b03811115612e95575f80fd5b612ea186828701612e2e565b9094509250506020840135612eb581612b0f565b809150509250925092565b5f805f60408486031215612ed2575f80fd5b8335612edd81612b0f565b925060208401356001600160401b03811115612ef7575f80fd5b612f0386828701612c0b565b9497909650939450505050565b5f8060208385031215612f21575f80fd5b82356001600160401b03811115612f36575f80fd5b612f4285828601612c0b565b90969095509350505050565b634e487b7160e01b5f52601260045260245ffd5b5f5b83811015612f7c578181015183820152602001612f64565b50505f910152565b5f8151808452612f9b816020860160208601612f62565b601f01601f19169290920160200192915050565b828152604060208201525f611fa16040830184612f84565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561078357610783612fc7565b5f60018201612fff57612fff612fc7565b5060010190565b8181038181111561078357610783612fc7565b634e487b7160e01b5f52603260045260245ffd5b5f823561011e19833603018112613042575f80fd5b9190910192915050565b818382375f9101908152919050565b8215158152604060208201525f611fa16040830184612f84565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b602081525f611fa1602083018486613075565b5f602082840312156130c0575f80fd5b815161262781612b0f565b65ffffffffffff8181168382160190808211156130ea576130ea612fc7565b5092915050565b5f8235605e19833603018112613042575f80fd5b5f808335601e1984360301811261311a575f80fd5b8301803591506001600160401b03821115613133575f80fd5b6020019150600581901b3603821315612c48575f80fd5b5f808335601e1984360301811261315f575f80fd5b8301803591506001600160401b03821115613178575f80fd5b602001915036819003821315612c48575f80fd5b5f808335601e198436030181126131a1575f80fd5b83016020810192503590506001600160401b038111156131bf575f80fd5b803603821315612c48575f80fd5b5f6101206131eb846131de85612b26565b6001600160a01b03169052565b60208301356020850152613202604084018461318c565b8260408701526132158387018284613075565b92505050613226606084018461318c565b8583036060870152613239838284613075565b925050506080830135608085015260a083013560a085015260c083013560c085015261326860e084018461318c565b85830360e087015261327b838284613075565b9250505061010061328e8185018561318c565b868403838801526132a0848284613075565b979650505050505050565b604080825281018490525f6060600586901b8301810190830187835b8881101561330f57858403605f190183528135368b900361011e190181126132ed575f80fd5b6132f9858c83016131cd565b94505060209283019291909101906001016132c7565b50505082810360208401526132a0818587613075565b634e487b7160e01b5f52602160045260245ffd5b5f6003861061335657634e487b7160e01b5f52602160045260245ffd5b8582526080602083015261336d6080830186612f84565b6040830194909452506060015292915050565b602081525f6126276020830184612f84565b604081525f6133a460408301856131cd565b90508260208301529392505050565b805180516001600160a01b031683526020810151602084015260408101516040840152606081015160608401526080810151608084015260a081015160a084015260c081015160c084015260e081015161341860e08501826001600160a01b03169052565b5061010081810151908401526101209081015190830152602081015161014083015260408101516101608301526060810151610180830152608001516101a090910152565b5f61020080835261347081840187612f84565b905061347f60208401866133b3565b8281036101e08401526134928185612f84565b9695505050505050565b5f6102008083526134b08184018789613075565b90506134bf60208401866133b3565b8281036101e08401526132a08185612f84565b606081525f6134e460608301866131cd565b60208301949094525060400152919050565b5f60208284031215613506575f80fd5b5051919050565b82815260606020820152600d60608201526c10504c8cc81c995d995c9d1959609a1b608082015260a060408201525f611fa160a0830184612f84565b5f806040838503121561355a575f80fd5b82516001600160401b0381111561356f575f80fd5b8301601f8101851361357f575f80fd5b805161358d612c9a82612ae9565b8181528660208385010111156135a1575f80fd5b6135b2826020830160208601612f62565b60209590950151949694955050505050565b82815260606020820152600d60608201526c10504cccc81c995d995c9d1959609a1b608082015260a060408201525f611fa160a0830184612f84565b5f808585111561360e575f80fd5b8386111561361a575f80fd5b5050820193919092039150565b6bffffffffffffffffffffffff1981358181169160148510156136545780818660140360031b1b83161692505b505092915050565b6fffffffffffffffffffffffffffffffff1981358181169160108510156136545760109490940360031b84901b169092169291505056fea2646970667358221220397996f36f516bad9951ba1f23ade372bdd0ef7639623362f57652a7762031c164736f6c63430008170033608060405234801561000f575f80fd5b506101e28061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c8063570e1a361461002d575b5f80fd5b61004061003b3660046100e4565b61005c565b6040516001600160a01b03909116815260200160405180910390f35b5f8061006b6014828587610150565b61007491610177565b60601c90505f6100878460148188610150565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92018290525084519495509360209350849250905082850182875af190505f519350806100db575f93505b50505092915050565b5f80602083850312156100f5575f80fd5b823567ffffffffffffffff8082111561010c575f80fd5b818501915085601f83011261011f575f80fd5b81358181111561012d575f80fd5b86602082850101111561013e575f80fd5b60209290920196919550909350505050565b5f808585111561015e575f80fd5b8386111561016a575f80fd5b5050820193919092039150565b6bffffffffffffffffffffffff1981358181169160148510156101a45780818660140360031b1b83161692505b50509291505056fea264697066735822122078c1aaa9f040f8c523cf2b642dd06415593eec30d2e75021458af7e0c704e6fb64736f6c63430008170033",QR={};Q(QR,{abi:()=>eB,bytecode:()=>tB});var eB=[{type:"function",name:"executeUserOp",inputs:[{name:"userOp",type:"tuple",internalType:"struct PackedUserOperation",components:[{name:"sender",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"},{name:"initCode",type:"bytes",internalType:"bytes"},{name:"callData",type:"bytes",internalType:"bytes"},{name:"accountGasLimits",type:"bytes32",internalType:"bytes32"},{name:"preVerificationGas",type:"uint256",internalType:"uint256"},{name:"gasFees",type:"bytes32",internalType:"bytes32"},{name:"paymasterAndData",type:"bytes",internalType:"bytes"},{name:"signature",type:"bytes",internalType:"bytes"}]},{name:"userOpHash",type:"bytes32",internalType:"bytes32"}],outputs:[],stateMutability:"nonpayable"}],tB="0x",nB={};Q(nB,{abi:()=>aB,bytecode:()=>rB});var aB=[{type:"function",name:"onERC1155BatchReceived",inputs:[{name:"operator",type:"address",internalType:"address"},{name:"from",type:"address",internalType:"address"},{name:"ids",type:"uint256[]",internalType:"uint256[]"},{name:"values",type:"uint256[]",internalType:"uint256[]"},{name:"data",type:"bytes",internalType:"bytes"}],outputs:[{name:"",type:"bytes4",internalType:"bytes4"}],stateMutability:"nonpayable"},{type:"function",name:"onERC1155Received",inputs:[{name:"operator",type:"address",internalType:"address"},{name:"from",type:"address",internalType:"address"},{name:"id",type:"uint256",internalType:"uint256"},{name:"value",type:"uint256",internalType:"uint256"},{name:"data",type:"bytes",internalType:"bytes"}],outputs:[{name:"",type:"bytes4",internalType:"bytes4"}],stateMutability:"nonpayable"},{type:"function",name:"supportsInterface",inputs:[{name:"interfaceId",type:"bytes4",internalType:"bytes4"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"}],rB="0x",sB={};Q(sB,{abi:()=>iB,bytecode:()=>oB});var iB=[{type:"function",name:"balanceOf",inputs:[{name:"account",type:"address",internalType:"address"},{name:"id",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"balanceOfBatch",inputs:[{name:"accounts",type:"address[]",internalType:"address[]"},{name:"ids",type:"uint256[]",internalType:"uint256[]"}],outputs:[{name:"",type:"uint256[]",internalType:"uint256[]"}],stateMutability:"view"},{type:"function",name:"isApprovedForAll",inputs:[{name:"account",type:"address",internalType:"address"},{name:"operator",type:"address",internalType:"address"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"safeBatchTransferFrom",inputs:[{name:"from",type:"address",internalType:"address"},{name:"to",type:"address",internalType:"address"},{name:"ids",type:"uint256[]",internalType:"uint256[]"},{name:"values",type:"uint256[]",internalType:"uint256[]"},{name:"data",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"safeTransferFrom",inputs:[{name:"from",type:"address",internalType:"address"},{name:"to",type:"address",internalType:"address"},{name:"id",type:"uint256",internalType:"uint256"},{name:"value",type:"uint256",internalType:"uint256"},{name:"data",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setApprovalForAll",inputs:[{name:"operator",type:"address",internalType:"address"},{name:"approved",type:"bool",internalType:"bool"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"supportsInterface",inputs:[{name:"interfaceId",type:"bytes4",internalType:"bytes4"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"event",name:"ApprovalForAll",inputs:[{name:"account",type:"address",indexed:!0,internalType:"address"},{name:"operator",type:"address",indexed:!0,internalType:"address"},{name:"approved",type:"bool",indexed:!1,internalType:"bool"}],anonymous:!1},{type:"event",name:"TransferBatch",inputs:[{name:"operator",type:"address",indexed:!0,internalType:"address"},{name:"from",type:"address",indexed:!0,internalType:"address"},{name:"to",type:"address",indexed:!0,internalType:"address"},{name:"ids",type:"uint256[]",indexed:!1,internalType:"uint256[]"},{name:"values",type:"uint256[]",indexed:!1,internalType:"uint256[]"}],anonymous:!1},{type:"event",name:"TransferSingle",inputs:[{name:"operator",type:"address",indexed:!0,internalType:"address"},{name:"from",type:"address",indexed:!0,internalType:"address"},{name:"to",type:"address",indexed:!0,internalType:"address"},{name:"id",type:"uint256",indexed:!1,internalType:"uint256"},{name:"value",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"URI",inputs:[{name:"value",type:"string",indexed:!1,internalType:"string"},{name:"id",type:"uint256",indexed:!0,internalType:"uint256"}],anonymous:!1}],oB="0x",fB={};Q(fB,{abi:()=>bB,bytecode:()=>dB});var bB=[{type:"function",name:"afterAllHook",inputs:[{name:"_terms",type:"bytes",internalType:"bytes"},{name:"_args",type:"bytes",internalType:"bytes"},{name:"_mode",type:"bytes32",internalType:"ModeCode"},{name:"_executionCalldata",type:"bytes",internalType:"bytes"},{name:"_delegationHash",type:"bytes32",internalType:"bytes32"},{name:"_delegator",type:"address",internalType:"address"},{name:"_redeemer",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"afterHook",inputs:[{name:"_terms",type:"bytes",internalType:"bytes"},{name:"_args",type:"bytes",internalType:"bytes"},{name:"_mode",type:"bytes32",internalType:"ModeCode"},{name:"_executionCalldata",type:"bytes",internalType:"bytes"},{name:"_delegationHash",type:"bytes32",internalType:"bytes32"},{name:"_delegator",type:"address",internalType:"address"},{name:"_redeemer",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"beforeAllHook",inputs:[{name:"_terms",type:"bytes",internalType:"bytes"},{name:"_args",type:"bytes",internalType:"bytes"},{name:"_mode",type:"bytes32",internalType:"ModeCode"},{name:"_executionCalldata",type:"bytes",internalType:"bytes"},{name:"_delegationHash",type:"bytes32",internalType:"bytes32"},{name:"_delegator",type:"address",internalType:"address"},{name:"_redeemer",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"beforeHook",inputs:[{name:"_terms",type:"bytes",internalType:"bytes"},{name:"_args",type:"bytes",internalType:"bytes"},{name:"_mode",type:"bytes32",internalType:"ModeCode"},{name:"_executionCalldata",type:"bytes",internalType:"bytes"},{name:"_delegationHash",type:"bytes32",internalType:"bytes32"},{name:"_delegator",type:"address",internalType:"address"},{name:"_redeemer",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"}],dB="0x",cB={};Q(cB,{abi:()=>uB,bytecode:()=>yB});var uB=[{type:"function",name:"allowance",inputs:[{name:"owner",type:"address",internalType:"address"},{name:"spender",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"approve",inputs:[{name:"spender",type:"address",internalType:"address"},{name:"value",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"nonpayable"},{type:"function",name:"approveAndCall",inputs:[{name:"spender",type:"address",internalType:"address"},{name:"value",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"nonpayable"},{type:"function",name:"approveAndCall",inputs:[{name:"spender",type:"address",internalType:"address"},{name:"value",type:"uint256",internalType:"uint256"},{name:"data",type:"bytes",internalType:"bytes"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"nonpayable"},{type:"function",name:"balanceOf",inputs:[{name:"account",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"supportsInterface",inputs:[{name:"interfaceId",type:"bytes4",internalType:"bytes4"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"totalSupply",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"transfer",inputs:[{name:"to",type:"address",internalType:"address"},{name:"value",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"nonpayable"},{type:"function",name:"transferAndCall",inputs:[{name:"to",type:"address",internalType:"address"},{name:"value",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"nonpayable"},{type:"function",name:"transferAndCall",inputs:[{name:"to",type:"address",internalType:"address"},{name:"value",type:"uint256",internalType:"uint256"},{name:"data",type:"bytes",internalType:"bytes"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"nonpayable"},{type:"function",name:"transferFrom",inputs:[{name:"from",type:"address",internalType:"address"},{name:"to",type:"address",internalType:"address"},{name:"value",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"nonpayable"},{type:"function",name:"transferFromAndCall",inputs:[{name:"from",type:"address",internalType:"address"},{name:"to",type:"address",internalType:"address"},{name:"value",type:"uint256",internalType:"uint256"},{name:"data",type:"bytes",internalType:"bytes"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"nonpayable"},{type:"function",name:"transferFromAndCall",inputs:[{name:"from",type:"address",internalType:"address"},{name:"to",type:"address",internalType:"address"},{name:"value",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"nonpayable"},{type:"event",name:"Approval",inputs:[{name:"owner",type:"address",indexed:!0,internalType:"address"},{name:"spender",type:"address",indexed:!0,internalType:"address"},{name:"value",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"Transfer",inputs:[{name:"from",type:"address",indexed:!0,internalType:"address"},{name:"to",type:"address",indexed:!0,internalType:"address"},{name:"value",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1}],yB="0x",pB={};Q(pB,{abi:()=>lB,bytecode:()=>mB});var lB=[{type:"function",name:"owner",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"transferOwnership",inputs:[{name:"_newOwner",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"event",name:"OwnershipTransferred",inputs:[{name:"previousOwner",type:"address",indexed:!0,internalType:"address"},{name:"newOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1}],mB="0x",hB={};Q(hB,{abi:()=>gB,bytecode:()=>TB});var gB=[{type:"function",name:"supportsInterface",inputs:[{name:"interfaceId",type:"bytes4",internalType:"bytes4"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"}],TB="0x",wB={};Q(wB,{abi:()=>vB,bytecode:()=>xB});var vB=[{type:"function",name:"afterAllHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"afterHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"beforeAllHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"beforeHook",inputs:[{name:"_terms",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"_mode",type:"bytes32",internalType:"ModeCode"},{name:"_executionCallData",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"pure"},{type:"function",name:"getTermsInfo",inputs:[{name:"_terms",type:"bytes",internalType:"bytes"}],outputs:[{name:"executions_",type:"tuple[]",internalType:"struct Execution[]",components:[{name:"target",type:"address",internalType:"address"},{name:"value",type:"uint256",internalType:"uint256"},{name:"callData",type:"bytes",internalType:"bytes"}]}],stateMutability:"pure"}],xB="0x608060405234801561001057600080fd5b5061083a806100206000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c8063414c3e331461005c578063a145832a14610078578063b99deb0e1461008b578063d3eddcc51461005c578063ed4633671461005c575b600080fd5b61007661006a366004610417565b50505050505050505050565b005b610076610086366004610417565b6100b4565b61009e6100993660046104e4565b6102fd565b6040516100ab9190610526565b60405180910390f35b85600160f81b6001600160f81b03198216146101175760405162461bcd60e51b815260206004820181905260248201527f436176656174456e666f726365723a696e76616c69642d63616c6c2d7479706560448201526064015b60405180910390fd5b86600881901b6001600160f81b03198116156101835760405162461bcd60e51b815260206004820152602560248201527f436176656174456e666f726365723a696e76616c69642d657865637574696f6e6044820152642d7479706560d81b606482015260840161010e565b503660006101918989610319565b9150915060006101a18f8f6102fd565b8051909150821461020a5760405162461bcd60e51b815260206004820152602d60248201527f457861637443616c6c646174614261746368456e666f726365723a696e76616c60448201526c69642d62617463682d73697a6560981b606482015260840161010e565b60005b828110156102eb57838382818110610227576102276105e8565b905060200281019061023991906105fe565b61024790604081019061061e565b604051610255929190610665565b604051809103902082828151811061026f5761026f6105e8565b60200260200101516040015180519060200120146102e35760405162461bcd60e51b815260206004820152602b60248201527f457861637443616c6c646174614261746368456e666f726365723a696e76616c60448201526a69642d63616c6c6461746160a81b606482015260840161010e565b60010161020d565b50505050505050505050505050505050565b60606103098383610319565b610312916106e5565b9392505050565b366000833580850160208587010360208201945081359350808460051b8301118360401c17156103515763ba597e7e6000526004601cfd5b83156103a8578392505b6001830392508260051b850135915081850160408101358082018381358201118460408501111782861782351760401c171561039f5763ba597e7e6000526004601cfd5b5050508261035b575b5050509250929050565b60008083601f8401126103c457600080fd5b50813567ffffffffffffffff8111156103dc57600080fd5b6020830191508360208285010111156103f457600080fd5b9250929050565b80356001600160a01b038116811461041257600080fd5b919050565b60008060008060008060008060008060e08b8d03121561043657600080fd5b8a3567ffffffffffffffff8082111561044e57600080fd5b61045a8e838f016103b2565b909c509a5060208d013591508082111561047357600080fd5b61047f8e838f016103b2565b909a50985060408d0135975060608d013591508082111561049f57600080fd5b506104ac8d828e016103b2565b90965094505060808b013592506104c560a08c016103fb565b91506104d360c08c016103fb565b90509295989b9194979a5092959850565b600080602083850312156104f757600080fd5b823567ffffffffffffffff81111561050e57600080fd5b61051a858286016103b2565b90969095509350505050565b600060208083018184528085518083526040925060408601915060408160051b8701018488016000805b848110156105d957898403603f19018652825180516001600160a01b0316855288810151898601528701516060888601819052815190860181905283905b808210156105ac578282018b015187830160800152908a019061058e565b8681016080908101869052988b0198601f909101601f191690960190950194505091870191600101610550565b50919998505050505050505050565b634e487b7160e01b600052603260045260246000fd5b60008235605e1983360301811261061457600080fd5b9190910192915050565b6000808335601e1984360301811261063557600080fd5b83018035915067ffffffffffffffff82111561065057600080fd5b6020019150368190038213156103f457600080fd5b8183823760009101908152919050565b634e487b7160e01b600052604160045260246000fd5b6040516060810167ffffffffffffffff811182821017156106ae576106ae610675565b60405290565b604051601f8201601f1916810167ffffffffffffffff811182821017156106dd576106dd610675565b604052919050565b600067ffffffffffffffff8084111561070057610700610675565b8360051b60206107118183016106b4565b86815291850191818101903684111561072957600080fd5b865b848110156107f8578035868111156107435760008081fd5b880160603682900312156107575760008081fd5b61075f61068b565b610768826103fb565b81528582013586820152604080830135898111156107865760008081fd5b9290920191601f368185011261079c5760008081fd5b83358a8111156107ae576107ae610675565b6107bf818301601f19168a016106b4565b915080825236898287010111156107d65760008081fd5b808986018a84013760009082018901529082015284525091830191830161072b565b5097965050505050505056fea26469706673582212208d28ccd8e989ae016d34ead1b420bc19b8be9eaa747049c2602c587d0a44891264736f6c63430008170033",EB={};Q(EB,{abi:()=>AB,bytecode:()=>_B});var AB=[{type:"function",name:"isValidSignature",inputs:[{name:"hash",type:"bytes32",internalType:"bytes32"},{name:"signature",type:"bytes",internalType:"bytes"}],outputs:[{name:"magicValue",type:"bytes4",internalType:"bytes4"}],stateMutability:"view"}],_B="0x",SB={};Q(SB,{abi:()=>IB,bytecode:()=>CB});var IB=[{type:"function",name:"executeFromExecutor",inputs:[{name:"_mode",type:"bytes32",internalType:"ModeCode"},{name:"_executionCalldata",type:"bytes",internalType:"bytes"}],outputs:[{name:"returnData",type:"bytes[]",internalType:"bytes[]"}],stateMutability:"payable"},{type:"function",name:"isValidSignature",inputs:[{name:"hash",type:"bytes32",internalType:"bytes32"},{name:"signature",type:"bytes",internalType:"bytes"}],outputs:[{name:"magicValue",type:"bytes4",internalType:"bytes4"}],stateMutability:"view"}],CB="0x",PB={};Q(PB,{abi:()=>MB,bytecode:()=>$B});var MB=[{type:"function",name:"afterAllHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"afterHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"beforeAllHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"beforeHook",inputs:[{name:"_terms",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"_mode",type:"bytes32",internalType:"ModeCode"},{name:"_executionCallData",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"pure"},{type:"function",name:"getTermsInfo",inputs:[{name:"_terms",type:"bytes",internalType:"bytes"}],outputs:[{name:"executions_",type:"tuple[]",internalType:"struct Execution[]",components:[{name:"target",type:"address",internalType:"address"},{name:"value",type:"uint256",internalType:"uint256"},{name:"callData",type:"bytes",internalType:"bytes"}]}],stateMutability:"pure"}],$B="0x608060405234801561001057600080fd5b50610870806100206000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c8063414c3e331461005c578063a145832a14610078578063b99deb0e1461008b578063d3eddcc51461005c578063ed4633671461005c575b600080fd5b61007661006a3660046103e9565b50505050505050505050565b005b6100766100863660046103e9565b6100b4565b61009e6100993660046104b6565b6102cf565b6040516100ab91906104f8565b60405180910390f35b85600160f81b6001600160f81b03198216146101175760405162461bcd60e51b815260206004820181905260248201527f436176656174456e666f726365723a696e76616c69642d63616c6c2d7479706560448201526064015b60405180910390fd5b86600881901b6001600160f81b03198116156101835760405162461bcd60e51b815260206004820152602560248201527f436176656174456e666f726365723a696e76616c69642d657865637574696f6e6044820152642d7479706560d81b606482015260840161010e565b5036600061019189896102eb565b9150915060006101a18f8f6102cf565b8051909150821461020b5760405162461bcd60e51b815260206004820152602e60248201527f4578616374457865637574696f6e4261746368456e666f726365723a696e766160448201526d6c69642d62617463682d73697a6560901b606482015260840161010e565b8060405160200161021c91906104f8565b6040516020818303038152906040528051906020012083836040516020016102459291906105ba565b60405160208183030381529060405280519060200120146102be5760405162461bcd60e51b815260206004820152602d60248201527f4578616374457865637574696f6e4261746368456e666f726365723a696e766160448201526c3634b216b2bc32b1baba34b7b760991b606482015260840161010e565b505050505050505050505050505050565b60606102db83836102eb565b6102e49161071b565b9392505050565b366000833580850160208587010360208201945081359350808460051b8301118360401c17156103235763ba597e7e6000526004601cfd5b831561037a578392505b6001830392508260051b850135915081850160408101358082018381358201118460408501111782861782351760401c17156103715763ba597e7e6000526004601cfd5b5050508261032d575b5050509250929050565b60008083601f84011261039657600080fd5b50813567ffffffffffffffff8111156103ae57600080fd5b6020830191508360208285010111156103c657600080fd5b9250929050565b80356001600160a01b03811681146103e457600080fd5b919050565b60008060008060008060008060008060e08b8d03121561040857600080fd5b8a3567ffffffffffffffff8082111561042057600080fd5b61042c8e838f01610384565b909c509a5060208d013591508082111561044557600080fd5b6104518e838f01610384565b909a50985060408d0135975060608d013591508082111561047157600080fd5b5061047e8d828e01610384565b90965094505060808b0135925061049760a08c016103cd565b91506104a560c08c016103cd565b90509295989b9194979a5092959850565b600080602083850312156104c957600080fd5b823567ffffffffffffffff8111156104e057600080fd5b6104ec85828601610384565b90969095509350505050565b600060208083018184528085518083526040925060408601915060408160051b8701018488016000805b848110156105ab57898403603f19018652825180516001600160a01b0316855288810151898601528701516060888601819052815190860181905283905b8082101561057e578282018b015187830160800152908a0190610560565b8681016080908101869052988b0198601f909101601f191690960190950194505091870191600101610522565b50919998505050505050505050565b60208082528181018390526000906040808401600586901b8501820187855b8881101561069d57878303603f190184528135368b9003605e190181126105ff57600080fd5b8a0160606001600160a01b03610614836103cd565b168552878201358886015286820135601e1983360301811261063557600080fd5b90910187810191903567ffffffffffffffff81111561065357600080fd5b80360383131561066257600080fd5b8188870152808287015260809150808383880137600086820183015295880195601f01601f19169094019093019250908501906001016105d9565b509098975050505050505050565b634e487b7160e01b600052604160045260246000fd5b6040516060810167ffffffffffffffff811182821017156106e4576106e46106ab565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715610713576107136106ab565b604052919050565b600067ffffffffffffffff80841115610736576107366106ab565b8360051b60206107478183016106ea565b86815291850191818101903684111561075f57600080fd5b865b8481101561082e578035868111156107795760008081fd5b8801606036829003121561078d5760008081fd5b6107956106c1565b61079e826103cd565b81528582013586820152604080830135898111156107bc5760008081fd5b9290920191601f36818501126107d25760008081fd5b83358a8111156107e4576107e46106ab565b6107f5818301601f19168a016106ea565b9150808252368982870101111561080c5760008081fd5b808986018a840137600090820189015290820152845250918301918301610761565b5097965050505050505056fea26469706673582212205e0b91ba43666d3d9ebd5eb11438023697fc7df67dea03687ac126f13d8d464564736f6c63430008170033",OB={};Q(OB,{abi:()=>RB,bytecode:()=>BB});var RB=[{type:"event",name:"TryExecuteUnsuccessful",inputs:[{name:"batchExecutionindex",type:"uint256",indexed:!1,internalType:"uint256"},{name:"result",type:"bytes",indexed:!1,internalType:"bytes"}],anonymous:!1},{type:"error",name:"ExecutionFailed",inputs:[]}],BB="0x6080604052348015600f57600080fd5b50603f80601d6000396000f3fe6080604052600080fdfea264697066735822122070e8319b78da08f58cb6bf69f50e33c8c919ae6c2113f3ef3b34f1da6bf44c5f64736f6c63430008170033",NB={};Q(NB,{abi:()=>DB,bytecode:()=>kB});var DB=[{type:"function",name:"eip712Domain",inputs:[],outputs:[{name:"fields",type:"bytes1",internalType:"bytes1"},{name:"name",type:"string",internalType:"string"},{name:"version",type:"string",internalType:"string"},{name:"chainId",type:"uint256",internalType:"uint256"},{name:"verifyingContract",type:"address",internalType:"address"},{name:"salt",type:"bytes32",internalType:"bytes32"},{name:"extensions",type:"uint256[]",internalType:"uint256[]"}],stateMutability:"view"},{type:"event",name:"EIP712DomainChanged",inputs:[],anonymous:!1}],kB="0x",LB={};Q(LB,{abi:()=>FB,bytecode:()=>UB});var FB=[{type:"function",name:"allowance",inputs:[{name:"owner",type:"address",internalType:"address"},{name:"spender",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"approve",inputs:[{name:"spender",type:"address",internalType:"address"},{name:"value",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"nonpayable"},{type:"function",name:"balanceOf",inputs:[{name:"account",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"totalSupply",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"transfer",inputs:[{name:"to",type:"address",internalType:"address"},{name:"value",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"nonpayable"},{type:"function",name:"transferFrom",inputs:[{name:"from",type:"address",internalType:"address"},{name:"to",type:"address",internalType:"address"},{name:"value",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"nonpayable"},{type:"event",name:"Approval",inputs:[{name:"owner",type:"address",indexed:!0,internalType:"address"},{name:"spender",type:"address",indexed:!0,internalType:"address"},{name:"value",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"Transfer",inputs:[{name:"from",type:"address",indexed:!0,internalType:"address"},{name:"to",type:"address",indexed:!0,internalType:"address"},{name:"value",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1}],UB="0x",HB={};Q(HB,{abi:()=>GB,bytecode:()=>zB});var GB=[{type:"function",name:"approve",inputs:[{name:"to",type:"address",internalType:"address"},{name:"tokenId",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"balanceOf",inputs:[{name:"owner",type:"address",internalType:"address"}],outputs:[{name:"balance",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getApproved",inputs:[{name:"tokenId",type:"uint256",internalType:"uint256"}],outputs:[{name:"operator",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"isApprovedForAll",inputs:[{name:"owner",type:"address",internalType:"address"},{name:"operator",type:"address",internalType:"address"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"ownerOf",inputs:[{name:"tokenId",type:"uint256",internalType:"uint256"}],outputs:[{name:"owner",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"safeTransferFrom",inputs:[{name:"from",type:"address",internalType:"address"},{name:"to",type:"address",internalType:"address"},{name:"tokenId",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"safeTransferFrom",inputs:[{name:"from",type:"address",internalType:"address"},{name:"to",type:"address",internalType:"address"},{name:"tokenId",type:"uint256",internalType:"uint256"},{name:"data",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setApprovalForAll",inputs:[{name:"operator",type:"address",internalType:"address"},{name:"approved",type:"bool",internalType:"bool"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"supportsInterface",inputs:[{name:"interfaceId",type:"bytes4",internalType:"bytes4"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"transferFrom",inputs:[{name:"from",type:"address",internalType:"address"},{name:"to",type:"address",internalType:"address"},{name:"tokenId",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"event",name:"Approval",inputs:[{name:"owner",type:"address",indexed:!0,internalType:"address"},{name:"approved",type:"address",indexed:!0,internalType:"address"},{name:"tokenId",type:"uint256",indexed:!0,internalType:"uint256"}],anonymous:!1},{type:"event",name:"ApprovalForAll",inputs:[{name:"owner",type:"address",indexed:!0,internalType:"address"},{name:"operator",type:"address",indexed:!0,internalType:"address"},{name:"approved",type:"bool",indexed:!1,internalType:"bool"}],anonymous:!1},{type:"event",name:"Transfer",inputs:[{name:"from",type:"address",indexed:!0,internalType:"address"},{name:"to",type:"address",indexed:!0,internalType:"address"},{name:"tokenId",type:"uint256",indexed:!0,internalType:"uint256"}],anonymous:!1}],zB="0x",jB={};Q(jB,{abi:()=>VB,bytecode:()=>qB});var VB=[{type:"function",name:"accountId",inputs:[],outputs:[{name:"accountImplementationId",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"execute",inputs:[{name:"mode",type:"bytes32",internalType:"ModeCode"},{name:"executionCalldata",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"payable"},{type:"function",name:"executeFromExecutor",inputs:[{name:"mode",type:"bytes32",internalType:"ModeCode"},{name:"executionCalldata",type:"bytes",internalType:"bytes"}],outputs:[{name:"returnData",type:"bytes[]",internalType:"bytes[]"}],stateMutability:"payable"},{type:"function",name:"installModule",inputs:[{name:"moduleTypeId",type:"uint256",internalType:"uint256"},{name:"module",type:"address",internalType:"address"},{name:"initData",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"payable"},{type:"function",name:"isModuleInstalled",inputs:[{name:"moduleTypeId",type:"uint256",internalType:"uint256"},{name:"module",type:"address",internalType:"address"},{name:"additionalContext",type:"bytes",internalType:"bytes"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"isValidSignature",inputs:[{name:"hash",type:"bytes32",internalType:"bytes32"},{name:"data",type:"bytes",internalType:"bytes"}],outputs:[{name:"",type:"bytes4",internalType:"bytes4"}],stateMutability:"view"},{type:"function",name:"supportsExecutionMode",inputs:[{name:"encodedMode",type:"bytes32",internalType:"ModeCode"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"supportsModule",inputs:[{name:"moduleTypeId",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"uninstallModule",inputs:[{name:"moduleTypeId",type:"uint256",internalType:"uint256"},{name:"module",type:"address",internalType:"address"},{name:"deInitData",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"payable"},{type:"event",name:"ModuleInstalled",inputs:[{name:"moduleTypeId",type:"uint256",indexed:!1,internalType:"uint256"},{name:"module",type:"address",indexed:!1,internalType:"address"}],anonymous:!1},{type:"event",name:"ModuleUninstalled",inputs:[{name:"moduleTypeId",type:"uint256",indexed:!1,internalType:"uint256"},{name:"module",type:"address",indexed:!1,internalType:"address"}],anonymous:!1}],qB="0x",WB={};Q(WB,{abi:()=>ZB,bytecode:()=>YB});var ZB=[{type:"function",name:"postOp",inputs:[{name:"mode",type:"uint8",internalType:"enum IPaymaster.PostOpMode"},{name:"context",type:"bytes",internalType:"bytes"},{name:"actualGasCost",type:"uint256",internalType:"uint256"},{name:"actualUserOpFeePerGas",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"validatePaymasterUserOp",inputs:[{name:"userOp",type:"tuple",internalType:"struct PackedUserOperation",components:[{name:"sender",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"},{name:"initCode",type:"bytes",internalType:"bytes"},{name:"callData",type:"bytes",internalType:"bytes"},{name:"accountGasLimits",type:"bytes32",internalType:"bytes32"},{name:"preVerificationGas",type:"uint256",internalType:"uint256"},{name:"gasFees",type:"bytes32",internalType:"bytes32"},{name:"paymasterAndData",type:"bytes",internalType:"bytes"},{name:"signature",type:"bytes",internalType:"bytes"}]},{name:"userOpHash",type:"bytes32",internalType:"bytes32"},{name:"maxCost",type:"uint256",internalType:"uint256"}],outputs:[{name:"context",type:"bytes",internalType:"bytes"},{name:"validationData",type:"uint256",internalType:"uint256"}],stateMutability:"nonpayable"}],YB="0x",KB={};Q(KB,{abi:()=>XB,bytecode:()=>JB});var XB=[{type:"function",name:"addStake",inputs:[{name:"_unstakeDelaySec",type:"uint32",internalType:"uint32"}],outputs:[],stateMutability:"payable"},{type:"function",name:"balanceOf",inputs:[{name:"account",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"depositTo",inputs:[{name:"account",type:"address",internalType:"address"}],outputs:[],stateMutability:"payable"},{type:"function",name:"getDepositInfo",inputs:[{name:"account",type:"address",internalType:"address"}],outputs:[{name:"info",type:"tuple",internalType:"struct IStakeManager.DepositInfo",components:[{name:"deposit",type:"uint256",internalType:"uint256"},{name:"staked",type:"bool",internalType:"bool"},{name:"stake",type:"uint112",internalType:"uint112"},{name:"unstakeDelaySec",type:"uint32",internalType:"uint32"},{name:"withdrawTime",type:"uint48",internalType:"uint48"}]}],stateMutability:"view"},{type:"function",name:"unlockStake",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"withdrawStake",inputs:[{name:"withdrawAddress",type:"address",internalType:"address payable"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"withdrawTo",inputs:[{name:"withdrawAddress",type:"address",internalType:"address payable"},{name:"withdrawAmount",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"event",name:"Deposited",inputs:[{name:"account",type:"address",indexed:!0,internalType:"address"},{name:"totalDeposit",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"StakeLocked",inputs:[{name:"account",type:"address",indexed:!0,internalType:"address"},{name:"totalStaked",type:"uint256",indexed:!1,internalType:"uint256"},{name:"unstakeDelaySec",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"StakeUnlocked",inputs:[{name:"account",type:"address",indexed:!0,internalType:"address"},{name:"withdrawTime",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"StakeWithdrawn",inputs:[{name:"account",type:"address",indexed:!0,internalType:"address"},{name:"withdrawAddress",type:"address",indexed:!1,internalType:"address"},{name:"amount",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"Withdrawn",inputs:[{name:"account",type:"address",indexed:!0,internalType:"address"},{name:"withdrawAddress",type:"address",indexed:!1,internalType:"address"},{name:"amount",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1}],JB="0x",QB={};Q(QB,{abi:()=>eN,bytecode:()=>tN});var eN=[{type:"function",name:"addStake",inputs:[{name:"_unstakeDelaySec",type:"uint32",internalType:"uint32"}],outputs:[],stateMutability:"payable"},{type:"function",name:"balanceOf",inputs:[{name:"account",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"delegateAndRevert",inputs:[{name:"target",type:"address",internalType:"address"},{name:"data",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"depositTo",inputs:[{name:"account",type:"address",internalType:"address"}],outputs:[],stateMutability:"payable"},{type:"function",name:"getDepositInfo",inputs:[{name:"account",type:"address",internalType:"address"}],outputs:[{name:"info",type:"tuple",internalType:"struct IStakeManager.DepositInfo",components:[{name:"deposit",type:"uint256",internalType:"uint256"},{name:"staked",type:"bool",internalType:"bool"},{name:"stake",type:"uint112",internalType:"uint112"},{name:"unstakeDelaySec",type:"uint32",internalType:"uint32"},{name:"withdrawTime",type:"uint48",internalType:"uint48"}]}],stateMutability:"view"},{type:"function",name:"getNonce",inputs:[{name:"sender",type:"address",internalType:"address"},{name:"key",type:"uint192",internalType:"uint192"}],outputs:[{name:"nonce",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getSenderAddress",inputs:[{name:"initCode",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"getUserOpHash",inputs:[{name:"userOp",type:"tuple",internalType:"struct PackedUserOperation",components:[{name:"sender",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"},{name:"initCode",type:"bytes",internalType:"bytes"},{name:"callData",type:"bytes",internalType:"bytes"},{name:"accountGasLimits",type:"bytes32",internalType:"bytes32"},{name:"preVerificationGas",type:"uint256",internalType:"uint256"},{name:"gasFees",type:"bytes32",internalType:"bytes32"},{name:"paymasterAndData",type:"bytes",internalType:"bytes"},{name:"signature",type:"bytes",internalType:"bytes"}]}],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"handleAggregatedOps",inputs:[{name:"opsPerAggregator",type:"tuple[]",internalType:"struct IEntryPoint.UserOpsPerAggregator[]",components:[{name:"userOps",type:"tuple[]",internalType:"struct PackedUserOperation[]",components:[{name:"sender",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"},{name:"initCode",type:"bytes",internalType:"bytes"},{name:"callData",type:"bytes",internalType:"bytes"},{name:"accountGasLimits",type:"bytes32",internalType:"bytes32"},{name:"preVerificationGas",type:"uint256",internalType:"uint256"},{name:"gasFees",type:"bytes32",internalType:"bytes32"},{name:"paymasterAndData",type:"bytes",internalType:"bytes"},{name:"signature",type:"bytes",internalType:"bytes"}]},{name:"aggregator",type:"address",internalType:"contract IAggregator"},{name:"signature",type:"bytes",internalType:"bytes"}]},{name:"beneficiary",type:"address",internalType:"address payable"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"handleOps",inputs:[{name:"ops",type:"tuple[]",internalType:"struct PackedUserOperation[]",components:[{name:"sender",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"},{name:"initCode",type:"bytes",internalType:"bytes"},{name:"callData",type:"bytes",internalType:"bytes"},{name:"accountGasLimits",type:"bytes32",internalType:"bytes32"},{name:"preVerificationGas",type:"uint256",internalType:"uint256"},{name:"gasFees",type:"bytes32",internalType:"bytes32"},{name:"paymasterAndData",type:"bytes",internalType:"bytes"},{name:"signature",type:"bytes",internalType:"bytes"}]},{name:"beneficiary",type:"address",internalType:"address payable"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"incrementNonce",inputs:[{name:"key",type:"uint192",internalType:"uint192"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"unlockStake",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"withdrawStake",inputs:[{name:"withdrawAddress",type:"address",internalType:"address payable"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"withdrawTo",inputs:[{name:"withdrawAddress",type:"address",internalType:"address payable"},{name:"withdrawAmount",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"event",name:"AccountDeployed",inputs:[{name:"userOpHash",type:"bytes32",indexed:!0,internalType:"bytes32"},{name:"sender",type:"address",indexed:!0,internalType:"address"},{name:"factory",type:"address",indexed:!1,internalType:"address"},{name:"paymaster",type:"address",indexed:!1,internalType:"address"}],anonymous:!1},{type:"event",name:"BeforeExecution",inputs:[],anonymous:!1},{type:"event",name:"Deposited",inputs:[{name:"account",type:"address",indexed:!0,internalType:"address"},{name:"totalDeposit",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"PostOpRevertReason",inputs:[{name:"userOpHash",type:"bytes32",indexed:!0,internalType:"bytes32"},{name:"sender",type:"address",indexed:!0,internalType:"address"},{name:"nonce",type:"uint256",indexed:!1,internalType:"uint256"},{name:"revertReason",type:"bytes",indexed:!1,internalType:"bytes"}],anonymous:!1},{type:"event",name:"SignatureAggregatorChanged",inputs:[{name:"aggregator",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"StakeLocked",inputs:[{name:"account",type:"address",indexed:!0,internalType:"address"},{name:"totalStaked",type:"uint256",indexed:!1,internalType:"uint256"},{name:"unstakeDelaySec",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"StakeUnlocked",inputs:[{name:"account",type:"address",indexed:!0,internalType:"address"},{name:"withdrawTime",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"StakeWithdrawn",inputs:[{name:"account",type:"address",indexed:!0,internalType:"address"},{name:"withdrawAddress",type:"address",indexed:!1,internalType:"address"},{name:"amount",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"UserOperationEvent",inputs:[{name:"userOpHash",type:"bytes32",indexed:!0,internalType:"bytes32"},{name:"sender",type:"address",indexed:!0,internalType:"address"},{name:"paymaster",type:"address",indexed:!0,internalType:"address"},{name:"nonce",type:"uint256",indexed:!1,internalType:"uint256"},{name:"success",type:"bool",indexed:!1,internalType:"bool"},{name:"actualGasCost",type:"uint256",indexed:!1,internalType:"uint256"},{name:"actualGasUsed",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"UserOperationPrefundTooLow",inputs:[{name:"userOpHash",type:"bytes32",indexed:!0,internalType:"bytes32"},{name:"sender",type:"address",indexed:!0,internalType:"address"},{name:"nonce",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"UserOperationRevertReason",inputs:[{name:"userOpHash",type:"bytes32",indexed:!0,internalType:"bytes32"},{name:"sender",type:"address",indexed:!0,internalType:"address"},{name:"nonce",type:"uint256",indexed:!1,internalType:"uint256"},{name:"revertReason",type:"bytes",indexed:!1,internalType:"bytes"}],anonymous:!1},{type:"event",name:"Withdrawn",inputs:[{name:"account",type:"address",indexed:!0,internalType:"address"},{name:"withdrawAddress",type:"address",indexed:!1,internalType:"address"},{name:"amount",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"error",name:"DelegateAndRevert",inputs:[{name:"success",type:"bool",internalType:"bool"},{name:"ret",type:"bytes",internalType:"bytes"}]},{type:"error",name:"FailedOp",inputs:[{name:"opIndex",type:"uint256",internalType:"uint256"},{name:"reason",type:"string",internalType:"string"}]},{type:"error",name:"FailedOpWithRevert",inputs:[{name:"opIndex",type:"uint256",internalType:"uint256"},{name:"reason",type:"string",internalType:"string"},{name:"inner",type:"bytes",internalType:"bytes"}]},{type:"error",name:"PostOpReverted",inputs:[{name:"returnData",type:"bytes",internalType:"bytes"}]},{type:"error",name:"SenderAddressResult",inputs:[{name:"sender",type:"address",internalType:"address"}]},{type:"error",name:"SignatureValidationFailed",inputs:[{name:"aggregator",type:"address",internalType:"address"}]}],tN="0x",nN={};Q(nN,{abi:()=>aN,bytecode:()=>rN});var aN=[{type:"function",name:"adapters",inputs:[{name:"id",type:"string",internalType:"string"}],outputs:[{name:"",type:"tuple",internalType:"struct IMetaSwap.Adapter",components:[{name:"addr",type:"address",internalType:"address"},{name:"selector",type:"bytes4",internalType:"bytes4"},{name:"data",type:"bytes",internalType:"bytes"}]}],stateMutability:"view"},{type:"function",name:"removeAdapter",inputs:[{name:"aggregatorId",type:"string",internalType:"string"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setAdapter",inputs:[{name:"aggregatorId",type:"string",internalType:"string"},{name:"addr",type:"address",internalType:"address"},{name:"selector",type:"bytes4",internalType:"bytes4"},{name:"data",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"swap",inputs:[{name:"aggregatorId",type:"string",internalType:"string"},{name:"tokenFrom",type:"address",internalType:"contract IERC20"},{name:"amount",type:"uint256",internalType:"uint256"},{name:"data",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"payable"}],rN="0x",Be={};Q(Be,{abi:()=>sN,bytecode:()=>iN});var sN=[{type:"constructor",inputs:[{name:"_delegationManager",type:"address",internalType:"contract IDelegationManager"},{name:"_entryPoint",type:"address",internalType:"contract IEntryPoint"}],stateMutability:"nonpayable"},{type:"receive",stateMutability:"payable"},{type:"function",name:"DOMAIN_VERSION",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"NAME",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"PACKED_USER_OP_TYPEHASH",inputs:[],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"UPGRADE_INTERFACE_VERSION",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"VERSION",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"addDeposit",inputs:[],outputs:[],stateMutability:"payable"},{type:"function",name:"addKey",inputs:[{name:"_keyId",type:"string",internalType:"string"},{name:"_x",type:"uint256",internalType:"uint256"},{name:"_y",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"delegationManager",inputs:[],outputs:[{name:"",type:"address",internalType:"contract IDelegationManager"}],stateMutability:"view"},{type:"function",name:"disableDelegation",inputs:[{name:"_delegation",type:"tuple",internalType:"struct Delegation",components:[{name:"delegate",type:"address",internalType:"address"},{name:"delegator",type:"address",internalType:"address"},{name:"authority",type:"bytes32",internalType:"bytes32"},{name:"caveats",type:"tuple[]",internalType:"struct Caveat[]",components:[{name:"enforcer",type:"address",internalType:"address"},{name:"terms",type:"bytes",internalType:"bytes"},{name:"args",type:"bytes",internalType:"bytes"}]},{name:"salt",type:"uint256",internalType:"uint256"},{name:"signature",type:"bytes",internalType:"bytes"}]}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"eip712Domain",inputs:[],outputs:[{name:"fields",type:"bytes1",internalType:"bytes1"},{name:"name",type:"string",internalType:"string"},{name:"version",type:"string",internalType:"string"},{name:"chainId",type:"uint256",internalType:"uint256"},{name:"verifyingContract",type:"address",internalType:"address"},{name:"salt",type:"bytes32",internalType:"bytes32"},{name:"extensions",type:"uint256[]",internalType:"uint256[]"}],stateMutability:"view"},{type:"function",name:"enableDelegation",inputs:[{name:"_delegation",type:"tuple",internalType:"struct Delegation",components:[{name:"delegate",type:"address",internalType:"address"},{name:"delegator",type:"address",internalType:"address"},{name:"authority",type:"bytes32",internalType:"bytes32"},{name:"caveats",type:"tuple[]",internalType:"struct Caveat[]",components:[{name:"enforcer",type:"address",internalType:"address"},{name:"terms",type:"bytes",internalType:"bytes"},{name:"args",type:"bytes",internalType:"bytes"}]},{name:"salt",type:"uint256",internalType:"uint256"},{name:"signature",type:"bytes",internalType:"bytes"}]}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"entryPoint",inputs:[],outputs:[{name:"",type:"address",internalType:"contract IEntryPoint"}],stateMutability:"view"},{type:"function",name:"execute",inputs:[{name:"_execution",type:"tuple",internalType:"struct Execution",components:[{name:"target",type:"address",internalType:"address"},{name:"value",type:"uint256",internalType:"uint256"},{name:"callData",type:"bytes",internalType:"bytes"}]}],outputs:[],stateMutability:"payable"},{type:"function",name:"execute",inputs:[{name:"_mode",type:"bytes32",internalType:"ModeCode"},{name:"_executionCalldata",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"payable"},{type:"function",name:"executeFromExecutor",inputs:[{name:"_mode",type:"bytes32",internalType:"ModeCode"},{name:"_executionCalldata",type:"bytes",internalType:"bytes"}],outputs:[{name:"returnData_",type:"bytes[]",internalType:"bytes[]"}],stateMutability:"payable"},{type:"function",name:"getDeposit",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getDomainHash",inputs:[],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"getImplementation",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"getInitializedVersion",inputs:[],outputs:[{name:"",type:"uint64",internalType:"uint64"}],stateMutability:"view"},{type:"function",name:"getKey",inputs:[{name:"_keyId",type:"string",internalType:"string"}],outputs:[{name:"x_",type:"uint256",internalType:"uint256"},{name:"y_",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getKeyIdHashes",inputs:[],outputs:[{name:"",type:"bytes32[]",internalType:"bytes32[]"}],stateMutability:"view"},{type:"function",name:"getKeyIdHashesCount",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getNonce",inputs:[{name:"_key",type:"uint192",internalType:"uint192"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getNonce",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getPackedUserOperationHash",inputs:[{name:"_userOp",type:"tuple",internalType:"struct PackedUserOperation",components:[{name:"sender",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"},{name:"initCode",type:"bytes",internalType:"bytes"},{name:"callData",type:"bytes",internalType:"bytes"},{name:"accountGasLimits",type:"bytes32",internalType:"bytes32"},{name:"preVerificationGas",type:"uint256",internalType:"uint256"},{name:"gasFees",type:"bytes32",internalType:"bytes32"},{name:"paymasterAndData",type:"bytes",internalType:"bytes"},{name:"signature",type:"bytes",internalType:"bytes"}]}],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"getPackedUserOperationTypedDataHash",inputs:[{name:"_userOp",type:"tuple",internalType:"struct PackedUserOperation",components:[{name:"sender",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"},{name:"initCode",type:"bytes",internalType:"bytes"},{name:"callData",type:"bytes",internalType:"bytes"},{name:"accountGasLimits",type:"bytes32",internalType:"bytes32"},{name:"preVerificationGas",type:"uint256",internalType:"uint256"},{name:"gasFees",type:"bytes32",internalType:"bytes32"},{name:"paymasterAndData",type:"bytes",internalType:"bytes"},{name:"signature",type:"bytes",internalType:"bytes"}]}],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"initialize",inputs:[{name:"_owner",type:"address",internalType:"address"},{name:"_keyIds",type:"string[]",internalType:"string[]"},{name:"_xValues",type:"uint256[]",internalType:"uint256[]"},{name:"_yValues",type:"uint256[]",internalType:"uint256[]"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"isDelegationDisabled",inputs:[{name:"_delegationHash",type:"bytes32",internalType:"bytes32"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"isValidSignature",inputs:[{name:"_hash",type:"bytes32",internalType:"bytes32"},{name:"_signature",type:"bytes",internalType:"bytes"}],outputs:[{name:"magicValue_",type:"bytes4",internalType:"bytes4"}],stateMutability:"view"},{type:"function",name:"onERC1155BatchReceived",inputs:[{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"},{name:"",type:"uint256[]",internalType:"uint256[]"},{name:"",type:"uint256[]",internalType:"uint256[]"},{name:"",type:"bytes",internalType:"bytes"}],outputs:[{name:"",type:"bytes4",internalType:"bytes4"}],stateMutability:"view"},{type:"function",name:"onERC1155Received",inputs:[{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"},{name:"",type:"uint256",internalType:"uint256"},{name:"",type:"uint256",internalType:"uint256"},{name:"",type:"bytes",internalType:"bytes"}],outputs:[{name:"",type:"bytes4",internalType:"bytes4"}],stateMutability:"view"},{type:"function",name:"onERC721Received",inputs:[{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"},{name:"",type:"uint256",internalType:"uint256"},{name:"",type:"bytes",internalType:"bytes"}],outputs:[{name:"",type:"bytes4",internalType:"bytes4"}],stateMutability:"view"},{type:"function",name:"owner",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"proxiableUUID",inputs:[],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"redeemDelegations",inputs:[{name:"_permissionContexts",type:"bytes[]",internalType:"bytes[]"},{name:"_modes",type:"bytes32[]",internalType:"ModeCode[]"},{name:"_executionCallDatas",type:"bytes[]",internalType:"bytes[]"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"reinitialize",inputs:[{name:"_version",type:"uint8",internalType:"uint8"},{name:"_owner",type:"address",internalType:"address"},{name:"_keyIds",type:"string[]",internalType:"string[]"},{name:"_xValues",type:"uint256[]",internalType:"uint256[]"},{name:"_yValues",type:"uint256[]",internalType:"uint256[]"},{name:"_deleteP256Keys",type:"bool",internalType:"bool"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"removeKey",inputs:[{name:"_keyId",type:"string",internalType:"string"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"renounceOwnership",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"supportsInterface",inputs:[{name:"_interfaceId",type:"bytes4",internalType:"bytes4"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"transferOwnership",inputs:[{name:"_newOwner",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"updateSigners",inputs:[{name:"_owner",type:"address",internalType:"address"},{name:"_keyIds",type:"string[]",internalType:"string[]"},{name:"_xValues",type:"uint256[]",internalType:"uint256[]"},{name:"_yValues",type:"uint256[]",internalType:"uint256[]"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"upgradeToAndCall",inputs:[{name:"_newImplementation",type:"address",internalType:"address"},{name:"_data",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"payable"},{type:"function",name:"upgradeToAndCallAndRetainStorage",inputs:[{name:"_newImplementation",type:"address",internalType:"address"},{name:"_data",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"payable"},{type:"function",name:"validateUserOp",inputs:[{name:"_userOp",type:"tuple",internalType:"struct PackedUserOperation",components:[{name:"sender",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"},{name:"initCode",type:"bytes",internalType:"bytes"},{name:"callData",type:"bytes",internalType:"bytes"},{name:"accountGasLimits",type:"bytes32",internalType:"bytes32"},{name:"preVerificationGas",type:"uint256",internalType:"uint256"},{name:"gasFees",type:"bytes32",internalType:"bytes32"},{name:"paymasterAndData",type:"bytes",internalType:"bytes"},{name:"signature",type:"bytes",internalType:"bytes"}]},{name:"",type:"bytes32",internalType:"bytes32"},{name:"_missingAccountFunds",type:"uint256",internalType:"uint256"}],outputs:[{name:"validationData_",type:"uint256",internalType:"uint256"}],stateMutability:"nonpayable"},{type:"function",name:"withdrawDeposit",inputs:[{name:"_withdrawAddress",type:"address",internalType:"address payable"},{name:"_withdrawAmount",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"event",name:"AddedP256Key",inputs:[{name:"keyIdHash",type:"bytes32",indexed:!0,internalType:"bytes32"},{name:"keyId",type:"string",indexed:!1,internalType:"string"},{name:"x",type:"uint256",indexed:!1,internalType:"uint256"},{name:"y",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"ClearedStorage",inputs:[],anonymous:!1},{type:"event",name:"EIP712DomainChanged",inputs:[],anonymous:!1},{type:"event",name:"Initialized",inputs:[{name:"version",type:"uint64",indexed:!1,internalType:"uint64"}],anonymous:!1},{type:"event",name:"OwnershipTransferred",inputs:[{name:"previousOwner",type:"address",indexed:!0,internalType:"address"},{name:"newOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"RemovedP256Key",inputs:[{name:"keyIdHash",type:"bytes32",indexed:!0,internalType:"bytes32"},{name:"x",type:"uint256",indexed:!1,internalType:"uint256"},{name:"y",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"SentPrefund",inputs:[{name:"sender",type:"address",indexed:!0,internalType:"address"},{name:"amount",type:"uint256",indexed:!1,internalType:"uint256"},{name:"success",type:"bool",indexed:!1,internalType:"bool"}],anonymous:!1},{type:"event",name:"SetDelegationManager",inputs:[{name:"newDelegationManager",type:"address",indexed:!0,internalType:"contract IDelegationManager"}],anonymous:!1},{type:"event",name:"SetEntryPoint",inputs:[{name:"entryPoint",type:"address",indexed:!0,internalType:"contract IEntryPoint"}],anonymous:!1},{type:"event",name:"TryExecuteUnsuccessful",inputs:[{name:"batchExecutionindex",type:"uint256",indexed:!1,internalType:"uint256"},{name:"result",type:"bytes",indexed:!1,internalType:"bytes"}],anonymous:!1},{type:"event",name:"Upgraded",inputs:[{name:"implementation",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"error",name:"AddressEmptyCode",inputs:[{name:"target",type:"address",internalType:"address"}]},{type:"error",name:"CannotRemoveLastSigner",inputs:[]},{type:"error",name:"ECDSAInvalidSignature",inputs:[]},{type:"error",name:"ECDSAInvalidSignatureLength",inputs:[{name:"length",type:"uint256",internalType:"uint256"}]},{type:"error",name:"ECDSAInvalidSignatureS",inputs:[{name:"s",type:"bytes32",internalType:"bytes32"}]},{type:"error",name:"ERC1967InvalidImplementation",inputs:[{name:"implementation",type:"address",internalType:"address"}]},{type:"error",name:"ERC1967NonPayable",inputs:[]},{type:"error",name:"ExecutionFailed",inputs:[]},{type:"error",name:"FailedInnerCall",inputs:[]},{type:"error",name:"InputLengthsMismatch",inputs:[{name:"keyIdsLength",type:"uint256",internalType:"uint256"},{name:"xValuesLength",type:"uint256",internalType:"uint256"},{name:"yValuesLength",type:"uint256",internalType:"uint256"}]},{type:"error",name:"InvalidEmptyKey",inputs:[]},{type:"error",name:"InvalidInitialization",inputs:[]},{type:"error",name:"InvalidShortString",inputs:[]},{type:"error",name:"KeyAlreadyExists",inputs:[{name:"keyIdHash",type:"bytes32",internalType:"bytes32"}]},{type:"error",name:"KeyDoesNotExist",inputs:[{name:"keyIdHash",type:"bytes32",internalType:"bytes32"}]},{type:"error",name:"KeyNotOnCurve",inputs:[{name:"x",type:"uint256",internalType:"uint256"},{name:"y",type:"uint256",internalType:"uint256"}]},{type:"error",name:"NotDelegationManager",inputs:[]},{type:"error",name:"NotEntryPoint",inputs:[]},{type:"error",name:"NotEntryPointOrSelf",inputs:[]},{type:"error",name:"NotInitializing",inputs:[]},{type:"error",name:"NotSelf",inputs:[]},{type:"error",name:"SignersCannotBeEmpty",inputs:[]},{type:"error",name:"StringTooLong",inputs:[{name:"str",type:"string",internalType:"string"}]},{type:"error",name:"UUPSUnauthorizedCallContext",inputs:[]},{type:"error",name:"UUPSUnsupportedProxiableUUID",inputs:[{name:"slot",type:"bytes32",internalType:"bytes32"}]},{type:"error",name:"UnsupportedCallType",inputs:[{name:"callType",type:"bytes1",internalType:"CallType"}]},{type:"error",name:"UnsupportedExecType",inputs:[{name:"execType",type:"bytes1",internalType:"ExecType"}]}],iN="0x6101c0604052306080523480156200001657600080fd5b506040516200556538038062005565833981016040819052620000399162000319565b81816040518060400160405280600f81526020016e243cb13934b22232b632a3b0ba37b960891b815250604051806040016040528060018152602001603160f81b815250818162000095600083620001ca60201b90919060201c565b61014052620000a6816001620001ca565b61016052815160208084019190912061010052815190820120610120524660c052620001366101005161012051604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201529081019290925260608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b60a05250503060e0526200014962000203565b6001600160a01b038085166101808190529084166101a0526040517fb2e8eb88b584ae71ef4e854c10847f4d39bd93e52599f147bfb4dcc8de52014d90600090a26040516001600160a01b038416907fee8699dc0e27105da2653bdba54be0edcaadc3e33890a3ad705517ffe9bf0a9990600090a250505050505062000541565b6000602083511015620001ea57620001e283620002b7565b9050620001fd565b81620001f78482620003ff565b5060ff90505b92915050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620002545760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620002b45780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b600080829050601f81511115620002ee578260405163305a27a960e01b8152600401620002e59190620004cb565b60405180910390fd5b8051620002fb826200051c565b179392505050565b6001600160a01b0381168114620002b457600080fd5b600080604083850312156200032d57600080fd5b82516200033a8162000303565b60208401519092506200034d8162000303565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200038357607f821691505b602082108103620003a457634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620003fa576000816000526020600020601f850160051c81016020861015620003d55750805b601f850160051c820191505b81811015620003f657828155600101620003e1565b5050505b505050565b81516001600160401b038111156200041b576200041b62000358565b62000433816200042c84546200036e565b84620003aa565b602080601f8311600181146200046b5760008415620004525750858301515b600019600386901b1c1916600185901b178555620003f6565b600085815260208120601f198616915b828110156200049c578886015182559484019460019091019084016200047b565b5085821015620004bb5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60006020808352835180602085015260005b81811015620004fb57858101830151858201604001528201620004dd565b506000604082860101526040601f19601f8301168501019250505092915050565b80516020808301519190811015620003a45760001960209190910360031b1b16919050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a051614eeb6200067a6000396000818161068c0152818161091e015281816109cb01528181610abe01528181610b3c01528181610ca001528181610d5501528181610de001528181610e5001528181610f3c01528181610ff701528181611069015281816112c301528181611342015281816113ab015281816114a60152818161156501528181611a1b01528181611d0e01528181611d7c0152612d4e0152600081816107ff01528181610b9f01528181610c2201528181610d030152818161140e01526117ac0152600061275a0152600061272d01526000611f3e01526000611f1601526000611e7101526000611e9b01526000611ec5015260008181612190015281816121b901526126100152614eeb6000f3fe6080604052600436106102765760003560e01c80638da5cb5b1161014f578063c8561e73116100c1578063e9ae5c531161007a578063e9ae5c53146107da578063ea4d3c9b146107ed578063ed8101b514610821578063f23a6e6114610841578063f2fde38b14610861578063ffa1ad741461088157600080fd5b8063c8561e7314610710578063cef6d20914610730578063d087d28814610750578063d37aec9214610765578063d5d33b551461079a578063d691c964146107ba57600080fd5b8063acb8cc4911610113578063acb8cc491461061c578063ad3cb1cc14610649578063b0d691fe1461067a578063b3c65015146106ae578063bc197c81146106db578063c399ec88146106fb57600080fd5b80638da5cb5b1461054d5780638ebf95331461058c578063a24c8f32146105ac578063a3f4df7e146105bf578063aaf10f421461060757600080fd5b8063445140b8116101e85780635c1c6dcd116101ac5780635c1c6dcd146104a8578063715018a6146104bb57806378a68ecf146104d05780637f07bfdc146104f057806383ebb7711461051057806384b0196e1461052557600080fd5b8063445140b81461043857806349934047146104585780634a58db19146104785780634f1ef2861461048057806352d1902d1461049357600080fd5b806319822f7c1161023a57806319822f7c146103605780631c03010a146103805780632b3afd99146103a25780632ffeaad6146103d65780633e1b0812146103f85780633ed010151461041857600080fd5b806301ffc9a71461028257806306394d67146102b7578063074feff3146102e5578063150b7a02146103075780631626ba7e1461034057600080fd5b3661027d57005b600080fd5b34801561028e57600080fd5b506102a261029d366004613d03565b6108b2565b60405190151581526020015b60405180910390f35b3480156102c357600080fd5b506102d76102d2366004613d46565b6108de565b6040519081526020016102ae565b3480156102f157600080fd5b50610305610300366004613ded565b610913565b005b34801561031357600080fd5b50610327610322366004613f5c565b610984565b6040516001600160e01b031990911681526020016102ae565b34801561034c57600080fd5b5061032761035b366004614008565b61099f565b34801561036c57600080fd5b506102d761037b366004614053565b6109be565b34801561038c57600080fd5b50600080516020614e36833981519152546102d7565b3480156103ae57600080fd5b506102d77fbc37962d8bd1d319c95199bdfda6d3f92baa8903a61b32d5f4ec1f4b36a3bc1881565b3480156103e257600080fd5b506103eb610a2e565b6040516102ae91906140a0565b34801561040457600080fd5b506102d76104133660046140d8565b610a97565b34801561042457600080fd5b50610305610433366004614101565b610b31565b34801561044457600080fd5b506102a261045336600461413b565b610c09565b34801561046457600080fd5b50610305610473366004614101565b610c95565b610305610d38565b61030561048e366004614154565b610da2565b34801561049f57600080fd5b506102d7610db8565b6103056104b63660046141a3565b610dd5565b3480156104c757600080fd5b50610305610e45565b3480156104dc57600080fd5b506103056104eb3660046141f6565b610ea8565b3480156104fc57600080fd5b5061030561050b3660046142c8565b610fec565b34801561051c57600080fd5b506102d76110c9565b34801561053157600080fd5b5061053a6110d8565b6040516102ae9796959493929190614344565b34801561055957600080fd5b50600080516020614e16833981519152546001600160a01b03165b6040516001600160a01b0390911681526020016102ae565b34801561059857600080fd5b506103056105a7366004613ded565b61111e565b6103056105ba366004614154565b610daa565b3480156105cb57600080fd5b506105fa6040518060400160405280600f81526020016e243cb13934b22232b632a3b0ba37b960891b81525081565b6040516102ae91906143dd565b34801561061357600080fd5b5061057461123a565b34801561062857600080fd5b506105fa604051806040016040528060018152602001603160f81b81525081565b34801561065557600080fd5b506105fa604051806040016040528060058152602001640352e302e360dc1b81525081565b34801561068657600080fd5b506105747f000000000000000000000000000000000000000000000000000000000000000081565b3480156106ba57600080fd5b506106c361125b565b6040516001600160401b0390911681526020016102ae565b3480156106e757600080fd5b506103276106f636600461446f565b61128e565b34801561070757600080fd5b506102d76112ab565b34801561071c57600080fd5b5061030561072b36600461451c565b611337565b34801561073c57600080fd5b5061030561074b36600461456c565b6113a0565b34801561075c57600080fd5b506102d7611487565b34801561077157600080fd5b50610785610780366004614605565b6114dd565b604080519283526020830191909152016102ae565b3480156107a657600080fd5b506103056107b5366004614605565b61155a565b6107cd6107c8366004614008565b61179f565b6040516102ae9190614646565b6103056107e8366004614008565b611a10565b3480156107f957600080fd5b506105747f000000000000000000000000000000000000000000000000000000000000000081565b34801561082d57600080fd5b506102d761083c366004613d46565b611c13565b34801561084d57600080fd5b5061032761085c3660046146aa565b611d55565b34801561086d57600080fd5b5061030561087c366004614712565b611d71565b34801561088d57600080fd5b506105fa604051806040016040528060058152602001640312e332e360dc1b81525081565b60006108bd82611dd4565b806108d857506001600160e01b031982166307f5828d60e41b145b92915050565b60006108d86108eb611e64565b6108f484611c13565b60405161190160f01b8152600281019290925260228201526042902090565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480159061094c5750333014155b1561096a57604051630796d94560e01b815260040160405180910390fd5b61097b878787878787876001611f8f565b50505050505050565b600061098e612185565b50630a85bd0160e11b949350505050565b60006109a9612185565b6109b484848461222a565b90505b9392505050565b6000336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610a0957604051636b31ba1560e11b815260040160405180910390fd5b610a11612185565b610a2384610a1e866108de565b61244e565b90506109b782612496565b60606000600080516020614e1683398151915260028101805460408051602080840282018101909252828152939450830182828015610a8c57602002820191906000526020600020905b815481526020019060010190808311610a78575b505050505091505090565b604051631aab3f0d60e11b81523060048201526001600160c01b03821660248201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906335567e1a90604401602060405180830381865afa158015610b0d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d8919061472f565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801590610b6a5750333014155b15610b8857604051630796d94560e01b815260040160405180910390fd5b604051633ed0101560e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633ed0101590610bd4908490600401614877565b600060405180830381600087803b158015610bee57600080fd5b505af1158015610c02573d6000803e3d6000fd5b5050505050565b6040516316a0682960e11b8152600481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632d40d05290602401602060405180830381865afa158015610c71573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d89190614953565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801590610cce5750333014155b15610cec57604051630796d94560e01b815260040160405180910390fd5b604051634993404760e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690634993404790610bd4908490600401614877565b610d40612185565b60405163b760faf960e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063b760faf99034906024016000604051808303818588803b158015610bee57600080fd5b610daa61252d565b610db482826125ea565b5050565b6000610dc2612605565b50600080516020614e5683398151915290565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610e1e57604051636b31ba1560e11b815260040160405180910390fd5b610db4610e2e6020830183614712565b6020830135610e406040850185614970565b61264e565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801590610e7e5750333014155b15610e9c57604051630796d94560e01b815260040160405180910390fd5b610ea66000612684565b565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805460ff8b81169291600160401b90041680610ef2575080546001600160401b03808416911610155b15610f105760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff19166001600160401b03831617600160401b178155336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801590610f6a5750333014155b15610f8857604051630796d94560e01b815260040160405180910390fd5b610f988a8a8a8a8a8a8a8a611f8f565b805460ff60401b191681556040516001600160401b03831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15050505050505050505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015906110255750333014155b1561104357604051630796d94560e01b815260040160405180910390fd5b60405163040b850f60e31b81526001600160a01b038381166004830152602482018390527f0000000000000000000000000000000000000000000000000000000000000000169063205c287890604401600060405180830381600087803b1580156110ad57600080fd5b505af11580156110c1573d6000803e3d6000fd5b505050505050565b60006110d3611e64565b905090565b6000606080600080600060606110ec612726565b6110f4612753565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b03166000811580156111635750825b90506000826001600160401b0316600114801561117f5750303b155b90508115801561118d575080155b156111ab5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156111d557845460ff60401b1916600160401b1785555b6111e68c8c8c8c8c8c8c6000611f8f565b831561122c57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050505050565b60006110d3600080516020614e56833981519152546001600160a01b031690565b60006110d37ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00546001600160401b031690565b6000611298612185565b5063bc197c8160e01b5b95945050505050565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a08231906024015b602060405180830381865afa158015611313573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110d3919061472f565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015906113705750333014155b1561138e57604051630796d94560e01b815260040160405180910390fd5b61139a84848484612780565b50505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015906113d95750333014155b156113f757604051630796d94560e01b815260040160405180910390fd5b60405163cef6d20960e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cef6d2099061144d90899089908990899089908990600401614a17565b600060405180830381600087803b15801561146757600080fd5b505af115801561147b573d6000803e3d6000fd5b50505050505050505050565b604051631aab3f0d60e11b8152306004820152600060248201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906335567e1a906044016112f6565b60008080600080516020614e1683398151915290506000816001016000878760405160200161150d929190614a80565b60408051601f198184030181529181528151602092830120835282820193909352908201600020825180840190935280548084526001909101549290910182905297909650945050505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015906115935750333014155b156115b157604051630796d94560e01b815260040160405180910390fd5b604051600080516020614e16833981519152906000906115d79085908590602001614a80565b60408051601f198184030181528282528051602091820120600081815260018088018452908490208585019094528354808652930154918401829052935081158015611621575080155b1561164757604051631a36430d60e31b8152600481018590526024015b60405180910390fd5b6002850154600181148015611664575085546001600160a01b0316155b156116825760405163c4c8547360e01b815260040160405180910390fd5b60005b611690600183614aa6565b81101561171557858760020182815481106116ad576116ad614ab9565b90600052602060002001540361170d57600287016116cc600184614aa6565b815481106116dc576116dc614ab9565b90600052602060002001548760020182815481106116fc576116fc614ab9565b600091825260209091200155611715565b600101611685565b508560020180548061172957611729614acf565b60008281526020808220830160001990810183905590920190925586825260018881018252604080842084815590910192909255815185815290810184905286917facf0e8088062f44f734bbcb5223794fd8bb6f6db1c199cb6a72df119d002a71b910160405180910390a25050505050505050565b6060336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146117ea57604051630692ce8160e21b815260040160405180910390fd5b83600881901b6117fe82600160f81b6128fd565b1561187f57366000611810878761290f565b90925090506118208360006128fd565b156118365761182f82826129a8565b9450611878565b61184483600160f81b6128fd565b156118535761182f8282612a69565b6040516308c3ee0360e11b81526001600160f81b03198416600482015260240161163e565b5050611a07565b61188a8260006128fd565b156119e25760008036600061189f8989612b96565b6040805160018082528183019092529498509296509094509250816020015b60608152602001906001900390816118be57905050965060006118e186826128fd565b15611915576118f28585858561264e565b8860008151811061190557611905614ab9565b60200260200101819052506119d8565b61192386600160f81b6128fd565b156119b35761193485858585612be7565b8960008151811061194757611947614ab9565b60209081029190910101529050806119ae577fe723f28f104e46b47fd3531f3608374ac226bcf3ddda334a23a266453e0efdb760008960008151811061198f5761198f614ab9565b60200260200101516040516119a5929190614ae5565b60405180910390a15b6119d8565b6040516308c3ee0360e11b81526001600160f81b03198716600482015260240161163e565b5050505050611a07565b604051632e5bf3f960e21b81526001600160f81b03198316600482015260240161163e565b50509392505050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611a5957604051636b31ba1560e11b815260040160405180910390fd5b82600881901b611a6d82600160f81b6128fd565b15611ac857366000611a7f868661290f565b9092509050611a8f8360006128fd565b15611aa457611a9e82826129a8565b50611ac1565b611ab283600160f81b6128fd565b1561185357611a9e8282612a69565b5050610c02565b611ad38260006128fd565b156119e257600080366000611ae88888612b96565b9350935093509350611afe85600060f81b6128fd565b15611b1557611b0f8484848461264e565b50611c0a565b611b2385600160f81b6128fd565b15611be557604080516001808252818301909252600091816020015b6060815260200190600190039081611b3f5790505090506000611b6486868686612be7565b83600081518110611b7757611b77614ab9565b6020908102919091010152905080611bde577fe723f28f104e46b47fd3531f3608374ac226bcf3ddda334a23a266453e0efdb7600083600081518110611bbf57611bbf614ab9565b6020026020010151604051611bd5929190614ae5565b60405180910390a15b5050611c0a565b6040516308c3ee0360e11b81526001600160f81b03198616600482015260240161163e565b50505050610c02565b60007fbc37962d8bd1d319c95199bdfda6d3f92baa8903a61b32d5f4ec1f4b36a3bc18611c436020840184614712565b6020840135611c556040860186614970565b604051611c63929190614a80565b604051908190039020611c796060870187614970565b604051611c87929190614a80565b604051908190039020608087013560a088013560c0890135611cac60e08b018b614970565b604051611cba929190614a80565b60408051918290038220602083019a909a526001600160a01b03988916908201526060810196909652608086019490945260a085019290925260c084015260e08301526101008201526101208101929092527f00000000000000000000000000000000000000000000000000000000000000001661014082015261016001604051602081830303815290604052805190602001209050919050565b6000611d5f612185565b5063f23a6e6160e01b95945050505050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801590611daa5750333014155b15611dc857604051630796d94560e01b815260040160405180910390fd5b611dd181612684565b50565b6000611dde612185565b6001600160e01b031982166335a4725960e21b1480611e0d57506001600160e01b03198216630a85bd0160e11b145b80611e2857506001600160e01b03198216630271189760e51b145b80611e4357506001600160e01b031982166301ffc9a760e01b145b806108d8575050630b135d3f60e11b6001600160e01b03198216145b919050565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015611ebd57507f000000000000000000000000000000000000000000000000000000000000000046145b15611ee757507f000000000000000000000000000000000000000000000000000000000000000090565b6110d3604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f0000000000000000000000000000000000000000000000000000000000000000918101919091527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b856001600160a01b038916158015611fa5575080155b8015611fae5750815b15611fcc576040516312da594d60e11b815260040160405180910390fd5b8085141580611fdb5750808314155b1561200a5760405163a297991b60e01b815260048101829052602481018690526044810184905260640161163e565b81156120ff57600080516020614e3683398151915254600080516020614e168339815191529080156120fc5760005b818110156120ed57600083600201828154811061205857612058614ab9565b6000918252602080832090910154808352600180880180845260408086208151808301835281548152938101805485880190815286895293909652869055949093558051925193519194509284927facf0e8088062f44f734bbcb5223794fd8bb6f6db1c199cb6a72df119d002a71b926120db9290918252602082015260400190565b60405180910390a25050600101612039565b506120fc600283016000613cd1565b50505b60005b818110156121705761216889898381811061211f5761211f614ab9565b90506020028101906121319190614970565b89898581811061214357612143614ab9565b9050602002013588888681811061215c5761215c614ab9565b90506020020135612780565b600101612102565b5061217a89612684565b505050505050505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061220c57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316612200600080516020614e56833981519152546001600160a01b031690565b6001600160a01b031614155b15610ea65760405163703e46dd60e11b815260040160405180910390fd5b60008160418190036122c757600080516020614e16833981519152546001600160a01b03166001600160a01b03166122988686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612c1892505050565b6001600160a01b0316036122b65750630b135d3f60e11b90506109b7565b506001600160e01b031990506109b7565b60608110156122e157506001600160e01b031990506109b7565b600080516020614e1683398151915260006122ff6020828789614afe565b61230891614b28565b60008181526001808501602090815260409283902083518085019094528054808552920154908301529192509015801561234457506020810151155b1561235e57506001600160e01b031993506109b792505050565b8360601480156123b257506123b28888888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050855160208701519092509050612c42565b156123cb5750630b135d3f60e11b93506109b792505050565b8360601415801561242057506124208888888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050855160208701519092509050612ce0565b156124395750630b135d3f60e11b93506109b792505050565b506001600160e01b031993506109b792505050565b60008061246883612463610100870187614970565b61222a565b90506374eca2c160e11b6001600160e01b031982160161248c5760009150506108d8565b5060019392505050565b8015611dd157604051600090339060001990849084818181858888f193505050503d80600081146124e3576040519150601f19603f3d011682016040523d82523d6000602084013e6124e8565b606091505b505060408051848152821515602082015291925033917fa427c7d47f24d01b170779a7600b1d4c0d7cdbabaa0f19c4f0e6182053ffc931910160405180910390a25050565b600080516020614e3683398151915254600080516020614e168339815191529060005b818110156125a05782600101600084600201838154811061257357612573614ab9565b60009182526020808320909101548352820192909252604001812081815560019081019190915501612550565b506125af600283016000613cd1565b81546001600160a01b03191682556040517feb09d532980c3cc73dcad99b80e264204a667a54cbb7b63ec8d68dcb1c7096be90600090a15050565b6125f2612185565b6125fb82612d43565b610db48282612d9a565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610ea65760405163703e46dd60e11b815260040160405180910390fd5b60405181838237600038838387895af161266b573d6000823e3d81fd5b3d8152602081013d6000823e3d01604052949350505050565b600080516020614e3683398151915254600080516020614e16833981519152901580156126b857506001600160a01b038216155b156126d65760405163c4c8547360e01b815260040160405180910390fd5b80546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b60606110d37f00000000000000000000000000000000000000000000000000000000000000006000612e5c565b60606110d37f00000000000000000000000000000000000000000000000000000000000000006001612e5c565b61278a8282612f07565b6127b1576040516313c3d61f60e01b8152600481018390526024810182905260440161163e565b600084846040516020016127c6929190614a80565b6040516020818303038152906040528051906020012090508484905060000361280257604051637e25658160e11b815260040160405180910390fd5b60008181527fa2b1bcb5e16cee2a8898b49cb0c3605e70c16f429f6002ed8b1bc5612a694901602052604090208054600080516020614e1683398151915291901515806128525750600181015415155b15612873576040516361db108160e01b81526004810184905260240161163e565b604080518082018252868152602080820187815260008781526001808801845285822094518555915193820193909355600286018054918201815583529120018490555183907fd00539cb08a7c24166308150d64d603150c01baf89d3d3e4c6063d6db7c6983d906128ec908a908a908a908a90614b46565b60405180910390a250505050505050565b6001600160f81b031990811691161490565b366000833580850160208587010360208201945081359350808460051b8301118360401c17156129475763ba597e7e6000526004601cfd5b831561299e578392505b6001830392508260051b850135915081850160408101358082018381358201118460408501111782861782351760401c17156129955763ba597e7e6000526004601cfd5b50505082612951575b5050509250929050565b606081806001600160401b038111156129c3576129c3613e99565b6040519080825280602002602001820160405280156129f657816020015b60608152602001906001900390816129e15790505b50915060005b81811015612a615736858583818110612a1757612a17614ab9565b9050602002810190612a299190614b6d565b9050612a3b610e2e6020830183614712565b848381518110612a4d57612a4d614ab9565b6020908102919091010152506001016129fc565b505092915050565b606081806001600160401b03811115612a8457612a84613e99565b604051908082528060200260200182016040528015612ab757816020015b6060815260200190600190039081612aa25790505b50915060005b81811015612a615736858583818110612ad857612ad8614ab9565b9050602002810190612aea9190614b6d565b90506000612b15612afe6020840184614712565b6020840135612b106040860186614970565b612be7565b868581518110612b2757612b27614ab9565b6020908102919091010152905080612b8c577fe723f28f104e46b47fd3531f3608374ac226bcf3ddda334a23a266453e0efdb783868581518110612b6d57612b6d614ab9565b6020026020010151604051612b83929190614ae5565b60405180910390a15b5050600101612abd565b6000803681612ba86014828789614afe565b612bb191614b8d565b60601c9350612bc4603460148789614afe565b612bcd91614b28565b9250612bdc8560348189614afe565b949793965094505050565b604051600090828482376000388483888a5af191503d8152602081013d6000823e3d81016040525094509492505050565b600080600080612c288686612f6a565b925092509250612c388282612fb7565b5090949350505050565b6000806000612c5086613070565b915091506000600288604051602001612c6b91815260200190565b60408051601f1981840301815290829052612c8591614bc0565b602060405180830381855afa158015612ca2573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190612cc5919061472f565b9050612cd48184848989613092565b98975050505050505050565b600080612cec85613241565b9050612d3986604051602001612d0491815260200190565b60408051601f198184030181529181528301516060840151608085015160a086015160c0870151875160208901518c8c6132bf565b9695505050505050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801590612d7c5750333014155b15611dd157604051630796d94560e01b815260040160405180910390fd5b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015612df4575060408051601f3d908101601f19168201909252612df19181019061472f565b60015b612e1c57604051634c9c8ce360e01b81526001600160a01b038316600482015260240161163e565b600080516020614e568339815191528114612e4d57604051632a87526960e21b81526004810182905260240161163e565b612e57838361345d565b505050565b606060ff8314612e7657612e6f836134b3565b90506108d8565b818054612e8290614bd2565b80601f0160208091040260200160405190810160405280929190818152602001828054612eae90614bd2565b8015612efb5780601f10612ed057610100808354040283529160200191612efb565b820191906000526020600020905b815481529060010190602001808311612ede57829003601f168201915b505050505090506108d8565b60006109b76ffffffffeffffffffffffffffffffffff60601b197fffffffff00000001000000000000000000000000fffffffffffffffffffffffc7f5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b86866134f2565b60008060008351604103612fa45760208401516040850151606086015160001a612f968882858561359d565b955095509550505050612fb0565b50508151600091506002905b9250925092565b6000826003811115612fcb57612fcb614c06565b03612fd4575050565b6001826003811115612fe857612fe8614c06565b036130065760405163f645eedf60e01b815260040160405180910390fd5b600282600381111561301a5761301a614c06565b0361303b5760405163fce698f760e01b81526004810182905260240161163e565b600382600381111561304f5761304f614c06565b03610db4576040516335e2f38360e21b81526004810182905260240161163e565b600080828060200190518101906130879190614c1c565b909590945092505050565b60006130bf60027fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551614c60565b8411156130ce575060006112a2565b6040805160208101889052908101869052606081018590526080810184905260a0810183905260009060c00160405160208183030381529060405290506000806101006001600160a01b0316836040516131289190614bc0565b600060405180830381855afa9150503d8060008114613163576040519150601f19603f3d011682016040523d82523d6000602084013e613168565b606091505b5080519193509150151582801561317c5750805b156131a35781806020019051810190613195919061472f565b6001149450505050506112a2565b60405163a1f3128160e01b8152600481018b9052602481018a905260448101899052606481018890526084810187905273__$b8f96b288d4d0429e38b8ed50fd423070f$__9063a1f312819060a401602060405180830381865af415801561320f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132339190614953565b9a9950505050505050505050565b6132836040518060e001604052806000815260200160008152602001606081526020016000151581526020016060815260200160608152602001600081525090565b818060200190518101906132979190614cc7565b60c089015260a088015260808701521515606086015260408501526020840152825250919050565b600060258a5110806132f957506132f78a6020815181106132e2576132e2614ab9565b01602001516001600160f81b0319168a61366c565b155b1561330657506000613233565b6000886133128d6136d2565b8960405160200161332593929190614d86565b60408051601f198184030181528282019091526015825274113a3cb832911d113bb2b130baba34371733b2ba1160591b6020830152915061336781838a6138df565b61337657600092505050613233565b60006002836040516133889190614bc0565b602060405180830381855afa1580156133a5573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906133c8919061472f565b9050600060028e836040516020016133e1929190614dc9565b60408051601f19818403018152908290526133fb91614bc0565b602060405180830381855afa158015613418573d6000803e3d6000fd5b5050506040513d601f19601f8201168201806040525081019061343b919061472f565b905061344a818a8a8a8a613092565b9f9e505050505050505050505050505050565b6134668261398e565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a28051156134ab57612e5782826139f3565b610db4613a60565b606060006134c083613a7f565b604080516020808252818301909252919250600091906020820181803683375050509182525060208101929092525090565b600082158015613500575081155b8061350b5750858310155b806135165750858210155b15613523575060006112a2565b6000868061353357613533614c4a565b83840990506000878061354857613548614c4a565b888061355657613556614c4a565b888709898061356757613567614c4a565b878b8061357657613576614c4a565b898a0909089050878061358b5761358b614c4a565b86820891909114979650505050505050565b600080807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411156135d85750600091506003905082613662565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa15801561362c573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661365857506000925060019150829050613662565b9250600091508190505b9450945094915050565b6000600160f81b83811614613683575060006108d8565b8180156136965750600160fa1b83811614155b156136a3575060006108d8565b600160fb1b838116146136c957600f60fc1b600160fc1b8416016136c9575060006108d8565b50600192915050565b606060006136df83613aa7565b9050600081905060006002825111801561372a575081600283516137039190614aa6565b8151811061371357613713614ab9565b6020910101516001600160f81b031916603d60f81b145b1561373757506002613782565b60018251118015613779575081600183516137529190614aa6565b8151811061376257613762614ab9565b6020910101516001600160f81b031916603d60f81b145b15613782575060015b60008183516137919190614aa6565b90506000816001600160401b038111156137ad576137ad613e99565b6040519080825280601f01601f1916602001820160405280156137d7576020820181803683370190505b50905060005b828110156138d4578481815181106137f7576137f7614ab9565b01602001516001600160f81b031916602b60f81b0361384357602d60f81b82828151811061382757613827614ab9565b60200101906001600160f81b031916908160001a9053506138cc565b84818151811061385557613855614ab9565b01602001516001600160f81b031916602f60f81b0361388557605f60f81b82828151811061382757613827614ab9565b84818151811061389757613897614ab9565b602001015160f81c60f81b8282815181106138b4576138b4614ab9565b60200101906001600160f81b031916908160001a9053505b6001016137dd565b509695505050505050565b825182516000918591859190845b8281101561397f57816139008289614deb565b10613913576000955050505050506109b7565b8361391e8289614deb565b8151811061392e5761392e614ab9565b602001015160f81c60f81b6001600160f81b03191685828151811061395557613955614ab9565b01602001516001600160f81b03191614613977576000955050505050506109b7565b6001016138ed565b50600198975050505050505050565b806001600160a01b03163b6000036139c457604051634c9c8ce360e01b81526001600160a01b038216600482015260240161163e565b600080516020614e5683398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051613a109190614bc0565b600060405180830381855af49150503d8060008114613a4b576040519150601f19603f3d011682016040523d82523d6000602084013e613a50565b606091505b50915091506112a2858383613acd565b3415610ea65760405163b398979f60e01b815260040160405180910390fd5b600060ff8216601f8111156108d857604051632cd44ac360e21b815260040160405180910390fd5b60606108d882604051806060016040528060408152602001614e76604091396001613b29565b606082613ae257613add82613ca8565b6109b7565b8151158015613af957506001600160a01b0384163b155b15613b2257604051639996b31560e01b81526001600160a01b038516600482015260240161163e565b50806109b7565b60608351600003613b4957506040805160208101909152600081526109b7565b600082613b7a57600385516004613b609190614dfe565b613b6b906002614deb565b613b759190614c60565b613b9f565b600385516002613b8a9190614deb565b613b949190614c60565b613b9f906004614dfe565b90506000816001600160401b03811115613bbb57613bbb613e99565b6040519080825280601f01601f191660200182016040528015613be5576020820181803683370190505b50905060018501602082018788518901602081018051600082525b82841015613c5b576003840193508351603f8160121c168701518653600186019550603f81600c1c168701518653600186019550603f8160061c168701518653600186019550603f8116870151865350600185019450613c00565b905250508515613c9c57600388510660018114613c7f5760028114613c9257613c9a565b603d6001830353603d6002830353613c9a565b603d60018303535b505b50909695505050505050565b805115613cb85780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b5080546000825590600052602060002090810190611dd191905b80821115613cff5760008155600101613ceb565b5090565b600060208284031215613d1557600080fd5b81356001600160e01b0319811681146109b757600080fd5b60006101208284031215613d4057600080fd5b50919050565b600060208284031215613d5857600080fd5b81356001600160401b03811115613d6e57600080fd5b613d7a84828501613d2d565b949350505050565b6001600160a01b0381168114611dd157600080fd5b8035611e5f81613d82565b60008083601f840112613db457600080fd5b5081356001600160401b03811115613dcb57600080fd5b6020830191508360208260051b8501011115613de657600080fd5b9250929050565b60008060008060008060006080888a031215613e0857600080fd5b8735613e1381613d82565b965060208801356001600160401b0380821115613e2f57600080fd5b613e3b8b838c01613da2565b909850965060408a0135915080821115613e5457600080fd5b613e608b838c01613da2565b909650945060608a0135915080821115613e7957600080fd5b50613e868a828b01613da2565b989b979a50959850939692959293505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715613ed757613ed7613e99565b604052919050565b60006001600160401b03821115613ef857613ef8613e99565b50601f01601f191660200190565b600082601f830112613f1757600080fd5b8135613f2a613f2582613edf565b613eaf565b818152846020838601011115613f3f57600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060808587031215613f7257600080fd5b8435613f7d81613d82565b93506020850135613f8d81613d82565b92506040850135915060608501356001600160401b03811115613faf57600080fd5b613fbb87828801613f06565b91505092959194509250565b60008083601f840112613fd957600080fd5b5081356001600160401b03811115613ff057600080fd5b602083019150836020828501011115613de657600080fd5b60008060006040848603121561401d57600080fd5b8335925060208401356001600160401b0381111561403a57600080fd5b61404686828701613fc7565b9497909650939450505050565b60008060006060848603121561406857600080fd5b83356001600160401b0381111561407e57600080fd5b61408a86828701613d2d565b9660208601359650604090950135949350505050565b6020808252825182820181905260009190848201906040850190845b81811015613c9c578351835292840192918401916001016140bc565b6000602082840312156140ea57600080fd5b81356001600160c01b03811681146109b757600080fd5b60006020828403121561411357600080fd5b81356001600160401b0381111561412957600080fd5b820160c081850312156109b757600080fd5b60006020828403121561414d57600080fd5b5035919050565b6000806040838503121561416757600080fd5b823561417281613d82565b915060208301356001600160401b0381111561418d57600080fd5b61419985828601613f06565b9150509250929050565b6000602082840312156141b557600080fd5b81356001600160401b038111156141cb57600080fd5b8201606081850312156109b757600080fd5b8015158114611dd157600080fd5b8035611e5f816141dd565b600080600080600080600080600060c08a8c03121561421457600080fd5b893560ff8116811461422557600080fd5b985061423360208b01613d97565b975060408a01356001600160401b038082111561424f57600080fd5b61425b8d838e01613da2565b909950975060608c013591508082111561427457600080fd5b6142808d838e01613da2565b909750955060808c013591508082111561429957600080fd5b506142a68c828d01613da2565b90945092506142b9905060a08b016141eb565b90509295985092959850929598565b600080604083850312156142db57600080fd5b82356142e681613d82565b946020939093013593505050565b60005b8381101561430f5781810151838201526020016142f7565b50506000910152565b600081518084526143308160208601602086016142f4565b601f01601f19169290920160200192915050565b60ff60f81b881681526000602060e0602084015261436560e084018a614318565b8381036040850152614377818a614318565b606085018990526001600160a01b038816608086015260a0850187905284810360c08601528551808252602080880193509091019060005b818110156143cb578351835292840192918401916001016143af565b50909c9b505050505050505050505050565b6020815260006109b76020830184614318565b600082601f83011261440157600080fd5b813560206001600160401b0382111561441c5761441c613e99565b8160051b61442b828201613eaf565b928352848101820192828101908785111561444557600080fd5b83870192505b848310156144645782358252918301919083019061444b565b979650505050505050565b600080600080600060a0868803121561448757600080fd5b853561449281613d82565b945060208601356144a281613d82565b935060408601356001600160401b03808211156144be57600080fd5b6144ca89838a016143f0565b945060608801359150808211156144e057600080fd5b6144ec89838a016143f0565b9350608088013591508082111561450257600080fd5b5061450f88828901613f06565b9150509295509295909350565b6000806000806060858703121561453257600080fd5b84356001600160401b0381111561454857600080fd5b61455487828801613fc7565b90989097506020870135966040013595509350505050565b6000806000806000806060878903121561458557600080fd5b86356001600160401b038082111561459c57600080fd5b6145a88a838b01613da2565b909850965060208901359150808211156145c157600080fd5b6145cd8a838b01613da2565b909650945060408901359150808211156145e657600080fd5b506145f389828a01613da2565b979a9699509497509295939492505050565b6000806020838503121561461857600080fd5b82356001600160401b0381111561462e57600080fd5b61463a85828601613fc7565b90969095509350505050565b600060208083016020845280855180835260408601915060408160051b87010192506020870160005b8281101561469d57603f1988860301845261468b858351614318565b9450928501929085019060010161466f565b5092979650505050505050565b600080600080600060a086880312156146c257600080fd5b85356146cd81613d82565b945060208601356146dd81613d82565b9350604086013592506060860135915060808601356001600160401b0381111561470657600080fd5b61450f88828901613f06565b60006020828403121561472457600080fd5b81356109b781613d82565b60006020828403121561474157600080fd5b5051919050565b6000808335601e1984360301811261475f57600080fd5b83016020810192503590506001600160401b0381111561477e57600080fd5b803603821315613de657600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60008383855260208086019550808560051b830101846000805b8881101561486957858403601f19018a52823536899003605e190181126147f5578283fd5b88016060813561480481613d82565b6001600160a01b0316865261481b82880183614748565b828989015261482d838901828461478d565b92505050604061483f81840184614748565b93508783038289015261485383858361478d565b9d89019d975050509386019350506001016147d0565b509198975050505050505050565b602081526000823561488881613d82565b6001600160a01b03908116602084810191909152840135906148a982613d82565b80821660408501525050604083013560608301526060830135601e198436030181126148d457600080fd5b83016020810190356001600160401b038111156148f057600080fd5b8060051b360382131561490257600080fd5b60c0608085015261491760e0850182846147b6565b915050608084013560a084015261493160a0850185614748565b848303601f190160c0860152612d3983828461478d565b8051611e5f816141dd565b60006020828403121561496557600080fd5b81516109b7816141dd565b6000808335601e1984360301811261498757600080fd5b8301803591506001600160401b038211156149a157600080fd5b602001915036819003821315613de657600080fd5b6000838385526020808601955060208560051b8301018460005b87811015614a0a57848303601f190189526149eb8288614748565b6149f685828461478d565b9a86019a94505050908301906001016149d0565b5090979650505050505050565b606081526000614a2b60608301888a6149b6565b8281036020848101919091528682528791810160005b88811015614a5d57833582529282019290820190600101614a41565b508481036040860152614a718187896149b6565b9b9a5050505050505050505050565b8183823760009101908152919050565b634e487b7160e01b600052601160045260246000fd5b818103818111156108d8576108d8614a90565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b8281526040602082015260006109b46040830184614318565b60008085851115614b0e57600080fd5b83861115614b1b57600080fd5b5050820193919092039150565b803560208310156108d857600019602084900360031b1b1692915050565b606081526000614b5a60608301868861478d565b6020830194909452506040015292915050565b60008235605e19833603018112614b8357600080fd5b9190910192915050565b6bffffffffffffffffffffffff198135818116916014851015612a615760149490940360031b84901b1690921692915050565b60008251614b838184602087016142f4565b600181811c90821680614be657607f821691505b602082108103613d4057634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052602160045260246000fd5b600080600060608486031215614c3157600080fd5b8351925060208401519150604084015190509250925092565b634e487b7160e01b600052601260045260246000fd5b600082614c7d57634e487b7160e01b600052601260045260246000fd5b500490565b600082601f830112614c9357600080fd5b8151614ca1613f2582613edf565b818152846020838601011115614cb657600080fd5b613d7a8260208301602087016142f4565b600080600080600080600080610100898b031215614ce457600080fd5b88519750602089015196506040890151955060608901516001600160401b0380821115614d1057600080fd5b614d1c8c838d01614c82565b9650614d2a60808c01614948565b955060a08b0151915080821115614d4057600080fd5b614d4c8c838d01614c82565b945060c08b0151915080821115614d6257600080fd5b50614d6f8b828c01614c82565b92505060e089015190509295985092959890939650565b60008451614d988184602089016142f4565b845190830190614dac8183602089016142f4565b8451910190614dbf8183602088016142f4565b0195945050505050565b60008351614ddb8184602088016142f4565b9190910191825250602001919050565b808201808211156108d8576108d8614a90565b80820281158282048414176108d8576108d8614a9056fea2b1bcb5e16cee2a8898b49cb0c3605e70c16f429f6002ed8b1bc5612a694900a2b1bcb5e16cee2a8898b49cb0c3605e70c16f429f6002ed8b1bc5612a694902360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2fa2646970667358221220d641f685fbc825f5c1c752f10b46c0f81d9143a8b41e10871b92196f03c53fe864736f6c63430008170033",oN={};Q(oN,{abi:()=>fN,bytecode:()=>bN});var fN=[],bN="0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212203d81846f7dee1e1b6ac5ec7facf37349f677e4fb70664eb5852e6414aa31b93064736f6c63430008170033",Zo={};Q(Zo,{abi:()=>dN,bytecode:()=>cN});var dN=[{type:"function",name:"afterAllHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"afterHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"beforeAllHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"beforeHook",inputs:[{name:"_terms",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"_mode",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"_delegator",type:"address",internalType:"address"},{name:"_redeemer",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"getIsUsed",inputs:[{name:"_delegationManager",type:"address",internalType:"address"},{name:"_delegator",type:"address",internalType:"address"},{name:"_id",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"getTermsInfo",inputs:[{name:"_terms",type:"bytes",internalType:"bytes"}],outputs:[{name:"id_",type:"uint256",internalType:"uint256"}],stateMutability:"pure"},{type:"event",name:"UsedId",inputs:[{name:"sender",type:"address",indexed:!0,internalType:"address"},{name:"delegator",type:"address",indexed:!0,internalType:"address"},{name:"redeemer",type:"address",indexed:!0,internalType:"address"},{name:"id",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1}],cN="0x608060405234801561001057600080fd5b50610518806100206000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c8063414c3e3314610067578063595dce4814610083578063a145832a146100ab578063b99deb0e146100be578063d3eddcc514610067578063ed46336714610067575b600080fd5b610081610075366004610379565b50505050505050505050565b005b610096610091366004610446565b6100df565b60405190151581526020015b60405180910390f35b6100816100b9366004610379565b610116565b6100d16100cc366004610482565b61028c565b6040519081526020016100a2565b6001600160a01b03808416600090815260208181526040808320938616835292905290812061010e90836102ef565b949350505050565b85600881901b6001600160f81b03198116156101875760405162461bcd60e51b815260206004820152602560248201527f436176656174456e666f726365723a696e76616c69642d657865637574696f6e6044820152642d7479706560d81b60648201526084015b60405180910390fd5b5060006101948c8c61028c565b90506101a13385836100df565b156101ee5760405162461bcd60e51b815260206004820152601a60248201527f4964456e666f726365723a69642d616c72656164792d75736564000000000000604482015260640161017e565b336000908152602081815260408083206001600160a01b03881684528252808320600885901c845290915290208054600160ff84161b179055826001600160a01b0316846001600160a01b0316336001600160a01b03167f6286af1aaf28b34723a53056e5608eabb40c823d1ce093ff371cf08c502431d68460405161027691815260200190565b60405180910390a4505050505050505050505050565b6000602082146102de5760405162461bcd60e51b815260206004820152601f60248201527f4964456e666f726365723a696e76616c69642d7465726d732d6c656e67746800604482015260640161017e565b6102e882846104c4565b9392505050565b600881901c600090815260208390526040902054600160ff83161b1615155b92915050565b60008083601f84011261032657600080fd5b50813567ffffffffffffffff81111561033e57600080fd5b60208301915083602082850101111561035657600080fd5b9250929050565b80356001600160a01b038116811461037457600080fd5b919050565b60008060008060008060008060008060e08b8d03121561039857600080fd5b8a3567ffffffffffffffff808211156103b057600080fd5b6103bc8e838f01610314565b909c509a5060208d01359150808211156103d557600080fd5b6103e18e838f01610314565b909a50985060408d0135975060608d013591508082111561040157600080fd5b5061040e8d828e01610314565b90965094505060808b0135925061042760a08c0161035d565b915061043560c08c0161035d565b90509295989b9194979a5092959850565b60008060006060848603121561045b57600080fd5b6104648461035d565b92506104726020850161035d565b9150604084013590509250925092565b6000806020838503121561049557600080fd5b823567ffffffffffffffff8111156104ac57600080fd5b6104b885828601610314565b90969095509350505050565b8035602083101561030e57600019602084900360031b1b169291505056fea26469706673582212204a96dd3b9054d6055c3a36da342d1ecb848915fb596c41cf0571e73299243bf864736f6c63430008170033",Yo={};Q(Yo,{abi:()=>uN,bytecode:()=>yN});var uN=[{type:"function",name:"afterAllHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"afterHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"beforeAllHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"beforeHook",inputs:[{name:"_terms",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"_mode",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"_delegationHash",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"_redeemer",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"callCounts",inputs:[{name:"delegationManager",type:"address",internalType:"address"},{name:"delegationHash",type:"bytes32",internalType:"bytes32"}],outputs:[{name:"count",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getTermsInfo",inputs:[{name:"_terms",type:"bytes",internalType:"bytes"}],outputs:[{name:"limit_",type:"uint256",internalType:"uint256"}],stateMutability:"pure"},{type:"event",name:"IncreasedCount",inputs:[{name:"sender",type:"address",indexed:!0,internalType:"address"},{name:"redeemer",type:"address",indexed:!0,internalType:"address"},{name:"delegationHash",type:"bytes32",indexed:!0,internalType:"bytes32"},{name:"limit",type:"uint256",indexed:!1,internalType:"uint256"},{name:"callCount",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1}],yN="0x608060405234801561001057600080fd5b506104e9806100206000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c806319054d8914610067578063414c3e33146100a1578063a145832a146100bd578063b99deb0e146100d0578063d3eddcc5146100a1578063ed463367146100a1575b600080fd5b61008f6100753660046102ec565b600060208181529281526040808220909352908152205481565b60405190815260200160405180910390f35b6100bb6100af36600461035f565b50505050505050505050565b005b6100bb6100cb36600461035f565b6100e3565b61008f6100de36600461042c565b610244565b85600881901b6100f48160006102b9565b6101535760405162461bcd60e51b815260206004820152602560248201527f436176656174456e666f726365723a696e76616c69642d657865637574696f6e6044820152642d7479706560d81b60648201526084015b60405180910390fd5b5060006101608c8c610244565b33600090815260208181526040808320898452909152812080549293509091829061018a9061046e565b91829055509050818111156101ed5760405162461bcd60e51b815260206004820152602360248201527f4c696d6974656443616c6c73456e666f726365723a6c696d69742d657863656560448201526219195960ea1b606482015260840161014a565b604080518381526020810183905287916001600160a01b0387169133917f449da07f2c06c9d1a6b19d2454ffe749e8cf991d22f686e076a1a4844c5ff370910160405180910390a450505050505050505050505050565b6000602082146102a85760405162461bcd60e51b815260206004820152602960248201527f4c696d6974656443616c6c73456e666f726365723a696e76616c69642d7465726044820152680dae65ad8cadccee8d60bb1b606482015260840161014a565b6102b28284610495565b9392505050565b6001600160f81b0319828116908216145b92915050565b80356001600160a01b03811681146102e757600080fd5b919050565b600080604083850312156102ff57600080fd5b610308836102d0565b946020939093013593505050565b60008083601f84011261032857600080fd5b50813567ffffffffffffffff81111561034057600080fd5b60208301915083602082850101111561035857600080fd5b9250929050565b60008060008060008060008060008060e08b8d03121561037e57600080fd5b8a3567ffffffffffffffff8082111561039657600080fd5b6103a28e838f01610316565b909c509a5060208d01359150808211156103bb57600080fd5b6103c78e838f01610316565b909a50985060408d0135975060608d01359150808211156103e757600080fd5b506103f48d828e01610316565b90965094505060808b0135925061040d60a08c016102d0565b915061041b60c08c016102d0565b90509295989b9194979a5092959850565b6000806020838503121561043f57600080fd5b823567ffffffffffffffff81111561045657600080fd5b61046285828601610316565b90969095509350505050565b60006001820161048e57634e487b7160e01b600052601160045260246000fd5b5060010190565b803560208310156102ca57600019602084900360031b1b169291505056fea264697066735822122058fb87f0b8e8aa4745b9ef395d8bd725c313f876828d7be4c479f4049d6644ac64736f6c63430008170033",pN={};Q(pN,{abi:()=>lN,bytecode:()=>mN});var lN=[{type:"function",name:"getNonce",inputs:[{name:"sender",type:"address",internalType:"address"},{name:"key",type:"uint192",internalType:"uint192"}],outputs:[{name:"nonce",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"incrementNonce",inputs:[{name:"key",type:"uint192",internalType:"uint192"}],outputs:[],stateMutability:"nonpayable"}],mN="0x",hN={};Q(hN,{abi:()=>gN,bytecode:()=>TN});var gN=[],TN="0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220f3b6a0af2d4dff4702805c39f40ed768201654e38f4d05a5ef7ae0498666b77964736f6c63430008170033",Ko={};Q(Ko,{abi:()=>wN,bytecode:()=>vN});var wN=[{type:"function",name:"afterAllHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"afterHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"beforeAllHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"beforeHook",inputs:[{name:"_terms",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"_mode",type:"bytes32",internalType:"ModeCode"},{name:"_executionCallData",type:"bytes",internalType:"bytes"},{name:"_delegationHash",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"_redeemer",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"getAvailableAmount",inputs:[{name:"_delegationManager",type:"address",internalType:"address"},{name:"_delegationHash",type:"bytes32",internalType:"bytes32"}],outputs:[{name:"availableAmount_",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getTermsInfo",inputs:[{name:"_terms",type:"bytes",internalType:"bytes"}],outputs:[{name:"initialAmount_",type:"uint256",internalType:"uint256"},{name:"maxAmount_",type:"uint256",internalType:"uint256"},{name:"amountPerSecond_",type:"uint256",internalType:"uint256"},{name:"startTime_",type:"uint256",internalType:"uint256"}],stateMutability:"pure"},{type:"function",name:"streamingAllowances",inputs:[{name:"delegationManager",type:"address",internalType:"address"},{name:"delegationHash",type:"bytes32",internalType:"bytes32"}],outputs:[{name:"initialAmount",type:"uint256",internalType:"uint256"},{name:"maxAmount",type:"uint256",internalType:"uint256"},{name:"amountPerSecond",type:"uint256",internalType:"uint256"},{name:"startTime",type:"uint256",internalType:"uint256"},{name:"spent",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"event",name:"IncreasedSpentMap",inputs:[{name:"sender",type:"address",indexed:!0,internalType:"address"},{name:"redeemer",type:"address",indexed:!0,internalType:"address"},{name:"delegationHash",type:"bytes32",indexed:!0,internalType:"bytes32"},{name:"initialAmount",type:"uint256",indexed:!1,internalType:"uint256"},{name:"maxAmount",type:"uint256",indexed:!1,internalType:"uint256"},{name:"amountPerSecond",type:"uint256",indexed:!1,internalType:"uint256"},{name:"startTime",type:"uint256",indexed:!1,internalType:"uint256"},{name:"spent",type:"uint256",indexed:!1,internalType:"uint256"},{name:"lastUpdateTimestamp",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1}],vN="0x608060405234801561001057600080fd5b506109a4806100206000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c8063d3eddcc51161005b578063d3eddcc514610082578063ed46336714610082578063ee73d772146100e9578063fb7d2c5b1461010a57600080fd5b8063414c3e3314610082578063a145832a1461009e578063b99deb0e146100b1575b600080fd5b61009c610090366004610765565b50505050505050505050565b005b61009c6100ac366004610765565b610177565b6100c46100bf366004610832565b61025c565b6040805194855260208501939093529183015260608201526080015b60405180910390f35b6100fc6100f7366004610874565b610338565b6040519081526020016100e0565b61014f610118366004610874565b6000602081815292815260408082209093529081522080546001820154600283015460038401546004909401549293919290919085565b604080519586526020860194909452928401919091526060830152608082015260a0016100e0565b856101838160006103a3565b6101d45760405162461bcd60e51b815260206004820181905260248201527f436176656174456e666f726365723a696e76616c69642d63616c6c2d7479706560448201526064015b60405180910390fd5b86600881901b6101e58160006103a3565b61023f5760405162461bcd60e51b815260206004820152602560248201527f436176656174456e666f726365723a696e76616c69642d657865637574696f6e6044820152642d7479706560d81b60648201526084016101cb565b5061024e8c8c898989886103ba565b505050505050505050505050565b6000808080608085146102cb5760405162461bcd60e51b815260206004820152603160248201527f4e6174697665546f6b656e53747265616d696e67456e666f726365723a696e766044820152700c2d8d2c85ae8cae4dae65ad8cadccee8d607b1b60648201526084016101cb565b6102d960206000878961089e565b6102e2916108c8565b93506102f260406020878961089e565b6102fb916108c8565b925061030b60606040878961089e565b610314916108c8565b915061032460806060878961089e565b61032d916108c8565b939692955090935050565b6001600160a01b0382166000908152602081815260408083208484528252808320815160a0810183528154815260018201549381019390935260028101549183019190915260038101546060830152600481015460808301529061039b9061062e565b949350505050565b6001600160f81b0319828116908216145b92915050565b60006103c685856106af565b50509150506000806000806103db8b8b61025c565b93509350935093508383101561044b5760405162461bcd60e51b815260206004820152602f60248201527f4e6174697665546f6b656e53747265616d696e67456e666f726365723a696e7660448201526e185b1a590b5b585e0b585b5bdd5b9d608a1b60648201526084016101cb565b600081116104b85760405162461bcd60e51b815260206004820152603460248201527f4e6174697665546f6b656e53747265616d696e67456e666f726365723a696e76604482015273616c69642d7a65726f2d73746172742d74696d6560601b60648201526084016101cb565b336000908152602081815260408083208a8452909152812060048101549091036104f5578481556001810184905560028101839055600381018290555b6040805160a081018252825481526001830154602082015260028301549181019190915260038201546060820152600482015460808201526105369061062e565b86111561059d5760405162461bcd60e51b815260206004820152602f60248201527f4e6174697665546f6b656e53747265616d696e67456e666f726365723a616c6c60448201526e1bddd85b98d94b595e18d959591959608a1b60648201526084016101cb565b858160040160008282546105b191906108fc565b9091555050600481015460408051878152602081018790529081018590526060810184905260808101919091524260a082015288906001600160a01b0389169033907fa4d5df1d290378aabb8f054b2f3100faf35e2266bb7fbe661f947dfc686704ae9060c00160405180910390a4505050505050505050505050565b6000816060015142101561064457506000919050565b6000826060015142610656919061090f565b9050600081846040015161066a9190610922565b845161067691906108fc565b9050836020015181111561068b575060208301515b808460800151106106a0575060009392505050565b608084015161039b908261090f565b60008036816106c1601482878961089e565b6106ca91610939565b60601c93506106dd60346014878961089e565b6106e6916108c8565b92506106f5856034818961089e565b949793965094505050565b60008083601f84011261071257600080fd5b50813567ffffffffffffffff81111561072a57600080fd5b60208301915083602082850101111561074257600080fd5b9250929050565b80356001600160a01b038116811461076057600080fd5b919050565b60008060008060008060008060008060e08b8d03121561078457600080fd5b8a3567ffffffffffffffff8082111561079c57600080fd5b6107a88e838f01610700565b909c509a5060208d01359150808211156107c157600080fd5b6107cd8e838f01610700565b909a50985060408d0135975060608d01359150808211156107ed57600080fd5b506107fa8d828e01610700565b90965094505060808b0135925061081360a08c01610749565b915061082160c08c01610749565b90509295989b9194979a5092959850565b6000806020838503121561084557600080fd5b823567ffffffffffffffff81111561085c57600080fd5b61086885828601610700565b90969095509350505050565b6000806040838503121561088757600080fd5b61089083610749565b946020939093013593505050565b600080858511156108ae57600080fd5b838611156108bb57600080fd5b5050820193919092039150565b803560208310156103b457600019602084900360031b1b1692915050565b634e487b7160e01b600052601160045260246000fd5b808201808211156103b4576103b46108e6565b818103818111156103b4576103b46108e6565b80820281158282048414176103b4576103b46108e6565b6bffffffffffffffffffffffff1981358181169160148510156109665780818660140360031b1b83161692505b50509291505056fea264697066735822122052704058a3717c34d4c81be20ba9801f9b76f6f0c65ef9abba014d246806f21f64736f6c63430008170033",xN={};Q(xN,{abi:()=>EN,bytecode:()=>AN});var EN=[{type:"function",name:"afterAllHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"afterHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"pure"},{type:"function",name:"beforeAllHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"beforeHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"beforeHookCallCount",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"}],AN="0x608060405234801561001057600080fd5b50610263806100206000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c8063414c3e331461005c578063a145832a14610078578063d3eddcc51461008b578063e38ad59014610099578063ed4633671461005c575b600080fd5b61007661006a366004610139565b50505050505050505050565b005b610076610086366004610139565b6100b4565b610076610057366004610139565b6100a260005481565b60405190815260200160405180910390f35b6000805490806100c383610206565b919050555050505050505050505050565b60008083601f8401126100e657600080fd5b50813567ffffffffffffffff8111156100fe57600080fd5b60208301915083602082850101111561011657600080fd5b9250929050565b80356001600160a01b038116811461013457600080fd5b919050565b60008060008060008060008060008060e08b8d03121561015857600080fd5b8a3567ffffffffffffffff8082111561017057600080fd5b61017c8e838f016100d4565b909c509a5060208d013591508082111561019557600080fd5b6101a18e838f016100d4565b909a50985060408d0135975060608d01359150808211156101c157600080fd5b506101ce8d828e016100d4565b90965094505060808b013592506101e760a08c0161011d565b91506101f560c08c0161011d565b90509295989b9194979a5092959850565b60006001820161022657634e487b7160e01b600052601160045260246000fd5b506001019056fea2646970667358221220bcf0049f14343021d3eb32b64d949a39aec074b673cc386de61163856ad518a964736f6c63430008170033",_N={};Q(_N,{abi:()=>SN,bytecode:()=>IN});var SN=[],IN="0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122074ec8ae00f245173ca026cab4a450417e87849694c5e94ec4fdf9b92eee9682e64736f6c63430008170033",CN={};Q(CN,{abi:()=>PN,bytecode:()=>MN});var PN=[{type:"constructor",inputs:[{name:"_delegationManager",type:"address",internalType:"contract IDelegationManager"}],stateMutability:"nonpayable"},{type:"function",name:"afterAllHook",inputs:[{name:"_terms",type:"bytes",internalType:"bytes"},{name:"_args",type:"bytes",internalType:"bytes"},{name:"_mode",type:"bytes32",internalType:"ModeCode"},{name:"_executionCallData",type:"bytes",internalType:"bytes"},{name:"_delegationHash",type:"bytes32",internalType:"bytes32"},{name:"_delegator",type:"address",internalType:"address"},{name:"_redeemer",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"afterHook",inputs:[{name:"_terms",type:"bytes",internalType:"bytes"},{name:"_args",type:"bytes",internalType:"bytes"},{name:"_mode",type:"bytes32",internalType:"ModeCode"},{name:"_executionCallData",type:"bytes",internalType:"bytes"},{name:"_delegationHash",type:"bytes32",internalType:"bytes32"},{name:"_delegator",type:"address",internalType:"address"},{name:"_redeemer",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"beforeAllHook",inputs:[{name:"_terms",type:"bytes",internalType:"bytes"},{name:"_args",type:"bytes",internalType:"bytes"},{name:"_mode",type:"bytes32",internalType:"ModeCode"},{name:"_executionCallData",type:"bytes",internalType:"bytes"},{name:"_delegationHash",type:"bytes32",internalType:"bytes32"},{name:"_delegator",type:"address",internalType:"address"},{name:"_redeemer",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"beforeHook",inputs:[{name:"_terms",type:"bytes",internalType:"bytes"},{name:"_args",type:"bytes",internalType:"bytes"},{name:"_mode",type:"bytes32",internalType:"ModeCode"},{name:"_executionCallData",type:"bytes",internalType:"bytes"},{name:"_delegationHash",type:"bytes32",internalType:"bytes32"},{name:"_delegator",type:"address",internalType:"address"},{name:"_redeemer",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"delegationManager",inputs:[],outputs:[{name:"",type:"address",internalType:"contract IDelegationManager"}],stateMutability:"view"},{type:"error",name:"AddressEmptyCode",inputs:[{name:"target",type:"address",internalType:"address"}]},{type:"error",name:"AddressInsufficientBalance",inputs:[{name:"account",type:"address",internalType:"address"}]},{type:"error",name:"FailedInnerCall",inputs:[]}],MN="0x60a060405234801561001057600080fd5b50604051610fa1380380610fa183398101604081905261002f91610040565b6001600160a01b0316608052610070565b60006020828403121561005257600080fd5b81516001600160a01b038116811461006957600080fd5b9392505050565b608051610efc6100a560003960008181609c0152818160f8015281816102010152818161030201526103f60152610efc6000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c8063414c3e331461005c578063a145832a14610071578063d3eddcc514610084578063ea4d3c9b14610097578063ed463367146100da575b600080fd5b61006f61006a36600461084c565b6100ed565b005b61006f61007f36600461084c565b6101c7565b61006f61009236600461084c565b6102c8565b6100be7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200160405180910390f35b61006f6100e836600461084c565b6103bc565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461013e5760405162461bcd60e51b815260040161013590610918565b60405180910390fd5b6101bb8a8a8a8a6040518060a001604052808c81526020018b8b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505090825250602081018a90526001600160a01b03808a166040830152881660609091015263414c3e3360e01b6104ac565b50505050505050505050565b85600881901b6001600160f81b03198116156101f55760405162461bcd60e51b815260040161013590610968565b50336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461023e5760405162461bcd60e51b815260040161013590610918565b6102bb8b8b8b8b6040518060a001604052808d81526020018c8c8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505090825250602081018b90526001600160a01b03808b16604083015289166060909101526350a2c19560e11b6104ac565b5050505050505050505050565b85600881901b6001600160f81b03198116156102f65760405162461bcd60e51b815260040161013590610968565b50336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461033f5760405162461bcd60e51b815260040161013590610918565b6102bb8b8b8b8b6040518060a001604052808d81526020018c8c8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505090825250602081018b90526001600160a01b03808b166040830152891660609091015263d3eddcc560e01b6104ac565b85600881901b6001600160f81b03198116156103ea5760405162461bcd60e51b815260040161013590610968565b50336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146104335760405162461bcd60e51b815260040161013590610918565b6102bb8b8b8b8b6040518060a001604052808d81526020018c8c8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505090825250602081018b90526001600160a01b03808b166040830152891660609091015263ed46336760e01b5b60006104ba86880188610af1565b905060006104ca85870187610cf3565b905081518160000151106105355760405162461bcd60e51b815260206004820152602c60248201527f4c6f676963616c4f7257726170706572456e666f726365723a696e76616c696460448201526b05acee4deeae05ad2dcc8caf60a31b6064820152608401610135565b60008282600001518151811061054d5761054d610ddb565b602002602001015190506000816000015151905080836020015151146105d15760405162461bcd60e51b815260206004820152603360248201527f4c6f676963616c4f7257726170706572456e666f726365723a696e76616c696460448201527205ac6c2eccac2e85ac2e4cee65ad8cadccee8d606b1b6064820152608401610135565b60005b818110156102bb576106a8836000015182815181106105f5576105f5610ddb565b602002602001015160000151878560000151848151811061061857610618610ddb565b6020026020010151602001518760200151858151811061063a5761063a610ddb565b60200260200101518b600001518c602001518d604001518e606001518f608001516040516024016106719796959493929190610e41565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526106b1565b506001016105d4565b60606106bf838360006106c6565b9392505050565b6060814710156106eb5760405163cd78605960e01b8152306004820152602401610135565b600080856001600160a01b031684866040516107079190610eaa565b60006040518083038185875af1925050503d8060008114610744576040519150601f19603f3d011682016040523d82523d6000602084013e610749565b606091505b5091509150610759868383610763565b9695505050505050565b60608261077857610773826107bf565b6106bf565b815115801561078f57506001600160a01b0384163b155b156107b857604051639996b31560e01b81526001600160a01b0385166004820152602401610135565b50806106bf565b8051156107cf5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b60008083601f8401126107fa57600080fd5b5081356001600160401b0381111561081157600080fd5b60208301915083602082850101111561082957600080fd5b9250929050565b80356001600160a01b038116811461084757600080fd5b919050565b60008060008060008060008060008060e08b8d03121561086b57600080fd5b8a356001600160401b038082111561088257600080fd5b61088e8e838f016107e8565b909c509a5060208d01359150808211156108a757600080fd5b6108b38e838f016107e8565b909a50985060408d0135975060608d01359150808211156108d357600080fd5b506108e08d828e016107e8565b90965094505060808b013592506108f960a08c01610830565b915061090760c08c01610830565b90509295989b9194979a5092959850565b60208082526030908201527f4c6f676963616c4f7257726170706572456e666f726365723a6f6e6c792d646560408201526f3632b3b0ba34b7b716b6b0b730b3b2b960811b606082015260800190565b60208082526025908201527f436176656174456e666f726365723a696e76616c69642d657865637574696f6e6040820152642d7479706560d81b606082015260800190565b634e487b7160e01b600052604160045260246000fd5b604051602081016001600160401b03811182821017156109e5576109e56109ad565b60405290565b604051606081016001600160401b03811182821017156109e5576109e56109ad565b604080519081016001600160401b03811182821017156109e5576109e56109ad565b604051601f8201601f191681016001600160401b0381118282101715610a5757610a576109ad565b604052919050565b60006001600160401b03821115610a7857610a786109ad565b5060051b60200190565b600082601f830112610a9357600080fd5b81356001600160401b03811115610aac57610aac6109ad565b610abf601f8201601f1916602001610a2f565b818152846020838601011115610ad457600080fd5b816020850160208301376000918101602001919091529392505050565b600060208284031215610b0357600080fd5b6001600160401b0382351115610b1857600080fd5b8135820183601f820112610b2b57600080fd5b610b3d610b388235610a5f565b610a2f565b81358082526020808301929160051b840101861015610b5b57600080fd5b602083015b6020843560051b850101811015610ce9576001600160401b0381351115610b8657600080fd5b6020813585018803601f19011215610b9d57600080fd5b610ba56109c3565b6001600160401b0360208335870101351115610bc057600080fd5b81358501602081013501603f81018913610bd957600080fd5b610be9610b386020830135610a5f565b602082810135808352908201919060051b83016040018b1015610c0b57600080fd5b604083015b6040602085013560051b850101811015610cd6576001600160401b0381351115610c3957600080fd5b803584016060818e03603f19011215610c5157600080fd5b610c596109eb565b610c6560408301610830565b81526001600160401b0360608301351115610c7f57600080fd5b610c928e60406060850135850101610a82565b60208201526001600160401b0360808301351115610caf57600080fd5b610cc28e60406080850135850101610a82565b604082015284525060209283019201610c10565b5083525050835260209283019201610b60565b5095945050505050565b60006020808385031215610d0657600080fd5b82356001600160401b0380821115610d1d57600080fd5b9084019060408287031215610d3157600080fd5b610d39610a0d565b823581528383013582811115610d4e57600080fd5b80840193505086601f840112610d6357600080fd5b8235610d71610b3882610a5f565b81815260059190911b84018501908581019089831115610d9057600080fd5b8686015b83811015610dc857803586811115610dac5760008081fd5b610dba8c8a838b0101610a82565b845250918701918701610d94565b5095830195909552509695505050505050565b634e487b7160e01b600052603260045260246000fd5b60005b83811015610e0c578181015183820152602001610df4565b50506000910152565b60008151808452610e2d816020860160208601610df1565b601f01601f19169290920160200192915050565b60e081526000610e5460e083018a610e15565b8281036020840152610e66818a610e15565b90508760408401528281036060840152610e808188610e15565b608084019690965250506001600160a01b0392831660a0820152911660c090910152949350505050565b60008251610ebc818460208701610df1565b919091019291505056fea2646970667358221220849f3e028a14dd0caba34e88e124f67834a95e85298a8ec49d35e542d61e676b64736f6c63430008170033",$N={};Q($N,{abi:()=>ON,bytecode:()=>RN});var ON=[{type:"function",name:"afterAllHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"afterHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"afterHookCallCount",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"beforeAllHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"beforeHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"beforeHookCallCount",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"}],RN="0x608060405234801561001057600080fd5b5061028c806100206000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c8063414c3e33146100675780637c46d3c814610083578063a145832a1461009e578063d3eddcc5146100b1578063e38ad590146100c4578063ed46336714610067575b600080fd5b610081610075366004610162565b50505050505050505050565b005b61008c60015481565b60405190815260200160405180910390f35b6100816100ac366004610162565b6100cd565b6100816100bf366004610162565b6100ed565b61008c60005481565b6000805490806100dc8361022f565b919050555050505050505050505050565b600180549060006100dc8361022f565b60008083601f84011261010f57600080fd5b50813567ffffffffffffffff81111561012757600080fd5b60208301915083602082850101111561013f57600080fd5b9250929050565b80356001600160a01b038116811461015d57600080fd5b919050565b60008060008060008060008060008060e08b8d03121561018157600080fd5b8a3567ffffffffffffffff8082111561019957600080fd5b6101a58e838f016100fd565b909c509a5060208d01359150808211156101be57600080fd5b6101ca8e838f016100fd565b909a50985060408d0135975060608d01359150808211156101ea57600080fd5b506101f78d828e016100fd565b90965094505060808b0135925061021060a08c01610146565b915061021e60c08c01610146565b90509295989b9194979a5092959850565b60006001820161024f57634e487b7160e01b600052601160045260246000fd5b506001019056fea2646970667358221220fbb59fec9ec7bf6cdda251d9d498ff456d0623f22ca1f4ef5f02ab03744fc44c64736f6c63430008170033",BN={};Q(BN,{abi:()=>NN,bytecode:()=>DN});var NN=[{type:"constructor",inputs:[{name:"_delegationManager",type:"address",internalType:"contract IDelegationManager"},{name:"_argsEqualityCheckEnforcer",type:"address",internalType:"address"}],stateMutability:"nonpayable"},{type:"function",name:"afterAllHook",inputs:[{name:"_terms",type:"bytes",internalType:"bytes"},{name:"_args",type:"bytes",internalType:"bytes"},{name:"_mode",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"_delegationHash",type:"bytes32",internalType:"bytes32"},{name:"_delegator",type:"address",internalType:"address"},{name:"_redeemer",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"afterHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"argsEqualityCheckEnforcer",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"beforeAllHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"beforeHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"delegationManager",inputs:[],outputs:[{name:"",type:"address",internalType:"contract IDelegationManager"}],stateMutability:"view"},{type:"function",name:"getTermsInfo",inputs:[{name:"_terms",type:"bytes",internalType:"bytes"}],outputs:[{name:"recipient_",type:"address",internalType:"address"},{name:"amount_",type:"uint256",internalType:"uint256"}],stateMutability:"pure"},{type:"event",name:"ValidatedPayment",inputs:[{name:"sender",type:"address",indexed:!0,internalType:"address"},{name:"delegationHash",type:"bytes32",indexed:!0,internalType:"bytes32"},{name:"recipient",type:"address",indexed:!0,internalType:"address"},{name:"delegator",type:"address",indexed:!1,internalType:"address"},{name:"redeemer",type:"address",indexed:!1,internalType:"address"},{name:"amount",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1}],DN="0x60c060405234801561001057600080fd5b506040516111b73803806111b783398101604081905261002f9161005e565b6001600160a01b039182166080521660a052610098565b6001600160a01b038116811461005b57600080fd5b50565b6000806040838503121561007157600080fd5b825161007c81610046565b602084015190925061008d81610046565b809150509250929050565b60805160a0516110e66100d16000396000818160a301526103c001526000818161011901528181610273015261065a01526110e66000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c8063b99deb0e1161005b578063b99deb0e146100e2578063d3eddcc514610082578063ea4d3c9b14610114578063ed4633671461013b57600080fd5b8063414c3e3314610082578063a145832a14610082578063a42ff9311461009e575b600080fd5b61009c6100903660046108d5565b50505050505050505050565b005b6100c57f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b6100f56100f03660046109a2565b61014e565b604080516001600160a01b0390931683526020830191909152016100d9565b6100c57f000000000000000000000000000000000000000000000000000000000000000081565b61009c6101493660046108d5565b6101fc565b600080603483146101be5760405162461bcd60e51b815260206004820152602f60248201527f4e6174697665546f6b656e5061796d656e74456e666f726365723a696e76616c60448201526e0d2c85ae8cae4dae65ad8cadccee8d608b1b60648201526084015b60405180910390fd5b6101cc6014600085876109e4565b6101d591610a0e565b60601c91506101e783601481876109e4565b6101f091610a43565b60001c90509250929050565b85600881901b61020d8160006107ac565b6102675760405162461bcd60e51b815260206004820152602560248201527f436176656174456e666f726365723a696e76616c69642d657865637574696f6e6044820152642d7479706560d81b60648201526084016101b5565b50336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146102fb5760405162461bcd60e51b815260206004820152603260248201527f4e6174697665546f6b656e5061796d656e74456e666f726365723a6f6e6c792d6044820152713232b632b3b0ba34b7b716b6b0b730b3b2b960711b60648201526084016101b5565b6000806103088d8d61014e565b9092509050600061031b8b8d018d610c88565b905060008151116103945760405162461bcd60e51b815260206004820152603f60248201527f4e6174697665546f6b656e5061796d656e74456e666f726365723a696e76616c60448201527f69642d616c6c6f77616e63652d64656c65676174696f6e732d6c656e6774680060648201526084016101b5565b6000816000815181106103a9576103a9610dcd565b6020026020010151606001515111801561043057507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816000815181106103fb576103fb610dcd565b60200260200101516060015160008151811061041957610419610dcd565b6020026020010151600001516001600160a01b0316145b6104a25760405162461bcd60e51b815260206004820152603c60248201527f4e6174697665546f6b656e5061796d656e74456e666f726365723a6d6973736960448201527f6e672d61726773457175616c697479436865636b456e666f726365720000000060648201526084016101b5565b86856040516020016104d092919091825260601b6bffffffffffffffffffffffff1916602082015260340190565b604051602081830303815290604052816000815181106104f2576104f2610dcd565b60200260200101516060015160008151811061051057610510610dcd565b602090810291909101015160409081019190915280516001808252818301909252600091816020015b6060815260200190600190039081610539579050509050816040516020016105619190610e33565b6040516020818303038152906040528160008151811061058357610583610dcd565b6020908102919091010152604080516001808252818301909252600091816020015b60608152602001906001900390816105a55790505090506105d68585604051806020016040528060008152506107c3565b816000815181106105e9576105e9610dcd565b60209081029190910101526040805160018082528183019092526000918160200160208202803683370190505090506106206107f2565b8160008151811061063357610633610dcd565b602090810291909101015260405163cef6d20960e01b81526001600160a01b0380881631917f00000000000000000000000000000000000000000000000000000000000000009091169063cef6d2099061069590879086908890600401610fbf565b600060405180830381600087803b1580156106af57600080fd5b505af11580156106c3573d6000803e3d6000fd5b505050506001600160a01b038716316106dc8783611029565b8110156107435760405162461bcd60e51b815260206004820152602f60248201527f4e6174697665546f6b656e5061796d656e74456e666f726365723a7061796d6560448201526e1b9d0b5b9bdd0b5c9958d95a5d9959608a1b60648201526084016101b5565b604080516001600160a01b038d811682528c81166020830152918101899052908916908d9033907fac266e0d9b66169d0dc4479d531985bcec62dfd9d7992d0f6865afdbb7baa5e29060600160405180910390a450505050505050505050505050505050505050565b6001600160f81b0319828116908216145b92915050565b60608383836040516020016107da9392919061104a565b60405160208183030381529060405290509392505050565b600061080081808080610805565b905090565b604080516001600160f81b03198087166020830152851660218201526000602282018190526001600160e01b03198516602683015269ffffffffffffffffffff198416602a830152910160405160208183030381529060405261086790611089565b95945050505050565b60008083601f84011261088257600080fd5b50813567ffffffffffffffff81111561089a57600080fd5b6020830191508360208285010111156108b257600080fd5b9250929050565b80356001600160a01b03811681146108d057600080fd5b919050565b60008060008060008060008060008060e08b8d0312156108f457600080fd5b8a3567ffffffffffffffff8082111561090c57600080fd5b6109188e838f01610870565b909c509a5060208d013591508082111561093157600080fd5b61093d8e838f01610870565b909a50985060408d0135975060608d013591508082111561095d57600080fd5b5061096a8d828e01610870565b90965094505060808b0135925061098360a08c016108b9565b915061099160c08c016108b9565b90509295989b9194979a5092959850565b600080602083850312156109b557600080fd5b823567ffffffffffffffff8111156109cc57600080fd5b6109d885828601610870565b90969095509350505050565b600080858511156109f457600080fd5b83861115610a0157600080fd5b5050820193919092039150565b6bffffffffffffffffffffffff198135818116916014851015610a3b5780818660140360031b1b83161692505b505092915050565b803560208310156107bd57600019602084900360031b1b1692915050565b634e487b7160e01b600052604160045260246000fd5b6040516060810167ffffffffffffffff81118282101715610a9a57610a9a610a61565b60405290565b60405160c0810167ffffffffffffffff81118282101715610a9a57610a9a610a61565b604051601f8201601f1916810167ffffffffffffffff81118282101715610aec57610aec610a61565b604052919050565b600067ffffffffffffffff821115610b0e57610b0e610a61565b5060051b60200190565b600082601f830112610b2957600080fd5b813567ffffffffffffffff811115610b4357610b43610a61565b610b56601f8201601f1916602001610ac3565b818152846020838601011115610b6b57600080fd5b816020850160208301376000918101602001919091529392505050565b600082601f830112610b9957600080fd5b81356020610bae610ba983610af4565b610ac3565b82815260059290921b84018101918181019086841115610bcd57600080fd5b8286015b84811015610c7d57803567ffffffffffffffff80821115610bf25760008081fd5b908801906060828b03601f1901811315610c0c5760008081fd5b610c14610a77565b610c1f8885016108b9565b815260408085013584811115610c355760008081fd5b610c438e8b83890101610b18565b838b015250918401359183831115610c5b5760008081fd5b610c698d8a85880101610b18565b908201528652505050918301918301610bd1565b509695505050505050565b60006020808385031215610c9b57600080fd5b823567ffffffffffffffff80821115610cb357600080fd5b818501915085601f830112610cc757600080fd5b8135610cd5610ba982610af4565b81815260059190911b83018401908481019088831115610cf457600080fd5b8585015b83811015610dc057803585811115610d0f57600080fd5b860160c0818c03601f19011215610d265760008081fd5b610d2e610aa0565b610d398983016108b9565b81526040610d488184016108b9565b8a83015260608084013582840152608091508184013589811115610d6c5760008081fd5b610d7a8f8d83880101610b88565b82850152505060a0808401358284015260c0840135915088821115610d9f5760008081fd5b610dad8e8c84870101610b18565b9083015250845250918601918601610cf8565b5098975050505050505050565b634e487b7160e01b600052603260045260246000fd5b60005b83811015610dfe578181015183820152602001610de6565b50506000910152565b60008151808452610e1f816020860160208601610de3565b601f01601f19169290920160200192915050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015610f5857603f19888603018452815160c0860160018060a01b038083511688528089840151168989015260408301516040890152606083015160c060608a015282815180855260e08b01915060e08160051b8c010194508b8301925060005b81811015610f1c5760df198c870301835283518581511687528d81015160608f890152610eed6060890182610e07565b9050604082015191508781036040890152610f088183610e07565b97505050928c0192918c0191600101610ebd565b50505050506080820151608088015260a0820151915086810360a0880152610f448183610e07565b965050509285019290850190600101610e5a565b5092979650505050505050565b60008282518085526020808601955060208260051b8401016020860160005b84811015610fb257601f19868403018952610fa0838351610e07565b98840198925090830190600101610f84565b5090979650505050505050565b606081526000610fd26060830186610f65565b82810360208481019190915285518083528682019282019060005b8181101561100957845183529383019391830191600101610fed565b5050848103604086015261101d8187610f65565b98975050505050505050565b808201808211156107bd57634e487b7160e01b600052601160045260246000fd5b6bffffffffffffffffffffffff198460601b1681528260148201526000825161107a816034850160208701610de3565b91909101603401949350505050565b805160208083015191908110156110aa576000198160200360031b1b821691505b5091905056fea264697066735822122085080b51672c95cef1f0b772853b91117f909ad9d873a40d2cad7c2b29f5117c64736f6c63430008170033",yp={};Q(yp,{abi:()=>kN,bytecode:()=>LN});var kN=[{type:"function",name:"afterAllHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"afterHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"beforeAllHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"beforeHook",inputs:[{name:"_terms",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"_mode",type:"bytes32",internalType:"ModeCode"},{name:"_executionCallData",type:"bytes",internalType:"bytes"},{name:"_delegationHash",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"_redeemer",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"getAvailableAmount",inputs:[{name:"_delegationHash",type:"bytes32",internalType:"bytes32"},{name:"_delegationManager",type:"address",internalType:"address"},{name:"_terms",type:"bytes",internalType:"bytes"}],outputs:[{name:"availableAmount_",type:"uint256",internalType:"uint256"},{name:"isNewPeriod_",type:"bool",internalType:"bool"},{name:"currentPeriod_",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getTermsInfo",inputs:[{name:"_terms",type:"bytes",internalType:"bytes"}],outputs:[{name:"periodAmount_",type:"uint256",internalType:"uint256"},{name:"periodDuration_",type:"uint256",internalType:"uint256"},{name:"startDate_",type:"uint256",internalType:"uint256"}],stateMutability:"pure"},{type:"function",name:"periodicAllowances",inputs:[{name:"delegationManager",type:"address",internalType:"address"},{name:"delegationHash",type:"bytes32",internalType:"bytes32"}],outputs:[{name:"periodAmount",type:"uint256",internalType:"uint256"},{name:"periodDuration",type:"uint256",internalType:"uint256"},{name:"startDate",type:"uint256",internalType:"uint256"},{name:"lastTransferPeriod",type:"uint256",internalType:"uint256"},{name:"transferredInCurrentPeriod",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"event",name:"TransferredInPeriod",inputs:[{name:"sender",type:"address",indexed:!0,internalType:"address"},{name:"redeemer",type:"address",indexed:!0,internalType:"address"},{name:"delegationHash",type:"bytes32",indexed:!0,internalType:"bytes32"},{name:"periodAmount",type:"uint256",indexed:!1,internalType:"uint256"},{name:"periodDuration",type:"uint256",indexed:!1,internalType:"uint256"},{name:"startDate",type:"uint256",indexed:!1,internalType:"uint256"},{name:"transferredInCurrentPeriod",type:"uint256",indexed:!1,internalType:"uint256"},{name:"transferTimestamp",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1}],LN="0x608060405234801561001057600080fd5b50610b57806100206000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c8063a145832a1161005b578063a145832a1461013e578063b99deb0e14610151578063d3eddcc514610082578063ed4633671461008257600080fd5b8063414c3e33146100825780636a9843f61461009e5780637b91dc78146100d1575b600080fd5b61009c610090366004610893565b50505050505050505050565b005b6100b16100ac366004610960565b61017f565b604080519384529115156020840152908201526060015b60405180910390f35b6101166100df3660046109ba565b6000602081815292815260408082209093529081522080546001820154600283015460038401546004909401549293919290919085565b604080519586526020860194909452928401919091526060830152608082015260a0016100c8565b61009c61014c366004610893565b610255565b61016461015f3660046109e4565b61033a565b604080519384526020840192909252908201526060016100c8565b6001600160a01b0383166000908152602081815260408083208784528252808320815160a0810183528154815260018201549381019390935260028101549183018290526003810154606084015260040154608083015282918291156101f4576101e8816103f0565b9350935093505061024b565b6000806000610203898961033a565b92509250925060006040518060a00160405280858152602001848152602001838152602001600081526020016000815250905061023f816103f0565b97509750975050505050505b9450945094915050565b85610261816000610484565b6102b25760405162461bcd60e51b815260206004820181905260248201527f436176656174456e666f726365723a696e76616c69642d63616c6c2d7479706560448201526064015b60405180910390fd5b86600881901b6102c3816000610484565b61031d5760405162461bcd60e51b815260206004820152602560248201527f436176656174456e666f726365723a696e76616c69642d657865637574696f6e6044820152642d7479706560d81b60648201526084016102a9565b5061032c8c8c8989898861049b565b505050505050505050505050565b600080806060841461039b5760405162461bcd60e51b81526020600482015260366024820152600080516020610b028339815191526044820152750e474d2dcecc2d8d2c85ae8cae4dae65ad8cadccee8d60531b60648201526084016102a9565b6103a9602060008688610a26565b6103b291610a50565b92506103c2604060208688610a26565b6103cb91610a50565b91506103db606060408688610a26565b6103e491610a50565b60001c90509250925092565b6000806000836040015142101561040f5750600091508190508061047d565b602084015160408501516104239042610a84565b61042d9190610a97565b610438906001610ab9565b905080846060015114159150600082610455578460800151610458565b60005b90508085600001511161046c576000610479565b8451610479908290610a84565b9350505b9193909250565b6001600160f81b0319828116908216145b92915050565b60006104a785856107dd565b505091505060008060006104bb8a8a61033a565b336000908152602081815260408083208c84529091528120600281015494975092955090935090919003610684576000821161054d5760405162461bcd60e51b81526020600482015260396024820152600080516020610b0283398151915260448201527f723a696e76616c69642d7a65726f2d73746172742d646174650000000000000060648201526084016102a9565b600084116105b15760405162461bcd60e51b815260206004820152603c6024820152600080516020610b0283398151915260448201527f723a696e76616c69642d7a65726f2d706572696f642d616d6f756e740000000060648201526084016102a9565b600083116106155760405162461bcd60e51b815260206004820152603e6024820152600080516020610b0283398151915260448201527f723a696e76616c69642d7a65726f2d706572696f642d6475726174696f6e000060648201526084016102a9565b814210156106725760405162461bcd60e51b81526020600482015260366024820152600080516020610b028339815191526044820152751c8e9d1c985b9cd9995c8b5b9bdd0b5cdd185c9d195960521b60648201526084016102a9565b83815560018101839055600281018290555b60008060006106cf846040518060a0016040529081600082015481526020016001820154815260200160028201548152602001600382015481526020016004820154815250506103f0565b925092509250828811156107395760405162461bcd60e51b815260206004820152603a6024820152600080516020610b0283398151915260448201527f723a7472616e736665722d616d6f756e742d657863656564656400000000000060648201526084016102a9565b811561074e5760038401819055600060048501555b878460040160008282546107629190610ab9565b909155505060028401546004850154604080518a8152602081018a90529081019290925260608201524260808201528a906001600160a01b038b169033907f22e1bbd8bc0380d336958afc37cd8cb128d6c43891ed276162c30e8df467734d9060a00160405180910390a45050505050505050505050505050565b60008036816107ef6014828789610a26565b6107f891610acc565b60601c935061080b603460148789610a26565b61081491610a50565b92506108238560348189610a26565b949793965094505050565b60008083601f84011261084057600080fd5b50813567ffffffffffffffff81111561085857600080fd5b60208301915083602082850101111561087057600080fd5b9250929050565b80356001600160a01b038116811461088e57600080fd5b919050565b60008060008060008060008060008060e08b8d0312156108b257600080fd5b8a3567ffffffffffffffff808211156108ca57600080fd5b6108d68e838f0161082e565b909c509a5060208d01359150808211156108ef57600080fd5b6108fb8e838f0161082e565b909a50985060408d0135975060608d013591508082111561091b57600080fd5b506109288d828e0161082e565b90965094505060808b0135925061094160a08c01610877565b915061094f60c08c01610877565b90509295989b9194979a5092959850565b6000806000806060858703121561097657600080fd5b8435935061098660208601610877565b9250604085013567ffffffffffffffff8111156109a257600080fd5b6109ae8782880161082e565b95989497509550505050565b600080604083850312156109cd57600080fd5b6109d683610877565b946020939093013593505050565b600080602083850312156109f757600080fd5b823567ffffffffffffffff811115610a0e57600080fd5b610a1a8582860161082e565b90969095509350505050565b60008085851115610a3657600080fd5b83861115610a4357600080fd5b5050820193919092039150565b8035602083101561049557600019602084900360031b1b1692915050565b634e487b7160e01b600052601160045260246000fd5b8181038181111561049557610495610a6e565b600082610ab457634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561049557610495610a6e565b6bffffffffffffffffffffffff198135818116916014851015610af95780818660140360031b1b83161692505b50509291505056fe4e6174697665546f6b656e506572696f645472616e73666572456e666f726365a2646970667358221220ddbfb33bfc3119eae666e9c14c2e492d38eed690114f0ed176d6eb49d0bc21a364736f6c63430008170033",FN={};Q(FN,{abi:()=>UN,bytecode:()=>HN});var UN=[{type:"function",name:"getNonce",inputs:[{name:"sender",type:"address",internalType:"address"},{name:"key",type:"uint192",internalType:"uint192"}],outputs:[{name:"nonce",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"incrementNonce",inputs:[{name:"key",type:"uint192",internalType:"uint192"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"nonceSequenceNumber",inputs:[{name:"",type:"address",internalType:"address"},{name:"",type:"uint192",internalType:"uint192"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"}],HN="0x",J5={};Q(J5,{abi:()=>GN,bytecode:()=>zN});var GN=[{type:"function",name:"afterAllHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"afterHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"beforeAllHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"beforeHook",inputs:[{name:"_terms",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"_mode",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"_delegator",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"view"},{type:"function",name:"currentNonce",inputs:[{name:"delegationManager",type:"address",internalType:"address"},{name:"delegator",type:"address",internalType:"address"}],outputs:[{name:"nonce",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getTermsInfo",inputs:[{name:"_terms",type:"bytes",internalType:"bytes"}],outputs:[{name:"nonce_",type:"uint256",internalType:"uint256"}],stateMutability:"pure"},{type:"function",name:"incrementNonce",inputs:[{name:"_delegationManager",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"event",name:"UsedNonce",inputs:[{name:"delegationManager",type:"address",indexed:!0,internalType:"address"},{name:"delegator",type:"address",indexed:!0,internalType:"address"},{name:"nonce",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1}],zN="0x608060405234801561001057600080fd5b5061050e806100206000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c8063b99deb0e1161005b578063b99deb0e146100eb578063d3eddcc5146100bc578063ed463367146100bc578063f5743c4c146100fe57600080fd5b80632bd4ed2114610082578063414c3e33146100bc578063a145832a146100d8575b600080fd5b6100aa610090366004610314565b600060208181529281526040808220909352908152205481565b60405190815260200160405180910390f35b6100d66100ca366004610390565b50505050505050505050565b005b6100d66100e6366004610390565b610111565b6100aa6100f936600461045d565b61020f565b6100d661010c36600461049f565b61027d565b85600881901b6101228160006102e1565b6101815760405162461bcd60e51b815260206004820152602560248201527f436176656174456e666f726365723a696e76616c69642d657865637574696f6e6044820152642d7479706560d81b60648201526084015b60405180910390fd5b50600061018e8c8c61020f565b336000908152602081815260408083206001600160a01b038916845290915290205490915081146102015760405162461bcd60e51b815260206004820152601b60248201527f4e6f6e6365456e666f726365723a696e76616c69642d6e6f6e636500000000006044820152606401610178565b505050505050505050505050565b60006020821461026c5760405162461bcd60e51b815260206004820152602260248201527f4e6f6e6365456e666f726365723a696e76616c69642d7465726d732d6c656e676044820152610e8d60f31b6064820152608401610178565b61027682846104ba565b9392505050565b6001600160a01b038116600081815260208181526040808320338085529083529281902080546001810190915590518181529093917fe02d340254c92bc3ad96f0fceb790db939e11c669c1f4c8a549d248f17130b33910160405180910390a35050565b6001600160f81b0319828116908216145b92915050565b80356001600160a01b038116811461030f57600080fd5b919050565b6000806040838503121561032757600080fd5b610330836102f8565b915061033e602084016102f8565b90509250929050565b60008083601f84011261035957600080fd5b50813567ffffffffffffffff81111561037157600080fd5b60208301915083602082850101111561038957600080fd5b9250929050565b60008060008060008060008060008060e08b8d0312156103af57600080fd5b8a3567ffffffffffffffff808211156103c757600080fd5b6103d38e838f01610347565b909c509a5060208d01359150808211156103ec57600080fd5b6103f88e838f01610347565b909a50985060408d0135975060608d013591508082111561041857600080fd5b506104258d828e01610347565b90965094505060808b0135925061043e60a08c016102f8565b915061044c60c08c016102f8565b90509295989b9194979a5092959850565b6000806020838503121561047057600080fd5b823567ffffffffffffffff81111561048757600080fd5b61049385828601610347565b90969095509350505050565b6000602082840312156104b157600080fd5b610276826102f8565b803560208310156102f257600019602084900360031b1b169291505056fea26469706673582212205626dd2329dbdfa25ba379781a5be6c8fc6ae0eb3a22e9122f5d8207bb7de74564736f6c63430008170033",pp={};Q(pp,{abi:()=>jN,bytecode:()=>VN});var jN=[{type:"function",name:"afterAllHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"afterHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"beforeAllHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"beforeHook",inputs:[{name:"_terms",type:"bytes",internalType:"bytes"},{name:"_args",type:"bytes",internalType:"bytes"},{name:"_mode",type:"bytes32",internalType:"ModeCode"},{name:"_executionCallData",type:"bytes",internalType:"bytes"},{name:"_delegationHash",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"_redeemer",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"getAllTermsInfo",inputs:[{name:"_terms",type:"bytes",internalType:"bytes"}],outputs:[{name:"tokens_",type:"address[]",internalType:"address[]"},{name:"periodAmounts_",type:"uint256[]",internalType:"uint256[]"},{name:"periodDurations_",type:"uint256[]",internalType:"uint256[]"},{name:"startDates_",type:"uint256[]",internalType:"uint256[]"}],stateMutability:"pure"},{type:"function",name:"getAvailableAmount",inputs:[{name:"_delegationHash",type:"bytes32",internalType:"bytes32"},{name:"_delegationManager",type:"address",internalType:"address"},{name:"_terms",type:"bytes",internalType:"bytes"},{name:"_args",type:"bytes",internalType:"bytes"}],outputs:[{name:"availableAmount_",type:"uint256",internalType:"uint256"},{name:"isNewPeriod_",type:"bool",internalType:"bool"},{name:"currentPeriod_",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getHashKey",inputs:[{name:"_caller",type:"address",internalType:"address"},{name:"_token",type:"address",internalType:"address"},{name:"_delegationHash",type:"bytes32",internalType:"bytes32"},{name:"_index",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"pure"},{type:"function",name:"getTermsInfo",inputs:[{name:"_terms",type:"bytes",internalType:"bytes"},{name:"_tokenIndex",type:"uint256",internalType:"uint256"}],outputs:[{name:"token_",type:"address",internalType:"address"},{name:"periodAmount_",type:"uint256",internalType:"uint256"},{name:"periodDuration_",type:"uint256",internalType:"uint256"},{name:"startDate_",type:"uint256",internalType:"uint256"}],stateMutability:"pure"},{type:"function",name:"periodicAllowances",inputs:[{name:"hashKey",type:"bytes32",internalType:"bytes32"}],outputs:[{name:"periodAmount",type:"uint256",internalType:"uint256"},{name:"periodDuration",type:"uint256",internalType:"uint256"},{name:"startDate",type:"uint256",internalType:"uint256"},{name:"lastTransferPeriod",type:"uint256",internalType:"uint256"},{name:"transferredInCurrentPeriod",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"event",name:"TransferredInPeriod",inputs:[{name:"sender",type:"address",indexed:!0,internalType:"address"},{name:"redeemer",type:"address",indexed:!0,internalType:"address"},{name:"delegationHash",type:"bytes32",indexed:!0,internalType:"bytes32"},{name:"token",type:"address",indexed:!1,internalType:"address"},{name:"periodAmount",type:"uint256",indexed:!1,internalType:"uint256"},{name:"periodDuration",type:"uint256",indexed:!1,internalType:"uint256"},{name:"startDate",type:"uint256",indexed:!1,internalType:"uint256"},{name:"transferredInCurrentPeriod",type:"uint256",indexed:!1,internalType:"uint256"},{name:"transferTimestamp",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1}],VN="0x608060405234801561001057600080fd5b5061148b806100206000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c8063a145832a11610066578063a145832a1461014b578063d3eddcc5146100c4578063da8081c21461015e578063ed463367146100c4578063f5c7d74e146101c357600080fd5b806319de6ebc14610098578063414c3e33146100c4578063733c0d80146100e05780638572e3191461011d575b600080fd5b6100ab6100a6366004610f6f565b6101e4565b6040516100bb9493929190610fed565b60405180910390f35b6100de6100d2366004611094565b50505050505050505050565b005b6100f36100ee366004611161565b6104b6565b604080516001600160a01b03909516855260208501939093529183015260608201526080016100bb565b61013061012b3660046111ad565b61062a565b604080519384529115156020840152908201526060016100bb565b6100de610159366004611094565b6106fc565b61019b61016c366004611237565b600060208190529081526040902080546001820154600283015460038401546004909401549293919290919085565b604080519586526020860194909452928401919091526060830152608082015260a0016100bb565b6101d66101d1366004611250565b6107de565b6040519081526020016100bb565b6060808080846101f56074826112a8565b15801561020157508015155b6102265760405162461bcd60e51b815260040161021d906112bc565b60405180910390fd5b600061023360748361130d565b90508067ffffffffffffffff81111561024e5761024e611321565b604051908082528060200260200182016040528015610277578160200160208202803683370190505b5095508067ffffffffffffffff81111561029357610293611321565b6040519080825280602002602001820160405280156102bc578160200160208202803683370190505b5094508067ffffffffffffffff8111156102d8576102d8611321565b604051908082528060200260200182016040528015610301578160200160208202803683370190505b5093508067ffffffffffffffff81111561031d5761031d611321565b604051908082528060200260200182016040528015610346578160200160208202803683370190505b50925060005b818110156104aa576000610361826074611337565b905089818a61037182601461134e565b9261037e93929190611361565b6103879161138b565b60601c88838151811061039c5761039c6113c0565b6001600160a01b039092166020928302919091019091015289896103c183601461134e565b906103cd84603461134e565b926103da93929190611361565b6103e3916113d6565b60001c8783815181106103f8576103f86113c0565b6020908102919091010152898961041083603461134e565b9061041c84605461134e565b9261042993929190611361565b610432916113d6565b60001c868381518110610447576104476113c0565b6020908102919091010152898961045f83605461134e565b9061046b84607461134e565b9261047893929190611361565b610481916113d6565b60001c858381518110610496576104966113c0565b60209081029190910101525060010161034c565b50505092959194509250565b60008080808580158015906104d357506104d16074826112a8565b155b6104ef5760405162461bcd60e51b815260040161021d906112bc565b60006104fc60748361130d565b90508087106105505760405162461bcd60e51b815260206004820152602c602482015260008051602061143683398151915260448201526b05ae8ded6cadc5ad2dcc8caf60a31b606482015260840161021d565b600061055d886074611337565b905089818a61056d82601461134e565b9261057a93929190611361565b6105839161138b565b60601c9650898961059583601461134e565b906105a184603461134e565b926105ae93929190611361565b6105b7916113d6565b955089896105c683603461134e565b906105d284605461134e565b926105df93929190611361565b6105e8916113d6565b945089896105f783605461134e565b9061060384607461134e565b9261061093929190611361565b610619916113d6565b60001c935050505093509350935093565b60008060008060008060006106438d8d8d8d8d8d6107f5565b60008481526020818152604091829020825160a081018452815481526001820154928101929092526002810154928201839052600381015460608301526004015460808201529498509296509094509250156106b2576106a28161083c565b97509750975050505050506106f0565b6040805160a0810182528581526020810185905290810183905260006060820181905260808201526106e38161083c565b9850985098505050505050505b96509650969350505050565b856107088160006108d0565b6107545760405162461bcd60e51b815260206004820181905260248201527f436176656174456e666f726365723a696e76616c69642d63616c6c2d74797065604482015260640161021d565b86600881901b6107658160006108d0565b6107bf5760405162461bcd60e51b815260206004820152602560248201527f436176656174456e666f726365723a696e76616c69642d657865637574696f6e6044820152642d7479706560d81b606482015260840161021d565b506107d08c8c8c8c8b8b8b8a6108e7565b505050505050505050505050565b60006107ec85858585610e8b565b95945050505050565b60008080808061080786880188611237565b905060006108168a8a846104b6565b91975095509350905061082b8b828e85610e8b565b955050509650965096509692505050565b6000806000836040015142101561085b575060009150819050806108c9565b6020840151604085015161086f90426113f4565b610879919061130d565b61088490600161134e565b9050808460600151141591506000826108a15784608001516108a4565b60005b9050808560000151116108b85760006108c5565b84516108c59082906113f4565b9350505b9193909250565b6001600160f81b0319828116908216145b92915050565b6000806000803660006108fa8a8a610ed5565b935093509350935081819050604403610a0657821561096f5760405162461bcd60e51b8152602060048201526038602482015260008051602061143683398151915260448201527f2d76616c75652d696e2d65726332302d7472616e736665720000000000000000606482015260840161021d565b63a9059cbb60e01b610985600460008486611361565b61098e91611407565b6001600160e01b031916146109e35760405162461bcd60e51b815260206004820152602760248201526000805160206114368339815191526044820152660b5b595d1a1bd960ca1b606482015260840161021d565b92935083926109f6604460248385611361565b6109ff916113d6565b9550610acf565b6000819003610a7f5760008311610a735760405162461bcd60e51b815260206004820152603e602482015260008051602061143683398151915260448201527f2d7a65726f2d76616c75652d696e2d6e61746976652d7472616e736665720000606482015260840161021d565b60009450829550610acf565b60405162461bcd60e51b8152602060048201526031602482015260008051602061143683398151915260448201527005ac6c2d8d85ac8c2e8c25ad8cadccee8d607b1b606482015260840161021d565b5060009250610ae3915050888a018a611237565b9050600080600080610af68f8f876104b6565b9350935093509350836001600160a01b0316866001600160a01b031614610b6f5760405162461bcd60e51b815260206004820152602760248201527f4d756c7469546f6b656e506572696f64456e666f726365723a746f6b656e2d6d6044820152660d2e6dac2e8c6d60cb1b606482015260840161021d565b6000610b7d33888c89610e8b565b60008181526020819052604081206002810154929350919003610d1f5760008311610bf15760405162461bcd60e51b8152602060048201526030602482015260008051602061143683398151915260448201526f2d7a65726f2d73746172742d6461746560801b606482015260840161021d565b60008511610c4b5760405162461bcd60e51b815260206004820152603360248201526000805160206114368339815191526044820152720b5e995c9bcb5c195c9a5bd90b585b5bdd5b9d606a1b606482015260840161021d565b60008411610ca75760405162461bcd60e51b8152602060048201526035602482015260008051602061143683398151915260448201527416bd32b93796b832b934b7b216b23ab930ba34b7b760591b606482015260840161021d565b82421015610d0d5760405162461bcd60e51b815260206004820152602d60248201527f4d756c7469546f6b656e506572696f64456e666f726365723a7472616e73666560448201526c1c8b5b9bdd0b5cdd185c9d1959609a1b606482015260840161021d565b84815560018101849055600281018390555b6000806000610d6a846040518060a00160405290816000820154815260200160018201548152602001600282015481526020016003820154815260200160048201548152505061083c565b925092509250828c1115610dda5760405162461bcd60e51b815260206004820152603160248201527f4d756c7469546f6b656e506572696f64456e666f726365723a7472616e7366656044820152701c8b585b5bdd5b9d0b595e18d959591959607a1b606482015260840161021d565b8115610def5760038401819055600060048501555b8b846004016000828254610e03919061134e565b90915550506004840154604080516001600160a01b038e81168252602082018c90529181018a90526060810189905260808101929092524260a08301528f91908f169033907fb2a345c7f80b4be490c405f4a994faf85384dd05da7d70be0801dc31a8c253af9060c00160405180910390a45050505050505050505050505050505050505050565b604080516001600160a01b03958616602080830191909152949095168582015260608501929092526080808501919091528151808503909101815260a09093019052815191012090565b6000803681610ee76014828789611361565b610ef09161138b565b60601c9350610f03603460148789611361565b610f0c916113d6565b9250610f1b8560348189611361565b949793965094505050565b60008083601f840112610f3857600080fd5b50813567ffffffffffffffff811115610f5057600080fd5b602083019150836020828501011115610f6857600080fd5b9250929050565b60008060208385031215610f8257600080fd5b823567ffffffffffffffff811115610f9957600080fd5b610fa585828601610f26565b90969095509350505050565b60008151808452602080850194506020840160005b83811015610fe257815187529582019590820190600101610fc6565b509495945050505050565b6080808252855190820181905260009060209060a0840190828901845b8281101561102f5781516001600160a01b03168452928401929084019060010161100a565b50505083810360208501526110448188610fb1565b91505082810360408401526110598186610fb1565b9050828103606084015261106d8185610fb1565b979650505050505050565b80356001600160a01b038116811461108f57600080fd5b919050565b60008060008060008060008060008060e08b8d0312156110b357600080fd5b8a3567ffffffffffffffff808211156110cb57600080fd5b6110d78e838f01610f26565b909c509a5060208d01359150808211156110f057600080fd5b6110fc8e838f01610f26565b909a50985060408d0135975060608d013591508082111561111c57600080fd5b506111298d828e01610f26565b90965094505060808b0135925061114260a08c01611078565b915061115060c08c01611078565b90509295989b9194979a5092959850565b60008060006040848603121561117657600080fd5b833567ffffffffffffffff81111561118d57600080fd5b61119986828701610f26565b909790965060209590950135949350505050565b600080600080600080608087890312156111c657600080fd5b863595506111d660208801611078565b9450604087013567ffffffffffffffff808211156111f357600080fd5b6111ff8a838b01610f26565b9096509450606089013591508082111561121857600080fd5b5061122589828a01610f26565b979a9699509497509295939492505050565b60006020828403121561124957600080fd5b5035919050565b6000806000806080858703121561126657600080fd5b61126f85611078565b935061127d60208601611078565b93969395505050506040820135916060013590565b634e487b7160e01b600052601260045260246000fd5b6000826112b7576112b7611292565b500690565b6020808252602d9082015260008051602061143683398151915260408201526c05ae8cae4dae65ad8cadccee8d609b1b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b60008261131c5761131c611292565b500490565b634e487b7160e01b600052604160045260246000fd5b80820281158282048414176108e1576108e16112f7565b808201808211156108e1576108e16112f7565b6000808585111561137157600080fd5b8386111561137e57600080fd5b5050820193919092039150565b6bffffffffffffffffffffffff1981358181169160148510156113b85780818660140360031b1b83161692505b505092915050565b634e487b7160e01b600052603260045260246000fd5b803560208310156108e157600019602084900360031b1b1692915050565b818103818111156108e1576108e16112f7565b6001600160e01b031981358181169160048510156113b85760049490940360031b84901b169092169291505056fe4d756c7469546f6b656e506572696f64456e666f726365723a696e76616c6964a264697066735822122024c53d9970ff849bf9025e90cc5d34bfc99b0f5ee6a61ef6c48512264a9b0a3164736f6c63430008170033",qN={};Q(qN,{abi:()=>WN,bytecode:()=>ZN});var WN=[{type:"function",name:"afterAllHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"afterHook",inputs:[{name:"_terms",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"_delegationHash",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"balanceCache",inputs:[{name:"hashKey",type:"bytes32",internalType:"bytes32"}],outputs:[{name:"balance",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"beforeAllHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"beforeHook",inputs:[{name:"_terms",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"_mode",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"_delegationHash",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"getHashKey",inputs:[{name:"_caller",type:"address",internalType:"address"},{name:"_delegationHash",type:"bytes32",internalType:"bytes32"}],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"pure"},{type:"function",name:"getTermsInfo",inputs:[{name:"_terms",type:"bytes",internalType:"bytes"}],outputs:[{name:"enforceDecrease_",type:"bool",internalType:"bool"},{name:"recipient_",type:"address",internalType:"address"},{name:"amount_",type:"uint256",internalType:"uint256"}],stateMutability:"pure"},{type:"function",name:"isLocked",inputs:[{name:"hashKey",type:"bytes32",internalType:"bytes32"}],outputs:[{name:"lock",type:"bool",internalType:"bool"}],stateMutability:"view"}],ZN="0x608060405234801561001057600080fd5b50610824806100206000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c8063b5e544921161005b578063b5e5449214610115578063b99deb0e14610135578063d3eddcc51461016d578063ed463367146100c557600080fd5b806332a16f4e1461008d578063414c3e33146100c5578063a145832a146100e1578063a79a0db5146100f4575b600080fd5b6100b061009b366004610568565b60016020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b6100df6100d33660046105e6565b50505050505050505050565b005b6100df6100ef3660046105e6565b610180565b6101076101023660046106b3565b6102c6565b6040519081526020016100bc565b610107610123366004610568565b60006020819052908152604090205481565b6101486101433660046106dd565b6102db565b6040805193151584526001600160a01b039092166020840152908201526060016100bc565b6100df61017b3660046105e6565b6103ad565b85600881901b6001600160f81b03198116156101f15760405162461bcd60e51b815260206004820152602560248201527f436176656174456e666f726365723a696e76616c69642d657865637574696f6e6044820152642d7479706560d81b60648201526084015b60405180910390fd5b5060006101fe338661052b565b9050600061020c8d8d6102db565b5060008481526001602052604090205490925060ff161590506102885760405162461bcd60e51b815260206004820152602e60248201527f4e617469766542616c616e63654368616e6765456e666f726365723a656e666f60448201526d1c98d95c8b5a5ccb5b1bd8dad95960921b60648201526084016101e8565b6000918252600160208181526040808520805460ff19169093179092558390529091206001600160a01b039091163190555050505050505050505050565b60006102d2838361052b565b90505b92915050565b60008080603584146103485760405162461bcd60e51b815260206004820152603060248201527f4e617469766542616c616e63654368616e6765456e666f726365723a696e766160448201526f0d8d2c85ae8cae4dae65ad8cadccee8d60831b60648201526084016101e8565b8484600081811061035b5761035b61071f565b909101356001600160f81b0319161515935061037d9050601560018688610735565b6103869161075f565b60601c91506103988460158188610735565b6103a191610794565b60001c90509250925092565b60008060006103bc8d8d6102db565b92509250925060006103ce338861052b565b6000818152600160205260409020805460ff1916905590508315610482576000818152602081905260409020546104069083906107c8565b836001600160a01b031631101561047d5760405162461bcd60e51b815260206004820152603560248201527f4e617469766542616c616e63654368616e6765456e666f726365723a65786365604482015274656465642d62616c616e63652d646563726561736560581b60648201526084016101e8565b61051b565b60008181526020819052604090205461049c9083906107db565b836001600160a01b031631101561051b5760405162461bcd60e51b815260206004820152603960248201527f4e617469766542616c616e63654368616e6765456e666f726365723a696e737560448201527f6666696369656e742d62616c616e63652d696e6372656173650000000000000060648201526084016101e8565b5050505050505050505050505050565b604080516001600160a01b038416602082015290810182905260009060600160405160208183030381529060405280519060200120905092915050565b60006020828403121561057a57600080fd5b5035919050565b60008083601f84011261059357600080fd5b50813567ffffffffffffffff8111156105ab57600080fd5b6020830191508360208285010111156105c357600080fd5b9250929050565b80356001600160a01b03811681146105e157600080fd5b919050565b60008060008060008060008060008060e08b8d03121561060557600080fd5b8a3567ffffffffffffffff8082111561061d57600080fd5b6106298e838f01610581565b909c509a5060208d013591508082111561064257600080fd5b61064e8e838f01610581565b909a50985060408d0135975060608d013591508082111561066e57600080fd5b5061067b8d828e01610581565b90965094505060808b0135925061069460a08c016105ca565b91506106a260c08c016105ca565b90509295989b9194979a5092959850565b600080604083850312156106c657600080fd5b6106cf836105ca565b946020939093013593505050565b600080602083850312156106f057600080fd5b823567ffffffffffffffff81111561070757600080fd5b61071385828601610581565b90969095509350505050565b634e487b7160e01b600052603260045260246000fd5b6000808585111561074557600080fd5b8386111561075257600080fd5b5050820193919092039150565b6bffffffffffffffffffffffff19813581811691601485101561078c5780818660140360031b1b83161692505b505092915050565b803560208310156102d557600019602084900360031b1b1692915050565b634e487b7160e01b600052601160045260246000fd5b818103818111156102d5576102d56107b2565b808201808211156102d5576102d56107b256fea2646970667358221220b33a5c188759ed62e28774f4ab95ff422856e7b7a36f7de87da5f14ed435ece964736f6c63430008170033",YN={};Q(YN,{abi:()=>KN,bytecode:()=>XN});var KN=[{type:"function",name:"owner",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"renounceOwnership",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"transferOwnership",inputs:[{name:"newOwner",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"event",name:"OwnershipTransferred",inputs:[{name:"previousOwner",type:"address",indexed:!0,internalType:"address"},{name:"newOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"error",name:"OwnableInvalidOwner",inputs:[{name:"owner",type:"address",internalType:"address"}]},{type:"error",name:"OwnableUnauthorizedAccount",inputs:[{name:"account",type:"address",internalType:"address"}]}],XN="0x",JN={};Q(JN,{abi:()=>QN,bytecode:()=>eD});var QN=[],eD="0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220709bae2a6201f60c7dd916d94e8aed6e76d68870a93207bbf209cbf2ce9581c664736f6c63430008170033",tD={};Q(tD,{abi:()=>nD,bytecode:()=>aD});var nD=[{type:"function",name:"onERC721Received",inputs:[{name:"operator",type:"address",internalType:"address"},{name:"from",type:"address",internalType:"address"},{name:"tokenId",type:"uint256",internalType:"uint256"},{name:"data",type:"bytes",internalType:"bytes"}],outputs:[{name:"",type:"bytes4",internalType:"bytes4"}],stateMutability:"nonpayable"}],aD="0x",rD={};Q(rD,{abi:()=>sD,bytecode:()=>iD});var sD=[{type:"event",name:"Initialized",inputs:[{name:"version",type:"uint64",indexed:!1,internalType:"uint64"}],anonymous:!1},{type:"error",name:"InvalidInitialization",inputs:[]},{type:"error",name:"NotInitializing",inputs:[]}],iD="0x",w1={};Q(w1,{abi:()=>oD,bytecode:()=>fD});var oD=[{type:"function",name:"acceptOwnership",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"owner",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"pendingOwner",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"renounceOwnership",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"transferOwnership",inputs:[{name:"newOwner",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"event",name:"OwnershipTransferStarted",inputs:[{name:"previousOwner",type:"address",indexed:!0,internalType:"address"},{name:"newOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"OwnershipTransferred",inputs:[{name:"previousOwner",type:"address",indexed:!0,internalType:"address"},{name:"newOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"error",name:"OwnableInvalidOwner",inputs:[{name:"owner",type:"address",internalType:"address"}]},{type:"error",name:"OwnableUnauthorizedAccount",inputs:[{name:"account",type:"address",internalType:"address"}]}],fD="0x",bD={};Q(bD,{abi:()=>dD,bytecode:()=>cD});var dD=[{type:"function",name:"execute",inputs:[{name:"mode",type:"bytes32",internalType:"ModeCode"},{name:"executionData",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"payable"},{type:"function",name:"supportsExecutionMode",inputs:[{name:"mode",type:"bytes32",internalType:"ModeCode"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"}],cD="0x",lp={};Q(lp,{abi:()=>uD,bytecode:()=>yD});var uD=[{type:"function",name:"paused",inputs:[],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"event",name:"Paused",inputs:[{name:"account",type:"address",indexed:!1,internalType:"address"}],anonymous:!1},{type:"event",name:"Unpaused",inputs:[{name:"account",type:"address",indexed:!1,internalType:"address"}],anonymous:!1},{type:"error",name:"EnforcedPause",inputs:[]},{type:"error",name:"ExpectedPause",inputs:[]}],yD="0x",Xo={};Q(Xo,{abi:()=>pD,bytecode:()=>lD});var pD=[{type:"function",name:"afterAllHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"afterHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"beforeAllHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"beforeHook",inputs:[{name:"_terms",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"_mode",type:"bytes32",internalType:"ModeCode"},{name:"_executionCallData",type:"bytes",internalType:"bytes"},{name:"_delegationHash",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"_redeemer",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"getTermsInfo",inputs:[{name:"_terms",type:"bytes",internalType:"bytes"}],outputs:[{name:"allowance_",type:"uint256",internalType:"uint256"}],stateMutability:"pure"},{type:"function",name:"spentMap",inputs:[{name:"sender",type:"address",internalType:"address"},{name:"delegationHash",type:"bytes32",internalType:"bytes32"}],outputs:[{name:"amount",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"event",name:"IncreasedSpentMap",inputs:[{name:"sender",type:"address",indexed:!0,internalType:"address"},{name:"redeemer",type:"address",indexed:!0,internalType:"address"},{name:"delegationHash",type:"bytes32",indexed:!0,internalType:"bytes32"},{name:"limit",type:"uint256",indexed:!1,internalType:"uint256"},{name:"spent",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1}],lD="0x608060405234801561001057600080fd5b506105cd806100206000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c8063414c3e33146100675780639dd5d9ab14610083578063a145832a146100bd578063b99deb0e146100d0578063d3eddcc514610067578063ed46336714610067575b600080fd5b6100816100753660046103a7565b50505050505050505050565b005b6100ab610091366004610474565b600060208181529281526040808220909352908152205481565b60405190815260200160405180910390f35b6100816100cb3660046103a7565b6100e3565b6100ab6100de36600461049e565b6102c5565b856100ef8160006102da565b6101405760405162461bcd60e51b815260206004820181905260248201527f436176656174456e666f726365723a696e76616c69642d63616c6c2d7479706560448201526064015b60405180910390fd5b86600881901b6101518160006102da565b6101ab5760405162461bcd60e51b815260206004820152602560248201527f436176656174456e666f726365723a696e76616c69642d657865637574696f6e6044820152642d7479706560d81b6064820152608401610137565b5060006101b88d8d6102c5565b905060006101c689896102f1565b5050336000908152602081815260408083208c845290915281208054929450909250839183906101f79084906104e0565b92505081905590508281111561026c5760405162461bcd60e51b815260206004820152603460248201527f4e6174697665546f6b656e5472616e73666572416d6f756e74456e666f7263656044820152731c8e985b1b1bddd85b98d94b595e18d95959195960621b6064820152608401610137565b604080518481526020810183905289916001600160a01b0389169133917fc026e493323d526061a052b5dd562495120e2f648797a48be61966d3a6beec8d910160405180910390a4505050505050505050505050505050565b60006102d382840184610501565b9392505050565b6001600160f81b0319828116908216145b92915050565b6000803681610303601482878961051a565b61030c91610544565b60601c935061031f60346014878961051a565b61032891610579565b9250610337856034818961051a565b949793965094505050565b60008083601f84011261035457600080fd5b50813567ffffffffffffffff81111561036c57600080fd5b60208301915083602082850101111561038457600080fd5b9250929050565b80356001600160a01b03811681146103a257600080fd5b919050565b60008060008060008060008060008060e08b8d0312156103c657600080fd5b8a3567ffffffffffffffff808211156103de57600080fd5b6103ea8e838f01610342565b909c509a5060208d013591508082111561040357600080fd5b61040f8e838f01610342565b909a50985060408d0135975060608d013591508082111561042f57600080fd5b5061043c8d828e01610342565b90965094505060808b0135925061045560a08c0161038b565b915061046360c08c0161038b565b90509295989b9194979a5092959850565b6000806040838503121561048757600080fd5b6104908361038b565b946020939093013593505050565b600080602083850312156104b157600080fd5b823567ffffffffffffffff8111156104c857600080fd5b6104d485828601610342565b90969095509350505050565b808201808211156102eb57634e487b7160e01b600052601160045260246000fd5b60006020828403121561051357600080fd5b5035919050565b6000808585111561052a57600080fd5b8386111561053757600080fd5b5050820193919092039150565b6bffffffffffffffffffffffff1981358181169160148510156105715780818660140360031b1b83161692505b505092915050565b803560208310156102eb57600019602084900360031b1b169291505056fea2646970667358221220242bcbb545bdb30c0cc3054c27d7e861e0e03c97037d12e0a3a635b723f4c96064736f6c63430008170033",mD={};Q(mD,{abi:()=>hD,bytecode:()=>gD});var hD=[],gD="0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d7aca7990ce9da4d7914667722de1ec02253803fb163d86029328ca9bb504b0164736f6c63430008170033",TD={};Q(TD,{abi:()=>wD,bytecode:()=>vD});var wD=[{type:"fallback",stateMutability:"nonpayable"}],vD="0x608060405234801561001057600080fd5b5061022e806100206000396000f3fe608060405234801561001057600080fd5b50600036606060a0821461004057604080516000602082015201604051602081830303815290604052905061017b565b600061004f6020828587610186565b610058916101b0565b9050600061006a604060208688610186565b610073916101b0565b90506000610085606060408789610186565b61008e916101b0565b905060006100a060806060888a610186565b6100a9916101b0565b905060006100bb60a06080898b610186565b6100c4916101b0565b60405163a1f3128160e01b8152600481018790526024810186905260448101859052606481018490526084810182905290915073__$b8f96b288d4d0429e38b8ed50fd423070f$__9063a1f312819060a401602060405180830381865af4158015610133573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061015791906101cf565b60408051911515602083015201604051602081830303815290604052955050505050505b915050805190602001f35b6000808585111561019657600080fd5b838611156101a357600080fd5b5050820193919092039150565b803560208310156101c957600019602084900360031b1b165b92915050565b6000602082840312156101e157600080fd5b815180151581146101f157600080fd5b939250505056fea26469706673582212203dafaa4c8f34ad767d36775120cdf65742956a98b33a9913f2e11f858baf2d9e64736f6c63430008170033",xD={};Q(xD,{abi:()=>ED,bytecode:()=>AD});var ED=[{type:"function",name:"afterAllHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"afterHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"beforeAllHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"beforeHook",inputs:[{name:"_terms",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"_mode",type:"bytes32",internalType:"ModeCode"},{name:"_executionCallData",type:"bytes",internalType:"bytes"},{name:"_delegationHash",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"_redeemer",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"getTermsInfo",inputs:[{name:"_terms",type:"bytes",internalType:"bytes"}],outputs:[{name:"targetContract_",type:"address",internalType:"address"}],stateMutability:"pure"},{type:"event",name:"OwnershipTransferEnforced",inputs:[{name:"sender",type:"address",indexed:!0,internalType:"address"},{name:"redeemer",type:"address",indexed:!0,internalType:"address"},{name:"delegationHash",type:"bytes32",indexed:!0,internalType:"bytes32"},{name:"newOwner",type:"address",indexed:!1,internalType:"address"}],anonymous:!1}],AD="0x608060405234801561001057600080fd5b506106af806100206000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c8063414c3e331461005c578063a145832a14610078578063b99deb0e1461008b578063d3eddcc51461005c578063ed4633671461005c575b600080fd5b61007661006a36600461049f565b50505050505050505050565b005b61007661008636600461049f565b6100ba565b61009e61009936600461056c565b6101e7565b6040516001600160a01b03909116815260200160405180910390f35b856100c6816000610252565b6101175760405162461bcd60e51b815260206004820181905260248201527f436176656174456e666f726365723a696e76616c69642d63616c6c2d7479706560448201526064015b60405180910390fd5b86600881901b610128816000610252565b6101825760405162461bcd60e51b815260206004820152602560248201527f436176656174456e666f726365723a696e76616c69642d657865637574696f6e6044820152642d7479706560d81b606482015260840161010e565b5060006101918d8d8a8a610269565b6040516001600160a01b038083168252919250879186169033907f0f026cada0b544ae1cc47ac006f1f4c3d7e94832af22aa0065351de49f9284d79060200160405180910390a450505050505050505050505050565b60006014821461023e5760405162461bcd60e51b815260206004820152602e602482015260008051602061065a83398151915260448201526d0c85ae8cae4dae65ad8cadccee8d60931b606482015260840161010e565b61024882846105ae565b60601c9392505050565b6001600160f81b0319828116908216145b92915050565b60008036600061027986866103e9565b929550935090915050602481146102db5760405162461bcd60e51b8152602060048201526032602482015260008051602061065a8339815191526044820152710c85acaf0cac6eae8d2dedc5ad8cadccee8d60731b606482015260840161010e565b60006102ea60048284866105e3565b6102f39161060d565b90506001600160e01b0319811663f2fde38b60e01b146103545760405162461bcd60e51b8152602060048201526028602482015260008051602061065a833981519152604482015267190b5b595d1a1bd960c21b606482015260840161010e565b60006103608a8a6101e7565b9050846001600160a01b0316816001600160a01b0316146103c45760405162461bcd60e51b815260206004820152602a602482015260008051602061065a833981519152604482015269190b58dbdb9d1c9858dd60b21b606482015260840161010e565b6103d26024600485876105e3565b6103db9161063b565b9a9950505050505050505050565b60008036816103fb60148287896105e3565b610404916105ae565b60601c93506104176034601487896105e3565b6104209161063b565b925061042f85603481896105e3565b949793965094505050565b60008083601f84011261044c57600080fd5b50813567ffffffffffffffff81111561046457600080fd5b60208301915083602082850101111561047c57600080fd5b9250929050565b80356001600160a01b038116811461049a57600080fd5b919050565b60008060008060008060008060008060e08b8d0312156104be57600080fd5b8a3567ffffffffffffffff808211156104d657600080fd5b6104e28e838f0161043a565b909c509a5060208d01359150808211156104fb57600080fd5b6105078e838f0161043a565b909a50985060408d0135975060608d013591508082111561052757600080fd5b506105348d828e0161043a565b90965094505060808b0135925061054d60a08c01610483565b915061055b60c08c01610483565b90509295989b9194979a5092959850565b6000806020838503121561057f57600080fd5b823567ffffffffffffffff81111561059657600080fd5b6105a28582860161043a565b90969095509350505050565b6bffffffffffffffffffffffff1981358181169160148510156105db5780818660140360031b1b83161692505b505092915050565b600080858511156105f357600080fd5b8386111561060057600080fd5b5050820193919092039150565b6001600160e01b031981358181169160048510156105db5760049490940360031b84901b1690921692915050565b8035602083101561026357600019602084900360031b1b169291505056fe4f776e6572736869705472616e73666572456e666f726365723a696e76616c69a2646970667358221220ca5ae6d7f1b90ba5d22d1aa6d07431cba5451fcdcfda2c53ba5014e9bf6c30cc64736f6c63430008170033",_D={};Q(_D,{abi:()=>SD,bytecode:()=>ID});var SD=[{type:"error",name:"SafeERC20FailedDecreaseAllowance",inputs:[{name:"spender",type:"address",internalType:"address"},{name:"currentAllowance",type:"uint256",internalType:"uint256"},{name:"requestedDecrease",type:"uint256",internalType:"uint256"}]},{type:"error",name:"SafeERC20FailedOperation",inputs:[{name:"token",type:"address",internalType:"address"}]}],ID="0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122088a0aa059cfc49869da70b79266115a887b85b6bf4a5e84a430f64ac0e13ee7c64736f6c63430008170033",CD={};Q(CD,{abi:()=>PD,bytecode:()=>MD});var PD=[{type:"function",name:"createSender",inputs:[{name:"initCode",type:"bytes",internalType:"bytes"}],outputs:[{name:"sender",type:"address",internalType:"address"}],stateMutability:"nonpayable"}],MD="0x608060405234801561000f575f80fd5b506101e28061001d5f395ff3fe608060405234801561000f575f80fd5b5060043610610029575f3560e01c8063570e1a361461002d575b5f80fd5b61004061003b3660046100e4565b61005c565b6040516001600160a01b03909116815260200160405180910390f35b5f8061006b6014828587610150565b61007491610177565b60601c90505f6100878460148188610150565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92018290525084519495509360209350849250905082850182875af190505f519350806100db575f93505b50505092915050565b5f80602083850312156100f5575f80fd5b823567ffffffffffffffff8082111561010c575f80fd5b818501915085601f83011261011f575f80fd5b81358181111561012d575f80fd5b86602082850101111561013e575f80fd5b60209290920196919550909350505050565b5f808585111561015e575f80fd5b8386111561016a575f80fd5b5050820193919092039150565b6bffffffffffffffffffffffff1981358181169160148510156101a45780818660140360031b1b83161692505b50509291505056fea264697066735822122078c1aaa9f040f8c523cf2b642dd06415593eec30d2e75021458af7e0c704e6fb64736f6c63430008170033",$D={};Q($D,{abi:()=>OD,bytecode:()=>RD});var OD=[{type:"error",name:"ReentrancyGuardReentrantCall",inputs:[]}],RD="0x",BD={};Q(BD,{abi:()=>ND,bytecode:()=>DD});var ND=[{type:"error",name:"SafeCastOverflowedIntDowncast",inputs:[{name:"bits",type:"uint8",internalType:"uint8"},{name:"value",type:"int256",internalType:"int256"}]},{type:"error",name:"SafeCastOverflowedIntToUint",inputs:[{name:"value",type:"int256",internalType:"int256"}]},{type:"error",name:"SafeCastOverflowedUintDowncast",inputs:[{name:"bits",type:"uint8",internalType:"uint8"},{name:"value",type:"uint256",internalType:"uint256"}]},{type:"error",name:"SafeCastOverflowedUintToInt",inputs:[{name:"value",type:"uint256",internalType:"uint256"}]}],DD="0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122061ebdeb3510df44a7d9170525bd3fc61f93c656e67274c3f3b4aa33ec92dc13864736f6c63430008170033",kD={};Q(kD,{abi:()=>LD,bytecode:()=>FD});var LD=[],FD="0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212203d65f4321e18e96a0e0a3e6a8d19e56735de368638fd48b184c923bf46a5170f64736f6c63430008170033",UD={};Q(UD,{abi:()=>HD,bytecode:()=>GD});var HD=[{type:"error",name:"InvalidShortString",inputs:[]},{type:"error",name:"StringTooLong",inputs:[{name:"str",type:"string",internalType:"string"}]}],GD="0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122088910c5f67a05f7b05fc7425f62972b57385080dd0be1e4dea1ea74435bca86f64736f6c63430008170033",fs={};Q(fs,{abi:()=>zD,bytecode:()=>jD});var zD=[{type:"function",name:"computeAddress",inputs:[{name:"_bytecodeHash",type:"bytes32",internalType:"bytes32"},{name:"_salt",type:"bytes32",internalType:"bytes32"}],outputs:[{name:"addr_",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"deploy",inputs:[{name:"_bytecode",type:"bytes",internalType:"bytes"},{name:"_salt",type:"bytes32",internalType:"bytes32"}],outputs:[{name:"addr_",type:"address",internalType:"address"}],stateMutability:"nonpayable"},{type:"event",name:"Deployed",inputs:[{name:"addr",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"error",name:"Create2EmptyBytecode",inputs:[]},{type:"error",name:"Create2FailedDeployment",inputs:[]},{type:"error",name:"Create2InsufficientBalance",inputs:[{name:"balance",type:"uint256",internalType:"uint256"},{name:"needed",type:"uint256",internalType:"uint256"}]},{type:"error",name:"SimpleFactoryEmptyContract",inputs:[{name:"deployed",type:"address",internalType:"address"}]}],jD="0x608060405234801561001057600080fd5b506102ef806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063481286e61461003b5780634af63f021461006a575b600080fd5b61004e6100493660046101cc565b61007d565b6040516001600160a01b03909116815260200160405180910390f35b61004e610078366004610204565b610090565b60006100898284610115565b9392505050565b600061009e60008385610122565b9050806001600160a01b03163b6000036100db576040516301e3495560e61b81526001600160a01b03821660048201526024015b60405180910390fd5b6040516001600160a01b038216907ff40fcec21964ffb566044d083b4073f29f7f7929110ea19e1b3ebe375d89055e90600090a292915050565b60006100898383306101a2565b60008347101561014e5760405163392efb2b60e21b8152476004820152602481018590526044016100d2565b815160000361017057604051631328927760e21b815260040160405180910390fd5b8282516020840186f590506001600160a01b03811661008957604051633a0ba96160e11b815260040160405180910390fd5b6000604051836040820152846020820152828152600b8101905060ff815360559020949350505050565b600080604083850312156101df57600080fd5b50508035926020909101359150565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561021757600080fd5b823567ffffffffffffffff8082111561022f57600080fd5b818501915085601f83011261024357600080fd5b813581811115610255576102556101ee565b604051601f8201601f19908116603f0116810190838211818310171561027d5761027d6101ee565b8160405282815288602084870101111561029657600080fd5b82602086016020830137600060209382018401529896909101359650505050505056fea264697066735822122060b446de0182f6cf23546703f0e9eb0c1da6c4f00138f5d151474f865157cd3164736f6c63430008170033",VD={};Q(VD,{abi:()=>qD,bytecode:()=>WD});var qD=[{type:"function",name:"afterAllHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"afterHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"beforeAllHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"beforeHook",inputs:[{name:"_terms",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"_mode",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"_redeemer",type:"address",internalType:"address"}],outputs:[],stateMutability:"pure"},{type:"function",name:"getTermsInfo",inputs:[{name:"_terms",type:"bytes",internalType:"bytes"}],outputs:[{name:"allowedRedeemers_",type:"address[]",internalType:"address[]"}],stateMutability:"pure"}],WD="0x608060405234801561001057600080fd5b5061064b806100206000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c8063414c3e331461005c578063a145832a14610078578063b99deb0e1461008b578063d3eddcc51461005c578063ed4633671461005c575b600080fd5b61007661006a3660046103ae565b50505050505050505050565b005b6100766100863660046103ae565b6100b4565b61009e61009936600461047b565b6101e8565b6040516100ab91906104bd565b60405180910390f35b85600881901b6100c5816000610332565b6101245760405162461bcd60e51b815260206004820152602560248201527f436176656174456e666f726365723a696e76616c69642d657865637574696f6e6044820152642d7479706560d81b60648201526084015b60405180910390fd5b5060006101318c8c6101e8565b805190915060005b81811015610183578281815181106101535761015361050a565b60200260200101516001600160a01b0316856001600160a01b03160361017b575050506101db565b600101610139565b5060405162461bcd60e51b815260206004820152602660248201527f52656465656d6572456e666f726365723a756e617574686f72697a65642d72656044820152653232b2b6b2b960d11b606482015260840161011b565b5050505050505050505050565b606060008280158015906102045750610202601482610536565b155b61025e5760405162461bcd60e51b815260206004820152602560248201527f52656465656d6572456e666f726365723a696e76616c69642d7465726d732d6c6044820152640cadccee8d60db1b606482015260840161011b565b610269601482610560565b67ffffffffffffffff81111561028157610281610574565b6040519080825280602002602001820160405280156102aa578160200160208202803683370190505b50925060005b81811015610329578581866102c682601461058a565b926102d39392919061059d565b6102dc916105c7565b60601c8484815181106102f1576102f161050a565b6001600160a01b039092166020928302919091019091015282610313816105fc565b9350610322905060148261058a565b90506102b0565b50505092915050565b6001600160f81b0319828116908216145b92915050565b60008083601f84011261035b57600080fd5b50813567ffffffffffffffff81111561037357600080fd5b60208301915083602082850101111561038b57600080fd5b9250929050565b80356001600160a01b03811681146103a957600080fd5b919050565b60008060008060008060008060008060e08b8d0312156103cd57600080fd5b8a3567ffffffffffffffff808211156103e557600080fd5b6103f18e838f01610349565b909c509a5060208d013591508082111561040a57600080fd5b6104168e838f01610349565b909a50985060408d0135975060608d013591508082111561043657600080fd5b506104438d828e01610349565b90965094505060808b0135925061045c60a08c01610392565b915061046a60c08c01610392565b90509295989b9194979a5092959850565b6000806020838503121561048e57600080fd5b823567ffffffffffffffff8111156104a557600080fd5b6104b185828601610349565b90969095509350505050565b6020808252825182820181905260009190848201906040850190845b818110156104fe5783516001600160a01b0316835292840192918401916001016104d9565b50909695505050505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601260045260246000fd5b60008261054557610545610520565b500690565b634e487b7160e01b600052601160045260246000fd5b60008261056f5761056f610520565b500490565b634e487b7160e01b600052604160045260246000fd5b808201808211156103435761034361054a565b600080858511156105ad57600080fd5b838611156105ba57600080fd5b5050820193919092039150565b6bffffffffffffffffffffffff1981358181169160148510156105f45780818660140360031b1b83161692505b505092915050565b60006001820161060e5761060e61054a565b506001019056fea264697066735822122021c89a0ebcdb2523c453552212243b747d81b7c16f2f3e22d20bb9692240f3a364736f6c63430008170033",ZD={};Q(ZD,{abi:()=>YD,bytecode:()=>KD});var YD=[],KD="0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212209bac814741dd376ccf59547680acabccb0310545d980db81a1b4c6c7f17cdbc164736f6c63430008170033",Jo={};Q(Jo,{abi:()=>XD,bytecode:()=>JD});var XD=[{type:"function",name:"afterAllHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"afterHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"beforeAllHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"beforeHook",inputs:[{name:"_terms",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"_mode",type:"bytes32",internalType:"ModeCode"},{name:"_executionCallData",type:"bytes",internalType:"bytes"},{name:"_delegationHash",type:"bytes32",internalType:"bytes32"},{name:"_delegator",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"getTermsInfo",inputs:[{name:"_terms",type:"bytes",internalType:"bytes"}],outputs:[{name:"termsData_",type:"tuple",internalType:"struct SpecificActionERC20TransferBatchEnforcer.TermsData",components:[{name:"tokenAddress",type:"address",internalType:"address"},{name:"recipient",type:"address",internalType:"address"},{name:"amount",type:"uint256",internalType:"uint256"},{name:"firstTarget",type:"address",internalType:"address"},{name:"firstCalldata",type:"bytes",internalType:"bytes"}]}],stateMutability:"pure"},{type:"function",name:"usedDelegations",inputs:[{name:"delegationManager",type:"address",internalType:"address"},{name:"delegationHash",type:"bytes32",internalType:"bytes32"}],outputs:[{name:"used",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"event",name:"DelegationExecuted",inputs:[{name:"delegationManager",type:"address",indexed:!0,internalType:"address"},{name:"delegationHash",type:"bytes32",indexed:!0,internalType:"bytes32"},{name:"delegator",type:"address",indexed:!0,internalType:"address"}],anonymous:!1}],JD="0x608060405234801561001057600080fd5b50610ccf806100206000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c8063414c3e3314610067578063a145832a14610083578063b99deb0e14610096578063b9cf5249146100bf578063d3eddcc514610067578063ed46336714610067575b600080fd5b610081610075366004610958565b50505050505050505050565b005b610081610091366004610958565b6100fa565b6100a96100a4366004610a25565b6106ce565b6040516100b69190610a67565b60405180910390f35b6100ea6100cd366004610af5565b600060208181529281526040808220909352908152205460ff1681565b60405190151581526020016100b6565b8561010981600160f81b610843565b61015a5760405162461bcd60e51b815260206004820181905260248201527f436176656174456e666f726365723a696e76616c69642d63616c6c2d7479706560448201526064015b60405180910390fd5b86600881901b61016b816000610843565b6101c55760405162461bcd60e51b815260206004820152602560248201527f436176656174456e666f726365723a696e76616c69642d657865637574696f6e6044820152642d7479706560d81b6064820152608401610151565b503360009081526020818152604080832088845290915290205460ff1615610245576040805162461bcd60e51b8152602060048201526024810191909152600080516020610c7a83398151915260448201527f456e666f726365723a64656c65676174696f6e2d616c72656164792d757365646064820152608401610151565b336000908152602081815260408083208884529091528120805460ff191660011790553690610274898961085a565b9092509050600281146102dd5760405162461bcd60e51b815260206004820152603b6024820152600080516020610c7a83398151915260448201527f456e666f726365723a696e76616c69642d62617463682d73697a6500000000006064820152608401610151565b60006102e98f8f6106ce565b905080606001516001600160a01b03168383600081811061030c5761030c610b1f565b905060200281019061031e9190610b35565b61032c906020810190610b55565b6001600160a01b031614158061036957508282600081811061035057610350610b1f565b90506020028101906103629190610b35565b6020013515155b806103c757508060800151805190602001208383600081811061038e5761038e610b1f565b90506020028101906103a09190610b35565b6103ae906040810190610b77565b6040516103bc929190610bbe565b604051809103902014155b156104335760405162461bcd60e51b81526020600482015260426024820152600080516020610c7a83398151915260448201527f456e666f726365723a696e76616c69642d66697273742d7472616e736163746960648201526137b760f11b608482015260a401610151565b80516001600160a01b03168383600181811061045157610451610b1f565b90506020028101906104639190610b35565b610471906020810190610b55565b6001600160a01b03161415806104ae57508282600181811061049557610495610b1f565b90506020028101906104a79190610b35565b6020013515155b806104ee5750828260018181106104c7576104c7610b1f565b90506020028101906104d99190610b35565b6104e7906040810190610b77565b9050604414155b80610554575063a9059cbb60e01b8383600181811061050f5761050f610b1f565b90506020028101906105219190610b35565b61052f906040810190610b77565b61053e91600491600091610bce565b61054791610bf8565b6001600160e01b03191614155b806105bf575080602001516001600160a01b03168383600181811061057b5761057b610b1f565b905060200281019061058d9190610b35565b61059b906040810190610b77565b6105aa91602491600491610bce565b6105b391610c28565b6001600160a01b031614155b8061061857508060400151838360018181106105dd576105dd610b1f565b90506020028101906105ef9190610b35565b6105fd906040810190610b77565b61060c91604491602491610bce565b61061591610c28565b14155b156106855760405162461bcd60e51b81526020600482015260436024820152600080516020610c7a83398151915260448201527f456e666f726365723a696e76616c69642d7365636f6e642d7472616e7361637460648201526234b7b760e91b608482015260a401610151565b6040516001600160a01b03881690899033907f76f83a16f9924b51c0c3ad67a44af3e517fbdec68ffa3729776df2ac0f03144090600090a4505050505050505050505050505050565b61071b6040518060a0016040528060006001600160a01b0316815260200160006001600160a01b031681526020016000815260200160006001600160a01b03168152602001606081525090565b605c8210156107805760405162461bcd60e51b815260206004820152603d6024820152600080516020610c7a83398151915260448201527f456e666f726365723a696e76616c69642d7465726d732d6c656e6774680000006064820152608401610151565b61078e601460008486610bce565b61079791610c46565b60601c81526107aa602860148486610bce565b6107b391610c46565b60601c60208201526107c9604860288486610bce565b6107d291610c28565b60408201526107e5605c60488486610bce565b6107ee91610c46565b606090811c9082015261080482605c8186610bce565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505050608082015292915050565b6001600160f81b0319828116908216145b92915050565b366000833580850160208587010360208201945081359350808460051b8301118360401c17156108925763ba597e7e6000526004601cfd5b83156108e9578392505b6001830392508260051b850135915081850160408101358082018381358201118460408501111782861782351760401c17156108e05763ba597e7e6000526004601cfd5b5050508261089c575b5050509250929050565b60008083601f84011261090557600080fd5b50813567ffffffffffffffff81111561091d57600080fd5b60208301915083602082850101111561093557600080fd5b9250929050565b80356001600160a01b038116811461095357600080fd5b919050565b60008060008060008060008060008060e08b8d03121561097757600080fd5b8a3567ffffffffffffffff8082111561098f57600080fd5b61099b8e838f016108f3565b909c509a5060208d01359150808211156109b457600080fd5b6109c08e838f016108f3565b909a50985060408d0135975060608d01359150808211156109e057600080fd5b506109ed8d828e016108f3565b90965094505060808b01359250610a0660a08c0161093c565b9150610a1460c08c0161093c565b90509295989b9194979a5092959850565b60008060208385031215610a3857600080fd5b823567ffffffffffffffff811115610a4f57600080fd5b610a5b858286016108f3565b90969095509350505050565b6000602080835260018060a01b038085511660208501528060208601511660408501526040850151606085015280606086015116608085015250608084015160a08085015280518060c086015260005b81811015610ad35782810184015186820160e001528301610ab7565b50600060e0828701015260e0601f19601f830116860101935050505092915050565b60008060408385031215610b0857600080fd5b610b118361093c565b946020939093013593505050565b634e487b7160e01b600052603260045260246000fd5b60008235605e19833603018112610b4b57600080fd5b9190910192915050565b600060208284031215610b6757600080fd5b610b708261093c565b9392505050565b6000808335601e19843603018112610b8e57600080fd5b83018035915067ffffffffffffffff821115610ba957600080fd5b60200191503681900382131561093557600080fd5b8183823760009101908152919050565b60008085851115610bde57600080fd5b83861115610beb57600080fd5b5050820193919092039150565b6001600160e01b03198135818116916004851015610c205780818660040360031b1b83161692505b505092915050565b8035602083101561085457600019602084900360031b1b1692915050565b6bffffffffffffffffffffffff198135818116916014851015610c205760149490940360031b84901b169092169291505056fe5370656369666963416374696f6e45524332305472616e736665724261746368a2646970667358221220e8d1de6d5cca88243b7e7a1d3b3a1ae6b1a75dad78f305486212fafaf9e3ca5264736f6c63430008170033",QD={};Q(QD,{abi:()=>ek,bytecode:()=>tk});var ek=[{type:"receive",stateMutability:"payable"},{type:"function",name:"addStake",inputs:[{name:"unstakeDelaySec",type:"uint32",internalType:"uint32"}],outputs:[],stateMutability:"payable"},{type:"function",name:"balanceOf",inputs:[{name:"account",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"depositTo",inputs:[{name:"account",type:"address",internalType:"address"}],outputs:[],stateMutability:"payable"},{type:"function",name:"deposits",inputs:[{name:"",type:"address",internalType:"address"}],outputs:[{name:"deposit",type:"uint256",internalType:"uint256"},{name:"staked",type:"bool",internalType:"bool"},{name:"stake",type:"uint112",internalType:"uint112"},{name:"unstakeDelaySec",type:"uint32",internalType:"uint32"},{name:"withdrawTime",type:"uint48",internalType:"uint48"}],stateMutability:"view"},{type:"function",name:"getDepositInfo",inputs:[{name:"account",type:"address",internalType:"address"}],outputs:[{name:"info",type:"tuple",internalType:"struct IStakeManager.DepositInfo",components:[{name:"deposit",type:"uint256",internalType:"uint256"},{name:"staked",type:"bool",internalType:"bool"},{name:"stake",type:"uint112",internalType:"uint112"},{name:"unstakeDelaySec",type:"uint32",internalType:"uint32"},{name:"withdrawTime",type:"uint48",internalType:"uint48"}]}],stateMutability:"view"},{type:"function",name:"unlockStake",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"withdrawStake",inputs:[{name:"withdrawAddress",type:"address",internalType:"address payable"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"withdrawTo",inputs:[{name:"withdrawAddress",type:"address",internalType:"address payable"},{name:"withdrawAmount",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"event",name:"Deposited",inputs:[{name:"account",type:"address",indexed:!0,internalType:"address"},{name:"totalDeposit",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"StakeLocked",inputs:[{name:"account",type:"address",indexed:!0,internalType:"address"},{name:"totalStaked",type:"uint256",indexed:!1,internalType:"uint256"},{name:"unstakeDelaySec",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"StakeUnlocked",inputs:[{name:"account",type:"address",indexed:!0,internalType:"address"},{name:"withdrawTime",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"StakeWithdrawn",inputs:[{name:"account",type:"address",indexed:!0,internalType:"address"},{name:"withdrawAddress",type:"address",indexed:!1,internalType:"address"},{name:"amount",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"Withdrawn",inputs:[{name:"account",type:"address",indexed:!0,internalType:"address"},{name:"withdrawAddress",type:"address",indexed:!1,internalType:"address"},{name:"amount",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1}],tk="0x",nk={};Q(nk,{abi:()=>ak,bytecode:()=>rk});var ak=[{type:"error",name:"StringsInsufficientHexLength",inputs:[{name:"value",type:"uint256",internalType:"uint256"},{name:"length",type:"uint256",internalType:"uint256"}]}],rk="0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220ce1bfc0cd5aac1e748b751339a93cc065f5fd20fd73be10a7844adf26543eb8164736f6c63430008170033",sk={};Q(sk,{abi:()=>ik,bytecode:()=>ok});var ik=[],ok="0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122089188054053227534294662d666312081d2f72553264bdfc0ce4a353c15e0f6364736f6c63430008170033",fk={};Q(fk,{abi:()=>bk,bytecode:()=>dk});var bk=[{type:"function",name:"proxiableUUID",inputs:[],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"}],dk="0x",ck={};Q(ck,{abi:()=>uk,bytecode:()=>yk});var uk=[{type:"function",name:"afterAllHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"afterHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"beforeAllHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"beforeHook",inputs:[{name:"_terms",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"_mode",type:"bytes32",internalType:"ModeCode"},{name:"_executionCallData",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"pure"},{type:"function",name:"getTermsInfo",inputs:[{name:"_terms",type:"bytes",internalType:"bytes"}],outputs:[{name:"value_",type:"uint256",internalType:"uint256"}],stateMutability:"pure"}],yk="0x608060405234801561001057600080fd5b506104f8806100206000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c8063414c3e331461005c578063a145832a14610078578063b99deb0e1461008b578063d3eddcc51461005c578063ed4633671461005c575b600080fd5b61007661006a366004610336565b50505050505050505050565b005b610076610086366004610336565b6100b0565b61009e610099366004610403565b6101f8565b60405190815260200160405180910390f35b856100bc816000610269565b61010d5760405162461bcd60e51b815260206004820181905260248201527f436176656174456e666f726365723a696e76616c69642d63616c6c2d7479706560448201526064015b60405180910390fd5b86600881901b61011e816000610269565b6101785760405162461bcd60e51b815260206004820152602560248201527f436176656174456e666f726365723a696e76616c69642d657865637574696f6e6044820152642d7479706560d81b6064820152608401610104565b5060006101858888610280565b505091505060006101968e8e6101f8565b9050808211156101e85760405162461bcd60e51b815260206004820152601f60248201527f56616c75654c7465456e666f726365723a76616c75652d746f6f2d68696768006044820152606401610104565b5050505050505050505050505050565b6000602082146102585760405162461bcd60e51b815260206004820152602560248201527f56616c75654c7465456e666f726365723a696e76616c69642d7465726d732d6c6044820152640cadccee8d60db1b6064820152608401610104565b6102628284610445565b9392505050565b6001600160f81b0319828116908216145b92915050565b60008036816102926014828789610463565b61029b9161048d565b60601c93506102ae603460148789610463565b6102b791610445565b92506102c68560348189610463565b949793965094505050565b60008083601f8401126102e357600080fd5b50813567ffffffffffffffff8111156102fb57600080fd5b60208301915083602082850101111561031357600080fd5b9250929050565b80356001600160a01b038116811461033157600080fd5b919050565b60008060008060008060008060008060e08b8d03121561035557600080fd5b8a3567ffffffffffffffff8082111561036d57600080fd5b6103798e838f016102d1565b909c509a5060208d013591508082111561039257600080fd5b61039e8e838f016102d1565b909a50985060408d0135975060608d01359150808211156103be57600080fd5b506103cb8d828e016102d1565b90965094505060808b013592506103e460a08c0161031a565b91506103f260c08c0161031a565b90509295989b9194979a5092959850565b6000806020838503121561041657600080fd5b823567ffffffffffffffff81111561042d57600080fd5b610439858286016102d1565b90969095509350505050565b8035602083101561027a57600019602084900360031b1b1692915050565b6000808585111561047357600080fd5b8386111561048057600080fd5b5050820193919092039150565b6bffffffffffffffffffffffff1981358181169160148510156104ba5780818660140360031b1b83161692505b50509291505056fea26469706673582212201b32f956e1bfeecade9436bbfc83066c0610b5679c49ae7d06d58eaeb4e24ff564736f6c63430008170033",pk={};Q(pk,{abi:()=>lk,bytecode:()=>mk});var lk=[{type:"function",name:"PAYMASTER_DATA_OFFSET",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"PAYMASTER_POSTOP_GAS_OFFSET",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"PAYMASTER_VALIDATION_GAS_OFFSET",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"}],mk="0x60a7610034600b8282823980515f1a60731461002857634e487b7160e01b5f525f60045260245ffd5b305f52607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106046575f3560e01c806325093e1b14604a578063b29a8ff4146063578063ede3150214606a575b5f80fd5b6051602481565b60405190815260200160405180910390f35b6051601481565b605160348156fea2646970667358221220e3e47e9c438ff94c86dca42d7dcd69637923bbba71e55fc90068fd2fbb4991dc64736f6c63430008170033",hk={};Q(hk,{abi:()=>gk,bytecode:()=>Tk});var gk=[{type:"function",name:"UPGRADE_INTERFACE_VERSION",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"proxiableUUID",inputs:[],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"upgradeToAndCall",inputs:[{name:"newImplementation",type:"address",internalType:"address"},{name:"data",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"payable"},{type:"event",name:"Upgraded",inputs:[{name:"implementation",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"error",name:"AddressEmptyCode",inputs:[{name:"target",type:"address",internalType:"address"}]},{type:"error",name:"ERC1967InvalidImplementation",inputs:[{name:"implementation",type:"address",internalType:"address"}]},{type:"error",name:"ERC1967NonPayable",inputs:[]},{type:"error",name:"FailedInnerCall",inputs:[]},{type:"error",name:"UUPSUnauthorizedCallContext",inputs:[]},{type:"error",name:"UUPSUnsupportedProxiableUUID",inputs:[{name:"slot",type:"bytes32",internalType:"bytes32"}]}],Tk="0x",wk={};Q(wk,{abi:()=>vk,bytecode:()=>xk});var vk=[{type:"function",name:"afterAllHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"afterHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"beforeAllHook",inputs:[{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"beforeHook",inputs:[{name:"_terms",type:"bytes",internalType:"bytes"},{name:"",type:"bytes",internalType:"bytes"},{name:"_mode",type:"bytes32",internalType:"ModeCode"},{name:"",type:"bytes",internalType:"bytes"},{name:"",type:"bytes32",internalType:"bytes32"},{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"}],outputs:[],stateMutability:"view"},{type:"function",name:"getTermsInfo",inputs:[{name:"_terms",type:"bytes",internalType:"bytes"}],outputs:[{name:"timestampAfterThreshold_",type:"uint128",internalType:"uint128"},{name:"timestampBeforeThreshold_",type:"uint128",internalType:"uint128"}],stateMutability:"pure"}],xk="0x608060405234801561001057600080fd5b506104e7806100206000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c8063414c3e331461005c578063a145832a14610078578063b99deb0e1461008b578063d3eddcc51461005c578063ed4633671461005c575b600080fd5b61007661006a36600461033f565b50505050505050505050565b005b61007661008636600461033f565b6100c2565b61009e61009936600461040c565b61023a565b604080516001600160801b0393841681529290911660208301520160405180910390f35b85600881901b6001600160f81b03198116156101335760405162461bcd60e51b815260206004820152602560248201527f436176656174456e666f726365723a696e76616c69642d657865637574696f6e6044820152642d7479706560d81b60648201526084015b60405180910390fd5b506000806101418d8d61023a565b90925090506001600160801b038216156101b857816001600160801b031642116101b85760405162461bcd60e51b815260206004820152602260248201527f54696d657374616d70456e666f726365723a6561726c792d64656c656761746960448201526137b760f11b606482015260840161012a565b6001600160801b0381161561022b57806001600160801b0316421061022b5760405162461bcd60e51b8152602060048201526024808201527f54696d657374616d70456e666f726365723a657870697265642d64656c6567616044820152633a34b7b760e11b606482015260840161012a565b50505050505050505050505050565b6000806020831461029c5760405162461bcd60e51b815260206004820152602660248201527f54696d657374616d70456e666f726365723a696e76616c69642d7465726d732d6044820152650d8cadccee8d60d31b606482015260840161012a565b6102a9836010818761044e565b6102b291610478565b60801c90506102c560106000858761044e565b6102ce91610478565b60801c91509250929050565b60008083601f8401126102ec57600080fd5b50813567ffffffffffffffff81111561030457600080fd5b60208301915083602082850101111561031c57600080fd5b9250929050565b80356001600160a01b038116811461033a57600080fd5b919050565b60008060008060008060008060008060e08b8d03121561035e57600080fd5b8a3567ffffffffffffffff8082111561037657600080fd5b6103828e838f016102da565b909c509a5060208d013591508082111561039b57600080fd5b6103a78e838f016102da565b909a50985060408d0135975060608d01359150808211156103c757600080fd5b506103d48d828e016102da565b90965094505060808b013592506103ed60a08c01610323565b91506103fb60c08c01610323565b90509295989b9194979a5092959850565b6000806020838503121561041f57600080fd5b823567ffffffffffffffff81111561043657600080fd5b610442858286016102da565b90969095509350505050565b6000808585111561045e57600080fd5b8386111561046b57600080fd5b5050820193919092039150565b6fffffffffffffffffffffffffffffffff1981358181169160108510156104a95780818660100360031b1b83161692505b50509291505056fea2646970667358221220493f1dd46bf21857fc13b6e41e6f29c1c53fbb939ca84fcd1536c7cf1000d18064736f6c63430008170033",Ek={};Q(Ek,{abi:()=>Ak,bytecode:()=>_k});var Ak=[{type:"fallback",stateMutability:"payable"}],_k="0x",Sk={};Q(Sk,{abi:()=>Ik,bytecode:()=>Ck});var Ik=[],Ck="0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122034801a6b4534dfc9cfe9c8b31e018c344c3329b6bf478762f2158ce5781d2b7a64736f6c63430008170033",X0={};Q(X0,{abi:()=>Pk,bytecode:()=>Mk});var Pk=[{type:"constructor",inputs:[{name:"_delegationManager",type:"address",internalType:"contract IDelegationManager"},{name:"_entryPoint",type:"address",internalType:"contract IEntryPoint"}],stateMutability:"nonpayable"},{type:"receive",stateMutability:"payable"},{type:"function",name:"DOMAIN_VERSION",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"MAX_NUMBER_OF_SIGNERS",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"NAME",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"PACKED_USER_OP_TYPEHASH",inputs:[],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"UPGRADE_INTERFACE_VERSION",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"VERSION",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"addDeposit",inputs:[],outputs:[],stateMutability:"payable"},{type:"function",name:"addSigner",inputs:[{name:"_newSigner",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"delegationManager",inputs:[],outputs:[{name:"",type:"address",internalType:"contract IDelegationManager"}],stateMutability:"view"},{type:"function",name:"disableDelegation",inputs:[{name:"_delegation",type:"tuple",internalType:"struct Delegation",components:[{name:"delegate",type:"address",internalType:"address"},{name:"delegator",type:"address",internalType:"address"},{name:"authority",type:"bytes32",internalType:"bytes32"},{name:"caveats",type:"tuple[]",internalType:"struct Caveat[]",components:[{name:"enforcer",type:"address",internalType:"address"},{name:"terms",type:"bytes",internalType:"bytes"},{name:"args",type:"bytes",internalType:"bytes"}]},{name:"salt",type:"uint256",internalType:"uint256"},{name:"signature",type:"bytes",internalType:"bytes"}]}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"eip712Domain",inputs:[],outputs:[{name:"fields",type:"bytes1",internalType:"bytes1"},{name:"name",type:"string",internalType:"string"},{name:"version",type:"string",internalType:"string"},{name:"chainId",type:"uint256",internalType:"uint256"},{name:"verifyingContract",type:"address",internalType:"address"},{name:"salt",type:"bytes32",internalType:"bytes32"},{name:"extensions",type:"uint256[]",internalType:"uint256[]"}],stateMutability:"view"},{type:"function",name:"enableDelegation",inputs:[{name:"_delegation",type:"tuple",internalType:"struct Delegation",components:[{name:"delegate",type:"address",internalType:"address"},{name:"delegator",type:"address",internalType:"address"},{name:"authority",type:"bytes32",internalType:"bytes32"},{name:"caveats",type:"tuple[]",internalType:"struct Caveat[]",components:[{name:"enforcer",type:"address",internalType:"address"},{name:"terms",type:"bytes",internalType:"bytes"},{name:"args",type:"bytes",internalType:"bytes"}]},{name:"salt",type:"uint256",internalType:"uint256"},{name:"signature",type:"bytes",internalType:"bytes"}]}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"entryPoint",inputs:[],outputs:[{name:"",type:"address",internalType:"contract IEntryPoint"}],stateMutability:"view"},{type:"function",name:"execute",inputs:[{name:"_execution",type:"tuple",internalType:"struct Execution",components:[{name:"target",type:"address",internalType:"address"},{name:"value",type:"uint256",internalType:"uint256"},{name:"callData",type:"bytes",internalType:"bytes"}]}],outputs:[],stateMutability:"payable"},{type:"function",name:"execute",inputs:[{name:"_mode",type:"bytes32",internalType:"ModeCode"},{name:"_executionCalldata",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"payable"},{type:"function",name:"executeFromExecutor",inputs:[{name:"_mode",type:"bytes32",internalType:"ModeCode"},{name:"_executionCalldata",type:"bytes",internalType:"bytes"}],outputs:[{name:"returnData_",type:"bytes[]",internalType:"bytes[]"}],stateMutability:"payable"},{type:"function",name:"getDeposit",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getDomainHash",inputs:[],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"getImplementation",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"getInitializedVersion",inputs:[],outputs:[{name:"",type:"uint64",internalType:"uint64"}],stateMutability:"view"},{type:"function",name:"getNonce",inputs:[{name:"_key",type:"uint192",internalType:"uint192"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getNonce",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getPackedUserOperationHash",inputs:[{name:"_userOp",type:"tuple",internalType:"struct PackedUserOperation",components:[{name:"sender",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"},{name:"initCode",type:"bytes",internalType:"bytes"},{name:"callData",type:"bytes",internalType:"bytes"},{name:"accountGasLimits",type:"bytes32",internalType:"bytes32"},{name:"preVerificationGas",type:"uint256",internalType:"uint256"},{name:"gasFees",type:"bytes32",internalType:"bytes32"},{name:"paymasterAndData",type:"bytes",internalType:"bytes"},{name:"signature",type:"bytes",internalType:"bytes"}]}],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"getPackedUserOperationTypedDataHash",inputs:[{name:"_userOp",type:"tuple",internalType:"struct PackedUserOperation",components:[{name:"sender",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"},{name:"initCode",type:"bytes",internalType:"bytes"},{name:"callData",type:"bytes",internalType:"bytes"},{name:"accountGasLimits",type:"bytes32",internalType:"bytes32"},{name:"preVerificationGas",type:"uint256",internalType:"uint256"},{name:"gasFees",type:"bytes32",internalType:"bytes32"},{name:"paymasterAndData",type:"bytes",internalType:"bytes"},{name:"signature",type:"bytes",internalType:"bytes"}]}],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"getSigners",inputs:[],outputs:[{name:"",type:"address[]",internalType:"address[]"}],stateMutability:"view"},{type:"function",name:"getSignersCount",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"getThreshold",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"initialize",inputs:[{name:"_signers",type:"address[]",internalType:"address[]"},{name:"_threshold",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"isDelegationDisabled",inputs:[{name:"_delegationHash",type:"bytes32",internalType:"bytes32"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"isSigner",inputs:[{name:"_addr",type:"address",internalType:"address"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"isValidSignature",inputs:[{name:"_hash",type:"bytes32",internalType:"bytes32"},{name:"_signature",type:"bytes",internalType:"bytes"}],outputs:[{name:"magicValue_",type:"bytes4",internalType:"bytes4"}],stateMutability:"view"},{type:"function",name:"onERC1155BatchReceived",inputs:[{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"},{name:"",type:"uint256[]",internalType:"uint256[]"},{name:"",type:"uint256[]",internalType:"uint256[]"},{name:"",type:"bytes",internalType:"bytes"}],outputs:[{name:"",type:"bytes4",internalType:"bytes4"}],stateMutability:"view"},{type:"function",name:"onERC1155Received",inputs:[{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"},{name:"",type:"uint256",internalType:"uint256"},{name:"",type:"uint256",internalType:"uint256"},{name:"",type:"bytes",internalType:"bytes"}],outputs:[{name:"",type:"bytes4",internalType:"bytes4"}],stateMutability:"view"},{type:"function",name:"onERC721Received",inputs:[{name:"",type:"address",internalType:"address"},{name:"",type:"address",internalType:"address"},{name:"",type:"uint256",internalType:"uint256"},{name:"",type:"bytes",internalType:"bytes"}],outputs:[{name:"",type:"bytes4",internalType:"bytes4"}],stateMutability:"view"},{type:"function",name:"proxiableUUID",inputs:[],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"redeemDelegations",inputs:[{name:"_permissionContexts",type:"bytes[]",internalType:"bytes[]"},{name:"_modes",type:"bytes32[]",internalType:"ModeCode[]"},{name:"_executionCallDatas",type:"bytes[]",internalType:"bytes[]"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"reinitialize",inputs:[{name:"_version",type:"uint64",internalType:"uint64"},{name:"_signers",type:"address[]",internalType:"address[]"},{name:"_threshold",type:"uint256",internalType:"uint256"},{name:"_clearSigners",type:"bool",internalType:"bool"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"removeSigner",inputs:[{name:"_oldSigner",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"replaceSigner",inputs:[{name:"_oldSigner",type:"address",internalType:"address"},{name:"_newSigner",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"supportsInterface",inputs:[{name:"_interfaceId",type:"bytes4",internalType:"bytes4"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"updateMultiSigParameters",inputs:[{name:"_signers",type:"address[]",internalType:"address[]"},{name:"_threshold",type:"uint256",internalType:"uint256"},{name:"_clearSigners",type:"bool",internalType:"bool"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"updateThreshold",inputs:[{name:"_threshold",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"upgradeToAndCall",inputs:[{name:"_newImplementation",type:"address",internalType:"address"},{name:"_data",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"payable"},{type:"function",name:"upgradeToAndCallAndRetainStorage",inputs:[{name:"_newImplementation",type:"address",internalType:"address"},{name:"_data",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"payable"},{type:"function",name:"validateUserOp",inputs:[{name:"_userOp",type:"tuple",internalType:"struct PackedUserOperation",components:[{name:"sender",type:"address",internalType:"address"},{name:"nonce",type:"uint256",internalType:"uint256"},{name:"initCode",type:"bytes",internalType:"bytes"},{name:"callData",type:"bytes",internalType:"bytes"},{name:"accountGasLimits",type:"bytes32",internalType:"bytes32"},{name:"preVerificationGas",type:"uint256",internalType:"uint256"},{name:"gasFees",type:"bytes32",internalType:"bytes32"},{name:"paymasterAndData",type:"bytes",internalType:"bytes"},{name:"signature",type:"bytes",internalType:"bytes"}]},{name:"",type:"bytes32",internalType:"bytes32"},{name:"_missingAccountFunds",type:"uint256",internalType:"uint256"}],outputs:[{name:"validationData_",type:"uint256",internalType:"uint256"}],stateMutability:"nonpayable"},{type:"function",name:"withdrawDeposit",inputs:[{name:"_withdrawAddress",type:"address",internalType:"address payable"},{name:"_withdrawAmount",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"event",name:"AddedSigner",inputs:[{name:"signer",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"ClearedStorage",inputs:[],anonymous:!1},{type:"event",name:"EIP712DomainChanged",inputs:[],anonymous:!1},{type:"event",name:"Initialized",inputs:[{name:"version",type:"uint64",indexed:!1,internalType:"uint64"}],anonymous:!1},{type:"event",name:"RemovedSigner",inputs:[{name:"signer",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"ReplacedSigner",inputs:[{name:"oldSigner",type:"address",indexed:!0,internalType:"address"},{name:"newSigner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"SentPrefund",inputs:[{name:"sender",type:"address",indexed:!0,internalType:"address"},{name:"amount",type:"uint256",indexed:!1,internalType:"uint256"},{name:"success",type:"bool",indexed:!1,internalType:"bool"}],anonymous:!1},{type:"event",name:"SetDelegationManager",inputs:[{name:"newDelegationManager",type:"address",indexed:!0,internalType:"contract IDelegationManager"}],anonymous:!1},{type:"event",name:"SetEntryPoint",inputs:[{name:"entryPoint",type:"address",indexed:!0,internalType:"contract IEntryPoint"}],anonymous:!1},{type:"event",name:"TryExecuteUnsuccessful",inputs:[{name:"batchExecutionindex",type:"uint256",indexed:!1,internalType:"uint256"},{name:"result",type:"bytes",indexed:!1,internalType:"bytes"}],anonymous:!1},{type:"event",name:"UpdatedThreshold",inputs:[{name:"threshold",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"Upgraded",inputs:[{name:"implementation",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"error",name:"AddressEmptyCode",inputs:[{name:"target",type:"address",internalType:"address"}]},{type:"error",name:"AlreadyASigner",inputs:[]},{type:"error",name:"ECDSAInvalidSignature",inputs:[]},{type:"error",name:"ECDSAInvalidSignatureLength",inputs:[{name:"length",type:"uint256",internalType:"uint256"}]},{type:"error",name:"ECDSAInvalidSignatureS",inputs:[{name:"s",type:"bytes32",internalType:"bytes32"}]},{type:"error",name:"ERC1967InvalidImplementation",inputs:[{name:"implementation",type:"address",internalType:"address"}]},{type:"error",name:"ERC1967NonPayable",inputs:[]},{type:"error",name:"ExecutionFailed",inputs:[]},{type:"error",name:"FailedInnerCall",inputs:[]},{type:"error",name:"InsufficientSigners",inputs:[]},{type:"error",name:"InvalidInitialization",inputs:[]},{type:"error",name:"InvalidShortString",inputs:[]},{type:"error",name:"InvalidSignerAddress",inputs:[]},{type:"error",name:"InvalidThreshold",inputs:[]},{type:"error",name:"NotASigner",inputs:[]},{type:"error",name:"NotDelegationManager",inputs:[]},{type:"error",name:"NotEntryPoint",inputs:[]},{type:"error",name:"NotEntryPointOrSelf",inputs:[]},{type:"error",name:"NotInitializing",inputs:[]},{type:"error",name:"NotSelf",inputs:[]},{type:"error",name:"StringTooLong",inputs:[{name:"str",type:"string",internalType:"string"}]},{type:"error",name:"TooManySigners",inputs:[]},{type:"error",name:"UUPSUnauthorizedCallContext",inputs:[]},{type:"error",name:"UUPSUnsupportedProxiableUUID",inputs:[{name:"slot",type:"bytes32",internalType:"bytes32"}]},{type:"error",name:"UnsupportedCallType",inputs:[{name:"callType",type:"bytes1",internalType:"CallType"}]},{type:"error",name:"UnsupportedExecType",inputs:[{name:"execType",type:"bytes1",internalType:"ExecType"}]}],Mk="0x6101c0604052306080523480156200001657600080fd5b506040516200492838038062004928833981016040819052620000399162000392565b81816040518060400160405280601181526020017026bab63a34a9b4b3a232b632a3b0ba37b960791b815250604051806040016040528060018152602001603160f81b8152508181620000976000836200021f60201b90919060201c565b61014052620000a88160016200021f565b61016052815160208084019190912061010052815190820120610120524660c052620001386101005161012051604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201529081019290925260608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b60a05250503060e0526200014b62000258565b6001600160a01b038085166101808190529084166101a0526040517fb2e8eb88b584ae71ef4e854c10847f4d39bd93e52599f147bfb4dcc8de52014d90600090a26040516001600160a01b038416907fee8699dc0e27105da2653bdba54be0edcaadc3e33890a3ad705517ffe9bf0a9990600090a2505050506000620001d66200030c60201b60201c565b600019600282018190556040519081529091507f78c34957a47c9ef62a6f6f2f8720f71e2394a6438100e7e20d139c3cbe774d039060200160405180910390a1505050620005ba565b60006020835110156200023f57620002378362000330565b905062000252565b816200024c848262000478565b5060ff90505b92915050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620002a95760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620003095780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b7fb005e320c74f68de39b3d9025549122b8b117c48474f537aac49c12147b61c0090565b600080829050601f8151111562000367578260405163305a27a960e01b81526004016200035e919062000544565b60405180910390fd5b8051620003748262000595565b179392505050565b6001600160a01b03811681146200030957600080fd5b60008060408385031215620003a657600080fd5b8251620003b3816200037c565b6020840151909250620003c6816200037c565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620003fc57607f821691505b6020821081036200041d57634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111562000473576000816000526020600020601f850160051c810160208610156200044e5750805b601f850160051c820191505b818110156200046f578281556001016200045a565b5050505b505050565b81516001600160401b03811115620004945762000494620003d1565b620004ac81620004a58454620003e7565b8462000423565b602080601f831160018114620004e45760008415620004cb5750858301515b600019600386901b1c1916600185901b1785556200046f565b600085815260208120601f198616915b828110156200051557888601518255948401946001909101908401620004f4565b5085821015620005345787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60006020808352835180602085015260005b81811015620005745785810183015185820160400152820162000556565b506000604082860101526040601f19601f8301168501019250505092915050565b805160208083015191908110156200041d5760001960209190910360031b1b16919050565b60805160a05160c05160e05161010051610120516101405161016051610180516101a051614235620006f3600039600081816106d8015281816109cd01528181610c2d01528181610cb701528181610d3501528181610e9901528181610f4e01528181610fd90152818161115e0152818161124e015281816113010152818161137301528181611523015281816115a20152818161169d0152818161195501528181611a4b01528181611c6101528181611e64015281816120da0152612d0d01526000818161084a01528181610d9801528181610e1b01528181610efc0152818161160501526116e1015260006129970152600061296a015260006122be01526000612296015260006121f10152600061221b0152600061224501526000818161214801528181612171015261267101526142356000f3fe6080604052600436106102815760003560e01c806394cf795e1161014f578063cef6d209116100c1578063e9ae5c531161007a578063e9ae5c5314610825578063ea4d3c9b14610838578063eb12d61e1461086c578063ed8101b51461088c578063f23a6e61146108ac578063ffa1ad74146108cc57600080fd5b8063cef6d2091461075c578063d087d2881461077c578063d691c96414610791578063d7d7442f146107b1578063e3d9109f146107d1578063e75235b8146107f157600080fd5b8063acb8cc4911610113578063acb8cc4914610668578063ad3cb1cc14610695578063b0d691fe146106c6578063b3c65015146106fa578063bc197c8114610727578063c399ec881461074757600080fd5b806394cf795e1461059a578063a0c1deb4146105bc578063a24c8f32146105de578063a3f4df7e146105f1578063aaf10f421461063b57600080fd5b806349934047116101f357806365ee81d8116101ac57806365ee81d8146104b757806378979a80146104d75780637df73e27146104f75780637f07bfdc1461053d57806383ebb7711461055d57806384b0196e1461057257600080fd5b806349934047146104345780634a58db19146104545780634f1ef2861461045c57806352d1902d1461046f5780635c1c6dcd1461048457806360b5bb3f1461049757600080fd5b806319822f7c1161024557806319822f7c1461036b5780632b3afd991461038b5780633e1b0812146103bf5780633ed01015146103df578063445140b8146103ff5780634891161f1461041f57600080fd5b806301ffc9a71461028d57806306394d67146102c25780630e316ab7146102f0578063150b7a02146103125780631626ba7e1461034b57600080fd5b3661028857005b600080fd5b34801561029957600080fd5b506102ad6102a8366004613309565b6108fd565b60405190151581526020015b60405180910390f35b3480156102ce57600080fd5b506102e26102dd36600461334c565b61098d565b6040519081526020016102b9565b3480156102fc57600080fd5b5061031061030b36600461339d565b6109c2565b005b34801561031e57600080fd5b5061033261032d36600461346f565b610be6565b6040516001600160e01b031990911681526020016102b9565b34801561035757600080fd5b50610332610366366004613522565b610c01565b34801561037757600080fd5b506102e261038636600461356d565b610c20565b34801561039757600080fd5b506102e27fbc37962d8bd1d319c95199bdfda6d3f92baa8903a61b32d5f4ec1f4b36a3bc1881565b3480156103cb57600080fd5b506102e26103da3660046135ba565b610c90565b3480156103eb57600080fd5b506103106103fa3660046135e3565b610d2a565b34801561040b57600080fd5b506102ad61041a36600461361d565b610e02565b34801561042b57600080fd5b506102e2601e81565b34801561044057600080fd5b5061031061044f3660046135e3565b610e8e565b610310610f31565b61031061046a366004613636565b610f9b565b34801561047b57600080fd5b506102e2610fb1565b610310610492366004613685565b610fce565b3480156104a357600080fd5b506103106104b2366004613703565b61103e565b3480156104c357600080fd5b506103106104d236600461375c565b611153565b3480156104e357600080fd5b506103106104f23660046137ba565b6111bc565b34801561050357600080fd5b506102ad61051236600461339d565b6001600160a01b031660009081526000805160206141c0833981519152602052604090205460ff1690565b34801561054957600080fd5b50610310610558366004613836565b6112f6565b34801561056957600080fd5b506102e26113d3565b34801561057e57600080fd5b506105876113e2565b6040516102b997969594939291906138b2565b3480156105a657600080fd5b506105af611428565b6040516102b9919061394b565b3480156105c857600080fd5b506000805160206141a0833981519152546102e2565b6103106105ec366004613636565b610fa3565b3480156105fd57600080fd5b5061062e6040518060400160405280601181526020017026bab63a34a9b4b3a232b632a3b0ba37b960791b81525081565b6040516102b99190613998565b34801561064757600080fd5b5061065061149b565b6040516001600160a01b0390911681526020016102b9565b34801561067457600080fd5b5061062e604051806040016040528060018152602001603160f81b81525081565b3480156106a157600080fd5b5061062e604051806040016040528060058152602001640352e302e360dc1b81525081565b3480156106d257600080fd5b506106507f000000000000000000000000000000000000000000000000000000000000000081565b34801561070657600080fd5b5061070f6114bc565b6040516001600160401b0390911681526020016102b9565b34801561073357600080fd5b50610332610742366004613a2a565b6114ef565b34801561075357600080fd5b506102e261150b565b34801561076857600080fd5b50610310610777366004613ad7565b611597565b34801561078857600080fd5b506102e261167e565b6107a461079f366004613522565b6116d4565b6040516102b99190613b70565b3480156107bd57600080fd5b506103106107cc36600461361d565b61194a565b3480156107dd57600080fd5b506103106107ec366004613bd4565b611a40565b3480156107fd57600080fd5b507fb005e320c74f68de39b3d9025549122b8b117c48474f537aac49c12147b61c02546102e2565b610310610833366004613522565b611c56565b34801561084457600080fd5b506106507f000000000000000000000000000000000000000000000000000000000000000081565b34801561087857600080fd5b5061031061088736600461339d565b611e59565b34801561089857600080fd5b506102e26108a736600461334c565b611fdf565b3480156108b857600080fd5b506103326108c7366004613c0d565b612121565b3480156108d857600080fd5b5061062e604051806040016040528060058152602001640312e332e360dc1b81525081565b600061090761213d565b6001600160e01b031982166335a4725960e21b148061093657506001600160e01b03198216630a85bd0160e11b145b8061095157506001600160e01b03198216630271189760e51b145b8061096c57506001600160e01b031982166301ffc9a760e01b145b8061098757506001600160e01b03198216630b135d3f60e11b145b92915050565b600061098761099a6121e4565b6109a384611fdf565b60405161190160f01b8152600281019290925260228201526042902090565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015906109fb5750333014155b15610a1957604051630796d94560e01b815260040160405180910390fd5b6001600160a01b03811660009081526000805160206141c0833981519152602081905260409091205460ff16610a625760405163da0357f760e01b815260040160405180910390fd5b600181015460028201548103610a8b576040516361774dcf60e11b815260040160405180910390fd5b60005b610a99600183613c8b565b811015610b6357836001600160a01b0316836001018281548110610abf57610abf613c9e565b6000918252602090912001546001600160a01b031603610b5b5782600101600183610aea9190613c8b565b81548110610afa57610afa613c9e565b6000918252602090912001546001840180546001600160a01b039092169183908110610b2857610b28613c9e565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550610b63565b600101610a8e565b5081600101805480610b7757610b77613cb4565b60008281526020808220830160001990810180546001600160a01b03191690559092019092556001600160a01b038516808352908490526040808320805460ff191690555190917fb0073c14ccc2332b5b461c0d2fb94366f38d3954a82745e74827aa0811c9f98191a2505050565b6000610bf061213d565b50630a85bd0160e11b949350505050565b6000610c0b61213d565b610c1684848461230f565b90505b9392505050565b6000336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610c6b57604051636b31ba1560e11b815260040160405180910390fd5b610c7361213d565b610c8584610c808661098d565b6124ae565b9050610c19826124f6565b604051631aab3f0d60e11b81523060048201526001600160c01b03821660248201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906335567e1a90604401602060405180830381865afa158015610d06573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109879190613cca565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801590610d635750333014155b15610d8157604051630796d94560e01b815260040160405180910390fd5b604051633ed0101560e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633ed0101590610dcd908490600401613e12565b600060405180830381600087803b158015610de757600080fd5b505af1158015610dfb573d6000803e3d6000fd5b5050505050565b6040516316a0682960e11b8152600481018290526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632d40d05290602401602060405180830381865afa158015610e6a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109879190613eed565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801590610ec75750333014155b15610ee557604051630796d94560e01b815260040160405180910390fd5b604051634993404760e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690634993404790610dcd908490600401613e12565b610f3961213d565b60405163b760faf960e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063b760faf99034906024016000604051808303818588803b158015610de757600080fd5b610fa361258e565b610fad828261264b565b5050565b6000610fbb612666565b506000805160206141e083398151915290565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461101757604051636b31ba1560e11b815260040160405180910390fd5b610fad611027602083018361339d565b60208301356110396040850185613f0a565b6126af565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b03166000811580156110835750825b90506000826001600160401b0316600114801561109f5750303b155b9050811580156110ad575080155b156110cb5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156110f557845460ff60401b1916600160401b1785555b61110288888860006126e5565b831561114957845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2906020015b60405180910390a15b5050505050505050565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480159061118c5750333014155b156111aa57604051630796d94560e01b815260040160405180910390fd5b6111b6848484846126e5565b50505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054869190600160401b900460ff1680611204575080546001600160401b03808416911610155b156112225760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff19166001600160401b03831617600160401b178155336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480159061127c5750333014155b1561129a57604051630796d94560e01b815260040160405180910390fd5b6112a6868686866126e5565b805460ff60401b191681556040516001600160401b03831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a150505050505050565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480159061132f5750333014155b1561134d57604051630796d94560e01b815260040160405180910390fd5b60405163040b850f60e31b81526001600160a01b038381166004830152602482018390527f0000000000000000000000000000000000000000000000000000000000000000169063205c287890604401600060405180830381600087803b1580156113b757600080fd5b505af11580156113cb573d6000803e3d6000fd5b505050505050565b60006113dd6121e4565b905090565b6000606080600080600060606113f6612963565b6113fe612990565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b606060006000805160206141c08339815191526001810180546040805160208084028201810190925282815293945083018282801561149057602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611472575b505050505091505090565b60006113dd6000805160206141e0833981519152546001600160a01b031690565b60006113dd7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00546001600160401b031690565b60006114f961213d565b5063bc197c8160e01b95945050505050565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a08231906024015b602060405180830381865afa158015611573573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113dd9190613cca565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015906115d05750333014155b156115ee57604051630796d94560e01b815260040160405180910390fd5b60405163cef6d20960e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cef6d2099061164490899089908990899089908990600401613fb1565b600060405180830381600087803b15801561165e57600080fd5b505af1158015611672573d6000803e3d6000fd5b50505050505050505050565b604051631aab3f0d60e11b8152306004820152600060248201819052907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906335567e1a90604401611556565b6060336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461171f57604051630692ce8160e21b815260040160405180910390fd5b83600881901b61173382600160f81b6129bd565b156117b95736600061174587876129cf565b90925090506117558360006129bd565b1561176b576117648282612a68565b94506117b2565b61177983600160f81b6129bd565b15611788576117648282612b29565b6040516308c3ee0360e11b81526001600160f81b0319841660048201526024015b60405180910390fd5b5050611941565b6117c48260006129bd565b1561191c576000803660006117d98989612c56565b6040805160018082528183019092529498509296509094509250816020015b60608152602001906001900390816117f8579050509650600061181b86826129bd565b1561184f5761182c858585856126af565b8860008151811061183f5761183f613c9e565b6020026020010181905250611912565b61185d86600160f81b6129bd565b156118ed5761186e85858585612ca7565b8960008151811061188157611881613c9e565b60209081029190910101529050806118e8577fe723f28f104e46b47fd3531f3608374ac226bcf3ddda334a23a266453e0efdb76000896000815181106118c9576118c9613c9e565b60200260200101516040516118df92919061401a565b60405180910390a15b611912565b6040516308c3ee0360e11b81526001600160f81b0319871660048201526024016117a9565b5050505050611941565b604051632e5bf3f960e21b81526001600160f81b0319831660048201526024016117a9565b50509392505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148015906119835750333014155b156119a157604051630796d94560e01b815260040160405180910390fd5b806000036119c25760405163aabd5a0960e01b815260040160405180910390fd5b6000805160206141a0833981519152546000805160206141c083398151915290821115611a025760405163aabd5a0960e01b815260040160405180910390fd5b600281018290556040518281527f78c34957a47c9ef62a6f6f2f8720f71e2394a6438100e7e20d139c3cbe774d039060200160405180910390a15050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801590611a795750333014155b15611a9757604051630796d94560e01b815260040160405180910390fd5b6001600160a01b0381161580611ab657506001600160a01b0381163b15155b15611ad457604051634501a91960e01b815260040160405180910390fd5b6001600160a01b03821660009081526000805160206141c0833981519152602081905260409091205460ff16611b1d5760405163da0357f760e01b815260040160405180910390fd5b6001600160a01b03821660009081526020829052604090205460ff1615611b5757604051631985f4ab60e31b815260040160405180910390fd5b600181015460005b81811015611bf157846001600160a01b0316836001018281548110611b8657611b86613c9e565b6000918252602090912001546001600160a01b031603611be95783836001018281548110611bb657611bb6613c9e565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550611bf1565b600101611b5f565b506001600160a01b03808516600081815260208590526040808220805460ff199081169091559387168083528183208054909516600117909455517f53a7b6f060162826746b07f3ff5cc66b83afad3bc9a57c9f34d7802901c6e8299190a350505050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611c9f57604051636b31ba1560e11b815260040160405180910390fd5b82600881901b611cb382600160f81b6129bd565b15611d0e57366000611cc586866129cf565b9092509050611cd58360006129bd565b15611cea57611ce48282612a68565b50611d07565b611cf883600160f81b6129bd565b1561178857611ce48282612b29565b5050610dfb565b611d198260006129bd565b1561191c57600080366000611d2e8888612c56565b9350935093509350611d4485600060f81b6129bd565b15611d5b57611d55848484846126af565b50611e50565b611d6985600160f81b6129bd565b15611e2b57604080516001808252818301909252600091816020015b6060815260200190600190039081611d855790505090506000611daa86868686612ca7565b83600081518110611dbd57611dbd613c9e565b6020908102919091010152905080611e24577fe723f28f104e46b47fd3531f3608374ac226bcf3ddda334a23a266453e0efdb7600083600081518110611e0557611e05613c9e565b6020026020010151604051611e1b92919061401a565b60405180910390a15b5050611e50565b6040516308c3ee0360e11b81526001600160f81b0319861660048201526024016117a9565b50505050610dfb565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801590611e925750333014155b15611eb057604051630796d94560e01b815260040160405180910390fd5b6001600160a01b0381161580611ecf57506001600160a01b0381163b15155b15611eed57604051634501a91960e01b815260040160405180910390fd5b6000805160206141a0833981519152546000805160206141c083398151915290601d1901611f2e57604051630dc92ed360e11b815260040160405180910390fd5b6001600160a01b03821660009081526020829052604090205460ff1615611f6857604051631985f4ab60e31b815260040160405180910390fd5b6001818101805480830182556000918252602080832090910180546001600160a01b0319166001600160a01b038716908117909155808352908490526040808320805460ff191690941790935591517f82b74755d483f0688b80354268454667c377a5684e64a4dbb6820fc11a6276d49190a25050565b60007fbc37962d8bd1d319c95199bdfda6d3f92baa8903a61b32d5f4ec1f4b36a3bc1861200f602084018461339d565b60208401356120216040860186613f0a565b60405161202f929190614033565b6040519081900390206120456060870187613f0a565b604051612053929190614033565b604051908190039020608087013560a088013560c089013561207860e08b018b613f0a565b604051612086929190614033565b60408051918290038220602083019a909a526001600160a01b03988916908201526060810196909652608086019490945260a085019290925260c084015260e08301526101008201526101208101929092527f00000000000000000000000000000000000000000000000000000000000000001661014082015261016001604051602081830303815290604052805190602001209050919050565b600061212b61213d565b5063f23a6e6160e01b95945050505050565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614806121c457507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166121b86000805160206141e0833981519152546001600160a01b031690565b6001600160a01b031614155b156121e25760405163703e46dd60e11b815260040160405180910390fd5b565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801561223d57507f000000000000000000000000000000000000000000000000000000000000000046145b1561226757507f000000000000000000000000000000000000000000000000000000000000000090565b6113dd604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201527f0000000000000000000000000000000000000000000000000000000000000000918101919091527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260009060c00160405160208183030381529060405280519060200120905090565b7fb005e320c74f68de39b3d9025549122b8b117c48474f537aac49c12147b61c02546000906000805160206141c08339815191529061235090604190614043565b831461236757506001600160e01b03199050610c19565b600061237460418561405a565b600283015490915060008080805b858110156124965760008a8a612399604185614043565b9060416123a786600161407c565b6123b19190614043565b926123be9392919061408f565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092935061240292508e9150839050612cd8565b9350846001600160a01b0316846001600160a01b031611158061243e57506001600160a01b03841660009081526020899052604090205460ff16155b1561245c57506001600160e01b03199750610c199650505050505050565b82612466816140b9565b9350508583106124885750630b135d3f60e11b9750610c199650505050505050565b509192508291600101612382565b506001600160e01b03199a9950505050505050505050565b6000806124c8836124c3610100870187613f0a565b61230f565b90506374eca2c160e11b6001600160e01b03198216016124ec576000915050610987565b5060019392505050565b801561258b57604051600090339060001990849084818181858888f193505050503d8060008114612543576040519150601f19603f3d011682016040523d82523d6000602084013e612548565b606091505b505060408051848152821515602082015291925033917fa427c7d47f24d01b170779a7600b1d4c0d7cdbabaa0f19c4f0e6182053ffc931910160405180910390a2505b50565b6000805160206141a0833981519152546000805160206141c08339815191529060005b81811015612608578260000160008460010183815481106125d4576125d4613c9e565b60009182526020808320909101546001600160a01b031683528201929092526040019020805460ff191690556001016125b1565b506126176001830160006132d7565b6000600283018190556040517feb09d532980c3cc73dcad99b80e264204a667a54cbb7b63ec8d68dcb1c7096be9190a15050565b61265361213d565b61265c82612d02565b610fad8282612d59565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146121e25760405163703e46dd60e11b815260040160405180910390fd5b60405181838237600038838387895af16126cc573d6000823e3d81fd5b3d8152602081013d6000823e3d01604052949350505050565b6000805160206141a08339815191525483906000805160206141c08339815191529060008461271d57612718828561407c565b61271f565b835b905085158061272d57508086115b1561274b5760405163aabd5a0960e01b815260040160405180910390fd5b601e81111561276d57604051630dc92ed360e11b815260040160405180910390fd5b84156128015760005b828110156127f257600084600101828154811061279557612795613c9e565b60009182526020808320909101546001600160a01b0316808352908790526040808320805460ff191690555190925082917fb0073c14ccc2332b5b461c0d2fb94366f38d3954a82745e74827aa0811c9f98191a250600101612776565b506128016001840160006132d7565b60005b8481101561292b57600089898381811061282057612820613c9e565b9050602002016020810190612835919061339d565b6001600160a01b03811660009081526020879052604090205490915060ff161561287257604051631985f4ab60e31b815260040160405180910390fd5b6001600160a01b038116158061289157506001600160a01b0381163b15155b156128af57604051634501a91960e01b815260040160405180910390fd5b6001858101805480830182556000918252602080832090910180546001600160a01b0319166001600160a01b038616908117909155808352908890526040808320805460ff191690941790935591517f82b74755d483f0688b80354268454667c377a5684e64a4dbb6820fc11a6276d49190a250600101612804565b50600283018690556040518681527f78c34957a47c9ef62a6f6f2f8720f71e2394a6438100e7e20d139c3cbe774d0390602001611140565b60606113dd7f00000000000000000000000000000000000000000000000000000000000000006000612e1b565b60606113dd7f00000000000000000000000000000000000000000000000000000000000000006001612e1b565b6001600160f81b031990811691161490565b366000833580850160208587010360208201945081359350808460051b8301118360401c1715612a075763ba597e7e6000526004601cfd5b8315612a5e578392505b6001830392508260051b850135915081850160408101358082018381358201118460408501111782861782351760401c1715612a555763ba597e7e6000526004601cfd5b50505082612a11575b5050509250929050565b606081806001600160401b03811115612a8357612a836133ba565b604051908082528060200260200182016040528015612ab657816020015b6060815260200190600190039081612aa15790505b50915060005b81811015612b215736858583818110612ad757612ad7613c9e565b9050602002810190612ae991906140d2565b9050612afb611027602083018361339d565b848381518110612b0d57612b0d613c9e565b602090810291909101015250600101612abc565b505092915050565b606081806001600160401b03811115612b4457612b446133ba565b604051908082528060200260200182016040528015612b7757816020015b6060815260200190600190039081612b625790505b50915060005b81811015612b215736858583818110612b9857612b98613c9e565b9050602002810190612baa91906140d2565b90506000612bd5612bbe602084018461339d565b6020840135612bd06040860186613f0a565b612ca7565b868581518110612be757612be7613c9e565b6020908102919091010152905080612c4c577fe723f28f104e46b47fd3531f3608374ac226bcf3ddda334a23a266453e0efdb783868581518110612c2d57612c2d613c9e565b6020026020010151604051612c4392919061401a565b60405180910390a15b5050600101612b7d565b6000803681612c68601482878961408f565b612c71916140f2565b60601c9350612c8460346014878961408f565b612c8d91614125565b9250612c9c856034818961408f565b949793965094505050565b604051600090828482376000388483888a5af191503d8152602081013d6000823e3d81016040525094509492505050565b600080600080612ce88686612ec6565b925092509250612cf88282612f13565b5090949350505050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801590612d3b5750333014155b1561258b57604051630796d94560e01b815260040160405180910390fd5b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015612db3575060408051601f3d908101601f19168201909252612db091810190613cca565b60015b612ddb57604051634c9c8ce360e01b81526001600160a01b03831660048201526024016117a9565b6000805160206141e08339815191528114612e0c57604051632a87526960e21b8152600481018290526024016117a9565b612e168383612fcc565b505050565b606060ff8314612e3557612e2e83613022565b9050610987565b818054612e4190614143565b80601f0160208091040260200160405190810160405280929190818152602001828054612e6d90614143565b8015612eba5780601f10612e8f57610100808354040283529160200191612eba565b820191906000526020600020905b815481529060010190602001808311612e9d57829003601f168201915b50505050509050610987565b60008060008351604103612f005760208401516040850151606086015160001a612ef288828585613061565b955095509550505050612f0c565b50508151600091506002905b9250925092565b6000826003811115612f2757612f27614177565b03612f30575050565b6001826003811115612f4457612f44614177565b03612f625760405163f645eedf60e01b815260040160405180910390fd5b6002826003811115612f7657612f76614177565b03612f975760405163fce698f760e01b8152600481018290526024016117a9565b6003826003811115612fab57612fab614177565b03610fad576040516335e2f38360e21b8152600481018290526024016117a9565b612fd582613130565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a280511561301a57612e168282613195565b610fad61320b565b6060600061302f8361322a565b604080516020808252818301909252919250600091906020820181803683375050509182525060208101929092525090565b600080807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084111561309c5750600091506003905082613126565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa1580156130f0573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661311c57506000925060019150829050613126565b9250600091508190505b9450945094915050565b806001600160a01b03163b60000361316657604051634c9c8ce360e01b81526001600160a01b03821660048201526024016117a9565b6000805160206141e083398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b0316846040516131b2919061418d565b600060405180830381855af49150503d80600081146131ed576040519150601f19603f3d011682016040523d82523d6000602084013e6131f2565b606091505b5091509150613202858383613252565b95945050505050565b34156121e25760405163b398979f60e01b815260040160405180910390fd5b600060ff8216601f81111561098757604051632cd44ac360e21b815260040160405180910390fd5b60608261326757613262826132ae565b610c19565b815115801561327e57506001600160a01b0384163b155b156132a757604051639996b31560e01b81526001600160a01b03851660048201526024016117a9565b5080610c19565b8051156132be5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b508054600082559060005260206000209081019061258b91905b8082111561330557600081556001016132f1565b5090565b60006020828403121561331b57600080fd5b81356001600160e01b031981168114610c1957600080fd5b6000610120828403121561334657600080fd5b50919050565b60006020828403121561335e57600080fd5b81356001600160401b0381111561337457600080fd5b61338084828501613333565b949350505050565b6001600160a01b038116811461258b57600080fd5b6000602082840312156133af57600080fd5b8135610c1981613388565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b03811182821017156133f8576133f86133ba565b604052919050565b600082601f83011261341157600080fd5b81356001600160401b0381111561342a5761342a6133ba565b61343d601f8201601f19166020016133d0565b81815284602083860101111561345257600080fd5b816020850160208301376000918101602001919091529392505050565b6000806000806080858703121561348557600080fd5b843561349081613388565b935060208501356134a081613388565b92506040850135915060608501356001600160401b038111156134c257600080fd5b6134ce87828801613400565b91505092959194509250565b60008083601f8401126134ec57600080fd5b5081356001600160401b0381111561350357600080fd5b60208301915083602082850101111561351b57600080fd5b9250929050565b60008060006040848603121561353757600080fd5b8335925060208401356001600160401b0381111561355457600080fd5b613560868287016134da565b9497909650939450505050565b60008060006060848603121561358257600080fd5b83356001600160401b0381111561359857600080fd5b6135a486828701613333565b9660208601359650604090950135949350505050565b6000602082840312156135cc57600080fd5b81356001600160c01b0381168114610c1957600080fd5b6000602082840312156135f557600080fd5b81356001600160401b0381111561360b57600080fd5b820160c08185031215610c1957600080fd5b60006020828403121561362f57600080fd5b5035919050565b6000806040838503121561364957600080fd5b823561365481613388565b915060208301356001600160401b0381111561366f57600080fd5b61367b85828601613400565b9150509250929050565b60006020828403121561369757600080fd5b81356001600160401b038111156136ad57600080fd5b820160608185031215610c1957600080fd5b60008083601f8401126136d157600080fd5b5081356001600160401b038111156136e857600080fd5b6020830191508360208260051b850101111561351b57600080fd5b60008060006040848603121561371857600080fd5b83356001600160401b0381111561372e57600080fd5b61373a868287016136bf565b909790965060209590950135949350505050565b801515811461258b57600080fd5b6000806000806060858703121561377257600080fd5b84356001600160401b0381111561378857600080fd5b613794878288016136bf565b9095509350506020850135915060408501356137af8161374e565b939692955090935050565b6000806000806000608086880312156137d257600080fd5b85356001600160401b0380821682146137ea57600080fd5b9095506020870135908082111561380057600080fd5b5061380d888289016136bf565b9095509350506040860135915060608601356138288161374e565b809150509295509295909350565b6000806040838503121561384957600080fd5b823561385481613388565b946020939093013593505050565b60005b8381101561387d578181015183820152602001613865565b50506000910152565b6000815180845261389e816020860160208601613862565b601f01601f19169290920160200192915050565b60ff60f81b881681526000602060e060208401526138d360e084018a613886565b83810360408501526138e5818a613886565b606085018990526001600160a01b038816608086015260a0850187905284810360c08601528551808252602080880193509091019060005b818110156139395783518352928401929184019160010161391d565b50909c9b505050505050505050505050565b6020808252825182820181905260009190848201906040850190845b8181101561398c5783516001600160a01b031683529284019291840191600101613967565b50909695505050505050565b602081526000610c196020830184613886565b600082601f8301126139bc57600080fd5b813560206001600160401b038211156139d7576139d76133ba565b8160051b6139e68282016133d0565b9283528481018201928281019087851115613a0057600080fd5b83870192505b84831015613a1f57823582529183019190830190613a06565b979650505050505050565b600080600080600060a08688031215613a4257600080fd5b8535613a4d81613388565b94506020860135613a5d81613388565b935060408601356001600160401b0380821115613a7957600080fd5b613a8589838a016139ab565b94506060880135915080821115613a9b57600080fd5b613aa789838a016139ab565b93506080880135915080821115613abd57600080fd5b50613aca88828901613400565b9150509295509295909350565b60008060008060008060608789031215613af057600080fd5b86356001600160401b0380821115613b0757600080fd5b613b138a838b016136bf565b90985096506020890135915080821115613b2c57600080fd5b613b388a838b016136bf565b90965094506040890135915080821115613b5157600080fd5b50613b5e89828a016136bf565b979a9699509497509295939492505050565b600060208083016020845280855180835260408601915060408160051b87010192506020870160005b82811015613bc757603f19888603018452613bb5858351613886565b94509285019290850190600101613b99565b5092979650505050505050565b60008060408385031215613be757600080fd5b8235613bf281613388565b91506020830135613c0281613388565b809150509250929050565b600080600080600060a08688031215613c2557600080fd5b8535613c3081613388565b94506020860135613c4081613388565b9350604086013592506060860135915060808601356001600160401b03811115613c6957600080fd5b613aca88828901613400565b634e487b7160e01b600052601160045260246000fd5b8181038181111561098757610987613c75565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052603160045260246000fd5b600060208284031215613cdc57600080fd5b5051919050565b6000808335601e19843603018112613cfa57600080fd5b83016020810192503590506001600160401b03811115613d1957600080fd5b80360382131561351b57600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60008383855260208086019550808560051b830101846000805b88811015613e0457858403601f19018a52823536899003605e19018112613d90578283fd5b880160608135613d9f81613388565b6001600160a01b03168652613db682880183613ce3565b8289890152613dc88389018284613d28565b925050506040613dda81840184613ce3565b935087830382890152613dee838583613d28565b9d89019d97505050938601935050600101613d6b565b509198975050505050505050565b6020815260008235613e2381613388565b6001600160a01b0390811660208481019190915284013590613e4482613388565b80821660408501525050604083013560608301526060830135601e19843603018112613e6f57600080fd5b83016020810190356001600160401b03811115613e8b57600080fd5b8060051b3603821315613e9d57600080fd5b60c06080850152613eb260e085018284613d51565b915050608084013560a0840152613ecc60a0850185613ce3565b848303601f190160c0860152613ee3838284613d28565b9695505050505050565b600060208284031215613eff57600080fd5b8151610c198161374e565b6000808335601e19843603018112613f2157600080fd5b8301803591506001600160401b03821115613f3b57600080fd5b60200191503681900382131561351b57600080fd5b6000838385526020808601955060208560051b8301018460005b87811015613fa457848303601f19018952613f858288613ce3565b613f90858284613d28565b9a86019a9450505090830190600101613f6a565b5090979650505050505050565b606081526000613fc560608301888a613f50565b8281036020848101919091528682528791810160005b88811015613ff757833582529282019290820190600101613fdb565b50848103604086015261400b818789613f50565b9b9a5050505050505050505050565b828152604060208201526000610c166040830184613886565b8183823760009101908152919050565b808202811582820484141761098757610987613c75565b60008261407757634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561098757610987613c75565b6000808585111561409f57600080fd5b838611156140ac57600080fd5b5050820193919092039150565b6000600182016140cb576140cb613c75565b5060010190565b60008235605e198336030181126140e857600080fd5b9190910192915050565b6bffffffffffffffffffffffff198135818116916014851015612b215760149490940360031b84901b1690921692915050565b8035602083101561098757600019602084900360031b1b1692915050565b600181811c9082168061415757607f821691505b60208210810361334657634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052602160045260246000fd5b600082516140e881846020870161386256feb005e320c74f68de39b3d9025549122b8b117c48474f537aac49c12147b61c01b005e320c74f68de39b3d9025549122b8b117c48474f537aac49c12147b61c00360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca26469706673582212205fc6fdc85503c31560366339056f5ba5c2624d0697f326aa98f14cda48fe6f7164736f6c63430008170033",$k={};Q($k,{abi:()=>Ok,bytecode:()=>Rk});var Ok=[{type:"function",name:"verify",inputs:[{name:"message",type:"bytes32",internalType:"bytes32"},{name:"r",type:"uint256",internalType:"uint256"},{name:"s",type:"uint256",internalType:"uint256"},{name:"qx",type:"uint256",internalType:"uint256"},{name:"qy",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"}],Rk="0x610c9761003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100355760003560e01c8063a1f312811461003a575b600080fd5b61004d610048366004610bf0565b610061565b604051901515815260200160405180910390f35b600084158061007e5750600080516020610c428339815191528510155b80610087575083155b806100a05750600080516020610c428339815191528410155b156100ad5750600061020a565b6100fe600160601b63ffffffff60c01b03196bfffffffffffffffffffffffd63ffffffff60c01b03197f5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b8686610213565b151560000361010f5750600061020a565b600061011a856102be565b90506000600080516020610c4283398151915282890990506000600080516020610c42833981519152838909905060006040518060c00160405280888152602001878152602001600160601b63ffffffff60c01b031981526020016bfffffffffffffffffffffffd63ffffffff60c01b031981526020017f6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c29681526020017f4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5815250905060006101ea828585610337565b509050600080516020610c428339815191528a8103820815955050505050505b95945050505050565b600082158015610221575081155b8061022c5750858310155b806102375750858210155b156102445750600061020a565b6000868061025457610254610c2b565b83840990506000878061026957610269610c2b565b888061027757610277610c2b565b888709898061028857610288610c2b565b878b8061029757610297610c2b565b898a090908905087806102ac576102ac610c2b565b86820891909114979650505050505050565b600060405160208152602080820152602060408201528260608201527fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63254f6080820152600080516020610c4283398151915260a082015260208160c0836005600019fa610330576107fe60405260206040fd5b5192915050565b600080600160ff1b8415801561034b575083155b1561035d576000809250925050610be8565b60008061080060405101604052604088015161082060405101526108206040510151610466565b6000806000808886600209898182098a8188098b82840992508b8c8d8c8d098f098d8e8b8c096003090895508b8b840993508b8a830994508b8c8260028f03098d8889090896508b8c828e03890887099150508a818c8a8509089450505082890392509650965096509692505050565b9086039086828186890908955086818803888588090894506000806000808a898a0993508a89850992508a84880991508a83890990508a84860996508a8b8860028e03098c858e038e8e8f09080893508a8a8c868e038a080994508a8b84880986089250975097509750979350505050565b60a0898101516080808c01516040519182015291820152600160c0820181905260e0909101526104a760608a01518260018060a08e015160808f0151610384565b95509350955095506104d683838789610100604051019081526020810191909152604081019190915260600152565b6104ed8160a08b015160808c015186868a8c6103f4565b955093509550955061051c83838789610180604051019081526020810191909152604081019190915260600152565b61054c60018060208c015160008d0151610200604051019081526020810191909152604081019190915260600152565b6080890151955060a089015194506105728160208b015160008c01516001808a8c6103f4565b95509350955095506105a183838789610280604051019081526020810191909152604081019190915260600152565b6105b88160a08b015160808c015186868a8c6103f4565b95509350955095506105e783838789610300604051019081526020810191909152604081019190915260600152565b6105fe8160a08b015160808c015186868a8c6103f4565b955093509550955061062d83838789610380604051019081526020810191909152604081019190915260600152565b600089015195506020890151945061064e60608a015182600180898b610384565b955093509550955061067d83838789610400604051019081526020810191909152604081019190915260600152565b6106948160a08b015160808c015186868a8c6103f4565b95509350955095506106c383838789610480604051019081526020810191909152604081019190915260600152565b6106da8160a08b015160808c015186868a8c6103f4565b955093509550955061070983838789610500604051019081526020810191909152604081019190915260600152565b6107208160a08b015160808c015186868a8c6103f4565b955093509550955061074f83838789610580604051019081526020810191909152604081019190915260600152565b6104006040510151955061042060405101519450610440604051015191506104606040510151925061078e8160208b015160008c015186868a8c6103f4565b95509350955095506107bd83838789610600604051019081526020810191909152604081019190915260600152565b6107d48160a08b015160808c015186868a8c6103f4565b955093509550955061080383838789610680604051019081526020810191909152604081019190915260600152565b61081a8160a08b015160808c015186868a8c6103f4565b955093509550955061084983838789610700604051019081526020810191909152604081019190915260600152565b6108608160a08b015160808c015186868a8c6103f4565b95509350955095505061089082828688610780604051019081526020810191909152604081019190915260600152565b600091505b816108d5578286161560010360031b8360011c87161560010360021b018388161560010360011b8460011c891615600103010191508260021c9250610895565b506040805160079290921b82018051602082015192820151606090920151610820850151919750929550919290915b8415610b7d5780866002098181820982818a09838284099250838487880960608f015109848186878e8f09600309089050848885099750848784099650600285039a508485838d0986838409089a5084858387038d088209925050508281848a850908830397508291508790506002098181820982818a09838284099250838487880960608f015109848186878e8f09600309089050848885099750848784099650600285039a508485838d0986838409089a5084858387038d088209925050508281848a850908975050508488161560010360031b8560011c89161560010360021b01858a161560010360011b8660011c8b1615600103010180610a0d575094850394610b72565b60071b828101805160609091015161086085015284610a48579083016020810151604082015160609092015192995097509094509250610b72565b82836108608601518a09848885602001880151090861084085015290830160400151908280838b0984038487840908610840850151610b005780610b005783896002860309925083838409905083818b09610840860152838184099250838487880960608f0151099150838285868d8e09600309089150838784099650838682099550838461084087015160028703098584850908995083848b8603610840880151088309905083848a850982089850505050610b72565b83818209915083818309905083838584890909955083838b0992508361086086015185838a09099650838485846002880309850985838703876108408a01516108408b01510908089950838284099150838482866108608901518d090985610840880151878e89038708090898505050505b8460021c9450610904565b61088060408190526108e085905260208082526108a08190526108c08190526001198301610900526109208390529092508260c0816005600019fa610bc8576107ff60405260206040fd5b808251870995508082518409925080838409925080838809965050505050505b935093915050565b600080600080600060a08688031215610c0857600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b634e487b7160e01b600052601260045260246000fdfeffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551a26469706673582212202032a0a92437c4c7498b5f3dbbeea2851a22a8974a563aed836730aa07e1cdda64736f6c63430008170033",mp={};f0(mp,{read:()=>Qo});var Qo={};f0(Qo,{getAvailableAmount:()=>Bk});var Bk=async({client:e,contractAddress:t,delegationHash:n,delegationManager:a,terms:s})=>{const[i,f,d]=await u0(e,{address:t,abi:dp.abi,functionName:"getAvailableAmount",args:[n,a,s]});return{availableAmount:i,isNewPeriod:f,currentPeriod:d}},hp={};f0(hp,{read:()=>ef});var ef={};f0(ef,{getAvailableAmount:()=>Nk});var Nk=async({client:e,contractAddress:t,delegationManager:n,delegationHash:a,terms:s})=>{const f=(await yt(e)).timestamp,d=await u0(e,{address:t,abi:Wo.abi,functionName:"streamingAllowances",args:[n,a]}),[b,y,u,p,m]=d;if(p!==0n)return{availableAmount:gp({initialAmount:b,maxAmount:y,amountPerSecond:u,startTime:p,spent:m,currentTimestamp:f})};const h=await u0(e,{address:t,abi:Wo.abi,functionName:"getTermsInfo",args:[s]}),[,x,T,C,S]=h;return{availableAmount:gp({initialAmount:x,maxAmount:T,amountPerSecond:C,startTime:S,spent:0n,currentTimestamp:f})}};function gp(e){if(e.currentTimestamp<e.startTime)return 0n;const t=e.currentTimestamp-e.startTime;let n=e.initialAmount+e.amountPerSecond*t;return n>e.maxAmount&&(n=e.maxAmount),e.spent>=n?0n:n-e.spent}var Tp={};f0(Tp,{read:()=>tf});var tf={};f0(tf,{getAvailableAmount:()=>Dk});var Dk=async({client:e,contractAddress:t,delegationHash:n,delegationManager:a,terms:s,args:i})=>{const[f,d,b]=await u0(e,{address:t,abi:pp.abi,functionName:"getAvailableAmount",args:[n,a,s,i]});return{availableAmount:f,isNewPeriod:d,currentPeriod:b}},wp={};f0(wp,{read:()=>nf});var nf={};f0(nf,{getAvailableAmount:()=>kk});var kk=async({client:e,contractAddress:t,delegationHash:n,delegationManager:a,terms:s})=>{const[i,f,d]=await u0(e,{address:t,abi:yp.abi,functionName:"getAvailableAmount",args:[n,a,s]});return{availableAmount:i,isNewPeriod:f,currentPeriod:d}},vp={};f0(vp,{read:()=>af});var af={};f0(af,{getAvailableAmount:()=>Lk});var Lk=async({client:e,contractAddress:t,delegationManager:n,delegationHash:a,terms:s})=>{const f=(await yt(e)).timestamp,d=await u0(e,{address:t,abi:Ko.abi,functionName:"streamingAllowances",args:[n,a]}),[b,y,u,p,m]=d;if(p!==0n)return{availableAmount:xp({initialAmount:b,maxAmount:y,amountPerSecond:u,startTime:p,spent:m,currentTimestamp:f})};const h=await u0(e,{address:t,abi:Ko.abi,functionName:"getTermsInfo",args:[s]}),[x,T,C,S]=h;return{availableAmount:xp({initialAmount:x,maxAmount:T,amountPerSecond:C,startTime:S,spent:0n,currentTimestamp:f})}};function xp(e){if(e.currentTimestamp<e.startTime)return 0n;const t=e.currentTimestamp-e.startTime;let n=e.initialAmount+e.amountPerSecond*t;return n>e.maxAmount&&(n=e.maxAmount),e.spent>=n?0n:n-e.spent}var Q5=({target:e,value:t=0n,callData:n="0x"})=>({target:e,value:t,callData:n}),Fk=[{type:"address",name:"target"},{type:"uint256",name:"value"},{type:"bytes",name:"callData"}],Uk=e=>er(["address","uint256","bytes"],[e.target,e.value,e.callData]),Hk=e=>ut([{components:Fk,name:"executions",type:"tuple[]"}],[e]),rf=e=>{if(e.length===0)throw new Error("Error while getting the execution calldatas, executions is empty");if(e.length===1){const t=e[0];if(!t)throw new Error("Execution not found");return Uk(t)}return Hk(e)},bs=e=>{if(e.length===0)throw new Error("Error while getting the execution calldatas, executionsBatch is empty");return e.map(rf)},P0={DelegationManager:"0xdb9B1e94B5b69Df7e401DDbedE43491141047dB3",EntryPoint:"0x0000000071727De22E5E9d8BAf0edAc6f37da032",SimpleFactory:"0x69Aa2f9fe1572F1B640E1bbc512f5c3a734fc77c",MultiSigDeleGatorImpl:"0x56a9EdB16a0105eb5a4C54f4C062e2868844f3A7",HybridDeleGatorImpl:"0x48dBe696A4D990079e039489bA2053B36E8FFEC4",EIP7702StatelessDeleGatorImpl:"0x63c0c19a282a1B52b07dD5a65b58948A07DAE32B",AllowedCalldataEnforcer:"0xc2b0d624c1c4319760C96503BA27C347F3260f55",AllowedMethodsEnforcer:"0x2c21fD0Cb9DC8445CB3fb0DC5E7Bb0Aca01842B5",AllowedTargetsEnforcer:"0x7F20f61b1f09b08D970938F6fa563634d65c4EeB",BlockNumberEnforcer:"0x5d9818dF0AE3f66e9c3D0c5029DAF99d1823ca6c",DeployedEnforcer:"0x24ff2AA430D53a8CD6788018E902E098083dcCd2",ERC20BalanceChangeEnforcer:"0xcdF6aB796408598Cea671d79506d7D48E97a5437",ERC20TransferAmountEnforcer:"0xf100b0819427117EcF76Ed94B358B1A5b5C6D2Fc",ERC20PeriodTransferEnforcer:"0x474e3Ae7E169e940607cC624Da8A15Eb120139aB",ERC20StreamingEnforcer:"0x56c97aE02f233B29fa03502Ecc0457266d9be00e",ERC721BalanceChangeEnforcer:"0x8aFdf96eDBbe7e1eD3f5Cd89C7E084841e12A09e",ERC721TransferEnforcer:"0x3790e6B7233f779b09DA74C72b6e94813925b9aF",ERC1155BalanceChangeEnforcer:"0x63c322732695cAFbbD488Fc6937A0A7B66fC001A",ExactCalldataBatchEnforcer:"0x982FD5C86BBF425d7d1451f974192d4525113DfD",ExactCalldataEnforcer:"0x99F2e9bF15ce5eC84685604836F71aB835DBBdED",ExactExecutionBatchEnforcer:"0x1e141e455d08721Dd5BCDA1BaA6Ea5633Afd5017",ExactExecutionEnforcer:"0x146713078D39eCC1F5338309c28405ccf85Abfbb",IdEnforcer:"0xC8B5D93463c893401094cc70e66A206fb5987997",LimitedCallsEnforcer:"0x04658B29F6b82ed55274221a06Fc97D318E25416",NativeBalanceChangeEnforcer:"0xbD7B277507723490Cd50b12EaaFe87C616be6880",ArgsEqualityCheckEnforcer:"0x44B8C6ae3C304213c3e298495e12497Ed3E56E41",NativeTokenPaymentEnforcer:"0x4803a326ddED6dDBc60e659e5ed12d85c7582811",NativeTokenTransferAmountEnforcer:"0xF71af580b9c3078fbc2BBF16FbB8EEd82b330320",NativeTokenStreamingEnforcer:"0xD10b97905a320b13a0608f7E9cC506b56747df19",NativeTokenPeriodTransferEnforcer:"0x9BC0FAf4Aca5AE429F4c06aEEaC517520CB16BD9",NonceEnforcer:"0xDE4f2FAC4B3D87A1d9953Ca5FC09FCa7F366254f",OwnershipTransferEnforcer:"0x7EEf9734E7092032B5C56310Eb9BbD1f4A524681",RedeemerEnforcer:"0xE144b0b2618071B4E56f746313528a669c7E65c5",SpecificActionERC20TransferBatchEnforcer:"0x6649b61c873F6F9686A1E1ae9ee98aC380c7bA13",TimestampEnforcer:"0x1046bb45C8d673d4ea75321280DB34899413c069",ValueLteEnforcer:"0x92Bf12322527cAA612fd31a0e810472BBB106A8F",MultiTokenPeriodEnforcer:"0xFB2f1a9BD76d3701B730E5d69C3219D42D80eBb7"},q1={DelegationManager:"0x56D56e07e3d6Ee5a24e30203A37a0a460f42D7A3",EntryPoint:"0x0000000071727De22E5E9d8BAf0edAc6f37da032",SimpleFactory:"0x6ff518884f21168c30c58CB21184D6AdBC18Ad90",MultiSigDeleGatorImpl:"0xd1f421EDbA5e3FA9efe3874827114b20C5BEC40C",HybridDeleGatorImpl:"0x941f3a016F8726d5643Ce62452d0D78492D42b42",AllowedCalldataEnforcer:"0xff71d60f3208469cBCE0859717B5198042DCB3F3",AllowedMethodsEnforcer:"0xe32C2561792e8446Abe73B9f557B881C13906186",AllowedTargetsEnforcer:"0x06aaE4c67EEA95277c46Bf79b1583d4a01772D22",BlockNumberEnforcer:"0x8E470D2Ae278457b42d2405E0B8Cd4BE21Ed9045",DeployedEnforcer:"0xf9088f013dBD9ebb7Cebd66fEB48253c6Ac5a820",ERC20BalanceGteEnforcer:"0xB7B6f32ec6343261D814e55Ed8C5925d91Cab861",ERC20TransferAmountEnforcer:"0x9A069b18032B31429A363AeCFb1B6A0564b44471",IdEnforcer:"0x91015c3b9D9523966eD2399885e5Df7A567f916c",LimitedCallsEnforcer:"0xe694bFfffEA3E85923b1210b37e6a0175e910863",NonceEnforcer:"0xE83BCFD8bBE672A96747e831050a91cf44F4F87A",TimestampEnforcer:"0x550FdD13eEBC1f22ea2a2480024BacBF0Ad7e5CE",ValueLteEnforcer:"0xBE32a6DB7471F63BB168C088c57Db01AfAe87967",NativeTokenTransferAmountEnforcer:"0x5eD3833d7B957A8DB8A461c3AF2d668Ec25382E0",NativeBalanceGteEnforcer:"0x376a98860E210DdEda3689fb39565592c563cB0A",ArgsEqualityCheckEnforcer:"0x7378dE585998d3E18Ce147867C335C25B3dB8Ee5",NativeTokenPaymentEnforcer:"0x87Fe18EbF99e42fcE8A03a25F1d20E119407f8e7",RedeemerEnforcer:"0x926672b130D1EF60A9d6b11D2048d121b30f40C1"},P6={DelegationManager:"0xbe4138886cb096bdc1b930f2f0ca7892aa234d78",EntryPoint:"0x0000000071727De22E5E9d8BAf0edAc6f37da032",SimpleFactory:"0x6ff518884f21168c30c58CB21184D6AdBC18Ad90",MultiSigDeleGatorImpl:"0x11f555af5844d85bfcf5d61d2a22866527eb585a",HybridDeleGatorImpl:"0xd6edd1256deccb2b06bdecef92dc16bcf26e531b",AllowedCalldataEnforcer:"0x48db3835a873d64a4af2c09f014052407c003bd7",AllowedMethodsEnforcer:"0xfd731951bf1c52afccee3e6f14ab656475b76dd4",AllowedTargetsEnforcer:"0xbc8673c0afa52d86d991c06881e55b2966920564",BlockNumberEnforcer:"0xc15faffa0d879b9263c15a46ce31eacfa2e0e8ae",DeployedEnforcer:"0x5accb9559b56a6c1e3f90e342c85c42d93720d43",ERC20BalanceGteEnforcer:"0xb5d6b1ec6d868a3bae5b7f48178eaa2686a7a087",ERC20TransferAmountEnforcer:"0x92ac423b9c111962179a6242e1adb58d02c103be",IdEnforcer:"0x34152d9f3f8f74338d50703e780389e829b4abac",LimitedCallsEnforcer:"0x4b3adad4a328bee8ba17b86074d92fe7372180cd",NonceEnforcer:"0x2f32ff3fc3086d7f63f16fe8d0065390d460b40d",TimestampEnforcer:"0x78e05f779490c24bf3bfa135b4112e7003b321cd",ValueLteEnforcer:"0xfc20ede0a1132e839fbda9d7ed3904ff3c89540f"},h0={arbitrum:42161,arbitrumNova:42170,base:8453,berachain:80094,bsc:56,gnosis:100,ink:57073,linea:59144,mainnet:1,monad:143,optimism:10,polygon:137,sei:1329,sonic:146,unichain:130,bscTestnet:97,arbitrumSepolia:421614,baseSepolia:84532,berachainBepolia:80069,chiado:10200,citreaTestnet:5115,hoodiTestnet:560048,inkSepolia:763373,lineaSepolia:59141,megaEthTestnet:6342,monadTestnet:10143,optimismSepolia:11155420,polygonAmoy:80002,seiTestnet:1328,sepolia:11155111,sonicTestnet:14601,unichainSepolia:1301},Gk={"1.0.0":{[h0.optimism]:P6,[h0.polygon]:P6,[h0.base]:P6,[h0.arbitrum]:P6,[h0.linea]:P6,[h0.sepolia]:{...P6,HybridDeleGatorImpl:"0x5989F5D13DF8fc818EdA65e417AED90459fD67F7"},[h0.lineaSepolia]:{...P6,HybridDeleGatorImpl:"0x5989F5D13DF8fc818EdA65e417AED90459fD67F7"}},"1.1.0":{[h0.arbitrum]:q1,[h0.base]:q1,[h0.linea]:q1,[h0.optimism]:q1,[h0.polygon]:q1,[h0.sepolia]:q1,[h0.lineaSepolia]:q1,[h0.baseSepolia]:{...q1,SimpleFactory:"0xE8eA1DE8D6AfE400B7C8C1A81B7C29B7876b4d02"}},"1.3.0":{[h0.mainnet]:P0,[h0.polygon]:P0,[h0.bsc]:P0,[h0.optimism]:P0,[h0.arbitrum]:P0,[h0.ink]:P0,[h0.linea]:P0,[h0.base]:P0,[h0.gnosis]:P0,[h0.berachain]:P0,[h0.unichain]:P0,[h0.arbitrumNova]:P0,[h0.sei]:P0,[h0.sonic]:P0,[h0.monad]:P0,[h0.bscTestnet]:P0,[h0.citreaTestnet]:P0,[h0.megaEthTestnet]:P0,[h0.chiado]:P0,[h0.lineaSepolia]:P0,[h0.berachainBepolia]:P0,[h0.baseSepolia]:P0,[h0.arbitrumSepolia]:P0,[h0.sepolia]:P0,[h0.optimismSepolia]:P0,[h0.unichainSepolia]:P0,[h0.polygonAmoy]:P0,[h0.inkSepolia]:P0,[h0.monadTestnet]:P0,[h0.seiTestnet]:P0,[h0.sonicTestnet]:P0,[h0.hoodiTestnet]:P0}},zk="1.3.0",jk=new Map,Vk=(e,t)=>`${t}:${e}`;function Ep(e,t=zk){var i;const n=Vk(e,t),a=jk.get(n);if(a)return a;const s=(i=Gk[t])==null?void 0:i[e];if(!s)throw new Error(`No contracts found for version ${t} chain ${e}`);return qk(s)}function qk(e){return{DelegationManager:e.DelegationManager,EntryPoint:e.EntryPoint,SimpleFactory:e.SimpleFactory,implementations:{MultiSigDeleGatorImpl:e.MultiSigDeleGatorImpl,HybridDeleGatorImpl:e.HybridDeleGatorImpl,EIP7702StatelessDeleGatorImpl:e.EIP7702StatelessDeleGatorImpl},caveatEnforcers:{AllowedCalldataEnforcer:e.AllowedCalldataEnforcer,AllowedMethodsEnforcer:e.AllowedMethodsEnforcer,AllowedTargetsEnforcer:e.AllowedTargetsEnforcer,ArgsEqualityCheckEnforcer:e.ArgsEqualityCheckEnforcer,BlockNumberEnforcer:e.BlockNumberEnforcer,DeployedEnforcer:e.DeployedEnforcer,ERC20BalanceChangeEnforcer:e.ERC20BalanceChangeEnforcer,ERC20TransferAmountEnforcer:e.ERC20TransferAmountEnforcer,ERC20StreamingEnforcer:e.ERC20StreamingEnforcer,ERC721BalanceChangeEnforcer:e.ERC721BalanceChangeEnforcer,ERC721TransferEnforcer:e.ERC721TransferEnforcer,ERC1155BalanceChangeEnforcer:e.ERC1155BalanceChangeEnforcer,IdEnforcer:e.IdEnforcer,LimitedCallsEnforcer:e.LimitedCallsEnforcer,NonceEnforcer:e.NonceEnforcer,TimestampEnforcer:e.TimestampEnforcer,ValueLteEnforcer:e.ValueLteEnforcer,NativeTokenTransferAmountEnforcer:e.NativeTokenTransferAmountEnforcer,NativeBalanceChangeEnforcer:e.NativeBalanceChangeEnforcer,NativeTokenStreamingEnforcer:e.NativeTokenStreamingEnforcer,NativeTokenPaymentEnforcer:e.NativeTokenPaymentEnforcer,OwnershipTransferEnforcer:e.OwnershipTransferEnforcer,RedeemerEnforcer:e.RedeemerEnforcer,SpecificActionERC20TransferBatchEnforcer:e.SpecificActionERC20TransferBatchEnforcer,ERC20PeriodTransferEnforcer:e.ERC20PeriodTransferEnforcer,NativeTokenPeriodTransferEnforcer:e.NativeTokenPeriodTransferEnforcer,ExactCalldataBatchEnforcer:e.ExactCalldataBatchEnforcer,ExactCalldataEnforcer:e.ExactCalldataEnforcer,ExactExecutionEnforcer:e.ExactExecutionEnforcer,ExactExecutionBatchEnforcer:e.ExactExecutionBatchEnforcer,MultiTokenPeriodEnforcer:e.MultiTokenPeriodEnforcer}}}var Ap={PackedUserOperation:[{name:"sender",type:"address"},{name:"nonce",type:"uint256"},{name:"initCode",type:"bytes"},{name:"callData",type:"bytes"},{name:"accountGasLimits",type:"bytes32"},{name:"preVerificationGas",type:"uint256"},{name:"gasFees",type:"bytes32"},{name:"paymasterAndData",type:"bytes"},{name:"entryPoint",type:"address"}]},Wk=({userOperation:e,entryPoint:t,chainId:n,name:a,address:s,version:i="1"})=>{const f=t9({...e,signature:"0x"});return{domain:{chainId:n,name:a,version:i,verifyingContract:s},types:Ap,primaryType:"PackedUserOperation",message:{...f,entryPoint:t.address}}},Zk={};f0(Zk,{caveatEnforcerActions:()=>sL,erc7710BundlerActions:()=>uL,erc7710WalletActions:()=>cL,erc7715ProviderActions:()=>dL,getErc20PeriodTransferEnforcerAvailableAmount:()=>Sp,getErc20StreamingEnforcerAvailableAmount:()=>Ip,getMultiTokenPeriodEnforcerAvailableAmount:()=>Cp,getNativeTokenPeriodTransferEnforcerAvailableAmount:()=>Pp,getNativeTokenStreamingEnforcerAvailableAmount:()=>Mp,isValid7702Implementation:()=>$p,requestExecutionPermissions:()=>_p,signDelegation:()=>Op,signDelegationActions:()=>fL,signUserOperation:()=>Rp,signUserOperationActions:()=>bL});async function Yk(e,t){if(!t.to)throw new Error("`to` is required. `sendTransactionWithDelegation` cannot be used to deploy contracts.");const n=[Q5({target:t.to,value:t.value,callData:t.data})],a=T0({abi:vt.abi,functionName:"redeemDelegations",args:[[t.permissionsContext],["0x0000000000000000000000000000000000000000000000000000000000000000"],bs([n])]}),{value:s,permissionsContext:i,delegationManager:f,...d}=t;return await e.sendTransaction({...d,to:t.delegationManager,data:a})}async function Kk(e,t){var n;if(t.accountMetadata){const{publicClient:a}=t,s={},i=(n=a.chain)==null?void 0:n.id;if(!i)throw new Error("Chain ID is not set");const{SimpleFactory:f}=Ep(i),d=t.accountMetadata.filter(y=>{if(!z1(y.factory,f))throw new Error(`Invalid accountMetadata: ${y.factory} is not allowed.`);const u=Z0([y.factory,y.factoryData]),p=s[u];return s[u]=!0,!p}),b=(await Promise.all(d.map(async({factory:y,factoryData:u})=>{if(!await a.call({to:y,data:u}).then(()=>!1).catch(()=>!0))return{to:y,value:0n,data:u}}))).filter(y=>y!==void 0);t.calls=[...b,...t.calls]}return e.sendUserOperation(t)}async function _p(e,t){const n=t.map(Xk),a=await e.request({method:"wallet_requestExecutionPermissions",params:n},{retryCount:0});if(!a)throw new Error("Failed to grant permissions");return a}function Xk(e){const{chainId:t,address:n,expiry:a,isAdjustmentAllowed:s}=e,i=Qk(e.permission.type),f=typeof e.signer=="string"?e.signer:e.signer.data.address,d=[{type:"expiry",isAdjustmentAllowed:s,data:{timestamp:a}}];return{...{...n?{address:n}:{}},chainId:se(t),permission:i({permission:e.permission,isAdjustmentAllowed:s}),signer:{type:"account",data:{address:f}},rules:d}}function v1(e){return e!=null}function Jk(e,t){if(!v1(e))throw new Error(`Invalid parameters: ${t??"value"} is required`)}function Xt(e,t){if(Jk(e,t),typeof e=="string"){if(!dt(e))throw new Error(`Invalid parameters: ${t??"value"} is not a valid hex value`);return e}return se(e)}function Qk(e){switch(e){case"native-token-stream":return({permission:t,isAdjustmentAllowed:n})=>eL({permission:t,isAdjustmentAllowed:n});case"erc20-token-stream":return({permission:t,isAdjustmentAllowed:n})=>tL({permission:t,isAdjustmentAllowed:n});case"native-token-periodic":return({permission:t,isAdjustmentAllowed:n})=>nL({permission:t,isAdjustmentAllowed:n});case"erc20-token-periodic":return({permission:t,isAdjustmentAllowed:n})=>aL({permission:t,isAdjustmentAllowed:n});case"erc20-token-revocation":return({permission:t,isAdjustmentAllowed:n})=>rL({permission:t,isAdjustmentAllowed:n});default:throw new Error(`Unsupported permission type: ${e}`)}}function eL({permission:e,isAdjustmentAllowed:t}){const{data:{initialAmount:n,justification:a,maxAmount:s,startTime:i,amountPerSecond:f}}=e,d={...v1(n)&&{initialAmount:Xt(n,"initialAmount")},...v1(s)&&{maxAmount:Xt(s,"maxAmount")},...v1(i)&&{startTime:Number(i)},...a?{justification:a}:{}};return{type:"native-token-stream",data:{amountPerSecond:Xt(f,"amountPerSecond"),...d},isAdjustmentAllowed:t}}function tL({permission:e,isAdjustmentAllowed:t}){const{data:{tokenAddress:n,amountPerSecond:a,initialAmount:s,startTime:i,maxAmount:f,justification:d}}=e,b={...v1(s)&&{initialAmount:Xt(s,"initialAmount")},...v1(f)&&{maxAmount:Xt(f,"maxAmount")},...v1(i)&&{startTime:Number(i)},...d?{justification:d}:{}};return{type:"erc20-token-stream",data:{tokenAddress:Xt(n,"tokenAddress"),amountPerSecond:Xt(a,"amountPerSecond"),...b},isAdjustmentAllowed:t}}function nL({permission:e,isAdjustmentAllowed:t}){const{data:{periodAmount:n,periodDuration:a,startTime:s,justification:i}}=e,f={...v1(s)&&{startTime:Number(s)},...i?{justification:i}:{}};return{type:"native-token-periodic",data:{periodAmount:Xt(n,"periodAmount"),periodDuration:Number(a),...f},isAdjustmentAllowed:t}}function aL({permission:e,isAdjustmentAllowed:t}){const{data:{tokenAddress:n,periodAmount:a,periodDuration:s,startTime:i,justification:f}}=e,d={...v1(i)&&{startTime:Number(i)},...f?{justification:f}:{}};return{type:"erc20-token-periodic",data:{tokenAddress:Xt(n,"tokenAddress"),periodAmount:Xt(a,"periodAmount"),periodDuration:Number(s),...d},isAdjustmentAllowed:t}}function rL({permission:e,isAdjustmentAllowed:t}){const{data:{justification:n}}=e;return{type:"erc20-token-revocation",data:{...n?{justification:n}:{}},isAdjustmentAllowed:t}}function ea({delegation:e,enforcerAddress:t,enforcerName:n}){const a=e.caveats.filter(f=>f.enforcer.toLowerCase()===t.toLowerCase());if(a.length===0)throw new Error(`No caveat found with enforcer matching ${n}`);if(a.length>1)throw new Error(`Multiple caveats found with enforcer matching ${n}`);const[{terms:s,args:i}]=a;return{terms:s,args:i}}function ta(e){if(!e.DelegationManager)throw new Error("Delegation manager address not found");return e.DelegationManager}function na({enforcerName:e,environment:t}){const n=t.caveatEnforcers[e];if(!n)throw new Error(`${e} not found in environment`);return n}async function Sp(e,t,n){const a="ERC20PeriodTransferEnforcer",s=ta(t),i=na({enforcerName:a,environment:t}),f=X5(n.delegation),{terms:d}=ea({delegation:n.delegation,enforcerAddress:i,enforcerName:a});return Qo.getAvailableAmount({client:e,contractAddress:i,delegationHash:f,delegationManager:s,terms:d})}async function Ip(e,t,n){const a="ERC20StreamingEnforcer",s=ta(t),i=na({enforcerName:a,environment:t}),f=X5(n.delegation),{terms:d}=ea({delegation:n.delegation,enforcerAddress:i,enforcerName:a});return ef.getAvailableAmount({client:e,contractAddress:i,delegationManager:s,delegationHash:f,terms:d})}async function Cp(e,t,n){const a="MultiTokenPeriodEnforcer",s=ta(t),i=na({enforcerName:a,environment:t}),f=X5(n.delegation),{terms:d,args:b}=ea({delegation:n.delegation,enforcerAddress:i,enforcerName:a});return tf.getAvailableAmount({client:e,contractAddress:i,delegationHash:f,delegationManager:s,terms:d,args:b})}async function Pp(e,t,n){const a="NativeTokenPeriodTransferEnforcer",s=ta(t),i=na({enforcerName:a,environment:t}),f=X5(n.delegation),{terms:d}=ea({delegation:n.delegation,enforcerAddress:i,enforcerName:a});return nf.getAvailableAmount({client:e,contractAddress:i,delegationHash:f,delegationManager:s,terms:d})}async function Mp(e,t,n){const a="NativeTokenStreamingEnforcer",s=ta(t),i=na({enforcerName:a,environment:t}),f=X5(n.delegation),{terms:d}=ea({delegation:n.delegation,enforcerAddress:i,enforcerName:a});return af.getAvailableAmount({client:e,contractAddress:i,delegationManager:s,delegationHash:f,terms:d})}var sL=({environment:e})=>t=>({getErc20PeriodTransferEnforcerAvailableAmount:async n=>Sp(t,e,n),getErc20StreamingEnforcerAvailableAmount:async n=>Ip(t,e,n),getMultiTokenPeriodEnforcerAvailableAmount:async n=>Cp(t,e,n),getNativeTokenPeriodTransferEnforcerAvailableAmount:async n=>Pp(t,e,n),getNativeTokenStreamingEnforcerAvailableAmount:async n=>Mp(t,e,n)}),iL="0xef0100";function oL(e){return(e==null?void 0:e.length)!==48||!e.toLowerCase().startsWith(iL.toLowerCase())?null:`0x${e.slice(8)}`}async function $p({client:e,accountAddress:t,environment:n}){try{const a=await sn(e,{address:t}),s=oL(a);if(!s)return!1;const i=n.implementations.EIP7702StatelessDeleGatorImpl;return i?z1(s,i):!1}catch{return!1}}async function Op(e,t){const{account:n=e.account,delegation:a,delegationManager:s,chainId:i,name:f="DelegationManager",version:d="1",allowInsecureUnrestrictedDelegation:b=!1}=t;if(!n)throw new G("Account not found. Please provide an account.");const y=ae(n),u=j$({delegation:a,delegationManager:s,chainId:i,name:f,version:d,allowInsecureUnrestrictedDelegation:b});return e.signTypedData({account:y,...u})}function fL(){return e=>({signDelegation:async t=>Op(e,{chainId:t.chainId??(()=>{var n;if(!((n=e.chain)!=null&&n.id))throw new G("Chain ID is required. Either provide it in parameters or configure the client with a chain.");return e.chain.id})(),...t})})}async function Rp(e,t){const{account:n=e.account,userOperation:a,entryPoint:s,chainId:i,name:f,address:d,version:b="1"}=t;if(!n)throw new G("Account not found. Please provide an account.");const y=ae(n),u=Wk({userOperation:a,entryPoint:s,chainId:i,name:f,address:d,version:b});return e.signTypedData({account:y,...u})}function bL(){return e=>({signUserOperation:async t=>Rp(e,{chainId:t.chainId??(()=>{var n;if(!((n=e.chain)!=null&&n.id))throw new G("Chain ID is required. Either provide it in parameters or configure the client with a chain.");return e.chain.id})(),...t})})}var dL=()=>e=>({requestExecutionPermissions:async t=>_p(e,t)}),cL=()=>e=>({sendTransactionWithDelegation:async t=>Yk(e,t)}),uL=()=>e=>({sendUserOperationWithDelegation:async t=>Kk(e,t)}),Bp={};f0(Bp,{getDelegationManager:()=>yL,getDeposit:()=>pL,getEntryPoint:()=>lL,getNonce:()=>mL,getProxyImplementation:()=>Np,getProxyVersion:()=>hL,isValidSignature:()=>gL});var yL=async({client:e,contractAddress:t})=>await u0(e,{address:t,abi:oe.abi,functionName:"delegationManager"}),pL=async({client:e,contractAddress:t})=>await u0(e,{address:t,abi:oe.abi,functionName:"getDeposit"}),lL=async({client:e,contractAddress:t})=>await u0(e,{address:t,abi:oe.abi,functionName:"entryPoint"}),mL=async({client:e,contractAddress:t,key:n})=>await u0(e,{address:t,abi:oe.abi,functionName:"getNonce",args:n?[n]:void 0}),Np=async({client:e,contractAddress:t})=>await u0(e,{address:t,abi:oe.abi,functionName:"getImplementation"}),hL=async({client:e,contractAddress:t})=>await u0(e,{address:t,abi:oe.abi,functionName:"getInitializedVersion"}),gL=async({client:e,contractAddress:t,hash:n,signature:a})=>await u0(e,{address:t,abi:oe.abi,functionName:"isValidSignature",args:[n,a]}),TL=({hash:e,signature:t})=>T0({abi:oe.abi,functionName:"isValidSignature",args:[e,t]});async function Dp({client:e,contractAddress:t}){const n=await sn(e,{address:t});return!!n&&n!=="0x"}async function wL({client:e,contractAddress:t,expectedImplementationAddress:n}){return await Dp({client:e,contractAddress:t})?await Np({client:e,contractAddress:t})===n:!1}var kp=({implementationAddress:e,initcode:t})=>Wa({abi:Vo.abi,args:[e,t],bytecode:Vo.bytecode}),vL=async({client:e,hybridDeleGatorAddress:t,eoaOwner:n,p256Owners:a})=>B0(e,{address:t,abi:Be.abi,functionName:"initialize",args:[n,a.map(s=>s.keyId),a.map(s=>s.x),a.map(s=>s.y)]}),Lp=({eoaOwner:e,p256Owners:t})=>T0({abi:Be.abi,functionName:"initialize",args:[e,t.map(n=>n.keyId),t.map(n=>n.x),t.map(n=>n.y)]}),Fp={};f0(Fp,{addKey:()=>EL,initializeHybridDeleGator:()=>Lp,reinitializeHybridDeleGator:()=>_L,removeKey:()=>IL,updateSigners:()=>PL});var xL=async({client:e,hybridDeleGatorAddress:t,p256Owner:n})=>B0(e,{address:t,abi:Be.abi,functionName:"addKey",args:[n.keyId,n.x,n.y]}),EL=({p256Owner:e})=>T0({abi:Be.abi,functionName:"addKey",args:[e.keyId,e.x,e.y]}),AL=async({client:e,hybridDeleGatorAddress:t,version:n,eoaOwner:a,p256Owners:s,removeExistingP256Owners:i})=>B0(e,{address:t,abi:Be.abi,functionName:"reinitialize",args:[n,a,s.map(f=>f.keyId),s.map(f=>f.x),s.map(f=>f.y),i]}),_L=({version:e,eoaOwner:t,p256Owners:n,removeExistingP256Owners:a})=>T0({abi:Be.abi,functionName:"reinitialize",args:[e,t,n.map(s=>s.keyId),n.map(s=>s.x),n.map(s=>s.y),a]}),SL=async({client:e,hybridDeleGatorAddress:t,keyId:n})=>B0(e,{address:t,abi:Be.abi,functionName:"removeKey",args:[n]}),IL=({keyId:e})=>T0({abi:Be.abi,functionName:"removeKey",args:[e]}),CL=async({client:e,hybridDeleGatorAddress:t,eoaOwner:n,p256Owners:a})=>B0(e,{address:t,abi:Be.abi,functionName:"updateSigners",args:[n,a.map(s=>s.keyId),a.map(s=>s.x),a.map(s=>s.y)]}),PL=({eoaOwner:e,p256Owners:t})=>T0({abi:Be.abi,functionName:"updateSigners",args:[e,t.map(n=>n.keyId),t.map(n=>n.x),t.map(n=>n.y)]}),ML=async({client:e,multiSigDeleGatorAddress:t,owners:n,threshold:a})=>B0(e,{address:t,abi:X0.abi,functionName:"initialize",args:[n,a]}),Up=({owners:e,threshold:t})=>T0({abi:X0.abi,functionName:"initialize",args:[e,t]}),Hp={};f0(Hp,{addSigner:()=>OL,initializeMultiSigDeleGator:()=>Up,reinitializeMultiSigDeleGator:()=>BL,removeSigner:()=>DL,replaceSigner:()=>LL,updateMultiSigParameters:()=>UL,updateThreshold:()=>GL});var $L=async({client:e,multiSigDeleGatorAddress:t,signer:n})=>B0(e,{address:t,abi:X0.abi,functionName:"addSigner",args:[n]}),OL=({signer:e})=>T0({abi:X0.abi,functionName:"addSigner",args:[e]}),RL=async({client:e,multiSigDeleGatorAddress:t,version:n,owners:a,threshold:s,removeExistingOwners:i})=>B0(e,{address:t,abi:X0.abi,functionName:"reinitialize",args:[n,a,s,i]}),BL=({version:e,owners:t,threshold:n,removeExistingOwners:a})=>T0({abi:X0.abi,functionName:"reinitialize",args:[e,t,n,a]}),NL=async({client:e,multiSigDeleGatorAddress:t,signer:n})=>B0(e,{address:t,abi:X0.abi,functionName:"removeSigner",args:[n]}),DL=({signer:e})=>T0({abi:X0.abi,functionName:"removeSigner",args:[e]}),kL=async({client:e,multiSigDeleGatorAddress:t,oldSigner:n,newSigner:a})=>B0(e,{address:t,abi:X0.abi,functionName:"replaceSigner",args:[n,a]}),LL=({oldSigner:e,newSigner:t})=>T0({abi:X0.abi,functionName:"replaceSigner",args:[e,t]}),FL=async({client:e,multiSigDeleGatorAddress:t,owners:n,threshold:a,removeExistingOwners:s})=>B0(e,{address:t,abi:X0.abi,functionName:"updateMultiSigParameters",args:[n,a,s]}),UL=({owners:e,threshold:t,removeExistingOwners:n})=>T0({abi:X0.abi,functionName:"updateMultiSigParameters",args:[e,t,n]}),HL=async({client:e,multiSigDeleGatorAddress:t,threshold:n})=>B0(e,{address:t,abi:X0.abi,functionName:"updateThreshold",args:[n]}),GL=({threshold:e})=>T0({abi:X0.abi,functionName:"updateThreshold",args:[e]}),Gp=async({client:e,factoryAddress:t,creationCode:n,salt:a})=>B0(e,{address:t,abi:fs.abi,functionName:"deploy",args:[n,a]}),zp=(e,t)=>T0({abi:fs.abi,functionName:"deploy",args:[e,t]}),zL=async({client:e,factoryAddress:t,creationCode:n,salt:a})=>{const{request:s}=await Gp({client:e,factoryAddress:t,creationCode:n,salt:a});return ue(e,s)},jp={};f0(jp,{create2Deploy:()=>zp});var Vp=async({client:e,contractAddress:t,execution:n})=>B0(e,{address:t,abi:oe.abi,functionName:"execute",args:[n]}),jL=async({client:e,contractAddress:t,execution:n})=>{const{request:a}=await Vp({client:e,contractAddress:t,execution:n});return ue(e,a)},qp=({execution:e})=>T0({abi:oe.abi,functionName:"execute",args:[e]}),Wp=async({client:e,contractAddress:t,mode:n,executions:a})=>B0(e,{address:t,abi:oe.abi,functionName:"execute",args:[n,rf(a)]}),VL=async({client:e,contractAddress:t,mode:n,executions:a})=>{const{request:s}=await Wp({client:e,contractAddress:t,mode:n,executions:a});return ue(e,s)},Zp=({mode:e,executions:t})=>T0({abi:oe.abi,functionName:"execute",args:[e,rf(t)]}),Yp={};f0(Yp,{disableDelegation:()=>WL,enableDelegation:()=>YL,execute:()=>qp,executeWithMode:()=>Zp,isValidSignature:()=>TL,upgradeToAndCall:()=>XL});var Kp=async({client:e,delegationManagerAddress:t,delegation:n})=>{const a=oe.abi,s=wt(n);return B0(e,{address:t,abi:a,functionName:"disableDelegation",args:[s]})},qL=async({client:e,delegationManagerAddress:t,delegation:n})=>{const{request:a}=await Kp({client:e,delegationManagerAddress:t,delegation:n});return ue(e,a)},WL=({delegation:e})=>{const t=wt(e);return T0({abi:oe.abi,functionName:"disableDelegation",args:[t]})},Xp=async({client:e,delegationManagerAddress:t,delegation:n})=>{const a=oe.abi,s=wt(n);return B0(e,{address:t,abi:a,functionName:"enableDelegation",args:[s]})},ZL=async({client:e,delegationManagerAddress:t,delegation:n})=>{const{request:a}=await Xp({client:e,delegationManagerAddress:t,delegation:n});return ue(e,a)},YL=({delegation:e})=>{const t=wt(e);return T0({abi:oe.abi,functionName:"enableDelegation",args:[t]})},Jp=async({client:e,contractAddress:t,implementation:n,data:a})=>B0(e,{address:t,abi:oe.abi,functionName:"upgradeToAndCall",args:[n,a]}),KL=async({client:e,contractAddress:t,implementation:n,data:a})=>{const{request:s}=await Jp({client:e,contractAddress:t,implementation:n,data:a});return ue(e,s)},XL=({implementation:e,data:t})=>T0({abi:oe.abi,functionName:"upgradeToAndCall",args:[e,t]}),JL={};f0(JL,{DeleGatorCore:()=>fl,DelegationManager:()=>Qp,EIP712:()=>cl,ERC20PeriodTransferEnforcer:()=>mp,ERC20StreamingEnforcer:()=>hp,ERC20TransferAmountEnforcer:()=>ml,EntryPoint:()=>yl,HybridDeleGator:()=>gl,IdEnforcer:()=>xl,LimitedCallsEnforcer:()=>Al,MultiSigDeleGator:()=>Sl,MultiTokenPeriodEnforcer:()=>Tp,NativeTokenPeriodTransferEnforcer:()=>wp,NativeTokenStreamingEnforcer:()=>vp,NativeTokenTransferAmountEnforcer:()=>Ml,NonceEnforcer:()=>Ol,Ownable2Step:()=>Ll,Pausable:()=>ql,SimpleFactory:()=>t4,SpecificActionERC20TransferBatchEnforcer:()=>s4,encodeProxyCreationCode:()=>kp,isContractDeployed:()=>Dp,isImplementationExpected:()=>wL});var Qp={};f0(Qp,{constants:()=>el,encode:()=>tl,execute:()=>sl,read:()=>il,simulate:()=>ol});var el={};f0(el,{ANY_BENEFICIARY:()=>op,DOMAIN_VERSION:()=>tF,NAME:()=>QL,ROOT_AUTHORITY:()=>jo,VERSION:()=>eF});var QL="DelegationManager",eF="1.3.0",tF="1",tl={};f0(tl,{disableDelegation:()=>aF,enableDelegation:()=>sF,redeemDelegations:()=>oF});var nl=async({client:e,delegationManagerAddress:t,delegation:n})=>{const a=vt.abi,s=wt(n);return B0(e,{address:t,abi:a,functionName:"disableDelegation",args:[s]})},nF=async({client:e,delegationManagerAddress:t,delegation:n})=>{const{request:a}=await nl({client:e,delegationManagerAddress:t,delegation:n});return ue(e,a)},aF=({delegation:e})=>{const t=wt(e);return T0({abi:vt.abi,functionName:"disableDelegation",args:[t]})},al=async({client:e,delegationManagerAddress:t,delegation:n})=>{const a=vt.abi,s=wt(n);return B0(e,{address:t,abi:a,functionName:"enableDelegation",args:[s]})},rF=async({client:e,delegationManagerAddress:t,delegation:n})=>{const{request:a}=await al({client:e,delegationManagerAddress:t,delegation:n});return ue(e,a)},sF=({delegation:e})=>{const t=wt(e);return T0({abi:vt.abi,functionName:"enableDelegation",args:[t]})},rl=async({client:e,delegationManagerAddress:t,delegations:n,modes:a,executions:s})=>{const i=vt.abi;return B0(e,{address:t,abi:i,functionName:"redeemDelegations",args:[fp(n),a,bs(s)]})},iF=async({client:e,delegationManagerAddress:t,delegations:n,modes:a,executions:s})=>{const{request:i}=await rl({client:e,delegationManagerAddress:t,delegations:n,modes:a,executions:s});return ue(e,i)},oF=({delegations:e,modes:t,executions:n})=>T0({abi:vt.abi,functionName:"redeemDelegations",args:[fp(e),t,bs(n)]}),sl={};f0(sl,{disableDelegation:()=>nF,enableDelegation:()=>rF,redeemDelegations:()=>iF});var il={};f0(il,{disabledDelegations:()=>fF,getAnyDelegate:()=>bF,getRootAuthority:()=>dF});var fF=async({client:e,contractAddress:t,delegationHash:n})=>await u0(e,{address:t,abi:vt.abi,functionName:"disabledDelegations",args:[n]}),bF=async({client:e,contractAddress:t})=>await u0(e,{address:t,abi:vt.abi,functionName:"ANY_DELEGATE"}),dF=async({client:e,contractAddress:t})=>await u0(e,{address:t,abi:vt.abi,functionName:"ROOT_AUTHORITY"}),ol={};f0(ol,{disableDelegation:()=>nl,enableDelegation:()=>al,redeemDelegations:()=>rl});var fl={};f0(fl,{encode:()=>Yp,execute:()=>bl,read:()=>Bp,simulate:()=>dl});var bl={};f0(bl,{disableDelegation:()=>qL,enableDelegation:()=>ZL,execute:()=>jL,executeWithMode:()=>VL,upgradeToAndCall:()=>KL});var dl={};f0(dl,{disableDelegation:()=>Kp,enableDelegation:()=>Xp,execute:()=>Vp,executeWithMode:()=>Wp,upgradeToAndCall:()=>Jp});var cl={};f0(cl,{read:()=>ul});var ul={};f0(ul,{getContractName:()=>cF,getContractVersion:()=>uF,getDomainVersion:()=>yF});var cF=async({client:e,contractAddress:t})=>await u0(e,{address:t,abi:[{type:"function",name:"NAME",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"}],functionName:"NAME"}),uF=async({client:e,contractAddress:t})=>await u0(e,{address:t,abi:[{type:"function",name:"VERSION",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"}],functionName:"VERSION"}),yF=async({client:e,contractAddress:t})=>await u0(e,{address:t,abi:[{type:"function",name:"DOMAIN_VERSION",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"}],functionName:"DOMAIN_VERSION"}),yl={};f0(yl,{read:()=>pl});var pl={};f0(pl,{entryPointGetNonce:()=>ll});var ll=async({client:e,entryPoint:t,contractAddress:n,key:a})=>await u0(e,{address:t,abi:up.abi,functionName:"getNonce",args:[n,a]}),ml={};f0(ml,{read:()=>hl});var hl={};f0(hl,{getSpentAmount:()=>pF,getTermsInfo:()=>lF});var pF=async({client:e,contractAddress:t,delegationManager:n,delegationHash:a})=>await u0(e,{address:t,abi:qo.abi,functionName:"spentMap",args:[n,a]}),lF=async({client:e,contractAddress:t,terms:n})=>{const[a,s]=await u0(e,{address:t,abi:qo.abi,functionName:"getTermsInfo",args:[n]});return{allowedContract:a,maxTokens:s}},gl={};f0(gl,{constants:()=>vl,encode:()=>Fp,read:()=>Tl,simulate:()=>wl});var Tl={};f0(Tl,{getKey:()=>mF,getKeyIdHashes:()=>hF,getKeyIdHashesCount:()=>gF});var mF=async({client:e,hybridDeleGatorAddress:t,keyId:n})=>await u0(e,{address:t,abi:Be.abi,functionName:"getKey",args:[n]}),hF=async({client:e,hybridDeleGatorAddress:t})=>await u0(e,{address:t,abi:Be.abi,functionName:"getKeyIdHashes"}),gF=async({client:e,hybridDeleGatorAddress:t})=>await u0(e,{address:t,abi:Be.abi,functionName:"getKeyIdHashesCount"}),wl={};f0(wl,{addKey:()=>xL,initializeHybridDeleGator:()=>vL,reinitializeHybridDeleGator:()=>AL,removeKey:()=>SL,updateSigners:()=>CL});var vl={};f0(vl,{ANY_BENEFICIARY:()=>op,DOMAIN_VERSION:()=>vF,NAME:()=>TF,ROOT_AUTHORITY:()=>jo,VERSION:()=>wF});var TF="HybridDeleGator",wF="1.3.0",vF="1",xl={};f0(xl,{read:()=>El});var El={};f0(El,{getIsUsed:()=>xF,getTermsInfo:()=>EF});var xF=async({client:e,contractAddress:t,delegationManager:n,delegator:a,id:s})=>await u0(e,{address:t,abi:Zo.abi,functionName:"getIsUsed",args:[n,a,s]}),EF=async({client:e,contractAddress:t,terms:n})=>await u0(e,{address:t,abi:Zo.abi,functionName:"getTermsInfo",args:[n]}),Al={};f0(Al,{read:()=>_l});var _l={};f0(_l,{callCounts:()=>AF,getTermsInfo:()=>_F});var AF=async({client:e,contractAddress:t,delegationManager:n,delegationHash:a})=>await u0(e,{address:t,abi:Yo.abi,functionName:"callCounts",args:[n,a]}),_F=async({client:e,contractAddress:t,terms:n})=>await u0(e,{address:t,abi:Yo.abi,functionName:"getTermsInfo",args:[n]}),Sl={};f0(Sl,{constants:()=>Pl,encode:()=>Hp,read:()=>Il,simulate:()=>Cl});var Il={};f0(Il,{getMaxNumberOfSigners:()=>SF,getSigners:()=>IF,getSignersCount:()=>CF,getThreshold:()=>PF,isSigner:()=>MF});var SF=async({client:e,multiSigDeleGatorAddress:t})=>await u0(e,{address:t,abi:X0.abi,functionName:"MAX_NUMBER_OF_SIGNERS"}),IF=async({client:e,multiSigDeleGatorAddress:t})=>await u0(e,{address:t,abi:X0.abi,functionName:"getSigners"}),CF=async({client:e,multiSigDeleGatorAddress:t})=>await u0(e,{address:t,abi:X0.abi,functionName:"getSignersCount"}),PF=async({client:e,multiSigDeleGatorAddress:t})=>await u0(e,{address:t,abi:X0.abi,functionName:"getThreshold"}),MF=async({client:e,multiSigDeleGatorAddress:t,signer:n})=>await u0(e,{address:t,abi:X0.abi,functionName:"isSigner",args:[n]}),Cl={};f0(Cl,{addSigner:()=>$L,initializeMultiSigDeleGator:()=>ML,reinitializeMultiSigDeleGator:()=>RL,removeSigner:()=>NL,replaceSigner:()=>kL,updateMultiSigParameters:()=>FL,updateThreshold:()=>HL});var Pl={};f0(Pl,{MAX_NUMBER_OF_SIGNERS:()=>$F});var $F=30,Ml={};f0(Ml,{read:()=>$l});var $l={};f0($l,{getSpentAmount:()=>OF,getTermsInfo:()=>RF});var OF=async({client:e,contractAddress:t,delegationManager:n,delegationHash:a})=>await u0(e,{address:t,abi:Xo.abi,functionName:"spentMap",args:[n,a]}),RF=async({client:e,contractAddress:t,terms:n})=>await u0(e,{address:t,abi:Xo.abi,functionName:"getTermsInfo",args:[n]}),Ol={};f0(Ol,{encode:()=>Rl,execute:()=>Nl,read:()=>Dl,simulate:()=>kl});var Rl={};f0(Rl,{incrementNonce:()=>BF});var BF=e=>T0({abi:J5.abi,functionName:"incrementNonce",args:[e]}),Bl=async({client:e,contractAddress:t,delegationManager:n})=>B0(e,{address:t,abi:J5.abi,functionName:"incrementNonce",args:[n]}),NF=async({client:e,contractAddress:t,delegationManager:n})=>{const{request:a}=await Bl({client:e,contractAddress:t,delegationManager:n});return ue(e,a)},Nl={};f0(Nl,{incrementNonce:()=>NF});var Dl={};f0(Dl,{currentNonce:()=>DF,getTermsInfo:()=>kF});var DF=async({client:e,contractAddress:t,delegationManager:n,delegator:a})=>await u0(e,{address:t,abi:J5.abi,functionName:"currentNonce",args:[n,a]}),kF=async({client:e,contractAddress:t,terms:n})=>await u0(e,{address:t,abi:J5.abi,functionName:"getTermsInfo",args:[n]}),kl={};f0(kl,{incrementNonce:()=>Bl});var Ll={};f0(Ll,{encode:()=>jl,execute:()=>Ul,read:()=>Fl,simulate:()=>Vl});var Fl={};f0(Fl,{getOwner:()=>LF,getPendingOwner:()=>FF});var LF=async({client:e,contractAddress:t})=>await u0(e,{address:t,abi:w1.abi,functionName:"owner"}),FF=async({client:e,contractAddress:t})=>await u0(e,{address:t,abi:w1.abi,functionName:"pendingOwner"}),Ul={};f0(Ul,{acceptOwnership:()=>UF,renounceOwnership:()=>GF,transferOwnership:()=>jF});var Hl=async({client:e,contractAddress:t})=>B0(e,{address:t,abi:w1.abi,functionName:"acceptOwnership"}),UF=async({client:e,contractAddress:t})=>{const{request:n}=await Hl({client:e,contractAddress:t});return ue(e,n)},HF=()=>T0({abi:w1.abi,functionName:"acceptOwnership"}),Gl=async({client:e,contractAddress:t})=>B0(e,{address:t,abi:w1.abi,functionName:"renounceOwnership"}),GF=async({client:e,contractAddress:t})=>{const{request:n}=await Gl({client:e,contractAddress:t});return ue(e,n)},zF=()=>T0({abi:w1.abi,functionName:"renounceOwnership"}),zl=async({client:e,contractAddress:t,account:n})=>B0(e,{address:t,abi:w1.abi,functionName:"transferOwnership",args:[n]}),jF=async({client:e,contractAddress:t,account:n})=>{const{request:a}=await zl({client:e,contractAddress:t,account:n});return ue(e,a)},VF=e=>T0({abi:w1.abi,functionName:"transferOwnership",args:[e]}),jl={};f0(jl,{acceptOwnership:()=>HF,renounceOwnership:()=>zF,transferOwnership:()=>VF});var Vl={};f0(Vl,{acceptOwnership:()=>Hl,renounceOwnership:()=>Gl,transferOwnership:()=>zl});var ql={};f0(ql,{encode:()=>Ql,execute:()=>Zl,read:()=>Wl,simulate:()=>e4});var Wl={};f0(Wl,{isPaused:()=>qF});var qF=async({client:e,contractAddress:t})=>await u0(e,{address:t,abi:lp.abi,functionName:"paused"}),Zl={};f0(Zl,{pause:()=>WF,unpause:()=>YF});var Yl=[{type:"function",name:"pause",inputs:[],outputs:[],stateMutability:"nonpayable"}],Kl=async({client:e,contractAddress:t})=>B0(e,{address:t,abi:Yl,functionName:"pause"}),WF=async({client:e,contractAddress:t})=>{const{request:n}=await Kl({client:e,contractAddress:t});return ue(e,n)},ZF=()=>T0({abi:Yl,functionName:"pause"}),Xl=[{type:"function",name:"unpause",inputs:[],outputs:[],stateMutability:"nonpayable"}],Jl=async({client:e,contractAddress:t})=>B0(e,{address:t,abi:Xl,functionName:"unpause"}),YF=async({client:e,contractAddress:t})=>{const{request:n}=await Jl({client:e,contractAddress:t});return ue(e,n)},KF=()=>T0({abi:Xl,functionName:"unpause"}),Ql={};f0(Ql,{pause:()=>ZF,unpause:()=>KF});var e4={};f0(e4,{pause:()=>Kl,unpause:()=>Jl});var t4={};f0(t4,{encode:()=>jp,execute:()=>n4,read:()=>a4,simulate:()=>r4});var n4={};f0(n4,{create2Deploy:()=>zL});var a4={};f0(a4,{getCreate2Address:()=>XF});var XF=async(e,t,n,a)=>u0(e,{address:t,abi:fs.abi,functionName:"computeAddress",args:[n,a]}),r4={};f0(r4,{create2Deploy:()=>Gp});var s4={};f0(s4,{read:()=>i4});var i4={};f0(i4,{getTermsInfo:()=>JF,usedDelegations:()=>QF});var JF=async({client:e,contractAddress:t,terms:n})=>await u0(e,{address:t,abi:Jo.abi,functionName:"getTermsInfo",args:[n]}),QF=async({client:e,contractAddress:t,delegationManager:n,delegationHash:a})=>await u0(e,{address:t,abi:Jo.abi,functionName:"usedDelegations",args:[n,a]});function o4(e){return`0x${Ag(e)}`}function eU(e){return _g(e.slice(2))}function tU(e){const t=typeof e=="string"?eU(e):e,n=t.slice(0,32),a=t.slice(32,64);return{r:BigInt(o4(n)),s:BigInt(o4(a))}}var f4=(e=>(e.MultiSig="MultiSig",e.Hybrid="Hybrid",e.Stateless7702="Stateless7702",e))(f4||{}),nU=async({factory:e,implementations:t,implementation:n,deployParams:a,deploySalt:s})=>{let i,f;switch(n){case"Hybrid":{const[p,m,h,x]=a;if(!t.HybridDeleGatorImpl)throw new Error("HybridDeleGatorImpl address not provided in environment");i=t.HybridDeleGatorImpl;const T=m.map((C,S)=>{const H=h[S],A=x[S];if(!H||!A)throw new Error(`Missing X or Y value for keyId ${C} at index ${S}`);return{keyId:C,x:H,y:A}});f=Lp({eoaOwner:p,p256Owners:T});break}case"MultiSig":{const[p,m]=a;if(!t.MultiSigDeleGatorImpl)throw new Error("MultiSigDeleGatorImpl address not provided in environment");i=t.MultiSigDeleGatorImpl,f=Up({owners:p,threshold:m});break}default:throw new Error(`Implementation type '${n}' not supported`)}const d=ee(s,{dir:"left",size:32}),b=kp({implementationAddress:i,initcode:f}),y=Hv({bytecode:b,from:e,opcode:"CREATE2",salt:d});return{factoryData:zp(b,d),address:y}},sf=e=>"permissionsContext"in e&&"delegationManager"in e,aU=e=>{const{permissionsContext:t,delegationManager:n,to:a,value:s,data:i}=e,f=Q5({target:a,value:s,callData:i});if(!t)return f;const d=T0({abi:vt.abi,functionName:"redeemDelegations",args:[[t],["0x0000000000000000000000000000000000000000000000000000000000000000"],bs([[f]])]});return Q5({target:n,callData:d})},rU=e=>{if(e.length===1){const a=e[0];if(a&&!sf(a)){const{to:s,value:i,data:f}=a,d=Q5({target:s,value:i,callData:f});return qp({execution:d})}}const t=e.map(a=>{if(sf(a))return aU(a);const{to:s,value:i,data:f}=a;return Q5({target:s,value:i,callData:f})}),n=e.length===1?"0x0000000000000000000000000000000000000000000000000000000000000000":"0x0100000000000000000000000000000000000000000000000000000000000000";return Zp({mode:n,executions:t})},sU=async(e,t)=>{if(t.length===1){const n=t[0];if(n&&n.to===e&&!sf(n))return n.data??"0x"}return rU(t)},b4=115792089210356248762697446949407573529996955224135760342422259061068512044369n,iU=b4/2n,d4=Dh("bytes32, uint256, uint256, bytes, bool, string, string, uint256"),oU=e=>{try{const{challenge:t}=JSON.parse(e);if(t===void 0)throw new Error('No "challenge" found in the input string');return e.split(t)}catch(t){throw new Error('No "challenge" found in the input string',{cause:t})}},fU=e=>{try{const t=e.indexOf('"type":');if(t===-1)throw new Error('No "type" found in the input string');return BigInt(t)}catch(t){throw new Error('No "type" found in the input string',{cause:t})}};function bU(e,t,n,a){const s=z0(er(["string"],[e])),i=tU(t);let{s:f}=i;for(;f>iU;)f=b4-f;const{r:d}=i,[b,y]=oU(n),{userVerified:u}=cU(a),p=fU(n);return ut(d4,[s,d,f,a,u,b,y,p])}var dU=32;function cU(e){const t=ct(e),a=new Uint8Array(t)[dU];if(a===void 0)throw new Error("Authenticator flags not found in authenticator data");return{userVerified:(a&4)!==0}}var uU=e=>{const t=z0(er(["string"],["AuthenticatorData"])),s=Z0([t,"0x05","0x00000000"]),i=z0(er(["string"],[e])),f=57896044605178124381348723474703786764998477612067880171211129530534256022184n;return ut(d4,[i,f,f,s,!0,'{"type":"webauthn.get","challenge":"','","origin":"passkey-domain","crossOrigin":false}',1n])},yU=["ECDSA"],c4=({signatures:e})=>{if(e.length===0)return"0x";for(const{type:n}of e)if(!yU.includes(n))throw new Error(`Invalid signature type: ${n}`);const t=[...e].sort((n,a)=>n.signer.localeCompare(a.signer));return Z0(t.map(({signature:n})=>n))},of="0x000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000011b",ff=e=>({signMessage:e.walletClient.signMessage,signTypedData:async t=>e.walletClient.signTypedData(t),getStubSignature:async()=>of}),bf=e=>({signMessage:e.account.signMessage,signTypedData:e.account.signTypedData,getStubSignature:async()=>of}),pU=e=>{if("walletClient"in e)return ff(e);if("account"in e){const{signMessage:d,signTypedData:b,getStubSignature:y}=bf(e);if(!d)throw new Error("Account does not support signMessage");if(!b)throw new Error("Account does not support signTypedData");return{signMessage:d,signTypedData:b,getStubSignature:y}}const{keyId:t,webAuthnAccount:n}=e;if(n.type!=="webAuthn")throw new Error("Account is not a webAuthn account");const a=({signature:d,webauthn:b})=>bU(t,d,b.clientDataJSON,b.authenticatorData);return{signMessage:async d=>n.signMessage(d).then(a),signTypedData:async d=>n.signTypedData(d).then(a),getStubSignature:async()=>uU(t)}},lU=e=>{const t=e.map(i=>{let f,d,b;if("walletClient"in i){const{signMessage:y,signTypedData:u}=ff(i);f=y,d=u,b=i.walletClient.account.address}else{const{signMessage:y,signTypedData:u}=bf(i);if(!y)throw new Error("Account does not support signMessage");if(!u)throw new Error("Account does not support signTypedData");f=y,d=u,b=i.account.address}return{address:b,individualSignMessage:f,individualSignTypedData:d}});return{signMessage:async i=>{const f=t.map(async({individualSignMessage:b,address:y})=>({signature:await b(i),signer:y,type:"ECDSA"})),d=await Promise.all(f);return c4({signatures:d})},signTypedData:async i=>{const f=t.map(async({individualSignTypedData:b,address:y})=>({signature:await b(i),signer:y,type:"ECDSA"})),d=await Promise.all(f);return c4({signatures:d})},getStubSignature:async()=>Z0(t.map(()=>of))}},mU=e=>{if("walletClient"in e)return ff(e);if("account"in e){const{signMessage:t,signTypedData:n,getStubSignature:a}=bf(e);if(!t)throw new Error("Account does not support signMessage");if(!n)throw new Error("Account does not support signTypedData");return{signMessage:t,signTypedData:n,getStubSignature:a}}throw new Error("Invalid signer config")},hU=e=>{const{implementation:t}=e;if(t==="Hybrid")return pU(e.signer);if(t==="MultiSig")return lU(e.signer);if(t==="Stateless7702")return mU(e.signer);throw new Error(`Implementation type '${t}' not supported`)},gU="0.7";async function TU(e){const{client:t,client:{chain:n},implementation:a}=e;if(!n)throw new Error("Chain not specified");const s=hU({implementation:a,signer:e.signer}),i=e.environment??Ep(n.id);let f,d;if(e.address)d=void 0,f=e.address;else{if(a==="Stateless7702")throw new Error("Stateless7702 does not support counterfactual accounts");const H=await nU({factory:i.SimpleFactory,implementations:i.implementations,implementation:a,deployParams:e.deployParams,deploySalt:e.deploySalt});f=H.address,d=H.factoryData}const b={abi:X_,address:i.EntryPoint,version:gU},{abi:y,contractName:u}={Hybrid:{contractName:"HybridDeleGator",abi:Be.abi},MultiSig:{contractName:"MultiSigDeleGator",abi:X0.abi},Stateless7702:{contractName:"EIP7702StatelessDeleGator",abi:cp.abi}}[a],S=await Q_({abi:y,client:t,entryPoint:b,environment:i,getAddress:async()=>f,getFactoryArgs:async()=>{if(d===void 0)throw new Error("Deploy params were not provided, so factory args cannot be inferred");return{factoryData:d,factory:i.SimpleFactory}},encodeCalls:async H=>sU(f,H),getNonce:async()=>ll({client:t,entryPoint:i.EntryPoint,contractAddress:f,key:0n}),signUserOperation:async H=>{const{chainId:A}=H,E=t9({sender:f,...H,signature:"0x"});return await s.signTypedData({domain:{chainId:A??n.id,name:u,version:"1",verifyingContract:f},types:Ap,primaryType:"PackedUserOperation",message:{...E,entryPoint:b.address}})},signDelegation:async H=>{const{delegation:A,chainId:E}=H,$=wt({...A,signature:"0x"});return s.signTypedData({domain:{chainId:E??n.id,name:"DelegationManager",version:"1",verifyingContract:i.DelegationManager},types:bp,primaryType:"Delegation",message:$})},...s});return a==="Stateless7702"?{...S,isDeployed:async()=>$p({client:t,accountAddress:f,environment:i})}:S}const u4=(e,t)=>{const[n,a]=a1.useState({status:"idle",message:"Ready to pay"}),[s,i]=a1.useState({isValid:!1,isLoading:!0});a1.useEffect(()=>{(async()=>{if(!e){i({isValid:!1,isLoading:!1}),a({status:"error",message:"No auth key provided"});return}i(u=>({...u,isLoading:!0})),a({status:"loading",message:"Loading payment information..."});try{const p=await(await fetch("http://localhost:3001/api/auth/external/validate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({key:e,required_scopes:[t]})})).json();if(!p.valid)throw new Error(p.error||"Invalid auth key");const m=await fetch("http://localhost:3001/api/credentials/get",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({auth_key:e,required_scopes:[t]})});if(!m.ok)throw new Error("Failed to fetch credentials");const h=await m.json(),x={cardId:p.cardId,businessAddress:p.businessAddress,userAddress:h.address,identifier:h.identifier,credentials:h,isValid:!0,isLoading:!1};i(x),a({status:"ready",message:"Ready to process payment"})}catch(u){console.error("Payment initialization error:",u),i({isValid:!1,isLoading:!1}),a({status:"error",message:"Failed to initialize payment",error:u instanceof Error?u.message:"Unknown error"})}})()},[e,t]);function f(y,u){const p="0xa9059cbb",m=y.slice(2).padStart(64,"0"),h=u.toString(16).padStart(64,"0");return p+m+h}return{processPayment:async(y,u)=>{if(!s.isValid)throw new Error("Payment data not validated");a({status:"processing",message:"Processing payment..."});try{let p;if(t==="one_time_payment")if(s.credentials){const{passkeyCredential:m,eoaAddress:h}=s.credentials,x=bS({credential:{id:m.id,publicKey:m.publicKey}}),C=await(D=>TU(D))({client:qS,implementation:f4.Hybrid,deployParams:[h,[],[],[]],deploySalt:"0x",signer:{webAuthnAccount:x,keyId:se(m.id)}}),S=BigInt(Math.floor(parseFloat(u.toString())*10**6)),H="0x036CbD53842c5426634e7929541eC2318f3dCF7e",A=f(y,S),E={to:H,value:BigInt(0),data:A},{fast:$}=await WS.getUserOperationGasPrice(),L=await g9.sendUserOperation({account:C,calls:[E],...$,paymaster:h9});console.log(L);const R=await g9.waitForUserOperationReceipt({hash:L});p=R.receipt.transactionHash,a({status:"success",message:"Payment successful!",transactionHash:R.receipt.transactionHash})}else{await new Promise(h=>setTimeout(h,2e3));const m="0x"+Array(64).fill(0).map(()=>Math.floor(Math.random()*16).toString(16)).join("");p=m,a({status:"success",message:"Payment successful!",transactionHash:m})}return{success:!0,transactionHash:p,amount:u,merchant:y,type:t,paymentData:s}}catch(p){throw a({status:"error",message:"Payment failed",error:p instanceof Error?p.message:"Unknown error"}),p}},status:n,paymentData:s,reset:()=>{a({status:"idle",message:"Ready to pay"}),i({isValid:!1,isLoading:!0})}}},wU=({status:e})=>{const t=()=>{switch(e.status){case"processing":return i0.jsx("div",{className:"atlas-spinner",children:i0.jsx("div",{className:"atlas-spinner-circle"})});case"success":return i0.jsx("div",{className:"atlas-status-icon atlas-success",children:"✓"});case"error":return i0.jsx("div",{className:"atlas-status-icon atlas-error",children:"✗"});default:return null}},n=()=>{switch(e.status){case"processing":return"atlas-status-processing";case"success":return"atlas-status-success";case"error":return"atlas-status-error";default:return""}};return e.status==="idle"?null:i0.jsx("div",{className:`atlas-payment-status ${n()}`,children:i0.jsxs("div",{className:"atlas-status-content",children:[t(),i0.jsxs("div",{className:"atlas-status-text",children:[i0.jsx("p",{className:"atlas-status-message",children:e.message}),e.transactionHash&&i0.jsxs("p",{className:"atlas-transaction-hash",children:["Tx: ",e.transactionHash.slice(0,10),"...",e.transactionHash.slice(-8)]}),e.error&&i0.jsx("p",{className:"atlas-error-message",children:e.error})]})]})})},y4=({authKey:e,merchantPaymentAddress:t,amount:n="0",paymentType:a="one_time_payment",onSuccess:s,onError:i,className:f="",buttonText:d="PAY NOW",disabled:b=!1})=>{const{processPayment:y,status:u,paymentData:p,reset:m}=u4(e,a),h=async C=>{if(C.preventDefault(),!(!(p!=null&&p.isValid)||parseFloat(n)<=0))try{const S=await y(t,n);s==null||s(S)}catch(S){i==null||i(S)}},x=()=>{m()},T=C=>C==="delegate"?"Recurring Payment":"One-time Payment";return p?p.isLoading?i0.jsx("div",{className:`atlas-container ${f}`,children:i0.jsxs("div",{className:"atlas-loading",children:[i0.jsx("div",{className:"atlas-spinner"}),i0.jsx("p",{children:"Loading payment information..."})]})}):!p.isValid&&u.status==="error"?i0.jsx("div",{className:`atlas-container ${f}`,children:i0.jsxs("div",{className:"atlas-error-state",children:[i0.jsx("div",{className:"atlas-error-icon",children:"⚠️"}),i0.jsx("h3",{children:"Payment Setup Failed"}),i0.jsx("p",{children:u.error||"Unable to initialize payment"}),i0.jsx("button",{onClick:m,className:"atlas-secondary-button",children:"Try Again"})]})}):i0.jsxs("div",{className:`atlas-container ${f}`,children:[i0.jsxs("div",{className:"atlas-header",children:[i0.jsx("div",{className:"atlas-payment-type-badge",children:T(a)}),i0.jsxs("div",{className:"atlas-total",children:["Pay ",i0.jsxs("span",{children:[n," USDC"]})]})]}),i0.jsx("div",{className:"atlas-divider"}),i0.jsxs("form",{onSubmit:h,className:"atlas-form",children:[i0.jsx("div",{className:"atlas-validation-info",children:i0.jsxs("div",{className:"atlas-info-section",children:[i0.jsx("h4",{children:"Payment Account"}),i0.jsxs("div",{className:"atlas-info-grid",children:[i0.jsxs("div",{className:"atlas-info-item",children:[i0.jsx("span",{className:"atlas-info-label",children:"Card ID:"}),i0.jsx("span",{className:"atlas-info-value",children:p.cardId||"N/A"})]}),p.userAddress&&i0.jsxs("div",{className:"atlas-info-item",children:[i0.jsx("span",{className:"atlas-info-label",children:"Payer Address:"}),i0.jsxs("span",{className:"atlas-info-value",children:[p.userAddress.slice(0,8),"...",p.userAddress.slice(-6)]})]})]})]})}),i0.jsx("div",{className:"atlas-merchant-info",children:i0.jsxs("div",{className:"atlas-info-item",children:[i0.jsx("span",{className:"atlas-info-label",children:"Merchant:"}),i0.jsxs("span",{className:"atlas-info-value",children:[t.slice(0,8),"...",t.slice(-6)]})]})}),i0.jsx("div",{className:"atlas-amount-display-section",children:i0.jsxs("div",{className:"atlas-amount-main",children:[i0.jsx("span",{className:"atlas-amount-label",children:"Amount to Pay:"}),i0.jsxs("span",{className:"atlas-amount-value",children:[n," ",i0.jsx("span",{className:"atlas-amount-token",children:"USDC"})]})]})}),i0.jsxs("div",{className:"atlas-form-actions",children:[u.status==="ready"&&i0.jsx("button",{type:"submit",className:"atlas-pay-button",disabled:!p.isValid||parseFloat(n)<=0||b,children:d}),u.status!=="ready"&&u.status!=="idle"&&i0.jsxs("div",{className:"atlas-status-wrapper",children:[i0.jsx(wU,{status:u}),u.status==="success"&&i0.jsx("button",{type:"button",onClick:x,className:"atlas-secondary-button",children:"Make Another Payment"})]})]})]})]}):i0.jsx("div",{className:`atlas-container ${f}`,children:i0.jsxs("div",{className:"atlas-loading",children:[i0.jsx("div",{className:"atlas-spinner"}),i0.jsx("p",{children:"Initializing payment system..."})]})})},vU=()=>i0.jsx(i0.Fragment,{children:i0.jsx("svg",{width:"40",height:"40",viewBox:"0 0 40 40",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:i0.jsx("path",{d:"M2.95703 21.4442C2.72371 20.0639 2.75066 20.0321 3.3877 20.8817C3.75566 21.3763 4.4245 22.1637 4.86426 22.6268C5.3087 23.09 6.68217 23.9215 7.91602 24.4745C9.14997 25.0229 11.2674 25.7423 12.627 26.075C14.009 26.4078 17.3615 26.6555 20.2559 26.6375C23.572 26.6151 26.4573 26.3265 28.333 25.8319C29.9348 25.4093 31.8552 24.7578 32.5957 24.3846C33.3361 24.0069 34.5035 23.1704 35.1855 22.5184C35.8675 21.8665 36.4234 21.0796 36.4189 20.7694C36.4145 20.4593 36.6117 20.3113 36.8584 20.4325C37.1052 20.5584 37.2227 21.0125 37.124 21.4442C37.0208 21.876 36.8008 23.0406 36.3252 25.828L37.3252 24.9286C37.8771 24.434 38.703 23.2195 39.1562 22.2303C39.9773 20.4411 39.9821 20.4368 40 21.7811C40.009 22.523 39.6184 24.4474 39.1338 26.0526C38.6357 27.6892 37.4018 30.1537 36.3203 31.66C35.2567 33.1348 33.179 35.2212 31.6982 36.2957C30.1501 37.4198 27.7625 38.6246 26.0889 39.1327C24.3299 39.6632 21.8797 40.0043 19.9189 39.9998C17.8863 39.9953 15.6563 39.6537 13.9736 39.0916C12.4928 38.597 10.4735 37.6887 9.48633 37.0682C8.4991 36.4522 6.7802 35.0358 5.67188 33.9207C4.55907 32.8056 2.94764 30.4369 2.07715 28.6385C1.13932 26.6961 0.403864 24.3801 0 20.4325L0.866211 22.2303C1.34186 23.2195 2.18963 24.4341 3.76465 25.828L3.48242 24.3661C3.32987 23.5613 3.09164 22.2489 2.95703 21.4442ZM6.18652 27.0584C5.79164 26.8786 5.43257 26.9008 5.3877 27.1122C5.34286 27.3235 5.87657 28.3085 6.58105 29.2977C7.28115 30.2869 8.75343 31.86 9.84375 32.7997C10.9387 33.7349 12.8946 34.9 14.1914 35.3856C15.4882 35.8712 17.6065 36.3968 18.9033 36.5497C20.2809 36.716 22.2826 36.5992 23.7275 36.2664C25.0827 35.9517 26.9536 35.3174 27.8779 34.8543C28.8022 34.3957 30.3006 33.3622 31.207 32.5575C32.1134 31.7527 33.4331 30.2869 34.1377 29.2977C34.8416 28.3093 35.411 27.3968 35.3984 27.2743C35.3895 27.1529 33.6173 27.6293 31.459 28.3397C28.5468 29.3019 26.33 29.6975 22.8301 29.8729C20.0077 30.0123 16.6778 29.882 14.5283 29.5448C12.5539 29.23 10.0318 28.6186 8.91895 28.1825C7.80647 27.7465 6.57736 27.2429 6.18652 27.0584ZM19.8066 0.000823975C21.4085 -0.0171596 23.8317 0.257193 25.1914 0.603363C26.5466 0.954077 28.4679 1.69562 29.4551 2.25766C30.4423 2.81972 32.143 4.00237 33.2334 4.88364C34.3238 5.76942 35.8945 7.50556 36.7246 8.74203C37.5502 9.97862 38.6314 12.3079 39.125 13.9129C39.6141 15.5225 40.009 17.4426 40 18.1844C39.9821 19.5285 39.9774 19.5236 39.1562 17.7342C38.703 16.7451 37.8683 15.5313 36.2754 14.1375L36.5361 15.2616C36.6797 15.8821 36.9307 17.1951 37.3838 19.9823L36.2979 18.6336C35.701 17.8917 34.5252 16.8488 33.6816 16.3182C32.838 15.7876 31.1868 15.0273 30.0156 14.6317C28.8444 14.236 26.1163 13.7011 23.958 13.4403C21.2073 13.1075 18.8912 13.1075 16.2168 13.4403C14.1167 13.7011 11.0882 14.3582 9.48633 14.9022C7.87987 15.4462 5.91455 16.4578 5.11133 17.1502C4.30844 17.8424 3.65289 18.7139 3.65234 19.0829C3.65234 19.456 3.45083 19.6588 3.2041 19.5331C2.9573 19.4116 2.83624 18.953 2.93945 18.5213C3.04266 18.0897 3.25813 16.9251 3.71582 14.1375L2.55762 15.2616C1.92046 15.8821 1.09031 17.195 0.0224609 19.9823L0.250977 17.285C0.403546 15.4595 0.987496 13.5347 2.06445 11.327C3.04266 9.32176 4.5636 7.15914 6.02637 5.70688C7.33666 4.40744 9.40542 2.84709 10.626 2.24008C11.851 1.63308 13.7582 0.887039 14.8711 0.585785C15.9794 0.284556 18.2002 0.0188488 19.8066 0.000823975ZM21.2588 3.17368C19.6613 3.07031 17.5659 3.28152 16.0986 3.69516C14.7435 4.07733 12.9267 4.81969 12.0605 5.33676C11.1946 5.8583 9.71813 7.00901 8.78027 7.89926C7.83794 8.78503 6.67488 10.1696 6.19922 10.9745C5.71949 11.7786 5.37934 12.529 5.44141 12.6424C5.50423 12.7548 6.76528 12.3686 8.24609 11.784C9.72697 11.195 12.554 10.4663 14.5283 10.1561C16.6957 9.8189 19.9852 9.69815 22.8301 9.84653C26.2716 10.0309 28.5962 10.4445 31.459 11.3797C33.6152 12.0849 35.3861 12.5565 35.3984 12.4364C35.4119 12.315 34.847 11.402 34.1426 10.4129C33.4426 9.42374 31.9703 7.84974 30.8799 6.91C29.7851 5.97486 27.7751 4.78789 26.4199 4.27524C25.0647 3.76266 22.7396 3.2681 21.2588 3.17368Z",fill:"#E4A300"})})}),xU=({authKey:e,merchantPaymentAddress:t,onSuccess:n,onError:a,className:s="",buttonText:i="Pay Now",amount:f="0",paymentType:d="one_time_payment",disabled:b=!1,chainId:y=8453})=>{const[u,p]=a1.useState(!1),m=T=>{n==null||n(T),setTimeout(()=>p(!1),2e3)},h=T=>{a==null||a(T)},x=()=>{if(!e){alert("Payment configuration error: No auth key provided");return}p(!0)};return i0.jsxs(i0.Fragment,{children:[i0.jsx("button",{className:`atlas-payment-button ${s}`,onClick:x,disabled:b||!e,children:i}),u&&i0.jsx("div",{className:"atlas-modal-overlay",onClick:()=>p(!1),children:i0.jsxs("div",{className:"atlas-modal",onClick:T=>T.stopPropagation(),children:[i0.jsxs("div",{className:"atlas-modal-header",children:[i0.jsxs("div",{className:"atlas-modal-header2",children:[i0.jsx(vU,{}),i0.jsx("h3",{children:"Pay with Atlas"})]}),i0.jsx("button",{className:"atlas-modal-close",onClick:()=>p(!1),children:"×"})]}),i0.jsx("div",{className:"atlas-modal-body",children:i0.jsx(y4,{authKey:e,merchantPaymentAddress:t,amount:f,paymentType:d,onSuccess:m,onError:h,buttonText:i,disabled:b,chainId:y})})]})})]})};n1.AtlasPaymentButton=xU,n1.AtlasPaymentForm=y4,n1.useAtlasPayment=u4,Object.defineProperty(n1,Symbol.toStringTag,{value:"Module"})});
97
+ //# sourceMappingURL=index.js.map