diff --git a/broadcast/Deploy-all.s.sol/1/run-1789758327025.json b/broadcast/Deploy-all.s.sol/1/run-1789758327025.json new file mode 100644 index 00000000..45099801 --- /dev/null +++ b/broadcast/Deploy-all.s.sol/1/run-1789758327025.json @@ -0,0 +1,50 @@ +{ + "transactions": [ + { + "hash": "0x205624ca1d3e852c37b5f00f86208ec62a2576e4b94d58dd52ef6294bc306a06", + "transactionType": "CREATE2", + "contractName": "UniversalRouter", + "contractAddress": "0xab863e752bf67d8dcdd929eaae9be9dc83fb3bbb", + "function": null, + "functionAbi": null, + "arguments": [ + "(0x000000000022D473030F116dDEE9F6B43aC78BA3, 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2, 0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f, 0x1F98431c8aD98523631AE4a59f267346ea31F984, 0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f, 0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54, 0x000000000004444c5dc75cB358380D2e3dE08A90, 0x7DA911490Ca4663E572eA9C8154f3CdEbCE16452, 0xC36442b4a4522E871399CD717aBDD847Ab11FE88, 0xbD216513d74C8cf14cf4747E6AaA6420FF64ee9e, 0x5c7BCd6E7De5423a257D81B442095A1a6ced35C5)" + ], + "transaction": { + "from": "0x2179a60856e37dfeaaca0ab043b931fe224b27b6", + "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", + "gas": "0x6bb07b", + "value": "0x0", + "input": "0x00000000000000000000000000000000000000000000000000000000000000006102c080604052346104835761016081616269803803809161002182856104a2565b833981010312610483576040519061016082016001600160401b0381118382101761046f57604052610052816104c5565b8252610060602082016104c5565b9160208101928352610074604083016104c5565b9260408201938452610088606084016104c5565b93606083019485526080840151926080810193845260a08501519360a082019485526100b660c087016104c5565b9660c083019788526100ca60e088016104c5565b9160e084019283526100df61010089016104c5565b96876101008601526101086101406100fa6101208c016104c5565b9a8b610120890152016104c5565b998a6101408701526040519861011d8a610487565b6001600160a01b039081168a52998a1660208a019081529051945195519751604051919a9198908216979682169695821695911661015a89610487565b8852602088019687525192519151905160405190936001600160a01b039384169316608082016001600160401b0381118382101761046f5760405281526020810192835260408101918252606081019384526040516101ba6040826104a2565b600f815260208101906e2ab734bb32b939b0b62937baba32b960891b8252604051916101e76040846104a2565b600183526020830191601960f91b8352610200816104d9565b6101205261020d8461066f565b61014052519020918260e05251902080610100524660a0526040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261027660c0826104a2565b5190206080523060c052516001600160a01b0390811661016052905161018052905181166101a05290516101c0526101e091909152610200919091529051811661022052905181166102405290518116610260529051811661028052166102a052604051615ac190816107a8823960805181613dda015260a05181613e97015260c05181613da4015260e05181613e2901526101005181613e4f015261012051816104fc01526101405181610528015261016051818181612c3401528181612db00152613a3b015261018051818181612c5501528181612d8f0152613a1a01526101a05181611d7c01526101c05181611d5a01526101e0518181816105ee015281816107df01528181611213015281816117e001528181612721015281816144bf015281816147b2015281816148bd0152818161507e0152818161546d01526156020152610200518181816106b501528181610ddf01528181610e7001528181614530015281816146dd01528181615197015281816157780152615944015261022051818181611797015281816129c70152612b07015261024051818181610d37015281816128e401528181613192015261563801526102605181818161045e01528181611187015261252f015261028051818181610756015261127201526102a05181818161041a0152818161223301526123470152f35b634e487b7160e01b5f52604160045260245ffd5b5f80fd5b604081019081106001600160401b0382111761046f57604052565b601f909101601f19168101906001600160401b0382119082101761046f57604052565b51906001600160a01b038216820361048357565b908151602081105f14610553575090601f815111610513576020815191015160208210610504571790565b5f198260200360031b1b161790565b604460209160405192839163305a27a960e01b83528160048401528051918291826024860152018484015e5f828201840152601f01601f19168101030190fd5b6001600160401b03811161046f575f54600181811c91168015610665575b602082101461065157601f811161061f575b50602092601f82116001146105c057928192935f926105b5575b50508160011b915f199060031b1c1916175f5560ff90565b015190505f8061059d565b601f198216935f8052805f20915f5b86811061060757508360019596106105ef575b505050811b015f5560ff90565b01515f1960f88460031b161c191690555f80806105e2565b919260206001819286850151815501940192016105cf565b5f8052601f60205f20910160051c810190601f830160051c015b8181106106465750610583565b5f8155600101610639565b634e487b7160e01b5f52602260045260245ffd5b90607f1690610571565b908151602081105f1461069a575090601f815111610513576020815191015160208210610504571790565b6001600160401b03811161046f57600154600181811c9116801561079d575b602082101461065157601f811161076a575b50602092601f821160011461070957928192935f926106fe575b50508160011b915f199060031b1c19161760015560ff90565b015190505f806106e5565b601f1982169360015f52805f20915f5b868110610752575083600195961061073a575b505050811b0160015560ff90565b01515f1960f88460031b161c191690555f808061072c565b91926020600181928685015181550194019201610719565b60015f52601f60205f20910160051c810190601f830160051c015b81811061079257506106cb565b5f8155600101610785565b90607f16906106b956fe60806040526004361015610022575b3615610018575f80fd5b610020611794565b005b5f3560e01c80631a27b2011461010157806324856bc3146100fc5780633593564c146100f757806344684dc3146100f25780638021fef7146100ed578063817122dc146100e857806384b0196e146100e357806391dd7346146100de578063ab769d37146100d9578063d04d79a2146100d4578063d0c9f6cb146100cf578063d737d0c7146100ca578063dc4c90d3146100c55763fa461e330361000e5761080e565b6107ca565b610798565b610741565b6106e4565b6106a0565b6105bc565b6104e4565b610449565b610405565b61036a565b6102a9565b6101f8565b61014d565b6001600160a01b031690565b6001600160a01b0381160361012357565b5f80fd5b359061013282610112565b565b6001600160a01b03165f90815260026020526040902090565b346101235760403660031901126101235760043561016a81610112565b6024359060018060a01b03165f52600260205260405f20905f52602052602060ff60405f2054166040519015158152f35b9181601f84011215610123578235916001600160401b038311610123576020838186019501011161012357565b9181601f84011215610123578235916001600160401b038311610123576020808501948460051b01011161012357565b6040366003190112610123576004356001600160401b0381116101235761022390369060040161019b565b6024356001600160401b038111610123576102429036906004016101c8565b913330146102a0575f80516020615a158339815191525c6001600160a01b03166102915761027f93335f80516020615a158339815191525d610b4e565b5f5f80516020615a158339815191525d005b6337affdbf60e11b5f5260045ffd5b61002093610b4e565b6060366003190112610123576004356001600160401b038111610123576102d490369060040161019b565b6024356001600160401b038111610123576102f39036906004016101c8565b916044354211610339573330146102a0575f80516020615a158339815191525c6001600160a01b03166102915761027f93335f80516020615a158339815191525d610b4e565b632dfb7c8b60e11b5f5260045ffd5b8015150361012357565b6084359061013282610348565b359061013282610348565b610100366003190112610123576004356001600160401b0381116101235761039690369060040161019b565b906024356001600160401b038111610123576103b69036906004016101c8565b926044356064356103c5610352565b9060a43560c435979093906001600160401b038911610123576103ef61002099369060040161019b565b97909660e4359961132d565b5f91031261012357565b34610123575f366003190112610123576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610123575f366003190112610123576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b90602080835192838152019201905f5b8181106104ce5750505090565b82518452602093840193909201916001016104c1565b34610123575f366003190112610123576105766105207f00000000000000000000000000000000000000000000000000000000000000006134cb565b6105a461054c7f00000000000000000000000000000000000000000000000000000000000000006135ae565b610584610557611598565b91604051958695600f60f81b875260e0602088015260e087019061048d565b90858203604087015261048d565b904660608501523060808501525f60a085015283820360c08501526104b1565b0390f35b9060206105b992818152019061048d565b90565b34610123576020366003190112610123576004356001600160401b038111610123576105ec90369060040161019b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036106915761062591613666565b90818303610682575f5b838110610656576105a4604051610647602082611530565b5f8152604051918291826105a8565b8061067c6106676001938789610ad9565b3560f81c610676838787610b1c565b91613fcf565b0161062f565b63aaad13f760e01b5f5260045ffd5b63570c108560e11b5f5260045ffd5b34610123575f366003190112610123576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610123575f36600319011261012357604080516001600160a01b035f80516020615a958339815191525c1681525f80516020615a558339815191525c60208201525f80516020615a758339815191525c91810191909152606090f35b34610123575f366003190112610123576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b6001600160a01b03909116815260200190565b34610123575f366003190112610123576040516001600160a01b035f80516020615a158339815191525c168152602090f35b34610123575f366003190112610123576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610123576060366003190112610123576024356004356044356001600160401b0381116101235761084490369060040161019b565b92905f831392831580610a61575b610a5257610899926108819161086a8785018561166b565b90996001600160a01b039092169690959250611c04565b92909161088e84846136fe565b999198908a8a611cf0565b336001600160a01b0390911603610a43578015610a2a5790978891906001600160a01b03818116908a16105b156108dd575050505050505061002093503391611dc4565b909192939495989997506108f2866042111590565b1561099e57508651610944575b5050509461092361091661091e9361002098611e31565b939092611e47565b6116ed565b94801561093c5761093390611779565b945b3390611ee3565b505f94610935565b61095d610967938a93610962935f1461099757506116ed565b611702565b611739565b6109718686611757565b5180821061097f57806108ff565b631c1763d160e11b5f5261099492508661176b565b5ffd5b90506116ed565b969450909192505f80516020615a358339815191529796975c8711610a1b5783516109d4575b5050505061002093503391611dc4565b8661096261095d6109f7958b956109f1955f1461099757506116ed565b92611757565b51808210610a065780806109c4565b631c1763d160e11b5f5261099492508561176b565b6339cedf2960e11b5f5260045ffd5b91978892906001600160a01b03898116908216106108c5565b6332b13d9160e01b5f5260045ffd5b63316cf0eb60e01b5f5260045ffd5b505f831315610852565b929190333014610abc575f80516020615a158339815191525c6001600160a01b031661029157610aaa93335f80516020615a158339815191525d610b4e565b5f5f80516020615a158339815191525d565b61013293610b4e565b634e487b7160e01b5f52603260045260245ffd5b90821015610ae5570190565b610ac5565b903590601e198136030182121561012357018035906001600160401b0382116101235760200191813603831361012357565b90821015610ae557610b339160051b810190610aea565b9091565b6040906105b993928152816020820152019061048d565b90939284810361131e575f5b858110610b6957505050509050565b610b74818785610ad9565b35610b80828487610b1c565b6060929160019160f884901c607f1660218110156112a557601081101561113f576008811015610f265780610c495750610bca82610bc183610bfc95611c8f565b92909382612806565b92909360808301355f14610c4257610be0611bf2565b925b604081013590610bf760208201359135612984565b6132cf565b159081610c33575b50610c125750600101610b5a565b604051632c4029e960e01b8152918291610c2f9160048401610b37565b0390fd5b600160ff1b161590505f610c04565b3092610be2565b60018103610ca15750610c6382610bc183610c9595611c8f565b92909360808301355f14610c9a57610c79611bf2565b925b604081013590610c9060208201359135612984565b613200565b610bfc565b3092610c7b565b60028103610cd2575050610c9590610cb7611bf2565b90604081013591610ccb6020830135612984565b913561318d565b9192909160038103610d705750505f92935090610d32610cf3849383611c64565b610d24610d01939293611bf2565b916040519485936020850197632a2d80d160e01b89528035019060248601611aab565b03601f198101835282611530565b5190827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af190610d6a6118d5565b91610bfc565b9092915060048103610e9f575080356001600160a01b038116151580610e6d575b610dbc575b81610da76020610c95940135612984565b6040909101356001600160a01b0316916130c3565b6040516312f7fd6760e11b81529160208380610ddb8560048301610785565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa8015610e6857610c95935f91610e3a575b506001600160a01b038116610e32575b509150610d96565b91505f610e2a565b610e5b915060203d8111610e61575b610e538183611530565b810190611a96565b5f610e1a565b503d610e49565b6119cb565b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161515610d91565b60058103610ec65750806040610c9592013590610ebf6020820135612984565b9035613038565b60068103610eed5750806040610c9592013590610ee66020820135612984565b9035612fc2565b60078103610f145750806040610c9592013590610f0d6020820135612984565b9035612f08565b636bb50f4f60e11b5f5260045260245ffd5b90919060088103610f8657508181610f44610c9594610f4d946127e6565b93909282612806565b92909360808301355f14610f7f57610f63611bf2565b925b604081013590610f7a60208201359135612984565b612d53565b3092610f65565b60098103610fda57508181610f44610c9594610fa1946127e6565b92909360808301355f14610fd357610fb7611bf2565b925b604081013590610fce60208201359135612984565b612c11565b3092610fb9565b909290600a81036110275750505f92935081610ffa610d32928594611c39565b929091610d24611008611bf2565b9460405194859360208501976302b67b5760e41b895260248601611a48565b909290600b810361104c5750610c95915061104760208201359135612984565b612aec565b600c810361106e5750610c95915061106960208201359135612984565b6129b6565b600d81036110935750610c9591611084916127c9565b9061108d611bf2565b916128d5565b9092509050600e8103610f1457506040516370a0823160e01b815290602082806110c1843560048301610785565b0381848401356001600160a01b03165afa918215610e68575f9261110c575b5060400135111580610c95576040516351940b3960e11b6020820152909250610d6a8160248101610d24565b60409192506111319060203d8111611138575b6111298183611530565b8101906119bc565b91906110e0565b503d61111f565b90919060108103611155575090610c95916126f3565b93945092909150601181036111ba57505f91908161117384936126d7565b61118260405180938193611904565b0390827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af190610d6a6118d5565b601281036111d957505f919082916111736111d3611bf2565b826124e0565b601381036112465750505f809160405161120e81610d24602082019463313b65df60e11b865260a08101359060248401611929565b5190827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af190610d6a6118d5565b60148103610f1457505f91829161125d8183612401565b479161126e60405180938193611904565b03917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af190610d6a6118d5565b939490939192604083101561130457505060218103610f1457506112f5610d246112d15f948594613666565b60409593959491945194859360208501976324856bc360e01b89526024860161182f565b519082305af190610d6a6118d5565b9290949391604081145f14610f14575090610c9591612201565b631fec674760e31b5f5260045ffd5b95909698929a999791978042116103395761134a8c9a9b9c611b61565b5f5b8b81106114cb5750868661140b61141b958f611421999896610d24918f8f61139a906114139a60405161138781610d24602082018095611b93565b51902096156114c45733925b36916115ce565b6020815191012097604051978896602088019a8b93909796959260e095926101008601997f4b503a2e339bf072a489301f3eec7abaefc520266c462796ed9267bbcc6e407c8752602087015260408601526060850152608084015260018060a01b031660a083015260c08201520152565b51902061348f565b9236916115ce565b906134b5565b60018801611469575b61146197505f80516020615a958339815191525d5f80516020615a558339815191525d5f80516020615a758339815191525d610a6b565b610132611bc0565b61148d6114868961147984610134565b905f5260205260405f2090565b5460ff1690565b6114b6576114b16114a46114619961147984610134565b805460ff19166001179055565b61142a565b623f613760e71b5f5260045ffd5b5f92611393565b806114e08d9f9e9d600193611393918f610b1c565b602081519101206114f18285611757565b52019c9a9b9c61134c565b634e487b7160e01b5f52604160045260245ffd5b60a081019081106001600160401b0382111761152b57604052565b6114fc565b601f909101601f19168101906001600160401b0382119082101761152b57604052565b604051906101326101a083611530565b60405190610132606083611530565b6040519061013260a083611530565b6001600160401b03811161152b5760051b60200190565b604051906115a7602083611530565b5f808352366020840137565b6001600160401b03811161152b57601f01601f191660200190565b9291926115da826115b3565b916115e86040519384611530565b829481845281830111610123578281602093845f960137010152565b9080601f83011215610123578160206105b9933591016115ce565b92919061162b81611581565b936116396040519586611530565b602085838152019160051b810192831161012357905b82821061165b57505050565b813581526020918201910161164f565b6080818303126101235780356001600160401b0381116101235782611691918301611604565b9260208201356116a081610112565b9260408301356001600160401b03811161012357830181601f82011215610123576060918160206116d39335910161161f565b92013590565b634e487b7160e01b5f52601160045260245ffd5b600160ff1b81146116fd575f0390565b6116d9565b6a0c097ce7bc90715b34b9f160241b8082029291801590840490911417156116fd57565b818102929181159184041417156116fd57565b8115611743570490565b634e487b7160e01b5f52601260045260245ffd5b8051821015610ae55760209160051b010190565b600452602452604452606490565b5f198101919082116116fd57565b919082039182116116fd57565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161415806117dc575b6117cd57565b631c5deabb60e11b5f5260045ffd5b50337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614156117c7565b908060209392818452848401375f828201840152601f01601f1916010190565b9391906118449160408652604086019161180f565b926020818503910152808352602083019060208160051b85010193835f91601e1982360301905b84841061187c575050505050505090565b90919293949596601f19828203018752873583811215610123578401602081019190356001600160401b038111610123578036038313610123576118c6602092839260019561180f565b9901970195940192919061186b565b3d156118ff573d906118e6826115b3565b916118f46040519384611530565b82523d5f602084013e565b606090565b908092918237015f815290565b62ffffff81160361012357565b8060020b0361012357565b90929160a0906119b0608060c0850196803561194481610112565b600180871b03168652602081013561195b81610112565b600180871b0316602087015262ffffff604082013561197981611911565b166040870152606081013561198d8161191e565b60020b606087015201356119a081610112565b6001600160a01b03166080850152565b600180831b0316910152565b90816020910312610123575190565b6040513d5f823e3d90fd5b359065ffffffffffff8216820361012357565b65ffffffffffff611a42606080938035611a0281610112565b6001600160a01b031686526020810135611a1b81610112565b6001600160a01b0316602087015283611a36604083016119d6565b166040870152016119d6565b16910152565b60a06105b9959361010093600180841b03168352611a6960208401826119e9565b6080810135611a7781610112565b600180841b031682840152013560c08201528160e0820152019161180f565b9081602091031261012357516105b981610112565b6001600160a01b0390911681526060602082015290939260c08201929091853536879003601e190181121561012357860160208101949035906001600160401b038211610123578160071b360386136101235781906060808501525260e0820194905f5b818110611b4357505050604086611b2f6119a060206105b9999a01610127565b013560a0820152604081850391015261180f565b90919560808082611b566001948b6119e9565b019701929101611b0f565b90611b6b82611581565b611b786040519182611530565b8281528092611b89601f1991611581565b0190602036910137565b80516020909101905f5b818110611baa5750505090565b8251845260209384019390920191600101611b9d565b5f5f80516020615a958339815191525d5f5f80516020615a558339815191525d5f5f80516020615a758339815191525d565b5f80516020615a158339815191525c90565b909163ffffffff82351682019263ffffffff84351692602080860195850101910110611c2c57565b633b99b53d5f526004601cfd5b909163ffffffff60c08301351682019263ffffffff84351692602080860195850101910110611c2c57565b909163ffffffff60208301351682019263ffffffff84351692602080860195850101910110611c2c57565b909163ffffffff60608301351682019263ffffffff84351692602080860195850101910110611c2c57565b6001600160f81b0319815260609190911b6001600160601b03191660018201526015810191909152603581019190915260550190565b6105b992611da992906001600160a01b0380831690841611611dae575b604080516001600160a01b0394851660208201908152949093169083015262ffffff166060808301919091528152611d46608082611530565b519020604051611da181610d2460208201947f0000000000000000000000000000000000000000000000000000000000000000907f000000000000000000000000000000000000000000000000000000000000000087611cba565b519020610106565b610106565b909190611d0d565b90601482018092116116fd57565b909291906001600160a01b0384163003611de2576101329350613038565b91926001600160a01b038411611e0557610132936001600160a01b03169261318d565b63c4bd89a960e01b5f5260045ffd5b909291928360041161012357831161012357600401916003190190565b9190918260171161012357601701916016190190565b600160ff1b8110156101235790565b959493611e7260609492611e8f9460808a5260808a019161180f565b6001600160a01b03909216602088015286820360408801526104b1565b930152565b9190826040910312610123576020825192015190565b6001600160a01b039182168152911515602083015260408201929092529116606082015260a0608082018190526105b99291019061048d565b92919395949094611ef483866136fe565b6001600160a01b038084169082161098899590939092611f15929091611cf0565b611f1e90610106565b611f2790610106565b94845f14604098610d245f96611f7195611f5594611fb9576401000276a49e5b8d5196879560208701611e56565b8751630251596160e31b8152998a978896879560048701611eaa565b03925af18015610e68575f925f91611f8857509192565b9050611fad91925060403d604011611fb2575b611fa58183611530565b810190611e94565b919092565b503d611f9b565b73fffd8963efd1fc6a506488495d951d5263988d259e611f47565b91939490611fe284866136fe565b6001600160a01b038082169084161097889490939092612003929091611cf0565b61200c90610106565b61201590610106565b93835f1496611f555f94610d2486611f719560409c611fb9576401000276a49e8d5196879560208701611e56565b63ffffffff81160361012357565b359061013282612043565b602081830312610123578035906001600160401b03821161012357016101a0818303126101235761208b611553565b9161209582610127565b83526120a360208301610127565b60208401526120b460408301610127565b60408401526120c560608301610127565b60608401526080820135608084015260a082013560a084015260c082013560c08401526120f460e08301610127565b60e08401526121066101008301612051565b6101008401526121196101208301612051565b61012084015261212c6101408301612051565b610140840152610160820135916001600160401b0383116101235761215961018092612165948301611604565b6101608501520161035f565b61018082015290565b6001600160a01b039182168152918116602083015291821660408201529181166060830152608082019290925260a081019290925260c0820192909252911660e08201526105b994936101809391926121f3926121e5916121d79063ffffffff16610100870152565b63ffffffff16610120850152565b63ffffffff16610140830152565b81610160820152019061048d565b61220d9181019061205c565b6080810151905f600160ff1b831461237a575b61018082015115612330575081905b80517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316929061226690610106565b6122736020840151610106565b6122806040850151610106565b9161228e6060860151610106565b9460a08101519060c08101516122a760e0830151610106565b61010083015163ffffffff16906122c661012085015163ffffffff1690565b926101606122dc61014087015163ffffffff1690565b950151958c3b1561012357604051633dc9c91960e11b81529d8e9c8d9b8c9b6123089b60048e0161216e565b03915a945f95f18015610e685761231c5750565b8061232a5f61013293611530565b806103fb565b9061237583612345611da96040850151610106565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690613730565b61222f565b915061238a610180820151151590565b15612396574791612220565b6123a9611da9611da96040840151610106565b602060405180926370a0823160e01b825281806123c93060048301610785565b03915afa908115610e68575f916123e2575b5091612220565b6123fb915060203d602011611138576111298183611530565b5f6123db565b80356322b9af7160e01b6001600160e01b03198216016124c4575061242d826124339361242d93611e14565b90611c04565b5f5b81811061244157505050565b61246f612469612463612455848688610ad9565b356001600160f81b03191690565b60f81c90565b60ff1690565b80159081156124b9575b81156124ae575b81156124a3575b5061249457600101612435565b635d1d0f9f60e01b5f5260045ffd5b60039150145f612487565b600181149150612480565b600481149150612479565b63f801e52560e01b5f526001600160e01b03191660045260245ffd5b80356001600160e01b031916630624e65f60e11b811480156126c7575b80156126b7575b156126a557506040516331a9108f60e11b815260049182013591810182905290916001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690602083602481855afa928315610e68575f93612684575b506001600160a01b03818116908416811492908315612624575b5082156125a8575b50501590505b6125965750565b63bb25d4c560e01b5f5260045260245ffd5b60405163e985e9c560e01b81526001600160a01b0394851660048201529190931660248201529160209150829060449082905afa8015610e685761258f915f916125f5575b505f80612589565b612617915060203d60201161261d575b61260f8183611530565b810190612abc565b5f6125ed565b503d612605565b60405163020604bf60e21b81526004810187905291935090602081602481875afa908115610e68575f91612665575b506001600160a01b031614915f612581565b61267e915060203d602011610e6157610e538183611530565b5f612653565b61269e91935060203d602011610e6157610e538183611530565b915f612567565b63f801e52560e01b5f5260045260245ffd5b50630852cd8d60e31b8114612504565b5063fc6f786560e01b81146124fd565b356001600160e01b03191663853d008560e01b81016126a55750565b6040516348c8949160e01b815260206004820152915f918391829161271c91602484019161180f565b0381837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af18015610e68576127585750565b3d805f833e6127678183611530565b810190602081830312610123578051906001600160401b038211610123570181601f8201121561012357805161279c816115b3565b926127aa6040519485611530565b81845260208284010111610123575f928160208094018483015e010152565b918235830191602083359481850194038560051b010111611c2c57565b916060830135830191602083359481850194038560051b010111611c2c57565b9160a0830135830191602083359481850194038560051b010111611c2c57565b9190811015610ae55760071b0190565b356105b981610112565b60208082528101839052604001915f5b81811061285d5750505090565b909192608080600192863561287181610112565b848060a01b03168152602087013561288881610112565b848060a01b0316602082015260408701356128a281610112565b848060a01b0316604082015260608701356128bc81610112565b848060a01b031660608201520194019101919091612850565b90915f5b8381106129485750507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691823b1561012357612937925f9283604051809681958294630d58b1db60e01b845260048401612840565b03925af18015610e685761231c5750565b61295b612956828686612826565b612836565b6001600160a01b03838116911603612975576001016128d9565b63e700287760e01b5f5260045ffd5b6001600160a01b038116600181036129aa5750505f80516020615a158339815191525c90565b6002036105b957503090565b6040516370a0823160e01b815290917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169060208380612a013060048301610785565b0381855afa928315610e68575f93612a9b575b508210612a8c5781612a2557505050565b803b1561012357604051632e1a7d4d60e01b815260048101839052905f908290602490829084905af18015610e6857612a78575b50306001600160a01b03831603612a6f575b5050565b6101329161381f565b8061232a5f612a8693611530565b5f612a59565b631a84bc4160e21b5f5260045ffd5b612ab591935060203d602011611138576111298183611530565b915f612a14565b9081602091031261012357516105b981610348565b6001600160a01b039091168152602081019190915260400190565b90600160ff1b8103612bd1575047905b81612b05575050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691823b1561012357604051630d0e30db60e41b81525f8160048185885af18015610e6857612bbd575b50306001600160a01b03831603612b6f575b505050565b612b93926020925f60405180968195829463a9059cbb60e01b845260048401612ad1565b03925af18015610e6857612ba5575b50565b612ba29060203d60201161261d5761260f8183611530565b8061232a5f612bcb93611530565b5f612b58565b9047821115612afc57631a84bc4160e21b5f5260045ffd5b9015610ae55790565b9060011015610ae55760200190565b9190811015610ae55760051b0190565b9290939196959460028310612d445786151580612d30575b612d215793965f94907f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000005f1986018681116116fd579190825b612cbf575050508811612cb0576101329785612cab92612ca66129568787612be9565b611dc4565b6138d7565b6345585e0b60e11b5f5260045ffd5b919a9750905f198b018b81116116fd57612d088c612cf6612ce4612d0f948b8b612c01565b3591612cef83610112565b8a8a612c01565b3590612d0182610112565b8486614214565b919a6142a8565b9a80156116fd575f1901919082612c83565b630c12651d60e31b5f5260045ffd5b505f1983018381116116fd57871415612c29565b632b94ab4360e21b5f5260045ffd5b9294969095919660028510612d445781151580612ef6575b612d2157612dd4612d7f6129568789612be9565b612d8c612956888a612bf2565b907f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000613cc1565b968781612edd575b505050612dfb611da9611da9612956612df488611779565b888a612c01565b91604051966370a0823160e01b885260208880612e1b8860048301610785565b0381875afa958615610e6857612e5f985f97612eaf575b509085612e44949392602098996138d7565b60405180809681946370a0823160e01b835260048301610785565b03915afa8015610e6857612e7a925f91612e90575b50611787565b10612e8157565b631093d5f360e31b5f5260045ffd5b612ea9915060203d602011611138576111298183611530565b5f612e74565b60209750612e4494939291612ed188928a3d8c11611138576111298183611530565b98509192939450612e32565b612eee92612ca6612956898b612be9565b5f8087612ddc565b50612f0085611779565b821415612d6b565b670de0b6b3a76400008311612fb3576001600160a01b031680612f4a5750612f44612f366101329347611726565b670de0b6b3a7640000900490565b9061381f565b906040516370a0823160e01b815260208180612f693060048301610785565b0381865afa908115610e685761013294612f8e92612f36925f91612f94575b50611726565b91613cd8565b612fad915060203d602011611138576111298183611530565b5f612f88565b6390f5ebeb60e01b5f5260045ffd5b6001600160a01b031680612fde5750612f446101329247613d47565b6040516370a0823160e01b8152306004820152909190602081602481865afa938415610e685761013294612f8e925f91613019575b50613d47565b613032915060203d602011611138576111298183611530565b5f613013565b9091906001600160a01b03168061305357506101329161381f565b600160ff1b8214613069575b9161013292613cd8565b6040516370a0823160e01b815230600482015292909150602083602481855afa8015610e6857610132935f916130a4575b509190925061305f565b6130bd915060203d602011611138576111298183611530565b5f61309a565b9091906001600160a01b0316806130e6575047908110612a8c5780612a6f575050565b91604051916370a0823160e01b8352602083806131063060048301610785565b0381875afa928315610e68575f93613142575b508210613133578161312a57505050565b61013292613cd8565b630ceb95c760e31b5f5260045ffd5b61315c91935060203d602011611138576111298183611530565b915f613119565b6001600160a01b039182168152918116602083015291821660408201529116606082015260800190565b9290917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690813b15610123575f80946131e560405197889687958694631b63c28b60e11b865260048601613163565b03925af18015610e68576131f65750565b5f61013291611530565b9492909695939193861515806132a5575b6132965761322761322d9161325198369161161f565b94613d82565b8351801561328e5761323e90611779565b945b61324c61091e89611e47565b611ee3565b9091901561327f5750613263906116ed565b0361327057610132613d70565b636a70124760e11b5f5260045ffd5b61328991506116ed565b613263565b505f94613240565b630e0fbd8760e21b5f5260045ffd5b506132b96132b4601789611726565b611db6565b831415613211565b5f1981146116fd5760010190565b97939795909192949587151596878098613478575b613296578998600160ff1b851461340b575b909950879391965f92808b8a61330a611598565b9e8f9061335493613346935b61332a613324836042111590565b98611e47565b908815613401575061333e30925b8a613d93565b929091611fd4565b9091901561099757506116ed565b966133c6575b50156133a557309961336b91611e31565b9190978892809c879561337d906132c1565b9c8d956133549461333e613346959e50509c9e509495969290919e8f90928e9a95938e613316565b5050505093509350935050106133b757565b631ce9aa4b60e11b5f5260045ffd5b6133d39061096288611702565b6133de858588612c01565b358082106133ec575061335a565b632d0a7cdd60e21b5f5261099492508561176b565b61333e9092613338565b935097611da9611da961341e9289614419565b976020604051809a6370a0823160e01b8252818061343f3060048301610785565b03915afa8015610e68578a995f91613459575b50936132f6565b613472915060203d602011611138576111298183611530565b5f613452565b506134876132b460178b611726565b8a14156132e4565b60429061349a613da1565b906040519161190160f01b8352600283015260228201522090565b6105b9916134c291613ebd565b90929192613f15565b60ff81146134dc576105b990613f91565b506040515f80548060011c916001821680156135a4575b60208410811461359057838552849260208401919081156135775750600114613524575b506105b992500382611530565b5f80805291507f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b84831061356057506105b99350015f613517565b80548284015285935060209092019160010161354c565b60ff19168252506105b993151560051b0190505f613517565b634e487b7160e01b5f52602260045260245ffd5b92607f16926134f3565b60ff81146135bf576105b990613f91565b506040515f6001548060011c9160018216801561365c575b6020841081146135905783855284926020840191908115613577575060011461360757506105b992500382611530565b60015f90815291507fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b84831061364557506105b99350015f613517565b805482840152859350602090920191600101613631565b92607f16926135d7565b604081351891606082019363ffffffff6040840135169363ffffffe0601f8601169060608201602086013518179084019260608401359463ffffffff861694641fffffffe0608082019760051b1680915f925b8084106136d1575060809250010191011017611c2c57565b90916020809163ffffffe0601f60808089890101359b848d18179b880101350116010193019291906136b9565b90602b1161372157803591601762ffffff8460601c9460481c1692013560601c90565b633b99b53d60e01b5f5260045ffd5b919091613797604051926137688461375a602082019363095ea7b360e01b85528860248401612ad1565b03601f198101865285611530565b83516001600160a01b038416915f91829182855af1906137866118d5565b826137ed575b50816137e657501590565b6137a057505050565b60405163095ea7b360e01b60208201526001600160a01b0390931660248401525f6044840152610132926137e1906137db8160648101610d24565b826141a9565b6141a9565b3b15919050565b80519192508115918215613805575b5050905f61378c565b6138189250602080918301019101612abc565b5f806137fc565b5f80809381935af11561382e57565b60405162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b6044820152606490fd5b51906001600160701b038216820361012357565b908160609103126101235761389181613869565b9160406138a060208401613869565b9201516105b981612043565b90926080926105b995948352602083015260018060a01b03166040820152816060820152019061048d565b949392939190916139016138ee6129568589612be9565b6138fb612956868a612bf2565b90614323565b50915f19840195600119850191831515985f955b898710613929575050505050505050505050565b613937612956888a85612c01565b9361394961295660018a018b86612c01565b604051630240bc6b60e21b8152909590916001600160a01b038116606084600481845afa918215610e68576139c7945f905f94613c8d575b506001600160a01b03948516966001600160701b039485169516871493168315613c83579060209194965b60405180809881946370a0823160e01b835260048301610785565b03915afa978815610e68578f6139ef8f9a978f978e9988915f91613c65575b5003968761433a565b9315613c5d578c5f94965b8c821015613c4f57613a17612956613a5f9260028501908d612c01565b847f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000614395565b9890985b9b83613c39575b5050505f14613bd2576040516370a0823160e01b81526001600160a01b039190911694909260208480613aa08a60048301610785565b0381895afa938415610e68575f94613bb2575b50613abc611598565b92803b15610123575f92838993613ae96040519788968795869463022c0d9f60e01b8652600486016138ac565b03925af18015610e6857613b9e575b50602060405180946370a0823160e01b82528180613b198960048301610785565b03915afa908115610e6857613b47935f92613b7e575b5090036a0c097ce7bc90715b34b9f160241b02611739565b613b5288888c612c01565b35808210613b695750506001905b96019592613915565b6365d564a560e01b5f5261099492508861176b565b613b9791925060203d8111611138576111298183611530565b905f613b2f565b8061232a5f613bac93611530565b5f613af8565b613bcb91945060203d8111611138576111298183611530565b925f613ab3565b5093929150613bdf611598565b93803b15610123575f92838593613c0c6040519889968795869463022c0d9f60e01b8652600486016138ac565b03925af1918215610e6857600192613c25575b50613b60565b8061232a5f613c3393611530565b5f613c1f565b613c439350612c01565b3515158c8f8d90613a6a565b5050955087958c8c5f613a63565b8c5f966139fa565b613c7d915060203d8111611138576111298183611530565b5f6139e6565b95602091906139ac565b9050613cb191935060603d8111613cba575b613ca98183611530565b81019061387d565b5092905f613981565b503d613c9f565b90916105b993613cd091614323565b9290916143a6565b5f91826044926020956040519363a9059cbb60e01b8552600485015260248401525af13d15601f3d1160015f511416171615613d1057565b60405162461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b6044820152606490fd5b6127108211613d615761271091613d5d91611726565b0490565b636f5500f360e11b5f5260045ffd5b5f5f80516020615a358339815191525d565b5f80516020615a358339815191525d565b90602b116101235790602b90565b307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161480613e94575b15613dfc577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a08152613e8e60c082611530565b51902090565b507f00000000000000000000000000000000000000000000000000000000000000004614613dd3565b8151919060418303613eed57613ee69250602082015190606060408401519301515f1a90614428565b9192909190565b50505f9160029190565b60041115613f0157565b634e487b7160e01b5f52602160045260245ffd5b613f1e81613ef7565b80613f27575050565b613f3081613ef7565b60018103613f475763f645eedf60e01b5f5260045ffd5b613f5081613ef7565b60028103613f6b575063fce698f760e01b5f5260045260245ffd5b80613f77600392613ef7565b14613f7f5750565b6335e2f38360e21b5f5260045260245ffd5b60ff811690601f8211613fc05760405191613fad604084611530565b6020808452838101919036833783525290565b632cd44ac360e21b5f5260045ffd5b909190600b8110156140635760078103613ff65750613ff19061013292614b43565b614e86565b60068103614011575061400c9061013292614913565b614d65565b6009810361402c57506140279061013292614b43565b614ba8565b916008831461404f57505061099491505b635cda29d760e01b5f52600452602490565b61013292509061405e91614913565b6149ca565b600c81036140b25750614075916148a3565b9061407f816148b6565b9180831161409b57509061013291614095611bf2565b906147a9565b6312bacdd360e01b5f52600452602482905260445ffd5b600f810361410157506140c4916148a3565b906140ce816144b8565b918083106140ea575090610132916140e4611bf2565b9061452c565b638b063d7360e01b5f52600452602482905260445ffd5b600b8103614135575061412f61411d61412992610132946144a0565b938294939291936146bf565b926146da565b916147a9565b600e8103614167575061415b61415161416192610132946144a0565b9282949291612984565b926146ab565b9161452c565b916010831461417c575050610994915061403d565b610132925061419161419a92614161926144a0565b92919390612984565b916141a4846144b8565b613d47565b5f806141d19260018060a01b03169360208151910182865af16141ca6118d5565b90836157e1565b80519081151591826141f9575b50506141e75750565b635274afe760e01b5f5260045260245ffd5b61420c9250602080918301019101612abc565b155f806141de565b9193929061422561422d9286614323565b9181946143a6565b604051630240bc6b60e21b815290936060826004816001600160a01b0389165afa918215610e68575f905f93614283575b506001600160701b03928316939216916001600160a01b03918216911603610b335791565b905061429f91925060603d606011613cba57613ca98183611530565b5091905f61425e565b908015801561431b575b61430c57816142c091611726565b916103e88302928084046103e814901517156116fd57818103918183116116fd576103e583029283046103e514911417156116fd576142fe91611739565b600181018091116116fd5790565b633dce448b60e11b5f5260045ffd5b5082156142b2565b6001600160a01b038281169082161015610b335791565b81159283801561438d575b61430c576103e58202918083046103e514901517156116fd576143689082611726565b926103e883029283046103e81417156116fd5781018091116116fd576105b991611739565b508015614345565b92614225906143a393614323565b91565b6040516001600160601b0319606094851b8116602083019081529590941b9093166034840152602883529092909161440991906143e4604882611530565b5190206143fb604051948592602084019586611cba565b03601f198101845283611530565b905190206001600160a01b031690565b90601411613721573560601c90565b91906fa2a8918ca85bafe22016d0b997e4df60600160ff1b038411614495579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15610e68575f516001600160a01b0381161561448b57905f905f90565b505f906001905f90565b5050505f9160039190565b90606011611c2c578035916040602083013592013590565b6144e381307f0000000000000000000000000000000000000000000000000000000000000000614ff9565b905f82126144ef575090565b634c085bf160e01b5f9081526001600160a01b0391909116600452602490fd5b6001600160a01b039091168152600160f01b602082015260400190565b91907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168061464957505f5b6001600160a01b0316614577575b61013292615075565b60405163aeb5556960e01b81526001600160a01b03841690602081600481855afa908115610e68575f9161462a575b501561461b5760206145d6916145ba611bf2565b90604051808095819463f493cec360e01b83526004830161450f565b03915afa908115610e68575f916145fc575b5061456e575b6282b42960e81b5f5260045ffd5b614615915060203d60201161261d5761260f8183611530565b5f6145e8565b63888f378560e01b5f5260045ffd5b614643915060203d60201161261d5761260f8183611530565b5f6145a6565b6040516312f7fd6760e11b815290602090829081806146746001600160a01b038a1660048301610785565b03915afa908115610e68575f9161468c575b50614560565b6146a5915060203d602011610e6157610e538183611530565b5f614686565b90816146bb576105b991506144b8565b5090565b156146d6575f80516020615a158339815191525c90565b3090565b907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168061474757505f5b6001600160a01b03169182158015614739575b61472f5750506105b99061512f565b6105b9925061510a565b50600160ff1b811415614720565b6040516312f7fd6760e11b815290602090829081806147726001600160a01b03881660048301610785565b03915afa908115610e68575f9161478a575b5061470d565b6147a3915060203d602011610e6157610e538183611530565b5f614784565b908215612b6a577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691823b1561012357604051632961046560e21b81525f81806147ff8560048301610785565b038183885af18015610e685761488f575b506001600160a01b03811661485e575050602090600460405180948193630476982d60e21b83525af18015610e68576148465750565b612ba29060203d602011611138576111298183611530565b5f936020939261486d92615195565b600460405180948193630476982d60e21b83525af18015610e68576148465750565b8061232a5f61489d93611530565b5f614810565b9190604011611c2c576020823592013590565b6148e181307f0000000000000000000000000000000000000000000000000000000000000000614ff9565b905f82136148f357506105b9906116ed565b63019a8d9360e51b5f9081526001600160a01b0391909116600452602490fd5b9061016011611c2c5780350190565b356001600160801b03811681036101235790565b356105b981610348565b91908260a09103126101235760405161495881611510565b6080808294803561496881610112565b8452602081013561497881610112565b6020850152604081013561498b81611911565b6040850152606081013561499e8161191e565b60608501520135916149af83610112565b0152565b6001600160801b0390811660045216602452604490565b6149d660c08201614922565b6001600160801b03811615614b01575b60a08201906149f482614936565b6001600160801b0382169290614a26908490614a14610120880188610aea565b929091614a21368a614940565b61540a565b91614a39614a3383614936565b846154c3565b6001600160801b038116949091908510614aed57505090614a5c614a6292614936565b906154eb565b9160e0810192614a80614a7485614922565b6001600160801b031690565b6001600160801b03821694908511614ad157505061010001359182614aa457505050565b610962614ab092611702565b90808210614abc575050565b63efc8d8eb60e01b5f5260045260245260445ffd5b90614ade61099492614922565b6312bacdd360e01b5f526149b3565b630686776b60e31b5f5261099492506149b3565b50614b0e60a08201614936565b15614b3457614b2f614b2a614b2560208401612836565b6148b6565b61535e565b6149e6565b614b2f614b2a614b2583612836565b9060e011611c2c5780350190565b903590601e198136030182121561012357018035906001600160401b03821161012357602001918160051b3603831361012357565b9190811015610ae55760051b81013590609e1981360301821215610123570190565b906020820191614bb88382614b51565b5f929150614bc860608301614922565b90614bd283612836565b906001600160801b03831615614d51575b6040840181614bf28287614b51565b801515948592509082614d46575b5050614d37579193825b614c3957505050505060809192935001614c26614a7482614922565b6001600160801b03831611614ad1575050565b614c5d919293949650614c64614c4f8a88614b51565b5f1987019491859190614b86565b9586615521565b6001600160801b03831692901591614c8e90839085614c8660808c018c610aea565b93909261540a565b90614c9983836154c3565b6001600160801b038116949091908510614aed5750508894939291614cbd916154eb565b97614cdb575b5050614ccf8694612836565b925f1901919382614c0a565b614cff906001600160801b038916906a0c097ce7bc90715b34b9f160241b02611739565b90614d1481614d0e858a614b51565b90612c01565b3590818310614d235750614cc3565b63e651804360e01b5f52610994935061176b565b63115eb5b360e31b5f5260045ffd5b14159050815f614c00565b9150614d5f614b2a826148b6565b91614be3565b614d7160c08201614922565b906001600160801b03821615614e47575b614dc860a08201614dc2614dbc614d9883614936565b6001600160801b0390961695614dad876116ed565b90614a14610120880188610aea565b91614936565b906154c3565b9060e0810191614dda614a7484614922565b6001600160801b03821693908410614e2b57505061010001359182614dfe57505050565b610962614e0a92611702565b90808210614e16575050565b634713c18b60e01b5f5260045260245260445ffd5b90614e3861099492614922565b638b063d7360e01b5f526149b3565b9050614e5560a08201614936565b15614e7457614e6e614b2a614e6983612836565b6144b8565b90614d82565b614e6e614b2a614e6960208401612836565b6020810190614e958282614b51565b5f93915080614ea384612836565b92614eb060608601614922565b6001600160801b03811615614fe7575b6040860191614ecf8388614b51565b801515958692509082614fdc575b5050614d37575f9591949395945b848610614f1b5750505050505050608001614f08614a7482614922565b6001600160801b03831610614e2b575050565b869850614f6a614f65614f3f614c5d89614f39878e9d9b9c9d614b51565b90614b86565b6001600160801b03909416939190614f5a6080880188610aea565b9184875f039161540a565b6154c3565b98614f88575b506001614f7d8993612836565b960194939591614eeb565b614fab906001600160801b038a166a0c097ce7bc90715b34b9f160241b02611739565b614fb987614d0e868b614b51565b35808210614fc75750614f70565b63a9b7edf760e01b5f5261099492508761176b565b14159050855f614edd565b50614ff4614b2a856144b8565b614ec0565b6001600160a01b039182165f9081529282166020908152604093849020935163789add5560e11b815260048101949094529183916024918391165afa908115610e68575f91615046575090565b90506020813d60201161506d575b8161506160209383611530565b81010312610123575190565b3d9150615054565b908215612b6a577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561012357604051630b0d9c0960e01b81526001600160a01b03938416600482015291909216602482015260448101929092525f908290606490829084905af18015610e68576150f55750565b806151015f8093611530565b80031261012357565b90600160ff1b8203615120576105b9915061512f565b816146bb576105b991506148b6565b6001600160a01b03811661514257504790565b6040516370a0823160e01b815230600482015290602090829060249082906001600160a01b03165afa908115610e68575f9161517c575090565b6105b9915060203d602011611138576111298183611530565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316806152fc57505f5b6001600160a01b0381169182156152ee5760405163aeb5556960e01b81526001600160a01b03919091169390602081600481885afa908115610e68575f916152cf575b501561461b57615237602061521d611bf2565b6040518093819263f493cec360e01b83526004830161450f565b0381885afa908115610e68575f916152b0575b50156145ee576001600160a01b03811630036152a3575050828261526d926156e5565b803b1561012357604051630934f6c760e21b815260048101929092525f908290602490829084905af18015610e685761231c5750565b610132949391925061562a565b6152c9915060203d60201161261d5761260f8183611530565b5f61524a565b6152e8915060203d60201161261d5761260f8183611530565b5f61520a565b9050610132939291506155f3565b6040516312f7fd6760e11b815290602090829081806153276001600160a01b03881660048301610785565b03915afa908115610e68575f9161533f575b506151c7565b615358915060203d602011610e6157610e538183611530565b5f615339565b6001600160801b038116919082900361537357565b6393dafdf160e01b5f5260045ffd5b6001600160a01b039091169052565b81516001600160a01b03908116825260208084015182168184015260408085015162ffffff168185015260608086015160020b908501526080948501518316948401949094528451151560a084015284015160c083015291909201511660e08201526105b992906101209081610100820152019161180f565b90916020939461544d6154689261542085615776565b85156154a8576401000276a4905b615440615439611563565b9715158852565b8787015260408601615382565b604051633cf3645360e21b8152958694859460048601615391565b03815f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1908115610e68575f9161517c575090565b73fffd8963efd1fc6a506488495d951d5263988d259061542e565b90156154e357600f0b5b5f81600f0b12615373576001600160801b031690565b60801d6154cd565b614b2a906105b9925f146155055760801d5b600f0b6116ed565b600f0b6154fd565b356105b981611911565b356105b98161191e565b905f608060405161553181611510565b828152826020820152826040820152826060820152015261555182612836565b906001600160a01b0380831690821610156155d757906143a3906155ce60015b946155c46155816020830161550d565b6155b861559c606061559560408701615517565b9501612836565b956155af6155a8611572565b998a615382565b60208901615382565b62ffffff166040870152565b60020b6060850152565b60808301615382565b6001600160a01b03918216916143a391166155ce818414615571565b61013292916001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169216611dc4565b6001600160a01b03918216927f000000000000000000000000000000000000000000000000000000000000000090921691823b1561012357604051631b63c28b60e11b8152925f92849283918591839161569591906001600160a01b038c16908b9060048601613163565b03925af18015610e68576156d1575b50803b1561012357604051630934f6c760e21b815260048101929092525f90829081838160248101612937565b8061232a5f6156df93611530565b5f6156a4565b9091906001600160a01b03811661571257505f80808061570694865af11590565b61570d5750565b6158ac565b6040805163a9059cbb60e01b81526001600160a01b039094166004850152602484019290925291905f9060208260448582885af13d15601f3d116001855114161716928281528260208201520152156157685750565b6001600160a01b031661583f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031615612ba25780516080820180516101329391926157c9916001600160a01b039081169116615915565b6020015190516001600160a01b039081169116615915565b9061580557508051156157f657805190602001fd5b630a12f52160e11b5f5260045ffd5b81511580615836575b615816575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b1561580e565b6040516390bfb86560e01b81526001600160a01b03909116600482015263a9059cbb60e01b60248201526080604482015260a03d601f01601f191690810160648301523d60848301523d5f60a484013e808201600460a482015260c4633c9fd93960e21b91015260e40190fd5b6040516390bfb86560e01b81526001600160a01b0390911660048201525f602482018190526080604483015260a03d601f01601f191690810160648401523d6084840152903d9060a484013e808201600460a482015260c4633d2cec6f60e21b91015260e40190fd5b6040516312f7fd6760e11b81526001600160a01b039190911690602081806159408560048301610785565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610e68575f916159f5575b506001600160a01b031615612a6b576159ad916020916040518080958194631557c23760e01b835260048301610785565b03915afa908115610e68575f916159d6575b50156159c757565b636e11e93f60e01b5f5260045ffd5b6159ef915060203d60201161261d5761260f8183611530565b5f6159bf565b615a0e915060203d602011610e6157610e538183611530565b5f61597c56fe0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a708af28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f692a42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb6d317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee31a164736f6c634300081a000a000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba3000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f0000000000000000000000001f98431c8ad98523631ae4a59f267346ea31f98496e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54000000000000000000000000000000000004444c5dc75cb358380d2e3de08a900000000000000000000000007da911490ca4663e572ea9c8154f3cdebce16452000000000000000000000000c36442b4a4522e871399cd717abdd847ab11fe88000000000000000000000000bd216513d74c8cf14cf4747e6aaa6420ff64ee9e0000000000000000000000005c7bcd6e7de5423a257d81b442095a1a6ced35c5", + "nonce": "0x4f", + "chainId": "0x1" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "type": "0x2", + "status": "0x1", + "cumulativeGasUsed": "0x2a4a0df", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "transactionHash": "0x205624ca1d3e852c37b5f00f86208ec62a2576e4b94d58dd52ef6294bc306a06", + "transactionIndex": "0xed", + "blockHash": "0x5f0f688653691c61a6add1f775159ca824800c65bbd4f75cd6a7b9115c767c33", + "blockNumber": "0x18cd35e", + "gasUsed": "0x4df715", + "effectiveGasPrice": "0x10423421", + "from": "0x2179a60856e37dfeaaca0ab043b931fe224b27b6", + "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", + "contractAddress": null + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1789758327025, + "chain": 1, + "commit": "e34ba78" +} \ No newline at end of file diff --git a/broadcast/Deploy-all.s.sol/1/run-latest.json b/broadcast/Deploy-all.s.sol/1/run-latest.json index fc0ce335..45099801 100644 --- a/broadcast/Deploy-all.s.sol/1/run-latest.json +++ b/broadcast/Deploy-all.s.sol/1/run-latest.json @@ -1,21 +1,22 @@ { "transactions": [ { - "hash": "0x12beeb748ea2ea0f8ffc8e17ce3eefcdd9bcbc7e6ca6116cc36b1ad47721810f", + "hash": "0x205624ca1d3e852c37b5f00f86208ec62a2576e4b94d58dd52ef6294bc306a06", "transactionType": "CREATE2", - "contractName": "PermissionedHooks", - "contractAddress": "0x69603ab16110eb0bb5f5e9c8019749ee41a128c0", + "contractName": "UniversalRouter", + "contractAddress": "0xab863e752bf67d8dcdd929eaae9be9dc83fb3bbb", "function": null, + "functionAbi": null, "arguments": [ - "0x000000000004444c5dc75cB358380D2e3dE08A90", - "0x38f9Ab57FBE2704EbB727cB20e33201aF0E5F961" + "(0x000000000022D473030F116dDEE9F6B43aC78BA3, 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2, 0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f, 0x1F98431c8aD98523631AE4a59f267346ea31F984, 0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f, 0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54, 0x000000000004444c5dc75cB358380D2e3dE08A90, 0x7DA911490Ca4663E572eA9C8154f3CdEbCE16452, 0xC36442b4a4522E871399CD717aBDD847Ab11FE88, 0xbD216513d74C8cf14cf4747E6AaA6420FF64ee9e, 0x5c7BCd6E7De5423a257D81B442095A1a6ced35C5)" ], "transaction": { "from": "0x2179a60856e37dfeaaca0ab043b931fe224b27b6", "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", + "gas": "0x6bb07b", "value": "0x0", - "input": "0x000000000000000000000000000000000000000000000000000000000000134560c060405234801561000f575f80fd5b50604051611e12380380611e1283398101604081905261002e91610253565b6001600160a01b0382166080528161004530610058565b506001600160a01b031660a0525061028b565b6100d7816100d2604080516101c0810182525f60208201819052606082018190526080820181905260a08201819052610100820181905261012082018190526101408201819052610160820181905261018082018190526101a0820152600180825260c0820181905260e082018190529181019190915290565b6100da565b50565b80511515612000831615151415806100fe5750602081015115156110008316151514155b806101155750604081015115156108008316151514155b8061012c5750606081015115156104008316151514155b806101435750608081015115156102008316151514155b8061015a575060a081015115156101008316151514155b80610170575060c0810151151560808316151514155b80610186575060e0810151151560408316151514155b8061019d5750610100810151151560208316151514155b806101b45750610120810151151560108316151514155b806101cb5750610140810151151560088316151514155b806101e25750610160810151151560048316151514155b806101f95750610180810151151560028316151514155b8061021057506101a0810151151560018316151514155b1561022657610226630732d7b560e51b8361022a565b5050565b815f526001600160a01b03811660045260245ffd5b6001600160a01b03811681146100d7575f80fd5b5f8060408385031215610264575f80fd5b825161026f8161023f565b60208401519092506102808161023f565b809150509250929050565b60805160a051611afd6103155f395f81816101f301528181610ad101528181610b8f01528181610ca401528181610dad015261110a01525f818161031901528181610367015281816103f00152818161046f015281816104fe0152818161058d0152818161060a01528181610697015281816107200152818161089601526108ca0152611afd5ff3fe608060405234801561000f575f80fd5b50600436106100da575f3560e01c8063ab769d3711610088578063c4e833ce11610063578063c4e833ce1461029b578063dc4c90d314610314578063dc98354e1461033b578063e1b4af6914610288575f80fd5b8063ab769d37146101ee578063b47b2fb11461023a578063b6a8b0fa14610288575f80fd5b80636c2bbe7e116100b85780636c2bbe7e146101905780636fe7e6eb146101db5780639f063efc14610190575f80fd5b806321d0ee70146100de578063259982e514610127578063575e24b41461013a575b5f80fd5b6100f16100ec366004611563565b61034e565b6040517fffffffff0000000000000000000000000000000000000000000000000000000090911681526020015b60405180910390f35b6100f1610135366004611563565b6103d7565b61014d6101483660046115ea565b610454565b604080517fffffffff000000000000000000000000000000000000000000000000000000009094168452602084019290925262ffffff169082015260600161011e565b6101a361019e366004611644565b6104e4565b604080517fffffffff00000000000000000000000000000000000000000000000000000000909316835260208301919091520161011e565b6100f16101e93660046116e0565b610574565b6102157f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161011e565b61024d610248366004611737565b6105f0565b604080517fffffffff000000000000000000000000000000000000000000000000000000009093168352600f9190910b60208301520161011e565b6100f16102963660046117b8565b61067e565b604080516101c0810182525f60208201819052606082018190526080820181905260a08201819052610100820181905261012082018190526101408201819052610160820181905261018082018190526101a0820152600180825260c0820181905260e0820181905281830152905161011e9190611812565b6102157f000000000000000000000000000000000000000000000000000000000000000081565b6100f1610349366004611933565b610707565b5f3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146103be576040517fae18210a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6103cb868686868661078a565b90505b95945050505050565b5f3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610447576040517fae18210a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6103cb86868686866107bd565b5f80803373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146104c6576040517fae18210a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6104d388888888886107e9565b925092509250955095509592505050565b5f803373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610555576040517fae18210a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61056489898989898989610827565b9150915097509795505050505050565b5f3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146105e4576040517fae18210a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6103ce8585858561078a565b5f803373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610661576040517fae18210a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61066f88888888888861085b565b91509150965096945050505050565b5f3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146106ee576040517fae18210a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106fc87878787878761078a565b979650505050505050565b5f3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610777576040517fae18210a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610782848484610a63565b949350505050565b5f6040517f0a85dc2900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f259982e5000000000000000000000000000000000000000000000000000000006103ce868683610e94565b7f575e24b4000000000000000000000000000000000000000000000000000000005f80610817888885610e94565b505f905080955095509592505050565b5f806040517f0a85dc2900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8080610877610870368a90038a018a61198c565b60a0902090565b90505f80806108bc73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001685610f35565b935050925092505f61090d857f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1661101a90919063ffffffff16565b90508c73ffffffffffffffffffffffffffffffffffffffff1663d737d0c76040518163ffffffff1660e01b8152600401602060405180830381865afa158015610958573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061097c9190611a3f565b73ffffffffffffffffffffffffffffffffffffffff16857f40e9cecb9f5f1f1c5b9c97dec2917b7ee92e57ba5563708daca94dd84ad7112f6109be8d60801d90565b6109c88e600f0b90565b60408051600f93840b81529190920b602082015273ffffffffffffffffffffffffffffffffffffffff8916818301526fffffffffffffffffffffffffffffffff86166060820152600288900b608082015262ffffff871660a082015290519081900360c00190a3507fb47b2fb1000000000000000000000000000000000000000000000000000000009c5f9c509a5050505050505050505050565b5f80610a726020850185611a61565b90505f610a856040860160208701611a61565b6040517fa625fcd400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660048301529192505f9182917f00000000000000000000000000000000000000000000000000000000000000009091169063a625fcd490602401602060405180830381865afa158015610b18573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b3c9190611a3f565b6040517fa625fcd400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8581166004830152918216929092141592505f9182917f0000000000000000000000000000000000000000000000000000000000000000169063a625fcd490602401602060405180830381865afa158015610bd4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bf89190611a3f565b73ffffffffffffffffffffffffffffffffffffffff161415905081158015610c1e575080155b15610c55576040517fcf43195200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b818015610d2757506040517f25efface00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906325efface90602401602060405180830381865afa158015610ceb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d0f9190611a3f565b73ffffffffffffffffffffffffffffffffffffffff16145b15610d5e576040517f437863e800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b808015610e3057506040517f25efface00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906325efface90602401602060405180830381865afa158015610df4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e189190611a3f565b73ffffffffffffffffffffffffffffffffffffffff16145b15610e67576040517f437863e800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b507fdc98354e00000000000000000000000000000000000000000000000000000000979650505050505050565b5f8373ffffffffffffffffffffffffffffffffffffffff1663d737d0c76040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ede573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f029190611a3f565b9050610f1c610f146020850185611a61565b8286856110c3565b610f2f610f146040850160208601611a61565b50505050565b5f805f805f610f4386611488565b6040517f1e2eaeaf000000000000000000000000000000000000000000000000000000008152600481018290529091505f9073ffffffffffffffffffffffffffffffffffffffff891690631e2eaeaf90602401602060405180830381865afa158015610fb1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fd59190611a7c565b905073ffffffffffffffffffffffffffffffffffffffff811695508060a01c60020b945062ffffff8160b81c16935062ffffff8160d01c169250505092959194509250565b5f8061102583611488565b90505f611033600383611a93565b6040517f1e2eaeaf0000000000000000000000000000000000000000000000000000000081526004810182905290915073ffffffffffffffffffffffffffffffffffffffff861690631e2eaeaf90602401602060405180830381865afa15801561109f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103ce9190611a7c565b6040517f25efface00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906325efface90602401602060405180830381865afa158015611151573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111759190611a3f565b905073ffffffffffffffffffffffffffffffffffffffff81166111985750610f2f565b5f7fa8a1db4c000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000084160161129157600160f01b90508573ffffffffffffffffffffffffffffffffffffffff1663aeb555696040518163ffffffff1660e01b8152600401602060405180830381865afa158015611232573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112569190611ad1565b61128c576040517f888f378500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6112fc565b7fda667d1b000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008416016112fc57507e020000000000000000000000000000000000000000000000000000000000005b6040517ff493cec300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff86811660048301527fffff0000000000000000000000000000000000000000000000000000000000008316602483015287169063f493cec390604401602060405180830381865afa15801561138e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113b29190611ad1565b158061144957506040517fe73bce9500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff858116600483015287169063e73bce9590602401602060405180830381865afa158015611423573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114479190611ad1565b155b15611480576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050505050565b6040515f906114a7908390600690602001918252602082015260400190565b604051602081830303815290604052805190602001209050919050565b73ffffffffffffffffffffffffffffffffffffffff811681146114e5575f80fd5b50565b80356114f3816114c4565b919050565b5f60a08284031215611508575f80fd5b50919050565b5f60808284031215611508575f80fd5b5f8083601f84011261152e575f80fd5b50813567ffffffffffffffff811115611545575f80fd5b60208301915083602082850101111561155c575f80fd5b9250929050565b5f805f805f6101608688031215611578575f80fd5b8535611583816114c4565b945061159287602088016114f8565b93506115a18760c0880161150e565b925061014086013567ffffffffffffffff8111156115bd575f80fd5b6115c98882890161151e565b969995985093965092949392505050565b5f60608284031215611508575f80fd5b5f805f805f61014086880312156115ff575f80fd5b853561160a816114c4565b945061161987602088016114f8565b93506116288760c088016115da565b925061012086013567ffffffffffffffff8111156115bd575f80fd5b5f805f805f805f6101a0888a03121561165b575f80fd5b8735611666816114c4565b96506116758960208a016114f8565b95506116848960c08a0161150e565b94506101408801359350610160880135925061018088013567ffffffffffffffff8111156116b0575f80fd5b6116bc8a828b0161151e565b989b979a50959850939692959293505050565b8035600281900b81146114f3575f80fd5b5f805f8061010085870312156116f4575f80fd5b84356116ff816114c4565b935061170e86602087016114f8565b925060c085013561171e816114c4565b915061172c60e086016116cf565b905092959194509250565b5f805f805f80610160878903121561174d575f80fd5b8635611758816114c4565b955061176788602089016114f8565b94506117768860c089016115da565b9350610120870135925061014087013567ffffffffffffffff81111561179a575f80fd5b6117a689828a0161151e565b979a9699509497509295939492505050565b5f805f805f8061012087890312156117ce575f80fd5b86356117d9816114c4565b95506117e888602089016114f8565b945060c0870135935060e0870135925061010087013567ffffffffffffffff81111561179a575f80fd5b8151151581526101c081016020830151611830602084018215159052565b506040830151611844604084018215159052565b506060830151611858606084018215159052565b50608083015161186c608084018215159052565b5060a083015161188060a084018215159052565b5060c083015161189460c084018215159052565b5060e08301516118a860e084018215159052565b506101008301516118be61010084018215159052565b506101208301516118d461012084018215159052565b506101408301516118ea61014084018215159052565b5061016083015161190061016084018215159052565b5061018083015161191661018084018215159052565b506101a083015161192c6101a084018215159052565b5092915050565b5f805f60e08486031215611945575f80fd5b8335611950816114c4565b925061195f85602086016114f8565b915060c084013561196f816114c4565b809150509250925092565b803562ffffff811681146114f3575f80fd5b5f60a082840312801561199d575f80fd5b5060405160a0810167ffffffffffffffff811182821017156119e6577f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040526119f2836114e8565b8152611a00602084016114e8565b6020820152611a116040840161197a565b6040820152611a22606084016116cf565b6060820152611a33608084016114e8565b60808201529392505050565b5f60208284031215611a4f575f80fd5b8151611a5a816114c4565b9392505050565b5f60208284031215611a71575f80fd5b8135611a5a816114c4565b5f60208284031215611a8c575f80fd5b5051919050565b80820180821115611acb577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b92915050565b5f60208284031215611ae1575f80fd5b81518015158114611a5a575f80fdfea164736f6c634300081a000a000000000000000000000000000000000004444c5dc75cb358380d2e3de08a9000000000000000000000000038f9ab57fbe2704ebb727cb20e33201af0e5f961", - "nonce": "0x3e", + "input": "0x00000000000000000000000000000000000000000000000000000000000000006102c080604052346104835761016081616269803803809161002182856104a2565b833981010312610483576040519061016082016001600160401b0381118382101761046f57604052610052816104c5565b8252610060602082016104c5565b9160208101928352610074604083016104c5565b9260408201938452610088606084016104c5565b93606083019485526080840151926080810193845260a08501519360a082019485526100b660c087016104c5565b9660c083019788526100ca60e088016104c5565b9160e084019283526100df61010089016104c5565b96876101008601526101086101406100fa6101208c016104c5565b9a8b610120890152016104c5565b998a6101408701526040519861011d8a610487565b6001600160a01b039081168a52998a1660208a019081529051945195519751604051919a9198908216979682169695821695911661015a89610487565b8852602088019687525192519151905160405190936001600160a01b039384169316608082016001600160401b0381118382101761046f5760405281526020810192835260408101918252606081019384526040516101ba6040826104a2565b600f815260208101906e2ab734bb32b939b0b62937baba32b960891b8252604051916101e76040846104a2565b600183526020830191601960f91b8352610200816104d9565b6101205261020d8461066f565b61014052519020918260e05251902080610100524660a0526040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261027660c0826104a2565b5190206080523060c052516001600160a01b0390811661016052905161018052905181166101a05290516101c0526101e091909152610200919091529051811661022052905181166102405290518116610260529051811661028052166102a052604051615ac190816107a8823960805181613dda015260a05181613e97015260c05181613da4015260e05181613e2901526101005181613e4f015261012051816104fc01526101405181610528015261016051818181612c3401528181612db00152613a3b015261018051818181612c5501528181612d8f0152613a1a01526101a05181611d7c01526101c05181611d5a01526101e0518181816105ee015281816107df01528181611213015281816117e001528181612721015281816144bf015281816147b2015281816148bd0152818161507e0152818161546d01526156020152610200518181816106b501528181610ddf01528181610e7001528181614530015281816146dd01528181615197015281816157780152615944015261022051818181611797015281816129c70152612b07015261024051818181610d37015281816128e401528181613192015261563801526102605181818161045e01528181611187015261252f015261028051818181610756015261127201526102a05181818161041a0152818161223301526123470152f35b634e487b7160e01b5f52604160045260245ffd5b5f80fd5b604081019081106001600160401b0382111761046f57604052565b601f909101601f19168101906001600160401b0382119082101761046f57604052565b51906001600160a01b038216820361048357565b908151602081105f14610553575090601f815111610513576020815191015160208210610504571790565b5f198260200360031b1b161790565b604460209160405192839163305a27a960e01b83528160048401528051918291826024860152018484015e5f828201840152601f01601f19168101030190fd5b6001600160401b03811161046f575f54600181811c91168015610665575b602082101461065157601f811161061f575b50602092601f82116001146105c057928192935f926105b5575b50508160011b915f199060031b1c1916175f5560ff90565b015190505f8061059d565b601f198216935f8052805f20915f5b86811061060757508360019596106105ef575b505050811b015f5560ff90565b01515f1960f88460031b161c191690555f80806105e2565b919260206001819286850151815501940192016105cf565b5f8052601f60205f20910160051c810190601f830160051c015b8181106106465750610583565b5f8155600101610639565b634e487b7160e01b5f52602260045260245ffd5b90607f1690610571565b908151602081105f1461069a575090601f815111610513576020815191015160208210610504571790565b6001600160401b03811161046f57600154600181811c9116801561079d575b602082101461065157601f811161076a575b50602092601f821160011461070957928192935f926106fe575b50508160011b915f199060031b1c19161760015560ff90565b015190505f806106e5565b601f1982169360015f52805f20915f5b868110610752575083600195961061073a575b505050811b0160015560ff90565b01515f1960f88460031b161c191690555f808061072c565b91926020600181928685015181550194019201610719565b60015f52601f60205f20910160051c810190601f830160051c015b81811061079257506106cb565b5f8155600101610785565b90607f16906106b956fe60806040526004361015610022575b3615610018575f80fd5b610020611794565b005b5f3560e01c80631a27b2011461010157806324856bc3146100fc5780633593564c146100f757806344684dc3146100f25780638021fef7146100ed578063817122dc146100e857806384b0196e146100e357806391dd7346146100de578063ab769d37146100d9578063d04d79a2146100d4578063d0c9f6cb146100cf578063d737d0c7146100ca578063dc4c90d3146100c55763fa461e330361000e5761080e565b6107ca565b610798565b610741565b6106e4565b6106a0565b6105bc565b6104e4565b610449565b610405565b61036a565b6102a9565b6101f8565b61014d565b6001600160a01b031690565b6001600160a01b0381160361012357565b5f80fd5b359061013282610112565b565b6001600160a01b03165f90815260026020526040902090565b346101235760403660031901126101235760043561016a81610112565b6024359060018060a01b03165f52600260205260405f20905f52602052602060ff60405f2054166040519015158152f35b9181601f84011215610123578235916001600160401b038311610123576020838186019501011161012357565b9181601f84011215610123578235916001600160401b038311610123576020808501948460051b01011161012357565b6040366003190112610123576004356001600160401b0381116101235761022390369060040161019b565b6024356001600160401b038111610123576102429036906004016101c8565b913330146102a0575f80516020615a158339815191525c6001600160a01b03166102915761027f93335f80516020615a158339815191525d610b4e565b5f5f80516020615a158339815191525d005b6337affdbf60e11b5f5260045ffd5b61002093610b4e565b6060366003190112610123576004356001600160401b038111610123576102d490369060040161019b565b6024356001600160401b038111610123576102f39036906004016101c8565b916044354211610339573330146102a0575f80516020615a158339815191525c6001600160a01b03166102915761027f93335f80516020615a158339815191525d610b4e565b632dfb7c8b60e11b5f5260045ffd5b8015150361012357565b6084359061013282610348565b359061013282610348565b610100366003190112610123576004356001600160401b0381116101235761039690369060040161019b565b906024356001600160401b038111610123576103b69036906004016101c8565b926044356064356103c5610352565b9060a43560c435979093906001600160401b038911610123576103ef61002099369060040161019b565b97909660e4359961132d565b5f91031261012357565b34610123575f366003190112610123576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610123575f366003190112610123576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b90602080835192838152019201905f5b8181106104ce5750505090565b82518452602093840193909201916001016104c1565b34610123575f366003190112610123576105766105207f00000000000000000000000000000000000000000000000000000000000000006134cb565b6105a461054c7f00000000000000000000000000000000000000000000000000000000000000006135ae565b610584610557611598565b91604051958695600f60f81b875260e0602088015260e087019061048d565b90858203604087015261048d565b904660608501523060808501525f60a085015283820360c08501526104b1565b0390f35b9060206105b992818152019061048d565b90565b34610123576020366003190112610123576004356001600160401b038111610123576105ec90369060040161019b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036106915761062591613666565b90818303610682575f5b838110610656576105a4604051610647602082611530565b5f8152604051918291826105a8565b8061067c6106676001938789610ad9565b3560f81c610676838787610b1c565b91613fcf565b0161062f565b63aaad13f760e01b5f5260045ffd5b63570c108560e11b5f5260045ffd5b34610123575f366003190112610123576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610123575f36600319011261012357604080516001600160a01b035f80516020615a958339815191525c1681525f80516020615a558339815191525c60208201525f80516020615a758339815191525c91810191909152606090f35b34610123575f366003190112610123576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b6001600160a01b03909116815260200190565b34610123575f366003190112610123576040516001600160a01b035f80516020615a158339815191525c168152602090f35b34610123575f366003190112610123576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610123576060366003190112610123576024356004356044356001600160401b0381116101235761084490369060040161019b565b92905f831392831580610a61575b610a5257610899926108819161086a8785018561166b565b90996001600160a01b039092169690959250611c04565b92909161088e84846136fe565b999198908a8a611cf0565b336001600160a01b0390911603610a43578015610a2a5790978891906001600160a01b03818116908a16105b156108dd575050505050505061002093503391611dc4565b909192939495989997506108f2866042111590565b1561099e57508651610944575b5050509461092361091661091e9361002098611e31565b939092611e47565b6116ed565b94801561093c5761093390611779565b945b3390611ee3565b505f94610935565b61095d610967938a93610962935f1461099757506116ed565b611702565b611739565b6109718686611757565b5180821061097f57806108ff565b631c1763d160e11b5f5261099492508661176b565b5ffd5b90506116ed565b969450909192505f80516020615a358339815191529796975c8711610a1b5783516109d4575b5050505061002093503391611dc4565b8661096261095d6109f7958b956109f1955f1461099757506116ed565b92611757565b51808210610a065780806109c4565b631c1763d160e11b5f5261099492508561176b565b6339cedf2960e11b5f5260045ffd5b91978892906001600160a01b03898116908216106108c5565b6332b13d9160e01b5f5260045ffd5b63316cf0eb60e01b5f5260045ffd5b505f831315610852565b929190333014610abc575f80516020615a158339815191525c6001600160a01b031661029157610aaa93335f80516020615a158339815191525d610b4e565b5f5f80516020615a158339815191525d565b61013293610b4e565b634e487b7160e01b5f52603260045260245ffd5b90821015610ae5570190565b610ac5565b903590601e198136030182121561012357018035906001600160401b0382116101235760200191813603831361012357565b90821015610ae557610b339160051b810190610aea565b9091565b6040906105b993928152816020820152019061048d565b90939284810361131e575f5b858110610b6957505050509050565b610b74818785610ad9565b35610b80828487610b1c565b6060929160019160f884901c607f1660218110156112a557601081101561113f576008811015610f265780610c495750610bca82610bc183610bfc95611c8f565b92909382612806565b92909360808301355f14610c4257610be0611bf2565b925b604081013590610bf760208201359135612984565b6132cf565b159081610c33575b50610c125750600101610b5a565b604051632c4029e960e01b8152918291610c2f9160048401610b37565b0390fd5b600160ff1b161590505f610c04565b3092610be2565b60018103610ca15750610c6382610bc183610c9595611c8f565b92909360808301355f14610c9a57610c79611bf2565b925b604081013590610c9060208201359135612984565b613200565b610bfc565b3092610c7b565b60028103610cd2575050610c9590610cb7611bf2565b90604081013591610ccb6020830135612984565b913561318d565b9192909160038103610d705750505f92935090610d32610cf3849383611c64565b610d24610d01939293611bf2565b916040519485936020850197632a2d80d160e01b89528035019060248601611aab565b03601f198101835282611530565b5190827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af190610d6a6118d5565b91610bfc565b9092915060048103610e9f575080356001600160a01b038116151580610e6d575b610dbc575b81610da76020610c95940135612984565b6040909101356001600160a01b0316916130c3565b6040516312f7fd6760e11b81529160208380610ddb8560048301610785565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa8015610e6857610c95935f91610e3a575b506001600160a01b038116610e32575b509150610d96565b91505f610e2a565b610e5b915060203d8111610e61575b610e538183611530565b810190611a96565b5f610e1a565b503d610e49565b6119cb565b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161515610d91565b60058103610ec65750806040610c9592013590610ebf6020820135612984565b9035613038565b60068103610eed5750806040610c9592013590610ee66020820135612984565b9035612fc2565b60078103610f145750806040610c9592013590610f0d6020820135612984565b9035612f08565b636bb50f4f60e11b5f5260045260245ffd5b90919060088103610f8657508181610f44610c9594610f4d946127e6565b93909282612806565b92909360808301355f14610f7f57610f63611bf2565b925b604081013590610f7a60208201359135612984565b612d53565b3092610f65565b60098103610fda57508181610f44610c9594610fa1946127e6565b92909360808301355f14610fd357610fb7611bf2565b925b604081013590610fce60208201359135612984565b612c11565b3092610fb9565b909290600a81036110275750505f92935081610ffa610d32928594611c39565b929091610d24611008611bf2565b9460405194859360208501976302b67b5760e41b895260248601611a48565b909290600b810361104c5750610c95915061104760208201359135612984565b612aec565b600c810361106e5750610c95915061106960208201359135612984565b6129b6565b600d81036110935750610c9591611084916127c9565b9061108d611bf2565b916128d5565b9092509050600e8103610f1457506040516370a0823160e01b815290602082806110c1843560048301610785565b0381848401356001600160a01b03165afa918215610e68575f9261110c575b5060400135111580610c95576040516351940b3960e11b6020820152909250610d6a8160248101610d24565b60409192506111319060203d8111611138575b6111298183611530565b8101906119bc565b91906110e0565b503d61111f565b90919060108103611155575090610c95916126f3565b93945092909150601181036111ba57505f91908161117384936126d7565b61118260405180938193611904565b0390827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af190610d6a6118d5565b601281036111d957505f919082916111736111d3611bf2565b826124e0565b601381036112465750505f809160405161120e81610d24602082019463313b65df60e11b865260a08101359060248401611929565b5190827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af190610d6a6118d5565b60148103610f1457505f91829161125d8183612401565b479161126e60405180938193611904565b03917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af190610d6a6118d5565b939490939192604083101561130457505060218103610f1457506112f5610d246112d15f948594613666565b60409593959491945194859360208501976324856bc360e01b89526024860161182f565b519082305af190610d6a6118d5565b9290949391604081145f14610f14575090610c9591612201565b631fec674760e31b5f5260045ffd5b95909698929a999791978042116103395761134a8c9a9b9c611b61565b5f5b8b81106114cb5750868661140b61141b958f611421999896610d24918f8f61139a906114139a60405161138781610d24602082018095611b93565b51902096156114c45733925b36916115ce565b6020815191012097604051978896602088019a8b93909796959260e095926101008601997f4b503a2e339bf072a489301f3eec7abaefc520266c462796ed9267bbcc6e407c8752602087015260408601526060850152608084015260018060a01b031660a083015260c08201520152565b51902061348f565b9236916115ce565b906134b5565b60018801611469575b61146197505f80516020615a958339815191525d5f80516020615a558339815191525d5f80516020615a758339815191525d610a6b565b610132611bc0565b61148d6114868961147984610134565b905f5260205260405f2090565b5460ff1690565b6114b6576114b16114a46114619961147984610134565b805460ff19166001179055565b61142a565b623f613760e71b5f5260045ffd5b5f92611393565b806114e08d9f9e9d600193611393918f610b1c565b602081519101206114f18285611757565b52019c9a9b9c61134c565b634e487b7160e01b5f52604160045260245ffd5b60a081019081106001600160401b0382111761152b57604052565b6114fc565b601f909101601f19168101906001600160401b0382119082101761152b57604052565b604051906101326101a083611530565b60405190610132606083611530565b6040519061013260a083611530565b6001600160401b03811161152b5760051b60200190565b604051906115a7602083611530565b5f808352366020840137565b6001600160401b03811161152b57601f01601f191660200190565b9291926115da826115b3565b916115e86040519384611530565b829481845281830111610123578281602093845f960137010152565b9080601f83011215610123578160206105b9933591016115ce565b92919061162b81611581565b936116396040519586611530565b602085838152019160051b810192831161012357905b82821061165b57505050565b813581526020918201910161164f565b6080818303126101235780356001600160401b0381116101235782611691918301611604565b9260208201356116a081610112565b9260408301356001600160401b03811161012357830181601f82011215610123576060918160206116d39335910161161f565b92013590565b634e487b7160e01b5f52601160045260245ffd5b600160ff1b81146116fd575f0390565b6116d9565b6a0c097ce7bc90715b34b9f160241b8082029291801590840490911417156116fd57565b818102929181159184041417156116fd57565b8115611743570490565b634e487b7160e01b5f52601260045260245ffd5b8051821015610ae55760209160051b010190565b600452602452604452606490565b5f198101919082116116fd57565b919082039182116116fd57565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161415806117dc575b6117cd57565b631c5deabb60e11b5f5260045ffd5b50337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614156117c7565b908060209392818452848401375f828201840152601f01601f1916010190565b9391906118449160408652604086019161180f565b926020818503910152808352602083019060208160051b85010193835f91601e1982360301905b84841061187c575050505050505090565b90919293949596601f19828203018752873583811215610123578401602081019190356001600160401b038111610123578036038313610123576118c6602092839260019561180f565b9901970195940192919061186b565b3d156118ff573d906118e6826115b3565b916118f46040519384611530565b82523d5f602084013e565b606090565b908092918237015f815290565b62ffffff81160361012357565b8060020b0361012357565b90929160a0906119b0608060c0850196803561194481610112565b600180871b03168652602081013561195b81610112565b600180871b0316602087015262ffffff604082013561197981611911565b166040870152606081013561198d8161191e565b60020b606087015201356119a081610112565b6001600160a01b03166080850152565b600180831b0316910152565b90816020910312610123575190565b6040513d5f823e3d90fd5b359065ffffffffffff8216820361012357565b65ffffffffffff611a42606080938035611a0281610112565b6001600160a01b031686526020810135611a1b81610112565b6001600160a01b0316602087015283611a36604083016119d6565b166040870152016119d6565b16910152565b60a06105b9959361010093600180841b03168352611a6960208401826119e9565b6080810135611a7781610112565b600180841b031682840152013560c08201528160e0820152019161180f565b9081602091031261012357516105b981610112565b6001600160a01b0390911681526060602082015290939260c08201929091853536879003601e190181121561012357860160208101949035906001600160401b038211610123578160071b360386136101235781906060808501525260e0820194905f5b818110611b4357505050604086611b2f6119a060206105b9999a01610127565b013560a0820152604081850391015261180f565b90919560808082611b566001948b6119e9565b019701929101611b0f565b90611b6b82611581565b611b786040519182611530565b8281528092611b89601f1991611581565b0190602036910137565b80516020909101905f5b818110611baa5750505090565b8251845260209384019390920191600101611b9d565b5f5f80516020615a958339815191525d5f5f80516020615a558339815191525d5f5f80516020615a758339815191525d565b5f80516020615a158339815191525c90565b909163ffffffff82351682019263ffffffff84351692602080860195850101910110611c2c57565b633b99b53d5f526004601cfd5b909163ffffffff60c08301351682019263ffffffff84351692602080860195850101910110611c2c57565b909163ffffffff60208301351682019263ffffffff84351692602080860195850101910110611c2c57565b909163ffffffff60608301351682019263ffffffff84351692602080860195850101910110611c2c57565b6001600160f81b0319815260609190911b6001600160601b03191660018201526015810191909152603581019190915260550190565b6105b992611da992906001600160a01b0380831690841611611dae575b604080516001600160a01b0394851660208201908152949093169083015262ffffff166060808301919091528152611d46608082611530565b519020604051611da181610d2460208201947f0000000000000000000000000000000000000000000000000000000000000000907f000000000000000000000000000000000000000000000000000000000000000087611cba565b519020610106565b610106565b909190611d0d565b90601482018092116116fd57565b909291906001600160a01b0384163003611de2576101329350613038565b91926001600160a01b038411611e0557610132936001600160a01b03169261318d565b63c4bd89a960e01b5f5260045ffd5b909291928360041161012357831161012357600401916003190190565b9190918260171161012357601701916016190190565b600160ff1b8110156101235790565b959493611e7260609492611e8f9460808a5260808a019161180f565b6001600160a01b03909216602088015286820360408801526104b1565b930152565b9190826040910312610123576020825192015190565b6001600160a01b039182168152911515602083015260408201929092529116606082015260a0608082018190526105b99291019061048d565b92919395949094611ef483866136fe565b6001600160a01b038084169082161098899590939092611f15929091611cf0565b611f1e90610106565b611f2790610106565b94845f14604098610d245f96611f7195611f5594611fb9576401000276a49e5b8d5196879560208701611e56565b8751630251596160e31b8152998a978896879560048701611eaa565b03925af18015610e68575f925f91611f8857509192565b9050611fad91925060403d604011611fb2575b611fa58183611530565b810190611e94565b919092565b503d611f9b565b73fffd8963efd1fc6a506488495d951d5263988d259e611f47565b91939490611fe284866136fe565b6001600160a01b038082169084161097889490939092612003929091611cf0565b61200c90610106565b61201590610106565b93835f1496611f555f94610d2486611f719560409c611fb9576401000276a49e8d5196879560208701611e56565b63ffffffff81160361012357565b359061013282612043565b602081830312610123578035906001600160401b03821161012357016101a0818303126101235761208b611553565b9161209582610127565b83526120a360208301610127565b60208401526120b460408301610127565b60408401526120c560608301610127565b60608401526080820135608084015260a082013560a084015260c082013560c08401526120f460e08301610127565b60e08401526121066101008301612051565b6101008401526121196101208301612051565b61012084015261212c6101408301612051565b610140840152610160820135916001600160401b0383116101235761215961018092612165948301611604565b6101608501520161035f565b61018082015290565b6001600160a01b039182168152918116602083015291821660408201529181166060830152608082019290925260a081019290925260c0820192909252911660e08201526105b994936101809391926121f3926121e5916121d79063ffffffff16610100870152565b63ffffffff16610120850152565b63ffffffff16610140830152565b81610160820152019061048d565b61220d9181019061205c565b6080810151905f600160ff1b831461237a575b61018082015115612330575081905b80517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316929061226690610106565b6122736020840151610106565b6122806040850151610106565b9161228e6060860151610106565b9460a08101519060c08101516122a760e0830151610106565b61010083015163ffffffff16906122c661012085015163ffffffff1690565b926101606122dc61014087015163ffffffff1690565b950151958c3b1561012357604051633dc9c91960e11b81529d8e9c8d9b8c9b6123089b60048e0161216e565b03915a945f95f18015610e685761231c5750565b8061232a5f61013293611530565b806103fb565b9061237583612345611da96040850151610106565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690613730565b61222f565b915061238a610180820151151590565b15612396574791612220565b6123a9611da9611da96040840151610106565b602060405180926370a0823160e01b825281806123c93060048301610785565b03915afa908115610e68575f916123e2575b5091612220565b6123fb915060203d602011611138576111298183611530565b5f6123db565b80356322b9af7160e01b6001600160e01b03198216016124c4575061242d826124339361242d93611e14565b90611c04565b5f5b81811061244157505050565b61246f612469612463612455848688610ad9565b356001600160f81b03191690565b60f81c90565b60ff1690565b80159081156124b9575b81156124ae575b81156124a3575b5061249457600101612435565b635d1d0f9f60e01b5f5260045ffd5b60039150145f612487565b600181149150612480565b600481149150612479565b63f801e52560e01b5f526001600160e01b03191660045260245ffd5b80356001600160e01b031916630624e65f60e11b811480156126c7575b80156126b7575b156126a557506040516331a9108f60e11b815260049182013591810182905290916001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690602083602481855afa928315610e68575f93612684575b506001600160a01b03818116908416811492908315612624575b5082156125a8575b50501590505b6125965750565b63bb25d4c560e01b5f5260045260245ffd5b60405163e985e9c560e01b81526001600160a01b0394851660048201529190931660248201529160209150829060449082905afa8015610e685761258f915f916125f5575b505f80612589565b612617915060203d60201161261d575b61260f8183611530565b810190612abc565b5f6125ed565b503d612605565b60405163020604bf60e21b81526004810187905291935090602081602481875afa908115610e68575f91612665575b506001600160a01b031614915f612581565b61267e915060203d602011610e6157610e538183611530565b5f612653565b61269e91935060203d602011610e6157610e538183611530565b915f612567565b63f801e52560e01b5f5260045260245ffd5b50630852cd8d60e31b8114612504565b5063fc6f786560e01b81146124fd565b356001600160e01b03191663853d008560e01b81016126a55750565b6040516348c8949160e01b815260206004820152915f918391829161271c91602484019161180f565b0381837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af18015610e68576127585750565b3d805f833e6127678183611530565b810190602081830312610123578051906001600160401b038211610123570181601f8201121561012357805161279c816115b3565b926127aa6040519485611530565b81845260208284010111610123575f928160208094018483015e010152565b918235830191602083359481850194038560051b010111611c2c57565b916060830135830191602083359481850194038560051b010111611c2c57565b9160a0830135830191602083359481850194038560051b010111611c2c57565b9190811015610ae55760071b0190565b356105b981610112565b60208082528101839052604001915f5b81811061285d5750505090565b909192608080600192863561287181610112565b848060a01b03168152602087013561288881610112565b848060a01b0316602082015260408701356128a281610112565b848060a01b0316604082015260608701356128bc81610112565b848060a01b031660608201520194019101919091612850565b90915f5b8381106129485750507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691823b1561012357612937925f9283604051809681958294630d58b1db60e01b845260048401612840565b03925af18015610e685761231c5750565b61295b612956828686612826565b612836565b6001600160a01b03838116911603612975576001016128d9565b63e700287760e01b5f5260045ffd5b6001600160a01b038116600181036129aa5750505f80516020615a158339815191525c90565b6002036105b957503090565b6040516370a0823160e01b815290917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169060208380612a013060048301610785565b0381855afa928315610e68575f93612a9b575b508210612a8c5781612a2557505050565b803b1561012357604051632e1a7d4d60e01b815260048101839052905f908290602490829084905af18015610e6857612a78575b50306001600160a01b03831603612a6f575b5050565b6101329161381f565b8061232a5f612a8693611530565b5f612a59565b631a84bc4160e21b5f5260045ffd5b612ab591935060203d602011611138576111298183611530565b915f612a14565b9081602091031261012357516105b981610348565b6001600160a01b039091168152602081019190915260400190565b90600160ff1b8103612bd1575047905b81612b05575050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691823b1561012357604051630d0e30db60e41b81525f8160048185885af18015610e6857612bbd575b50306001600160a01b03831603612b6f575b505050565b612b93926020925f60405180968195829463a9059cbb60e01b845260048401612ad1565b03925af18015610e6857612ba5575b50565b612ba29060203d60201161261d5761260f8183611530565b8061232a5f612bcb93611530565b5f612b58565b9047821115612afc57631a84bc4160e21b5f5260045ffd5b9015610ae55790565b9060011015610ae55760200190565b9190811015610ae55760051b0190565b9290939196959460028310612d445786151580612d30575b612d215793965f94907f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000005f1986018681116116fd579190825b612cbf575050508811612cb0576101329785612cab92612ca66129568787612be9565b611dc4565b6138d7565b6345585e0b60e11b5f5260045ffd5b919a9750905f198b018b81116116fd57612d088c612cf6612ce4612d0f948b8b612c01565b3591612cef83610112565b8a8a612c01565b3590612d0182610112565b8486614214565b919a6142a8565b9a80156116fd575f1901919082612c83565b630c12651d60e31b5f5260045ffd5b505f1983018381116116fd57871415612c29565b632b94ab4360e21b5f5260045ffd5b9294969095919660028510612d445781151580612ef6575b612d2157612dd4612d7f6129568789612be9565b612d8c612956888a612bf2565b907f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000613cc1565b968781612edd575b505050612dfb611da9611da9612956612df488611779565b888a612c01565b91604051966370a0823160e01b885260208880612e1b8860048301610785565b0381875afa958615610e6857612e5f985f97612eaf575b509085612e44949392602098996138d7565b60405180809681946370a0823160e01b835260048301610785565b03915afa8015610e6857612e7a925f91612e90575b50611787565b10612e8157565b631093d5f360e31b5f5260045ffd5b612ea9915060203d602011611138576111298183611530565b5f612e74565b60209750612e4494939291612ed188928a3d8c11611138576111298183611530565b98509192939450612e32565b612eee92612ca6612956898b612be9565b5f8087612ddc565b50612f0085611779565b821415612d6b565b670de0b6b3a76400008311612fb3576001600160a01b031680612f4a5750612f44612f366101329347611726565b670de0b6b3a7640000900490565b9061381f565b906040516370a0823160e01b815260208180612f693060048301610785565b0381865afa908115610e685761013294612f8e92612f36925f91612f94575b50611726565b91613cd8565b612fad915060203d602011611138576111298183611530565b5f612f88565b6390f5ebeb60e01b5f5260045ffd5b6001600160a01b031680612fde5750612f446101329247613d47565b6040516370a0823160e01b8152306004820152909190602081602481865afa938415610e685761013294612f8e925f91613019575b50613d47565b613032915060203d602011611138576111298183611530565b5f613013565b9091906001600160a01b03168061305357506101329161381f565b600160ff1b8214613069575b9161013292613cd8565b6040516370a0823160e01b815230600482015292909150602083602481855afa8015610e6857610132935f916130a4575b509190925061305f565b6130bd915060203d602011611138576111298183611530565b5f61309a565b9091906001600160a01b0316806130e6575047908110612a8c5780612a6f575050565b91604051916370a0823160e01b8352602083806131063060048301610785565b0381875afa928315610e68575f93613142575b508210613133578161312a57505050565b61013292613cd8565b630ceb95c760e31b5f5260045ffd5b61315c91935060203d602011611138576111298183611530565b915f613119565b6001600160a01b039182168152918116602083015291821660408201529116606082015260800190565b9290917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690813b15610123575f80946131e560405197889687958694631b63c28b60e11b865260048601613163565b03925af18015610e68576131f65750565b5f61013291611530565b9492909695939193861515806132a5575b6132965761322761322d9161325198369161161f565b94613d82565b8351801561328e5761323e90611779565b945b61324c61091e89611e47565b611ee3565b9091901561327f5750613263906116ed565b0361327057610132613d70565b636a70124760e11b5f5260045ffd5b61328991506116ed565b613263565b505f94613240565b630e0fbd8760e21b5f5260045ffd5b506132b96132b4601789611726565b611db6565b831415613211565b5f1981146116fd5760010190565b97939795909192949587151596878098613478575b613296578998600160ff1b851461340b575b909950879391965f92808b8a61330a611598565b9e8f9061335493613346935b61332a613324836042111590565b98611e47565b908815613401575061333e30925b8a613d93565b929091611fd4565b9091901561099757506116ed565b966133c6575b50156133a557309961336b91611e31565b9190978892809c879561337d906132c1565b9c8d956133549461333e613346959e50509c9e509495969290919e8f90928e9a95938e613316565b5050505093509350935050106133b757565b631ce9aa4b60e11b5f5260045ffd5b6133d39061096288611702565b6133de858588612c01565b358082106133ec575061335a565b632d0a7cdd60e21b5f5261099492508561176b565b61333e9092613338565b935097611da9611da961341e9289614419565b976020604051809a6370a0823160e01b8252818061343f3060048301610785565b03915afa8015610e68578a995f91613459575b50936132f6565b613472915060203d602011611138576111298183611530565b5f613452565b506134876132b460178b611726565b8a14156132e4565b60429061349a613da1565b906040519161190160f01b8352600283015260228201522090565b6105b9916134c291613ebd565b90929192613f15565b60ff81146134dc576105b990613f91565b506040515f80548060011c916001821680156135a4575b60208410811461359057838552849260208401919081156135775750600114613524575b506105b992500382611530565b5f80805291507f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b84831061356057506105b99350015f613517565b80548284015285935060209092019160010161354c565b60ff19168252506105b993151560051b0190505f613517565b634e487b7160e01b5f52602260045260245ffd5b92607f16926134f3565b60ff81146135bf576105b990613f91565b506040515f6001548060011c9160018216801561365c575b6020841081146135905783855284926020840191908115613577575060011461360757506105b992500382611530565b60015f90815291507fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b84831061364557506105b99350015f613517565b805482840152859350602090920191600101613631565b92607f16926135d7565b604081351891606082019363ffffffff6040840135169363ffffffe0601f8601169060608201602086013518179084019260608401359463ffffffff861694641fffffffe0608082019760051b1680915f925b8084106136d1575060809250010191011017611c2c57565b90916020809163ffffffe0601f60808089890101359b848d18179b880101350116010193019291906136b9565b90602b1161372157803591601762ffffff8460601c9460481c1692013560601c90565b633b99b53d60e01b5f5260045ffd5b919091613797604051926137688461375a602082019363095ea7b360e01b85528860248401612ad1565b03601f198101865285611530565b83516001600160a01b038416915f91829182855af1906137866118d5565b826137ed575b50816137e657501590565b6137a057505050565b60405163095ea7b360e01b60208201526001600160a01b0390931660248401525f6044840152610132926137e1906137db8160648101610d24565b826141a9565b6141a9565b3b15919050565b80519192508115918215613805575b5050905f61378c565b6138189250602080918301019101612abc565b5f806137fc565b5f80809381935af11561382e57565b60405162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b6044820152606490fd5b51906001600160701b038216820361012357565b908160609103126101235761389181613869565b9160406138a060208401613869565b9201516105b981612043565b90926080926105b995948352602083015260018060a01b03166040820152816060820152019061048d565b949392939190916139016138ee6129568589612be9565b6138fb612956868a612bf2565b90614323565b50915f19840195600119850191831515985f955b898710613929575050505050505050505050565b613937612956888a85612c01565b9361394961295660018a018b86612c01565b604051630240bc6b60e21b8152909590916001600160a01b038116606084600481845afa918215610e68576139c7945f905f94613c8d575b506001600160a01b03948516966001600160701b039485169516871493168315613c83579060209194965b60405180809881946370a0823160e01b835260048301610785565b03915afa978815610e68578f6139ef8f9a978f978e9988915f91613c65575b5003968761433a565b9315613c5d578c5f94965b8c821015613c4f57613a17612956613a5f9260028501908d612c01565b847f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000614395565b9890985b9b83613c39575b5050505f14613bd2576040516370a0823160e01b81526001600160a01b039190911694909260208480613aa08a60048301610785565b0381895afa938415610e68575f94613bb2575b50613abc611598565b92803b15610123575f92838993613ae96040519788968795869463022c0d9f60e01b8652600486016138ac565b03925af18015610e6857613b9e575b50602060405180946370a0823160e01b82528180613b198960048301610785565b03915afa908115610e6857613b47935f92613b7e575b5090036a0c097ce7bc90715b34b9f160241b02611739565b613b5288888c612c01565b35808210613b695750506001905b96019592613915565b6365d564a560e01b5f5261099492508861176b565b613b9791925060203d8111611138576111298183611530565b905f613b2f565b8061232a5f613bac93611530565b5f613af8565b613bcb91945060203d8111611138576111298183611530565b925f613ab3565b5093929150613bdf611598565b93803b15610123575f92838593613c0c6040519889968795869463022c0d9f60e01b8652600486016138ac565b03925af1918215610e6857600192613c25575b50613b60565b8061232a5f613c3393611530565b5f613c1f565b613c439350612c01565b3515158c8f8d90613a6a565b5050955087958c8c5f613a63565b8c5f966139fa565b613c7d915060203d8111611138576111298183611530565b5f6139e6565b95602091906139ac565b9050613cb191935060603d8111613cba575b613ca98183611530565b81019061387d565b5092905f613981565b503d613c9f565b90916105b993613cd091614323565b9290916143a6565b5f91826044926020956040519363a9059cbb60e01b8552600485015260248401525af13d15601f3d1160015f511416171615613d1057565b60405162461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b6044820152606490fd5b6127108211613d615761271091613d5d91611726565b0490565b636f5500f360e11b5f5260045ffd5b5f5f80516020615a358339815191525d565b5f80516020615a358339815191525d565b90602b116101235790602b90565b307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161480613e94575b15613dfc577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a08152613e8e60c082611530565b51902090565b507f00000000000000000000000000000000000000000000000000000000000000004614613dd3565b8151919060418303613eed57613ee69250602082015190606060408401519301515f1a90614428565b9192909190565b50505f9160029190565b60041115613f0157565b634e487b7160e01b5f52602160045260245ffd5b613f1e81613ef7565b80613f27575050565b613f3081613ef7565b60018103613f475763f645eedf60e01b5f5260045ffd5b613f5081613ef7565b60028103613f6b575063fce698f760e01b5f5260045260245ffd5b80613f77600392613ef7565b14613f7f5750565b6335e2f38360e21b5f5260045260245ffd5b60ff811690601f8211613fc05760405191613fad604084611530565b6020808452838101919036833783525290565b632cd44ac360e21b5f5260045ffd5b909190600b8110156140635760078103613ff65750613ff19061013292614b43565b614e86565b60068103614011575061400c9061013292614913565b614d65565b6009810361402c57506140279061013292614b43565b614ba8565b916008831461404f57505061099491505b635cda29d760e01b5f52600452602490565b61013292509061405e91614913565b6149ca565b600c81036140b25750614075916148a3565b9061407f816148b6565b9180831161409b57509061013291614095611bf2565b906147a9565b6312bacdd360e01b5f52600452602482905260445ffd5b600f810361410157506140c4916148a3565b906140ce816144b8565b918083106140ea575090610132916140e4611bf2565b9061452c565b638b063d7360e01b5f52600452602482905260445ffd5b600b8103614135575061412f61411d61412992610132946144a0565b938294939291936146bf565b926146da565b916147a9565b600e8103614167575061415b61415161416192610132946144a0565b9282949291612984565b926146ab565b9161452c565b916010831461417c575050610994915061403d565b610132925061419161419a92614161926144a0565b92919390612984565b916141a4846144b8565b613d47565b5f806141d19260018060a01b03169360208151910182865af16141ca6118d5565b90836157e1565b80519081151591826141f9575b50506141e75750565b635274afe760e01b5f5260045260245ffd5b61420c9250602080918301019101612abc565b155f806141de565b9193929061422561422d9286614323565b9181946143a6565b604051630240bc6b60e21b815290936060826004816001600160a01b0389165afa918215610e68575f905f93614283575b506001600160701b03928316939216916001600160a01b03918216911603610b335791565b905061429f91925060603d606011613cba57613ca98183611530565b5091905f61425e565b908015801561431b575b61430c57816142c091611726565b916103e88302928084046103e814901517156116fd57818103918183116116fd576103e583029283046103e514911417156116fd576142fe91611739565b600181018091116116fd5790565b633dce448b60e11b5f5260045ffd5b5082156142b2565b6001600160a01b038281169082161015610b335791565b81159283801561438d575b61430c576103e58202918083046103e514901517156116fd576143689082611726565b926103e883029283046103e81417156116fd5781018091116116fd576105b991611739565b508015614345565b92614225906143a393614323565b91565b6040516001600160601b0319606094851b8116602083019081529590941b9093166034840152602883529092909161440991906143e4604882611530565b5190206143fb604051948592602084019586611cba565b03601f198101845283611530565b905190206001600160a01b031690565b90601411613721573560601c90565b91906fa2a8918ca85bafe22016d0b997e4df60600160ff1b038411614495579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15610e68575f516001600160a01b0381161561448b57905f905f90565b505f906001905f90565b5050505f9160039190565b90606011611c2c578035916040602083013592013590565b6144e381307f0000000000000000000000000000000000000000000000000000000000000000614ff9565b905f82126144ef575090565b634c085bf160e01b5f9081526001600160a01b0391909116600452602490fd5b6001600160a01b039091168152600160f01b602082015260400190565b91907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168061464957505f5b6001600160a01b0316614577575b61013292615075565b60405163aeb5556960e01b81526001600160a01b03841690602081600481855afa908115610e68575f9161462a575b501561461b5760206145d6916145ba611bf2565b90604051808095819463f493cec360e01b83526004830161450f565b03915afa908115610e68575f916145fc575b5061456e575b6282b42960e81b5f5260045ffd5b614615915060203d60201161261d5761260f8183611530565b5f6145e8565b63888f378560e01b5f5260045ffd5b614643915060203d60201161261d5761260f8183611530565b5f6145a6565b6040516312f7fd6760e11b815290602090829081806146746001600160a01b038a1660048301610785565b03915afa908115610e68575f9161468c575b50614560565b6146a5915060203d602011610e6157610e538183611530565b5f614686565b90816146bb576105b991506144b8565b5090565b156146d6575f80516020615a158339815191525c90565b3090565b907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168061474757505f5b6001600160a01b03169182158015614739575b61472f5750506105b99061512f565b6105b9925061510a565b50600160ff1b811415614720565b6040516312f7fd6760e11b815290602090829081806147726001600160a01b03881660048301610785565b03915afa908115610e68575f9161478a575b5061470d565b6147a3915060203d602011610e6157610e538183611530565b5f614784565b908215612b6a577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691823b1561012357604051632961046560e21b81525f81806147ff8560048301610785565b038183885af18015610e685761488f575b506001600160a01b03811661485e575050602090600460405180948193630476982d60e21b83525af18015610e68576148465750565b612ba29060203d602011611138576111298183611530565b5f936020939261486d92615195565b600460405180948193630476982d60e21b83525af18015610e68576148465750565b8061232a5f61489d93611530565b5f614810565b9190604011611c2c576020823592013590565b6148e181307f0000000000000000000000000000000000000000000000000000000000000000614ff9565b905f82136148f357506105b9906116ed565b63019a8d9360e51b5f9081526001600160a01b0391909116600452602490fd5b9061016011611c2c5780350190565b356001600160801b03811681036101235790565b356105b981610348565b91908260a09103126101235760405161495881611510565b6080808294803561496881610112565b8452602081013561497881610112565b6020850152604081013561498b81611911565b6040850152606081013561499e8161191e565b60608501520135916149af83610112565b0152565b6001600160801b0390811660045216602452604490565b6149d660c08201614922565b6001600160801b03811615614b01575b60a08201906149f482614936565b6001600160801b0382169290614a26908490614a14610120880188610aea565b929091614a21368a614940565b61540a565b91614a39614a3383614936565b846154c3565b6001600160801b038116949091908510614aed57505090614a5c614a6292614936565b906154eb565b9160e0810192614a80614a7485614922565b6001600160801b031690565b6001600160801b03821694908511614ad157505061010001359182614aa457505050565b610962614ab092611702565b90808210614abc575050565b63efc8d8eb60e01b5f5260045260245260445ffd5b90614ade61099492614922565b6312bacdd360e01b5f526149b3565b630686776b60e31b5f5261099492506149b3565b50614b0e60a08201614936565b15614b3457614b2f614b2a614b2560208401612836565b6148b6565b61535e565b6149e6565b614b2f614b2a614b2583612836565b9060e011611c2c5780350190565b903590601e198136030182121561012357018035906001600160401b03821161012357602001918160051b3603831361012357565b9190811015610ae55760051b81013590609e1981360301821215610123570190565b906020820191614bb88382614b51565b5f929150614bc860608301614922565b90614bd283612836565b906001600160801b03831615614d51575b6040840181614bf28287614b51565b801515948592509082614d46575b5050614d37579193825b614c3957505050505060809192935001614c26614a7482614922565b6001600160801b03831611614ad1575050565b614c5d919293949650614c64614c4f8a88614b51565b5f1987019491859190614b86565b9586615521565b6001600160801b03831692901591614c8e90839085614c8660808c018c610aea565b93909261540a565b90614c9983836154c3565b6001600160801b038116949091908510614aed5750508894939291614cbd916154eb565b97614cdb575b5050614ccf8694612836565b925f1901919382614c0a565b614cff906001600160801b038916906a0c097ce7bc90715b34b9f160241b02611739565b90614d1481614d0e858a614b51565b90612c01565b3590818310614d235750614cc3565b63e651804360e01b5f52610994935061176b565b63115eb5b360e31b5f5260045ffd5b14159050815f614c00565b9150614d5f614b2a826148b6565b91614be3565b614d7160c08201614922565b906001600160801b03821615614e47575b614dc860a08201614dc2614dbc614d9883614936565b6001600160801b0390961695614dad876116ed565b90614a14610120880188610aea565b91614936565b906154c3565b9060e0810191614dda614a7484614922565b6001600160801b03821693908410614e2b57505061010001359182614dfe57505050565b610962614e0a92611702565b90808210614e16575050565b634713c18b60e01b5f5260045260245260445ffd5b90614e3861099492614922565b638b063d7360e01b5f526149b3565b9050614e5560a08201614936565b15614e7457614e6e614b2a614e6983612836565b6144b8565b90614d82565b614e6e614b2a614e6960208401612836565b6020810190614e958282614b51565b5f93915080614ea384612836565b92614eb060608601614922565b6001600160801b03811615614fe7575b6040860191614ecf8388614b51565b801515958692509082614fdc575b5050614d37575f9591949395945b848610614f1b5750505050505050608001614f08614a7482614922565b6001600160801b03831610614e2b575050565b869850614f6a614f65614f3f614c5d89614f39878e9d9b9c9d614b51565b90614b86565b6001600160801b03909416939190614f5a6080880188610aea565b9184875f039161540a565b6154c3565b98614f88575b506001614f7d8993612836565b960194939591614eeb565b614fab906001600160801b038a166a0c097ce7bc90715b34b9f160241b02611739565b614fb987614d0e868b614b51565b35808210614fc75750614f70565b63a9b7edf760e01b5f5261099492508761176b565b14159050855f614edd565b50614ff4614b2a856144b8565b614ec0565b6001600160a01b039182165f9081529282166020908152604093849020935163789add5560e11b815260048101949094529183916024918391165afa908115610e68575f91615046575090565b90506020813d60201161506d575b8161506160209383611530565b81010312610123575190565b3d9150615054565b908215612b6a577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561012357604051630b0d9c0960e01b81526001600160a01b03938416600482015291909216602482015260448101929092525f908290606490829084905af18015610e68576150f55750565b806151015f8093611530565b80031261012357565b90600160ff1b8203615120576105b9915061512f565b816146bb576105b991506148b6565b6001600160a01b03811661514257504790565b6040516370a0823160e01b815230600482015290602090829060249082906001600160a01b03165afa908115610e68575f9161517c575090565b6105b9915060203d602011611138576111298183611530565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316806152fc57505f5b6001600160a01b0381169182156152ee5760405163aeb5556960e01b81526001600160a01b03919091169390602081600481885afa908115610e68575f916152cf575b501561461b57615237602061521d611bf2565b6040518093819263f493cec360e01b83526004830161450f565b0381885afa908115610e68575f916152b0575b50156145ee576001600160a01b03811630036152a3575050828261526d926156e5565b803b1561012357604051630934f6c760e21b815260048101929092525f908290602490829084905af18015610e685761231c5750565b610132949391925061562a565b6152c9915060203d60201161261d5761260f8183611530565b5f61524a565b6152e8915060203d60201161261d5761260f8183611530565b5f61520a565b9050610132939291506155f3565b6040516312f7fd6760e11b815290602090829081806153276001600160a01b03881660048301610785565b03915afa908115610e68575f9161533f575b506151c7565b615358915060203d602011610e6157610e538183611530565b5f615339565b6001600160801b038116919082900361537357565b6393dafdf160e01b5f5260045ffd5b6001600160a01b039091169052565b81516001600160a01b03908116825260208084015182168184015260408085015162ffffff168185015260608086015160020b908501526080948501518316948401949094528451151560a084015284015160c083015291909201511660e08201526105b992906101209081610100820152019161180f565b90916020939461544d6154689261542085615776565b85156154a8576401000276a4905b615440615439611563565b9715158852565b8787015260408601615382565b604051633cf3645360e21b8152958694859460048601615391565b03815f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1908115610e68575f9161517c575090565b73fffd8963efd1fc6a506488495d951d5263988d259061542e565b90156154e357600f0b5b5f81600f0b12615373576001600160801b031690565b60801d6154cd565b614b2a906105b9925f146155055760801d5b600f0b6116ed565b600f0b6154fd565b356105b981611911565b356105b98161191e565b905f608060405161553181611510565b828152826020820152826040820152826060820152015261555182612836565b906001600160a01b0380831690821610156155d757906143a3906155ce60015b946155c46155816020830161550d565b6155b861559c606061559560408701615517565b9501612836565b956155af6155a8611572565b998a615382565b60208901615382565b62ffffff166040870152565b60020b6060850152565b60808301615382565b6001600160a01b03918216916143a391166155ce818414615571565b61013292916001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169216611dc4565b6001600160a01b03918216927f000000000000000000000000000000000000000000000000000000000000000090921691823b1561012357604051631b63c28b60e11b8152925f92849283918591839161569591906001600160a01b038c16908b9060048601613163565b03925af18015610e68576156d1575b50803b1561012357604051630934f6c760e21b815260048101929092525f90829081838160248101612937565b8061232a5f6156df93611530565b5f6156a4565b9091906001600160a01b03811661571257505f80808061570694865af11590565b61570d5750565b6158ac565b6040805163a9059cbb60e01b81526001600160a01b039094166004850152602484019290925291905f9060208260448582885af13d15601f3d116001855114161716928281528260208201520152156157685750565b6001600160a01b031661583f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031615612ba25780516080820180516101329391926157c9916001600160a01b039081169116615915565b6020015190516001600160a01b039081169116615915565b9061580557508051156157f657805190602001fd5b630a12f52160e11b5f5260045ffd5b81511580615836575b615816575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b1561580e565b6040516390bfb86560e01b81526001600160a01b03909116600482015263a9059cbb60e01b60248201526080604482015260a03d601f01601f191690810160648301523d60848301523d5f60a484013e808201600460a482015260c4633c9fd93960e21b91015260e40190fd5b6040516390bfb86560e01b81526001600160a01b0390911660048201525f602482018190526080604483015260a03d601f01601f191690810160648401523d6084840152903d9060a484013e808201600460a482015260c4633d2cec6f60e21b91015260e40190fd5b6040516312f7fd6760e11b81526001600160a01b039190911690602081806159408560048301610785565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610e68575f916159f5575b506001600160a01b031615612a6b576159ad916020916040518080958194631557c23760e01b835260048301610785565b03915afa908115610e68575f916159d6575b50156159c757565b636e11e93f60e01b5f5260045ffd5b6159ef915060203d60201161261d5761260f8183611530565b5f6159bf565b615a0e915060203d602011610e6157610e538183611530565b5f61597c56fe0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a708af28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f692a42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb6d317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee31a164736f6c634300081a000a000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba3000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc20000000000000000000000005c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f0000000000000000000000001f98431c8ad98523631ae4a59f267346ea31f98496e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54000000000000000000000000000000000004444c5dc75cb358380d2e3de08a900000000000000000000000007da911490ca4663e572ea9c8154f3cdebce16452000000000000000000000000c36442b4a4522e871399cd717abdd847ab11fe88000000000000000000000000bd216513d74c8cf14cf4747e6aaa6420ff64ee9e0000000000000000000000005c7bcd6e7de5423a257d81b442095a1a6ced35c5", + "nonce": "0x4f", "chainId": "0x1" }, "additionalContracts": [], @@ -24,26 +25,26 @@ ], "receipts": [ { + "type": "0x2", "status": "0x1", - "cumulativeGasUsed": "0xd5d7df", + "cumulativeGasUsed": "0x2a4a0df", "logs": [], "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0x12beeb748ea2ea0f8ffc8e17ce3eefcdd9bcbc7e6ca6116cc36b1ad47721810f", - "transactionIndex": "0x90", - "blockHash": "0xe050ac1f21ee27da5cfcdf815b98c758433f2511be6e62ee7947fcd61fa11238", - "blockNumber": "0x183f9f7", - "gasUsed": "0x1793a5", - "effectiveGasPrice": "0x40fced9", + "transactionHash": "0x205624ca1d3e852c37b5f00f86208ec62a2576e4b94d58dd52ef6294bc306a06", + "transactionIndex": "0xed", + "blockHash": "0x5f0f688653691c61a6add1f775159ca824800c65bbd4f75cd6a7b9115c767c33", + "blockNumber": "0x18cd35e", + "gasUsed": "0x4df715", + "effectiveGasPrice": "0x10423421", "from": "0x2179a60856e37dfeaaca0ab043b931fe224b27b6", "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", - "contractAddress": "0x69603ab16110eb0bb5f5e9c8019749ee41a128c0" + "contractAddress": null } ], "libraries": [], "pending": [], "returns": {}, - "timestamp": 1782773508953, + "timestamp": 1789758327025, "chain": 1, - "commit": "48fe9af" + "commit": "e34ba78" } \ No newline at end of file diff --git a/broadcast/Deploy-all.s.sol/11155111/run-1789755277412.json b/broadcast/Deploy-all.s.sol/11155111/run-1789755277412.json new file mode 100644 index 00000000..1b3d89f0 --- /dev/null +++ b/broadcast/Deploy-all.s.sol/11155111/run-1789755277412.json @@ -0,0 +1,50 @@ +{ + "transactions": [ + { + "hash": "0x2130e22012448a30e7f611d8afee6962358250cc0fd37711272b19c3a61c0711", + "transactionType": "CREATE2", + "contractName": "UniversalRouter", + "contractAddress": "0x5093f1cded83d99ffed6602da6260672ae16787c", + "function": null, + "functionAbi": null, + "arguments": [ + "(0x000000000022D473030F116dDEE9F6B43aC78BA3, 0xfFf9976782d46CC05630D1f6eBAb18b2324d6B14, 0xB7f907f7A9eBC822a80BD25E224be42Ce0A698A0, 0x0227628f3F023bb0B980b67D528571c95c6DaC1c, 0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f, 0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54, 0xE03A1074c86CFeDd5C142C4F04F1a1536e203543, 0xE6B0d96919334C33d06266d1420F97f6f434fA2B, 0x1238536071E1c677A632429e3655c799b22cDA52, 0x429ba70129df741B2Ca2a85BC3A2a3328e5c09b4, 0x5ef6C01E11889d86803e0B23e3cB3F9E9d97B662)" + ], + "transaction": { + "from": "0x2179a60856e37dfeaaca0ab043b931fe224b27b6", + "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", + "gas": "0x72067f", + "value": "0x0", + "input": "0x00000000000000000000000000000000000000000000000000000000000000006102c080604052346104835761016081616269803803809161002182856104a2565b833981010312610483576040519061016082016001600160401b0381118382101761046f57604052610052816104c5565b8252610060602082016104c5565b9160208101928352610074604083016104c5565b9260408201938452610088606084016104c5565b93606083019485526080840151926080810193845260a08501519360a082019485526100b660c087016104c5565b9660c083019788526100ca60e088016104c5565b9160e084019283526100df61010089016104c5565b96876101008601526101086101406100fa6101208c016104c5565b9a8b610120890152016104c5565b998a6101408701526040519861011d8a610487565b6001600160a01b039081168a52998a1660208a019081529051945195519751604051919a9198908216979682169695821695911661015a89610487565b8852602088019687525192519151905160405190936001600160a01b039384169316608082016001600160401b0381118382101761046f5760405281526020810192835260408101918252606081019384526040516101ba6040826104a2565b600f815260208101906e2ab734bb32b939b0b62937baba32b960891b8252604051916101e76040846104a2565b600183526020830191601960f91b8352610200816104d9565b6101205261020d8461066f565b61014052519020918260e05251902080610100524660a0526040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261027660c0826104a2565b5190206080523060c052516001600160a01b0390811661016052905161018052905181166101a05290516101c0526101e091909152610200919091529051811661022052905181166102405290518116610260529051811661028052166102a052604051615ac190816107a8823960805181613dda015260a05181613e97015260c05181613da4015260e05181613e2901526101005181613e4f015261012051816104fc01526101405181610528015261016051818181612c3401528181612db00152613a3b015261018051818181612c5501528181612d8f0152613a1a01526101a05181611d7c01526101c05181611d5a01526101e0518181816105ee015281816107df01528181611213015281816117e001528181612721015281816144bf015281816147b2015281816148bd0152818161507e0152818161546d01526156020152610200518181816106b501528181610ddf01528181610e7001528181614530015281816146dd01528181615197015281816157780152615944015261022051818181611797015281816129c70152612b07015261024051818181610d37015281816128e401528181613192015261563801526102605181818161045e01528181611187015261252f015261028051818181610756015261127201526102a05181818161041a0152818161223301526123470152f35b634e487b7160e01b5f52604160045260245ffd5b5f80fd5b604081019081106001600160401b0382111761046f57604052565b601f909101601f19168101906001600160401b0382119082101761046f57604052565b51906001600160a01b038216820361048357565b908151602081105f14610553575090601f815111610513576020815191015160208210610504571790565b5f198260200360031b1b161790565b604460209160405192839163305a27a960e01b83528160048401528051918291826024860152018484015e5f828201840152601f01601f19168101030190fd5b6001600160401b03811161046f575f54600181811c91168015610665575b602082101461065157601f811161061f575b50602092601f82116001146105c057928192935f926105b5575b50508160011b915f199060031b1c1916175f5560ff90565b015190505f8061059d565b601f198216935f8052805f20915f5b86811061060757508360019596106105ef575b505050811b015f5560ff90565b01515f1960f88460031b161c191690555f80806105e2565b919260206001819286850151815501940192016105cf565b5f8052601f60205f20910160051c810190601f830160051c015b8181106106465750610583565b5f8155600101610639565b634e487b7160e01b5f52602260045260245ffd5b90607f1690610571565b908151602081105f1461069a575090601f815111610513576020815191015160208210610504571790565b6001600160401b03811161046f57600154600181811c9116801561079d575b602082101461065157601f811161076a575b50602092601f821160011461070957928192935f926106fe575b50508160011b915f199060031b1c19161760015560ff90565b015190505f806106e5565b601f1982169360015f52805f20915f5b868110610752575083600195961061073a575b505050811b0160015560ff90565b01515f1960f88460031b161c191690555f808061072c565b91926020600181928685015181550194019201610719565b60015f52601f60205f20910160051c810190601f830160051c015b81811061079257506106cb565b5f8155600101610785565b90607f16906106b956fe60806040526004361015610022575b3615610018575f80fd5b610020611794565b005b5f3560e01c80631a27b2011461010157806324856bc3146100fc5780633593564c146100f757806344684dc3146100f25780638021fef7146100ed578063817122dc146100e857806384b0196e146100e357806391dd7346146100de578063ab769d37146100d9578063d04d79a2146100d4578063d0c9f6cb146100cf578063d737d0c7146100ca578063dc4c90d3146100c55763fa461e330361000e5761080e565b6107ca565b610798565b610741565b6106e4565b6106a0565b6105bc565b6104e4565b610449565b610405565b61036a565b6102a9565b6101f8565b61014d565b6001600160a01b031690565b6001600160a01b0381160361012357565b5f80fd5b359061013282610112565b565b6001600160a01b03165f90815260026020526040902090565b346101235760403660031901126101235760043561016a81610112565b6024359060018060a01b03165f52600260205260405f20905f52602052602060ff60405f2054166040519015158152f35b9181601f84011215610123578235916001600160401b038311610123576020838186019501011161012357565b9181601f84011215610123578235916001600160401b038311610123576020808501948460051b01011161012357565b6040366003190112610123576004356001600160401b0381116101235761022390369060040161019b565b6024356001600160401b038111610123576102429036906004016101c8565b913330146102a0575f80516020615a158339815191525c6001600160a01b03166102915761027f93335f80516020615a158339815191525d610b4e565b5f5f80516020615a158339815191525d005b6337affdbf60e11b5f5260045ffd5b61002093610b4e565b6060366003190112610123576004356001600160401b038111610123576102d490369060040161019b565b6024356001600160401b038111610123576102f39036906004016101c8565b916044354211610339573330146102a0575f80516020615a158339815191525c6001600160a01b03166102915761027f93335f80516020615a158339815191525d610b4e565b632dfb7c8b60e11b5f5260045ffd5b8015150361012357565b6084359061013282610348565b359061013282610348565b610100366003190112610123576004356001600160401b0381116101235761039690369060040161019b565b906024356001600160401b038111610123576103b69036906004016101c8565b926044356064356103c5610352565b9060a43560c435979093906001600160401b038911610123576103ef61002099369060040161019b565b97909660e4359961132d565b5f91031261012357565b34610123575f366003190112610123576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610123575f366003190112610123576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b90602080835192838152019201905f5b8181106104ce5750505090565b82518452602093840193909201916001016104c1565b34610123575f366003190112610123576105766105207f00000000000000000000000000000000000000000000000000000000000000006134cb565b6105a461054c7f00000000000000000000000000000000000000000000000000000000000000006135ae565b610584610557611598565b91604051958695600f60f81b875260e0602088015260e087019061048d565b90858203604087015261048d565b904660608501523060808501525f60a085015283820360c08501526104b1565b0390f35b9060206105b992818152019061048d565b90565b34610123576020366003190112610123576004356001600160401b038111610123576105ec90369060040161019b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036106915761062591613666565b90818303610682575f5b838110610656576105a4604051610647602082611530565b5f8152604051918291826105a8565b8061067c6106676001938789610ad9565b3560f81c610676838787610b1c565b91613fcf565b0161062f565b63aaad13f760e01b5f5260045ffd5b63570c108560e11b5f5260045ffd5b34610123575f366003190112610123576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610123575f36600319011261012357604080516001600160a01b035f80516020615a958339815191525c1681525f80516020615a558339815191525c60208201525f80516020615a758339815191525c91810191909152606090f35b34610123575f366003190112610123576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b6001600160a01b03909116815260200190565b34610123575f366003190112610123576040516001600160a01b035f80516020615a158339815191525c168152602090f35b34610123575f366003190112610123576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610123576060366003190112610123576024356004356044356001600160401b0381116101235761084490369060040161019b565b92905f831392831580610a61575b610a5257610899926108819161086a8785018561166b565b90996001600160a01b039092169690959250611c04565b92909161088e84846136fe565b999198908a8a611cf0565b336001600160a01b0390911603610a43578015610a2a5790978891906001600160a01b03818116908a16105b156108dd575050505050505061002093503391611dc4565b909192939495989997506108f2866042111590565b1561099e57508651610944575b5050509461092361091661091e9361002098611e31565b939092611e47565b6116ed565b94801561093c5761093390611779565b945b3390611ee3565b505f94610935565b61095d610967938a93610962935f1461099757506116ed565b611702565b611739565b6109718686611757565b5180821061097f57806108ff565b631c1763d160e11b5f5261099492508661176b565b5ffd5b90506116ed565b969450909192505f80516020615a358339815191529796975c8711610a1b5783516109d4575b5050505061002093503391611dc4565b8661096261095d6109f7958b956109f1955f1461099757506116ed565b92611757565b51808210610a065780806109c4565b631c1763d160e11b5f5261099492508561176b565b6339cedf2960e11b5f5260045ffd5b91978892906001600160a01b03898116908216106108c5565b6332b13d9160e01b5f5260045ffd5b63316cf0eb60e01b5f5260045ffd5b505f831315610852565b929190333014610abc575f80516020615a158339815191525c6001600160a01b031661029157610aaa93335f80516020615a158339815191525d610b4e565b5f5f80516020615a158339815191525d565b61013293610b4e565b634e487b7160e01b5f52603260045260245ffd5b90821015610ae5570190565b610ac5565b903590601e198136030182121561012357018035906001600160401b0382116101235760200191813603831361012357565b90821015610ae557610b339160051b810190610aea565b9091565b6040906105b993928152816020820152019061048d565b90939284810361131e575f5b858110610b6957505050509050565b610b74818785610ad9565b35610b80828487610b1c565b6060929160019160f884901c607f1660218110156112a557601081101561113f576008811015610f265780610c495750610bca82610bc183610bfc95611c8f565b92909382612806565b92909360808301355f14610c4257610be0611bf2565b925b604081013590610bf760208201359135612984565b6132cf565b159081610c33575b50610c125750600101610b5a565b604051632c4029e960e01b8152918291610c2f9160048401610b37565b0390fd5b600160ff1b161590505f610c04565b3092610be2565b60018103610ca15750610c6382610bc183610c9595611c8f565b92909360808301355f14610c9a57610c79611bf2565b925b604081013590610c9060208201359135612984565b613200565b610bfc565b3092610c7b565b60028103610cd2575050610c9590610cb7611bf2565b90604081013591610ccb6020830135612984565b913561318d565b9192909160038103610d705750505f92935090610d32610cf3849383611c64565b610d24610d01939293611bf2565b916040519485936020850197632a2d80d160e01b89528035019060248601611aab565b03601f198101835282611530565b5190827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af190610d6a6118d5565b91610bfc565b9092915060048103610e9f575080356001600160a01b038116151580610e6d575b610dbc575b81610da76020610c95940135612984565b6040909101356001600160a01b0316916130c3565b6040516312f7fd6760e11b81529160208380610ddb8560048301610785565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa8015610e6857610c95935f91610e3a575b506001600160a01b038116610e32575b509150610d96565b91505f610e2a565b610e5b915060203d8111610e61575b610e538183611530565b810190611a96565b5f610e1a565b503d610e49565b6119cb565b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161515610d91565b60058103610ec65750806040610c9592013590610ebf6020820135612984565b9035613038565b60068103610eed5750806040610c9592013590610ee66020820135612984565b9035612fc2565b60078103610f145750806040610c9592013590610f0d6020820135612984565b9035612f08565b636bb50f4f60e11b5f5260045260245ffd5b90919060088103610f8657508181610f44610c9594610f4d946127e6565b93909282612806565b92909360808301355f14610f7f57610f63611bf2565b925b604081013590610f7a60208201359135612984565b612d53565b3092610f65565b60098103610fda57508181610f44610c9594610fa1946127e6565b92909360808301355f14610fd357610fb7611bf2565b925b604081013590610fce60208201359135612984565b612c11565b3092610fb9565b909290600a81036110275750505f92935081610ffa610d32928594611c39565b929091610d24611008611bf2565b9460405194859360208501976302b67b5760e41b895260248601611a48565b909290600b810361104c5750610c95915061104760208201359135612984565b612aec565b600c810361106e5750610c95915061106960208201359135612984565b6129b6565b600d81036110935750610c9591611084916127c9565b9061108d611bf2565b916128d5565b9092509050600e8103610f1457506040516370a0823160e01b815290602082806110c1843560048301610785565b0381848401356001600160a01b03165afa918215610e68575f9261110c575b5060400135111580610c95576040516351940b3960e11b6020820152909250610d6a8160248101610d24565b60409192506111319060203d8111611138575b6111298183611530565b8101906119bc565b91906110e0565b503d61111f565b90919060108103611155575090610c95916126f3565b93945092909150601181036111ba57505f91908161117384936126d7565b61118260405180938193611904565b0390827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af190610d6a6118d5565b601281036111d957505f919082916111736111d3611bf2565b826124e0565b601381036112465750505f809160405161120e81610d24602082019463313b65df60e11b865260a08101359060248401611929565b5190827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af190610d6a6118d5565b60148103610f1457505f91829161125d8183612401565b479161126e60405180938193611904565b03917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af190610d6a6118d5565b939490939192604083101561130457505060218103610f1457506112f5610d246112d15f948594613666565b60409593959491945194859360208501976324856bc360e01b89526024860161182f565b519082305af190610d6a6118d5565b9290949391604081145f14610f14575090610c9591612201565b631fec674760e31b5f5260045ffd5b95909698929a999791978042116103395761134a8c9a9b9c611b61565b5f5b8b81106114cb5750868661140b61141b958f611421999896610d24918f8f61139a906114139a60405161138781610d24602082018095611b93565b51902096156114c45733925b36916115ce565b6020815191012097604051978896602088019a8b93909796959260e095926101008601997f4b503a2e339bf072a489301f3eec7abaefc520266c462796ed9267bbcc6e407c8752602087015260408601526060850152608084015260018060a01b031660a083015260c08201520152565b51902061348f565b9236916115ce565b906134b5565b60018801611469575b61146197505f80516020615a958339815191525d5f80516020615a558339815191525d5f80516020615a758339815191525d610a6b565b610132611bc0565b61148d6114868961147984610134565b905f5260205260405f2090565b5460ff1690565b6114b6576114b16114a46114619961147984610134565b805460ff19166001179055565b61142a565b623f613760e71b5f5260045ffd5b5f92611393565b806114e08d9f9e9d600193611393918f610b1c565b602081519101206114f18285611757565b52019c9a9b9c61134c565b634e487b7160e01b5f52604160045260245ffd5b60a081019081106001600160401b0382111761152b57604052565b6114fc565b601f909101601f19168101906001600160401b0382119082101761152b57604052565b604051906101326101a083611530565b60405190610132606083611530565b6040519061013260a083611530565b6001600160401b03811161152b5760051b60200190565b604051906115a7602083611530565b5f808352366020840137565b6001600160401b03811161152b57601f01601f191660200190565b9291926115da826115b3565b916115e86040519384611530565b829481845281830111610123578281602093845f960137010152565b9080601f83011215610123578160206105b9933591016115ce565b92919061162b81611581565b936116396040519586611530565b602085838152019160051b810192831161012357905b82821061165b57505050565b813581526020918201910161164f565b6080818303126101235780356001600160401b0381116101235782611691918301611604565b9260208201356116a081610112565b9260408301356001600160401b03811161012357830181601f82011215610123576060918160206116d39335910161161f565b92013590565b634e487b7160e01b5f52601160045260245ffd5b600160ff1b81146116fd575f0390565b6116d9565b6a0c097ce7bc90715b34b9f160241b8082029291801590840490911417156116fd57565b818102929181159184041417156116fd57565b8115611743570490565b634e487b7160e01b5f52601260045260245ffd5b8051821015610ae55760209160051b010190565b600452602452604452606490565b5f198101919082116116fd57565b919082039182116116fd57565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161415806117dc575b6117cd57565b631c5deabb60e11b5f5260045ffd5b50337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614156117c7565b908060209392818452848401375f828201840152601f01601f1916010190565b9391906118449160408652604086019161180f565b926020818503910152808352602083019060208160051b85010193835f91601e1982360301905b84841061187c575050505050505090565b90919293949596601f19828203018752873583811215610123578401602081019190356001600160401b038111610123578036038313610123576118c6602092839260019561180f565b9901970195940192919061186b565b3d156118ff573d906118e6826115b3565b916118f46040519384611530565b82523d5f602084013e565b606090565b908092918237015f815290565b62ffffff81160361012357565b8060020b0361012357565b90929160a0906119b0608060c0850196803561194481610112565b600180871b03168652602081013561195b81610112565b600180871b0316602087015262ffffff604082013561197981611911565b166040870152606081013561198d8161191e565b60020b606087015201356119a081610112565b6001600160a01b03166080850152565b600180831b0316910152565b90816020910312610123575190565b6040513d5f823e3d90fd5b359065ffffffffffff8216820361012357565b65ffffffffffff611a42606080938035611a0281610112565b6001600160a01b031686526020810135611a1b81610112565b6001600160a01b0316602087015283611a36604083016119d6565b166040870152016119d6565b16910152565b60a06105b9959361010093600180841b03168352611a6960208401826119e9565b6080810135611a7781610112565b600180841b031682840152013560c08201528160e0820152019161180f565b9081602091031261012357516105b981610112565b6001600160a01b0390911681526060602082015290939260c08201929091853536879003601e190181121561012357860160208101949035906001600160401b038211610123578160071b360386136101235781906060808501525260e0820194905f5b818110611b4357505050604086611b2f6119a060206105b9999a01610127565b013560a0820152604081850391015261180f565b90919560808082611b566001948b6119e9565b019701929101611b0f565b90611b6b82611581565b611b786040519182611530565b8281528092611b89601f1991611581565b0190602036910137565b80516020909101905f5b818110611baa5750505090565b8251845260209384019390920191600101611b9d565b5f5f80516020615a958339815191525d5f5f80516020615a558339815191525d5f5f80516020615a758339815191525d565b5f80516020615a158339815191525c90565b909163ffffffff82351682019263ffffffff84351692602080860195850101910110611c2c57565b633b99b53d5f526004601cfd5b909163ffffffff60c08301351682019263ffffffff84351692602080860195850101910110611c2c57565b909163ffffffff60208301351682019263ffffffff84351692602080860195850101910110611c2c57565b909163ffffffff60608301351682019263ffffffff84351692602080860195850101910110611c2c57565b6001600160f81b0319815260609190911b6001600160601b03191660018201526015810191909152603581019190915260550190565b6105b992611da992906001600160a01b0380831690841611611dae575b604080516001600160a01b0394851660208201908152949093169083015262ffffff166060808301919091528152611d46608082611530565b519020604051611da181610d2460208201947f0000000000000000000000000000000000000000000000000000000000000000907f000000000000000000000000000000000000000000000000000000000000000087611cba565b519020610106565b610106565b909190611d0d565b90601482018092116116fd57565b909291906001600160a01b0384163003611de2576101329350613038565b91926001600160a01b038411611e0557610132936001600160a01b03169261318d565b63c4bd89a960e01b5f5260045ffd5b909291928360041161012357831161012357600401916003190190565b9190918260171161012357601701916016190190565b600160ff1b8110156101235790565b959493611e7260609492611e8f9460808a5260808a019161180f565b6001600160a01b03909216602088015286820360408801526104b1565b930152565b9190826040910312610123576020825192015190565b6001600160a01b039182168152911515602083015260408201929092529116606082015260a0608082018190526105b99291019061048d565b92919395949094611ef483866136fe565b6001600160a01b038084169082161098899590939092611f15929091611cf0565b611f1e90610106565b611f2790610106565b94845f14604098610d245f96611f7195611f5594611fb9576401000276a49e5b8d5196879560208701611e56565b8751630251596160e31b8152998a978896879560048701611eaa565b03925af18015610e68575f925f91611f8857509192565b9050611fad91925060403d604011611fb2575b611fa58183611530565b810190611e94565b919092565b503d611f9b565b73fffd8963efd1fc6a506488495d951d5263988d259e611f47565b91939490611fe284866136fe565b6001600160a01b038082169084161097889490939092612003929091611cf0565b61200c90610106565b61201590610106565b93835f1496611f555f94610d2486611f719560409c611fb9576401000276a49e8d5196879560208701611e56565b63ffffffff81160361012357565b359061013282612043565b602081830312610123578035906001600160401b03821161012357016101a0818303126101235761208b611553565b9161209582610127565b83526120a360208301610127565b60208401526120b460408301610127565b60408401526120c560608301610127565b60608401526080820135608084015260a082013560a084015260c082013560c08401526120f460e08301610127565b60e08401526121066101008301612051565b6101008401526121196101208301612051565b61012084015261212c6101408301612051565b610140840152610160820135916001600160401b0383116101235761215961018092612165948301611604565b6101608501520161035f565b61018082015290565b6001600160a01b039182168152918116602083015291821660408201529181166060830152608082019290925260a081019290925260c0820192909252911660e08201526105b994936101809391926121f3926121e5916121d79063ffffffff16610100870152565b63ffffffff16610120850152565b63ffffffff16610140830152565b81610160820152019061048d565b61220d9181019061205c565b6080810151905f600160ff1b831461237a575b61018082015115612330575081905b80517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316929061226690610106565b6122736020840151610106565b6122806040850151610106565b9161228e6060860151610106565b9460a08101519060c08101516122a760e0830151610106565b61010083015163ffffffff16906122c661012085015163ffffffff1690565b926101606122dc61014087015163ffffffff1690565b950151958c3b1561012357604051633dc9c91960e11b81529d8e9c8d9b8c9b6123089b60048e0161216e565b03915a945f95f18015610e685761231c5750565b8061232a5f61013293611530565b806103fb565b9061237583612345611da96040850151610106565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690613730565b61222f565b915061238a610180820151151590565b15612396574791612220565b6123a9611da9611da96040840151610106565b602060405180926370a0823160e01b825281806123c93060048301610785565b03915afa908115610e68575f916123e2575b5091612220565b6123fb915060203d602011611138576111298183611530565b5f6123db565b80356322b9af7160e01b6001600160e01b03198216016124c4575061242d826124339361242d93611e14565b90611c04565b5f5b81811061244157505050565b61246f612469612463612455848688610ad9565b356001600160f81b03191690565b60f81c90565b60ff1690565b80159081156124b9575b81156124ae575b81156124a3575b5061249457600101612435565b635d1d0f9f60e01b5f5260045ffd5b60039150145f612487565b600181149150612480565b600481149150612479565b63f801e52560e01b5f526001600160e01b03191660045260245ffd5b80356001600160e01b031916630624e65f60e11b811480156126c7575b80156126b7575b156126a557506040516331a9108f60e11b815260049182013591810182905290916001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690602083602481855afa928315610e68575f93612684575b506001600160a01b03818116908416811492908315612624575b5082156125a8575b50501590505b6125965750565b63bb25d4c560e01b5f5260045260245ffd5b60405163e985e9c560e01b81526001600160a01b0394851660048201529190931660248201529160209150829060449082905afa8015610e685761258f915f916125f5575b505f80612589565b612617915060203d60201161261d575b61260f8183611530565b810190612abc565b5f6125ed565b503d612605565b60405163020604bf60e21b81526004810187905291935090602081602481875afa908115610e68575f91612665575b506001600160a01b031614915f612581565b61267e915060203d602011610e6157610e538183611530565b5f612653565b61269e91935060203d602011610e6157610e538183611530565b915f612567565b63f801e52560e01b5f5260045260245ffd5b50630852cd8d60e31b8114612504565b5063fc6f786560e01b81146124fd565b356001600160e01b03191663853d008560e01b81016126a55750565b6040516348c8949160e01b815260206004820152915f918391829161271c91602484019161180f565b0381837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af18015610e68576127585750565b3d805f833e6127678183611530565b810190602081830312610123578051906001600160401b038211610123570181601f8201121561012357805161279c816115b3565b926127aa6040519485611530565b81845260208284010111610123575f928160208094018483015e010152565b918235830191602083359481850194038560051b010111611c2c57565b916060830135830191602083359481850194038560051b010111611c2c57565b9160a0830135830191602083359481850194038560051b010111611c2c57565b9190811015610ae55760071b0190565b356105b981610112565b60208082528101839052604001915f5b81811061285d5750505090565b909192608080600192863561287181610112565b848060a01b03168152602087013561288881610112565b848060a01b0316602082015260408701356128a281610112565b848060a01b0316604082015260608701356128bc81610112565b848060a01b031660608201520194019101919091612850565b90915f5b8381106129485750507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691823b1561012357612937925f9283604051809681958294630d58b1db60e01b845260048401612840565b03925af18015610e685761231c5750565b61295b612956828686612826565b612836565b6001600160a01b03838116911603612975576001016128d9565b63e700287760e01b5f5260045ffd5b6001600160a01b038116600181036129aa5750505f80516020615a158339815191525c90565b6002036105b957503090565b6040516370a0823160e01b815290917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169060208380612a013060048301610785565b0381855afa928315610e68575f93612a9b575b508210612a8c5781612a2557505050565b803b1561012357604051632e1a7d4d60e01b815260048101839052905f908290602490829084905af18015610e6857612a78575b50306001600160a01b03831603612a6f575b5050565b6101329161381f565b8061232a5f612a8693611530565b5f612a59565b631a84bc4160e21b5f5260045ffd5b612ab591935060203d602011611138576111298183611530565b915f612a14565b9081602091031261012357516105b981610348565b6001600160a01b039091168152602081019190915260400190565b90600160ff1b8103612bd1575047905b81612b05575050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691823b1561012357604051630d0e30db60e41b81525f8160048185885af18015610e6857612bbd575b50306001600160a01b03831603612b6f575b505050565b612b93926020925f60405180968195829463a9059cbb60e01b845260048401612ad1565b03925af18015610e6857612ba5575b50565b612ba29060203d60201161261d5761260f8183611530565b8061232a5f612bcb93611530565b5f612b58565b9047821115612afc57631a84bc4160e21b5f5260045ffd5b9015610ae55790565b9060011015610ae55760200190565b9190811015610ae55760051b0190565b9290939196959460028310612d445786151580612d30575b612d215793965f94907f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000005f1986018681116116fd579190825b612cbf575050508811612cb0576101329785612cab92612ca66129568787612be9565b611dc4565b6138d7565b6345585e0b60e11b5f5260045ffd5b919a9750905f198b018b81116116fd57612d088c612cf6612ce4612d0f948b8b612c01565b3591612cef83610112565b8a8a612c01565b3590612d0182610112565b8486614214565b919a6142a8565b9a80156116fd575f1901919082612c83565b630c12651d60e31b5f5260045ffd5b505f1983018381116116fd57871415612c29565b632b94ab4360e21b5f5260045ffd5b9294969095919660028510612d445781151580612ef6575b612d2157612dd4612d7f6129568789612be9565b612d8c612956888a612bf2565b907f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000613cc1565b968781612edd575b505050612dfb611da9611da9612956612df488611779565b888a612c01565b91604051966370a0823160e01b885260208880612e1b8860048301610785565b0381875afa958615610e6857612e5f985f97612eaf575b509085612e44949392602098996138d7565b60405180809681946370a0823160e01b835260048301610785565b03915afa8015610e6857612e7a925f91612e90575b50611787565b10612e8157565b631093d5f360e31b5f5260045ffd5b612ea9915060203d602011611138576111298183611530565b5f612e74565b60209750612e4494939291612ed188928a3d8c11611138576111298183611530565b98509192939450612e32565b612eee92612ca6612956898b612be9565b5f8087612ddc565b50612f0085611779565b821415612d6b565b670de0b6b3a76400008311612fb3576001600160a01b031680612f4a5750612f44612f366101329347611726565b670de0b6b3a7640000900490565b9061381f565b906040516370a0823160e01b815260208180612f693060048301610785565b0381865afa908115610e685761013294612f8e92612f36925f91612f94575b50611726565b91613cd8565b612fad915060203d602011611138576111298183611530565b5f612f88565b6390f5ebeb60e01b5f5260045ffd5b6001600160a01b031680612fde5750612f446101329247613d47565b6040516370a0823160e01b8152306004820152909190602081602481865afa938415610e685761013294612f8e925f91613019575b50613d47565b613032915060203d602011611138576111298183611530565b5f613013565b9091906001600160a01b03168061305357506101329161381f565b600160ff1b8214613069575b9161013292613cd8565b6040516370a0823160e01b815230600482015292909150602083602481855afa8015610e6857610132935f916130a4575b509190925061305f565b6130bd915060203d602011611138576111298183611530565b5f61309a565b9091906001600160a01b0316806130e6575047908110612a8c5780612a6f575050565b91604051916370a0823160e01b8352602083806131063060048301610785565b0381875afa928315610e68575f93613142575b508210613133578161312a57505050565b61013292613cd8565b630ceb95c760e31b5f5260045ffd5b61315c91935060203d602011611138576111298183611530565b915f613119565b6001600160a01b039182168152918116602083015291821660408201529116606082015260800190565b9290917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690813b15610123575f80946131e560405197889687958694631b63c28b60e11b865260048601613163565b03925af18015610e68576131f65750565b5f61013291611530565b9492909695939193861515806132a5575b6132965761322761322d9161325198369161161f565b94613d82565b8351801561328e5761323e90611779565b945b61324c61091e89611e47565b611ee3565b9091901561327f5750613263906116ed565b0361327057610132613d70565b636a70124760e11b5f5260045ffd5b61328991506116ed565b613263565b505f94613240565b630e0fbd8760e21b5f5260045ffd5b506132b96132b4601789611726565b611db6565b831415613211565b5f1981146116fd5760010190565b97939795909192949587151596878098613478575b613296578998600160ff1b851461340b575b909950879391965f92808b8a61330a611598565b9e8f9061335493613346935b61332a613324836042111590565b98611e47565b908815613401575061333e30925b8a613d93565b929091611fd4565b9091901561099757506116ed565b966133c6575b50156133a557309961336b91611e31565b9190978892809c879561337d906132c1565b9c8d956133549461333e613346959e50509c9e509495969290919e8f90928e9a95938e613316565b5050505093509350935050106133b757565b631ce9aa4b60e11b5f5260045ffd5b6133d39061096288611702565b6133de858588612c01565b358082106133ec575061335a565b632d0a7cdd60e21b5f5261099492508561176b565b61333e9092613338565b935097611da9611da961341e9289614419565b976020604051809a6370a0823160e01b8252818061343f3060048301610785565b03915afa8015610e68578a995f91613459575b50936132f6565b613472915060203d602011611138576111298183611530565b5f613452565b506134876132b460178b611726565b8a14156132e4565b60429061349a613da1565b906040519161190160f01b8352600283015260228201522090565b6105b9916134c291613ebd565b90929192613f15565b60ff81146134dc576105b990613f91565b506040515f80548060011c916001821680156135a4575b60208410811461359057838552849260208401919081156135775750600114613524575b506105b992500382611530565b5f80805291507f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b84831061356057506105b99350015f613517565b80548284015285935060209092019160010161354c565b60ff19168252506105b993151560051b0190505f613517565b634e487b7160e01b5f52602260045260245ffd5b92607f16926134f3565b60ff81146135bf576105b990613f91565b506040515f6001548060011c9160018216801561365c575b6020841081146135905783855284926020840191908115613577575060011461360757506105b992500382611530565b60015f90815291507fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b84831061364557506105b99350015f613517565b805482840152859350602090920191600101613631565b92607f16926135d7565b604081351891606082019363ffffffff6040840135169363ffffffe0601f8601169060608201602086013518179084019260608401359463ffffffff861694641fffffffe0608082019760051b1680915f925b8084106136d1575060809250010191011017611c2c57565b90916020809163ffffffe0601f60808089890101359b848d18179b880101350116010193019291906136b9565b90602b1161372157803591601762ffffff8460601c9460481c1692013560601c90565b633b99b53d60e01b5f5260045ffd5b919091613797604051926137688461375a602082019363095ea7b360e01b85528860248401612ad1565b03601f198101865285611530565b83516001600160a01b038416915f91829182855af1906137866118d5565b826137ed575b50816137e657501590565b6137a057505050565b60405163095ea7b360e01b60208201526001600160a01b0390931660248401525f6044840152610132926137e1906137db8160648101610d24565b826141a9565b6141a9565b3b15919050565b80519192508115918215613805575b5050905f61378c565b6138189250602080918301019101612abc565b5f806137fc565b5f80809381935af11561382e57565b60405162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b6044820152606490fd5b51906001600160701b038216820361012357565b908160609103126101235761389181613869565b9160406138a060208401613869565b9201516105b981612043565b90926080926105b995948352602083015260018060a01b03166040820152816060820152019061048d565b949392939190916139016138ee6129568589612be9565b6138fb612956868a612bf2565b90614323565b50915f19840195600119850191831515985f955b898710613929575050505050505050505050565b613937612956888a85612c01565b9361394961295660018a018b86612c01565b604051630240bc6b60e21b8152909590916001600160a01b038116606084600481845afa918215610e68576139c7945f905f94613c8d575b506001600160a01b03948516966001600160701b039485169516871493168315613c83579060209194965b60405180809881946370a0823160e01b835260048301610785565b03915afa978815610e68578f6139ef8f9a978f978e9988915f91613c65575b5003968761433a565b9315613c5d578c5f94965b8c821015613c4f57613a17612956613a5f9260028501908d612c01565b847f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000614395565b9890985b9b83613c39575b5050505f14613bd2576040516370a0823160e01b81526001600160a01b039190911694909260208480613aa08a60048301610785565b0381895afa938415610e68575f94613bb2575b50613abc611598565b92803b15610123575f92838993613ae96040519788968795869463022c0d9f60e01b8652600486016138ac565b03925af18015610e6857613b9e575b50602060405180946370a0823160e01b82528180613b198960048301610785565b03915afa908115610e6857613b47935f92613b7e575b5090036a0c097ce7bc90715b34b9f160241b02611739565b613b5288888c612c01565b35808210613b695750506001905b96019592613915565b6365d564a560e01b5f5261099492508861176b565b613b9791925060203d8111611138576111298183611530565b905f613b2f565b8061232a5f613bac93611530565b5f613af8565b613bcb91945060203d8111611138576111298183611530565b925f613ab3565b5093929150613bdf611598565b93803b15610123575f92838593613c0c6040519889968795869463022c0d9f60e01b8652600486016138ac565b03925af1918215610e6857600192613c25575b50613b60565b8061232a5f613c3393611530565b5f613c1f565b613c439350612c01565b3515158c8f8d90613a6a565b5050955087958c8c5f613a63565b8c5f966139fa565b613c7d915060203d8111611138576111298183611530565b5f6139e6565b95602091906139ac565b9050613cb191935060603d8111613cba575b613ca98183611530565b81019061387d565b5092905f613981565b503d613c9f565b90916105b993613cd091614323565b9290916143a6565b5f91826044926020956040519363a9059cbb60e01b8552600485015260248401525af13d15601f3d1160015f511416171615613d1057565b60405162461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b6044820152606490fd5b6127108211613d615761271091613d5d91611726565b0490565b636f5500f360e11b5f5260045ffd5b5f5f80516020615a358339815191525d565b5f80516020615a358339815191525d565b90602b116101235790602b90565b307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161480613e94575b15613dfc577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a08152613e8e60c082611530565b51902090565b507f00000000000000000000000000000000000000000000000000000000000000004614613dd3565b8151919060418303613eed57613ee69250602082015190606060408401519301515f1a90614428565b9192909190565b50505f9160029190565b60041115613f0157565b634e487b7160e01b5f52602160045260245ffd5b613f1e81613ef7565b80613f27575050565b613f3081613ef7565b60018103613f475763f645eedf60e01b5f5260045ffd5b613f5081613ef7565b60028103613f6b575063fce698f760e01b5f5260045260245ffd5b80613f77600392613ef7565b14613f7f5750565b6335e2f38360e21b5f5260045260245ffd5b60ff811690601f8211613fc05760405191613fad604084611530565b6020808452838101919036833783525290565b632cd44ac360e21b5f5260045ffd5b909190600b8110156140635760078103613ff65750613ff19061013292614b43565b614e86565b60068103614011575061400c9061013292614913565b614d65565b6009810361402c57506140279061013292614b43565b614ba8565b916008831461404f57505061099491505b635cda29d760e01b5f52600452602490565b61013292509061405e91614913565b6149ca565b600c81036140b25750614075916148a3565b9061407f816148b6565b9180831161409b57509061013291614095611bf2565b906147a9565b6312bacdd360e01b5f52600452602482905260445ffd5b600f810361410157506140c4916148a3565b906140ce816144b8565b918083106140ea575090610132916140e4611bf2565b9061452c565b638b063d7360e01b5f52600452602482905260445ffd5b600b8103614135575061412f61411d61412992610132946144a0565b938294939291936146bf565b926146da565b916147a9565b600e8103614167575061415b61415161416192610132946144a0565b9282949291612984565b926146ab565b9161452c565b916010831461417c575050610994915061403d565b610132925061419161419a92614161926144a0565b92919390612984565b916141a4846144b8565b613d47565b5f806141d19260018060a01b03169360208151910182865af16141ca6118d5565b90836157e1565b80519081151591826141f9575b50506141e75750565b635274afe760e01b5f5260045260245ffd5b61420c9250602080918301019101612abc565b155f806141de565b9193929061422561422d9286614323565b9181946143a6565b604051630240bc6b60e21b815290936060826004816001600160a01b0389165afa918215610e68575f905f93614283575b506001600160701b03928316939216916001600160a01b03918216911603610b335791565b905061429f91925060603d606011613cba57613ca98183611530565b5091905f61425e565b908015801561431b575b61430c57816142c091611726565b916103e88302928084046103e814901517156116fd57818103918183116116fd576103e583029283046103e514911417156116fd576142fe91611739565b600181018091116116fd5790565b633dce448b60e11b5f5260045ffd5b5082156142b2565b6001600160a01b038281169082161015610b335791565b81159283801561438d575b61430c576103e58202918083046103e514901517156116fd576143689082611726565b926103e883029283046103e81417156116fd5781018091116116fd576105b991611739565b508015614345565b92614225906143a393614323565b91565b6040516001600160601b0319606094851b8116602083019081529590941b9093166034840152602883529092909161440991906143e4604882611530565b5190206143fb604051948592602084019586611cba565b03601f198101845283611530565b905190206001600160a01b031690565b90601411613721573560601c90565b91906fa2a8918ca85bafe22016d0b997e4df60600160ff1b038411614495579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15610e68575f516001600160a01b0381161561448b57905f905f90565b505f906001905f90565b5050505f9160039190565b90606011611c2c578035916040602083013592013590565b6144e381307f0000000000000000000000000000000000000000000000000000000000000000614ff9565b905f82126144ef575090565b634c085bf160e01b5f9081526001600160a01b0391909116600452602490fd5b6001600160a01b039091168152600160f01b602082015260400190565b91907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168061464957505f5b6001600160a01b0316614577575b61013292615075565b60405163aeb5556960e01b81526001600160a01b03841690602081600481855afa908115610e68575f9161462a575b501561461b5760206145d6916145ba611bf2565b90604051808095819463f493cec360e01b83526004830161450f565b03915afa908115610e68575f916145fc575b5061456e575b6282b42960e81b5f5260045ffd5b614615915060203d60201161261d5761260f8183611530565b5f6145e8565b63888f378560e01b5f5260045ffd5b614643915060203d60201161261d5761260f8183611530565b5f6145a6565b6040516312f7fd6760e11b815290602090829081806146746001600160a01b038a1660048301610785565b03915afa908115610e68575f9161468c575b50614560565b6146a5915060203d602011610e6157610e538183611530565b5f614686565b90816146bb576105b991506144b8565b5090565b156146d6575f80516020615a158339815191525c90565b3090565b907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168061474757505f5b6001600160a01b03169182158015614739575b61472f5750506105b99061512f565b6105b9925061510a565b50600160ff1b811415614720565b6040516312f7fd6760e11b815290602090829081806147726001600160a01b03881660048301610785565b03915afa908115610e68575f9161478a575b5061470d565b6147a3915060203d602011610e6157610e538183611530565b5f614784565b908215612b6a577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691823b1561012357604051632961046560e21b81525f81806147ff8560048301610785565b038183885af18015610e685761488f575b506001600160a01b03811661485e575050602090600460405180948193630476982d60e21b83525af18015610e68576148465750565b612ba29060203d602011611138576111298183611530565b5f936020939261486d92615195565b600460405180948193630476982d60e21b83525af18015610e68576148465750565b8061232a5f61489d93611530565b5f614810565b9190604011611c2c576020823592013590565b6148e181307f0000000000000000000000000000000000000000000000000000000000000000614ff9565b905f82136148f357506105b9906116ed565b63019a8d9360e51b5f9081526001600160a01b0391909116600452602490fd5b9061016011611c2c5780350190565b356001600160801b03811681036101235790565b356105b981610348565b91908260a09103126101235760405161495881611510565b6080808294803561496881610112565b8452602081013561497881610112565b6020850152604081013561498b81611911565b6040850152606081013561499e8161191e565b60608501520135916149af83610112565b0152565b6001600160801b0390811660045216602452604490565b6149d660c08201614922565b6001600160801b03811615614b01575b60a08201906149f482614936565b6001600160801b0382169290614a26908490614a14610120880188610aea565b929091614a21368a614940565b61540a565b91614a39614a3383614936565b846154c3565b6001600160801b038116949091908510614aed57505090614a5c614a6292614936565b906154eb565b9160e0810192614a80614a7485614922565b6001600160801b031690565b6001600160801b03821694908511614ad157505061010001359182614aa457505050565b610962614ab092611702565b90808210614abc575050565b63efc8d8eb60e01b5f5260045260245260445ffd5b90614ade61099492614922565b6312bacdd360e01b5f526149b3565b630686776b60e31b5f5261099492506149b3565b50614b0e60a08201614936565b15614b3457614b2f614b2a614b2560208401612836565b6148b6565b61535e565b6149e6565b614b2f614b2a614b2583612836565b9060e011611c2c5780350190565b903590601e198136030182121561012357018035906001600160401b03821161012357602001918160051b3603831361012357565b9190811015610ae55760051b81013590609e1981360301821215610123570190565b906020820191614bb88382614b51565b5f929150614bc860608301614922565b90614bd283612836565b906001600160801b03831615614d51575b6040840181614bf28287614b51565b801515948592509082614d46575b5050614d37579193825b614c3957505050505060809192935001614c26614a7482614922565b6001600160801b03831611614ad1575050565b614c5d919293949650614c64614c4f8a88614b51565b5f1987019491859190614b86565b9586615521565b6001600160801b03831692901591614c8e90839085614c8660808c018c610aea565b93909261540a565b90614c9983836154c3565b6001600160801b038116949091908510614aed5750508894939291614cbd916154eb565b97614cdb575b5050614ccf8694612836565b925f1901919382614c0a565b614cff906001600160801b038916906a0c097ce7bc90715b34b9f160241b02611739565b90614d1481614d0e858a614b51565b90612c01565b3590818310614d235750614cc3565b63e651804360e01b5f52610994935061176b565b63115eb5b360e31b5f5260045ffd5b14159050815f614c00565b9150614d5f614b2a826148b6565b91614be3565b614d7160c08201614922565b906001600160801b03821615614e47575b614dc860a08201614dc2614dbc614d9883614936565b6001600160801b0390961695614dad876116ed565b90614a14610120880188610aea565b91614936565b906154c3565b9060e0810191614dda614a7484614922565b6001600160801b03821693908410614e2b57505061010001359182614dfe57505050565b610962614e0a92611702565b90808210614e16575050565b634713c18b60e01b5f5260045260245260445ffd5b90614e3861099492614922565b638b063d7360e01b5f526149b3565b9050614e5560a08201614936565b15614e7457614e6e614b2a614e6983612836565b6144b8565b90614d82565b614e6e614b2a614e6960208401612836565b6020810190614e958282614b51565b5f93915080614ea384612836565b92614eb060608601614922565b6001600160801b03811615614fe7575b6040860191614ecf8388614b51565b801515958692509082614fdc575b5050614d37575f9591949395945b848610614f1b5750505050505050608001614f08614a7482614922565b6001600160801b03831610614e2b575050565b869850614f6a614f65614f3f614c5d89614f39878e9d9b9c9d614b51565b90614b86565b6001600160801b03909416939190614f5a6080880188610aea565b9184875f039161540a565b6154c3565b98614f88575b506001614f7d8993612836565b960194939591614eeb565b614fab906001600160801b038a166a0c097ce7bc90715b34b9f160241b02611739565b614fb987614d0e868b614b51565b35808210614fc75750614f70565b63a9b7edf760e01b5f5261099492508761176b565b14159050855f614edd565b50614ff4614b2a856144b8565b614ec0565b6001600160a01b039182165f9081529282166020908152604093849020935163789add5560e11b815260048101949094529183916024918391165afa908115610e68575f91615046575090565b90506020813d60201161506d575b8161506160209383611530565b81010312610123575190565b3d9150615054565b908215612b6a577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561012357604051630b0d9c0960e01b81526001600160a01b03938416600482015291909216602482015260448101929092525f908290606490829084905af18015610e68576150f55750565b806151015f8093611530565b80031261012357565b90600160ff1b8203615120576105b9915061512f565b816146bb576105b991506148b6565b6001600160a01b03811661514257504790565b6040516370a0823160e01b815230600482015290602090829060249082906001600160a01b03165afa908115610e68575f9161517c575090565b6105b9915060203d602011611138576111298183611530565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316806152fc57505f5b6001600160a01b0381169182156152ee5760405163aeb5556960e01b81526001600160a01b03919091169390602081600481885afa908115610e68575f916152cf575b501561461b57615237602061521d611bf2565b6040518093819263f493cec360e01b83526004830161450f565b0381885afa908115610e68575f916152b0575b50156145ee576001600160a01b03811630036152a3575050828261526d926156e5565b803b1561012357604051630934f6c760e21b815260048101929092525f908290602490829084905af18015610e685761231c5750565b610132949391925061562a565b6152c9915060203d60201161261d5761260f8183611530565b5f61524a565b6152e8915060203d60201161261d5761260f8183611530565b5f61520a565b9050610132939291506155f3565b6040516312f7fd6760e11b815290602090829081806153276001600160a01b03881660048301610785565b03915afa908115610e68575f9161533f575b506151c7565b615358915060203d602011610e6157610e538183611530565b5f615339565b6001600160801b038116919082900361537357565b6393dafdf160e01b5f5260045ffd5b6001600160a01b039091169052565b81516001600160a01b03908116825260208084015182168184015260408085015162ffffff168185015260608086015160020b908501526080948501518316948401949094528451151560a084015284015160c083015291909201511660e08201526105b992906101209081610100820152019161180f565b90916020939461544d6154689261542085615776565b85156154a8576401000276a4905b615440615439611563565b9715158852565b8787015260408601615382565b604051633cf3645360e21b8152958694859460048601615391565b03815f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1908115610e68575f9161517c575090565b73fffd8963efd1fc6a506488495d951d5263988d259061542e565b90156154e357600f0b5b5f81600f0b12615373576001600160801b031690565b60801d6154cd565b614b2a906105b9925f146155055760801d5b600f0b6116ed565b600f0b6154fd565b356105b981611911565b356105b98161191e565b905f608060405161553181611510565b828152826020820152826040820152826060820152015261555182612836565b906001600160a01b0380831690821610156155d757906143a3906155ce60015b946155c46155816020830161550d565b6155b861559c606061559560408701615517565b9501612836565b956155af6155a8611572565b998a615382565b60208901615382565b62ffffff166040870152565b60020b6060850152565b60808301615382565b6001600160a01b03918216916143a391166155ce818414615571565b61013292916001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169216611dc4565b6001600160a01b03918216927f000000000000000000000000000000000000000000000000000000000000000090921691823b1561012357604051631b63c28b60e11b8152925f92849283918591839161569591906001600160a01b038c16908b9060048601613163565b03925af18015610e68576156d1575b50803b1561012357604051630934f6c760e21b815260048101929092525f90829081838160248101612937565b8061232a5f6156df93611530565b5f6156a4565b9091906001600160a01b03811661571257505f80808061570694865af11590565b61570d5750565b6158ac565b6040805163a9059cbb60e01b81526001600160a01b039094166004850152602484019290925291905f9060208260448582885af13d15601f3d116001855114161716928281528260208201520152156157685750565b6001600160a01b031661583f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031615612ba25780516080820180516101329391926157c9916001600160a01b039081169116615915565b6020015190516001600160a01b039081169116615915565b9061580557508051156157f657805190602001fd5b630a12f52160e11b5f5260045ffd5b81511580615836575b615816575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b1561580e565b6040516390bfb86560e01b81526001600160a01b03909116600482015263a9059cbb60e01b60248201526080604482015260a03d601f01601f191690810160648301523d60848301523d5f60a484013e808201600460a482015260c4633c9fd93960e21b91015260e40190fd5b6040516390bfb86560e01b81526001600160a01b0390911660048201525f602482018190526080604483015260a03d601f01601f191690810160648401523d6084840152903d9060a484013e808201600460a482015260c4633d2cec6f60e21b91015260e40190fd5b6040516312f7fd6760e11b81526001600160a01b039190911690602081806159408560048301610785565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610e68575f916159f5575b506001600160a01b031615612a6b576159ad916020916040518080958194631557c23760e01b835260048301610785565b03915afa908115610e68575f916159d6575b50156159c757565b636e11e93f60e01b5f5260045ffd5b6159ef915060203d60201161261d5761260f8183611530565b5f6159bf565b615a0e915060203d602011610e6157610e538183611530565b5f61597c56fe0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a708af28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f692a42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb6d317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee31a164736f6c634300081a000a000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba3000000000000000000000000fff9976782d46cc05630d1f6ebab18b2324d6b14000000000000000000000000b7f907f7a9ebc822a80bd25e224be42ce0a698a00000000000000000000000000227628f3f023bb0b980b67d528571c95c6dac1c96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54000000000000000000000000e03a1074c86cfedd5c142c4f04f1a1536e203543000000000000000000000000e6b0d96919334c33d06266d1420f97f6f434fa2b0000000000000000000000001238536071e1c677a632429e3655c799b22cda52000000000000000000000000429ba70129df741b2ca2a85bc3a2a3328e5c09b40000000000000000000000005ef6c01e11889d86803e0b23e3cb3f9e9d97b662", + "nonce": "0x13a", + "chainId": "0xaa36a7" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "type": "0x2", + "status": "0x1", + "cumulativeGasUsed": "0x1455729", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "transactionHash": "0x2130e22012448a30e7f611d8afee6962358250cc0fd37711272b19c3a61c0711", + "transactionIndex": "0x77", + "blockHash": "0xbbcec150b0f6474d5a53339ffb6247b3da2fb8cf5d242991ad28000603718bb1", + "blockNumber": "0xb30594", + "gasUsed": "0x4df751", + "effectiveGasPrice": "0x3fac8d70", + "from": "0x2179a60856e37dfeaaca0ab043b931fe224b27b6", + "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", + "contractAddress": null + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1789755277412, + "chain": 11155111, + "commit": "e34ba78" +} \ No newline at end of file diff --git a/broadcast/Deploy-all.s.sol/11155111/run-latest.json b/broadcast/Deploy-all.s.sol/11155111/run-latest.json index 2f5c87d9..1b3d89f0 100644 --- a/broadcast/Deploy-all.s.sol/11155111/run-latest.json +++ b/broadcast/Deploy-all.s.sol/11155111/run-latest.json @@ -1,21 +1,22 @@ { "transactions": [ { - "hash": "0x4a490b66e54efac55904fede42a87c8080e6dbbcad02cd17506a5f6e26e5970e", + "hash": "0x2130e22012448a30e7f611d8afee6962358250cc0fd37711272b19c3a61c0711", "transactionType": "CREATE2", - "contractName": "PermissionedHooks", - "contractAddress": "0x8b0e8d467af81d9f5b49165e104a2fe1b98328c0", + "contractName": "UniversalRouter", + "contractAddress": "0x5093f1cded83d99ffed6602da6260672ae16787c", "function": null, + "functionAbi": null, "arguments": [ - "0xE03A1074c86CFeDd5C142C4F04F1a1536e203543", - "0xEe258C31574fb59660C23534E76AF6497c2e5683" + "(0x000000000022D473030F116dDEE9F6B43aC78BA3, 0xfFf9976782d46CC05630D1f6eBAb18b2324d6B14, 0xB7f907f7A9eBC822a80BD25E224be42Ce0A698A0, 0x0227628f3F023bb0B980b67D528571c95c6DaC1c, 0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f, 0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54, 0xE03A1074c86CFeDd5C142C4F04F1a1536e203543, 0xE6B0d96919334C33d06266d1420F97f6f434fA2B, 0x1238536071E1c677A632429e3655c799b22cDA52, 0x429ba70129df741B2Ca2a85BC3A2a3328e5c09b4, 0x5ef6C01E11889d86803e0B23e3cB3F9E9d97B662)" ], "transaction": { "from": "0x2179a60856e37dfeaaca0ab043b931fe224b27b6", "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", + "gas": "0x72067f", "value": "0x0", - "input": "0x0000000000000000000000000000000000000000000000000000000000000a5960c060405234801561000f575f80fd5b50604051611e12380380611e1283398101604081905261002e91610253565b6001600160a01b0382166080528161004530610058565b506001600160a01b031660a0525061028b565b6100d7816100d2604080516101c0810182525f60208201819052606082018190526080820181905260a08201819052610100820181905261012082018190526101408201819052610160820181905261018082018190526101a0820152600180825260c0820181905260e082018190529181019190915290565b6100da565b50565b80511515612000831615151415806100fe5750602081015115156110008316151514155b806101155750604081015115156108008316151514155b8061012c5750606081015115156104008316151514155b806101435750608081015115156102008316151514155b8061015a575060a081015115156101008316151514155b80610170575060c0810151151560808316151514155b80610186575060e0810151151560408316151514155b8061019d5750610100810151151560208316151514155b806101b45750610120810151151560108316151514155b806101cb5750610140810151151560088316151514155b806101e25750610160810151151560048316151514155b806101f95750610180810151151560028316151514155b8061021057506101a0810151151560018316151514155b1561022657610226630732d7b560e51b8361022a565b5050565b815f526001600160a01b03811660045260245ffd5b6001600160a01b03811681146100d7575f80fd5b5f8060408385031215610264575f80fd5b825161026f8161023f565b60208401519092506102808161023f565b809150509250929050565b60805160a051611afd6103155f395f81816101f301528181610ad101528181610b8f01528181610ca401528181610dad015261110a01525f818161031901528181610367015281816103f00152818161046f015281816104fe0152818161058d0152818161060a01528181610697015281816107200152818161089601526108ca0152611afd5ff3fe608060405234801561000f575f80fd5b50600436106100da575f3560e01c8063ab769d3711610088578063c4e833ce11610063578063c4e833ce1461029b578063dc4c90d314610314578063dc98354e1461033b578063e1b4af6914610288575f80fd5b8063ab769d37146101ee578063b47b2fb11461023a578063b6a8b0fa14610288575f80fd5b80636c2bbe7e116100b85780636c2bbe7e146101905780636fe7e6eb146101db5780639f063efc14610190575f80fd5b806321d0ee70146100de578063259982e514610127578063575e24b41461013a575b5f80fd5b6100f16100ec366004611563565b61034e565b6040517fffffffff0000000000000000000000000000000000000000000000000000000090911681526020015b60405180910390f35b6100f1610135366004611563565b6103d7565b61014d6101483660046115ea565b610454565b604080517fffffffff000000000000000000000000000000000000000000000000000000009094168452602084019290925262ffffff169082015260600161011e565b6101a361019e366004611644565b6104e4565b604080517fffffffff00000000000000000000000000000000000000000000000000000000909316835260208301919091520161011e565b6100f16101e93660046116e0565b610574565b6102157f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161011e565b61024d610248366004611737565b6105f0565b604080517fffffffff000000000000000000000000000000000000000000000000000000009093168352600f9190910b60208301520161011e565b6100f16102963660046117b8565b61067e565b604080516101c0810182525f60208201819052606082018190526080820181905260a08201819052610100820181905261012082018190526101408201819052610160820181905261018082018190526101a0820152600180825260c0820181905260e0820181905281830152905161011e9190611812565b6102157f000000000000000000000000000000000000000000000000000000000000000081565b6100f1610349366004611933565b610707565b5f3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146103be576040517fae18210a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6103cb868686868661078a565b90505b95945050505050565b5f3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610447576040517fae18210a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6103cb86868686866107bd565b5f80803373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146104c6576040517fae18210a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6104d388888888886107e9565b925092509250955095509592505050565b5f803373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610555576040517fae18210a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61056489898989898989610827565b9150915097509795505050505050565b5f3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146105e4576040517fae18210a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6103ce8585858561078a565b5f803373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610661576040517fae18210a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61066f88888888888861085b565b91509150965096945050505050565b5f3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146106ee576040517fae18210a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106fc87878787878761078a565b979650505050505050565b5f3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610777576040517fae18210a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610782848484610a63565b949350505050565b5f6040517f0a85dc2900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f259982e5000000000000000000000000000000000000000000000000000000006103ce868683610e94565b7f575e24b4000000000000000000000000000000000000000000000000000000005f80610817888885610e94565b505f905080955095509592505050565b5f806040517f0a85dc2900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8080610877610870368a90038a018a61198c565b60a0902090565b90505f80806108bc73ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001685610f35565b935050925092505f61090d857f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1661101a90919063ffffffff16565b90508c73ffffffffffffffffffffffffffffffffffffffff1663d737d0c76040518163ffffffff1660e01b8152600401602060405180830381865afa158015610958573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061097c9190611a3f565b73ffffffffffffffffffffffffffffffffffffffff16857f40e9cecb9f5f1f1c5b9c97dec2917b7ee92e57ba5563708daca94dd84ad7112f6109be8d60801d90565b6109c88e600f0b90565b60408051600f93840b81529190920b602082015273ffffffffffffffffffffffffffffffffffffffff8916818301526fffffffffffffffffffffffffffffffff86166060820152600288900b608082015262ffffff871660a082015290519081900360c00190a3507fb47b2fb1000000000000000000000000000000000000000000000000000000009c5f9c509a5050505050505050505050565b5f80610a726020850185611a61565b90505f610a856040860160208701611a61565b6040517fa625fcd400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660048301529192505f9182917f00000000000000000000000000000000000000000000000000000000000000009091169063a625fcd490602401602060405180830381865afa158015610b18573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b3c9190611a3f565b6040517fa625fcd400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8581166004830152918216929092141592505f9182917f0000000000000000000000000000000000000000000000000000000000000000169063a625fcd490602401602060405180830381865afa158015610bd4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bf89190611a3f565b73ffffffffffffffffffffffffffffffffffffffff161415905081158015610c1e575080155b15610c55576040517fcf43195200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b818015610d2757506040517f25efface00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906325efface90602401602060405180830381865afa158015610ceb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d0f9190611a3f565b73ffffffffffffffffffffffffffffffffffffffff16145b15610d5e576040517f437863e800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b808015610e3057506040517f25efface00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906325efface90602401602060405180830381865afa158015610df4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e189190611a3f565b73ffffffffffffffffffffffffffffffffffffffff16145b15610e67576040517f437863e800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b507fdc98354e00000000000000000000000000000000000000000000000000000000979650505050505050565b5f8373ffffffffffffffffffffffffffffffffffffffff1663d737d0c76040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ede573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f029190611a3f565b9050610f1c610f146020850185611a61565b8286856110c3565b610f2f610f146040850160208601611a61565b50505050565b5f805f805f610f4386611488565b6040517f1e2eaeaf000000000000000000000000000000000000000000000000000000008152600481018290529091505f9073ffffffffffffffffffffffffffffffffffffffff891690631e2eaeaf90602401602060405180830381865afa158015610fb1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fd59190611a7c565b905073ffffffffffffffffffffffffffffffffffffffff811695508060a01c60020b945062ffffff8160b81c16935062ffffff8160d01c169250505092959194509250565b5f8061102583611488565b90505f611033600383611a93565b6040517f1e2eaeaf0000000000000000000000000000000000000000000000000000000081526004810182905290915073ffffffffffffffffffffffffffffffffffffffff861690631e2eaeaf90602401602060405180830381865afa15801561109f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103ce9190611a7c565b6040517f25efface00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85811660048301525f917f0000000000000000000000000000000000000000000000000000000000000000909116906325efface90602401602060405180830381865afa158015611151573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111759190611a3f565b905073ffffffffffffffffffffffffffffffffffffffff81166111985750610f2f565b5f7fa8a1db4c000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000084160161129157600160f01b90508573ffffffffffffffffffffffffffffffffffffffff1663aeb555696040518163ffffffff1660e01b8152600401602060405180830381865afa158015611232573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112569190611ad1565b61128c576040517f888f378500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6112fc565b7fda667d1b000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008416016112fc57507e020000000000000000000000000000000000000000000000000000000000005b6040517ff493cec300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff86811660048301527fffff0000000000000000000000000000000000000000000000000000000000008316602483015287169063f493cec390604401602060405180830381865afa15801561138e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113b29190611ad1565b158061144957506040517fe73bce9500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff858116600483015287169063e73bce9590602401602060405180830381865afa158015611423573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114479190611ad1565b155b15611480576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050505050565b6040515f906114a7908390600690602001918252602082015260400190565b604051602081830303815290604052805190602001209050919050565b73ffffffffffffffffffffffffffffffffffffffff811681146114e5575f80fd5b50565b80356114f3816114c4565b919050565b5f60a08284031215611508575f80fd5b50919050565b5f60808284031215611508575f80fd5b5f8083601f84011261152e575f80fd5b50813567ffffffffffffffff811115611545575f80fd5b60208301915083602082850101111561155c575f80fd5b9250929050565b5f805f805f6101608688031215611578575f80fd5b8535611583816114c4565b945061159287602088016114f8565b93506115a18760c0880161150e565b925061014086013567ffffffffffffffff8111156115bd575f80fd5b6115c98882890161151e565b969995985093965092949392505050565b5f60608284031215611508575f80fd5b5f805f805f61014086880312156115ff575f80fd5b853561160a816114c4565b945061161987602088016114f8565b93506116288760c088016115da565b925061012086013567ffffffffffffffff8111156115bd575f80fd5b5f805f805f805f6101a0888a03121561165b575f80fd5b8735611666816114c4565b96506116758960208a016114f8565b95506116848960c08a0161150e565b94506101408801359350610160880135925061018088013567ffffffffffffffff8111156116b0575f80fd5b6116bc8a828b0161151e565b989b979a50959850939692959293505050565b8035600281900b81146114f3575f80fd5b5f805f8061010085870312156116f4575f80fd5b84356116ff816114c4565b935061170e86602087016114f8565b925060c085013561171e816114c4565b915061172c60e086016116cf565b905092959194509250565b5f805f805f80610160878903121561174d575f80fd5b8635611758816114c4565b955061176788602089016114f8565b94506117768860c089016115da565b9350610120870135925061014087013567ffffffffffffffff81111561179a575f80fd5b6117a689828a0161151e565b979a9699509497509295939492505050565b5f805f805f8061012087890312156117ce575f80fd5b86356117d9816114c4565b95506117e888602089016114f8565b945060c0870135935060e0870135925061010087013567ffffffffffffffff81111561179a575f80fd5b8151151581526101c081016020830151611830602084018215159052565b506040830151611844604084018215159052565b506060830151611858606084018215159052565b50608083015161186c608084018215159052565b5060a083015161188060a084018215159052565b5060c083015161189460c084018215159052565b5060e08301516118a860e084018215159052565b506101008301516118be61010084018215159052565b506101208301516118d461012084018215159052565b506101408301516118ea61014084018215159052565b5061016083015161190061016084018215159052565b5061018083015161191661018084018215159052565b506101a083015161192c6101a084018215159052565b5092915050565b5f805f60e08486031215611945575f80fd5b8335611950816114c4565b925061195f85602086016114f8565b915060c084013561196f816114c4565b809150509250925092565b803562ffffff811681146114f3575f80fd5b5f60a082840312801561199d575f80fd5b5060405160a0810167ffffffffffffffff811182821017156119e6577f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040526119f2836114e8565b8152611a00602084016114e8565b6020820152611a116040840161197a565b6040820152611a22606084016116cf565b6060820152611a33608084016114e8565b60808201529392505050565b5f60208284031215611a4f575f80fd5b8151611a5a816114c4565b9392505050565b5f60208284031215611a71575f80fd5b8135611a5a816114c4565b5f60208284031215611a8c575f80fd5b5051919050565b80820180821115611acb577f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b92915050565b5f60208284031215611ae1575f80fd5b81518015158114611a5a575f80fdfea164736f6c634300081a000a000000000000000000000000e03a1074c86cfedd5c142c4f04f1a1536e203543000000000000000000000000ee258c31574fb59660c23534e76af6497c2e5683", - "nonce": "0xb9", + "input": "0x00000000000000000000000000000000000000000000000000000000000000006102c080604052346104835761016081616269803803809161002182856104a2565b833981010312610483576040519061016082016001600160401b0381118382101761046f57604052610052816104c5565b8252610060602082016104c5565b9160208101928352610074604083016104c5565b9260408201938452610088606084016104c5565b93606083019485526080840151926080810193845260a08501519360a082019485526100b660c087016104c5565b9660c083019788526100ca60e088016104c5565b9160e084019283526100df61010089016104c5565b96876101008601526101086101406100fa6101208c016104c5565b9a8b610120890152016104c5565b998a6101408701526040519861011d8a610487565b6001600160a01b039081168a52998a1660208a019081529051945195519751604051919a9198908216979682169695821695911661015a89610487565b8852602088019687525192519151905160405190936001600160a01b039384169316608082016001600160401b0381118382101761046f5760405281526020810192835260408101918252606081019384526040516101ba6040826104a2565b600f815260208101906e2ab734bb32b939b0b62937baba32b960891b8252604051916101e76040846104a2565b600183526020830191601960f91b8352610200816104d9565b6101205261020d8461066f565b61014052519020918260e05251902080610100524660a0526040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261027660c0826104a2565b5190206080523060c052516001600160a01b0390811661016052905161018052905181166101a05290516101c0526101e091909152610200919091529051811661022052905181166102405290518116610260529051811661028052166102a052604051615ac190816107a8823960805181613dda015260a05181613e97015260c05181613da4015260e05181613e2901526101005181613e4f015261012051816104fc01526101405181610528015261016051818181612c3401528181612db00152613a3b015261018051818181612c5501528181612d8f0152613a1a01526101a05181611d7c01526101c05181611d5a01526101e0518181816105ee015281816107df01528181611213015281816117e001528181612721015281816144bf015281816147b2015281816148bd0152818161507e0152818161546d01526156020152610200518181816106b501528181610ddf01528181610e7001528181614530015281816146dd01528181615197015281816157780152615944015261022051818181611797015281816129c70152612b07015261024051818181610d37015281816128e401528181613192015261563801526102605181818161045e01528181611187015261252f015261028051818181610756015261127201526102a05181818161041a0152818161223301526123470152f35b634e487b7160e01b5f52604160045260245ffd5b5f80fd5b604081019081106001600160401b0382111761046f57604052565b601f909101601f19168101906001600160401b0382119082101761046f57604052565b51906001600160a01b038216820361048357565b908151602081105f14610553575090601f815111610513576020815191015160208210610504571790565b5f198260200360031b1b161790565b604460209160405192839163305a27a960e01b83528160048401528051918291826024860152018484015e5f828201840152601f01601f19168101030190fd5b6001600160401b03811161046f575f54600181811c91168015610665575b602082101461065157601f811161061f575b50602092601f82116001146105c057928192935f926105b5575b50508160011b915f199060031b1c1916175f5560ff90565b015190505f8061059d565b601f198216935f8052805f20915f5b86811061060757508360019596106105ef575b505050811b015f5560ff90565b01515f1960f88460031b161c191690555f80806105e2565b919260206001819286850151815501940192016105cf565b5f8052601f60205f20910160051c810190601f830160051c015b8181106106465750610583565b5f8155600101610639565b634e487b7160e01b5f52602260045260245ffd5b90607f1690610571565b908151602081105f1461069a575090601f815111610513576020815191015160208210610504571790565b6001600160401b03811161046f57600154600181811c9116801561079d575b602082101461065157601f811161076a575b50602092601f821160011461070957928192935f926106fe575b50508160011b915f199060031b1c19161760015560ff90565b015190505f806106e5565b601f1982169360015f52805f20915f5b868110610752575083600195961061073a575b505050811b0160015560ff90565b01515f1960f88460031b161c191690555f808061072c565b91926020600181928685015181550194019201610719565b60015f52601f60205f20910160051c810190601f830160051c015b81811061079257506106cb565b5f8155600101610785565b90607f16906106b956fe60806040526004361015610022575b3615610018575f80fd5b610020611794565b005b5f3560e01c80631a27b2011461010157806324856bc3146100fc5780633593564c146100f757806344684dc3146100f25780638021fef7146100ed578063817122dc146100e857806384b0196e146100e357806391dd7346146100de578063ab769d37146100d9578063d04d79a2146100d4578063d0c9f6cb146100cf578063d737d0c7146100ca578063dc4c90d3146100c55763fa461e330361000e5761080e565b6107ca565b610798565b610741565b6106e4565b6106a0565b6105bc565b6104e4565b610449565b610405565b61036a565b6102a9565b6101f8565b61014d565b6001600160a01b031690565b6001600160a01b0381160361012357565b5f80fd5b359061013282610112565b565b6001600160a01b03165f90815260026020526040902090565b346101235760403660031901126101235760043561016a81610112565b6024359060018060a01b03165f52600260205260405f20905f52602052602060ff60405f2054166040519015158152f35b9181601f84011215610123578235916001600160401b038311610123576020838186019501011161012357565b9181601f84011215610123578235916001600160401b038311610123576020808501948460051b01011161012357565b6040366003190112610123576004356001600160401b0381116101235761022390369060040161019b565b6024356001600160401b038111610123576102429036906004016101c8565b913330146102a0575f80516020615a158339815191525c6001600160a01b03166102915761027f93335f80516020615a158339815191525d610b4e565b5f5f80516020615a158339815191525d005b6337affdbf60e11b5f5260045ffd5b61002093610b4e565b6060366003190112610123576004356001600160401b038111610123576102d490369060040161019b565b6024356001600160401b038111610123576102f39036906004016101c8565b916044354211610339573330146102a0575f80516020615a158339815191525c6001600160a01b03166102915761027f93335f80516020615a158339815191525d610b4e565b632dfb7c8b60e11b5f5260045ffd5b8015150361012357565b6084359061013282610348565b359061013282610348565b610100366003190112610123576004356001600160401b0381116101235761039690369060040161019b565b906024356001600160401b038111610123576103b69036906004016101c8565b926044356064356103c5610352565b9060a43560c435979093906001600160401b038911610123576103ef61002099369060040161019b565b97909660e4359961132d565b5f91031261012357565b34610123575f366003190112610123576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610123575f366003190112610123576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b90602080835192838152019201905f5b8181106104ce5750505090565b82518452602093840193909201916001016104c1565b34610123575f366003190112610123576105766105207f00000000000000000000000000000000000000000000000000000000000000006134cb565b6105a461054c7f00000000000000000000000000000000000000000000000000000000000000006135ae565b610584610557611598565b91604051958695600f60f81b875260e0602088015260e087019061048d565b90858203604087015261048d565b904660608501523060808501525f60a085015283820360c08501526104b1565b0390f35b9060206105b992818152019061048d565b90565b34610123576020366003190112610123576004356001600160401b038111610123576105ec90369060040161019b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036106915761062591613666565b90818303610682575f5b838110610656576105a4604051610647602082611530565b5f8152604051918291826105a8565b8061067c6106676001938789610ad9565b3560f81c610676838787610b1c565b91613fcf565b0161062f565b63aaad13f760e01b5f5260045ffd5b63570c108560e11b5f5260045ffd5b34610123575f366003190112610123576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610123575f36600319011261012357604080516001600160a01b035f80516020615a958339815191525c1681525f80516020615a558339815191525c60208201525f80516020615a758339815191525c91810191909152606090f35b34610123575f366003190112610123576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b6001600160a01b03909116815260200190565b34610123575f366003190112610123576040516001600160a01b035f80516020615a158339815191525c168152602090f35b34610123575f366003190112610123576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610123576060366003190112610123576024356004356044356001600160401b0381116101235761084490369060040161019b565b92905f831392831580610a61575b610a5257610899926108819161086a8785018561166b565b90996001600160a01b039092169690959250611c04565b92909161088e84846136fe565b999198908a8a611cf0565b336001600160a01b0390911603610a43578015610a2a5790978891906001600160a01b03818116908a16105b156108dd575050505050505061002093503391611dc4565b909192939495989997506108f2866042111590565b1561099e57508651610944575b5050509461092361091661091e9361002098611e31565b939092611e47565b6116ed565b94801561093c5761093390611779565b945b3390611ee3565b505f94610935565b61095d610967938a93610962935f1461099757506116ed565b611702565b611739565b6109718686611757565b5180821061097f57806108ff565b631c1763d160e11b5f5261099492508661176b565b5ffd5b90506116ed565b969450909192505f80516020615a358339815191529796975c8711610a1b5783516109d4575b5050505061002093503391611dc4565b8661096261095d6109f7958b956109f1955f1461099757506116ed565b92611757565b51808210610a065780806109c4565b631c1763d160e11b5f5261099492508561176b565b6339cedf2960e11b5f5260045ffd5b91978892906001600160a01b03898116908216106108c5565b6332b13d9160e01b5f5260045ffd5b63316cf0eb60e01b5f5260045ffd5b505f831315610852565b929190333014610abc575f80516020615a158339815191525c6001600160a01b031661029157610aaa93335f80516020615a158339815191525d610b4e565b5f5f80516020615a158339815191525d565b61013293610b4e565b634e487b7160e01b5f52603260045260245ffd5b90821015610ae5570190565b610ac5565b903590601e198136030182121561012357018035906001600160401b0382116101235760200191813603831361012357565b90821015610ae557610b339160051b810190610aea565b9091565b6040906105b993928152816020820152019061048d565b90939284810361131e575f5b858110610b6957505050509050565b610b74818785610ad9565b35610b80828487610b1c565b6060929160019160f884901c607f1660218110156112a557601081101561113f576008811015610f265780610c495750610bca82610bc183610bfc95611c8f565b92909382612806565b92909360808301355f14610c4257610be0611bf2565b925b604081013590610bf760208201359135612984565b6132cf565b159081610c33575b50610c125750600101610b5a565b604051632c4029e960e01b8152918291610c2f9160048401610b37565b0390fd5b600160ff1b161590505f610c04565b3092610be2565b60018103610ca15750610c6382610bc183610c9595611c8f565b92909360808301355f14610c9a57610c79611bf2565b925b604081013590610c9060208201359135612984565b613200565b610bfc565b3092610c7b565b60028103610cd2575050610c9590610cb7611bf2565b90604081013591610ccb6020830135612984565b913561318d565b9192909160038103610d705750505f92935090610d32610cf3849383611c64565b610d24610d01939293611bf2565b916040519485936020850197632a2d80d160e01b89528035019060248601611aab565b03601f198101835282611530565b5190827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af190610d6a6118d5565b91610bfc565b9092915060048103610e9f575080356001600160a01b038116151580610e6d575b610dbc575b81610da76020610c95940135612984565b6040909101356001600160a01b0316916130c3565b6040516312f7fd6760e11b81529160208380610ddb8560048301610785565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa8015610e6857610c95935f91610e3a575b506001600160a01b038116610e32575b509150610d96565b91505f610e2a565b610e5b915060203d8111610e61575b610e538183611530565b810190611a96565b5f610e1a565b503d610e49565b6119cb565b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161515610d91565b60058103610ec65750806040610c9592013590610ebf6020820135612984565b9035613038565b60068103610eed5750806040610c9592013590610ee66020820135612984565b9035612fc2565b60078103610f145750806040610c9592013590610f0d6020820135612984565b9035612f08565b636bb50f4f60e11b5f5260045260245ffd5b90919060088103610f8657508181610f44610c9594610f4d946127e6565b93909282612806565b92909360808301355f14610f7f57610f63611bf2565b925b604081013590610f7a60208201359135612984565b612d53565b3092610f65565b60098103610fda57508181610f44610c9594610fa1946127e6565b92909360808301355f14610fd357610fb7611bf2565b925b604081013590610fce60208201359135612984565b612c11565b3092610fb9565b909290600a81036110275750505f92935081610ffa610d32928594611c39565b929091610d24611008611bf2565b9460405194859360208501976302b67b5760e41b895260248601611a48565b909290600b810361104c5750610c95915061104760208201359135612984565b612aec565b600c810361106e5750610c95915061106960208201359135612984565b6129b6565b600d81036110935750610c9591611084916127c9565b9061108d611bf2565b916128d5565b9092509050600e8103610f1457506040516370a0823160e01b815290602082806110c1843560048301610785565b0381848401356001600160a01b03165afa918215610e68575f9261110c575b5060400135111580610c95576040516351940b3960e11b6020820152909250610d6a8160248101610d24565b60409192506111319060203d8111611138575b6111298183611530565b8101906119bc565b91906110e0565b503d61111f565b90919060108103611155575090610c95916126f3565b93945092909150601181036111ba57505f91908161117384936126d7565b61118260405180938193611904565b0390827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af190610d6a6118d5565b601281036111d957505f919082916111736111d3611bf2565b826124e0565b601381036112465750505f809160405161120e81610d24602082019463313b65df60e11b865260a08101359060248401611929565b5190827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af190610d6a6118d5565b60148103610f1457505f91829161125d8183612401565b479161126e60405180938193611904565b03917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af190610d6a6118d5565b939490939192604083101561130457505060218103610f1457506112f5610d246112d15f948594613666565b60409593959491945194859360208501976324856bc360e01b89526024860161182f565b519082305af190610d6a6118d5565b9290949391604081145f14610f14575090610c9591612201565b631fec674760e31b5f5260045ffd5b95909698929a999791978042116103395761134a8c9a9b9c611b61565b5f5b8b81106114cb5750868661140b61141b958f611421999896610d24918f8f61139a906114139a60405161138781610d24602082018095611b93565b51902096156114c45733925b36916115ce565b6020815191012097604051978896602088019a8b93909796959260e095926101008601997f4b503a2e339bf072a489301f3eec7abaefc520266c462796ed9267bbcc6e407c8752602087015260408601526060850152608084015260018060a01b031660a083015260c08201520152565b51902061348f565b9236916115ce565b906134b5565b60018801611469575b61146197505f80516020615a958339815191525d5f80516020615a558339815191525d5f80516020615a758339815191525d610a6b565b610132611bc0565b61148d6114868961147984610134565b905f5260205260405f2090565b5460ff1690565b6114b6576114b16114a46114619961147984610134565b805460ff19166001179055565b61142a565b623f613760e71b5f5260045ffd5b5f92611393565b806114e08d9f9e9d600193611393918f610b1c565b602081519101206114f18285611757565b52019c9a9b9c61134c565b634e487b7160e01b5f52604160045260245ffd5b60a081019081106001600160401b0382111761152b57604052565b6114fc565b601f909101601f19168101906001600160401b0382119082101761152b57604052565b604051906101326101a083611530565b60405190610132606083611530565b6040519061013260a083611530565b6001600160401b03811161152b5760051b60200190565b604051906115a7602083611530565b5f808352366020840137565b6001600160401b03811161152b57601f01601f191660200190565b9291926115da826115b3565b916115e86040519384611530565b829481845281830111610123578281602093845f960137010152565b9080601f83011215610123578160206105b9933591016115ce565b92919061162b81611581565b936116396040519586611530565b602085838152019160051b810192831161012357905b82821061165b57505050565b813581526020918201910161164f565b6080818303126101235780356001600160401b0381116101235782611691918301611604565b9260208201356116a081610112565b9260408301356001600160401b03811161012357830181601f82011215610123576060918160206116d39335910161161f565b92013590565b634e487b7160e01b5f52601160045260245ffd5b600160ff1b81146116fd575f0390565b6116d9565b6a0c097ce7bc90715b34b9f160241b8082029291801590840490911417156116fd57565b818102929181159184041417156116fd57565b8115611743570490565b634e487b7160e01b5f52601260045260245ffd5b8051821015610ae55760209160051b010190565b600452602452604452606490565b5f198101919082116116fd57565b919082039182116116fd57565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161415806117dc575b6117cd57565b631c5deabb60e11b5f5260045ffd5b50337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614156117c7565b908060209392818452848401375f828201840152601f01601f1916010190565b9391906118449160408652604086019161180f565b926020818503910152808352602083019060208160051b85010193835f91601e1982360301905b84841061187c575050505050505090565b90919293949596601f19828203018752873583811215610123578401602081019190356001600160401b038111610123578036038313610123576118c6602092839260019561180f565b9901970195940192919061186b565b3d156118ff573d906118e6826115b3565b916118f46040519384611530565b82523d5f602084013e565b606090565b908092918237015f815290565b62ffffff81160361012357565b8060020b0361012357565b90929160a0906119b0608060c0850196803561194481610112565b600180871b03168652602081013561195b81610112565b600180871b0316602087015262ffffff604082013561197981611911565b166040870152606081013561198d8161191e565b60020b606087015201356119a081610112565b6001600160a01b03166080850152565b600180831b0316910152565b90816020910312610123575190565b6040513d5f823e3d90fd5b359065ffffffffffff8216820361012357565b65ffffffffffff611a42606080938035611a0281610112565b6001600160a01b031686526020810135611a1b81610112565b6001600160a01b0316602087015283611a36604083016119d6565b166040870152016119d6565b16910152565b60a06105b9959361010093600180841b03168352611a6960208401826119e9565b6080810135611a7781610112565b600180841b031682840152013560c08201528160e0820152019161180f565b9081602091031261012357516105b981610112565b6001600160a01b0390911681526060602082015290939260c08201929091853536879003601e190181121561012357860160208101949035906001600160401b038211610123578160071b360386136101235781906060808501525260e0820194905f5b818110611b4357505050604086611b2f6119a060206105b9999a01610127565b013560a0820152604081850391015261180f565b90919560808082611b566001948b6119e9565b019701929101611b0f565b90611b6b82611581565b611b786040519182611530565b8281528092611b89601f1991611581565b0190602036910137565b80516020909101905f5b818110611baa5750505090565b8251845260209384019390920191600101611b9d565b5f5f80516020615a958339815191525d5f5f80516020615a558339815191525d5f5f80516020615a758339815191525d565b5f80516020615a158339815191525c90565b909163ffffffff82351682019263ffffffff84351692602080860195850101910110611c2c57565b633b99b53d5f526004601cfd5b909163ffffffff60c08301351682019263ffffffff84351692602080860195850101910110611c2c57565b909163ffffffff60208301351682019263ffffffff84351692602080860195850101910110611c2c57565b909163ffffffff60608301351682019263ffffffff84351692602080860195850101910110611c2c57565b6001600160f81b0319815260609190911b6001600160601b03191660018201526015810191909152603581019190915260550190565b6105b992611da992906001600160a01b0380831690841611611dae575b604080516001600160a01b0394851660208201908152949093169083015262ffffff166060808301919091528152611d46608082611530565b519020604051611da181610d2460208201947f0000000000000000000000000000000000000000000000000000000000000000907f000000000000000000000000000000000000000000000000000000000000000087611cba565b519020610106565b610106565b909190611d0d565b90601482018092116116fd57565b909291906001600160a01b0384163003611de2576101329350613038565b91926001600160a01b038411611e0557610132936001600160a01b03169261318d565b63c4bd89a960e01b5f5260045ffd5b909291928360041161012357831161012357600401916003190190565b9190918260171161012357601701916016190190565b600160ff1b8110156101235790565b959493611e7260609492611e8f9460808a5260808a019161180f565b6001600160a01b03909216602088015286820360408801526104b1565b930152565b9190826040910312610123576020825192015190565b6001600160a01b039182168152911515602083015260408201929092529116606082015260a0608082018190526105b99291019061048d565b92919395949094611ef483866136fe565b6001600160a01b038084169082161098899590939092611f15929091611cf0565b611f1e90610106565b611f2790610106565b94845f14604098610d245f96611f7195611f5594611fb9576401000276a49e5b8d5196879560208701611e56565b8751630251596160e31b8152998a978896879560048701611eaa565b03925af18015610e68575f925f91611f8857509192565b9050611fad91925060403d604011611fb2575b611fa58183611530565b810190611e94565b919092565b503d611f9b565b73fffd8963efd1fc6a506488495d951d5263988d259e611f47565b91939490611fe284866136fe565b6001600160a01b038082169084161097889490939092612003929091611cf0565b61200c90610106565b61201590610106565b93835f1496611f555f94610d2486611f719560409c611fb9576401000276a49e8d5196879560208701611e56565b63ffffffff81160361012357565b359061013282612043565b602081830312610123578035906001600160401b03821161012357016101a0818303126101235761208b611553565b9161209582610127565b83526120a360208301610127565b60208401526120b460408301610127565b60408401526120c560608301610127565b60608401526080820135608084015260a082013560a084015260c082013560c08401526120f460e08301610127565b60e08401526121066101008301612051565b6101008401526121196101208301612051565b61012084015261212c6101408301612051565b610140840152610160820135916001600160401b0383116101235761215961018092612165948301611604565b6101608501520161035f565b61018082015290565b6001600160a01b039182168152918116602083015291821660408201529181166060830152608082019290925260a081019290925260c0820192909252911660e08201526105b994936101809391926121f3926121e5916121d79063ffffffff16610100870152565b63ffffffff16610120850152565b63ffffffff16610140830152565b81610160820152019061048d565b61220d9181019061205c565b6080810151905f600160ff1b831461237a575b61018082015115612330575081905b80517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316929061226690610106565b6122736020840151610106565b6122806040850151610106565b9161228e6060860151610106565b9460a08101519060c08101516122a760e0830151610106565b61010083015163ffffffff16906122c661012085015163ffffffff1690565b926101606122dc61014087015163ffffffff1690565b950151958c3b1561012357604051633dc9c91960e11b81529d8e9c8d9b8c9b6123089b60048e0161216e565b03915a945f95f18015610e685761231c5750565b8061232a5f61013293611530565b806103fb565b9061237583612345611da96040850151610106565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690613730565b61222f565b915061238a610180820151151590565b15612396574791612220565b6123a9611da9611da96040840151610106565b602060405180926370a0823160e01b825281806123c93060048301610785565b03915afa908115610e68575f916123e2575b5091612220565b6123fb915060203d602011611138576111298183611530565b5f6123db565b80356322b9af7160e01b6001600160e01b03198216016124c4575061242d826124339361242d93611e14565b90611c04565b5f5b81811061244157505050565b61246f612469612463612455848688610ad9565b356001600160f81b03191690565b60f81c90565b60ff1690565b80159081156124b9575b81156124ae575b81156124a3575b5061249457600101612435565b635d1d0f9f60e01b5f5260045ffd5b60039150145f612487565b600181149150612480565b600481149150612479565b63f801e52560e01b5f526001600160e01b03191660045260245ffd5b80356001600160e01b031916630624e65f60e11b811480156126c7575b80156126b7575b156126a557506040516331a9108f60e11b815260049182013591810182905290916001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690602083602481855afa928315610e68575f93612684575b506001600160a01b03818116908416811492908315612624575b5082156125a8575b50501590505b6125965750565b63bb25d4c560e01b5f5260045260245ffd5b60405163e985e9c560e01b81526001600160a01b0394851660048201529190931660248201529160209150829060449082905afa8015610e685761258f915f916125f5575b505f80612589565b612617915060203d60201161261d575b61260f8183611530565b810190612abc565b5f6125ed565b503d612605565b60405163020604bf60e21b81526004810187905291935090602081602481875afa908115610e68575f91612665575b506001600160a01b031614915f612581565b61267e915060203d602011610e6157610e538183611530565b5f612653565b61269e91935060203d602011610e6157610e538183611530565b915f612567565b63f801e52560e01b5f5260045260245ffd5b50630852cd8d60e31b8114612504565b5063fc6f786560e01b81146124fd565b356001600160e01b03191663853d008560e01b81016126a55750565b6040516348c8949160e01b815260206004820152915f918391829161271c91602484019161180f565b0381837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af18015610e68576127585750565b3d805f833e6127678183611530565b810190602081830312610123578051906001600160401b038211610123570181601f8201121561012357805161279c816115b3565b926127aa6040519485611530565b81845260208284010111610123575f928160208094018483015e010152565b918235830191602083359481850194038560051b010111611c2c57565b916060830135830191602083359481850194038560051b010111611c2c57565b9160a0830135830191602083359481850194038560051b010111611c2c57565b9190811015610ae55760071b0190565b356105b981610112565b60208082528101839052604001915f5b81811061285d5750505090565b909192608080600192863561287181610112565b848060a01b03168152602087013561288881610112565b848060a01b0316602082015260408701356128a281610112565b848060a01b0316604082015260608701356128bc81610112565b848060a01b031660608201520194019101919091612850565b90915f5b8381106129485750507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691823b1561012357612937925f9283604051809681958294630d58b1db60e01b845260048401612840565b03925af18015610e685761231c5750565b61295b612956828686612826565b612836565b6001600160a01b03838116911603612975576001016128d9565b63e700287760e01b5f5260045ffd5b6001600160a01b038116600181036129aa5750505f80516020615a158339815191525c90565b6002036105b957503090565b6040516370a0823160e01b815290917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169060208380612a013060048301610785565b0381855afa928315610e68575f93612a9b575b508210612a8c5781612a2557505050565b803b1561012357604051632e1a7d4d60e01b815260048101839052905f908290602490829084905af18015610e6857612a78575b50306001600160a01b03831603612a6f575b5050565b6101329161381f565b8061232a5f612a8693611530565b5f612a59565b631a84bc4160e21b5f5260045ffd5b612ab591935060203d602011611138576111298183611530565b915f612a14565b9081602091031261012357516105b981610348565b6001600160a01b039091168152602081019190915260400190565b90600160ff1b8103612bd1575047905b81612b05575050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691823b1561012357604051630d0e30db60e41b81525f8160048185885af18015610e6857612bbd575b50306001600160a01b03831603612b6f575b505050565b612b93926020925f60405180968195829463a9059cbb60e01b845260048401612ad1565b03925af18015610e6857612ba5575b50565b612ba29060203d60201161261d5761260f8183611530565b8061232a5f612bcb93611530565b5f612b58565b9047821115612afc57631a84bc4160e21b5f5260045ffd5b9015610ae55790565b9060011015610ae55760200190565b9190811015610ae55760051b0190565b9290939196959460028310612d445786151580612d30575b612d215793965f94907f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000005f1986018681116116fd579190825b612cbf575050508811612cb0576101329785612cab92612ca66129568787612be9565b611dc4565b6138d7565b6345585e0b60e11b5f5260045ffd5b919a9750905f198b018b81116116fd57612d088c612cf6612ce4612d0f948b8b612c01565b3591612cef83610112565b8a8a612c01565b3590612d0182610112565b8486614214565b919a6142a8565b9a80156116fd575f1901919082612c83565b630c12651d60e31b5f5260045ffd5b505f1983018381116116fd57871415612c29565b632b94ab4360e21b5f5260045ffd5b9294969095919660028510612d445781151580612ef6575b612d2157612dd4612d7f6129568789612be9565b612d8c612956888a612bf2565b907f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000613cc1565b968781612edd575b505050612dfb611da9611da9612956612df488611779565b888a612c01565b91604051966370a0823160e01b885260208880612e1b8860048301610785565b0381875afa958615610e6857612e5f985f97612eaf575b509085612e44949392602098996138d7565b60405180809681946370a0823160e01b835260048301610785565b03915afa8015610e6857612e7a925f91612e90575b50611787565b10612e8157565b631093d5f360e31b5f5260045ffd5b612ea9915060203d602011611138576111298183611530565b5f612e74565b60209750612e4494939291612ed188928a3d8c11611138576111298183611530565b98509192939450612e32565b612eee92612ca6612956898b612be9565b5f8087612ddc565b50612f0085611779565b821415612d6b565b670de0b6b3a76400008311612fb3576001600160a01b031680612f4a5750612f44612f366101329347611726565b670de0b6b3a7640000900490565b9061381f565b906040516370a0823160e01b815260208180612f693060048301610785565b0381865afa908115610e685761013294612f8e92612f36925f91612f94575b50611726565b91613cd8565b612fad915060203d602011611138576111298183611530565b5f612f88565b6390f5ebeb60e01b5f5260045ffd5b6001600160a01b031680612fde5750612f446101329247613d47565b6040516370a0823160e01b8152306004820152909190602081602481865afa938415610e685761013294612f8e925f91613019575b50613d47565b613032915060203d602011611138576111298183611530565b5f613013565b9091906001600160a01b03168061305357506101329161381f565b600160ff1b8214613069575b9161013292613cd8565b6040516370a0823160e01b815230600482015292909150602083602481855afa8015610e6857610132935f916130a4575b509190925061305f565b6130bd915060203d602011611138576111298183611530565b5f61309a565b9091906001600160a01b0316806130e6575047908110612a8c5780612a6f575050565b91604051916370a0823160e01b8352602083806131063060048301610785565b0381875afa928315610e68575f93613142575b508210613133578161312a57505050565b61013292613cd8565b630ceb95c760e31b5f5260045ffd5b61315c91935060203d602011611138576111298183611530565b915f613119565b6001600160a01b039182168152918116602083015291821660408201529116606082015260800190565b9290917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690813b15610123575f80946131e560405197889687958694631b63c28b60e11b865260048601613163565b03925af18015610e68576131f65750565b5f61013291611530565b9492909695939193861515806132a5575b6132965761322761322d9161325198369161161f565b94613d82565b8351801561328e5761323e90611779565b945b61324c61091e89611e47565b611ee3565b9091901561327f5750613263906116ed565b0361327057610132613d70565b636a70124760e11b5f5260045ffd5b61328991506116ed565b613263565b505f94613240565b630e0fbd8760e21b5f5260045ffd5b506132b96132b4601789611726565b611db6565b831415613211565b5f1981146116fd5760010190565b97939795909192949587151596878098613478575b613296578998600160ff1b851461340b575b909950879391965f92808b8a61330a611598565b9e8f9061335493613346935b61332a613324836042111590565b98611e47565b908815613401575061333e30925b8a613d93565b929091611fd4565b9091901561099757506116ed565b966133c6575b50156133a557309961336b91611e31565b9190978892809c879561337d906132c1565b9c8d956133549461333e613346959e50509c9e509495969290919e8f90928e9a95938e613316565b5050505093509350935050106133b757565b631ce9aa4b60e11b5f5260045ffd5b6133d39061096288611702565b6133de858588612c01565b358082106133ec575061335a565b632d0a7cdd60e21b5f5261099492508561176b565b61333e9092613338565b935097611da9611da961341e9289614419565b976020604051809a6370a0823160e01b8252818061343f3060048301610785565b03915afa8015610e68578a995f91613459575b50936132f6565b613472915060203d602011611138576111298183611530565b5f613452565b506134876132b460178b611726565b8a14156132e4565b60429061349a613da1565b906040519161190160f01b8352600283015260228201522090565b6105b9916134c291613ebd565b90929192613f15565b60ff81146134dc576105b990613f91565b506040515f80548060011c916001821680156135a4575b60208410811461359057838552849260208401919081156135775750600114613524575b506105b992500382611530565b5f80805291507f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b84831061356057506105b99350015f613517565b80548284015285935060209092019160010161354c565b60ff19168252506105b993151560051b0190505f613517565b634e487b7160e01b5f52602260045260245ffd5b92607f16926134f3565b60ff81146135bf576105b990613f91565b506040515f6001548060011c9160018216801561365c575b6020841081146135905783855284926020840191908115613577575060011461360757506105b992500382611530565b60015f90815291507fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b84831061364557506105b99350015f613517565b805482840152859350602090920191600101613631565b92607f16926135d7565b604081351891606082019363ffffffff6040840135169363ffffffe0601f8601169060608201602086013518179084019260608401359463ffffffff861694641fffffffe0608082019760051b1680915f925b8084106136d1575060809250010191011017611c2c57565b90916020809163ffffffe0601f60808089890101359b848d18179b880101350116010193019291906136b9565b90602b1161372157803591601762ffffff8460601c9460481c1692013560601c90565b633b99b53d60e01b5f5260045ffd5b919091613797604051926137688461375a602082019363095ea7b360e01b85528860248401612ad1565b03601f198101865285611530565b83516001600160a01b038416915f91829182855af1906137866118d5565b826137ed575b50816137e657501590565b6137a057505050565b60405163095ea7b360e01b60208201526001600160a01b0390931660248401525f6044840152610132926137e1906137db8160648101610d24565b826141a9565b6141a9565b3b15919050565b80519192508115918215613805575b5050905f61378c565b6138189250602080918301019101612abc565b5f806137fc565b5f80809381935af11561382e57565b60405162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b6044820152606490fd5b51906001600160701b038216820361012357565b908160609103126101235761389181613869565b9160406138a060208401613869565b9201516105b981612043565b90926080926105b995948352602083015260018060a01b03166040820152816060820152019061048d565b949392939190916139016138ee6129568589612be9565b6138fb612956868a612bf2565b90614323565b50915f19840195600119850191831515985f955b898710613929575050505050505050505050565b613937612956888a85612c01565b9361394961295660018a018b86612c01565b604051630240bc6b60e21b8152909590916001600160a01b038116606084600481845afa918215610e68576139c7945f905f94613c8d575b506001600160a01b03948516966001600160701b039485169516871493168315613c83579060209194965b60405180809881946370a0823160e01b835260048301610785565b03915afa978815610e68578f6139ef8f9a978f978e9988915f91613c65575b5003968761433a565b9315613c5d578c5f94965b8c821015613c4f57613a17612956613a5f9260028501908d612c01565b847f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000614395565b9890985b9b83613c39575b5050505f14613bd2576040516370a0823160e01b81526001600160a01b039190911694909260208480613aa08a60048301610785565b0381895afa938415610e68575f94613bb2575b50613abc611598565b92803b15610123575f92838993613ae96040519788968795869463022c0d9f60e01b8652600486016138ac565b03925af18015610e6857613b9e575b50602060405180946370a0823160e01b82528180613b198960048301610785565b03915afa908115610e6857613b47935f92613b7e575b5090036a0c097ce7bc90715b34b9f160241b02611739565b613b5288888c612c01565b35808210613b695750506001905b96019592613915565b6365d564a560e01b5f5261099492508861176b565b613b9791925060203d8111611138576111298183611530565b905f613b2f565b8061232a5f613bac93611530565b5f613af8565b613bcb91945060203d8111611138576111298183611530565b925f613ab3565b5093929150613bdf611598565b93803b15610123575f92838593613c0c6040519889968795869463022c0d9f60e01b8652600486016138ac565b03925af1918215610e6857600192613c25575b50613b60565b8061232a5f613c3393611530565b5f613c1f565b613c439350612c01565b3515158c8f8d90613a6a565b5050955087958c8c5f613a63565b8c5f966139fa565b613c7d915060203d8111611138576111298183611530565b5f6139e6565b95602091906139ac565b9050613cb191935060603d8111613cba575b613ca98183611530565b81019061387d565b5092905f613981565b503d613c9f565b90916105b993613cd091614323565b9290916143a6565b5f91826044926020956040519363a9059cbb60e01b8552600485015260248401525af13d15601f3d1160015f511416171615613d1057565b60405162461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b6044820152606490fd5b6127108211613d615761271091613d5d91611726565b0490565b636f5500f360e11b5f5260045ffd5b5f5f80516020615a358339815191525d565b5f80516020615a358339815191525d565b90602b116101235790602b90565b307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161480613e94575b15613dfc577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a08152613e8e60c082611530565b51902090565b507f00000000000000000000000000000000000000000000000000000000000000004614613dd3565b8151919060418303613eed57613ee69250602082015190606060408401519301515f1a90614428565b9192909190565b50505f9160029190565b60041115613f0157565b634e487b7160e01b5f52602160045260245ffd5b613f1e81613ef7565b80613f27575050565b613f3081613ef7565b60018103613f475763f645eedf60e01b5f5260045ffd5b613f5081613ef7565b60028103613f6b575063fce698f760e01b5f5260045260245ffd5b80613f77600392613ef7565b14613f7f5750565b6335e2f38360e21b5f5260045260245ffd5b60ff811690601f8211613fc05760405191613fad604084611530565b6020808452838101919036833783525290565b632cd44ac360e21b5f5260045ffd5b909190600b8110156140635760078103613ff65750613ff19061013292614b43565b614e86565b60068103614011575061400c9061013292614913565b614d65565b6009810361402c57506140279061013292614b43565b614ba8565b916008831461404f57505061099491505b635cda29d760e01b5f52600452602490565b61013292509061405e91614913565b6149ca565b600c81036140b25750614075916148a3565b9061407f816148b6565b9180831161409b57509061013291614095611bf2565b906147a9565b6312bacdd360e01b5f52600452602482905260445ffd5b600f810361410157506140c4916148a3565b906140ce816144b8565b918083106140ea575090610132916140e4611bf2565b9061452c565b638b063d7360e01b5f52600452602482905260445ffd5b600b8103614135575061412f61411d61412992610132946144a0565b938294939291936146bf565b926146da565b916147a9565b600e8103614167575061415b61415161416192610132946144a0565b9282949291612984565b926146ab565b9161452c565b916010831461417c575050610994915061403d565b610132925061419161419a92614161926144a0565b92919390612984565b916141a4846144b8565b613d47565b5f806141d19260018060a01b03169360208151910182865af16141ca6118d5565b90836157e1565b80519081151591826141f9575b50506141e75750565b635274afe760e01b5f5260045260245ffd5b61420c9250602080918301019101612abc565b155f806141de565b9193929061422561422d9286614323565b9181946143a6565b604051630240bc6b60e21b815290936060826004816001600160a01b0389165afa918215610e68575f905f93614283575b506001600160701b03928316939216916001600160a01b03918216911603610b335791565b905061429f91925060603d606011613cba57613ca98183611530565b5091905f61425e565b908015801561431b575b61430c57816142c091611726565b916103e88302928084046103e814901517156116fd57818103918183116116fd576103e583029283046103e514911417156116fd576142fe91611739565b600181018091116116fd5790565b633dce448b60e11b5f5260045ffd5b5082156142b2565b6001600160a01b038281169082161015610b335791565b81159283801561438d575b61430c576103e58202918083046103e514901517156116fd576143689082611726565b926103e883029283046103e81417156116fd5781018091116116fd576105b991611739565b508015614345565b92614225906143a393614323565b91565b6040516001600160601b0319606094851b8116602083019081529590941b9093166034840152602883529092909161440991906143e4604882611530565b5190206143fb604051948592602084019586611cba565b03601f198101845283611530565b905190206001600160a01b031690565b90601411613721573560601c90565b91906fa2a8918ca85bafe22016d0b997e4df60600160ff1b038411614495579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15610e68575f516001600160a01b0381161561448b57905f905f90565b505f906001905f90565b5050505f9160039190565b90606011611c2c578035916040602083013592013590565b6144e381307f0000000000000000000000000000000000000000000000000000000000000000614ff9565b905f82126144ef575090565b634c085bf160e01b5f9081526001600160a01b0391909116600452602490fd5b6001600160a01b039091168152600160f01b602082015260400190565b91907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168061464957505f5b6001600160a01b0316614577575b61013292615075565b60405163aeb5556960e01b81526001600160a01b03841690602081600481855afa908115610e68575f9161462a575b501561461b5760206145d6916145ba611bf2565b90604051808095819463f493cec360e01b83526004830161450f565b03915afa908115610e68575f916145fc575b5061456e575b6282b42960e81b5f5260045ffd5b614615915060203d60201161261d5761260f8183611530565b5f6145e8565b63888f378560e01b5f5260045ffd5b614643915060203d60201161261d5761260f8183611530565b5f6145a6565b6040516312f7fd6760e11b815290602090829081806146746001600160a01b038a1660048301610785565b03915afa908115610e68575f9161468c575b50614560565b6146a5915060203d602011610e6157610e538183611530565b5f614686565b90816146bb576105b991506144b8565b5090565b156146d6575f80516020615a158339815191525c90565b3090565b907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168061474757505f5b6001600160a01b03169182158015614739575b61472f5750506105b99061512f565b6105b9925061510a565b50600160ff1b811415614720565b6040516312f7fd6760e11b815290602090829081806147726001600160a01b03881660048301610785565b03915afa908115610e68575f9161478a575b5061470d565b6147a3915060203d602011610e6157610e538183611530565b5f614784565b908215612b6a577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691823b1561012357604051632961046560e21b81525f81806147ff8560048301610785565b038183885af18015610e685761488f575b506001600160a01b03811661485e575050602090600460405180948193630476982d60e21b83525af18015610e68576148465750565b612ba29060203d602011611138576111298183611530565b5f936020939261486d92615195565b600460405180948193630476982d60e21b83525af18015610e68576148465750565b8061232a5f61489d93611530565b5f614810565b9190604011611c2c576020823592013590565b6148e181307f0000000000000000000000000000000000000000000000000000000000000000614ff9565b905f82136148f357506105b9906116ed565b63019a8d9360e51b5f9081526001600160a01b0391909116600452602490fd5b9061016011611c2c5780350190565b356001600160801b03811681036101235790565b356105b981610348565b91908260a09103126101235760405161495881611510565b6080808294803561496881610112565b8452602081013561497881610112565b6020850152604081013561498b81611911565b6040850152606081013561499e8161191e565b60608501520135916149af83610112565b0152565b6001600160801b0390811660045216602452604490565b6149d660c08201614922565b6001600160801b03811615614b01575b60a08201906149f482614936565b6001600160801b0382169290614a26908490614a14610120880188610aea565b929091614a21368a614940565b61540a565b91614a39614a3383614936565b846154c3565b6001600160801b038116949091908510614aed57505090614a5c614a6292614936565b906154eb565b9160e0810192614a80614a7485614922565b6001600160801b031690565b6001600160801b03821694908511614ad157505061010001359182614aa457505050565b610962614ab092611702565b90808210614abc575050565b63efc8d8eb60e01b5f5260045260245260445ffd5b90614ade61099492614922565b6312bacdd360e01b5f526149b3565b630686776b60e31b5f5261099492506149b3565b50614b0e60a08201614936565b15614b3457614b2f614b2a614b2560208401612836565b6148b6565b61535e565b6149e6565b614b2f614b2a614b2583612836565b9060e011611c2c5780350190565b903590601e198136030182121561012357018035906001600160401b03821161012357602001918160051b3603831361012357565b9190811015610ae55760051b81013590609e1981360301821215610123570190565b906020820191614bb88382614b51565b5f929150614bc860608301614922565b90614bd283612836565b906001600160801b03831615614d51575b6040840181614bf28287614b51565b801515948592509082614d46575b5050614d37579193825b614c3957505050505060809192935001614c26614a7482614922565b6001600160801b03831611614ad1575050565b614c5d919293949650614c64614c4f8a88614b51565b5f1987019491859190614b86565b9586615521565b6001600160801b03831692901591614c8e90839085614c8660808c018c610aea565b93909261540a565b90614c9983836154c3565b6001600160801b038116949091908510614aed5750508894939291614cbd916154eb565b97614cdb575b5050614ccf8694612836565b925f1901919382614c0a565b614cff906001600160801b038916906a0c097ce7bc90715b34b9f160241b02611739565b90614d1481614d0e858a614b51565b90612c01565b3590818310614d235750614cc3565b63e651804360e01b5f52610994935061176b565b63115eb5b360e31b5f5260045ffd5b14159050815f614c00565b9150614d5f614b2a826148b6565b91614be3565b614d7160c08201614922565b906001600160801b03821615614e47575b614dc860a08201614dc2614dbc614d9883614936565b6001600160801b0390961695614dad876116ed565b90614a14610120880188610aea565b91614936565b906154c3565b9060e0810191614dda614a7484614922565b6001600160801b03821693908410614e2b57505061010001359182614dfe57505050565b610962614e0a92611702565b90808210614e16575050565b634713c18b60e01b5f5260045260245260445ffd5b90614e3861099492614922565b638b063d7360e01b5f526149b3565b9050614e5560a08201614936565b15614e7457614e6e614b2a614e6983612836565b6144b8565b90614d82565b614e6e614b2a614e6960208401612836565b6020810190614e958282614b51565b5f93915080614ea384612836565b92614eb060608601614922565b6001600160801b03811615614fe7575b6040860191614ecf8388614b51565b801515958692509082614fdc575b5050614d37575f9591949395945b848610614f1b5750505050505050608001614f08614a7482614922565b6001600160801b03831610614e2b575050565b869850614f6a614f65614f3f614c5d89614f39878e9d9b9c9d614b51565b90614b86565b6001600160801b03909416939190614f5a6080880188610aea565b9184875f039161540a565b6154c3565b98614f88575b506001614f7d8993612836565b960194939591614eeb565b614fab906001600160801b038a166a0c097ce7bc90715b34b9f160241b02611739565b614fb987614d0e868b614b51565b35808210614fc75750614f70565b63a9b7edf760e01b5f5261099492508761176b565b14159050855f614edd565b50614ff4614b2a856144b8565b614ec0565b6001600160a01b039182165f9081529282166020908152604093849020935163789add5560e11b815260048101949094529183916024918391165afa908115610e68575f91615046575090565b90506020813d60201161506d575b8161506160209383611530565b81010312610123575190565b3d9150615054565b908215612b6a577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561012357604051630b0d9c0960e01b81526001600160a01b03938416600482015291909216602482015260448101929092525f908290606490829084905af18015610e68576150f55750565b806151015f8093611530565b80031261012357565b90600160ff1b8203615120576105b9915061512f565b816146bb576105b991506148b6565b6001600160a01b03811661514257504790565b6040516370a0823160e01b815230600482015290602090829060249082906001600160a01b03165afa908115610e68575f9161517c575090565b6105b9915060203d602011611138576111298183611530565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316806152fc57505f5b6001600160a01b0381169182156152ee5760405163aeb5556960e01b81526001600160a01b03919091169390602081600481885afa908115610e68575f916152cf575b501561461b57615237602061521d611bf2565b6040518093819263f493cec360e01b83526004830161450f565b0381885afa908115610e68575f916152b0575b50156145ee576001600160a01b03811630036152a3575050828261526d926156e5565b803b1561012357604051630934f6c760e21b815260048101929092525f908290602490829084905af18015610e685761231c5750565b610132949391925061562a565b6152c9915060203d60201161261d5761260f8183611530565b5f61524a565b6152e8915060203d60201161261d5761260f8183611530565b5f61520a565b9050610132939291506155f3565b6040516312f7fd6760e11b815290602090829081806153276001600160a01b03881660048301610785565b03915afa908115610e68575f9161533f575b506151c7565b615358915060203d602011610e6157610e538183611530565b5f615339565b6001600160801b038116919082900361537357565b6393dafdf160e01b5f5260045ffd5b6001600160a01b039091169052565b81516001600160a01b03908116825260208084015182168184015260408085015162ffffff168185015260608086015160020b908501526080948501518316948401949094528451151560a084015284015160c083015291909201511660e08201526105b992906101209081610100820152019161180f565b90916020939461544d6154689261542085615776565b85156154a8576401000276a4905b615440615439611563565b9715158852565b8787015260408601615382565b604051633cf3645360e21b8152958694859460048601615391565b03815f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1908115610e68575f9161517c575090565b73fffd8963efd1fc6a506488495d951d5263988d259061542e565b90156154e357600f0b5b5f81600f0b12615373576001600160801b031690565b60801d6154cd565b614b2a906105b9925f146155055760801d5b600f0b6116ed565b600f0b6154fd565b356105b981611911565b356105b98161191e565b905f608060405161553181611510565b828152826020820152826040820152826060820152015261555182612836565b906001600160a01b0380831690821610156155d757906143a3906155ce60015b946155c46155816020830161550d565b6155b861559c606061559560408701615517565b9501612836565b956155af6155a8611572565b998a615382565b60208901615382565b62ffffff166040870152565b60020b6060850152565b60808301615382565b6001600160a01b03918216916143a391166155ce818414615571565b61013292916001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169216611dc4565b6001600160a01b03918216927f000000000000000000000000000000000000000000000000000000000000000090921691823b1561012357604051631b63c28b60e11b8152925f92849283918591839161569591906001600160a01b038c16908b9060048601613163565b03925af18015610e68576156d1575b50803b1561012357604051630934f6c760e21b815260048101929092525f90829081838160248101612937565b8061232a5f6156df93611530565b5f6156a4565b9091906001600160a01b03811661571257505f80808061570694865af11590565b61570d5750565b6158ac565b6040805163a9059cbb60e01b81526001600160a01b039094166004850152602484019290925291905f9060208260448582885af13d15601f3d116001855114161716928281528260208201520152156157685750565b6001600160a01b031661583f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031615612ba25780516080820180516101329391926157c9916001600160a01b039081169116615915565b6020015190516001600160a01b039081169116615915565b9061580557508051156157f657805190602001fd5b630a12f52160e11b5f5260045ffd5b81511580615836575b615816575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b1561580e565b6040516390bfb86560e01b81526001600160a01b03909116600482015263a9059cbb60e01b60248201526080604482015260a03d601f01601f191690810160648301523d60848301523d5f60a484013e808201600460a482015260c4633c9fd93960e21b91015260e40190fd5b6040516390bfb86560e01b81526001600160a01b0390911660048201525f602482018190526080604483015260a03d601f01601f191690810160648401523d6084840152903d9060a484013e808201600460a482015260c4633d2cec6f60e21b91015260e40190fd5b6040516312f7fd6760e11b81526001600160a01b039190911690602081806159408560048301610785565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610e68575f916159f5575b506001600160a01b031615612a6b576159ad916020916040518080958194631557c23760e01b835260048301610785565b03915afa908115610e68575f916159d6575b50156159c757565b636e11e93f60e01b5f5260045ffd5b6159ef915060203d60201161261d5761260f8183611530565b5f6159bf565b615a0e915060203d602011610e6157610e538183611530565b5f61597c56fe0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a708af28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f692a42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb6d317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee31a164736f6c634300081a000a000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba3000000000000000000000000fff9976782d46cc05630d1f6ebab18b2324d6b14000000000000000000000000b7f907f7a9ebc822a80bd25e224be42ce0a698a00000000000000000000000000227628f3f023bb0b980b67d528571c95c6dac1c96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54000000000000000000000000e03a1074c86cfedd5c142c4f04f1a1536e203543000000000000000000000000e6b0d96919334c33d06266d1420f97f6f434fa2b0000000000000000000000001238536071e1c677a632429e3655c799b22cda52000000000000000000000000429ba70129df741b2ca2a85bc3a2a3328e5c09b40000000000000000000000005ef6c01e11889d86803e0b23e3cb3f9e9d97b662", + "nonce": "0x13a", "chainId": "0xaa36a7" }, "additionalContracts": [], @@ -24,26 +25,26 @@ ], "receipts": [ { + "type": "0x2", "status": "0x1", - "cumulativeGasUsed": "0x1c68fb8", + "cumulativeGasUsed": "0x1455729", "logs": [], "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0x4a490b66e54efac55904fede42a87c8080e6dbbcad02cd17506a5f6e26e5970e", - "transactionIndex": "0xb6", - "blockHash": "0xecd1f7c178898a8375b0b4c688c4e773f264eb314f2056f8d813af09f90db2af", - "blockNumber": "0xaa6aac", - "gasUsed": "0x1793e1", - "effectiveGasPrice": "0x42cdc8cf", + "transactionHash": "0x2130e22012448a30e7f611d8afee6962358250cc0fd37711272b19c3a61c0711", + "transactionIndex": "0x77", + "blockHash": "0xbbcec150b0f6474d5a53339ffb6247b3da2fb8cf5d242991ad28000603718bb1", + "blockNumber": "0xb30594", + "gasUsed": "0x4df751", + "effectiveGasPrice": "0x3fac8d70", "from": "0x2179a60856e37dfeaaca0ab043b931fe224b27b6", "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", - "contractAddress": "0x8b0e8d467af81d9f5b49165e104a2fe1b98328c0" + "contractAddress": null } ], "libraries": [], "pending": [], "returns": {}, - "timestamp": 1782771621751, + "timestamp": 1789755277412, "chain": 11155111, - "commit": "b3dc0b5" + "commit": "e34ba78" } \ No newline at end of file diff --git a/broadcast/Deploy-all.s.sol/57073/run-1789760233353.json b/broadcast/Deploy-all.s.sol/57073/run-1789760233353.json new file mode 100644 index 00000000..a7f23a1b --- /dev/null +++ b/broadcast/Deploy-all.s.sol/57073/run-1789760233353.json @@ -0,0 +1,57 @@ +{ + "transactions": [ + { + "hash": "0xd37e3e958e9c35d63b48bde9de8e7a01878f0881fa20b6e434a9f865244fc0db", + "transactionType": "CREATE2", + "contractName": "UniversalRouter", + "contractAddress": "0x8bbcaeb326ad590521a921c9e457ee09f336b48c", + "function": null, + "arguments": [ + "(0x000000000022D473030F116dDEE9F6B43aC78BA3, 0x4200000000000000000000000000000000000006, 0xfe57A6BA1951F69aE2Ed4abe23e0f095DF500C04, 0x640887A9ba3A9C53Ed27D0F7e8246A4F933f3424, 0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f, 0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54, 0x360E68faCcca8cA495c1B759Fd9EEe466db9FB32, 0xd8eeba7c373d612F24660E45fa96F5d95b0C9d16, 0xC0836E5B058BBE22ae2266e1AC488A1A0fD8DCE8, 0x1b35d13a2E2528f192637F14B05f0Dc0e7dEB566, 0xeF684C38F94F48775959ECf2012D7E864ffb9dd4)" + ], + "transaction": { + "from": "0x2179a60856e37dfeaaca0ab043b931fe224b27b6", + "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", + "gas": "0x720544", + "value": "0x0", + "input": "0x00000000000000000000000000000000000000000000000000000000000000006102c080604052346104835761016081616269803803809161002182856104a2565b833981010312610483576040519061016082016001600160401b0381118382101761046f57604052610052816104c5565b8252610060602082016104c5565b9160208101928352610074604083016104c5565b9260408201938452610088606084016104c5565b93606083019485526080840151926080810193845260a08501519360a082019485526100b660c087016104c5565b9660c083019788526100ca60e088016104c5565b9160e084019283526100df61010089016104c5565b96876101008601526101086101406100fa6101208c016104c5565b9a8b610120890152016104c5565b998a6101408701526040519861011d8a610487565b6001600160a01b039081168a52998a1660208a019081529051945195519751604051919a9198908216979682169695821695911661015a89610487565b8852602088019687525192519151905160405190936001600160a01b039384169316608082016001600160401b0381118382101761046f5760405281526020810192835260408101918252606081019384526040516101ba6040826104a2565b600f815260208101906e2ab734bb32b939b0b62937baba32b960891b8252604051916101e76040846104a2565b600183526020830191601960f91b8352610200816104d9565b6101205261020d8461066f565b61014052519020918260e05251902080610100524660a0526040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261027660c0826104a2565b5190206080523060c052516001600160a01b0390811661016052905161018052905181166101a05290516101c0526101e091909152610200919091529051811661022052905181166102405290518116610260529051811661028052166102a052604051615ac190816107a8823960805181613dda015260a05181613e97015260c05181613da4015260e05181613e2901526101005181613e4f015261012051816104fc01526101405181610528015261016051818181612c3401528181612db00152613a3b015261018051818181612c5501528181612d8f0152613a1a01526101a05181611d7c01526101c05181611d5a01526101e0518181816105ee015281816107df01528181611213015281816117e001528181612721015281816144bf015281816147b2015281816148bd0152818161507e0152818161546d01526156020152610200518181816106b501528181610ddf01528181610e7001528181614530015281816146dd01528181615197015281816157780152615944015261022051818181611797015281816129c70152612b07015261024051818181610d37015281816128e401528181613192015261563801526102605181818161045e01528181611187015261252f015261028051818181610756015261127201526102a05181818161041a0152818161223301526123470152f35b634e487b7160e01b5f52604160045260245ffd5b5f80fd5b604081019081106001600160401b0382111761046f57604052565b601f909101601f19168101906001600160401b0382119082101761046f57604052565b51906001600160a01b038216820361048357565b908151602081105f14610553575090601f815111610513576020815191015160208210610504571790565b5f198260200360031b1b161790565b604460209160405192839163305a27a960e01b83528160048401528051918291826024860152018484015e5f828201840152601f01601f19168101030190fd5b6001600160401b03811161046f575f54600181811c91168015610665575b602082101461065157601f811161061f575b50602092601f82116001146105c057928192935f926105b5575b50508160011b915f199060031b1c1916175f5560ff90565b015190505f8061059d565b601f198216935f8052805f20915f5b86811061060757508360019596106105ef575b505050811b015f5560ff90565b01515f1960f88460031b161c191690555f80806105e2565b919260206001819286850151815501940192016105cf565b5f8052601f60205f20910160051c810190601f830160051c015b8181106106465750610583565b5f8155600101610639565b634e487b7160e01b5f52602260045260245ffd5b90607f1690610571565b908151602081105f1461069a575090601f815111610513576020815191015160208210610504571790565b6001600160401b03811161046f57600154600181811c9116801561079d575b602082101461065157601f811161076a575b50602092601f821160011461070957928192935f926106fe575b50508160011b915f199060031b1c19161760015560ff90565b015190505f806106e5565b601f1982169360015f52805f20915f5b868110610752575083600195961061073a575b505050811b0160015560ff90565b01515f1960f88460031b161c191690555f808061072c565b91926020600181928685015181550194019201610719565b60015f52601f60205f20910160051c810190601f830160051c015b81811061079257506106cb565b5f8155600101610785565b90607f16906106b956fe60806040526004361015610022575b3615610018575f80fd5b610020611794565b005b5f3560e01c80631a27b2011461010157806324856bc3146100fc5780633593564c146100f757806344684dc3146100f25780638021fef7146100ed578063817122dc146100e857806384b0196e146100e357806391dd7346146100de578063ab769d37146100d9578063d04d79a2146100d4578063d0c9f6cb146100cf578063d737d0c7146100ca578063dc4c90d3146100c55763fa461e330361000e5761080e565b6107ca565b610798565b610741565b6106e4565b6106a0565b6105bc565b6104e4565b610449565b610405565b61036a565b6102a9565b6101f8565b61014d565b6001600160a01b031690565b6001600160a01b0381160361012357565b5f80fd5b359061013282610112565b565b6001600160a01b03165f90815260026020526040902090565b346101235760403660031901126101235760043561016a81610112565b6024359060018060a01b03165f52600260205260405f20905f52602052602060ff60405f2054166040519015158152f35b9181601f84011215610123578235916001600160401b038311610123576020838186019501011161012357565b9181601f84011215610123578235916001600160401b038311610123576020808501948460051b01011161012357565b6040366003190112610123576004356001600160401b0381116101235761022390369060040161019b565b6024356001600160401b038111610123576102429036906004016101c8565b913330146102a0575f80516020615a158339815191525c6001600160a01b03166102915761027f93335f80516020615a158339815191525d610b4e565b5f5f80516020615a158339815191525d005b6337affdbf60e11b5f5260045ffd5b61002093610b4e565b6060366003190112610123576004356001600160401b038111610123576102d490369060040161019b565b6024356001600160401b038111610123576102f39036906004016101c8565b916044354211610339573330146102a0575f80516020615a158339815191525c6001600160a01b03166102915761027f93335f80516020615a158339815191525d610b4e565b632dfb7c8b60e11b5f5260045ffd5b8015150361012357565b6084359061013282610348565b359061013282610348565b610100366003190112610123576004356001600160401b0381116101235761039690369060040161019b565b906024356001600160401b038111610123576103b69036906004016101c8565b926044356064356103c5610352565b9060a43560c435979093906001600160401b038911610123576103ef61002099369060040161019b565b97909660e4359961132d565b5f91031261012357565b34610123575f366003190112610123576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610123575f366003190112610123576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b90602080835192838152019201905f5b8181106104ce5750505090565b82518452602093840193909201916001016104c1565b34610123575f366003190112610123576105766105207f00000000000000000000000000000000000000000000000000000000000000006134cb565b6105a461054c7f00000000000000000000000000000000000000000000000000000000000000006135ae565b610584610557611598565b91604051958695600f60f81b875260e0602088015260e087019061048d565b90858203604087015261048d565b904660608501523060808501525f60a085015283820360c08501526104b1565b0390f35b9060206105b992818152019061048d565b90565b34610123576020366003190112610123576004356001600160401b038111610123576105ec90369060040161019b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036106915761062591613666565b90818303610682575f5b838110610656576105a4604051610647602082611530565b5f8152604051918291826105a8565b8061067c6106676001938789610ad9565b3560f81c610676838787610b1c565b91613fcf565b0161062f565b63aaad13f760e01b5f5260045ffd5b63570c108560e11b5f5260045ffd5b34610123575f366003190112610123576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610123575f36600319011261012357604080516001600160a01b035f80516020615a958339815191525c1681525f80516020615a558339815191525c60208201525f80516020615a758339815191525c91810191909152606090f35b34610123575f366003190112610123576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b6001600160a01b03909116815260200190565b34610123575f366003190112610123576040516001600160a01b035f80516020615a158339815191525c168152602090f35b34610123575f366003190112610123576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610123576060366003190112610123576024356004356044356001600160401b0381116101235761084490369060040161019b565b92905f831392831580610a61575b610a5257610899926108819161086a8785018561166b565b90996001600160a01b039092169690959250611c04565b92909161088e84846136fe565b999198908a8a611cf0565b336001600160a01b0390911603610a43578015610a2a5790978891906001600160a01b03818116908a16105b156108dd575050505050505061002093503391611dc4565b909192939495989997506108f2866042111590565b1561099e57508651610944575b5050509461092361091661091e9361002098611e31565b939092611e47565b6116ed565b94801561093c5761093390611779565b945b3390611ee3565b505f94610935565b61095d610967938a93610962935f1461099757506116ed565b611702565b611739565b6109718686611757565b5180821061097f57806108ff565b631c1763d160e11b5f5261099492508661176b565b5ffd5b90506116ed565b969450909192505f80516020615a358339815191529796975c8711610a1b5783516109d4575b5050505061002093503391611dc4565b8661096261095d6109f7958b956109f1955f1461099757506116ed565b92611757565b51808210610a065780806109c4565b631c1763d160e11b5f5261099492508561176b565b6339cedf2960e11b5f5260045ffd5b91978892906001600160a01b03898116908216106108c5565b6332b13d9160e01b5f5260045ffd5b63316cf0eb60e01b5f5260045ffd5b505f831315610852565b929190333014610abc575f80516020615a158339815191525c6001600160a01b031661029157610aaa93335f80516020615a158339815191525d610b4e565b5f5f80516020615a158339815191525d565b61013293610b4e565b634e487b7160e01b5f52603260045260245ffd5b90821015610ae5570190565b610ac5565b903590601e198136030182121561012357018035906001600160401b0382116101235760200191813603831361012357565b90821015610ae557610b339160051b810190610aea565b9091565b6040906105b993928152816020820152019061048d565b90939284810361131e575f5b858110610b6957505050509050565b610b74818785610ad9565b35610b80828487610b1c565b6060929160019160f884901c607f1660218110156112a557601081101561113f576008811015610f265780610c495750610bca82610bc183610bfc95611c8f565b92909382612806565b92909360808301355f14610c4257610be0611bf2565b925b604081013590610bf760208201359135612984565b6132cf565b159081610c33575b50610c125750600101610b5a565b604051632c4029e960e01b8152918291610c2f9160048401610b37565b0390fd5b600160ff1b161590505f610c04565b3092610be2565b60018103610ca15750610c6382610bc183610c9595611c8f565b92909360808301355f14610c9a57610c79611bf2565b925b604081013590610c9060208201359135612984565b613200565b610bfc565b3092610c7b565b60028103610cd2575050610c9590610cb7611bf2565b90604081013591610ccb6020830135612984565b913561318d565b9192909160038103610d705750505f92935090610d32610cf3849383611c64565b610d24610d01939293611bf2565b916040519485936020850197632a2d80d160e01b89528035019060248601611aab565b03601f198101835282611530565b5190827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af190610d6a6118d5565b91610bfc565b9092915060048103610e9f575080356001600160a01b038116151580610e6d575b610dbc575b81610da76020610c95940135612984565b6040909101356001600160a01b0316916130c3565b6040516312f7fd6760e11b81529160208380610ddb8560048301610785565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa8015610e6857610c95935f91610e3a575b506001600160a01b038116610e32575b509150610d96565b91505f610e2a565b610e5b915060203d8111610e61575b610e538183611530565b810190611a96565b5f610e1a565b503d610e49565b6119cb565b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161515610d91565b60058103610ec65750806040610c9592013590610ebf6020820135612984565b9035613038565b60068103610eed5750806040610c9592013590610ee66020820135612984565b9035612fc2565b60078103610f145750806040610c9592013590610f0d6020820135612984565b9035612f08565b636bb50f4f60e11b5f5260045260245ffd5b90919060088103610f8657508181610f44610c9594610f4d946127e6565b93909282612806565b92909360808301355f14610f7f57610f63611bf2565b925b604081013590610f7a60208201359135612984565b612d53565b3092610f65565b60098103610fda57508181610f44610c9594610fa1946127e6565b92909360808301355f14610fd357610fb7611bf2565b925b604081013590610fce60208201359135612984565b612c11565b3092610fb9565b909290600a81036110275750505f92935081610ffa610d32928594611c39565b929091610d24611008611bf2565b9460405194859360208501976302b67b5760e41b895260248601611a48565b909290600b810361104c5750610c95915061104760208201359135612984565b612aec565b600c810361106e5750610c95915061106960208201359135612984565b6129b6565b600d81036110935750610c9591611084916127c9565b9061108d611bf2565b916128d5565b9092509050600e8103610f1457506040516370a0823160e01b815290602082806110c1843560048301610785565b0381848401356001600160a01b03165afa918215610e68575f9261110c575b5060400135111580610c95576040516351940b3960e11b6020820152909250610d6a8160248101610d24565b60409192506111319060203d8111611138575b6111298183611530565b8101906119bc565b91906110e0565b503d61111f565b90919060108103611155575090610c95916126f3565b93945092909150601181036111ba57505f91908161117384936126d7565b61118260405180938193611904565b0390827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af190610d6a6118d5565b601281036111d957505f919082916111736111d3611bf2565b826124e0565b601381036112465750505f809160405161120e81610d24602082019463313b65df60e11b865260a08101359060248401611929565b5190827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af190610d6a6118d5565b60148103610f1457505f91829161125d8183612401565b479161126e60405180938193611904565b03917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af190610d6a6118d5565b939490939192604083101561130457505060218103610f1457506112f5610d246112d15f948594613666565b60409593959491945194859360208501976324856bc360e01b89526024860161182f565b519082305af190610d6a6118d5565b9290949391604081145f14610f14575090610c9591612201565b631fec674760e31b5f5260045ffd5b95909698929a999791978042116103395761134a8c9a9b9c611b61565b5f5b8b81106114cb5750868661140b61141b958f611421999896610d24918f8f61139a906114139a60405161138781610d24602082018095611b93565b51902096156114c45733925b36916115ce565b6020815191012097604051978896602088019a8b93909796959260e095926101008601997f4b503a2e339bf072a489301f3eec7abaefc520266c462796ed9267bbcc6e407c8752602087015260408601526060850152608084015260018060a01b031660a083015260c08201520152565b51902061348f565b9236916115ce565b906134b5565b60018801611469575b61146197505f80516020615a958339815191525d5f80516020615a558339815191525d5f80516020615a758339815191525d610a6b565b610132611bc0565b61148d6114868961147984610134565b905f5260205260405f2090565b5460ff1690565b6114b6576114b16114a46114619961147984610134565b805460ff19166001179055565b61142a565b623f613760e71b5f5260045ffd5b5f92611393565b806114e08d9f9e9d600193611393918f610b1c565b602081519101206114f18285611757565b52019c9a9b9c61134c565b634e487b7160e01b5f52604160045260245ffd5b60a081019081106001600160401b0382111761152b57604052565b6114fc565b601f909101601f19168101906001600160401b0382119082101761152b57604052565b604051906101326101a083611530565b60405190610132606083611530565b6040519061013260a083611530565b6001600160401b03811161152b5760051b60200190565b604051906115a7602083611530565b5f808352366020840137565b6001600160401b03811161152b57601f01601f191660200190565b9291926115da826115b3565b916115e86040519384611530565b829481845281830111610123578281602093845f960137010152565b9080601f83011215610123578160206105b9933591016115ce565b92919061162b81611581565b936116396040519586611530565b602085838152019160051b810192831161012357905b82821061165b57505050565b813581526020918201910161164f565b6080818303126101235780356001600160401b0381116101235782611691918301611604565b9260208201356116a081610112565b9260408301356001600160401b03811161012357830181601f82011215610123576060918160206116d39335910161161f565b92013590565b634e487b7160e01b5f52601160045260245ffd5b600160ff1b81146116fd575f0390565b6116d9565b6a0c097ce7bc90715b34b9f160241b8082029291801590840490911417156116fd57565b818102929181159184041417156116fd57565b8115611743570490565b634e487b7160e01b5f52601260045260245ffd5b8051821015610ae55760209160051b010190565b600452602452604452606490565b5f198101919082116116fd57565b919082039182116116fd57565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161415806117dc575b6117cd57565b631c5deabb60e11b5f5260045ffd5b50337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614156117c7565b908060209392818452848401375f828201840152601f01601f1916010190565b9391906118449160408652604086019161180f565b926020818503910152808352602083019060208160051b85010193835f91601e1982360301905b84841061187c575050505050505090565b90919293949596601f19828203018752873583811215610123578401602081019190356001600160401b038111610123578036038313610123576118c6602092839260019561180f565b9901970195940192919061186b565b3d156118ff573d906118e6826115b3565b916118f46040519384611530565b82523d5f602084013e565b606090565b908092918237015f815290565b62ffffff81160361012357565b8060020b0361012357565b90929160a0906119b0608060c0850196803561194481610112565b600180871b03168652602081013561195b81610112565b600180871b0316602087015262ffffff604082013561197981611911565b166040870152606081013561198d8161191e565b60020b606087015201356119a081610112565b6001600160a01b03166080850152565b600180831b0316910152565b90816020910312610123575190565b6040513d5f823e3d90fd5b359065ffffffffffff8216820361012357565b65ffffffffffff611a42606080938035611a0281610112565b6001600160a01b031686526020810135611a1b81610112565b6001600160a01b0316602087015283611a36604083016119d6565b166040870152016119d6565b16910152565b60a06105b9959361010093600180841b03168352611a6960208401826119e9565b6080810135611a7781610112565b600180841b031682840152013560c08201528160e0820152019161180f565b9081602091031261012357516105b981610112565b6001600160a01b0390911681526060602082015290939260c08201929091853536879003601e190181121561012357860160208101949035906001600160401b038211610123578160071b360386136101235781906060808501525260e0820194905f5b818110611b4357505050604086611b2f6119a060206105b9999a01610127565b013560a0820152604081850391015261180f565b90919560808082611b566001948b6119e9565b019701929101611b0f565b90611b6b82611581565b611b786040519182611530565b8281528092611b89601f1991611581565b0190602036910137565b80516020909101905f5b818110611baa5750505090565b8251845260209384019390920191600101611b9d565b5f5f80516020615a958339815191525d5f5f80516020615a558339815191525d5f5f80516020615a758339815191525d565b5f80516020615a158339815191525c90565b909163ffffffff82351682019263ffffffff84351692602080860195850101910110611c2c57565b633b99b53d5f526004601cfd5b909163ffffffff60c08301351682019263ffffffff84351692602080860195850101910110611c2c57565b909163ffffffff60208301351682019263ffffffff84351692602080860195850101910110611c2c57565b909163ffffffff60608301351682019263ffffffff84351692602080860195850101910110611c2c57565b6001600160f81b0319815260609190911b6001600160601b03191660018201526015810191909152603581019190915260550190565b6105b992611da992906001600160a01b0380831690841611611dae575b604080516001600160a01b0394851660208201908152949093169083015262ffffff166060808301919091528152611d46608082611530565b519020604051611da181610d2460208201947f0000000000000000000000000000000000000000000000000000000000000000907f000000000000000000000000000000000000000000000000000000000000000087611cba565b519020610106565b610106565b909190611d0d565b90601482018092116116fd57565b909291906001600160a01b0384163003611de2576101329350613038565b91926001600160a01b038411611e0557610132936001600160a01b03169261318d565b63c4bd89a960e01b5f5260045ffd5b909291928360041161012357831161012357600401916003190190565b9190918260171161012357601701916016190190565b600160ff1b8110156101235790565b959493611e7260609492611e8f9460808a5260808a019161180f565b6001600160a01b03909216602088015286820360408801526104b1565b930152565b9190826040910312610123576020825192015190565b6001600160a01b039182168152911515602083015260408201929092529116606082015260a0608082018190526105b99291019061048d565b92919395949094611ef483866136fe565b6001600160a01b038084169082161098899590939092611f15929091611cf0565b611f1e90610106565b611f2790610106565b94845f14604098610d245f96611f7195611f5594611fb9576401000276a49e5b8d5196879560208701611e56565b8751630251596160e31b8152998a978896879560048701611eaa565b03925af18015610e68575f925f91611f8857509192565b9050611fad91925060403d604011611fb2575b611fa58183611530565b810190611e94565b919092565b503d611f9b565b73fffd8963efd1fc6a506488495d951d5263988d259e611f47565b91939490611fe284866136fe565b6001600160a01b038082169084161097889490939092612003929091611cf0565b61200c90610106565b61201590610106565b93835f1496611f555f94610d2486611f719560409c611fb9576401000276a49e8d5196879560208701611e56565b63ffffffff81160361012357565b359061013282612043565b602081830312610123578035906001600160401b03821161012357016101a0818303126101235761208b611553565b9161209582610127565b83526120a360208301610127565b60208401526120b460408301610127565b60408401526120c560608301610127565b60608401526080820135608084015260a082013560a084015260c082013560c08401526120f460e08301610127565b60e08401526121066101008301612051565b6101008401526121196101208301612051565b61012084015261212c6101408301612051565b610140840152610160820135916001600160401b0383116101235761215961018092612165948301611604565b6101608501520161035f565b61018082015290565b6001600160a01b039182168152918116602083015291821660408201529181166060830152608082019290925260a081019290925260c0820192909252911660e08201526105b994936101809391926121f3926121e5916121d79063ffffffff16610100870152565b63ffffffff16610120850152565b63ffffffff16610140830152565b81610160820152019061048d565b61220d9181019061205c565b6080810151905f600160ff1b831461237a575b61018082015115612330575081905b80517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316929061226690610106565b6122736020840151610106565b6122806040850151610106565b9161228e6060860151610106565b9460a08101519060c08101516122a760e0830151610106565b61010083015163ffffffff16906122c661012085015163ffffffff1690565b926101606122dc61014087015163ffffffff1690565b950151958c3b1561012357604051633dc9c91960e11b81529d8e9c8d9b8c9b6123089b60048e0161216e565b03915a945f95f18015610e685761231c5750565b8061232a5f61013293611530565b806103fb565b9061237583612345611da96040850151610106565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690613730565b61222f565b915061238a610180820151151590565b15612396574791612220565b6123a9611da9611da96040840151610106565b602060405180926370a0823160e01b825281806123c93060048301610785565b03915afa908115610e68575f916123e2575b5091612220565b6123fb915060203d602011611138576111298183611530565b5f6123db565b80356322b9af7160e01b6001600160e01b03198216016124c4575061242d826124339361242d93611e14565b90611c04565b5f5b81811061244157505050565b61246f612469612463612455848688610ad9565b356001600160f81b03191690565b60f81c90565b60ff1690565b80159081156124b9575b81156124ae575b81156124a3575b5061249457600101612435565b635d1d0f9f60e01b5f5260045ffd5b60039150145f612487565b600181149150612480565b600481149150612479565b63f801e52560e01b5f526001600160e01b03191660045260245ffd5b80356001600160e01b031916630624e65f60e11b811480156126c7575b80156126b7575b156126a557506040516331a9108f60e11b815260049182013591810182905290916001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690602083602481855afa928315610e68575f93612684575b506001600160a01b03818116908416811492908315612624575b5082156125a8575b50501590505b6125965750565b63bb25d4c560e01b5f5260045260245ffd5b60405163e985e9c560e01b81526001600160a01b0394851660048201529190931660248201529160209150829060449082905afa8015610e685761258f915f916125f5575b505f80612589565b612617915060203d60201161261d575b61260f8183611530565b810190612abc565b5f6125ed565b503d612605565b60405163020604bf60e21b81526004810187905291935090602081602481875afa908115610e68575f91612665575b506001600160a01b031614915f612581565b61267e915060203d602011610e6157610e538183611530565b5f612653565b61269e91935060203d602011610e6157610e538183611530565b915f612567565b63f801e52560e01b5f5260045260245ffd5b50630852cd8d60e31b8114612504565b5063fc6f786560e01b81146124fd565b356001600160e01b03191663853d008560e01b81016126a55750565b6040516348c8949160e01b815260206004820152915f918391829161271c91602484019161180f565b0381837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af18015610e68576127585750565b3d805f833e6127678183611530565b810190602081830312610123578051906001600160401b038211610123570181601f8201121561012357805161279c816115b3565b926127aa6040519485611530565b81845260208284010111610123575f928160208094018483015e010152565b918235830191602083359481850194038560051b010111611c2c57565b916060830135830191602083359481850194038560051b010111611c2c57565b9160a0830135830191602083359481850194038560051b010111611c2c57565b9190811015610ae55760071b0190565b356105b981610112565b60208082528101839052604001915f5b81811061285d5750505090565b909192608080600192863561287181610112565b848060a01b03168152602087013561288881610112565b848060a01b0316602082015260408701356128a281610112565b848060a01b0316604082015260608701356128bc81610112565b848060a01b031660608201520194019101919091612850565b90915f5b8381106129485750507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691823b1561012357612937925f9283604051809681958294630d58b1db60e01b845260048401612840565b03925af18015610e685761231c5750565b61295b612956828686612826565b612836565b6001600160a01b03838116911603612975576001016128d9565b63e700287760e01b5f5260045ffd5b6001600160a01b038116600181036129aa5750505f80516020615a158339815191525c90565b6002036105b957503090565b6040516370a0823160e01b815290917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169060208380612a013060048301610785565b0381855afa928315610e68575f93612a9b575b508210612a8c5781612a2557505050565b803b1561012357604051632e1a7d4d60e01b815260048101839052905f908290602490829084905af18015610e6857612a78575b50306001600160a01b03831603612a6f575b5050565b6101329161381f565b8061232a5f612a8693611530565b5f612a59565b631a84bc4160e21b5f5260045ffd5b612ab591935060203d602011611138576111298183611530565b915f612a14565b9081602091031261012357516105b981610348565b6001600160a01b039091168152602081019190915260400190565b90600160ff1b8103612bd1575047905b81612b05575050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691823b1561012357604051630d0e30db60e41b81525f8160048185885af18015610e6857612bbd575b50306001600160a01b03831603612b6f575b505050565b612b93926020925f60405180968195829463a9059cbb60e01b845260048401612ad1565b03925af18015610e6857612ba5575b50565b612ba29060203d60201161261d5761260f8183611530565b8061232a5f612bcb93611530565b5f612b58565b9047821115612afc57631a84bc4160e21b5f5260045ffd5b9015610ae55790565b9060011015610ae55760200190565b9190811015610ae55760051b0190565b9290939196959460028310612d445786151580612d30575b612d215793965f94907f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000005f1986018681116116fd579190825b612cbf575050508811612cb0576101329785612cab92612ca66129568787612be9565b611dc4565b6138d7565b6345585e0b60e11b5f5260045ffd5b919a9750905f198b018b81116116fd57612d088c612cf6612ce4612d0f948b8b612c01565b3591612cef83610112565b8a8a612c01565b3590612d0182610112565b8486614214565b919a6142a8565b9a80156116fd575f1901919082612c83565b630c12651d60e31b5f5260045ffd5b505f1983018381116116fd57871415612c29565b632b94ab4360e21b5f5260045ffd5b9294969095919660028510612d445781151580612ef6575b612d2157612dd4612d7f6129568789612be9565b612d8c612956888a612bf2565b907f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000613cc1565b968781612edd575b505050612dfb611da9611da9612956612df488611779565b888a612c01565b91604051966370a0823160e01b885260208880612e1b8860048301610785565b0381875afa958615610e6857612e5f985f97612eaf575b509085612e44949392602098996138d7565b60405180809681946370a0823160e01b835260048301610785565b03915afa8015610e6857612e7a925f91612e90575b50611787565b10612e8157565b631093d5f360e31b5f5260045ffd5b612ea9915060203d602011611138576111298183611530565b5f612e74565b60209750612e4494939291612ed188928a3d8c11611138576111298183611530565b98509192939450612e32565b612eee92612ca6612956898b612be9565b5f8087612ddc565b50612f0085611779565b821415612d6b565b670de0b6b3a76400008311612fb3576001600160a01b031680612f4a5750612f44612f366101329347611726565b670de0b6b3a7640000900490565b9061381f565b906040516370a0823160e01b815260208180612f693060048301610785565b0381865afa908115610e685761013294612f8e92612f36925f91612f94575b50611726565b91613cd8565b612fad915060203d602011611138576111298183611530565b5f612f88565b6390f5ebeb60e01b5f5260045ffd5b6001600160a01b031680612fde5750612f446101329247613d47565b6040516370a0823160e01b8152306004820152909190602081602481865afa938415610e685761013294612f8e925f91613019575b50613d47565b613032915060203d602011611138576111298183611530565b5f613013565b9091906001600160a01b03168061305357506101329161381f565b600160ff1b8214613069575b9161013292613cd8565b6040516370a0823160e01b815230600482015292909150602083602481855afa8015610e6857610132935f916130a4575b509190925061305f565b6130bd915060203d602011611138576111298183611530565b5f61309a565b9091906001600160a01b0316806130e6575047908110612a8c5780612a6f575050565b91604051916370a0823160e01b8352602083806131063060048301610785565b0381875afa928315610e68575f93613142575b508210613133578161312a57505050565b61013292613cd8565b630ceb95c760e31b5f5260045ffd5b61315c91935060203d602011611138576111298183611530565b915f613119565b6001600160a01b039182168152918116602083015291821660408201529116606082015260800190565b9290917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690813b15610123575f80946131e560405197889687958694631b63c28b60e11b865260048601613163565b03925af18015610e68576131f65750565b5f61013291611530565b9492909695939193861515806132a5575b6132965761322761322d9161325198369161161f565b94613d82565b8351801561328e5761323e90611779565b945b61324c61091e89611e47565b611ee3565b9091901561327f5750613263906116ed565b0361327057610132613d70565b636a70124760e11b5f5260045ffd5b61328991506116ed565b613263565b505f94613240565b630e0fbd8760e21b5f5260045ffd5b506132b96132b4601789611726565b611db6565b831415613211565b5f1981146116fd5760010190565b97939795909192949587151596878098613478575b613296578998600160ff1b851461340b575b909950879391965f92808b8a61330a611598565b9e8f9061335493613346935b61332a613324836042111590565b98611e47565b908815613401575061333e30925b8a613d93565b929091611fd4565b9091901561099757506116ed565b966133c6575b50156133a557309961336b91611e31565b9190978892809c879561337d906132c1565b9c8d956133549461333e613346959e50509c9e509495969290919e8f90928e9a95938e613316565b5050505093509350935050106133b757565b631ce9aa4b60e11b5f5260045ffd5b6133d39061096288611702565b6133de858588612c01565b358082106133ec575061335a565b632d0a7cdd60e21b5f5261099492508561176b565b61333e9092613338565b935097611da9611da961341e9289614419565b976020604051809a6370a0823160e01b8252818061343f3060048301610785565b03915afa8015610e68578a995f91613459575b50936132f6565b613472915060203d602011611138576111298183611530565b5f613452565b506134876132b460178b611726565b8a14156132e4565b60429061349a613da1565b906040519161190160f01b8352600283015260228201522090565b6105b9916134c291613ebd565b90929192613f15565b60ff81146134dc576105b990613f91565b506040515f80548060011c916001821680156135a4575b60208410811461359057838552849260208401919081156135775750600114613524575b506105b992500382611530565b5f80805291507f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b84831061356057506105b99350015f613517565b80548284015285935060209092019160010161354c565b60ff19168252506105b993151560051b0190505f613517565b634e487b7160e01b5f52602260045260245ffd5b92607f16926134f3565b60ff81146135bf576105b990613f91565b506040515f6001548060011c9160018216801561365c575b6020841081146135905783855284926020840191908115613577575060011461360757506105b992500382611530565b60015f90815291507fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b84831061364557506105b99350015f613517565b805482840152859350602090920191600101613631565b92607f16926135d7565b604081351891606082019363ffffffff6040840135169363ffffffe0601f8601169060608201602086013518179084019260608401359463ffffffff861694641fffffffe0608082019760051b1680915f925b8084106136d1575060809250010191011017611c2c57565b90916020809163ffffffe0601f60808089890101359b848d18179b880101350116010193019291906136b9565b90602b1161372157803591601762ffffff8460601c9460481c1692013560601c90565b633b99b53d60e01b5f5260045ffd5b919091613797604051926137688461375a602082019363095ea7b360e01b85528860248401612ad1565b03601f198101865285611530565b83516001600160a01b038416915f91829182855af1906137866118d5565b826137ed575b50816137e657501590565b6137a057505050565b60405163095ea7b360e01b60208201526001600160a01b0390931660248401525f6044840152610132926137e1906137db8160648101610d24565b826141a9565b6141a9565b3b15919050565b80519192508115918215613805575b5050905f61378c565b6138189250602080918301019101612abc565b5f806137fc565b5f80809381935af11561382e57565b60405162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b6044820152606490fd5b51906001600160701b038216820361012357565b908160609103126101235761389181613869565b9160406138a060208401613869565b9201516105b981612043565b90926080926105b995948352602083015260018060a01b03166040820152816060820152019061048d565b949392939190916139016138ee6129568589612be9565b6138fb612956868a612bf2565b90614323565b50915f19840195600119850191831515985f955b898710613929575050505050505050505050565b613937612956888a85612c01565b9361394961295660018a018b86612c01565b604051630240bc6b60e21b8152909590916001600160a01b038116606084600481845afa918215610e68576139c7945f905f94613c8d575b506001600160a01b03948516966001600160701b039485169516871493168315613c83579060209194965b60405180809881946370a0823160e01b835260048301610785565b03915afa978815610e68578f6139ef8f9a978f978e9988915f91613c65575b5003968761433a565b9315613c5d578c5f94965b8c821015613c4f57613a17612956613a5f9260028501908d612c01565b847f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000614395565b9890985b9b83613c39575b5050505f14613bd2576040516370a0823160e01b81526001600160a01b039190911694909260208480613aa08a60048301610785565b0381895afa938415610e68575f94613bb2575b50613abc611598565b92803b15610123575f92838993613ae96040519788968795869463022c0d9f60e01b8652600486016138ac565b03925af18015610e6857613b9e575b50602060405180946370a0823160e01b82528180613b198960048301610785565b03915afa908115610e6857613b47935f92613b7e575b5090036a0c097ce7bc90715b34b9f160241b02611739565b613b5288888c612c01565b35808210613b695750506001905b96019592613915565b6365d564a560e01b5f5261099492508861176b565b613b9791925060203d8111611138576111298183611530565b905f613b2f565b8061232a5f613bac93611530565b5f613af8565b613bcb91945060203d8111611138576111298183611530565b925f613ab3565b5093929150613bdf611598565b93803b15610123575f92838593613c0c6040519889968795869463022c0d9f60e01b8652600486016138ac565b03925af1918215610e6857600192613c25575b50613b60565b8061232a5f613c3393611530565b5f613c1f565b613c439350612c01565b3515158c8f8d90613a6a565b5050955087958c8c5f613a63565b8c5f966139fa565b613c7d915060203d8111611138576111298183611530565b5f6139e6565b95602091906139ac565b9050613cb191935060603d8111613cba575b613ca98183611530565b81019061387d565b5092905f613981565b503d613c9f565b90916105b993613cd091614323565b9290916143a6565b5f91826044926020956040519363a9059cbb60e01b8552600485015260248401525af13d15601f3d1160015f511416171615613d1057565b60405162461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b6044820152606490fd5b6127108211613d615761271091613d5d91611726565b0490565b636f5500f360e11b5f5260045ffd5b5f5f80516020615a358339815191525d565b5f80516020615a358339815191525d565b90602b116101235790602b90565b307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161480613e94575b15613dfc577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a08152613e8e60c082611530565b51902090565b507f00000000000000000000000000000000000000000000000000000000000000004614613dd3565b8151919060418303613eed57613ee69250602082015190606060408401519301515f1a90614428565b9192909190565b50505f9160029190565b60041115613f0157565b634e487b7160e01b5f52602160045260245ffd5b613f1e81613ef7565b80613f27575050565b613f3081613ef7565b60018103613f475763f645eedf60e01b5f5260045ffd5b613f5081613ef7565b60028103613f6b575063fce698f760e01b5f5260045260245ffd5b80613f77600392613ef7565b14613f7f5750565b6335e2f38360e21b5f5260045260245ffd5b60ff811690601f8211613fc05760405191613fad604084611530565b6020808452838101919036833783525290565b632cd44ac360e21b5f5260045ffd5b909190600b8110156140635760078103613ff65750613ff19061013292614b43565b614e86565b60068103614011575061400c9061013292614913565b614d65565b6009810361402c57506140279061013292614b43565b614ba8565b916008831461404f57505061099491505b635cda29d760e01b5f52600452602490565b61013292509061405e91614913565b6149ca565b600c81036140b25750614075916148a3565b9061407f816148b6565b9180831161409b57509061013291614095611bf2565b906147a9565b6312bacdd360e01b5f52600452602482905260445ffd5b600f810361410157506140c4916148a3565b906140ce816144b8565b918083106140ea575090610132916140e4611bf2565b9061452c565b638b063d7360e01b5f52600452602482905260445ffd5b600b8103614135575061412f61411d61412992610132946144a0565b938294939291936146bf565b926146da565b916147a9565b600e8103614167575061415b61415161416192610132946144a0565b9282949291612984565b926146ab565b9161452c565b916010831461417c575050610994915061403d565b610132925061419161419a92614161926144a0565b92919390612984565b916141a4846144b8565b613d47565b5f806141d19260018060a01b03169360208151910182865af16141ca6118d5565b90836157e1565b80519081151591826141f9575b50506141e75750565b635274afe760e01b5f5260045260245ffd5b61420c9250602080918301019101612abc565b155f806141de565b9193929061422561422d9286614323565b9181946143a6565b604051630240bc6b60e21b815290936060826004816001600160a01b0389165afa918215610e68575f905f93614283575b506001600160701b03928316939216916001600160a01b03918216911603610b335791565b905061429f91925060603d606011613cba57613ca98183611530565b5091905f61425e565b908015801561431b575b61430c57816142c091611726565b916103e88302928084046103e814901517156116fd57818103918183116116fd576103e583029283046103e514911417156116fd576142fe91611739565b600181018091116116fd5790565b633dce448b60e11b5f5260045ffd5b5082156142b2565b6001600160a01b038281169082161015610b335791565b81159283801561438d575b61430c576103e58202918083046103e514901517156116fd576143689082611726565b926103e883029283046103e81417156116fd5781018091116116fd576105b991611739565b508015614345565b92614225906143a393614323565b91565b6040516001600160601b0319606094851b8116602083019081529590941b9093166034840152602883529092909161440991906143e4604882611530565b5190206143fb604051948592602084019586611cba565b03601f198101845283611530565b905190206001600160a01b031690565b90601411613721573560601c90565b91906fa2a8918ca85bafe22016d0b997e4df60600160ff1b038411614495579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15610e68575f516001600160a01b0381161561448b57905f905f90565b505f906001905f90565b5050505f9160039190565b90606011611c2c578035916040602083013592013590565b6144e381307f0000000000000000000000000000000000000000000000000000000000000000614ff9565b905f82126144ef575090565b634c085bf160e01b5f9081526001600160a01b0391909116600452602490fd5b6001600160a01b039091168152600160f01b602082015260400190565b91907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168061464957505f5b6001600160a01b0316614577575b61013292615075565b60405163aeb5556960e01b81526001600160a01b03841690602081600481855afa908115610e68575f9161462a575b501561461b5760206145d6916145ba611bf2565b90604051808095819463f493cec360e01b83526004830161450f565b03915afa908115610e68575f916145fc575b5061456e575b6282b42960e81b5f5260045ffd5b614615915060203d60201161261d5761260f8183611530565b5f6145e8565b63888f378560e01b5f5260045ffd5b614643915060203d60201161261d5761260f8183611530565b5f6145a6565b6040516312f7fd6760e11b815290602090829081806146746001600160a01b038a1660048301610785565b03915afa908115610e68575f9161468c575b50614560565b6146a5915060203d602011610e6157610e538183611530565b5f614686565b90816146bb576105b991506144b8565b5090565b156146d6575f80516020615a158339815191525c90565b3090565b907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168061474757505f5b6001600160a01b03169182158015614739575b61472f5750506105b99061512f565b6105b9925061510a565b50600160ff1b811415614720565b6040516312f7fd6760e11b815290602090829081806147726001600160a01b03881660048301610785565b03915afa908115610e68575f9161478a575b5061470d565b6147a3915060203d602011610e6157610e538183611530565b5f614784565b908215612b6a577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691823b1561012357604051632961046560e21b81525f81806147ff8560048301610785565b038183885af18015610e685761488f575b506001600160a01b03811661485e575050602090600460405180948193630476982d60e21b83525af18015610e68576148465750565b612ba29060203d602011611138576111298183611530565b5f936020939261486d92615195565b600460405180948193630476982d60e21b83525af18015610e68576148465750565b8061232a5f61489d93611530565b5f614810565b9190604011611c2c576020823592013590565b6148e181307f0000000000000000000000000000000000000000000000000000000000000000614ff9565b905f82136148f357506105b9906116ed565b63019a8d9360e51b5f9081526001600160a01b0391909116600452602490fd5b9061016011611c2c5780350190565b356001600160801b03811681036101235790565b356105b981610348565b91908260a09103126101235760405161495881611510565b6080808294803561496881610112565b8452602081013561497881610112565b6020850152604081013561498b81611911565b6040850152606081013561499e8161191e565b60608501520135916149af83610112565b0152565b6001600160801b0390811660045216602452604490565b6149d660c08201614922565b6001600160801b03811615614b01575b60a08201906149f482614936565b6001600160801b0382169290614a26908490614a14610120880188610aea565b929091614a21368a614940565b61540a565b91614a39614a3383614936565b846154c3565b6001600160801b038116949091908510614aed57505090614a5c614a6292614936565b906154eb565b9160e0810192614a80614a7485614922565b6001600160801b031690565b6001600160801b03821694908511614ad157505061010001359182614aa457505050565b610962614ab092611702565b90808210614abc575050565b63efc8d8eb60e01b5f5260045260245260445ffd5b90614ade61099492614922565b6312bacdd360e01b5f526149b3565b630686776b60e31b5f5261099492506149b3565b50614b0e60a08201614936565b15614b3457614b2f614b2a614b2560208401612836565b6148b6565b61535e565b6149e6565b614b2f614b2a614b2583612836565b9060e011611c2c5780350190565b903590601e198136030182121561012357018035906001600160401b03821161012357602001918160051b3603831361012357565b9190811015610ae55760051b81013590609e1981360301821215610123570190565b906020820191614bb88382614b51565b5f929150614bc860608301614922565b90614bd283612836565b906001600160801b03831615614d51575b6040840181614bf28287614b51565b801515948592509082614d46575b5050614d37579193825b614c3957505050505060809192935001614c26614a7482614922565b6001600160801b03831611614ad1575050565b614c5d919293949650614c64614c4f8a88614b51565b5f1987019491859190614b86565b9586615521565b6001600160801b03831692901591614c8e90839085614c8660808c018c610aea565b93909261540a565b90614c9983836154c3565b6001600160801b038116949091908510614aed5750508894939291614cbd916154eb565b97614cdb575b5050614ccf8694612836565b925f1901919382614c0a565b614cff906001600160801b038916906a0c097ce7bc90715b34b9f160241b02611739565b90614d1481614d0e858a614b51565b90612c01565b3590818310614d235750614cc3565b63e651804360e01b5f52610994935061176b565b63115eb5b360e31b5f5260045ffd5b14159050815f614c00565b9150614d5f614b2a826148b6565b91614be3565b614d7160c08201614922565b906001600160801b03821615614e47575b614dc860a08201614dc2614dbc614d9883614936565b6001600160801b0390961695614dad876116ed565b90614a14610120880188610aea565b91614936565b906154c3565b9060e0810191614dda614a7484614922565b6001600160801b03821693908410614e2b57505061010001359182614dfe57505050565b610962614e0a92611702565b90808210614e16575050565b634713c18b60e01b5f5260045260245260445ffd5b90614e3861099492614922565b638b063d7360e01b5f526149b3565b9050614e5560a08201614936565b15614e7457614e6e614b2a614e6983612836565b6144b8565b90614d82565b614e6e614b2a614e6960208401612836565b6020810190614e958282614b51565b5f93915080614ea384612836565b92614eb060608601614922565b6001600160801b03811615614fe7575b6040860191614ecf8388614b51565b801515958692509082614fdc575b5050614d37575f9591949395945b848610614f1b5750505050505050608001614f08614a7482614922565b6001600160801b03831610614e2b575050565b869850614f6a614f65614f3f614c5d89614f39878e9d9b9c9d614b51565b90614b86565b6001600160801b03909416939190614f5a6080880188610aea565b9184875f039161540a565b6154c3565b98614f88575b506001614f7d8993612836565b960194939591614eeb565b614fab906001600160801b038a166a0c097ce7bc90715b34b9f160241b02611739565b614fb987614d0e868b614b51565b35808210614fc75750614f70565b63a9b7edf760e01b5f5261099492508761176b565b14159050855f614edd565b50614ff4614b2a856144b8565b614ec0565b6001600160a01b039182165f9081529282166020908152604093849020935163789add5560e11b815260048101949094529183916024918391165afa908115610e68575f91615046575090565b90506020813d60201161506d575b8161506160209383611530565b81010312610123575190565b3d9150615054565b908215612b6a577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561012357604051630b0d9c0960e01b81526001600160a01b03938416600482015291909216602482015260448101929092525f908290606490829084905af18015610e68576150f55750565b806151015f8093611530565b80031261012357565b90600160ff1b8203615120576105b9915061512f565b816146bb576105b991506148b6565b6001600160a01b03811661514257504790565b6040516370a0823160e01b815230600482015290602090829060249082906001600160a01b03165afa908115610e68575f9161517c575090565b6105b9915060203d602011611138576111298183611530565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316806152fc57505f5b6001600160a01b0381169182156152ee5760405163aeb5556960e01b81526001600160a01b03919091169390602081600481885afa908115610e68575f916152cf575b501561461b57615237602061521d611bf2565b6040518093819263f493cec360e01b83526004830161450f565b0381885afa908115610e68575f916152b0575b50156145ee576001600160a01b03811630036152a3575050828261526d926156e5565b803b1561012357604051630934f6c760e21b815260048101929092525f908290602490829084905af18015610e685761231c5750565b610132949391925061562a565b6152c9915060203d60201161261d5761260f8183611530565b5f61524a565b6152e8915060203d60201161261d5761260f8183611530565b5f61520a565b9050610132939291506155f3565b6040516312f7fd6760e11b815290602090829081806153276001600160a01b03881660048301610785565b03915afa908115610e68575f9161533f575b506151c7565b615358915060203d602011610e6157610e538183611530565b5f615339565b6001600160801b038116919082900361537357565b6393dafdf160e01b5f5260045ffd5b6001600160a01b039091169052565b81516001600160a01b03908116825260208084015182168184015260408085015162ffffff168185015260608086015160020b908501526080948501518316948401949094528451151560a084015284015160c083015291909201511660e08201526105b992906101209081610100820152019161180f565b90916020939461544d6154689261542085615776565b85156154a8576401000276a4905b615440615439611563565b9715158852565b8787015260408601615382565b604051633cf3645360e21b8152958694859460048601615391565b03815f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1908115610e68575f9161517c575090565b73fffd8963efd1fc6a506488495d951d5263988d259061542e565b90156154e357600f0b5b5f81600f0b12615373576001600160801b031690565b60801d6154cd565b614b2a906105b9925f146155055760801d5b600f0b6116ed565b600f0b6154fd565b356105b981611911565b356105b98161191e565b905f608060405161553181611510565b828152826020820152826040820152826060820152015261555182612836565b906001600160a01b0380831690821610156155d757906143a3906155ce60015b946155c46155816020830161550d565b6155b861559c606061559560408701615517565b9501612836565b956155af6155a8611572565b998a615382565b60208901615382565b62ffffff166040870152565b60020b6060850152565b60808301615382565b6001600160a01b03918216916143a391166155ce818414615571565b61013292916001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169216611dc4565b6001600160a01b03918216927f000000000000000000000000000000000000000000000000000000000000000090921691823b1561012357604051631b63c28b60e11b8152925f92849283918591839161569591906001600160a01b038c16908b9060048601613163565b03925af18015610e68576156d1575b50803b1561012357604051630934f6c760e21b815260048101929092525f90829081838160248101612937565b8061232a5f6156df93611530565b5f6156a4565b9091906001600160a01b03811661571257505f80808061570694865af11590565b61570d5750565b6158ac565b6040805163a9059cbb60e01b81526001600160a01b039094166004850152602484019290925291905f9060208260448582885af13d15601f3d116001855114161716928281528260208201520152156157685750565b6001600160a01b031661583f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031615612ba25780516080820180516101329391926157c9916001600160a01b039081169116615915565b6020015190516001600160a01b039081169116615915565b9061580557508051156157f657805190602001fd5b630a12f52160e11b5f5260045ffd5b81511580615836575b615816575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b1561580e565b6040516390bfb86560e01b81526001600160a01b03909116600482015263a9059cbb60e01b60248201526080604482015260a03d601f01601f191690810160648301523d60848301523d5f60a484013e808201600460a482015260c4633c9fd93960e21b91015260e40190fd5b6040516390bfb86560e01b81526001600160a01b0390911660048201525f602482018190526080604483015260a03d601f01601f191690810160648401523d6084840152903d9060a484013e808201600460a482015260c4633d2cec6f60e21b91015260e40190fd5b6040516312f7fd6760e11b81526001600160a01b039190911690602081806159408560048301610785565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610e68575f916159f5575b506001600160a01b031615612a6b576159ad916020916040518080958194631557c23760e01b835260048301610785565b03915afa908115610e68575f916159d6575b50156159c757565b636e11e93f60e01b5f5260045ffd5b6159ef915060203d60201161261d5761260f8183611530565b5f6159bf565b615a0e915060203d602011610e6157610e538183611530565b5f61597c56fe0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a708af28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f692a42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb6d317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee31a164736f6c634300081a000a000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba30000000000000000000000004200000000000000000000000000000000000006000000000000000000000000fe57a6ba1951f69ae2ed4abe23e0f095df500c04000000000000000000000000640887a9ba3a9c53ed27d0f7e8246a4f933f342496e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54000000000000000000000000360e68faccca8ca495c1b759fd9eee466db9fb32000000000000000000000000d8eeba7c373d612f24660e45fa96f5d95b0c9d16000000000000000000000000c0836e5b058bbe22ae2266e1ac488a1a0fd8dce80000000000000000000000001b35d13a2e2528f192637f14b05f0dc0e7deb566000000000000000000000000ef684c38f94f48775959ecf2012d7e864ffb9dd4", + "nonce": "0xc", + "chainId": "0xdef1" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x63a2fe", + "logs": [], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0xd37e3e958e9c35d63b48bde9de8e7a01878f0881fa20b6e434a9f865244fc0db", + "transactionIndex": "0x6", + "blockHash": "0x3903984e20541c81aef98d8ed3f1202711161b0da5ee1e2925c35e0ae1db7446", + "blockNumber": "0x35a7cbf", + "gasUsed": "0x4df679", + "effectiveGasPrice": "0x95c", + "blobGasUsed": "0x579900", + "from": "0x2179a60856e37dfeaaca0ab043b931fe224b27b6", + "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", + "contractAddress": null, + "daFootprintGasScalar": "0x190", + "l1BaseFeeScalar": "0x1148", + "l1BlobBaseFee": "0x1198b05", + "l1BlobBaseFeeScalar": "0xc5f4f", + "l1Fee": "0x76190dde56", + "l1GasPrice": "0x11291dd2", + "l1GasUsed": "0x3810b" + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1789760233353, + "chain": 57073, + "commit": "e34ba78" +} \ No newline at end of file diff --git a/broadcast/Deploy-all.s.sol/57073/run-latest.json b/broadcast/Deploy-all.s.sol/57073/run-latest.json index bb24abe9..a7f23a1b 100644 --- a/broadcast/Deploy-all.s.sol/57073/run-latest.json +++ b/broadcast/Deploy-all.s.sol/57073/run-latest.json @@ -1,163 +1,21 @@ { "transactions": [ { - "hash": "0x85a87d8886f08683247c710b097241624c848df7bc67be73ecd9d3c54ab876a2", + "hash": "0xd37e3e958e9c35d63b48bde9de8e7a01878f0881fa20b6e434a9f865244fc0db", "transactionType": "CREATE2", - "contractName": null, - "contractAddress": "0xd8eeba7c373d612f24660e45fa96f5d95b0c9d16", - "function": null, - "arguments": null, - "transaction": { - "from": "0x9701fb0ade1e269c8f64ec0c7b3cfadb31a13a52", - "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", - "gas": "0x347bca", - "value": "0x0", - "input": "0x000000000000000000000000000000000000000000000000000000000000000060a034606d57601f612cc738819003918201601f19168301916001600160401b03831184841017607157808492602094604052833981010312606d57516001600160a01b0381168103606d57608052604051612c4190816100868239608051818181610129015261052d0152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe6080806040526004361015610012575f80fd5b5f3560e01c90816325efface146105515750806362308e85146104e35780637986a358146102a6578063a625fcd41461022e5763acd4625314610053575f80fd5b3461022a5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022a5760043573ffffffffffffffffffffffffffffffffffffffff811680910361022a5760243573ffffffffffffffffffffffffffffffffffffffff811680910361022a576044359073ffffffffffffffffffffffffffffffffffffffff821680920361022a576040519161264b908184019084821067ffffffffffffffff8311176101fd5760809385936105ea853986835273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000166020840152604083015260608201520301905ff09081156101f25773ffffffffffffffffffffffffffffffffffffffff60209216805f525f835260405f2073ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff000000000000000000000000000000000000000082541617905560405191817fc668126f9ef0f53f8ed212e25aa243fdac9e87eb842f5361ab28b6fd65d672285f80a38152f35b6040513d5f823e3d90fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f80fd5b3461022a5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022a5773ffffffffffffffffffffffffffffffffffffffff61027a6105c6565b165f525f602052602073ffffffffffffffffffffffffffffffffffffffff60405f205416604051908152f35b3461022a5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022a5773ffffffffffffffffffffffffffffffffffffffff6102f26105c6565b16805f525f60205273ffffffffffffffffffffffffffffffffffffffff60405f2054169081156104b857805f52600160205273ffffffffffffffffffffffffffffffffffffffff60405f20541661048d576040517f70a08231000000000000000000000000000000000000000000000000000000008152816004820152602081602481865afa9081156101f2575f91610427575b50156103fc57805f52600160205260405f2073ffffffffffffffffffffffffffffffffffffffff83167fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790557f031ac7092abd11438885b362e3e4ff3b6999ba04494f91211c7f34cf4d2cb49f5f80a3005b7f35d7c67c000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b905060203d602011610486575b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f820116820182811067ffffffffffffffff8211176101fd5760209183916040528101031261022a575183610386565b503d610434565b7f3159709b000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7faa274a37000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b3461022a575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022a57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461022a5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261022a5760209073ffffffffffffffffffffffffffffffffffffffff6105a06105c6565b165f526001825273ffffffffffffffffffffffffffffffffffffffff60405f2054168152f35b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361022a5756fe60c0604052346100c057608061264b803803809161001c826100d8565b60c039126100c05761006060c05161003381610126565b60e05161003f81610126565b610100519061004d82610126565b610120519261005b84610126565b610137565b604051611dee908161085d823960805181818161071d01528181610864015281816118c70152818161190d0152611934015260a0518181816106be015281816110fd015281816113f70152818161153f015281816116e10152611c2b0152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b60c0601f91909101601f19168101906001600160401b038211908210176100fe57604052565b6100c4565b601f909101601f19168101906001600160401b038211908210176100fe57604052565b6001600160a01b038116036100c057565b61020d6101fa6101b1610218969561020860018060a01b0386166101e06040916101bf61018e84516101698682610103565b60128152712832b936b4b9b9b4b7b732b2102a37b5b2b760711b602082015283610701565b84519788916a02ab734b9bbb0b8103b1a160ad1b6020840152602b830190610508565b03601f198101885287610103565b8251906101cc8483610103565b6002825261141560f21b60208301526107aa565b9051948591611d8d60f21b60208401526022830190610508565b03601f198101855284610103565b61021a565b60a05260805261051a565b565b815191939290916001600160401b0381116100fe576102438161023e60035461033d565b610375565b6020601f82116001146102b65790806102779261027f9596975f926102ab575b50508160011b915f199060031b1c19161790565b600355610414565b6001600160a01b0381161561029757610218906105fa565b631e4fbdf760e01b5f90815260045260245ffd5b015190505f80610263565b60035f52601f198216957fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b965f5b81811061032557509161027f9596979184600195941061030d575b505050811b01600355610414565b01515f1960f88460031b161c191690555f80806102ff565b838301518955600190980197602093840193016102e4565b90600182811c9216801561036b575b602083101461035757565b634e487b7160e01b5f52602260045260245ffd5b91607f169161034c565b601f8111610381575050565b60035f5260205f20906020601f840160051c830193106103bb575b601f0160051c01905b8181106103b0575050565b5f81556001016103a5565b909150819061039c565b601f82116103d257505050565b5f5260205f20906020601f840160051c8301931061040a575b601f0160051c01905b8181106103ff575050565b5f81556001016103f4565b90915081906103eb565b80519091906001600160401b0381116100fe5761043d8161043660045461033d565b60046103c5565b602092601f82116001146104715761046c929382915f926102ab5750508160011b915f199060031b1c19161790565b600455565b60045f52601f198216937f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b915f5b8681106104d557508360019596106104bd575b505050811b01600455565b01515f1960f88460031b161c191690555f80806104b2565b9192602060018192868501518155019401920161049f565b6001600160401b0381116100fe57601f01601f191660200190565b805191908290602001825e015f815290565b60018060a01b031660205f604051828101906301ffc9a760e01b82526301ffc9a760e01b602482015260248152610552604482610103565b519084617530fa5f513d826105ee575b50816105e4575b50806105d4575b806105c5575b156105b357600780546001600160a01b031916821790557fbca8d38b73c0bd49fed0184fde2164819be3e78422a9c1ab4a8dab2d10ff6b925f80a2565b637a6f66a560e01b5f5260045260245ffd5b506105cf8161082b565b610576565b506105de816107ce565b15610570565b905015155f610569565b6020111591505f610562565b600680546001600160a01b0319908116909155600580549182166001600160a01b0393841690811790915591167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3565b3d15610677573d9061065e826104ed565b9161066c6040519384610103565b82523d5f602084013e565b606090565b603f1981019190821161068b57565b634e487b7160e01b5f52601160045260245ffd5b6020818303126100c0578051906001600160401b0382116100c0570181601f820112156100c0578051906106d2826104ed565b926106e06040519485610103565b828452602083830101116100c057815f9260208093018386015e8301015290565b5f809160405160208101906306fdde0360e01b825260048152610725602482610103565b51915afa9061073261064d565b9115801561079f575b61079a576020820190815160206040850151911490811591610791575b811561077e575b506107785750602082610775935101019061069f565b90565b91505090565b905061078a845161067c565b105f61075f565b80159150610758565b905090565b50604082511061073b565b5f809160405160208101906395d89b4160e01b825260048152610725602482610103565b5f602091604051838101906301ffc9a760e01b825263ffffffff60e01b6024820152602481526107ff604482610103565b5191617530fa5f513d8261081f575b5081610818575090565b9050151590565b6020111591505f61080e565b5f602091604051838101906301ffc9a760e01b825263274e332360e21b6024820152602481526107ff60448261010356fe60806040526004361015610011575f80fd5b5f3560e01c806306fdde03146101a4578063095ea7b31461019f57806318160ddd1461019a57806323b872dd1461019557806324d3db1c14610190578063313ce5671461018b57806362308e85146101865780636c2091471461018157806370a082311461017c578063715018a6146101775780637185f8581461017257806379ba50971461016d5780638da5cb5b1461016857806395d89b4114610163578063a9059cbb1461015e578063aeb5556914610159578063dd62ed3e14610154578063e30c39781461014f578063e4a4b0101461014a578063e73bce9514610145578063ef59d5c314610140578063f21a2d0e1461013b578063f2fde38b14610136578063f493cec3146101315763fb137ce31461012c575f80fd5b6114f5565b611362565b611276565b6111c0565b611076565b61100a565b610fb7565b610f66565b610ecd565b610e8a565b610e42565b610d6f565b610d1e565b610c14565b610a80565b6109bc565b610956565b610888565b61081a565b6107d7565b61061b565b6104be565b610483565b61035b565b6101f1565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602060409481855280519182918282880152018686015e5f8582860101520116010190565b34610339575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610339576040515f6003548060011c906001811690811561032f575b6020831082146103025782855260208501919081156102cb5750600114610279575b6102758461026981860382611590565b604051918291826101a9565b0390f35b60035f9081529250907fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b8184106102b75750500161026982610259565b8054848401526020909301926001016102a4565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001682525090151560051b01905061026982610259565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b91607f1691610237565b5f80fd5b73ffffffffffffffffffffffffffffffffffffffff81160361033957565b346103395760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610339576004356103968161033d565b60243533156104575773ffffffffffffffffffffffffffffffffffffffff821691821561042b576103f18291335f52600160205260405f209073ffffffffffffffffffffffffffffffffffffffff165f5260205260405f2090565b5560405190815233907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590602090a3602060405160018152f35b7f94280d62000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b7fe602df05000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b34610339575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610339576020600254604051908152f35b346103395760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610339576004356104f98161033d565b6024356105058161033d565b6044359073ffffffffffffffffffffffffffffffffffffffff831692835f5260016020526105543360405f209073ffffffffffffffffffffffffffffffffffffffff165f5260205260405f2090565b54937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8503610594575b506105899350611751565b602060405160018152f35b8385106105e757801561045757331561042b576105899484915f526001602052036105e03360405f209073ffffffffffffffffffffffffffffffffffffffff165f5260205260405f2090565b555f61057e565b83857ffb8f41b2000000000000000000000000000000000000000000000000000000005f523360045260245260445260645ffd5b346103395760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103395760043561068661068261067b3373ffffffffffffffffffffffffffffffffffffffff165f52600860205260405f2090565b5460ff1690565b1590565b6107ab576040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526020816024817f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff165afa80156107a657610710915f91610777575b506002549061161d565b80821161074357610741827f00000000000000000000000000000000000000000000000000000000000000006117ee565b005b7fcf479181000000000000000000000000000000000000000000000000000000005f5260049190915260245260445ffd5b5ffd5b610799915060203d60201161079f575b6107918183611590565b8101906115d6565b5f610706565b503d610787565b6115e5565b7f87d4de58000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b34610339575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033957602061080f61168c565b60ff60405191168152f35b34610339575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033957602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346103395760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610339576004356108c38161033d565b60243590811515820361033957602073ffffffffffffffffffffffffffffffffffffffff7facf055a373fc18efc9064504f586326ebad3223431207428c553428eaf75461392610911611815565b1692835f526008825260405f20901515907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0081541660ff8316179055604051908152a2005b346103395760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103395773ffffffffffffffffffffffffffffffffffffffff6004356109a68161033d565b165f525f602052602060405f2054604051908152f35b34610339575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610339576109f2611815565b7fffffffffffffffffffffffff0000000000000000000000000000000000000000600654166006555f73ffffffffffffffffffffffffffffffffffffffff6005547fffffffffffffffffffffffff00000000000000000000000000000000000000008116600555167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b346103395760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103395773ffffffffffffffffffffffffffffffffffffffff600435610ad08161033d565b610ad8611815565b1660205f604051828101907f01ffc9a70000000000000000000000000000000000000000000000000000000082527f01ffc9a700000000000000000000000000000000000000000000000000000000602482015260248152610b3b604482611590565b519084617530fa5f513d82610c08575b5081610bfe575b5080610bee575b80610bdf575b15610bb457807fffffffffffffffffffffffff000000000000000000000000000000000000000060075416176007557fbca8d38b73c0bd49fed0184fde2164819be3e78422a9c1ab4a8dab2d10ff6b925f80a2005b7f7a6f66a5000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b50610be981611d7e565b610b5f565b50610bf881611cef565b15610b59565b905015155f610b52565b6020111591505f610b4b565b34610339575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610339573373ffffffffffffffffffffffffffffffffffffffff6006541603610cf2577fffffffffffffffffffffffff000000000000000000000000000000000000000060065416600655600554337fffffffffffffffffffffffff000000000000000000000000000000000000000082161760055573ffffffffffffffffffffffffffffffffffffffff3391167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3005b7f118cdaa7000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b34610339575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033957602073ffffffffffffffffffffffffffffffffffffffff60055416604051908152f35b34610339575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610339576040515f6004548060011c9060018116908115610e38575b6020831082146103025782855260208501919081156102cb5750600114610de6576102758461026981860382611590565b60045f9081529250907f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b818410610e245750500161026982610259565b805484840152602090930192600101610e11565b91607f1691610db5565b346103395760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033957610589600435610e808161033d565b6024359033611751565b34610339575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033957602060ff60075460a01c166040519015158152f35b346103395760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610339576020610f5d600435610f0d8161033d565b73ffffffffffffffffffffffffffffffffffffffff60243591610f2f8361033d565b165f526001835260405f209073ffffffffffffffffffffffffffffffffffffffff165f5260205260405f2090565b54604051908152f35b34610339575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033957602073ffffffffffffffffffffffffffffffffffffffff60065416604051908152f35b34610339575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103395760075460405173ffffffffffffffffffffffffffffffffffffffff9091168152602090f35b346103395760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103395773ffffffffffffffffffffffffffffffffffffffff60043561105a8161033d565b165f526008602052602060ff60405f2054166040519015158152f35b346103395760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103395760043560205f60646040517f23b872dd0000000000000000000000000000000000000000000000000000000081523360048201523060248201528460448201528273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165af13d15601f3d1160015f5114161716156111625760405190815233907f06434cb6a9670e5da877306015486047189842c1b3b62f49c8bbf65a1868f54e90602090a2005b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f5452414e534645525f46524f4d5f4641494c45440000000000000000000000006044820152fd5b346103395760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610339576004358015158091036103395760207f04eddf1a09d47c4653f2d8d8ab3a0e99b462f6032bae11a002b9f919b660c46d91611228611815565b6007547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff74ff00000000000000000000000000000000000000008360a01b16911617600755604051908152a1005b346103395760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103395773ffffffffffffffffffffffffffffffffffffffff6004356112c68161033d565b6112ce611815565b16807fffffffffffffffffffffffff0000000000000000000000000000000000000000600654161760065573ffffffffffffffffffffffffffffffffffffffff600554167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e227005f80a3005b7fffff00000000000000000000000000000000000000000000000000000000000081160361033957565b346103395760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126103395760043561139d8161033d565b61142f6020602435926113af84611338565b6007546040517f9d38cc8c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff92831660048201527f00000000000000000000000000000000000000000000000000000000000000008316602482015293849290911690829081906044820190565b03915afa9081156107a6575f916114aa575b610275611498848481167fffff000000000000000000000000000000000000000000000000000000000000165b7fffff00000000000000000000000000000000000000000000000000000000000090811691161490565b60405190151581529081906020820190565b90506020813d6020116114ed575b816114c560209383611590565b81010312610339578161146e6102759361149893516114e381611338565b9350935050611441565b3d91506114b8565b34610339575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261033957602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176115d157604052565b611563565b90816020910312610339575190565b6040513d5f823e3d90fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b9190820391821161162a57565b6115f0565b3d15611687573d9067ffffffffffffffff82116115d1576040519161167c60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8401160184611590565b82523d5f602084013e565b606090565b5f8060405160208101907f313ce567000000000000000000000000000000000000000000000000000000008252600481526116c8602482611590565b519073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa61170b61162f565b90158015611746575b611740578060208061172b935183010191016115d6565b60ff81111561173a5750601290565b60ff1690565b50601290565b506020815110611714565b919073ffffffffffffffffffffffffffffffffffffffff8316156117c25773ffffffffffffffffffffffffffffffffffffffff811615611796576117949261186a565b565b7fec442f05000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b7f96c6fd1e000000000000000000000000000000000000000000000000000000005f525f60045260245ffd5b9073ffffffffffffffffffffffffffffffffffffffff82161561179657611794915f61186a565b73ffffffffffffffffffffffffffffffffffffffff600554163303610cf257565b1561183d57565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52600160045260245ffd5b92919073ffffffffffffffffffffffffffffffffffffffff81168015611a005773ffffffffffffffffffffffffffffffffffffffff8516806118f25750936118ed611794949573ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614611836565b611a18565b73ffffffffffffffffffffffffffffffffffffffff939291937f000000000000000000000000000000000000000000000000000000000000000016036119b9577f00000000000000000000000000000000000000000000000000000000000000009273ffffffffffffffffffffffffffffffffffffffff8416146119b9576119808282611985959697611a18565b611bb1565b6119af6117949173ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f2090565b5460025414611836565b7f709ac017000000000000000000000000000000000000000000000000000000005f5273ffffffffffffffffffffffffffffffffffffffff8086166004521660245260445ffd5b506117949293611a18565b9190820180921161162a57565b909173ffffffffffffffffffffffffffffffffffffffff82169182611ae35750611aac81611a71611a6c7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef94600254611a0b565b600255565b73ffffffffffffffffffffffffffffffffffffffff85169485611ab15750611a9c8160025403600255565b6040519081529081906020820190565b0390a3565b611ad89073ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f2090565b818154019055611a9c565b611b0a8173ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f2090565b54828110611b685791611aac91611b62827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef95039173ffffffffffffffffffffffffffffffffffffffff165f525f60205260405f2090565b55611a71565b7fe450d38c000000000000000000000000000000000000000000000000000000005f5273ffffffffffffffffffffffffffffffffffffffff90911660045260245260445260645ffd5b9073ffffffffffffffffffffffffffffffffffffffff8216918215611cc057815f611bdb9261186a565b60446020925f92604051917fa9059cbb000000000000000000000000000000000000000000000000000000008352600483015260248201528273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165af13d15601f3d1160015f511416171615611c6257565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f5452414e534645525f4641494c454400000000000000000000000000000000006044820152fd5b7f96c6fd1e000000000000000000000000000000000000000000000000000000005f526107746024905f600452565b5f602091604051838101907f01ffc9a70000000000000000000000000000000000000000000000000000000082527fffffffff00000000000000000000000000000000000000000000000000000000602482015260248152611d52604482611590565b5191617530fa5f513d82611d72575b5081611d6b575090565b9050151590565b6020111591505f611d61565b5f602091604051838101907f01ffc9a70000000000000000000000000000000000000000000000000000000082527f9d38cc8c00000000000000000000000000000000000000000000000000000000602482015260248152611d5260448261159056fea164736f6c634300081a000aa164736f6c634300081a000a000000000000000000000000360e68faccca8ca495c1b759fd9eee466db9fb32", - "nonce": "0x0", - "chainId": "0xdef1" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0xcee82791dae57bca70e968d97867dc194e9063189f78ea3f8b8877c080df6556", - "transactionType": "CREATE", - "contractName": "Quoter", - "contractAddress": "0x89e5db8b5aa49aa85ac63f691524311aeb649eba", - "function": null, - "arguments": [ - "0x640887A9ba3A9C53Ed27D0F7e8246A4F933f3424" - ], - "transaction": { - "from": "0x9701fb0ade1e269c8f64ec0c7b3cfadb31a13a52", - "gas": "0x2e3a7d", - "value": "0x0", - "input": "0x60a06040523480156200001157600080fd5b50604051620029ca380380620029ca83398101604081905262000034916200004a565b60601b6001600160601b0319166080526200007a565b6000602082840312156200005c578081fd5b81516001600160a01b038116811462000073578182fd5b9392505050565b60805160601c61292d6200009d600039806104d45280610cff525061292d6000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c8063c45a01551161005b578063c45a0155146100e4578063c6a5026a146100f9578063cdca17531461010c578063d85c3d631461011f5761007d565b80632f80bb1d1461008257806386e3a7cf146100ae578063bd21704a146100d1575b600080fd5b6100956100903660046124db565b610132565b6040516100a5949392919061281f565b60405180910390f35b6100c16100bc366004612635565b6102e9565b6040516100a594939291906128ba565b6100c16100df366004612583565b61042a565b6100ec6104d2565b6040516100a591906127fd565b6100c1610107366004612583565b6104f6565b61009561011a3660046124db565b61058b565b6100c161012d36600461259e565b610720565b6000606080600061014286610818565b67ffffffffffffffff8111801561015857600080fd5b50604051908082528060200260200182016040528015610182578160200160208202803683370190505b50925061018e86610818565b67ffffffffffffffff811180156101a457600080fd5b506040519080825280602002602001820160405280156101ce578160200160208202803683370190505b50915060005b60008060006101e28a610829565b925092509250600080600061023d6040518060a00160405280876001600160a01b03168152602001886001600160a01b031681526020018e81526020018662ffffff16815260200160006001600160a01b031681525061042a565b50925092509250818a888151811061025157fe5b60200260200101906001600160a01b031690816001600160a01b0316815250508089888151811061027e57fe5b602002602001019063ffffffff16908163ffffffff1681525050829b5086806001019750506102ac8d61085a565b156102c1576102ba8d610862565b9c506102d5565b508a9950600096506102e095505050505050565b5050505050506101d4565b92959194509250565b60008060008060008060008088602001516001600160a01b031689600001516001600160a01b031610905060008960800151905060008a60a001516001600160a01b03166000141561033c575060408a01515b6000604051806080016040528085151581526020016001151581526020018d6060015162ffffff1681526020018d60a001516001600160a01b0316600014610388578d60a001516103ae565b856103a75773fffd8963efd1fc6a506488495d951d5263988d256103ae565b6401000276a45b6001600160a01b031681525090506103d6836103cd8e6040015161087f565b60000383610895565b909c509a509097509550600087136103ee57856103f0565b865b9a50600087136104035786600003610408565b856000035b9450811561041c5781851461041c57600080fd5b505050505050509193509193565b6000806000806000610449866000015187602001518860600151610cf8565b905060006040518060c0016040528088600001516001600160a01b0316815260200188602001516001600160a01b0316815260200188604001518152602001886060015162ffffff168152602001836001600160a01b0316815260200160006001600160a01b031681525090506104bf816102e9565b5091999098509096509294509192505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000806000806000610515866000015187602001518860600151610cf8565b905060006040518060c0016040528088600001516001600160a01b0316815260200188602001516001600160a01b0316815260200188604001518152602001836001600160a01b03168152602001886060015162ffffff16815260200160006001600160a01b031681525090506104bf81610720565b6000606080600061059b86610818565b67ffffffffffffffff811180156105b157600080fd5b506040519080825280602002602001820160405280156105db578160200160208202803683370190505b5092506105e786610818565b67ffffffffffffffff811180156105fd57600080fd5b50604051908082528060200260200182016040528015610627578160200160208202803683370190505b50915060005b600080600061063b8a610829565b92509250925060008060006106966040518060a00160405280886001600160a01b03168152602001876001600160a01b031681526020018e81526020018662ffffff16815260200160006001600160a01b03168152506104f6565b50925092509250818a88815181106106aa57fe5b60200260200101906001600160a01b031690816001600160a01b031681525050808988815181106106d757fe5b602002602001019063ffffffff16908163ffffffff1681525050829b5086806001019750506107058d61085a565b156102c1576107138d610862565b9c5050505050505061062d565b600080600080600080600087602001516001600160a01b031688600001516001600160a01b03161090506000886060015190506000604051806080016040528084151581526020016000151581526020018b6080015162ffffff1681526020018b60a001516001600160a01b031660001461079f578b60a001516107c5565b846107be5773fffd8963efd1fc6a506488495d951d5263988d256107c5565b6401000276a45b6001600160a01b031681525090506107ea826107e48c6040015161087f565b83610895565b909a509850909550935060008513610805578460000361080a565b836000035b985050505050509193509193565b80516017601319909101045b919050565b600080806108378482610d36565b9250610844846014610de6565b9050610851846017610d36565b91509193909250565b516042111590565b805160609061087990839060179060161901610e8d565b92915050565b6000600160ff1b821061089157600080fd5b5090565b6000808313602083015280806001816108ad88610fe0565b905060006040518060e001604052808981526020016000815260200183600001516001600160a01b03168152602001836020015160020b81526020016000815260200160006001600160801b031681526020018a6001600160a01b0316631a6865026040518163ffffffff1660e01b815260040160206040518083038186803b15801561093957600080fd5b505afa15801561094d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061097191906126af565b6001600160801b0316905290505b8051158015906109a9575086606001516001600160a01b031681604001516001600160a01b031614155b15610cb4576109b661238c565b6040808301516001600160a01b03168252830151606083015189516109de928d9290916110fb565b15156040830152600290810b810b60208301819052620d89e719910b1215610a0f57620d89e7196020820152610a2e565b6020810151620d89e860029190910b1315610a2e57620d89e860208201525b610a3b81602001516112f7565b6001600160a01b0316606082015260408201518851610abe9190610a7b5789606001516001600160a01b031683606001516001600160a01b031611610a99565b89606001516001600160a01b031683606001516001600160a01b0316105b610aa7578260600151610aad565b89606001515b60c0850151855160408d0151611629565b60c085015260a084015260808301526001600160a01b03166040830152602088015115610b2457610af88160c0015182608001510161087f565b825103825260a0810151610b1a90610b0f9061087f565b60208401519061181b565b6020830152610b5f565b610b318160a0015161087f565b825101825260c08101516080820151610b5991610b4e910161087f565b602084015190611831565b60208301525b80606001516001600160a01b031682604001516001600160a01b03161415610c7357806040015115610c4957602081015160405163f30dba9360e01b81526000916001600160a01b038d169163f30dba9391610bbd91600401612811565b6101006040518083038186803b158015610bd657600080fd5b505afa158015610bea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c0e91906126c9565b505050505050915050886000015115610c25576000035b610c338360c0015182611847565b6001600160801b031660c0840152506001909301925b8751610c59578060200151610c62565b60018160200151035b600290810b900b6060830152610cae565b80600001516001600160a01b031682604001516001600160a01b031614610cae57610ca182604001516118fd565b600290810b900b60608301525b5061097f565b60208701518751151590151514610cd357602081015181518903610ce0565b8060000151880381602001515b604090920151909a9199509750919550909350505050565b6000610d2e7f0000000000000000000000000000000000000000000000000000000000000000610d29868686611c1c565b611c72565b949350505050565b600081826014011015610d85576040805162461bcd60e51b8152602060048201526012602482015271746f416464726573735f6f766572666c6f7760701b604482015290519081900360640190fd5b8160140183511015610dd6576040805162461bcd60e51b8152602060048201526015602482015274746f416464726573735f6f75744f66426f756e647360581b604482015290519081900360640190fd5b500160200151600160601b900490565b600081826003011015610e34576040805162461bcd60e51b8152602060048201526011602482015270746f55696e7432345f6f766572666c6f7760781b604482015290519081900360640190fd5b8160030183511015610e84576040805162461bcd60e51b8152602060048201526014602482015273746f55696e7432345f6f75744f66426f756e647360601b604482015290519081900360640190fd5b50016003015190565b60608182601f011015610ed8576040805162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b604482015290519081900360640190fd5b828284011015610f20576040805162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b604482015290519081900360640190fd5b81830184511015610f6c576040805162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b604482015290519081900360640190fd5b606082158015610f8b5760405191506000825260208201604052610fd5565b6040519150601f8416801560200281840101858101878315602002848b0101015b81831015610fc4578051835260209283019201610fac565b5050858452601f01601f1916604052505b5090505b9392505050565b610fe86123c8565b816001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160e06040518083038186803b15801561102157600080fd5b505afa158015611035573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611059919061276f565b5050505050600290810b900b6020808401919091526001600160a01b039182168352604080516334324e9f60e21b815290519285169263d0c93a7c92600480840193919291829003018186803b1580156110b257600080fd5b505afa1580156110c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110ea9190612569565b600290810b900b6040820152919050565b60008060008560020b8560020b8161110f57fe5b05905060008560020b12801561113657508560020b8560020b8161112f57fe5b0760020b15155b1561114057600019015b83156112175760008061115283611d56565b6040805163299ce14b60e11b8152600184810b6004830152915193955091935060ff84161b8001600019019160009183916001600160a01b038e1691635339c296916024808301926020929190829003018186803b1580156111b357600080fd5b505afa1580156111c7573d6000803e3d6000fd5b505050506040513d60208110156111dd57600080fd5b50511680151596509050856111f957898360ff1686030261120c565b8961120382611d68565b840360ff168603025b9650505050506112ed565b60008061122683600101611d56565b91509150600060018260ff166001901b031990506000818b6001600160a01b0316635339c296866040518263ffffffff1660e01b8152600401808260010b815260200191505060206040518083038186803b15801561128457600080fd5b505afa158015611298573d6000803e3d6000fd5b505050506040513d60208110156112ae57600080fd5b50511680151596509050856112d057898360ff0360ff168660010101026112e6565b89836112db83611e08565b0360ff168660010101025b9650505050505b5094509492505050565b60008060008360020b1261130e578260020b611316565b8260020b6000035b9050620d89e8811115611354576040805162461bcd60e51b81526020600482015260016024820152601560fa1b604482015290519081900360640190fd5b60006001821661136857600160801b61137a565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff16905060028216156113ae576ffff97272373d413259a46990580e213a0260801c5b60048216156113cd576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b60088216156113ec576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b601082161561140b576fffcb9843d60f6159c9db58835c9266440260801c5b602082161561142a576fff973b41fa98c081472e6896dfb254c00260801c5b6040821615611449576fff2ea16466c96a3843ec78b326b528610260801c5b6080821615611468576ffe5dee046a99a2a811c461f1969c30530260801c5b610100821615611488576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b6102008216156114a8576ff987a7253ac413176f2b074cf7815e540260801c5b6104008216156114c8576ff3392b0822b70005940c7a398e4b70f30260801c5b6108008216156114e8576fe7159475a2c29b7443b29c7fa6e889d90260801c5b611000821615611508576fd097f3bdfd2022b8845ad8f792aa58250260801c5b612000821615611528576fa9f746462d870fdf8a65dc1f90e061e50260801c5b614000821615611548576f70d869a156d2a1b890bb3df62baf32f70260801c5b618000821615611568576f31be135f97d08fd981231505542fcfa60260801c5b62010000821615611589576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b620200008216156115a9576e5d6af8dedb81196699c329225ee6040260801c5b620400008216156115c8576d2216e584f5fa1ea926041bedfe980260801c5b620800008216156115e5576b048a170391f7dc42444e8fa20260801c5b60008460020b13156116005780600019816115fc57fe5b0490505b640100000000810615611614576001611617565b60005b60ff16602082901c0192505050919050565b60008080806001600160a01b03808916908a1610158187128015906116ae5760006116628989620f42400362ffffff16620f4240611ef2565b90508261167b576116768c8c8c6001611fa1565b611688565b6116888b8d8c600161201a565b9550858110611699578a96506116a8565b6116a58c8b83866120c5565b96505b506116f8565b816116c5576116c08b8b8b600061201a565b6116d2565b6116d28a8c8b6000611fa1565b93508388600003106116e6578995506116f8565b6116f58b8a8a60000385612111565b95505b6001600160a01b038a811690871614821561175b578080156117175750815b61172d57611728878d8c600161201a565b61172f565b855b955080801561173c575081155b6117525761174d878d8c6000611fa1565b611754565b845b94506117a5565b8080156117655750815b61177b576117768c888c6001611fa1565b61177d565b855b955080801561178a575081155b6117a05761179b8c888c600061201a565b6117a2565b845b94505b811580156117b557508860000385115b156117c1578860000394505b8180156117e057508a6001600160a01b0316876001600160a01b031614155b156117ef57858903935061180c565b611809868962ffffff168a620f42400362ffffff1661215d565b93505b50505095509550955095915050565b8082038281131560008312151461087957600080fd5b8181018281121560008312151461087957600080fd5b60008082600f0b12156118ac57826001600160801b03168260000384039150816001600160801b0316106118a7576040805162461bcd60e51b81526020600482015260026024820152614c5360f01b604482015290519081900360640190fd5b610879565b826001600160801b03168284019150816001600160801b03161015610879576040805162461bcd60e51b81526020600482015260026024820152614c4160f01b604482015290519081900360640190fd5b60006401000276a36001600160a01b03831610801590611939575073fffd8963efd1fc6a506488495d951d5263988d266001600160a01b038316105b61196e576040805162461bcd60e51b81526020600482015260016024820152602960f91b604482015290519081900360640190fd5b640100000000600160c01b03602083901b166001600160801b03811160071b81811c67ffffffffffffffff811160061b90811c63ffffffff811160051b90811c61ffff811160041b90811c60ff8111600390811b91821c600f811160021b90811c918211600190811b92831c97908811961790941790921717909117171760808110611a0257607f810383901c9150611a0c565b80607f0383901b91505b908002607f81811c60ff83811c9190911c800280831c81831c1c800280841c81841c1c800280851c81851c1c800280861c81861c1c800280871c81871c1c800280881c81881c1c800280891c81891c1c8002808a1c818a1c1c8002808b1c818b1c1c8002808c1c818c1c1c8002808d1c818d1c1c8002808e1c9c81901c9c909c1c80029c8d901c9e9d607f198f0160401b60c09190911c678000000000000000161760c19b909b1c674000000000000000169a909a1760c29990991c672000000000000000169890981760c39790971c671000000000000000169690961760c49590951c670800000000000000169490941760c59390931c670400000000000000169290921760c69190911c670200000000000000161760c79190911c670100000000000000161760c89190911c6680000000000000161760c99190911c6640000000000000161760ca9190911c6620000000000000161760cb9190911c6610000000000000161760cc9190911c6608000000000000161760cd9190911c66040000000000001617693627a301d71055774c8581026f028f6481ab7f045a5af012a19d003aa9198101608090811d906fdb2df09e81959a81455e260799a0632f8301901d600281810b9083900b14611c0d57886001600160a01b0316611bf1826112f7565b6001600160a01b03161115611c065781611c08565b805b611c0f565b815b9998505050505050505050565b611c246123c8565b826001600160a01b0316846001600160a01b03161115611c42579192915b50604080516060810182526001600160a01b03948516815292909316602083015262ffffff169181019190915290565b600081602001516001600160a01b031682600001516001600160a01b031610611c9a57600080fd5b50805160208083015160409384015184516001600160a01b0394851681850152939091168385015262ffffff166060808401919091528351808403820181526080840185528051908301206001600160f81b031960a085015294901b6bffffffffffffffffffffffff191660a183015260b58201939093527fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b5460d5808301919091528251808303909101815260f5909101909152805191012090565b60020b600881901d9161010090910790565b6000808211611d7657600080fd5b600160801b8210611d8957608091821c91015b680100000000000000008210611da157604091821c91015b6401000000008210611db557602091821c91015b620100008210611dc757601091821c91015b6101008210611dd857600891821c91015b60108210611de857600491821c91015b60048210611df857600291821c91015b6002821061082457600101919050565b6000808211611e1657600080fd5b5060ff6001600160801b03821615611e3157607f1901611e39565b608082901c91505b67ffffffffffffffff821615611e5257603f1901611e5a565b604082901c91505b63ffffffff821615611e6f57601f1901611e77565b602082901c91505b61ffff821615611e8a57600f1901611e92565b601082901c91505b60ff821615611ea45760071901611eac565b600882901c91505b600f821615611ebe5760031901611ec6565b600482901c91505b6003821615611ed85760011901611ee0565b600282901c91505b60018216156108245760001901919050565b6000808060001985870986860292508281109083900303905080611f285760008411611f1d57600080fd5b508290049050610fd9565b808411611f3457600080fd5b6000848688096000868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b6000836001600160a01b0316856001600160a01b03161115611fc1579293925b81611fee57611fe9836001600160801b03168686036001600160a01b0316600160601b611ef2565b612011565b612011836001600160801b03168686036001600160a01b0316600160601b61215d565b95945050505050565b6000836001600160a01b0316856001600160a01b0316111561203a579293925b600160601b600160e01b03606084901b166001600160a01b03868603811690871661206457600080fd5b8361209457866001600160a01b03166120878383896001600160a01b0316611ef2565b8161208e57fe5b046120ba565b6120ba6120ab8383896001600160a01b031661215d565b886001600160a01b0316612197565b979650505050505050565b600080856001600160a01b0316116120dc57600080fd5b6000846001600160801b0316116120f257600080fd5b8161210457611fe985858560016121a2565b6120118585856001612283565b600080856001600160a01b03161161212857600080fd5b6000846001600160801b03161161213e57600080fd5b8161215057611fe98585856000612283565b61201185858560006121a2565b600061216a848484611ef2565b90506000828061217657fe5b8486091115610fd957600019811061218d57600080fd5b6001019392505050565b808204910615150190565b600081156122155760006001600160a01b038411156121d8576121d384600160601b876001600160801b0316611ef2565b6121f0565b6001600160801b038516606085901b816121ee57fe5b045b905061220d6122086001600160a01b03881683612366565b612376565b915050610d2e565b60006001600160a01b038411156122435761223e84600160601b876001600160801b031661215d565b61225a565b61225a606085901b6001600160801b038716612197565b905080866001600160a01b03161161227157600080fd5b6001600160a01b038616039050610d2e565b600082612291575083610d2e565b600160601b600160e01b03606085901b16821561231f576001600160a01b038616848102908582816122bf57fe5b0414156122f0578181018281106122ee576122e483896001600160a01b03168361215d565b9350505050610d2e565b505b61231682612311878a6001600160a01b0316868161230a57fe5b0490612366565b612197565b92505050610d2e565b6001600160a01b0386168481029085828161233657fe5b0414801561234357508082115b61234c57600080fd5b8082036122e4612208846001600160a01b038b168461215d565b8082018281101561087957600080fd5b806001600160a01b038116811461082457600080fd5b6040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c081019190915290565b604080516060810182526000808252602082018190529181019190915290565b803561082481612908565b8051801515811461082457600080fd5b8051600281900b811461082457600080fd5b600060a08284031215612426578081fd5b60405160a0810181811067ffffffffffffffff8211171561244357fe5b604052905080823561245481612908565b8152602083013561246481612908565b60208201526040838101359082015261247f606084016124c8565b6060820152608083013561249281612908565b6080919091015292915050565b80516001600160801b038116811461082457600080fd5b805161ffff8116811461082457600080fd5b803562ffffff8116811461082457600080fd5b600080604083850312156124ed578182fd5b823567ffffffffffffffff80821115612504578384fd5b818501915085601f830112612517578384fd5b813560208282111561252557fe5b612537601f8301601f191682016128e4565b9250818352878183860101111561254c578586fd5b818185018285013790820181019490945295939092013593505050565b60006020828403121561257a578081fd5b610fd982612403565b600060a08284031215612594578081fd5b610fd98383612415565b600060c082840312156125af578081fd5b60405160c0810181811067ffffffffffffffff821117156125cc57fe5b60405282356125da81612908565b815260208301356125ea81612908565b602082015260408381013590820152606083013561260781612908565b6060820152612618608084016124c8565b608082015261262960a084016123e8565b60a08201529392505050565b600060c08284031215612646578081fd5b60405160c0810181811067ffffffffffffffff8211171561266357fe5b604052823561267181612908565b8152602083013561268181612908565b60208201526040838101359082015261269c606084016124c8565b6060820152608083013561261881612908565b6000602082840312156126c0578081fd5b610fd98261249f565b600080600080600080600080610100898b0312156126e5578384fd5b6126ee8961249f565b9750602089015180600f0b8114612703578485fd5b80975050604089015195506060890151945060808901518060060b8114612728578485fd5b60a08a015190945061273981612908565b60c08a015190935063ffffffff81168114612752578283fd5b915061276060e08a016123f3565b90509295985092959890939650565b600080600080600080600060e0888a031215612789578081fd5b875161279481612908565b96506127a260208901612403565b95506127b0604089016124b6565b94506127be606089016124b6565b93506127cc608089016124b6565b925060a088015160ff811681146127e1578182fd5b91506127ef60c089016123f3565b905092959891949750929550565b6001600160a01b0391909116815260200190565b60029190910b815260200190565b600060808201868352602060808185015281875180845260a0860191508289019350845b818110156128685784516001600160a01b031683529383019391830191600101612843565b505084810360408601528651808252908201925081870190845b818110156128a457825163ffffffff1685529383019391830191600101612882565b5050505060609290920192909252949350505050565b9384526001600160a01b0392909216602084015263ffffffff166040830152606082015260800190565b60405181810167ffffffffffffffff8111828210171561290057fe5b604052919050565b6001600160a01b038116811461291d57600080fd5b5056fea164736f6c6343000706000a000000000000000000000000640887a9ba3a9c53ed27d0f7e8246a4f933f3424", - "nonce": "0x1", - "chainId": "0xdef1" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0x684cff4eb0a5d841133bcb4945f897b943cbae220e2d5f553d39cf61c38ef1ee", - "transactionType": "CREATE", - "contractName": "MixedRouteQuoterV2", - "contractAddress": "0x1f7d7550b1b028f7571e69a784071f0205fd2efa", + "contractName": "UniversalRouter", + "contractAddress": "0x8bbcaeb326ad590521a921c9e457ee09f336b48c", "function": null, "arguments": [ - "0x360E68faCcca8cA495c1B759Fd9EEe466db9FB32", - "0x640887A9ba3A9C53Ed27D0F7e8246A4F933f3424", - "0xfe57A6BA1951F69aE2Ed4abe23e0f095DF500C04" + "(0x000000000022D473030F116dDEE9F6B43aC78BA3, 0x4200000000000000000000000000000000000006, 0xfe57A6BA1951F69aE2Ed4abe23e0f095DF500C04, 0x640887A9ba3A9C53Ed27D0F7e8246A4F933f3424, 0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f, 0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54, 0x360E68faCcca8cA495c1B759Fd9EEe466db9FB32, 0xd8eeba7c373d612F24660E45fa96F5d95b0C9d16, 0xC0836E5B058BBE22ae2266e1AC488A1A0fD8DCE8, 0x1b35d13a2E2528f192637F14B05f0Dc0e7dEB566, 0xeF684C38F94F48775959ECf2012D7E864ffb9dd4)" ], "transaction": { - "from": "0x9701fb0ade1e269c8f64ec0c7b3cfadb31a13a52", - "gas": "0x1c9508", - "value": "0x0", - "input": "0x60e0346100c757601f6119fe38819003918201601f19168301916001600160401b038311848410176100cb578084926060946040528339810103126100c7578051906001600160a01b03821682036100c7576100696040610062602084016100df565b92016100df565b9160805260a05260c05260405161190a90816100f482396080518181816101c8015281816103080152818161051a015281816107730152610b8e015260a05181818161010001526102a6015260c05181818161062401526111250152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036100c75756fe60806040526004361015610011575f80fd5b5f3560e01c8063064a11341461088457806319fa62af146106535780636210c6201461060f57806385894af5146103ce5780638a4992861461038157806391dd7346146102d55780639a45181d14610291578063add1ce0e14610229578063d737d0c7146101f7578063dc4c90d3146101b35763fa461e3314610092575f80fd5b34610196576060366003190112610196576004356024356044356001600160401b038111610196576100c8903690600401610da6565b905f8413918215806101a9575b61019a576100e29161160b565b939192906001600160a01b0390610124906100fe9087876117b5565b7f0000000000000000000000000000000000000000000000000000000000000000611818565b1633036101965715610174576101399061100e565b92916001600160a01b039081169116105b156101625750633b2f660160e21b5f5260045260245ffd5b633b2f660160e21b5f5260045260245ffd5b926101819092919261100e565b92916001600160a01b0390811691161061014a565b5f80fd5b63c3c5e9e760e01b5f5260045ffd5b505f8413156100d5565b34610196575f366003190112610196576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610196575f366003190112610196576040516001600160a01b035f805160206118de8339815191525c168152602090f35b346101965760803660031901126101965760405161024681610df7565b61024e610e7d565b8152610258610e93565b6020820152604435604082015260643562ffffff8116810361019657816102859160606040940152611362565b82519182526020820152f35b34610196575f366003190112610196576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610196576020366003190112610196576004356001600160401b03811161019657610305903690600401610da6565b907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610372575f8281928160405192839283378101838152039082305af1610356611061565b9061036357602081519101fd5b63703a952d60e11b5f5260045ffd5b63570c108560e11b5f5260045ffd5b346101965760603660031901126101965760206103c66040516103a381610e41565b6103ab610e7d565b81526103b5610e93565b83820152604435604082015261109d565b604051908152f35b34610196576020366003190112610196576004356001600160401b0381116101965761010060031982360301126101965760405161040b81610df7565b6104183683600401610ebd565b815260a48201359081151582036101965760208101918252604081019260c4810135845260e4810135906001600160401b03821161019657019236602385011215610196575f6104c16104f361047b610515973690602460048201359101610f57565b9460608101958652335f805160206118de8339815191525d6104e5849685965a996040519687956319fa62af60e01b60208801526020602488015260448701905161101e565b51151560e48501525161010484015251610100610124840152610144830190610dd3565b03601f198101835282610e5c565b604051809681926348c8949160e01b8352602060048401526024830190610dd3565b0381837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af180610596575b6040945061058e57505061057061056a610562611061565b925a90611090565b9161162e565b905b5f5f805160206118de8339815191525d82519182526020820152f35b909150610572565b3d805f873e6105a58187610e5c565b850194602081870312610196578051906001600160401b03821161019657019480601f870112156101965785516105db81610f3c565b916105e96040519384610e5c565b81835260208289010111610196576020815f928260409a018386015e830101525061054a565b34610196575f366003190112610196576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610196576020366003190112610196576004356001600160401b0381116101965780600401906101006003198236030112610196573033036108755760a481019161069e83611001565b916106c860206106be60e46106b660c486013561100e565b940185610fcf565b9290943690610ebd565b938515610857576101446401000276a4965b604051906106e782610e41565b1515948582528085830194888652604084019a60018060a01b03168b526040519a8b968795633cf3645360e21b87526107248d600489019061101e565b51151560a48701525160c4860152516001600160a01b031660e48501526101206101048501526101248401829052848401375f838284010152601f801991011681010301815f60018060a01b037f0000000000000000000000000000000000000000000000000000000000000000165af193841561084c575f94610818575b505f82120361080f578260801d5b600f0b036107f957506107d46fffffffffffffffffffffffffffffffff92611001565b156107ef5781165b633b2f660160e21b5f521660045260245ffd5b60801d81166107dc565b60a09020631e97b5cd60e21b5f5260045260245ffd5b82600f0b6107b1565b9093506020813d602011610844575b8161083460209383610e5c565b81010312610196575192856107a3565b3d9150610827565b6040513d5f823e3d90fd5b61014473fffd8963efd1fc6a506488495d951d5263988d25966106da565b6314e1dbf760e11b5f5260045ffd5b34610196576060366003190112610196576004356001600160401b038111610196576108b4903690600401610da6565b90602435916001600160401b03831161019657602083600401936003199036030112610196578290604435918193806108fa5f946108f28580610f8d565b9490506114ca565b925f935b838510610915576040878782519182526020820152f35b909192939586610d87575b60ff8216600281036109a6575060159060ff61093b83611522565b1689106109975760019161098b9161096160ff6109588d8a61168e565b93168c896116da565b6040519261096e84610e41565b60a086901b8690039081168452166020830152604082015261109d565b965b01939291906108fe565b633b99b53d60e01b5f5260045ffd5b60048103610cfd57506109b98380610f8d565b881015610ce9578760051b810135601e1982360301811215610196576109e0910180610fcf565b9160179160ff6109fa6109f56109f586611534565b611522565b168b1061099757610a0b8b8861168e565b93838c10610c9957601488013560e81c9360ff811660038101808211610cd5578e10610c9957890135610a648e60ff610a5c6109f5610a568f8585610a4f8b611534565b16916116da565b96611534565b16908c6116da565b955f6080604051610a7481610e26565b82815260208101839052604081018390526060810183905201526001600160a01b0387811690891610978815610c7c57945f946104c194610b6794628fffff610b2195610b899a5b60206040519e8f92610acd84610e26565b60018060a01b0316835260018060a01b03169101521660408c015260e81d60608b015260018060a01b031660808a015260405198610b0a8a610df7565b895260208901998a52604089019788523691610f57565b9560608101968752335f805160206118de8339815191525d6104e5849785975a9a6040519687956319fa62af60e01b60208801526020602488015260448701905161101e565b604051809381926348c8949160e01b8352602060048401526024830190610dd3565b0381837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af19081610c06575b50610bf8575050610bf1600191610bda61056a610562611061565b975b5f5f805160206118de8339815191525d610fc2565b959661098d565b60019250610bf19197610bdc565b3d805f833e610c158183610e5c565b810190602081830312610196578051906001600160401b038211610196570181601f8201121561019657805190610c4b82610f3c565b92610c596040519485610e5c565b8284526020838301011161019657815f9260208093018386015e83010152610bbf565b96945f946104c194610b6794628fffff610b2195610b899a610abc565b60405162461bcd60e51b8152602060048201526014602482015273746f55696e7432345f6f75744f66426f756e647360601b6044820152606490fd5b634e487b7160e01b5f52601160045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b60038103610d565750610bf1610d4f60019262ffffff610d1d8c8961160b565b604051949192610d2c86610df7565b60a089901b89900390811686521660208501526040840152166060820152611362565b9097610fc2565b9096959080610d755750614e208101809111610cd5576001909561098d565b63f8904ccd60e01b5f5260045260245ffd5b96610d92929361155e565b95909190610da087846114ca565b90610920565b9181601f84011215610196578235916001600160401b038311610196576020838186019501011161019657565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b608081019081106001600160401b03821117610e1257604052565b634e487b7160e01b5f52604160045260245ffd5b60a081019081106001600160401b03821117610e1257604052565b606081019081106001600160401b03821117610e1257604052565b90601f801991011681019081106001600160401b03821117610e1257604052565b600435906001600160a01b038216820361019657565b602435906001600160a01b038216820361019657565b35906001600160a01b038216820361019657565b91908260a091031261019657604051610ed581610e26565b8092610ee081610ea9565b8252610eee60208201610ea9565b6020830152604081013562ffffff811681036101965760408301526060810135908160020b820361019657606083019190915260800135906001600160a01b03821682036101965760800152565b6001600160401b038111610e1257601f01601f191660200190565b929192610f6382610f3c565b91610f716040519384610e5c565b829481845281830111610196578281602093845f960137010152565b903590601e198136030182121561019657018035906001600160401b03821161019657602001918160051b3603831361019657565b91908201809211610cd557565b903590601e198136030182121561019657018035906001600160401b0382116101965760200191813603831361019657565b3580151581036101965790565b600160ff1b8114610cd5575f0390565b80516001600160a01b03908116835260208083015182169084015260408083015162ffffff169084015260608083015160020b9084015260809182015116910152565b3d1561108b573d9061107282610f3c565b916110806040519384610e5c565b82523d5f602084013e565b606090565b91908203918211610cd557565b805160208201516001600160a01b03908116916004911660606110cb6110c385846116f4565b5094836116f4565b60405191831b6bffffffffffffffffffffffff199081166020840190815291841b1660348301526028825290611102604882610e5c565b51902060405190602082019060ff60f81b82526bffffffffffffffffffffffff197f0000000000000000000000000000000000000000000000000000000000000000851b16602184015260358301527f96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f605583015260558252611186607583610e5c565b90519020604051630240bc6b60e21b815293849182906001600160a01b03165afa91821561084c575f905f93611303575b506001600160701b03928316939216916001600160a01b0316036112fa5760409091925b015180156112a95781158015806112a0575b15611251576103e58202918083046103e503610cd557846103e5910202938285041482151715610cd5576103e883029283046103e8141715610cd55761123291610fc2565b90811561123d570490565b634e487b7160e01b5f52601260045260245ffd5b60405162461bcd60e51b815260206004820152602160248201527f56324c6962726172793a20494e53554646494349454e545f4c495155494449546044820152605960f81b6064820152608490fd5b508315156111ed565b60405162461bcd60e51b8152602060048201526024808201527f56324c6962726172793a20494e53554646494349454e545f494e5055545f414d60448201526313d5539560e21b6064820152608490fd5b916040906111db565b9250506060823d60601161135a575b8161131f60609383610e5c565b81010312610196576113308261167a565b604061133e6020850161167a565b93015163ffffffff811603610196576001600160701b036111b7565b3d9150611312565b5f8060018060a01b03835116602084019360018060a01b0385511690818310916113a26100fe606084019560018060a01b039362ffffff885116916117b5565b165a60408301519097600160ff1b821015610196576040945f9181156114af576401000276a4955b519751905187516060998a1b6bffffffffffffffffffffffff19908116602083015260e89390931b6001600160e81b0319166034820152981b166037880152602b8752611418604b88610e5c565b61145c865197889687958694630251596160e31b86523060048701526024860152604485015260018060a01b0316606484015260a0608484015260a4830190610dd3565b03925af19081611484575b5061147f57505061147c61056a610562611061565b91565b915091565b604090813d83116114a8575b61149a8183610e5c565b81010312610196575f611467565b503d611490565b73fffd8963efd1fc6a506488495d951d5263988d25956113ca565b9060148110610997576015116114e7576014013560fc1c60071690565b60405162461bcd60e51b8152602060048201526013602482015272746f55696e74385f6f75744f66426f756e647360681b6044820152606490fd5b60ff60149116019060ff8211610cd557565b60ff60039116019060ff8211610cd557565b90939293848311610196578411610196578101920390565b9160ff16600281148015611603575b156115855750611581916015908290611546565b9091565b6003810361159c5750611581916017908290611546565b6004036115be57611581918160ff6115b76109f56017611534565b1691611546565b60405162461bcd60e51b815260206004820152601860248201527f696e76616c69645f50524f544f434f4c5f56455253494f4e00000000000000006044820152606490fd5b50801561156d565b9190602b11610997576017823592013560601c620fffff8360601c9360481c1691565b60208101516001600160e01b0319166304d099ff60e21b01611651576024015190565b6040516306190b2b60e41b815260206004820152908190611676906024830190610dd3565b0390fd5b51906001600160701b038216820361019657565b9060141161169d573560601c90565b60405162461bcd60e51b8152602060048201526015602482015274746f416464726573735f6f75744f66426f756e647360581b6044820152606490fd5b906014830190818411610cd5571061169d57013560601c90565b9091906001600160a01b0380841690821680821461177057101561176b57915b906001600160a01b0383161561172657565b60405162461bcd60e51b815260206004820152601760248201527f56324c6962726172793a205a45524f5f414444524553530000000000000000006044820152606490fd5b611714565b60405162461bcd60e51b815260206004820152601e60248201527f56324c6962726172793a204944454e544943414c5f41444452455353455300006044820152606490fd5b9162ffffff915f604080516117c981610e41565b8281526020810183905201526001600160a01b0381811690851611611812575b604051936117f685610e41565b6001600160a01b03908116855216602084015216604082015290565b926117e9565b8151602083015191926001600160a01b0391821692909116908183101561019657604062ffffff9101511660405191602083019384526040830152606082015260608152611867608082610e5c565b5190209060405191602083019160ff60f81b83526bffffffffffffffffffffffff199060601b16602184015260358301527fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b546055830152605582526118cd607583610e5c565b905190206001600160a01b03169056fe0aedd6bde10e3aa2adec092b02a3e3e805795516cda41f27aa145b8f300af87aa164736f6c634300081a000a000000000000000000000000360e68faccca8ca495c1b759fd9eee466db9fb32000000000000000000000000640887a9ba3a9c53ed27d0f7e8246a4f933f3424000000000000000000000000fe57a6ba1951f69ae2ed4abe23e0f095df500c04", - "nonce": "0x2", - "chainId": "0xdef1" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0xd6a03e7275d4c27df650b11f62fe0075a09d81e9add645fe93bb43a98a5ffef5", - "transactionType": "CREATE2", - "contractName": null, - "contractAddress": "0x28bd21bb4ea4fda370d8d7544992038375d8d456", - "function": null, - "arguments": null, - "transaction": { - "from": "0x9701fb0ade1e269c8f64ec0c7b3cfadb31a13a52", + "from": "0x2179a60856e37dfeaaca0ab043b931fe224b27b6", "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", - "gas": "0x66e336", + "gas": "0x720544", "value": "0x0", - "input": "0x00000000000000000000000000000000000000000000000000000000000000006102c080604052346104605761016081615e268038038091610021828561047f565b833981010312610460576040519061016082016001600160401b0381118382101761044c57604052610052816104a2565b8252610060602082016104a2565b9160208101928352610074604083016104a2565b9260408201938452610088606084016104a2565b93606083019485526080840151926080810193845260a08501519360a082019485526100b660c087016104a2565b9660c083019788526100ca60e088016104a2565b9160e084019283526100df61010089016104a2565b96876101008601526101086101406100fa6101208c016104a2565b9a8b610120890152016104a2565b998a6101408701526040519861011d8a610464565b6001600160a01b039081168a52998a1660208a019081529051945195519751604051919a9198908216979682169695821695911661015a89610464565b8852602088019687525192519151905160405190936001600160a01b039384169316608082016001600160401b0381118382101761044c5760405281526020810192835260408101918252606081019384526040516101ba60408261047f565b600f815260208101906e2ab734bb32b939b0b62937baba32b960891b8252604051916101e760408461047f565b600183526020830191601960f91b8352610200816104b6565b6101205261020d8461064c565b61014052519020918260e05251902080610100524660a0526040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261027660c08261047f565b5190206080523060c052516001600160a01b0390811661016052905161018052905181166101a05290516101c0526101e091909152610200919091529051811661022052905181166102405290518116610260529051811661028052166102a0526040516156a19081610785823960805181613cf2015260a05181613daf015260c05181613cbc015260e05181613d4101526101005181613d67015261012051816104fc01526101405181610528015261016051818181612b3701528181612cb30152613953015261018051818181612b5801528181612c92015261393201526101a05181611c7001526101c05181611c4e01526101e0518181816105ee015281816107df0152818161111c015281816116e901528181612625015281816143d701528181614430015281816145c3015281816146ce015281816151af015261534c0152610200518181816106b5015281816144ee0152614eaf0152610220518181816116a0015281816128cb0152612a0a015261024051818181610d37015281816127e801528181613095015261538201526102605181818161045e015281816110900152612423015261028051818181610756015261117b01526102a05181818161041a01528181612127015261223b0152f35b634e487b7160e01b5f52604160045260245ffd5b5f80fd5b604081019081106001600160401b0382111761044c57604052565b601f909101601f19168101906001600160401b0382119082101761044c57604052565b51906001600160a01b038216820361046057565b908151602081105f14610530575090601f8151116104f05760208151910151602082106104e1571790565b5f198260200360031b1b161790565b604460209160405192839163305a27a960e01b83528160048401528051918291826024860152018484015e5f828201840152601f01601f19168101030190fd5b6001600160401b03811161044c575f54600181811c91168015610642575b602082101461062e57601f81116105fc575b50602092601f821160011461059d57928192935f92610592575b50508160011b915f199060031b1c1916175f5560ff90565b015190505f8061057a565b601f198216935f8052805f20915f5b8681106105e457508360019596106105cc575b505050811b015f5560ff90565b01515f1960f88460031b161c191690555f80806105bf565b919260206001819286850151815501940192016105ac565b5f8052601f60205f20910160051c810190601f830160051c015b8181106106235750610560565b5f8155600101610616565b634e487b7160e01b5f52602260045260245ffd5b90607f169061054e565b908151602081105f14610677575090601f8151116104f05760208151910151602082106104e1571790565b6001600160401b03811161044c57600154600181811c9116801561077a575b602082101461062e57601f8111610747575b50602092601f82116001146106e657928192935f926106db575b50508160011b915f199060031b1c19161760015560ff90565b015190505f806106c2565b601f1982169360015f52805f20915f5b86811061072f5750836001959610610717575b505050811b0160015560ff90565b01515f1960f88460031b161c191690555f8080610709565b919260206001819286850151815501940192016106f6565b60015f52601f60205f20910160051c810190601f830160051c015b81811061076f57506106a8565b5f8155600101610762565b90607f169061069656fe60806040526004361015610022575b3615610018575f80fd5b61002061169d565b005b5f3560e01c80631a27b2011461010157806324856bc3146100fc5780633593564c146100f757806344684dc3146100f25780638021fef7146100ed578063817122dc146100e857806384b0196e146100e357806391dd7346146100de578063ab769d37146100d9578063d04d79a2146100d4578063d0c9f6cb146100cf578063d737d0c7146100ca578063dc4c90d3146100c55763fa461e330361000e5761080e565b6107ca565b610798565b610741565b6106e4565b6106a0565b6105bc565b6104e4565b610449565b610405565b61036a565b6102a9565b6101f8565b61014d565b6001600160a01b031690565b6001600160a01b0381160361012357565b5f80fd5b359061013282610112565b565b6001600160a01b03165f90815260026020526040902090565b346101235760403660031901126101235760043561016a81610112565b6024359060018060a01b03165f52600260205260405f20905f52602052602060ff60405f2054166040519015158152f35b9181601f84011215610123578235916001600160401b038311610123576020838186019501011161012357565b9181601f84011215610123578235916001600160401b038311610123576020808501948460051b01011161012357565b6040366003190112610123576004356001600160401b0381116101235761022390369060040161019b565b6024356001600160401b038111610123576102429036906004016101c8565b913330146102a0575f805160206155f58339815191525c6001600160a01b03166102915761027f93335f805160206155f58339815191525d610b4e565b5f5f805160206155f58339815191525d005b6337affdbf60e11b5f5260045ffd5b61002093610b4e565b6060366003190112610123576004356001600160401b038111610123576102d490369060040161019b565b6024356001600160401b038111610123576102f39036906004016101c8565b916044354211610339573330146102a0575f805160206155f58339815191525c6001600160a01b03166102915761027f93335f805160206155f58339815191525d610b4e565b632dfb7c8b60e11b5f5260045ffd5b8015150361012357565b6084359061013282610348565b359061013282610348565b610100366003190112610123576004356001600160401b0381116101235761039690369060040161019b565b906024356001600160401b038111610123576103b69036906004016101c8565b926044356064356103c5610352565b9060a43560c435979093906001600160401b038911610123576103ef61002099369060040161019b565b97909660e43599611236565b5f91031261012357565b34610123575f366003190112610123576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610123575f366003190112610123576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b90602080835192838152019201905f5b8181106104ce5750505090565b82518452602093840193909201916001016104c1565b34610123575f366003190112610123576105766105207f00000000000000000000000000000000000000000000000000000000000000006133ce565b6105a461054c7f00000000000000000000000000000000000000000000000000000000000000006134b1565b6105846105576114a1565b91604051958695600f60f81b875260e0602088015260e087019061048d565b90858203604087015261048d565b904660608501523060808501525f60a085015283820360c08501526104b1565b0390f35b9060206105b992818152019061048d565b90565b34610123576020366003190112610123576004356001600160401b038111610123576105ec90369060040161019b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036106915761062591613569565b90818303610682575f5b838110610656576105a4604051610647602082611439565b5f8152604051918291826105a8565b8061067c6106676001938789610ad9565b3560f81c610676838787610b1c565b91613ee7565b0161062f565b63aaad13f760e01b5f5260045ffd5b63570c108560e11b5f5260045ffd5b34610123575f366003190112610123576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610123575f36600319011261012357604080516001600160a01b035f805160206156758339815191525c1681525f805160206156358339815191525c60208201525f805160206156558339815191525c91810191909152606090f35b34610123575f366003190112610123576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b6001600160a01b03909116815260200190565b34610123575f366003190112610123576040516001600160a01b035f805160206155f58339815191525c168152602090f35b34610123575f366003190112610123576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610123576060366003190112610123576024356004356044356001600160401b0381116101235761084490369060040161019b565b92905f831392831580610a61575b610a5257610899926108819161086a87850185611574565b90996001600160a01b039092169690959250611af8565b92909161088e8484613601565b999198908a8a611be4565b336001600160a01b0390911603610a43578015610a2a5790978891906001600160a01b03818116908a16105b156108dd575050505050505061002093503391611cb8565b909192939495989997506108f2866042111590565b1561099e57508651610944575b5050509461092361091661091e9361002098611d25565b939092611d3b565b6115f6565b94801561093c5761093390611682565b945b3390611dd7565b505f94610935565b61095d610967938a93610962935f1461099757506115f6565b61160b565b611642565b6109718686611660565b5180821061097f57806108ff565b631c1763d160e11b5f52610994925086611674565b5ffd5b90506115f6565b969450909192505f805160206156158339815191529796975c8711610a1b5783516109d4575b5050505061002093503391611cb8565b8661096261095d6109f7958b956109f1955f1461099757506115f6565b92611660565b51808210610a065780806109c4565b631c1763d160e11b5f52610994925085611674565b6339cedf2960e11b5f5260045ffd5b91978892906001600160a01b03898116908216106108c5565b6332b13d9160e01b5f5260045ffd5b63316cf0eb60e01b5f5260045ffd5b505f831315610852565b929190333014610abc575f805160206155f58339815191525c6001600160a01b031661029157610aaa93335f805160206155f58339815191525d610b4e565b5f5f805160206155f58339815191525d565b61013293610b4e565b634e487b7160e01b5f52603260045260245ffd5b90821015610ae5570190565b610ac5565b903590601e198136030182121561012357018035906001600160401b0382116101235760200191813603831361012357565b90821015610ae557610b339160051b810190610aea565b9091565b6040906105b993928152816020820152019061048d565b909392848103611227575f5b858110610b6957505050509050565b610b74818785610ad9565b35610b80828487610b1c565b6060929160019160f884901c607f1660218110156111ae576010811015611048576008811015610e2a5780610c495750610bca82610bc183610bfc95611b83565b9290938261270a565b92909360808301355f14610c4257610be0611ae6565b925b604081013590610bf760208201359135612888565b6131d2565b159081610c33575b50610c125750600101610b5a565b604051632c4029e960e01b8152918291610c2f9160048401610b37565b0390fd5b600160ff1b161590505f610c04565b3092610be2565b60018103610ca15750610c6382610bc183610c9595611b83565b92909360808301355f14610c9a57610c79611ae6565b925b604081013590610c9060208201359135612888565b613103565b610bfc565b3092610c7b565b60028103610cd2575050610c9590610cb7611ae6565b90604081013591610ccb6020830135612888565b9135613090565b9192909160038103610d705750505f92935090610d32610cf3849383611b58565b610d24610d01939293611ae6565b916040519485936020850197632a2d80d160e01b8952803501906024860161199f565b03601f198101835282611439565b5190827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af190610d6a6117de565b91610bfc565b9092915060048103610da3575080610d8e6020610c95930135612888565b60408201356001600160a01b03169135612fc6565b60058103610dca5750806040610c9592013590610dc36020820135612888565b9035612f3b565b60068103610df15750806040610c9592013590610dea6020820135612888565b9035612ec5565b60078103610e185750806040610c9592013590610e116020820135612888565b9035612e0b565b636bb50f4f60e11b5f5260045260245ffd5b90919060088103610e8a57508181610e48610c9594610e51946126ea565b9390928261270a565b92909360808301355f14610e8357610e67611ae6565b925b604081013590610e7e60208201359135612888565b612c56565b3092610e69565b60098103610ede57508181610e48610c9594610ea5946126ea565b92909360808301355f14610ed757610ebb611ae6565b925b604081013590610ed260208201359135612888565b612b14565b3092610ebd565b909290600a8103610f2b5750505f92935081610efe610d32928594611b2d565b929091610d24610f0c611ae6565b9460405194859360208501976302b67b5760e41b895260248601611951565b909290600b8103610f505750610c959150610f4b60208201359135612888565b6129ef565b600c8103610f725750610c959150610f6d60208201359135612888565b6128ba565b600d8103610f975750610c9591610f88916126cd565b90610f91611ae6565b916127d9565b9092509050600e8103610e1857506040516370a0823160e01b81529060208280610fc5843560048301610785565b0381848401356001600160a01b03165afa918215611043575f92611010575b5060400135111580610c95576040516351940b3960e11b6020820152909250610d6a8160248101610d24565b60409192506110359060203d811161103c575b61102d8183611439565b8101906118c5565b9190610fe4565b503d611023565b6118d4565b9091906010810361105e575090610c95916125f7565b93945092909150601181036110c357505f91908161107c84936125db565b61108b6040518093819361180d565b0390827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af190610d6a6117de565b601281036110e257505f9190829161107c6110dc611ae6565b826123d4565b6013810361114f5750505f809160405161111781610d24602082019463313b65df60e11b865260a08101359060248401611832565b5190827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af190610d6a6117de565b60148103610e1857505f91829161116681836122f5565b47916111776040518093819361180d565b03917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af190610d6a6117de565b939490939192604083101561120d57505060218103610e1857506111fe610d246111da5f948594613569565b60409593959491945194859360208501976324856bc360e01b895260248601611738565b519082305af190610d6a6117de565b9290949391604081145f14610e18575090610c95916120f5565b631fec674760e31b5f5260045ffd5b95909698929a99979197804211610339576112538c9a9b9c611a55565b5f5b8b81106113d457508686611314611324958f61132a999896610d24918f8f6112a39061131c9a60405161129081610d24602082018095611a87565b51902096156113cd5733925b36916114d7565b6020815191012097604051978896602088019a8b93909796959260e095926101008601997f4b503a2e339bf072a489301f3eec7abaefc520266c462796ed9267bbcc6e407c8752602087015260408601526060850152608084015260018060a01b031660a083015260c08201520152565b519020613392565b9236916114d7565b906133b8565b60018801611372575b61136a97505f805160206156758339815191525d5f805160206156358339815191525d5f805160206156558339815191525d610a6b565b610132611ab4565b61139661138f8961138284610134565b905f5260205260405f2090565b5460ff1690565b6113bf576113ba6113ad61136a9961138284610134565b805460ff19166001179055565b611333565b623f613760e71b5f5260045ffd5b5f9261129c565b806113e98d9f9e9d60019361129c918f610b1c565b602081519101206113fa8285611660565b52019c9a9b9c611255565b634e487b7160e01b5f52604160045260245ffd5b60a081019081106001600160401b0382111761143457604052565b611405565b601f909101601f19168101906001600160401b0382119082101761143457604052565b604051906101326101a083611439565b60405190610132606083611439565b6040519061013260a083611439565b6001600160401b0381116114345760051b60200190565b604051906114b0602083611439565b5f808352366020840137565b6001600160401b03811161143457601f01601f191660200190565b9291926114e3826114bc565b916114f16040519384611439565b829481845281830111610123578281602093845f960137010152565b9080601f83011215610123578160206105b9933591016114d7565b9291906115348161148a565b936115426040519586611439565b602085838152019160051b810192831161012357905b82821061156457505050565b8135815260209182019101611558565b6080818303126101235780356001600160401b038111610123578261159a91830161150d565b9260208201356115a981610112565b9260408301356001600160401b03811161012357830181601f82011215610123576060918160206115dc93359101611528565b92013590565b634e487b7160e01b5f52601160045260245ffd5b600160ff1b8114611606575f0390565b6115e2565b6a0c097ce7bc90715b34b9f160241b80820292918015908404909114171561160657565b8181029291811591840414171561160657565b811561164c570490565b634e487b7160e01b5f52601260045260245ffd5b8051821015610ae55760209160051b010190565b600452602452604452606490565b5f1981019190821161160657565b9190820391821161160657565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161415806116e5575b6116d657565b631c5deabb60e11b5f5260045ffd5b50337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614156116d0565b908060209392818452848401375f828201840152601f01601f1916010190565b93919061174d91604086526040860191611718565b926020818503910152808352602083019060208160051b85010193835f91601e1982360301905b848410611785575050505050505090565b90919293949596601f19828203018752873583811215610123578401602081019190356001600160401b038111610123578036038313610123576117cf6020928392600195611718565b99019701959401929190611774565b3d15611808573d906117ef826114bc565b916117fd6040519384611439565b82523d5f602084013e565b606090565b908092918237015f815290565b62ffffff81160361012357565b8060020b0361012357565b90929160a0906118b9608060c0850196803561184d81610112565b600180871b03168652602081013561186481610112565b600180871b0316602087015262ffffff60408201356118828161181a565b166040870152606081013561189681611827565b60020b606087015201356118a981610112565b6001600160a01b03166080850152565b600180831b0316910152565b90816020910312610123575190565b6040513d5f823e3d90fd5b359065ffffffffffff8216820361012357565b65ffffffffffff61194b60608093803561190b81610112565b6001600160a01b03168652602081013561192481610112565b6001600160a01b031660208701528361193f604083016118df565b166040870152016118df565b16910152565b60a06105b9959361010093600180841b0316835261197260208401826118f2565b608081013561198081610112565b600180841b031682840152013560c08201528160e08201520191611718565b6001600160a01b0390911681526060602082015290939260c08201929091853536879003601e190181121561012357860160208101949035906001600160401b038211610123578160071b360386136101235781906060808501525260e0820194905f5b818110611a3757505050604086611a236118a960206105b9999a01610127565b013560a08201526040818503910152611718565b90919560808082611a4a6001948b6118f2565b019701929101611a03565b90611a5f8261148a565b611a6c6040519182611439565b8281528092611a7d601f199161148a565b0190602036910137565b80516020909101905f5b818110611a9e5750505090565b8251845260209384019390920191600101611a91565b5f5f805160206156758339815191525d5f5f805160206156358339815191525d5f5f805160206156558339815191525d565b5f805160206155f58339815191525c90565b909163ffffffff82351682019263ffffffff84351692602080860195850101910110611b2057565b633b99b53d5f526004601cfd5b909163ffffffff60c08301351682019263ffffffff84351692602080860195850101910110611b2057565b909163ffffffff60208301351682019263ffffffff84351692602080860195850101910110611b2057565b909163ffffffff60608301351682019263ffffffff84351692602080860195850101910110611b2057565b6001600160f81b0319815260609190911b6001600160601b03191660018201526015810191909152603581019190915260550190565b6105b992611c9d92906001600160a01b0380831690841611611ca2575b604080516001600160a01b0394851660208201908152949093169083015262ffffff166060808301919091528152611c3a608082611439565b519020604051611c9581610d2460208201947f0000000000000000000000000000000000000000000000000000000000000000907f000000000000000000000000000000000000000000000000000000000000000087611bae565b519020610106565b610106565b909190611c01565b906014820180921161160657565b909291906001600160a01b0384163003611cd6576101329350612f3b565b91926001600160a01b038411611cf957610132936001600160a01b031692613090565b63c4bd89a960e01b5f5260045ffd5b909291928360041161012357831161012357600401916003190190565b9190918260171161012357601701916016190190565b600160ff1b8110156101235790565b959493611d6660609492611d839460808a5260808a0191611718565b6001600160a01b03909216602088015286820360408801526104b1565b930152565b9190826040910312610123576020825192015190565b6001600160a01b039182168152911515602083015260408201929092529116606082015260a0608082018190526105b99291019061048d565b92919395949094611de88386613601565b6001600160a01b038084169082161098899590939092611e09929091611be4565b611e1290610106565b611e1b90610106565b94845f14604098610d245f96611e6595611e4994611ead576401000276a49e5b8d5196879560208701611d4a565b8751630251596160e31b8152998a978896879560048701611d9e565b03925af18015611043575f925f91611e7c57509192565b9050611ea191925060403d604011611ea6575b611e998183611439565b810190611d88565b919092565b503d611e8f565b73fffd8963efd1fc6a506488495d951d5263988d259e611e3b565b91939490611ed68486613601565b6001600160a01b038082169084161097889490939092611ef7929091611be4565b611f0090610106565b611f0990610106565b93835f1496611e495f94610d2486611e659560409c611ead576401000276a49e8d5196879560208701611d4a565b63ffffffff81160361012357565b359061013282611f37565b602081830312610123578035906001600160401b03821161012357016101a08183031261012357611f7f61145c565b91611f8982610127565b8352611f9760208301610127565b6020840152611fa860408301610127565b6040840152611fb960608301610127565b60608401526080820135608084015260a082013560a084015260c082013560c0840152611fe860e08301610127565b60e0840152611ffa6101008301611f45565b61010084015261200d6101208301611f45565b6101208401526120206101408301611f45565b610140840152610160820135916001600160401b0383116101235761204d6101809261205994830161150d565b6101608501520161035f565b61018082015290565b6001600160a01b039182168152918116602083015291821660408201529181166060830152608082019290925260a081019290925260c0820192909252911660e08201526105b994936101809391926120e7926120d9916120cb9063ffffffff16610100870152565b63ffffffff16610120850152565b63ffffffff16610140830152565b81610160820152019061048d565b61210191810190611f50565b6080810151905f600160ff1b831461226e575b61018082015115612224575081905b80517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316929061215a90610106565b6121676020840151610106565b6121746040850151610106565b916121826060860151610106565b9460a08101519060c081015161219b60e0830151610106565b61010083015163ffffffff16906121ba61012085015163ffffffff1690565b926101606121d061014087015163ffffffff1690565b950151958c3b1561012357604051633dc9c91960e11b81529d8e9c8d9b8c9b6121fc9b60048e01612062565b03915a945f95f18015611043576122105750565b8061221e5f61013293611439565b806103fb565b9061226983612239611c9d6040850151610106565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690613633565b612123565b915061227e610180820151151590565b1561228a574791612114565b61229d611c9d611c9d6040840151610106565b602060405180926370a0823160e01b825281806122bd3060048301610785565b03915afa908115611043575f916122d6575b5091612114565b6122ef915060203d60201161103c5761102d8183611439565b5f6122cf565b80356322b9af7160e01b6001600160e01b03198216016123b85750612321826123279361232193611d08565b90611af8565b5f5b81811061233557505050565b61236361235d612357612349848688610ad9565b356001600160f81b03191690565b60f81c90565b60ff1690565b80159081156123ad575b81156123a2575b8115612397575b5061238857600101612329565b635d1d0f9f60e01b5f5260045ffd5b60039150145f61237b565b600181149150612374565b60048114915061236d565b63f801e52560e01b5f526001600160e01b03191660045260245ffd5b80356001600160e01b031916630624e65f60e11b811480156125cb575b80156125bb575b156125a957506040516331a9108f60e11b815260049182013591810182905290916001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690602083602481855afa928315611043575f93612588575b506001600160a01b03818116908416811492908315612518575b50821561249c575b50501590505b61248a5750565b63bb25d4c560e01b5f5260045260245ffd5b60405163e985e9c560e01b81526001600160a01b0394851660048201529190931660248201529160209150829060449082905afa801561104357612483915f916124e9575b505f8061247d565b61250b915060203d602011612511575b6125038183611439565b8101906129bf565b5f6124e1565b503d6124f9565b60405163020604bf60e21b81526004810187905291935090602081602481875afa908115611043575f91612559575b506001600160a01b031614915f612475565b61257b915060203d602011612581575b6125738183611439565b810190613722565b5f612547565b503d612569565b6125a291935060203d602011612581576125738183611439565b915f61245b565b63f801e52560e01b5f5260045260245ffd5b50630852cd8d60e31b81146123f8565b5063fc6f786560e01b81146123f1565b356001600160e01b03191663853d008560e01b81016125a95750565b6040516348c8949160e01b815260206004820152915f9183918291612620916024840191611718565b0381837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af180156110435761265c5750565b3d805f833e61266b8183611439565b810190602081830312610123578051906001600160401b038211610123570181601f820112156101235780516126a0816114bc565b926126ae6040519485611439565b81845260208284010111610123575f928160208094018483015e010152565b918235830191602083359481850194038560051b010111611b2057565b916060830135830191602083359481850194038560051b010111611b2057565b9160a0830135830191602083359481850194038560051b010111611b2057565b9190811015610ae55760071b0190565b356105b981610112565b60208082528101839052604001915f5b8181106127615750505090565b909192608080600192863561277581610112565b848060a01b03168152602087013561278c81610112565b848060a01b0316602082015260408701356127a681610112565b848060a01b0316604082015260608701356127c081610112565b848060a01b031660608201520194019101919091612754565b90915f5b83811061284c5750507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691823b156101235761283b925f9283604051809681958294630d58b1db60e01b845260048401612744565b03925af18015611043576122105750565b61285f61285a82868661272a565b61273a565b6001600160a01b03838116911603612879576001016127dd565b63e700287760e01b5f5260045ffd5b6001600160a01b038116600181036128ae5750505f805160206155f58339815191525c90565b6002036105b957503090565b6040516370a0823160e01b815290917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690602083806129053060048301610785565b0381855afa928315611043575f9361299e575b50821061298f578161292957505050565b803b1561012357604051632e1a7d4d60e01b815260048101839052905f908290602490829084905af180156110435761297b575b50306001600160a01b03831603612972575050565b61013291613737565b8061221e5f61298993611439565b5f61295d565b631a84bc4160e21b5f5260045ffd5b6129b891935060203d60201161103c5761102d8183611439565b915f612918565b9081602091031261012357516105b981610348565b6001600160a01b039091168152602081019190915260400190565b90600160ff1b8103612ad4575047905b81612a08575050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691823b1561012357604051630d0e30db60e41b81525f8160048185885af1801561104357612ac0575b50306001600160a01b03831603612a72575b505050565b612a96926020925f60405180968195829463a9059cbb60e01b8452600484016129d4565b03925af1801561104357612aa8575b50565b612aa59060203d602011612511576125038183611439565b8061221e5f612ace93611439565b5f612a5b565b90478211156129ff57631a84bc4160e21b5f5260045ffd5b9015610ae55790565b9060011015610ae55760200190565b9190811015610ae55760051b0190565b9290939196959460028310612c475786151580612c33575b612c245793965f94907f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000005f198601868111611606579190825b612bc2575050508811612bb3576101329785612bae92612ba961285a8787612aec565b611cb8565b6137ef565b6345585e0b60e11b5f5260045ffd5b919a9750905f198b018b811161160657612c0b8c612bf9612be7612c12948b8b612b04565b3591612bf283610112565b8a8a612b04565b3590612c0482610112565b848661412c565b919a6141c0565b9a8015611606575f1901919082612b86565b630c12651d60e31b5f5260045ffd5b505f19830183811161160657871415612b2c565b632b94ab4360e21b5f5260045ffd5b9294969095919660028510612c475781151580612df9575b612c2457612cd7612c8261285a8789612aec565b612c8f61285a888a612af5565b907f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000613bd9565b968781612de0575b505050612cfe611c9d611c9d61285a612cf788611682565b888a612b04565b91604051966370a0823160e01b885260208880612d1e8860048301610785565b0381875afa95861561104357612d62985f97612db2575b509085612d47949392602098996137ef565b60405180809681946370a0823160e01b835260048301610785565b03915afa801561104357612d7d925f91612d93575b50611690565b10612d8457565b631093d5f360e31b5f5260045ffd5b612dac915060203d60201161103c5761102d8183611439565b5f612d77565b60209750612d4794939291612dd488928a3d8c1161103c5761102d8183611439565b98509192939450612d35565b612df192612ba961285a898b612aec565b5f8087612cdf565b50612e0385611682565b821415612c6e565b670de0b6b3a76400008311612eb6576001600160a01b031680612e4d5750612e47612e39610132934761162f565b670de0b6b3a7640000900490565b90613737565b906040516370a0823160e01b815260208180612e6c3060048301610785565b0381865afa9081156110435761013294612e9192612e39925f91612e97575b5061162f565b91613bf0565b612eb0915060203d60201161103c5761102d8183611439565b5f612e8b565b6390f5ebeb60e01b5f5260045ffd5b6001600160a01b031680612ee15750612e476101329247613c5f565b6040516370a0823160e01b8152306004820152909190602081602481865afa9384156110435761013294612e91925f91612f1c575b50613c5f565b612f35915060203d60201161103c5761102d8183611439565b5f612f16565b9091906001600160a01b031680612f56575061013291613737565b600160ff1b8214612f6c575b9161013292613bf0565b6040516370a0823160e01b815230600482015292909150602083602481855afa801561104357610132935f91612fa7575b5091909250612f62565b612fc0915060203d60201161103c5761102d8183611439565b5f612f9d565b9091906001600160a01b031680612fe957504790811061298f5780612972575050565b91604051916370a0823160e01b8352602083806130093060048301610785565b0381875afa928315611043575f93613045575b508210613036578161302d57505050565b61013292613bf0565b630ceb95c760e31b5f5260045ffd5b61305f91935060203d60201161103c5761102d8183611439565b915f61301c565b6001600160a01b039182168152918116602083015291821660408201529116606082015260800190565b9290917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690813b15610123575f80946130e860405197889687958694631b63c28b60e11b865260048601613066565b03925af18015611043576130f95750565b5f61013291611439565b9492909695939193861515806131a8575b6131995761312a61313091613154983691611528565b94613c9a565b835180156131915761314190611682565b945b61314f61091e89611d3b565b611dd7565b909190156131825750613166906115f6565b0361317357610132613c88565b636a70124760e11b5f5260045ffd5b61318c91506115f6565b613166565b505f94613143565b630e0fbd8760e21b5f5260045ffd5b506131bc6131b760178961162f565b611caa565b831415613114565b5f1981146116065760010190565b9793979590919294958715159687809861337b575b613199578998600160ff1b851461330e575b909950879391965f92808b8a61320d6114a1565b9e8f9061325793613249935b61322d613227836042111590565b98611d3b565b908815613304575061324130925b8a613cab565b929091611ec8565b9091901561099757506115f6565b966132c9575b50156132a857309961326e91611d25565b9190978892809c8795613280906131c4565b9c8d9561325794613241613249959e50509c9e509495969290919e8f90928e9a95938e613219565b5050505093509350935050106132ba57565b631ce9aa4b60e11b5f5260045ffd5b6132d6906109628861160b565b6132e1858588612b04565b358082106132ef575061325d565b632d0a7cdd60e21b5f52610994925085611674565b613241909261323b565b935097611c9d611c9d6133219289614331565b976020604051809a6370a0823160e01b825281806133423060048301610785565b03915afa8015611043578a995f9161335c575b50936131f9565b613375915060203d60201161103c5761102d8183611439565b5f613355565b5061338a6131b760178b61162f565b8a14156131e7565b60429061339d613cb9565b906040519161190160f01b8352600283015260228201522090565b6105b9916133c591613dd5565b90929192613e2d565b60ff81146133df576105b990613ea9565b506040515f80548060011c916001821680156134a7575b602084108114613493578385528492602084019190811561347a5750600114613427575b506105b992500382611439565b5f80805291507f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b84831061346357506105b99350015f61341a565b80548284015285935060209092019160010161344f565b60ff19168252506105b993151560051b0190505f61341a565b634e487b7160e01b5f52602260045260245ffd5b92607f16926133f6565b60ff81146134c2576105b990613ea9565b506040515f6001548060011c9160018216801561355f575b602084108114613493578385528492602084019190811561347a575060011461350a57506105b992500382611439565b60015f90815291507fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b84831061354857506105b99350015f61341a565b805482840152859350602090920191600101613534565b92607f16926134da565b604081351891606082019363ffffffff6040840135169363ffffffe0601f8601169060608201602086013518179084019260608401359463ffffffff861694641fffffffe0608082019760051b1680915f925b8084106135d4575060809250010191011017611b2057565b90916020809163ffffffe0601f60808089890101359b848d18179b880101350116010193019291906135bc565b90602b1161362457803591601762ffffff8460601c9460481c1692013560601c90565b633b99b53d60e01b5f5260045ffd5b91909161369a6040519261366b8461365d602082019363095ea7b360e01b855288602484016129d4565b03601f198101865285611439565b83516001600160a01b038416915f91829182855af1906136896117de565b826136f0575b50816136e957501590565b6136a357505050565b60405163095ea7b360e01b60208201526001600160a01b0390931660248401525f6044840152610132926136e4906136de8160648101610d24565b826140c1565b6140c1565b3b15919050565b80519192508115918215613708575b5050905f61368f565b61371b92506020809183010191016129bf565b5f806136ff565b9081602091031261012357516105b981610112565b5f80809381935af11561374657565b60405162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b6044820152606490fd5b51906001600160701b038216820361012357565b90816060910312610123576137a981613781565b9160406137b860208401613781565b9201516105b981611f37565b90926080926105b995948352602083015260018060a01b03166040820152816060820152019061048d565b9493929391909161381961380661285a8589612aec565b61381361285a868a612af5565b9061423b565b50915f19840195600119850191831515985f955b898710613841575050505050505050505050565b61384f61285a888a85612b04565b9361386161285a60018a018b86612b04565b604051630240bc6b60e21b8152909590916001600160a01b038116606084600481845afa918215611043576138df945f905f94613ba5575b506001600160a01b03948516966001600160701b039485169516871493168315613b9b579060209194965b60405180809881946370a0823160e01b835260048301610785565b03915afa978815611043578f6139078f9a978f978e9988915f91613b7d575b50039687614252565b9315613b75578c5f94965b8c821015613b675761392f61285a6139779260028501908d612b04565b847f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006142ad565b9890985b9b83613b51575b5050505f14613aea576040516370a0823160e01b81526001600160a01b0391909116949092602084806139b88a60048301610785565b0381895afa938415611043575f94613aca575b506139d46114a1565b92803b15610123575f92838993613a016040519788968795869463022c0d9f60e01b8652600486016137c4565b03925af1801561104357613ab6575b50602060405180946370a0823160e01b82528180613a318960048301610785565b03915afa90811561104357613a5f935f92613a96575b5090036a0c097ce7bc90715b34b9f160241b02611642565b613a6a88888c612b04565b35808210613a815750506001905b9601959261382d565b6365d564a560e01b5f52610994925088611674565b613aaf91925060203d811161103c5761102d8183611439565b905f613a47565b8061221e5f613ac493611439565b5f613a10565b613ae391945060203d811161103c5761102d8183611439565b925f6139cb565b5093929150613af76114a1565b93803b15610123575f92838593613b246040519889968795869463022c0d9f60e01b8652600486016137c4565b03925af191821561104357600192613b3d575b50613a78565b8061221e5f613b4b93611439565b5f613b37565b613b5b9350612b04565b3515158c8f8d90613982565b5050955087958c8c5f61397b565b8c5f96613912565b613b95915060203d811161103c5761102d8183611439565b5f6138fe565b95602091906138c4565b9050613bc991935060603d8111613bd2575b613bc18183611439565b810190613795565b5092905f613899565b503d613bb7565b90916105b993613be89161423b565b9290916142be565b5f91826044926020956040519363a9059cbb60e01b8552600485015260248401525af13d15601f3d1160015f511416171615613c2857565b60405162461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b6044820152606490fd5b6127108211613c795761271091613c759161162f565b0490565b636f5500f360e11b5f5260045ffd5b5f5f805160206156158339815191525d565b5f805160206156158339815191525d565b90602b116101235790602b90565b307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161480613dac575b15613d14577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a08152613da660c082611439565b51902090565b507f00000000000000000000000000000000000000000000000000000000000000004614613ceb565b8151919060418303613e0557613dfe9250602082015190606060408401519301515f1a90614340565b9192909190565b50505f9160029190565b60041115613e1957565b634e487b7160e01b5f52602160045260245ffd5b613e3681613e0f565b80613e3f575050565b613e4881613e0f565b60018103613e5f5763f645eedf60e01b5f5260045ffd5b613e6881613e0f565b60028103613e83575063fce698f760e01b5f5260045260245ffd5b80613e8f600392613e0f565b14613e975750565b6335e2f38360e21b5f5260045260245ffd5b60ff811690601f8211613ed85760405191613ec5604084611439565b6020808452838101919036833783525290565b632cd44ac360e21b5f5260045ffd5b909190600b811015613f7b5760078103613f0e5750613f099061013292614910565b614c32565b60068103613f295750613f249061013292614724565b614b0f565b60098103613f445750613f3f9061013292614910565b614975565b9160088314613f6757505061099491505b635cda29d760e01b5f52600452602490565b610132925090613f7691614724565b6147db565b600c8103613fca5750613f8d916146b4565b90613f97816146c7565b91808311613fb357509061013291613fad611ae6565b906145ba565b6312bacdd360e01b5f52600452602482905260445ffd5b600f81036140195750613fdc916146b4565b90613fe6816143d0565b9180831061400257509061013291613ffc611ae6565b90614427565b638b063d7360e01b5f52600452602482905260445ffd5b600b810361404d575061404761403561404192610132946143b8565b938294939291936144d0565b926144eb565b916145ba565b600e810361407f575061407361406961407992610132946143b8565b9282949291612888565b926144bc565b91614427565b91601083146140945750506109949150613f55565b61013292506140a96140b292614079926143b8565b92919390612888565b916140bc846143d0565b613c5f565b5f806140e99260018060a01b03169360208151910182865af16140e26117de565b90836154c0565b8051908115159182614111575b50506140ff5750565b635274afe760e01b5f5260045260245ffd5b61412492506020809183010191016129bf565b155f806140f6565b9193929061413d614145928661423b565b9181946142be565b604051630240bc6b60e21b815290936060826004816001600160a01b0389165afa918215611043575f905f9361419b575b506001600160701b03928316939216916001600160a01b03918216911603610b335791565b90506141b791925060603d606011613bd257613bc18183611439565b5091905f614176565b9080158015614233575b61422457816141d89161162f565b916103e88302928084046103e814901517156116065781810391818311611606576103e583029283046103e514911417156116065761421691611642565b600181018091116116065790565b633dce448b60e11b5f5260045ffd5b5082156141ca565b6001600160a01b038281169082161015610b335791565b8115928380156142a5575b614224576103e58202918083046103e5149015171561160657614280908261162f565b926103e883029283046103e8141715611606578101809111611606576105b991611642565b50801561425d565b9261413d906142bb9361423b565b91565b6040516001600160601b0319606094851b8116602083019081529590941b9093166034840152602883529092909161432191906142fc604882611439565b519020614313604051948592602084019586611bae565b03601f198101845283611439565b905190206001600160a01b031690565b90601411613624573560601c90565b91906fa2a8918ca85bafe22016d0b997e4df60600160ff1b0384116143ad579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15611043575f516001600160a01b038116156143a357905f905f90565b505f906001905f90565b5050505f9160039190565b90606011611b20578035916040602083013592013590565b6143fb81307f0000000000000000000000000000000000000000000000000000000000000000614da6565b905f8212614407575090565b634c085bf160e01b5f9081526001600160a01b0391909116600452602490fd5b908215612a6d577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561012357604051630b0d9c0960e01b81526001600160a01b03938416600482015291909216602482015260448101929092525f908290606490829084905af18015611043576144a75750565b806144b35f8093611439565b80031261012357565b90816144cc576105b991506143d0565b5090565b156144e7575f805160206155f58339815191525c90565b3090565b907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168061455857505f5b6001600160a01b0316918215801561454a575b6145405750506105b990614e47565b6105b99250614e22565b50600160ff1b811415614531565b6040516312f7fd6760e11b815290602090829081806145836001600160a01b03881660048301610785565b03915afa908115611043575f9161459b575b5061451e565b6145b4915060203d602011612581576125738183611439565b5f614595565b908215612a6d577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691823b1561012357604051632961046560e21b81525f81806146108560048301610785565b038183885af18015611043576146a0575b506001600160a01b03811661466f575050602090600460405180948193630476982d60e21b83525af18015611043576146575750565b612aa59060203d60201161103c5761102d8183611439565b5f936020939261467e92614ead565b600460405180948193630476982d60e21b83525af18015611043576146575750565b8061221e5f6146ae93611439565b5f614621565b9190604011611b20576020823592013590565b6146f281307f0000000000000000000000000000000000000000000000000000000000000000614da6565b905f821361470457506105b9906115f6565b63019a8d9360e51b5f9081526001600160a01b0391909116600452602490fd5b9061016011611b205780350190565b356001600160801b03811681036101235790565b356105b981610348565b91908260a09103126101235760405161476981611419565b6080808294803561477981610112565b8452602081013561478981610112565b6020850152604081013561479c8161181a565b604085015260608101356147af81611827565b60608501520135916147c083610112565b0152565b6001600160801b0390811660045216602452604490565b6147e760c08201614733565b6001600160801b038116156148d3575b61484861484361091e61483d61480f60a08701614747565b6001600160801b0390951694859061482b610120890189610aea565b929091614838368b614751565b615158565b600f0b90565b6150ac565b9160e081019261486661485a85614733565b6001600160801b031690565b6001600160801b038216949085116148b75750506101000135918261488a57505050565b6109626148969261160b565b908082106148a2575050565b63efc8d8eb60e01b5f5260045260245260445ffd5b906148c461099492614733565b6312bacdd360e01b5f526147c4565b506148e060a08201614747565b15614901576148fc6148436148f76020840161273a565b6146c7565b6147f7565b6148fc6148436148f78361273a565b9060e011611b205780350190565b903590601e198136030182121561012357018035906001600160401b03821161012357602001918160051b3603831361012357565b9190811015610ae55760051b81013590609e1981360301821215610123570190565b906020820191614985838261491e565b5f92915061499560608301614733565b9061499f8361273a565b906001600160801b03831615614afb575b60408401816149bf828761491e565b801515948592509082614af0575b5050614ae1579193825b614a06575050505050608091929350016149f361485a82614733565b6001600160801b038316116148b7575050565b849650614a3590614a67614a6061483d614a3c614a278e8c9b999a9b61491e565b5f198b019791889190614953565b998a615255565b6001600160801b039095169485614a5660808d018d610aea565b9390921590615158565b5f036150ac565b97614a85575b5050614a79869461273a565b925f19019193826149d7565b614aa9906001600160801b038916906a0c097ce7bc90715b34b9f160241b02611642565b90614abe81614ab8858a61491e565b90612b04565b3590818310614acd5750614a6d565b63e651804360e01b5f526109949350611674565b63115eb5b360e31b5f5260045ffd5b14159050815f6149cd565b9150614b09614843826146c7565b916149b0565b614b1b60c08201614733565b906001600160801b03821615614bf3575b614b74614b6f614b3e60a08401614747565b6001600160801b0390941693614b53856115f6565b90614b62610120860186610aea565b9290916148383688614751565b615327565b9060e0810191614b8661485a84614733565b6001600160801b03821693908410614bd757505061010001359182614baa57505050565b610962614bb69261160b565b90808210614bc2575050565b634713c18b60e01b5f5260045260245260445ffd5b90614be461099492614733565b638b063d7360e01b5f526147c4565b9050614c0160a08201614747565b15614c2057614c1a614843614c158361273a565b6143d0565b90614b2c565b614c1a614843614c156020840161273a565b6020810190614c41828261491e565b5f93915080614c4f8461273a565b92614c5c60608601614733565b6001600160801b03811615614d94575b6040860191614c7b838861491e565b801515958692509082614d89575b5050614ae1575f9591949395945b848610614cc75750505050505050608001614cb461485a82614733565b6001600160801b03831610614bd7575050565b869850614d17614b6f614cf2614ceb89614ce5878e9d9b9c9d61491e565b90614953565b9586615255565b6001600160801b0390941693614d0b6080880188610aea565b929091865f0391615158565b98614d35575b506001614d2a899361273a565b960194939591614c97565b614d58906001600160801b038a166a0c097ce7bc90715b34b9f160241b02611642565b614d6687614ab8868b61491e565b35808210614d745750614d1d565b63a9b7edf760e01b5f52610994925087611674565b14159050855f614c89565b50614da1614843856143d0565b614c6c565b6001600160a01b039182165f9081529282166020908152604093849020935163789add5560e11b815260048101949094529183916024918391165afa908115611043575f91614df3575090565b90506020813d602011614e1a575b81614e0e60209383611439565b81010312610123575190565b3d9150614e01565b90600160ff1b8203614e38576105b99150614e47565b816144cc576105b991506146c7565b6001600160a01b038116614e5a57504790565b6040516370a0823160e01b815230600482015290602090829060249082906001600160a01b03165afa908115611043575f91614e94575090565b6105b9915060203d60201161103c5761102d8183611439565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168061504a57505f5b6001600160a01b03811691821561503c5760405163aeb5556960e01b81526001600160a01b03919091169390602081600481885afa908115611043575f9161501d575b501561500e57614f686020614f35611ae6565b60405163f493cec360e01b81526001600160a01b039091166004820152600160f01b602482015291829081906044820190565b0381885afa908115611043575f91614fef575b5015614fe1576001600160a01b0381163003614fd45750508282614f9e9261542f565b803b1561012357604051630934f6c760e21b815260048101929092525f908290602490829084905af18015611043576122105750565b6101329493919250615374565b6282b42960e81b5f5260045ffd5b615008915060203d602011612511576125038183611439565b5f614f7b565b63888f378560e01b5f5260045ffd5b615036915060203d602011612511576125038183611439565b5f614f22565b90506101329392915061533d565b6040516312f7fd6760e11b815290602090829081806150756001600160a01b03881660048301610785565b03915afa908115611043575f9161508d575b50614edf565b6150a6915060203d602011612581576125738183611439565b5f615087565b6001600160801b03811691908290036150c157565b6393dafdf160e01b5f5260045ffd5b6001600160a01b039091169052565b81516001600160a01b03908116825260208084015182168184015260408085015162ffffff168185015260608086015160020b908501526080948501518316948401949094528451151560a084015284015160c083015291909201511660e08201526105b9929061012090816101008201520191611718565b936020919394845f14615223576151aa6401000276a4925b61518f61517b61146c565b8815158152948787870152604086016150d0565b604051633cf3645360e21b81529788948594600486016150df565b03815f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1928315611043575f93615200575b505f13901515145f146151fa57600f0b90565b60801d90565b5f91935061521c9060203d60201161103c5761102d8183611439565b92906151e7565b6151aa73fffd8963efd1fc6a506488495d951d5263988d2592615170565b356105b98161181a565b356105b981611827565b905f608060405161526581611419565b82815282602082015282604082015282606082015201526152858261273a565b906001600160a01b03808316908216101561530b57906142bb9061530260015b946152f86152b560208301615241565b6152ec6152d060606152c96040870161524b565b950161273a565b956152e36152dc61147b565b998a6150d0565b602089016150d0565b62ffffff166040870152565b60020b6060850152565b608083016150d0565b6001600160a01b03918216916142bb91166153028184146152a5565b5f81600f0b126150c1576001600160801b031690565b61013292916001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169216611cb8565b6001600160a01b03918216927f000000000000000000000000000000000000000000000000000000000000000090921691823b1561012357604051631b63c28b60e11b8152925f9284928391859183916153df91906001600160a01b038c16908b9060048601613066565b03925af180156110435761541b575b50803b1561012357604051630934f6c760e21b815260048101929092525f9082908183816024810161283b565b8061221e5f61542993611439565b5f6153ee565b9091906001600160a01b03811661545c57505f80808061545094865af11590565b6154575750565b61558b565b6040805163a9059cbb60e01b81526001600160a01b039094166004850152602484019290925291905f9060208260448582885af13d15601f3d116001855114161716928281528260208201520152156154b25750565b6001600160a01b031661551e565b906154e457508051156154d557805190602001fd5b630a12f52160e11b5f5260045ffd5b81511580615515575b6154f5575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b156154ed565b6040516390bfb86560e01b81526001600160a01b03909116600482015263a9059cbb60e01b60248201526080604482015260a03d601f01601f191690810160648301523d60848301523d5f60a484013e808201600460a482015260c4633c9fd93960e21b91015260e40190fd5b6040516390bfb86560e01b81526001600160a01b0390911660048201525f602482018190526080604483015260a03d601f01601f191690810160648401523d6084840152903d9060a484013e808201600460a482015260c4633d2cec6f60e21b91015260e40190fdfe0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a708af28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f692a42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb6d317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee31a164736f6c634300081a000a000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba30000000000000000000000004200000000000000000000000000000000000006000000000000000000000000fe57a6ba1951f69ae2ed4abe23e0f095df500c04000000000000000000000000640887a9ba3a9c53ed27d0f7e8246a4f933f342496e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54000000000000000000000000360e68faccca8ca495c1b759fd9eee466db9fb32000000000000000000000000d8eeba7c373d612f24660e45fa96f5d95b0c9d16000000000000000000000000c0836e5b058bbe22ae2266e1ac488a1a0fd8dce80000000000000000000000001b35d13a2e2528f192637f14b05f0dc0e7deb566000000000000000000000000ef684c38f94f48775959ecf2012d7e864ffb9dd4", - "nonce": "0x3", - "chainId": "0xdef1" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0x82b12febd531cd2433dfc7a6c8f3dac95e07f3e41ba2c4fe3b5f1ad3d20f1928", - "transactionType": "CREATE2", - "contractName": "CaliburEntry", - "contractAddress": "0x000000009b1d0af20d8c6d0a44e162d11f9b8f00", - "function": null, - "arguments": null, - "transaction": { - "from": "0x9701fb0ade1e269c8f64ec0c7b3cfadb31a13a52", - "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", - "gas": "0x706446", - "value": "0x0", - "input": "0x0000000000000000000000000000000000000000eca2ad36bee3874a279d001060e0604052346100ce57604080519081016001600160401b038111828210176100ba576040908152600782526621b0b634b13ab960c91b6020830190815281519182016001600160401b038111838210176100ba57604052600582526020820192640312e302e360dc1b845251902060805251902060a0523060c052604051615fb890816100d382396080518181816120dc0152612811015260a0518181816121020152612837015260c05181818161250101526127c30152f35b634e487b7160e01b5f52604160045260245ffd5b5f80fdfe60806040526004361015610015575b3661288157005b5f3560e01c80630f3ebf6e1461024457806312aaac701461023f5780631626ba7e1461023a57806319822f7c146102355780631b71bb6e14610230578063219a260d1461022b57806323d578861461022657806325e5c2431461022157806327258b221461021c57806328495877146102175780632abbf4691461021257806330b1fa3b1461020d5780634223b5c2146102085780636575f6aa146102035780636750aa5f146101fe5780636a1ea88d146101f95780637613e7ba146101f4578063786902f2146101ef578063789ff701146101ea57806384b0196e146101e55780638dd7712f146101e057806394430fa5146101db57806399e1d016146101d6578063a58bb84a146101d1578063ac9650d8146101cc578063b70e36f0146101c7578063b75c7dc6146101c2578063b923614f146101bd578063bf7c5be9146101b8578063c3c16ee4146101b3578063d03c7914146101ae578063e41dae2f146101a9578063e9ae5c53146101a4578063f698da251461019f5763fac750e00361000e5761196a565b611950565b6118a5565b61183d565b61181f565b611678565b611635565b6115f9565b6113fd565b611278565b611174565b61101c565b610fe8565b610e46565b610d9e565b610cc8565b610caf565b610c96565b610c30565b610bcd565b610b9e565b610b34565b610a8e565b610a0e565b610817565b6107b8565b610790565b61070e565b61066a565b610621565b610554565b6103e5565b610393565b610302565b3461026a57602060031936011261026a576020610262600435611984565b604051908152f35b5f80fd5b6003111561027857565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b9060038210156102785752565b90601f19601f602080948051918291828752018686015e5f8582860101520116010190565b606060206102ff938184526102ef82850182516102a5565b01519160408082015201906102b2565b90565b3461026a57602060031936011261026a5761032d610321600435611b23565b604051918291826102d7565b0390f35b9181601f8401121561026a5782359167ffffffffffffffff831161026a576020838186019501011161026a57565b90604060031983011261026a57600435916024359067ffffffffffffffff821161026a5761038f91600401610331565b9091565b3461026a5760206103ac6103a63661035f565b91611c5f565b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b908161012091031261026a5790565b3461026a57606060031936011261026a5760043567ffffffffffffffff811161026a576104169036906004016103d6565b60443560243573ffffffffffffffffffffffffffffffffffffffff61043961253c565b1633036105015761032d926104836104d792846104d0956104f1575b5061046d610467610100850185611df0565b90612b26565b9693928561047e8598949398611b23565b6129e9565b9461048d82611984565b95156104e75778ffffffffff000000000000000000000000000000000000000086169788955b73ffffffffffffffffffffffffffffffffffffffff9236916109bd565b951661316d565b6040519081529081906020820190565b60019788956104b3565b5f9081803892335af1505f610455565b7fd663742a000000000000000000000000000000000000000000000000000000005f5260045ffd5b73ffffffffffffffffffffffffffffffffffffffff81160361026a57565b359061055282610529565b565b3461026a57602060031936011261026a5760043561057181610529565b3033036105f95773ffffffffffffffffffffffffffffffffffffffff167f800000000000000000000000000000000000000000000000000000000000000081177f3b86514c5c56b21f08d8e56ab090292e07c2483b3e667a2a45849dcb71368600557fea942933e7fb7cb728727281a81e352a20dda96dbc4ee97633a3fa25da48e4ab5f80a2005b7f82b42900000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461026a57602060031936011261026a576004355f527f3b86514c5c56b21f08d8e56ab090292e07c2483b3e667a2a45849dcb71368604602052602060405f2054604051908152f35b3461026a57604060031936011261026a5760043561068781610529565b602435903033036105f95773ffffffffffffffffffffffffffffffffffffffff1690815f527f3b86514c5c56b21f08d8e56ab090292e07c2483b3e667a2a45849dcb713686056020528060405f20556040519081527f30346eac03b1c5913bb026e6d8d0f42783a0c706bb2a86916410dc385cc2723660203092a360405160018152602090f35b3461026a57604060031936011261026a5760043561072b81610529565b602435903033036105f957806107568373ffffffffffffffffffffffffffffffffffffffff9361325c565b60405192835216907ff8c1385bb618a432aebbaae5bfab911559154982a64e1750b17b50f5782dc98860203092a360405160018152602090f35b3461026a57602060031936011261026a5760206107ae60043561327b565b6040519015158152f35b3461026a575f60031936011261026a5761032d6040516107d9604082610956565b601581527f556e69737761702e43616c696275722e312e302e30000000000000000000000060208201526040519182916020835260208301906102b2565b3461026a57602060031936011261026a576004356bffffffffffffffffffffffff811680910361026a573033036105f9577f3b86514c5c56b21f08d8e56ab090292e07c2483b3e667a2a45849dcb71368606546bffffffffffffffffffffffff8116820361088157005b7fffffffffffffffffffffffffffffffffffffffff00000000000000000000000016177f3b86514c5c56b21f08d8e56ab090292e07c2483b3e667a2a45849dcb71368606557f0a6387c9ea3628b88a633bb4f3b151770f70085117a15f9bf3787cda53f13d315f80a1005b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040810190811067ffffffffffffffff82111761093557604052565b6108ec565b6060810190811067ffffffffffffffff82111761093557604052565b90601f601f19910116810190811067ffffffffffffffff82111761093557604052565b6040519061055260c083610956565b60405190610552606083610956565b6003111561026a57565b67ffffffffffffffff811161093557601f01601f191660200190565b9291926109c9826109a1565b916109d76040519384610956565b82948184528183011161026a578281602093845f960137010152565b9080601f8301121561026a578160206102ff933591016109bd565b3461026a57602060031936011261026a5760043567ffffffffffffffff811161026a576040600319823603011261026a57604051610a4b81610919565b8160040135610a5981610997565b8152602482013567ffffffffffffffff811161026a57610a8c926004610a8292369201016109f3565b6020820152611e55565b005b3461026a57602060031936011261026a57600435610aaa611a0c565b5080610ae16318fb58646004527f3b86514c5c56b21f08d8e56ab090292e07c2483b3e667a2a45849dcb713686015f5260245f2090565b015490610aec61375e565b1115610b0c576103218168fbb67fda52d4bfb8bf61032d93141502611b23565b7f4e23d035000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461026a57602060031936011261026a576020610262600435610b55612765565b604291604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522090565b9060206102ff9281815201906102b2565b3461026a575f60031936011261026a5761032d610bb96120b1565b6040519182916020835260208301906102b2565b3461026a57602060031936011261026a5777ffffffffffffffffffffffffffffffffffffffffffffffff600435165f527f3b86514c5c56b21f08d8e56ab090292e07c2483b3e667a2a45849dcb71368604602052602060405f2054604051908152f35b3461026a575f60031936011261026a5760206040517f3b86514c5c56b21f08d8e56ab090292e07c2483b3e667a2a45849dcb713686008152f35b600319606091011261026a57600435610c8281610529565b90602435610c8f81610529565b9060443590565b3461026a5760206107ae610ca936610c6a565b91612145565b3461026a5760206107ae610cc236610c6a565b91612277565b3461026a575f60031936011261026a577fff00000000000000000000000000000000000000000000000000000000000000610d4f73ffffffffffffffffffffffffffffffffffffffff610d41610d1c612408565b97946040999397919699949294519a8b9a168a5260e060208b015260e08a01906102b2565b9088820360408a01526102b2565b93606087015216608085015260a084015282810360c0840152602080835192838152019201905f5b818110610d85575050500390f35b8251845285945060209384019390920191600101610d77565b3461026a57604060031936011261026a5760043567ffffffffffffffff811161026a57610dcf9036906004016103d6565b73ffffffffffffffffffffffffffffffffffffffff610dec61253c565b16330361050157610e16610e07610467610100840184611df0565b50505050916060810190611df0565b60048193929310610e3957826004610e3492610a8c95019101610fc2565b613489565b633b99b53d5f526004601cfd5b3461026a575f60031936011261026a576020610e6061253c565b73ffffffffffffffffffffffffffffffffffffffff60405191168152f35b67ffffffffffffffff81116109355760051b60200190565b9080601f8301121561026a57813591610eae83610e7e565b92610ebc6040519485610956565b80845260208085019160051b8301019183831161026a5760208101915b838310610ee857505050505090565b823567ffffffffffffffff811161026a578201906060601f19838803011261026a5760405190610f178261093a565b6020830135610f2581610529565b82526040830135602083015260608301359167ffffffffffffffff831161026a57610f58886020809695819601016109f3565b6040820152815201920191610ed9565b8015150361026a57565b91909160408184031261026a5760405190610f8c82610919565b819381359167ffffffffffffffff831161026a57610fb06020939284938301610e96565b8452013591610fbe83610f68565b0152565b9060208282031261026a57813567ffffffffffffffff811161026a576102ff9201610f72565b602060031936011261026a5760043567ffffffffffffffff811161026a57611017610a8c913690600401610f72565b6125b8565b3461026a57604060031936011261026a576004356024353033036105f95781156110cf576110498261327b565b156110a75760207f55194732cd17a56216773dcef66731844f1900f9b878633e3be2b6cce1e542c991835f527f3b86514c5c56b21f08d8e56ab090292e07c2483b3e667a2a45849dcb7136860382528060405f2055604051908152a2005b7fe57b6304000000000000000000000000000000000000000000000000000000005f5260045ffd5b7fb37b2fa0000000000000000000000000000000000000000000000000000000005f5260045ffd5b602081016020825282518091526040820191602060408360051b8301019401925f915b83831061112957505050505090565b9091929394602080611165837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0866001960301875289516102b2565b9701930193019193929061111a565b602060031936011261026a5760043567ffffffffffffffff811161026a573660238201121561026a5780600401359067ffffffffffffffff821161026a576024810190602436918460051b01011161026a576111cf82610e7e565b916111dd6040519384610956565b808352601f196111ec82610e7e565b015f5b8181106112675750505f5b81811061120f576040518061032d86826110f7565b5f8061121c838587612605565b9061122c60405180938193612621565b0390305af461123961262e565b901561125f579060019161124d828761265d565b52611258818661265d565b50016111fa565b602081519101fd5b8060606020809388010152016111ef565b3461026a57602060031936011261026a576004353033036105f9578060401c6112f36112e58277ffffffffffffffffffffffffffffffffffffffffffffffff165f527f3b86514c5c56b21f08d8e56ab090292e07c2483b3e667a2a45849dcb7136860460205260405f2090565b5467ffffffffffffffff1690565b9167ffffffffffffffff81169267ffffffffffffffff81168411156113d55767ffffffffffffffff61ffff91850316116113ad577f4d9dbebf1d909894d9c26fe228c27cec643b2cb490124e5b658f4edd203c20c1926113976113a89377ffffffffffffffffffffffffffffffffffffffffffffffff165f527f3b86514c5c56b21f08d8e56ab090292e07c2483b3e667a2a45849dcb7136860460205260405f2090565b556040519081529081906020820190565b0390a1005b7f24d35a26000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f756688fe000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461026a57602060031936011261026a576004353033036105f957805f906114506318fb58646004527f3b86514c5c56b21f08d8e56ab090292e07c2483b3e667a2a45849dcb713686015f5260245f2090565b9068fbb67fda52d4bfb8bf84146115ec5783156115dc575b811980549182159260011c5f19810191600183811b179461157057856020525f5260405f20948554928315611561575f97505f19840103611543575b50505055556114b360015b1590565b6110a7576114f06114eb825f527f3b86514c5c56b21f08d8e56ab090292e07c2483b3e667a2a45849dcb7136860260205260405f2090565b6126d3565b5f8181527f3b86514c5c56b21f08d8e56ab090292e07c2483b3e667a2a45849dcb7136860360205260408120557fe5af7daed5ab2a2dc5f98d53619f05089c0c14d11a6621f6b906a2366c9a7ab35f80a2005b5f1980849383010154928392010155855260408520555f80806114a4565b505050505050506114b3901590565b955050505050600190828154146115c057818101838154146115ac5750600201918254146115a25750600190506114b3565b5f6114b392551590565b6114b3935060025f92019081549055551590565b6114b39250806002835f93019182548155019081549055551590565b5068fbb67fda52d4bfb8bf611468565b63f5a267f15f526004601cfd5b3461026a575f60031936011261026a5760207f3b86514c5c56b21f08d8e56ab090292e07c2483b3e667a2a45849dcb7136860154604051908152f35b3461026a57602060031936011261026a5773ffffffffffffffffffffffffffffffffffffffff60043561166781610529565b165f526020805f205c604051908152f35b604060031936011261026a5760043567ffffffffffffffff811161026a57806004019060a0600319823603011261026a5760243567ffffffffffffffff811161026a576116c9903690600401610331565b91909273ffffffffffffffffffffffffffffffffffffffff60648301356116ef81610529565b168015908115611815575b50156105f9576084820135801515908161180b575b506117e3576117316114af936117619561172c6024860135613e8f565b613ee0565b9691604461175361174e61174999949699368961368a565b613f20565b6120a5565b960135968661047e89611b23565b6117bb57610a8c94610e34938573ffffffffffffffffffffffffffffffffffffffff6117a46117ab9561179384611984565b9561179d87612dc2565b36916109bd565b93166140d1565b6117b6369180612732565b610f72565b7f8baa579f000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f0819bdcd000000000000000000000000000000000000000000000000000000005f5260045ffd5b905042115f61170f565b905033145f6116fa565b3461026a57602060031936011261026a5760206107ae600435613709565b3461026a57602060031936011261026a5773ffffffffffffffffffffffffffffffffffffffff60043561186f81610529565b165f527f3b86514c5c56b21f08d8e56ab090292e07c2483b3e667a2a45849dcb71368605602052602060405f2054604051908152f35b6118ae3661035f565b6118b9839293613709565b156119285782019160208184031261026a5780359067ffffffffffffffff821161026a57610a8c937eff0000000000000000000000000000000000000000000000000000000000009261190c9201610e96565b916040519261191a84610919565b8352161560208201526125b8565b7f7f181275000000000000000000000000000000000000000000000000000000005f5260045ffd5b3461026a575f60031936011261026a576020610262612765565b3461026a575f60031936011261026a57602061026261375e565b80156119ed576119938161327b565b6119bf577fe57b6304000000000000000000000000000000000000000000000000000000005f5260045ffd5b5f527f3b86514c5c56b21f08d8e56ab090292e07c2483b3e667a2a45849dcb7136860360205260405f205490565b5079010000000000000000000000000000000000000000000000000090565b60405190611a1982610919565b60606020835f81520152565b90600182811c92168015611a6c575b6020831014611a3f57565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b91607f1691611a34565b81601f8201121561026a57805190611a8d826109a1565b92611a9b6040519485610956565b8284526020838301011161026a57815f9260208093018386015e8301015290565b60208183031261026a5780519067ffffffffffffffff821161026a570160408183031261026a5760405191611af083610919565b8151611afb81610997565b8352602082015167ffffffffffffffff811161026a57611b1b9201611a76565b602082015290565b611b2b611a0c565b508015611c5657611b3b8161327b565b611b67577fe57b6304000000000000000000000000000000000000000000000000000000005f5260045ffd5b5f527f3b86514c5c56b21f08d8e56ab090292e07c2483b3e667a2a45849dcb7136860260205260405f206040515f825492611ba184611a25565b9081845260208401946001811690815f14611c1b5750600114611bde575b505081611bd46102ff94936020930382610956565b8051010190611abc565b5f908152602081209092505b818310611c01575050810160200181611bd4611bbf565b600181602092949394548385880101520191019190611bea565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686525050151560051b8201602001905081611bd4611bbf565b506102ff6128b7565b9180611d7e5761773961ffff821904028314611d5757611c7e91612b26565b9391611c8d8396949296611b23565b91611ca28282611c9b6120b1565b8887612b79565b928315611d3b575b50505015611d1357611ce9611cef94611cc283611984565b611ccb81612dc2565b73ffffffffffffffffffffffffffffffffffffffff169436916109bd565b92612e6e565b7f1626ba7e0000000000000000000000000000000000000000000000000000000090565b505050507fffffffff0000000000000000000000000000000000000000000000000000000090565b611d4f935085611d49612765565b91612d60565b5f8080611caa565b5050507f773900010000000000000000000000000000000000000000000000000000000090565b90611d8982826128f1565b611d975790611c7e91612b26565b611da39261047e6128b7565b15611dcc577f1626ba7e0000000000000000000000000000000000000000000000000000000090565b7fffffffff0000000000000000000000000000000000000000000000000000000090565b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18136030182121561026a570180359067ffffffffffffffff821161026a5760200191813603831361026a57565b60405190611e50602083610956565b5f8252565b3033036105f957805160038110156102785780611e7360029261026e565b1480611f4a575b611f22577f8df00f8e3bbfb2c3024a60b74e1d4e520f7cbe1da3476726241146ecf6328832611f1d611eab83613318565b92611f07604051611ed181611ec385602083016102d7565b03601f198101835282610956565b611f02865f527f3b86514c5c56b21f08d8e56ab090292e07c2483b3e667a2a45849dcb7136860260205260405f2090565b611fda565b611f1084613355565b50604051918291826102d7565b0390a2565b7f41e2e8f3000000000000000000000000000000000000000000000000000000005f5260045ffd5b50602081015173ffffffffffffffffffffffffffffffffffffffff611f7a825192602080309583010191016129d4565b1614611e7a565b818110611f8c575050565b5f8155600101611f81565b9190601f8111611fa657505050565b610552925f5260205f20906020601f840160051c83019310611fd0575b601f0160051c0190611f81565b9091508190611fc3565b919091825167ffffffffffffffff81116109355761200281611ffc8454611a25565b84611f97565b6020601f82116001146120405781906120319394955f92612035575b50505f198260011b9260031b1c19161790565b9055565b015190505f8061201e565b601f19821690612053845f5260205f2090565b915f5b81811061208d57509583600195969710612075575b505050811b019055565b01515f1960f88460031b161c191690555f808061206b565b9192602060018192868b015181550194019201612056565b6102ff90610b55612765565b73ffffffffffffffffffffffffffffffffffffffff6120ce612408565b5094509150939150604051937f000000000000000000000000000000000000000000000000000000000000000060208601527f00000000000000000000000000000000000000000000000000000000000000006040860152606085015216608083015260a082015260a081526102ff60c082610956565b821561226f5773ffffffffffffffffffffffffffffffffffffffff3091160361224757335f908152602090205c9082821061221f5781835f1973ffffffffffffffffffffffffffffffffffffffff941061220d575b505016905f80808084865af16121ae61262e565b50156121e5576040519081527f3f1beca043a9fe9118bbaeca0035e81e02d6d7cf184bf32fa9dfbd73fdd027c060203092a3600190565b7fb06a467a000000000000000000000000000000000000000000000000000000005f5260045ffd5b61221891033361325c565b5f8361219a565b7fc45cb513000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f7d1c29f3000000000000000000000000000000000000000000000000000000005f5260045ffd5b505050600190565b91905f9282156123ff5773ffffffffffffffffffffffffffffffffffffffff3091160361224757335f9081527f3b86514c5c56b21f08d8e56ab090292e07c2483b3e667a2a45849dcb71368605602052604090205482811061221f575f198110612364575b5073ffffffffffffffffffffffffffffffffffffffff16918080808085875af161230461262e565b501561233c57506040519081527fed1cf8378e55f85e35be72eebdbef1b7347825916e51aa538d1855113f8c259d60203092a3600190565b807fb06a467a0000000000000000000000000000000000000000000000000000000060049252fd5b73ffffffffffffffffffffffffffffffffffffffff919350829003925f93806123ca3373ffffffffffffffffffffffffffffffffffffffff165f527f3b86514c5c56b21f08d8e56ab090292e07c2483b3e667a2a45849dcb7136860560205260405f2090565b5560405190815233907f85b16643b7d42712d1470a1ed9822d6e8cadad23eb1141cabefa28da0944c5b790602090a2906122dc565b50505050600190565b7f1f000000000000000000000000000000000000000000000000000000000000009060408051906124398183610956565b600782527f43616c69627572000000000000000000000000000000000000000000000000006020830152805161246f8282610956565b600581527f312e302e3000000000000000000000000000000000000000000000000000000060208201527f3b86514c5c56b21f08d8e56ab090292e07c2483b3e667a2a45849dcb71368606549293909246923092909160a01b7fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001617915161252f602082610956565b5f80825236602083013790565b7f3b86514c5c56b21f08d8e56ab090292e07c2483b3e667a2a45849dcb71368600547f800000000000000000000000000000000000000000000000000000000000000081161561259f5773ffffffffffffffffffffffffffffffffffffffff1690565b50734337084d9e255ff0702461cf8895ce9e3b5ff10890565b6125c1336135df565b6125ca81613638565b156105f95761055291613489565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b9082101561261c5761038f9160051b810190611df0565b6125d8565b908092918237015f815290565b3d15612658573d9061263f826109a1565b9161264d6040519384610956565b82523d5f602084013e565b606090565b805182101561261c5760209160051b010190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b908160021b917f3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8116036126ce57565b612671565b6126dd8154611a25565b90816126e7575050565b81601f5f93116001146126f8575055565b8183526020832061271491601f0160051c810190600101611f81565b808252602082209081548360011b905f198560031b1c191617905555565b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc18136030182121561026a570190565b7f3b86514c5c56b21f08d8e56ab090292e07c2483b3e667a2a45849dcb713686065460a01b7fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000161760405160208101917fd87cd6ef79d4e2b95e15ce8abf732db51ec771f1ca2edccf22a46c729ac5647283527f000000000000000000000000000000000000000000000000000000000000000060408301527f000000000000000000000000000000000000000000000000000000000000000060608301524660808301523060a083015260c082015260c0815261287b60e082610956565b51902090565b5f3560e01c63bc197c81811463f23a6e6182141763150b7a028214176128ae57633c10b94e5f526004601cfd5b6020526020603cf35b6128bf611a0c565b50604051306020820152602081526128d8604082610956565b604051906128e582610919565b60028252602082015290565b5060418114908115612901575090565b604091501490565b919082604091031261026a576020825192015190565b60208183031261026a5780359067ffffffffffffffff821161026a57019060c08282031261026a5761294f610979565b91803567ffffffffffffffff811161026a578261296d9183016109f3565b8352602081013567ffffffffffffffff811161026a5760a0926129919183016109f3565b6020840152604081013560408401526060810135606084015260808101356080840152013560a082015290565b919082604091031261026a576020823592013590565b9081602091031261026a57516102ff81610529565b9290600284516129f88161026e565b612a018161026e565b03612a6a579073ffffffffffffffffffffffffffffffffffffffff92612a2692613b2f565b169081612a335750505f90565b612a4d6020612a66920151602080825183010191016129d4565b73ffffffffffffffffffffffffffffffffffffffff1690565b1490565b8351612a758161026e565b612a7e8161026e565b612abb57612ab690612aae612aa360206102ff97015160208082518301019101612909565b9590948101906129be565b929091613aec565b613b04565b60018451612ac88161026e565b612ad18161026e565b03612b1e57611ec3612b19612b04612af960206102ff98015160208082518301019101612909565b96909581019061291f565b92604051928391602083019190602083019252565b6138de565b505050505f90565b9190823592612b358282613bbd565b9093819363ffffffff60408501351684019063ffffffff82351694602080840193870101910110610e3957604090939210612b6c57565b634be6321b5f526004601cfd5b9091939293612b888486614660565b949093612b9f602088013592604089013598614690565b9091612bde8985604291604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522090565b03612d5457612bec91613c80565b82959299939199158015612d4c575b612d3e57611ec3612cd9612c266102ff9c612c1e612cfc96612d389b36916109bd565b9436916109bd565b604051928391605c612c6360208501977f5479706564446174615369676e280000000000000000000000000000000000008952602e860190613809565b7f20636f6e74656e74732c737472696e67206e616d652c737472696e672076657281527f73696f6e2c75696e7432353620636861696e49642c616464726573732076657260208201527f696679696e67436f6e74726163742c627974657333322073616c74290000000060408201520190613809565b51902092611ec36040519384926020840196875260408401526060830190613809565b51902090604291604051917f19010000000000000000000000000000000000000000000000000000000000008352600283015260228201522090565b906129e9565b505050505050505050505f90565b508015612bfb565b50505050505050505f90565b906102ff949392612d3891604090601c60208351612d7e8582610956565b828152017f506572736f6e616c5369676e28627974657320707265666978656429000000008152209180519160208301938452818301528152612cfc606082610956565b612dcb90613e70565b90612dd35750565b64ffffffffff907f48c76fe1000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b51907fffffffff000000000000000000000000000000000000000000000000000000008216820361026a57565b9081602091031261026a576102ff90612e06565b6102ff93926060928252602082015281604082015201906102b2565b6040513d5f823e3d90fd5b9290919260048116612e81575b50505050565b612ed39373ffffffffffffffffffffffffffffffffffffffff602094604051968795869485937f9ac4eafd00000000000000000000000000000000000000000000000000000000855260048501612e47565b0392165afa908115612f91577f9ac4eafd00000000000000000000000000000000000000000000000000000000917fffffffff00000000000000000000000000000000000000000000000000000000915f91612f62575b501603612f3a575f808080612e7b565b7f1e048e1d000000000000000000000000000000000000000000000000000000005f5260045ffd5b612f84915060203d602011612f8a575b612f7c8183610956565b810190612e33565b5f612f2a565b503d612f72565b612e63565b90357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18236030181121561026a57016020813591019167ffffffffffffffff821161026a57813603831361026a57565b601f8260209493601f1993818652868601375f8582860101520116010190565b91613155906102ff96949592845260a0602085015261304560a0850161302b83610547565b73ffffffffffffffffffffffffffffffffffffffff169052565b602081013560c08501526131246131186130b961307b6130686040860186612f96565b61012060e08b01526101c08a0191612fe6565b6130886060860186612f96565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff608a8403016101008b0152612fe6565b608084013561012088015260a084013561014088015260c08401356101608801526130e760e0850185612f96565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60898403016101808a0152612fe6565b91610100810190612f96565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60868403016101a0870152612fe6565b936040830152606082015260808184039101526102b2565b9190939460028316613182575b505050505050565b6020946131d473ffffffffffffffffffffffffffffffffffffffff92604051988997889687957f9e364dba00000000000000000000000000000000000000000000000000000000875260048701613006565b0392165afa908115612f91577f9e364dba00000000000000000000000000000000000000000000000000000000917fffffffff00000000000000000000000000000000000000000000000000000000915f9161323d575b501603612f3a575f808080808061317a565b613256915060203d602011612f8a57612f7c8183610956565b5f61322b565b73ffffffffffffffffffffffffffffffffffffffff165f5260205f205d565b6132b07f3b86514c5c56b21f08d8e56ab090292e07c2483b3e667a2a45849dcb713686016318fb58646004525f5260245f2090565b68fbb67fda52d4bfb8bf82146115ec578115613307575b801954156132de576020525f5260405f2054151590565b9060019181815414613302578183820154146133025760020154146102ff57505f90565b505090565b68fbb67fda52d4bfb8bf91506132c7565b8051906003821015610278576020015160208151910120604051906133416020830180946102a5565b60408201526040815261287b606082610956565b905f9161338d7f3b86514c5c56b21f08d8e56ab090292e07c2483b3e667a2a45849dcb713686016318fb58646004525f5260245f2090565b9068fbb67fda52d4bfb8bf81146115ec578015613479575b8119918254918160205282156133ed575b805f5260405f20928354156133cc575050505050565b9091929394955060011c8092015560010180915560011b6001179055600190565b91508054801561347057828114612e7b57600182018054908115613462575083811461345b576002830191825492831561344c575084831461317a575f52600160405f20555f52600260405f20555f52600360405f20556007916133b6565b95505050505091925055600190565b5050505050565b945050505091925055600190565b50555060019150565b5068fbb67fda52d4bfb8bf6133a5565b5f5b81518051821015612e7b57816134a09161265d565b51805173ffffffffffffffffffffffffffffffffffffffff16806135d9575030905b6134cb85611984565b60ff60c882901c1615806135ba575b6135925785925f8073ffffffffffffffffffffffffffffffffffffffff613537941694602081019361351760408651930192835190838b8b6147d9565b9451915191602083519301915af1928361352f61262e565b958692614966565b1580613585575b61354b575060010161348b565b613581906040519182917fa5fa8d2b00000000000000000000000000000000000000000000000000000000835260048301610b8d565b0390fd5b506020830151151561353e565b7f3ceb88d9000000000000000000000000000000000000000000000000000000005f5260045ffd5b503073ffffffffffffffffffffffffffffffffffffffff8416146134da565b906134c2565b73ffffffffffffffffffffffffffffffffffffffff16308114613633576102ff9060405190602082015260208152613618604082610956565b6040519061362582610919565b600282526020820152613318565b505f90565b8015613684576136478161327b565b15613633575f527f3b86514c5c56b21f08d8e56ab090292e07c2483b3e667a2a45849dcb7136860360205261367f60405f2054613e70565b501590565b50600190565b91909160a08184031261026a576040519060a0820182811067ffffffffffffffff82111761093557604052819381359167ffffffffffffffff831161026a576136d96080939284938301610f72565b8452602081013560208501526040810135604085015260608101356136fd81610529565b60608501520135910152565b7f01000000000000000000000000000000000000000000000000000000000000008114908115613737575090565b7f010100000000000000000000000000000000000000000000000000000000000091501490565b6318fb58646004527f3b86514c5c56b21f08d8e56ab090292e07c2483b3e667a2a45849dcb713686015f5260245f2090811954918260011c9215159080541560026001830154159201541592156137b457505050565b90919293505f906137da57506001906137d557506002906102ff5750600390565b919050565b92915050565b90601582018092116126ce57565b90600282018092116126ce57565b919082018092116126ce57565b805191908290602001825e015f815290565b90610552600161385b936040519485917f226368616c6c656e6765223a22000000000000000000000000000000000000006020840152602d830190613809565b7f22000000000000000000000000000000000000000000000000000000000000008152037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1810185520183610956565b80516020101561261c5760400190565b6138c89060209392613809565b9081520190565b9081602091031261026a575190565b92919060a081019384517f7fffffff800000007fffffffffffffffde737d56d38bcf4279dce5617e3192a810613ad95760208201907fff1a2a9176d650e4a99dedb58f1793003935130579fe17b5a3f698ac5b00e63461394d83516060860151613947816137e0565b91614c42565b6020815191012003613ae25761396561396a9161419b565b61381b565b61397f825160408501516139478451826137fc565b60208151910120906020815191012003613ad9577f0100000000000000000000000000000000000000000000000000000000000000806139e86139c285516138ab565b517fff000000000000000000000000000000000000000000000000000000000000001690565b1603613ad9575f613a026020925160405191828092613809565b039060025afa15612f915760205f613a378151613a2b8551611ec36040519384928884016138bb565b60405191828092613809565b039060025afa15612f915760805f519101935f80865185613a888551611ec38a60405194859360208501978c899192608093969594919660a084019784526020840152604083015260608201520152565b51906101005afa94613a9861262e565b80519680613ad0575b613ab457506102ff955051905191614202565b600196612a6696508101602090810195500192506138cf915050565b50861515613aa1565b50505050505f90565b5050505050505f90565b5f5260206001815f60025afa51903d15613b0257565bfe5b93929190613b15848484848961435c565b90959015613b2557505050505090565b6102ff9550614417565b604080515f95949093918114613b7a57604114613b4b57505050565b604080929395508101355f1a60205281375b5f526020604060805f60015afa505f6060523d6060185191604052565b507f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff91929450602081013590601b8260ff1c016020523560405216606052613b5d565b909163ffffffff60208301351682019263ffffffff84351692602080860195850101910110610e3957565b905f1982019182116126ce57565b7fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63255103907fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63255182116126ce57565b9082101561261c570190565b80156126ce575f190190565b90929192831161026a579190565b9093929384831161026a57841161026a578101920390565b9080613c93575b50505f905f905f905f90565b7f29000000000000000000000000000000000000000000000000000000000000007fff00000000000000000000000000000000000000000000000000000000000000613d11613ceb613ce485613be8565b8587613c42565b357fff000000000000000000000000000000000000000000000000000000000000001690565b1603613db7575f5b818110613d2c575b5050505b5f80613c87565b613d3a613ceb828486613c42565b7fff0000000000000000000000000000000000000000000000000000000000000081167f280000000000000000000000000000000000000000000000000000000000000003613da257508015613d9d57613d95908284613c5a565b939093929190565b613d21565b613dab906146bb565b613d9d57600101613d19565b9081805b613dc8575b505050613d25565b613de2613ceb613ddb8396949596613be8565b8686613c42565b7fff0000000000000000000000000000000000000000000000000000000000000081167f290000000000000000000000000000000000000000000000000000000000000003613e4b575080613e3c85613e44938187613c68565b959094613c5a565b9293929091565b613e5890949392946146bb565b613e6b57613e6590613c4e565b80613dbb565b613dc0565b60a01c64ffffffffff16908115613e88574282109190565b5f91508190565b8060401c5f527f3b86514c5c56b21f08d8e56ab090292e07c2483b3e667a2a45849dcb7136860460205260405f208054915f1983146126ce5767ffffffffffffffff9160018401905516036113d557565b909163ffffffff82351682019063ffffffff8235169060208084019383010184860110610e3957613f15604093958395613bbd565b9390939210612b6c57565b60c1610100613f326040519182610956565b8181527f290000000000000000000000000000000000000000000000000000000000000060e060208301927f5369676e65644261746368656443616c6c284261746368656443616c6c20626184527f746368656443616c6c2c75696e74323536206e6f6e63652c627974657333322060408201527f6b6579486173682c61646472657373206578656375746f722c75696e7432353660608201527f20646561646c696e65294261746368656443616c6c2843616c6c5b5d2063616c60808201527f6c732c626f6f6c207265766572744f6e4661696c7572652943616c6c2861646460a08201527f7265737320746f2c75696e743235362076616c75652c6279746573206461746160c08201520152209061287b61404f8251614a51565b611ec36020840151936040810151906080614081606083015173ffffffffffffffffffffffffffffffffffffffff1690565b9101519160405196879560208701998a929360a09473ffffffffffffffffffffffffffffffffffffffff93989796929860c086019986526020860152604085015260608401521660808201520152565b92909192600181166140e35750505050565b6141359373ffffffffffffffffffffffffffffffffffffffff602094604051968795869485937f33dd593c00000000000000000000000000000000000000000000000000000000855260048501612e47565b0392165afa908115612f91577f33dd593c00000000000000000000000000000000000000000000000000000000917fffffffff00000000000000000000000000000000000000000000000000000000915f91612f6257501603612f3a575f808080612e7b565b6040516102ff916141ad606083610956565b604082527f4142434445464748494a4b4c4d4e4f505152535455565758595a61626364656660208301527f6768696a6b6c6d6e6f707172737475767778797a303132333435363738392d5f6040830152614cec565b93919092938315801561431d575b8015614315575b80156142eb575b613ad95761422c8386614d93565b15613ad95760405191602083526020808401526020604084015260608301527fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63254f60808301527fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63255160a083015260208260c08160055f19fa1561026a577fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551946142e593866142df945181818909940991614e5f565b91613bf6565b90081590565b507fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63255182101561421e565b508115614217565b507fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551841015614210565b9081602091031261026a57516102ff81610f68565b91909361436c6114af83876156fe565b8015614404575b6143f8575f94611ec36143b29287966040519586946020860198899192608093969594919660a084019784526020840152604083015260608201520152565b51906101005afa6143c161262e565b90806143ed575b156143e657806020806143e093518301019101614347565b90600190565b505f905f90565b5060208151146143c8565b50505050505f90600190565b506144126114af8286615775565b614373565b909392919261442684866156fe565b15801561464f575b613ad9577fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63255161461c612a669561461161462896614469615804565b95614472610988565b5f81525f60208201525f6040820152875261448b610988565b9182526020820152600160408201526144a48660200190565b9081526144af610988565b7f6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c29681527f4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5602082015260016040820152608087019081526146076145138351615ac2565b604089019081526145f86145e961452a8551615ac2565b6101008c0190815261453f8751855190615aff565b9560608d019687528c61455f6145588a51845190615aff565b9160a00190565b528c6145786145718751845190615aff565b9160c00190565b528c61459161458a8951845190615aff565b9160e00190565b528c6145ab6145a38a51855190615aff565b916101200190565b528c6145c56145bd8751855190615aff565b916101400190565b528c6145df6145d78951855190615aff565b916101600190565b5251905190615aff565b6101808b018181529551615aff565b6101a08a015251835190615aff565b6101c088016145df565b6101e0850152615b1e565b8181880993099061584a565b507fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551900690565b5061465a8184615775565b1561442e565b909163ffffffff82351682019263ffffffff8435169260208086019585010191011061468857565b9150505f5f91565b909163ffffffff60608301351682019263ffffffff8435169260208086019585010191011061468857565b7fff0000000000000000000000000000000000000000000000000000000000000016801590811561477a575b8115614750575b8115614726575b81156146ff575090565b7f290000000000000000000000000000000000000000000000000000000000000091501490565b7f2800000000000000000000000000000000000000000000000000000000000000811491506146f5565b7f2c00000000000000000000000000000000000000000000000000000000000000811491506146ee565b7f2000000000000000000000000000000000000000000000000000000000000000811491506146e7565b91909160408184031261026a576147ba81612e06565b92602082015167ffffffffffffffff811161026a576102ff9201611a76565b6060959490929190600884166147f0575050505050565b5f94965073ffffffffffffffffffffffffffffffffffffffff8094939261486087936040519a8b98899788957fec9b4ee4000000000000000000000000000000000000000000000000000000008752600487015216602485015260448401526080606484015260848301906102b2565b0393165af18015612f91575f925f916148c9575b507fffffffff000000000000000000000000000000000000000000000000000000007fec9b4ee40000000000000000000000000000000000000000000000000000000091931603612f3a575f8080808061345b565b7fffffffff0000000000000000000000000000000000000000000000000000000093507fec9b4ee400000000000000000000000000000000000000000000000000000000915061492a903d805f833e6149228183610956565b8101906147a4565b9390939150614874565b926102ff9492614958928552151560208501526080604085015260808401906102b2565b9160608184039101526102b2565b90929160108216614978575050505050565b5f73ffffffffffffffffffffffffffffffffffffffff6020956149ca604051988997889687947fc82b175900000000000000000000000000000000000000000000000000000000865260048601614934565b0393165af1908115612f91577fc82b175900000000000000000000000000000000000000000000000000000000917fffffffff00000000000000000000000000000000000000000000000000000000915f91614a32575b501603612f3a575f8080808061345b565b614a4b915060203d602011612f8a57612f7c8183610956565b5f614a21565b60806057604051614a63608082610956565b8181527f6e743235362076616c75652c6279746573206461746129000000000000000000606060208301927f4261746368656443616c6c2843616c6c5b5d2063616c6c732c626f6f6c20726584527f766572744f6e4661696c7572652943616c6c286164647265737320746f2c75696040820152015220908251805194601f19614b05614aef88610e7e565b97614afd604051998a610956565b808952610e7e565b013660208801376060935f5b8351811015614bee5780614b276001928661265d565b516029604051614b378a82610956565b8181527f7465732064617461290000000000000000000000000000000000000000000000604060208301927f43616c6c286164647265737320746f2c75696e743235362076616c75652c627984520152209073ffffffffffffffffffffffffffffffffffffffff81511690604060208201519101516020815191012090604051926020840194855260408401528a83015288820152878152614bda60a082610956565b519020614be7828b61265d565b5201614b11565b509493509461287b9250614c1f9150602090604051614c1481611ec3858201809561595b565b519020930151151590565b604080516020810195865290810193909352151560608301528160808101611ec3565b805160609493929083811115614cb3575b81811115614cab575b50828110614c6957505050565b6040519450918290039101601f19601f830181165b8083015181870152018015614c9657601f1990614c7e565b505060408184015f6020820152016040528252565b90505f614c5c565b925082614c53565b90614cc5826109a1565b614cd26040519182610956565b828152601f19614ce282946109a1565b0190602036910137565b90815115614d895790614d19614d14614d0d614d08845161269e565b6137ee565b6003900490565b614cbb565b916020830190828051019060208201928351945f85525b838110614d3f57505050505290565b600360049101916001603f845182828260121c16880101518453828282600c1c16880101518385015382828260061c16880101516002850153168501015160038201530190614d30565b50506102ff611e41565b6ffffffffeffffffffffffffffffffffff60601b198110801590614e41575b8015614e30575b614e2a576ffffffffeffffffffffffffffffffffff60601b197f5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b818381807fffffffff00000001000000000000000000000000fffffffffffffffffffffffc81970991818180090908089180091490565b50505f90565b5080158015614db957508115614db9565b506ffffffffeffffffffffffffffffffffff60601b19821015614db2565b90915f925f9160ff958115806156f6575b6156eb57614e7e8386615988565b9490978815806156e3575b615695575b83811c60028460fe1c16015b1561567d57600184821c16600284831c60011b160160018114615632575b60028114615625575b60031461561a575b5f1990969493929196019460019889975b875f1911614f715750505050505050505060405191606083015260208252602080830152602060408301527fffffffff00000001000000000000000000000000fffffffffffffffffffffffd60808301526ffffffffeffffffffffffffffffffffff60601b1960a083015260208260c08160055f19fa1561026a576ffffffffeffffffffffffffffffffffff60601b199151900990565b6ffffffffeffffffffffffffffffffffff60601b198160029c989a9c9b959697999b09936ffffffffeffffffffffffffffffffffff60601b1985800980956ffffffffeffffffffffffffffffffffff60601b19828409966ffffffffeffffffffffffffffffffffff60601b199109916ffffffffeffffffffffffffffffffffff60601b198a8208908a6ffffffffeffffffffffffffffffffffff60601b19036ffffffffeffffffffffffffffffffffff60601b199108906ffffffffeffffffffffffffffffffffff60601b1991096ffffffffeffffffffffffffffffffffff60601b19906003099c6ffffffffeffffffffffffffffffffffff60601b19908309986ffffffffeffffffffffffffffffffffff60601b1991099b6ffffffffeffffffffffffffffffffffff60601b19867fffffffff00000001000000000000000000000000fffffffffffffffffffffffd096ffffffffeffffffffffffffffffffffff60601b19828009906ffffffffeffffffffffffffffffffffff60601b199108956ffffffffeffffffffffffffffffffffff60601b19036ffffffffeffffffffffffffffffffffff60601b199087086ffffffffeffffffffffffffffffffffff60601b1991096ffffffffeffffffffffffffffffffffff60601b1981938309906ffffffffeffffffffffffffffffffffff60601b19910891878c1c600116878d1c60011b6002160180156155f557600181146155aa575b6002811461559f575b600314615596575b8c15615581578c916ffffffffeffffffffffffffffffffffff60601b198085818d819609089388820392090894811561536c575b6ffffffffeffffffffffffffffffffffff60601b19868009986ffffffffeffffffffffffffffffffffff60601b198a9788099d8e976ffffffffeffffffffffffffffffffffff60601b1991099d6ffffffffeffffffffffffffffffffffff60601b199109986ffffffffeffffffffffffffffffffffff60601b199109916ffffffffeffffffffffffffffffffffff60601b19837fffffffff00000001000000000000000000000000fffffffffffffffffffffffd09866ffffffffeffffffffffffffffffffffff60601b19036ffffffffeffffffffffffffffffffffff60601b19848009906ffffffffeffffffffffffffffffffffff60601b199108906ffffffffeffffffffffffffffffffffff60601b199108956ffffffffeffffffffffffffffffffffff60601b19910991856ffffffffeffffffffffffffffffffffff60601b19036ffffffffeffffffffffffffffffffffff60601b199108906ffffffffeffffffffffffffffffffffff60601b199109906ffffffffeffffffffffffffffffffffff60601b19910892985f19905b0196949392979597614eda565b8c861561537957506151ce565b989150919a94506ffffffffeffffffffffffffffffffffff60601b198b7fffffffff00000001000000000000000000000000fffffffffffffffffffffffd096ffffffffeffffffffffffffffffffffff60601b198180099283916ffffffffeffffffffffffffffffffffff60601b19838309946ffffffffeffffffffffffffffffffffff60601b1991099d8e916ffffffffeffffffffffffffffffffffff60601b198281038208916ffffffffeffffffffffffffffffffffff60601b199108906ffffffffeffffffffffffffffffffffff60601b1991096ffffffffeffffffffffffffffffffffff60601b1990600309926ffffffffeffffffffffffffffffffffff60601b199109986ffffffffeffffffffffffffffffffffff60601b1991099b6ffffffffeffffffffffffffffffffffff60601b19837fffffffff00000001000000000000000000000000fffffffffffffffffffffffd096ffffffffeffffffffffffffffffffffff60601b19838009906ffffffffeffffffffffffffffffffffff60601b1991089b6ffffffffeffffffffffffffffffffffff60601b199109918b6ffffffffeffffffffffffffffffffffff60601b19036ffffffffeffffffffffffffffffffffff60601b1991086ffffffffeffffffffffffffffffffffff60601b199109906ffffffffeffffffffffffffffffffffff60601b199108925f199061535f565b60019c50909a8c98509094505f19915061535f565b5050818361519a565b8b92508a9150615192565b7f6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c29692507f4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f59150615189565b5050505f19906ffffffffeffffffffffffffffffffffff60601b199a949a039361535f565b889750859150614ec9565b9697508796859250614ec1565b7f6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c29698507f4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f59250614eb8565b5f1901600184821c16600284831c60011b1601614e9a565b91927fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551919382039008915f918315806156db575b15614e8e575050505050505050505f90565b5060016156c9565b508515614e89565b505050505050505f90565b508015614e70565b90811515918261574b575b5081615741575b81615719575090565b7f7fffffff800000007fffffffffffffffde737d56d38bcf4279dce5617e3192a89150111590565b8015159150615710565b7fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6325511191505f615709565b6ffffffffeffffffffffffffffffffffff60601b1980807f5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b8185817fffffffff00000001000000000000000000000000fffffffffffffffffffffffc81838009080908818580091493109110161690565b604051906157f38261093a565b5f6040838281528260208201520152565b604051906102006158158184610956565b825f5b82811061582457505050565b60209061582f6157e6565b8184015201615818565b90601081101561261c5760051b0190565b5f9392849283929183915b6080831061586b575050505061038f9293615db4565b85615939575b600c61587d8260fc1c90565b16600361588a8460fe1c90565b161760406158988287615839565b5101516158c0575b506158b76158b060019260021b90565b9260021b90565b92019190615855565b959194909782155f1461590f575050506158da8483615839565b51519260016158b76158b0604061590060206158f68b8a615839565b5101519988615839565b5101519796995b9250506158a0565b6158b0959260019261592e926159286158b79a89615839565b51615c0b565b979196909699615907565b969461594a91946159509396615b84565b91615b84565b949193909396615871565b80516020909101905f5b8181106159725750505090565b8251845260209384019390920191600101615965565b91907f6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c2967f4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5918015615abc578461038f9495831480615ab3575b15615a9e5750506ffffffffeffffffffffffffffffffffff60601b1982600209916ffffffffeffffffffffffffffffffffff60601b198084800993818080808881818a09950996817fffffffff00000001000000000000000000000000fffffffffffffffffffffffe816001840892080960030981808080867fffffffff00000001000000000000000000000000fffffffffffffffffffffffd0981858009089681600181818c099b099809810393868203900890090890615ed1565b909192615aaa93615e33565b92909190615ed1565b508184146159e1565b50925090565b615ae290615ace6157e6565b508051906040602082015191015191615b84565b9060405192615af08461093a565b83526020830152604082015290565b615ae291615b0b6157e6565b5080516040602083015192015192615c0b565b7fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc6325517fffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc63254f615b6992615f67565b9015615b725790565b634e487b715f5260126020526024601cfd5b9290916ffffffffeffffffffffffffffffffffff60601b1980918180868009968180808a818080808a800980097fffffffff00000001000000000000000000000000fffffffffffffffffffffffc09818088800960030908940960040991818080808087600209810381868009089c80096008098103938b82039008900908940960020990565b91939092935f945f945f946040810151906ffffffffeffffffffffffffffffffffff60601b198280096ffffffffeffffffffffffffffffffffff60601b19858009926ffffffffeffffffffffffffffffffffff60601b1980878609602085015109916ffffffffeffffffffffffffffffffffff60601b19808681868103818d8189890990090896510991818381039189090890811585151694855f14615d4f575050505050600114615cbd5750505050565b6ffffffffeffffffffffffffffffffffff60601b198080809a508699508097985080969381808087819998099d838f94097fffffffff00000001000000000000000000000000fffffffffffffffffffffffc09818088800960030908940960040991818080808087600209810381868009089c80096008098103938b820390089009089409600209905f808080612e7b565b929b50935096506ffffffffeffffffffffffffffffffffff60601b1980808080809c9d50809a995080985080969f508b8009809709958a098180876002098103818381038188800908089d098103938c8203900890090895099009905f808080612e7b565b92918015615e29576ffffffffeffffffffffffffffffffffff60601b197fffffffff00000001000000000000000000000000fffffffffffffffffffffffd615dfb92615f67565b919015615b72576ffffffffeffffffffffffffffffffffff60601b1991829081808280098097099509900990565b505090505f905f90565b9392908015615ec4576ffffffffeffffffffffffffffffffffff60601b19806001969481808080809a9881809981039d8e920908938160018b820392090881818009998a9182099809918180898180877fffffffff00000001000000000000000000000000fffffffffffffffffffffffd09818381038188800908089c09938b820390080908946001099260010990565b5092509190600190600190565b9092919260405192602084526020808501526020604085015260608401527fffffffff00000001000000000000000000000000fffffffffffffffffffffffd60808401526ffffffffeffffffffffffffffffffffff60601b1960a084015260208360c08160055f19fa1561026a576ffffffffeffffffffffffffffffffffff60601b198093918180935180920995098009900991565b91908115615fa2576020925f9260c0926040519286845286808501528660408501526060840152608083015260a082015260055afa905f5190565b5050505f905f9056fea164736f6c634300081d000a", - "nonce": "0x4", - "chainId": "0xdef1" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0x3df86453c2db60d366a8a393c471434fafdbef54d21f5a718779e3ea8a27b0a7", - "transactionType": "CREATE", - "contractName": "FeeOnTransferDetector", - "contractAddress": "0x282a3c4d320cc7f0d5eaf56b8029e4b88338f0a3", - "function": null, - "arguments": [ - "0xfe57A6BA1951F69aE2Ed4abe23e0f095DF500C04" - ], - "transaction": { - "from": "0x9701fb0ade1e269c8f64ec0c7b3cfadb31a13a52", - "gas": "0x16bd1c", - "value": "0x0", - "input": "0x60a060405234801561001057600080fd5b5060405161145938038061145983398101604081905261002f91610040565b6001600160a01b0316608052610070565b60006020828403121561005257600080fd5b81516001600160a01b038116811461006957600080fd5b9392505050565b6080516113c061009960003960008181610575015281816105fb0152610a0901526113c06000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c806310d1e85c1461005c578063686dc35914610071578063aa3ad4e414610084578063ade44597146100ad578063da80e4dd146100cd575b600080fd5b61006f61006a366004610e46565b6100e0565b005b61006f61007f366004610edc565b6102da565b610097610092366004610edc565b6102f3565b6040516100a49190610f1d565b60405180910390f35b6100c06100bb366004610f5c565b61030e565b6040516100a49190610fe8565b61006f6100db366004611067565b6103da565b6000339050600080826001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015610126573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061014a91906110ad565b836001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa158015610188573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101ac91906110ad565b9150915060008088116101bf57816101c1565b825b90506000806101d2878901896110ca565b6040516370a0823160e01b8152306004820152919350915060009083906001600160a01b038616906370a0823190602401602060405180830381865afa158015610220573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061024491906110ec565b61024e919061111b565b9050600061025c838361053d565b905060008061026b878561055e565b9150915060008061027e8c8a8888610785565b9150915060006040518060a00160405280878152602001848152602001861515815260200185151581526020018315158152506040516020016102c19190610f1d565b6040516020818303038152906040529050805181602001fd5b6102ee6001600160a01b0384168383610941565b505050565b6102fb610e00565b6103068484846109c8565b949350505050565b60608367ffffffffffffffff8111156103295761032961112e565b60405190808252806020026020018201604052801561036257816020015b61034f610e00565b8152602001906001900390816103475790505b50905060005b848110156103d1576103a186868381811061038557610385611144565b905060200201602081019061039a919061115a565b85856109c8565b8282815181106103b3576103b3611144565b602002602001018190525080806103c990611177565b915050610368565b50949350505050565b60405163686dc35960e01b81526001600160a01b0380861660048301528416602482015260448101839052309063686dc35990606401600060405180830381600087803b15801561042a57600080fd5b505af192505050801561043b575060015b6104ba573d808015610469576040519150601f19603f3d011682016040523d82523d6000602084013e61046e565b606091505b5060448151101561047e57600080fd5b6004810190508080602001905181019061049891906111b4565b60405162461bcd60e51b81526004016104b1919061128d565b60405180910390fd5b6040516370a0823160e01b81526001600160a01b03848116600483015260009183918716906370a0823190602401602060405180830381865afa158015610505573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061052991906110ec565b6040805192909114156020830152016102c1565b600061055761271084610550858261111b565b9190610c66565b9392505050565b6040516370a0823160e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116600483015260009182918291908616906370a0823190602401602060405180830381865afa1580156105cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f091906110ec565b90503063da80e4dd867f00000000000000000000000000000000000000000000000000000000000000008761062581876112a0565b6040516001600160e01b031960e087901b1681526001600160a01b03948516600482015293909216602484015260448301526064820152608401600060405180830381600087803b15801561067957600080fd5b505af192505050801561068a575060015b61077d573d8080156106b8576040519150601f19603f3d011682016040523d82523d6000602084013e6106bd565b606091505b50602081511115610764576004810190506000818060200190518101906106e491906111b4565b60408051808201909152600f81526e1514905394d1915497d19052531151608a1b6020918201528151908201209091507f74070f287f0ec8bf99f019cdcc4e806934e7ec77618231bede1aa47e84c9848e01610743576001935061075e565b80604051631fa44c4b60e21b81526004016104b1919061128d565b5061077b565b8080602001905181019061077891906112c3565b93505b505b509250929050565b6040516370a0823160e01b81526001600160a01b03858116600483015260009182918291908716906370a0823190602401602060405180830381865afa1580156107d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107f791906110ec565b60405163686dc35960e01b81526001600160a01b0380891660048301528916602482015260448101879052909150309063686dc35990606401600060405180830381600087803b15801561084a57600080fd5b505af192505050801561085b575060015b61089c573d808015610889576040519150601f19603f3d011682016040523d82523d6000602084013e61088e565b606091505b508493506001925050610937565b6040516370a0823160e01b81526001600160a01b03888116600483015260009183918916906370a0823190602401602060405180830381865afa1580156108e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090b91906110ec565b610915919061111b565b90506000610923828861111b565b90506109328161271089610c66565b945050505b5094509492505050565b600060405163a9059cbb60e01b81526001600160a01b0384166004820152826024820152602060006044836000895af13d15601f3d11600160005114161716915050806109c25760405162461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b60448201526064016104b1565b50505050565b6109d0610e00565b826001600160a01b0316846001600160a01b031603610a025760405163100dac0560e11b815260040160405180910390fd5b6000610a2f7f00000000000000000000000000000000000000000000000000000000000000008686610c8c565b60408051600481526024810182526020810180516001600160e01b0316630dfe168160e01b17905290519192506000916001600160a01b03841691610a73916112de565b600060405180830381855afa9150503d8060008114610aae576040519150601f19603f3d011682016040523d82523d6000602084013e610ab3565b606091505b509150508051600003610ad9576040516310df924f60e31b815260040160405180910390fd5b600081806020019051810190610aef91906110ad565b9050600080826001600160a01b0316896001600160a01b031614610b1557600087610b19565b8660005b6040516370a0823160e01b815230600482015291935091506000906001600160a01b038b16906370a0823190602401602060405180830381865afa158015610b65573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b8991906110ec565b90506000869050806001600160a01b031663022c0d9f858530868e604051602001610bbe929190918252602082015260400190565b6040516020818303038152906040526040518563ffffffff1660e01b8152600401610bec94939291906112fa565b600060405180830381600087803b158015610c0657600080fd5b505af1925050508015610c17575060015b610c58573d808015610c45576040519150601f19603f3d011682016040523d82523d6000602084013e610c4a565b606091505b50610c5481610d65565b9850505b505050505050509392505050565b6000826000190484118302158202610c7d57600080fd5b50910281810615159190040190565b6000806000610c9b8585610d9d565b6040516bffffffffffffffffffffffff19606084811b8216602084015283901b1660348201529193509150869060480160405160208183030381529060405280519060200120604051602001610d439291906001600160f81b0319815260609290921b6bffffffffffffffffffffffff1916600183015260158201527f96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f603582015260550190565b60408051601f1981840301815291905280516020909101209695505050505050565b610d6d610e00565b815160a014610d7e57815182602001fd5b81806020019051810190610d929190611331565b92915050565b919050565b600080826001600160a01b0316846001600160a01b031603610dbe57600080fd5b826001600160a01b0316846001600160a01b031610610dde578284610de1565b83835b90925090506001600160a01b038216610df957600080fd5b9250929050565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915290565b6001600160a01b0381168114610e4357600080fd5b50565b600080600080600060808688031215610e5e57600080fd5b8535610e6981610e2e565b94506020860135935060408601359250606086013567ffffffffffffffff80821115610e9457600080fd5b818801915088601f830112610ea857600080fd5b813581811115610eb757600080fd5b896020828501011115610ec957600080fd5b9699959850939650602001949392505050565b600080600060608486031215610ef157600080fd5b8335610efc81610e2e565b92506020840135610f0c81610e2e565b929592945050506040919091013590565b60a08101610d92828480518252602081015160208301526040810151151560408301526060810151151560608301526080810151151560808301525050565b60008060008060608587031215610f7257600080fd5b843567ffffffffffffffff80821115610f8a57600080fd5b818701915087601f830112610f9e57600080fd5b813581811115610fad57600080fd5b8860208260051b8501011115610fc257600080fd5b60209283019650945050850135610fd881610e2e565b9396929550929360400135925050565b6020808252825182820181905260009190848201906040850190845b8181101561105b5761104883855180518252602081015160208301526040810151151560408301526060810151151560608301526080810151151560808301525050565b9284019260a09290920191600101611004565b50909695505050505050565b6000806000806080858703121561107d57600080fd5b843561108881610e2e565b9350602085013561109881610e2e565b93969395505050506040820135916060013590565b6000602082840312156110bf57600080fd5b815161055781610e2e565b600080604083850312156110dd57600080fd5b50508035926020909101359150565b6000602082840312156110fe57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610d9257610d92611105565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60006020828403121561116c57600080fd5b813561055781610e2e565b60006001820161118957611189611105565b5060010190565b60005b838110156111ab578181015183820152602001611193565b50506000910152565b6000602082840312156111c657600080fd5b815167ffffffffffffffff808211156111de57600080fd5b818401915084601f8301126111f257600080fd5b8151818111156112045761120461112e565b604051601f8201601f19908116603f0116810190838211818310171561122c5761122c61112e565b8160405282815287602084870101111561124557600080fd5b611256836020830160208801611190565b979650505050505050565b60008151808452611279816020860160208601611190565b601f01601f19169290920160200192915050565b6020815260006105576020830184611261565b80820180821115610d9257610d92611105565b80518015158114610d9857600080fd5b6000602082840312156112d557600080fd5b610557826112b3565b600082516112f0818460208701611190565b9190910192915050565b84815283602082015260018060a01b03831660408201526080606082015260006113276080830184611261565b9695505050505050565b600060a0828403121561134357600080fd5b60405160a0810181811067ffffffffffffffff821117156113665761136661112e565b80604052508251815260208301516020820152611385604084016112b3565b6040820152611396606084016112b3565b60608201526113a7608084016112b3565b6080820152939250505056fea164736f6c6343000813000a000000000000000000000000fe57a6ba1951f69ae2ed4abe23e0f095df500c04", - "nonce": "0x5", - "chainId": "0xdef1" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0xf2502207bfa2a305c3e410a8e4f6eefcef42fb2cfab3e02a19c4197591907111", - "transactionType": "CREATE", - "contractName": "FeeCollector", - "contractAddress": "0x33e885ed0ec9bf04ecfb19341582aadcb4c8a9e7", - "function": null, - "arguments": [ - "0x9701fb0aDe1E269c8f64Ec0C7b3cfADB31A13A52", - "0x28bD21bB4Ea4fDa370D8d7544992038375D8d456", - "0x000000000022D473030F116dDEE9F6B43aC78BA3", - "0x2D270e6886d130D724215A266106e6832161EAEd" - ], - "transaction": { - "from": "0x9701fb0ade1e269c8f64ec0c7b3cfadb31a13a52", - "gas": "0xf4a21", - "value": "0x0", - "input": "0x60c060405234801561001057600080fd5b50604051610d6d380380610d6d83398101604081905261002f916100bf565b600080546001600160a01b0319166001600160a01b03861690811782556040518692907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600180546001600160a01b0319166001600160a01b0394851617905582166080521660a05250610113565b80516001600160a01b03811681146100ba57600080fd5b919050565b600080600080608085870312156100d557600080fd5b6100de856100a3565b93506100ec602086016100a3565b92506100fa604086016100a3565b9150610108606086016100a3565b905092959194509250565b60805160a051610c1361015a6000396000818160ff01528181610414015281816105100152818161054601526106720152600081816101cd01526104ab0152610c136000f3fe6080604052600436106100e15760003560e01c80638da5cb5b1161007f578063b4a25ce711610059578063b4a25ce714610273578063bbf20c15146102a4578063d88d35de146102c4578063f2fde38b146102e457600080fd5b80638da5cb5b1461020f57806394a228b51461022f578063b2ef14e31461025357600080fd5b8063481fb142116100bb578063481fb14214610180578063628a4b2f1461019b578063647846a5146101bb57806365d82753146101ef57600080fd5b806312261ee7146100ed5780631ac169861461013e57806335a9e4df1461016057600080fd5b366100e857005b600080fd5b3480156100f957600080fd5b506101217f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561014a57600080fd5b5061015e61015936600461092a565b610304565b005b34801561016c57600080fd5b50600154610121906001600160a01b031681565b34801561018c57600080fd5b506101216001600160a01b0381565b3480156101a757600080fd5b5061015e6101b636600461098e565b610347565b3480156101c757600080fd5b506101217f000000000000000000000000000000000000000000000000000000000000000081565b3480156101fb57600080fd5b5061015e61020a3660046109f7565b6103da565b34801561021b57600080fd5b50600054610121906001600160a01b031681565b34801561023b57600080fd5b5061024560001981565b604051908152602001610135565b34801561025f57600080fd5b5061015e61026e366004610a39565b610474565b34801561027f57600080fd5b5061028d65ffffffffffff81565b60405165ffffffffffff9091168152602001610135565b3480156102b057600080fd5b5061015e6102bf366004610a65565b6104d6565b3480156102d057600080fd5b5061015e6102df366004610adf565b610631565b3480156102f057600080fd5b5061015e6102ff36600461098e565b6106df565b6000546001600160a01b031633146103375760405162461bcd60e51b815260040161032e90610b54565b60405180910390fd5b610342838383610754565b505050565b6000546001600160a01b031633146103715760405162461bcd60e51b815260040161032e90610b54565b600154604080516001600160a01b03928316815291831660208301527f736ee8e49f5bc52c4483e2bf96ce5c99a25af7c12037267ccde543b28ab63071910160405180910390a1600180546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146104045760405162461bcd60e51b815260040161032e90610b54565b60005b818110156103425761046c7f0000000000000000000000000000000000000000000000000000000000000000600085858581811061044757610447610b7a565b905060200201602081019061045c919061098e565b6001600160a01b031691906107e0565b600101610407565b6000546001600160a01b0316331461049e5760405162461bcd60e51b815260040161032e90610b54565b6104d26001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168383610860565b5050565b6000546001600160a01b031633146105005760405162461bcd60e51b815260040161032e90610b54565b60005b8181101561061e576105447f000000000000000000000000000000000000000000000000000000000000000060001985858581811061044757610447610b7a565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166387517c4584848481811061058557610585610b7a565b905060200201602081019061059a919061098e565b60015460405160e084901b6001600160e01b03191681526001600160a01b0392831660048201529082166024820152604481019190915265ffffffffffff6064820152608401600060405180830381600087803b1580156105fa57600080fd5b505af115801561060e573d6000803e3d6000fd5b5050600190920191506105039050565b5061062a858585610754565b5050505050565b6000546001600160a01b0316331461065b5760405162461bcd60e51b815260040161032e90610b54565b60405163cc53287f60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cc53287f906106a99085908590600401610b90565b600060405180830381600087803b1580156106c357600080fd5b505af11580156106d7573d6000803e3d6000fd5b505050505050565b6000546001600160a01b031633146107095760405162461bcd60e51b815260040161032e90610b54565b600080546001600160a01b0319166001600160a01b0383169081178255604051909133917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a350565b6001546040516000916001600160a01b03169083906107769087908790610bf6565b60006040518083038185875af1925050503d80600081146107b3576040519150601f19603f3d011682016040523d82523d6000602084013e6107b8565b606091505b50509050806107da5760405163cee8b77760e01b815260040160405180910390fd5b50505050565b600060405163095ea7b360e01b81526001600160a01b0384166004820152826024820152602060006044836000895af13d15601f3d11600160005114161716915050806107da5760405162461bcd60e51b815260206004820152600e60248201526d1054141493d59157d1905253115160921b604482015260640161032e565b600060405163a9059cbb60e01b81526001600160a01b0384166004820152826024820152602060006044836000895af13d15601f3d11600160005114161716915050806107da5760405162461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b604482015260640161032e565b60008083601f8401126108f357600080fd5b50813567ffffffffffffffff81111561090b57600080fd5b60208301915083602082850101111561092357600080fd5b9250929050565b60008060006040848603121561093f57600080fd5b833567ffffffffffffffff81111561095657600080fd5b610962868287016108e1565b909790965060209590950135949350505050565b6001600160a01b038116811461098b57600080fd5b50565b6000602082840312156109a057600080fd5b81356109ab81610976565b9392505050565b60008083601f8401126109c457600080fd5b50813567ffffffffffffffff8111156109dc57600080fd5b6020830191508360208260051b850101111561092357600080fd5b60008060208385031215610a0a57600080fd5b823567ffffffffffffffff811115610a2157600080fd5b610a2d858286016109b2565b90969095509350505050565b60008060408385031215610a4c57600080fd5b8235610a5781610976565b946020939093013593505050565b600080600080600060608688031215610a7d57600080fd5b853567ffffffffffffffff80821115610a9557600080fd5b610aa189838a016108e1565b9097509550602088013594506040880135915080821115610ac157600080fd5b50610ace888289016109b2565b969995985093965092949392505050565b60008060208385031215610af257600080fd5b823567ffffffffffffffff80821115610b0a57600080fd5b818501915085601f830112610b1e57600080fd5b813581811115610b2d57600080fd5b8660208260061b8501011115610b4257600080fd5b60209290920196919550909350505050565b6020808252600c908201526b15539055551213d49256915160a21b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b6020808252818101839052600090604080840186845b87811015610be9578135610bb981610976565b6001600160a01b0390811684528286013590610bd482610976565b16838601529183019190830190600101610ba6565b5090979650505050505050565b818382376000910190815291905056fea164736f6c6343000813000a0000000000000000000000009701fb0ade1e269c8f64ec0c7b3cfadb31a13a5200000000000000000000000028bd21bb4ea4fda370d8d7544992038375d8d456000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba30000000000000000000000002d270e6886d130d724215a266106e6832161eaed", - "nonce": "0x6", - "chainId": "0xdef1" - }, - "additionalContracts": [], - "isFixedGasLimit": false - }, - { - "hash": "0x99801785c90501cc3d16818fa04f0098ea1b2a69f559bd9b9416424323ec2a9f", - "transactionType": "CREATE2", - "contractName": "ERC7914Detector", - "contractAddress": "0xc470458fc6a7e43471b31e6a2eb2612215a7102e", - "function": null, - "arguments": [ - "0x000000009B1D0aF20D8C6d0A44e162d11F9b8f00" - ], - "transaction": { - "from": "0x9701fb0ade1e269c8f64ec0c7b3cfadb31a13a52", - "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", - "gas": "0x4e71f", - "value": "0x0", - "input": "0x000000000000000000000000000000000000000000000000000000000000000060a060405234801561001057600080fd5b506040516103c53803806103c583398101604081905261002f91610040565b6001600160a01b0316608052610070565b60006020828403121561005257600080fd5b81516001600160a01b038116811461006957600080fd5b9392505050565b608051610335610090600039600081816068015260d301526103356000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c806337e276381461003b57806385bb2fa814610063575b600080fd5b61004e6100493660046102b7565b6100a2565b60405190151581526020015b60405180910390f35b61008a7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161005a565b6000813b8082036100b65750600092915050565b6100bf83610135565b156101255760006100cf84610172565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031603610114575060019392505050565b61011d81610191565b949350505050565b61012e83610191565b9392505050565b60006017826001600160a01b03163b101561015257506000919050565b61ef0160f01b610161836102a6565b6001600160e81b0319161492915050565b60008061017e836102a6565b60481c6001600160a01b03169392505050565b6040805160006024820181905260448201819052606480830182905283518084039091018152608490920183526020820180516001600160e01b031663789ff70160e01b9081179091529251909291839182916001600160a01b038716916101f991906102e0565b600060405180830381855afa9150503d8060008114610234576040519150601f19603f3d011682016040523d82523d6000602084013e610239565b606091505b509150915081801561024c575080516020145b1561027f57600081806020019051810190610267919061030f565b90506001811161027d5750600195945050505050565b505b81801561028b57508051155b1561029b57506000949350505050565b506000949350505050565b60006017600080843c505060005190565b6000602082840312156102c957600080fd5b81356001600160a01b038116811461012e57600080fd5b6000825160005b8181101561030157602081860181015185830152016102e7565b506000920191825250919050565b60006020828403121561032157600080fd5b505191905056fea164736f6c6343000813000a000000000000000000000000000000009b1d0af20d8c6d0a44e162d11f9b8f00", - "nonce": "0x7", + "input": "0x00000000000000000000000000000000000000000000000000000000000000006102c080604052346104835761016081616269803803809161002182856104a2565b833981010312610483576040519061016082016001600160401b0381118382101761046f57604052610052816104c5565b8252610060602082016104c5565b9160208101928352610074604083016104c5565b9260408201938452610088606084016104c5565b93606083019485526080840151926080810193845260a08501519360a082019485526100b660c087016104c5565b9660c083019788526100ca60e088016104c5565b9160e084019283526100df61010089016104c5565b96876101008601526101086101406100fa6101208c016104c5565b9a8b610120890152016104c5565b998a6101408701526040519861011d8a610487565b6001600160a01b039081168a52998a1660208a019081529051945195519751604051919a9198908216979682169695821695911661015a89610487565b8852602088019687525192519151905160405190936001600160a01b039384169316608082016001600160401b0381118382101761046f5760405281526020810192835260408101918252606081019384526040516101ba6040826104a2565b600f815260208101906e2ab734bb32b939b0b62937baba32b960891b8252604051916101e76040846104a2565b600183526020830191601960f91b8352610200816104d9565b6101205261020d8461066f565b61014052519020918260e05251902080610100524660a0526040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261027660c0826104a2565b5190206080523060c052516001600160a01b0390811661016052905161018052905181166101a05290516101c0526101e091909152610200919091529051811661022052905181166102405290518116610260529051811661028052166102a052604051615ac190816107a8823960805181613dda015260a05181613e97015260c05181613da4015260e05181613e2901526101005181613e4f015261012051816104fc01526101405181610528015261016051818181612c3401528181612db00152613a3b015261018051818181612c5501528181612d8f0152613a1a01526101a05181611d7c01526101c05181611d5a01526101e0518181816105ee015281816107df01528181611213015281816117e001528181612721015281816144bf015281816147b2015281816148bd0152818161507e0152818161546d01526156020152610200518181816106b501528181610ddf01528181610e7001528181614530015281816146dd01528181615197015281816157780152615944015261022051818181611797015281816129c70152612b07015261024051818181610d37015281816128e401528181613192015261563801526102605181818161045e01528181611187015261252f015261028051818181610756015261127201526102a05181818161041a0152818161223301526123470152f35b634e487b7160e01b5f52604160045260245ffd5b5f80fd5b604081019081106001600160401b0382111761046f57604052565b601f909101601f19168101906001600160401b0382119082101761046f57604052565b51906001600160a01b038216820361048357565b908151602081105f14610553575090601f815111610513576020815191015160208210610504571790565b5f198260200360031b1b161790565b604460209160405192839163305a27a960e01b83528160048401528051918291826024860152018484015e5f828201840152601f01601f19168101030190fd5b6001600160401b03811161046f575f54600181811c91168015610665575b602082101461065157601f811161061f575b50602092601f82116001146105c057928192935f926105b5575b50508160011b915f199060031b1c1916175f5560ff90565b015190505f8061059d565b601f198216935f8052805f20915f5b86811061060757508360019596106105ef575b505050811b015f5560ff90565b01515f1960f88460031b161c191690555f80806105e2565b919260206001819286850151815501940192016105cf565b5f8052601f60205f20910160051c810190601f830160051c015b8181106106465750610583565b5f8155600101610639565b634e487b7160e01b5f52602260045260245ffd5b90607f1690610571565b908151602081105f1461069a575090601f815111610513576020815191015160208210610504571790565b6001600160401b03811161046f57600154600181811c9116801561079d575b602082101461065157601f811161076a575b50602092601f821160011461070957928192935f926106fe575b50508160011b915f199060031b1c19161760015560ff90565b015190505f806106e5565b601f1982169360015f52805f20915f5b868110610752575083600195961061073a575b505050811b0160015560ff90565b01515f1960f88460031b161c191690555f808061072c565b91926020600181928685015181550194019201610719565b60015f52601f60205f20910160051c810190601f830160051c015b81811061079257506106cb565b5f8155600101610785565b90607f16906106b956fe60806040526004361015610022575b3615610018575f80fd5b610020611794565b005b5f3560e01c80631a27b2011461010157806324856bc3146100fc5780633593564c146100f757806344684dc3146100f25780638021fef7146100ed578063817122dc146100e857806384b0196e146100e357806391dd7346146100de578063ab769d37146100d9578063d04d79a2146100d4578063d0c9f6cb146100cf578063d737d0c7146100ca578063dc4c90d3146100c55763fa461e330361000e5761080e565b6107ca565b610798565b610741565b6106e4565b6106a0565b6105bc565b6104e4565b610449565b610405565b61036a565b6102a9565b6101f8565b61014d565b6001600160a01b031690565b6001600160a01b0381160361012357565b5f80fd5b359061013282610112565b565b6001600160a01b03165f90815260026020526040902090565b346101235760403660031901126101235760043561016a81610112565b6024359060018060a01b03165f52600260205260405f20905f52602052602060ff60405f2054166040519015158152f35b9181601f84011215610123578235916001600160401b038311610123576020838186019501011161012357565b9181601f84011215610123578235916001600160401b038311610123576020808501948460051b01011161012357565b6040366003190112610123576004356001600160401b0381116101235761022390369060040161019b565b6024356001600160401b038111610123576102429036906004016101c8565b913330146102a0575f80516020615a158339815191525c6001600160a01b03166102915761027f93335f80516020615a158339815191525d610b4e565b5f5f80516020615a158339815191525d005b6337affdbf60e11b5f5260045ffd5b61002093610b4e565b6060366003190112610123576004356001600160401b038111610123576102d490369060040161019b565b6024356001600160401b038111610123576102f39036906004016101c8565b916044354211610339573330146102a0575f80516020615a158339815191525c6001600160a01b03166102915761027f93335f80516020615a158339815191525d610b4e565b632dfb7c8b60e11b5f5260045ffd5b8015150361012357565b6084359061013282610348565b359061013282610348565b610100366003190112610123576004356001600160401b0381116101235761039690369060040161019b565b906024356001600160401b038111610123576103b69036906004016101c8565b926044356064356103c5610352565b9060a43560c435979093906001600160401b038911610123576103ef61002099369060040161019b565b97909660e4359961132d565b5f91031261012357565b34610123575f366003190112610123576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610123575f366003190112610123576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b90602080835192838152019201905f5b8181106104ce5750505090565b82518452602093840193909201916001016104c1565b34610123575f366003190112610123576105766105207f00000000000000000000000000000000000000000000000000000000000000006134cb565b6105a461054c7f00000000000000000000000000000000000000000000000000000000000000006135ae565b610584610557611598565b91604051958695600f60f81b875260e0602088015260e087019061048d565b90858203604087015261048d565b904660608501523060808501525f60a085015283820360c08501526104b1565b0390f35b9060206105b992818152019061048d565b90565b34610123576020366003190112610123576004356001600160401b038111610123576105ec90369060040161019b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036106915761062591613666565b90818303610682575f5b838110610656576105a4604051610647602082611530565b5f8152604051918291826105a8565b8061067c6106676001938789610ad9565b3560f81c610676838787610b1c565b91613fcf565b0161062f565b63aaad13f760e01b5f5260045ffd5b63570c108560e11b5f5260045ffd5b34610123575f366003190112610123576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610123575f36600319011261012357604080516001600160a01b035f80516020615a958339815191525c1681525f80516020615a558339815191525c60208201525f80516020615a758339815191525c91810191909152606090f35b34610123575f366003190112610123576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b6001600160a01b03909116815260200190565b34610123575f366003190112610123576040516001600160a01b035f80516020615a158339815191525c168152602090f35b34610123575f366003190112610123576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610123576060366003190112610123576024356004356044356001600160401b0381116101235761084490369060040161019b565b92905f831392831580610a61575b610a5257610899926108819161086a8785018561166b565b90996001600160a01b039092169690959250611c04565b92909161088e84846136fe565b999198908a8a611cf0565b336001600160a01b0390911603610a43578015610a2a5790978891906001600160a01b03818116908a16105b156108dd575050505050505061002093503391611dc4565b909192939495989997506108f2866042111590565b1561099e57508651610944575b5050509461092361091661091e9361002098611e31565b939092611e47565b6116ed565b94801561093c5761093390611779565b945b3390611ee3565b505f94610935565b61095d610967938a93610962935f1461099757506116ed565b611702565b611739565b6109718686611757565b5180821061097f57806108ff565b631c1763d160e11b5f5261099492508661176b565b5ffd5b90506116ed565b969450909192505f80516020615a358339815191529796975c8711610a1b5783516109d4575b5050505061002093503391611dc4565b8661096261095d6109f7958b956109f1955f1461099757506116ed565b92611757565b51808210610a065780806109c4565b631c1763d160e11b5f5261099492508561176b565b6339cedf2960e11b5f5260045ffd5b91978892906001600160a01b03898116908216106108c5565b6332b13d9160e01b5f5260045ffd5b63316cf0eb60e01b5f5260045ffd5b505f831315610852565b929190333014610abc575f80516020615a158339815191525c6001600160a01b031661029157610aaa93335f80516020615a158339815191525d610b4e565b5f5f80516020615a158339815191525d565b61013293610b4e565b634e487b7160e01b5f52603260045260245ffd5b90821015610ae5570190565b610ac5565b903590601e198136030182121561012357018035906001600160401b0382116101235760200191813603831361012357565b90821015610ae557610b339160051b810190610aea565b9091565b6040906105b993928152816020820152019061048d565b90939284810361131e575f5b858110610b6957505050509050565b610b74818785610ad9565b35610b80828487610b1c565b6060929160019160f884901c607f1660218110156112a557601081101561113f576008811015610f265780610c495750610bca82610bc183610bfc95611c8f565b92909382612806565b92909360808301355f14610c4257610be0611bf2565b925b604081013590610bf760208201359135612984565b6132cf565b159081610c33575b50610c125750600101610b5a565b604051632c4029e960e01b8152918291610c2f9160048401610b37565b0390fd5b600160ff1b161590505f610c04565b3092610be2565b60018103610ca15750610c6382610bc183610c9595611c8f565b92909360808301355f14610c9a57610c79611bf2565b925b604081013590610c9060208201359135612984565b613200565b610bfc565b3092610c7b565b60028103610cd2575050610c9590610cb7611bf2565b90604081013591610ccb6020830135612984565b913561318d565b9192909160038103610d705750505f92935090610d32610cf3849383611c64565b610d24610d01939293611bf2565b916040519485936020850197632a2d80d160e01b89528035019060248601611aab565b03601f198101835282611530565b5190827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af190610d6a6118d5565b91610bfc565b9092915060048103610e9f575080356001600160a01b038116151580610e6d575b610dbc575b81610da76020610c95940135612984565b6040909101356001600160a01b0316916130c3565b6040516312f7fd6760e11b81529160208380610ddb8560048301610785565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa8015610e6857610c95935f91610e3a575b506001600160a01b038116610e32575b509150610d96565b91505f610e2a565b610e5b915060203d8111610e61575b610e538183611530565b810190611a96565b5f610e1a565b503d610e49565b6119cb565b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161515610d91565b60058103610ec65750806040610c9592013590610ebf6020820135612984565b9035613038565b60068103610eed5750806040610c9592013590610ee66020820135612984565b9035612fc2565b60078103610f145750806040610c9592013590610f0d6020820135612984565b9035612f08565b636bb50f4f60e11b5f5260045260245ffd5b90919060088103610f8657508181610f44610c9594610f4d946127e6565b93909282612806565b92909360808301355f14610f7f57610f63611bf2565b925b604081013590610f7a60208201359135612984565b612d53565b3092610f65565b60098103610fda57508181610f44610c9594610fa1946127e6565b92909360808301355f14610fd357610fb7611bf2565b925b604081013590610fce60208201359135612984565b612c11565b3092610fb9565b909290600a81036110275750505f92935081610ffa610d32928594611c39565b929091610d24611008611bf2565b9460405194859360208501976302b67b5760e41b895260248601611a48565b909290600b810361104c5750610c95915061104760208201359135612984565b612aec565b600c810361106e5750610c95915061106960208201359135612984565b6129b6565b600d81036110935750610c9591611084916127c9565b9061108d611bf2565b916128d5565b9092509050600e8103610f1457506040516370a0823160e01b815290602082806110c1843560048301610785565b0381848401356001600160a01b03165afa918215610e68575f9261110c575b5060400135111580610c95576040516351940b3960e11b6020820152909250610d6a8160248101610d24565b60409192506111319060203d8111611138575b6111298183611530565b8101906119bc565b91906110e0565b503d61111f565b90919060108103611155575090610c95916126f3565b93945092909150601181036111ba57505f91908161117384936126d7565b61118260405180938193611904565b0390827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af190610d6a6118d5565b601281036111d957505f919082916111736111d3611bf2565b826124e0565b601381036112465750505f809160405161120e81610d24602082019463313b65df60e11b865260a08101359060248401611929565b5190827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af190610d6a6118d5565b60148103610f1457505f91829161125d8183612401565b479161126e60405180938193611904565b03917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af190610d6a6118d5565b939490939192604083101561130457505060218103610f1457506112f5610d246112d15f948594613666565b60409593959491945194859360208501976324856bc360e01b89526024860161182f565b519082305af190610d6a6118d5565b9290949391604081145f14610f14575090610c9591612201565b631fec674760e31b5f5260045ffd5b95909698929a999791978042116103395761134a8c9a9b9c611b61565b5f5b8b81106114cb5750868661140b61141b958f611421999896610d24918f8f61139a906114139a60405161138781610d24602082018095611b93565b51902096156114c45733925b36916115ce565b6020815191012097604051978896602088019a8b93909796959260e095926101008601997f4b503a2e339bf072a489301f3eec7abaefc520266c462796ed9267bbcc6e407c8752602087015260408601526060850152608084015260018060a01b031660a083015260c08201520152565b51902061348f565b9236916115ce565b906134b5565b60018801611469575b61146197505f80516020615a958339815191525d5f80516020615a558339815191525d5f80516020615a758339815191525d610a6b565b610132611bc0565b61148d6114868961147984610134565b905f5260205260405f2090565b5460ff1690565b6114b6576114b16114a46114619961147984610134565b805460ff19166001179055565b61142a565b623f613760e71b5f5260045ffd5b5f92611393565b806114e08d9f9e9d600193611393918f610b1c565b602081519101206114f18285611757565b52019c9a9b9c61134c565b634e487b7160e01b5f52604160045260245ffd5b60a081019081106001600160401b0382111761152b57604052565b6114fc565b601f909101601f19168101906001600160401b0382119082101761152b57604052565b604051906101326101a083611530565b60405190610132606083611530565b6040519061013260a083611530565b6001600160401b03811161152b5760051b60200190565b604051906115a7602083611530565b5f808352366020840137565b6001600160401b03811161152b57601f01601f191660200190565b9291926115da826115b3565b916115e86040519384611530565b829481845281830111610123578281602093845f960137010152565b9080601f83011215610123578160206105b9933591016115ce565b92919061162b81611581565b936116396040519586611530565b602085838152019160051b810192831161012357905b82821061165b57505050565b813581526020918201910161164f565b6080818303126101235780356001600160401b0381116101235782611691918301611604565b9260208201356116a081610112565b9260408301356001600160401b03811161012357830181601f82011215610123576060918160206116d39335910161161f565b92013590565b634e487b7160e01b5f52601160045260245ffd5b600160ff1b81146116fd575f0390565b6116d9565b6a0c097ce7bc90715b34b9f160241b8082029291801590840490911417156116fd57565b818102929181159184041417156116fd57565b8115611743570490565b634e487b7160e01b5f52601260045260245ffd5b8051821015610ae55760209160051b010190565b600452602452604452606490565b5f198101919082116116fd57565b919082039182116116fd57565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161415806117dc575b6117cd57565b631c5deabb60e11b5f5260045ffd5b50337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614156117c7565b908060209392818452848401375f828201840152601f01601f1916010190565b9391906118449160408652604086019161180f565b926020818503910152808352602083019060208160051b85010193835f91601e1982360301905b84841061187c575050505050505090565b90919293949596601f19828203018752873583811215610123578401602081019190356001600160401b038111610123578036038313610123576118c6602092839260019561180f565b9901970195940192919061186b565b3d156118ff573d906118e6826115b3565b916118f46040519384611530565b82523d5f602084013e565b606090565b908092918237015f815290565b62ffffff81160361012357565b8060020b0361012357565b90929160a0906119b0608060c0850196803561194481610112565b600180871b03168652602081013561195b81610112565b600180871b0316602087015262ffffff604082013561197981611911565b166040870152606081013561198d8161191e565b60020b606087015201356119a081610112565b6001600160a01b03166080850152565b600180831b0316910152565b90816020910312610123575190565b6040513d5f823e3d90fd5b359065ffffffffffff8216820361012357565b65ffffffffffff611a42606080938035611a0281610112565b6001600160a01b031686526020810135611a1b81610112565b6001600160a01b0316602087015283611a36604083016119d6565b166040870152016119d6565b16910152565b60a06105b9959361010093600180841b03168352611a6960208401826119e9565b6080810135611a7781610112565b600180841b031682840152013560c08201528160e0820152019161180f565b9081602091031261012357516105b981610112565b6001600160a01b0390911681526060602082015290939260c08201929091853536879003601e190181121561012357860160208101949035906001600160401b038211610123578160071b360386136101235781906060808501525260e0820194905f5b818110611b4357505050604086611b2f6119a060206105b9999a01610127565b013560a0820152604081850391015261180f565b90919560808082611b566001948b6119e9565b019701929101611b0f565b90611b6b82611581565b611b786040519182611530565b8281528092611b89601f1991611581565b0190602036910137565b80516020909101905f5b818110611baa5750505090565b8251845260209384019390920191600101611b9d565b5f5f80516020615a958339815191525d5f5f80516020615a558339815191525d5f5f80516020615a758339815191525d565b5f80516020615a158339815191525c90565b909163ffffffff82351682019263ffffffff84351692602080860195850101910110611c2c57565b633b99b53d5f526004601cfd5b909163ffffffff60c08301351682019263ffffffff84351692602080860195850101910110611c2c57565b909163ffffffff60208301351682019263ffffffff84351692602080860195850101910110611c2c57565b909163ffffffff60608301351682019263ffffffff84351692602080860195850101910110611c2c57565b6001600160f81b0319815260609190911b6001600160601b03191660018201526015810191909152603581019190915260550190565b6105b992611da992906001600160a01b0380831690841611611dae575b604080516001600160a01b0394851660208201908152949093169083015262ffffff166060808301919091528152611d46608082611530565b519020604051611da181610d2460208201947f0000000000000000000000000000000000000000000000000000000000000000907f000000000000000000000000000000000000000000000000000000000000000087611cba565b519020610106565b610106565b909190611d0d565b90601482018092116116fd57565b909291906001600160a01b0384163003611de2576101329350613038565b91926001600160a01b038411611e0557610132936001600160a01b03169261318d565b63c4bd89a960e01b5f5260045ffd5b909291928360041161012357831161012357600401916003190190565b9190918260171161012357601701916016190190565b600160ff1b8110156101235790565b959493611e7260609492611e8f9460808a5260808a019161180f565b6001600160a01b03909216602088015286820360408801526104b1565b930152565b9190826040910312610123576020825192015190565b6001600160a01b039182168152911515602083015260408201929092529116606082015260a0608082018190526105b99291019061048d565b92919395949094611ef483866136fe565b6001600160a01b038084169082161098899590939092611f15929091611cf0565b611f1e90610106565b611f2790610106565b94845f14604098610d245f96611f7195611f5594611fb9576401000276a49e5b8d5196879560208701611e56565b8751630251596160e31b8152998a978896879560048701611eaa565b03925af18015610e68575f925f91611f8857509192565b9050611fad91925060403d604011611fb2575b611fa58183611530565b810190611e94565b919092565b503d611f9b565b73fffd8963efd1fc6a506488495d951d5263988d259e611f47565b91939490611fe284866136fe565b6001600160a01b038082169084161097889490939092612003929091611cf0565b61200c90610106565b61201590610106565b93835f1496611f555f94610d2486611f719560409c611fb9576401000276a49e8d5196879560208701611e56565b63ffffffff81160361012357565b359061013282612043565b602081830312610123578035906001600160401b03821161012357016101a0818303126101235761208b611553565b9161209582610127565b83526120a360208301610127565b60208401526120b460408301610127565b60408401526120c560608301610127565b60608401526080820135608084015260a082013560a084015260c082013560c08401526120f460e08301610127565b60e08401526121066101008301612051565b6101008401526121196101208301612051565b61012084015261212c6101408301612051565b610140840152610160820135916001600160401b0383116101235761215961018092612165948301611604565b6101608501520161035f565b61018082015290565b6001600160a01b039182168152918116602083015291821660408201529181166060830152608082019290925260a081019290925260c0820192909252911660e08201526105b994936101809391926121f3926121e5916121d79063ffffffff16610100870152565b63ffffffff16610120850152565b63ffffffff16610140830152565b81610160820152019061048d565b61220d9181019061205c565b6080810151905f600160ff1b831461237a575b61018082015115612330575081905b80517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316929061226690610106565b6122736020840151610106565b6122806040850151610106565b9161228e6060860151610106565b9460a08101519060c08101516122a760e0830151610106565b61010083015163ffffffff16906122c661012085015163ffffffff1690565b926101606122dc61014087015163ffffffff1690565b950151958c3b1561012357604051633dc9c91960e11b81529d8e9c8d9b8c9b6123089b60048e0161216e565b03915a945f95f18015610e685761231c5750565b8061232a5f61013293611530565b806103fb565b9061237583612345611da96040850151610106565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690613730565b61222f565b915061238a610180820151151590565b15612396574791612220565b6123a9611da9611da96040840151610106565b602060405180926370a0823160e01b825281806123c93060048301610785565b03915afa908115610e68575f916123e2575b5091612220565b6123fb915060203d602011611138576111298183611530565b5f6123db565b80356322b9af7160e01b6001600160e01b03198216016124c4575061242d826124339361242d93611e14565b90611c04565b5f5b81811061244157505050565b61246f612469612463612455848688610ad9565b356001600160f81b03191690565b60f81c90565b60ff1690565b80159081156124b9575b81156124ae575b81156124a3575b5061249457600101612435565b635d1d0f9f60e01b5f5260045ffd5b60039150145f612487565b600181149150612480565b600481149150612479565b63f801e52560e01b5f526001600160e01b03191660045260245ffd5b80356001600160e01b031916630624e65f60e11b811480156126c7575b80156126b7575b156126a557506040516331a9108f60e11b815260049182013591810182905290916001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690602083602481855afa928315610e68575f93612684575b506001600160a01b03818116908416811492908315612624575b5082156125a8575b50501590505b6125965750565b63bb25d4c560e01b5f5260045260245ffd5b60405163e985e9c560e01b81526001600160a01b0394851660048201529190931660248201529160209150829060449082905afa8015610e685761258f915f916125f5575b505f80612589565b612617915060203d60201161261d575b61260f8183611530565b810190612abc565b5f6125ed565b503d612605565b60405163020604bf60e21b81526004810187905291935090602081602481875afa908115610e68575f91612665575b506001600160a01b031614915f612581565b61267e915060203d602011610e6157610e538183611530565b5f612653565b61269e91935060203d602011610e6157610e538183611530565b915f612567565b63f801e52560e01b5f5260045260245ffd5b50630852cd8d60e31b8114612504565b5063fc6f786560e01b81146124fd565b356001600160e01b03191663853d008560e01b81016126a55750565b6040516348c8949160e01b815260206004820152915f918391829161271c91602484019161180f565b0381837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af18015610e68576127585750565b3d805f833e6127678183611530565b810190602081830312610123578051906001600160401b038211610123570181601f8201121561012357805161279c816115b3565b926127aa6040519485611530565b81845260208284010111610123575f928160208094018483015e010152565b918235830191602083359481850194038560051b010111611c2c57565b916060830135830191602083359481850194038560051b010111611c2c57565b9160a0830135830191602083359481850194038560051b010111611c2c57565b9190811015610ae55760071b0190565b356105b981610112565b60208082528101839052604001915f5b81811061285d5750505090565b909192608080600192863561287181610112565b848060a01b03168152602087013561288881610112565b848060a01b0316602082015260408701356128a281610112565b848060a01b0316604082015260608701356128bc81610112565b848060a01b031660608201520194019101919091612850565b90915f5b8381106129485750507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691823b1561012357612937925f9283604051809681958294630d58b1db60e01b845260048401612840565b03925af18015610e685761231c5750565b61295b612956828686612826565b612836565b6001600160a01b03838116911603612975576001016128d9565b63e700287760e01b5f5260045ffd5b6001600160a01b038116600181036129aa5750505f80516020615a158339815191525c90565b6002036105b957503090565b6040516370a0823160e01b815290917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169060208380612a013060048301610785565b0381855afa928315610e68575f93612a9b575b508210612a8c5781612a2557505050565b803b1561012357604051632e1a7d4d60e01b815260048101839052905f908290602490829084905af18015610e6857612a78575b50306001600160a01b03831603612a6f575b5050565b6101329161381f565b8061232a5f612a8693611530565b5f612a59565b631a84bc4160e21b5f5260045ffd5b612ab591935060203d602011611138576111298183611530565b915f612a14565b9081602091031261012357516105b981610348565b6001600160a01b039091168152602081019190915260400190565b90600160ff1b8103612bd1575047905b81612b05575050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691823b1561012357604051630d0e30db60e41b81525f8160048185885af18015610e6857612bbd575b50306001600160a01b03831603612b6f575b505050565b612b93926020925f60405180968195829463a9059cbb60e01b845260048401612ad1565b03925af18015610e6857612ba5575b50565b612ba29060203d60201161261d5761260f8183611530565b8061232a5f612bcb93611530565b5f612b58565b9047821115612afc57631a84bc4160e21b5f5260045ffd5b9015610ae55790565b9060011015610ae55760200190565b9190811015610ae55760051b0190565b9290939196959460028310612d445786151580612d30575b612d215793965f94907f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000005f1986018681116116fd579190825b612cbf575050508811612cb0576101329785612cab92612ca66129568787612be9565b611dc4565b6138d7565b6345585e0b60e11b5f5260045ffd5b919a9750905f198b018b81116116fd57612d088c612cf6612ce4612d0f948b8b612c01565b3591612cef83610112565b8a8a612c01565b3590612d0182610112565b8486614214565b919a6142a8565b9a80156116fd575f1901919082612c83565b630c12651d60e31b5f5260045ffd5b505f1983018381116116fd57871415612c29565b632b94ab4360e21b5f5260045ffd5b9294969095919660028510612d445781151580612ef6575b612d2157612dd4612d7f6129568789612be9565b612d8c612956888a612bf2565b907f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000613cc1565b968781612edd575b505050612dfb611da9611da9612956612df488611779565b888a612c01565b91604051966370a0823160e01b885260208880612e1b8860048301610785565b0381875afa958615610e6857612e5f985f97612eaf575b509085612e44949392602098996138d7565b60405180809681946370a0823160e01b835260048301610785565b03915afa8015610e6857612e7a925f91612e90575b50611787565b10612e8157565b631093d5f360e31b5f5260045ffd5b612ea9915060203d602011611138576111298183611530565b5f612e74565b60209750612e4494939291612ed188928a3d8c11611138576111298183611530565b98509192939450612e32565b612eee92612ca6612956898b612be9565b5f8087612ddc565b50612f0085611779565b821415612d6b565b670de0b6b3a76400008311612fb3576001600160a01b031680612f4a5750612f44612f366101329347611726565b670de0b6b3a7640000900490565b9061381f565b906040516370a0823160e01b815260208180612f693060048301610785565b0381865afa908115610e685761013294612f8e92612f36925f91612f94575b50611726565b91613cd8565b612fad915060203d602011611138576111298183611530565b5f612f88565b6390f5ebeb60e01b5f5260045ffd5b6001600160a01b031680612fde5750612f446101329247613d47565b6040516370a0823160e01b8152306004820152909190602081602481865afa938415610e685761013294612f8e925f91613019575b50613d47565b613032915060203d602011611138576111298183611530565b5f613013565b9091906001600160a01b03168061305357506101329161381f565b600160ff1b8214613069575b9161013292613cd8565b6040516370a0823160e01b815230600482015292909150602083602481855afa8015610e6857610132935f916130a4575b509190925061305f565b6130bd915060203d602011611138576111298183611530565b5f61309a565b9091906001600160a01b0316806130e6575047908110612a8c5780612a6f575050565b91604051916370a0823160e01b8352602083806131063060048301610785565b0381875afa928315610e68575f93613142575b508210613133578161312a57505050565b61013292613cd8565b630ceb95c760e31b5f5260045ffd5b61315c91935060203d602011611138576111298183611530565b915f613119565b6001600160a01b039182168152918116602083015291821660408201529116606082015260800190565b9290917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690813b15610123575f80946131e560405197889687958694631b63c28b60e11b865260048601613163565b03925af18015610e68576131f65750565b5f61013291611530565b9492909695939193861515806132a5575b6132965761322761322d9161325198369161161f565b94613d82565b8351801561328e5761323e90611779565b945b61324c61091e89611e47565b611ee3565b9091901561327f5750613263906116ed565b0361327057610132613d70565b636a70124760e11b5f5260045ffd5b61328991506116ed565b613263565b505f94613240565b630e0fbd8760e21b5f5260045ffd5b506132b96132b4601789611726565b611db6565b831415613211565b5f1981146116fd5760010190565b97939795909192949587151596878098613478575b613296578998600160ff1b851461340b575b909950879391965f92808b8a61330a611598565b9e8f9061335493613346935b61332a613324836042111590565b98611e47565b908815613401575061333e30925b8a613d93565b929091611fd4565b9091901561099757506116ed565b966133c6575b50156133a557309961336b91611e31565b9190978892809c879561337d906132c1565b9c8d956133549461333e613346959e50509c9e509495969290919e8f90928e9a95938e613316565b5050505093509350935050106133b757565b631ce9aa4b60e11b5f5260045ffd5b6133d39061096288611702565b6133de858588612c01565b358082106133ec575061335a565b632d0a7cdd60e21b5f5261099492508561176b565b61333e9092613338565b935097611da9611da961341e9289614419565b976020604051809a6370a0823160e01b8252818061343f3060048301610785565b03915afa8015610e68578a995f91613459575b50936132f6565b613472915060203d602011611138576111298183611530565b5f613452565b506134876132b460178b611726565b8a14156132e4565b60429061349a613da1565b906040519161190160f01b8352600283015260228201522090565b6105b9916134c291613ebd565b90929192613f15565b60ff81146134dc576105b990613f91565b506040515f80548060011c916001821680156135a4575b60208410811461359057838552849260208401919081156135775750600114613524575b506105b992500382611530565b5f80805291507f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b84831061356057506105b99350015f613517565b80548284015285935060209092019160010161354c565b60ff19168252506105b993151560051b0190505f613517565b634e487b7160e01b5f52602260045260245ffd5b92607f16926134f3565b60ff81146135bf576105b990613f91565b506040515f6001548060011c9160018216801561365c575b6020841081146135905783855284926020840191908115613577575060011461360757506105b992500382611530565b60015f90815291507fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b84831061364557506105b99350015f613517565b805482840152859350602090920191600101613631565b92607f16926135d7565b604081351891606082019363ffffffff6040840135169363ffffffe0601f8601169060608201602086013518179084019260608401359463ffffffff861694641fffffffe0608082019760051b1680915f925b8084106136d1575060809250010191011017611c2c57565b90916020809163ffffffe0601f60808089890101359b848d18179b880101350116010193019291906136b9565b90602b1161372157803591601762ffffff8460601c9460481c1692013560601c90565b633b99b53d60e01b5f5260045ffd5b919091613797604051926137688461375a602082019363095ea7b360e01b85528860248401612ad1565b03601f198101865285611530565b83516001600160a01b038416915f91829182855af1906137866118d5565b826137ed575b50816137e657501590565b6137a057505050565b60405163095ea7b360e01b60208201526001600160a01b0390931660248401525f6044840152610132926137e1906137db8160648101610d24565b826141a9565b6141a9565b3b15919050565b80519192508115918215613805575b5050905f61378c565b6138189250602080918301019101612abc565b5f806137fc565b5f80809381935af11561382e57565b60405162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b6044820152606490fd5b51906001600160701b038216820361012357565b908160609103126101235761389181613869565b9160406138a060208401613869565b9201516105b981612043565b90926080926105b995948352602083015260018060a01b03166040820152816060820152019061048d565b949392939190916139016138ee6129568589612be9565b6138fb612956868a612bf2565b90614323565b50915f19840195600119850191831515985f955b898710613929575050505050505050505050565b613937612956888a85612c01565b9361394961295660018a018b86612c01565b604051630240bc6b60e21b8152909590916001600160a01b038116606084600481845afa918215610e68576139c7945f905f94613c8d575b506001600160a01b03948516966001600160701b039485169516871493168315613c83579060209194965b60405180809881946370a0823160e01b835260048301610785565b03915afa978815610e68578f6139ef8f9a978f978e9988915f91613c65575b5003968761433a565b9315613c5d578c5f94965b8c821015613c4f57613a17612956613a5f9260028501908d612c01565b847f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000614395565b9890985b9b83613c39575b5050505f14613bd2576040516370a0823160e01b81526001600160a01b039190911694909260208480613aa08a60048301610785565b0381895afa938415610e68575f94613bb2575b50613abc611598565b92803b15610123575f92838993613ae96040519788968795869463022c0d9f60e01b8652600486016138ac565b03925af18015610e6857613b9e575b50602060405180946370a0823160e01b82528180613b198960048301610785565b03915afa908115610e6857613b47935f92613b7e575b5090036a0c097ce7bc90715b34b9f160241b02611739565b613b5288888c612c01565b35808210613b695750506001905b96019592613915565b6365d564a560e01b5f5261099492508861176b565b613b9791925060203d8111611138576111298183611530565b905f613b2f565b8061232a5f613bac93611530565b5f613af8565b613bcb91945060203d8111611138576111298183611530565b925f613ab3565b5093929150613bdf611598565b93803b15610123575f92838593613c0c6040519889968795869463022c0d9f60e01b8652600486016138ac565b03925af1918215610e6857600192613c25575b50613b60565b8061232a5f613c3393611530565b5f613c1f565b613c439350612c01565b3515158c8f8d90613a6a565b5050955087958c8c5f613a63565b8c5f966139fa565b613c7d915060203d8111611138576111298183611530565b5f6139e6565b95602091906139ac565b9050613cb191935060603d8111613cba575b613ca98183611530565b81019061387d565b5092905f613981565b503d613c9f565b90916105b993613cd091614323565b9290916143a6565b5f91826044926020956040519363a9059cbb60e01b8552600485015260248401525af13d15601f3d1160015f511416171615613d1057565b60405162461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b6044820152606490fd5b6127108211613d615761271091613d5d91611726565b0490565b636f5500f360e11b5f5260045ffd5b5f5f80516020615a358339815191525d565b5f80516020615a358339815191525d565b90602b116101235790602b90565b307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161480613e94575b15613dfc577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a08152613e8e60c082611530565b51902090565b507f00000000000000000000000000000000000000000000000000000000000000004614613dd3565b8151919060418303613eed57613ee69250602082015190606060408401519301515f1a90614428565b9192909190565b50505f9160029190565b60041115613f0157565b634e487b7160e01b5f52602160045260245ffd5b613f1e81613ef7565b80613f27575050565b613f3081613ef7565b60018103613f475763f645eedf60e01b5f5260045ffd5b613f5081613ef7565b60028103613f6b575063fce698f760e01b5f5260045260245ffd5b80613f77600392613ef7565b14613f7f5750565b6335e2f38360e21b5f5260045260245ffd5b60ff811690601f8211613fc05760405191613fad604084611530565b6020808452838101919036833783525290565b632cd44ac360e21b5f5260045ffd5b909190600b8110156140635760078103613ff65750613ff19061013292614b43565b614e86565b60068103614011575061400c9061013292614913565b614d65565b6009810361402c57506140279061013292614b43565b614ba8565b916008831461404f57505061099491505b635cda29d760e01b5f52600452602490565b61013292509061405e91614913565b6149ca565b600c81036140b25750614075916148a3565b9061407f816148b6565b9180831161409b57509061013291614095611bf2565b906147a9565b6312bacdd360e01b5f52600452602482905260445ffd5b600f810361410157506140c4916148a3565b906140ce816144b8565b918083106140ea575090610132916140e4611bf2565b9061452c565b638b063d7360e01b5f52600452602482905260445ffd5b600b8103614135575061412f61411d61412992610132946144a0565b938294939291936146bf565b926146da565b916147a9565b600e8103614167575061415b61415161416192610132946144a0565b9282949291612984565b926146ab565b9161452c565b916010831461417c575050610994915061403d565b610132925061419161419a92614161926144a0565b92919390612984565b916141a4846144b8565b613d47565b5f806141d19260018060a01b03169360208151910182865af16141ca6118d5565b90836157e1565b80519081151591826141f9575b50506141e75750565b635274afe760e01b5f5260045260245ffd5b61420c9250602080918301019101612abc565b155f806141de565b9193929061422561422d9286614323565b9181946143a6565b604051630240bc6b60e21b815290936060826004816001600160a01b0389165afa918215610e68575f905f93614283575b506001600160701b03928316939216916001600160a01b03918216911603610b335791565b905061429f91925060603d606011613cba57613ca98183611530565b5091905f61425e565b908015801561431b575b61430c57816142c091611726565b916103e88302928084046103e814901517156116fd57818103918183116116fd576103e583029283046103e514911417156116fd576142fe91611739565b600181018091116116fd5790565b633dce448b60e11b5f5260045ffd5b5082156142b2565b6001600160a01b038281169082161015610b335791565b81159283801561438d575b61430c576103e58202918083046103e514901517156116fd576143689082611726565b926103e883029283046103e81417156116fd5781018091116116fd576105b991611739565b508015614345565b92614225906143a393614323565b91565b6040516001600160601b0319606094851b8116602083019081529590941b9093166034840152602883529092909161440991906143e4604882611530565b5190206143fb604051948592602084019586611cba565b03601f198101845283611530565b905190206001600160a01b031690565b90601411613721573560601c90565b91906fa2a8918ca85bafe22016d0b997e4df60600160ff1b038411614495579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15610e68575f516001600160a01b0381161561448b57905f905f90565b505f906001905f90565b5050505f9160039190565b90606011611c2c578035916040602083013592013590565b6144e381307f0000000000000000000000000000000000000000000000000000000000000000614ff9565b905f82126144ef575090565b634c085bf160e01b5f9081526001600160a01b0391909116600452602490fd5b6001600160a01b039091168152600160f01b602082015260400190565b91907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168061464957505f5b6001600160a01b0316614577575b61013292615075565b60405163aeb5556960e01b81526001600160a01b03841690602081600481855afa908115610e68575f9161462a575b501561461b5760206145d6916145ba611bf2565b90604051808095819463f493cec360e01b83526004830161450f565b03915afa908115610e68575f916145fc575b5061456e575b6282b42960e81b5f5260045ffd5b614615915060203d60201161261d5761260f8183611530565b5f6145e8565b63888f378560e01b5f5260045ffd5b614643915060203d60201161261d5761260f8183611530565b5f6145a6565b6040516312f7fd6760e11b815290602090829081806146746001600160a01b038a1660048301610785565b03915afa908115610e68575f9161468c575b50614560565b6146a5915060203d602011610e6157610e538183611530565b5f614686565b90816146bb576105b991506144b8565b5090565b156146d6575f80516020615a158339815191525c90565b3090565b907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168061474757505f5b6001600160a01b03169182158015614739575b61472f5750506105b99061512f565b6105b9925061510a565b50600160ff1b811415614720565b6040516312f7fd6760e11b815290602090829081806147726001600160a01b03881660048301610785565b03915afa908115610e68575f9161478a575b5061470d565b6147a3915060203d602011610e6157610e538183611530565b5f614784565b908215612b6a577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691823b1561012357604051632961046560e21b81525f81806147ff8560048301610785565b038183885af18015610e685761488f575b506001600160a01b03811661485e575050602090600460405180948193630476982d60e21b83525af18015610e68576148465750565b612ba29060203d602011611138576111298183611530565b5f936020939261486d92615195565b600460405180948193630476982d60e21b83525af18015610e68576148465750565b8061232a5f61489d93611530565b5f614810565b9190604011611c2c576020823592013590565b6148e181307f0000000000000000000000000000000000000000000000000000000000000000614ff9565b905f82136148f357506105b9906116ed565b63019a8d9360e51b5f9081526001600160a01b0391909116600452602490fd5b9061016011611c2c5780350190565b356001600160801b03811681036101235790565b356105b981610348565b91908260a09103126101235760405161495881611510565b6080808294803561496881610112565b8452602081013561497881610112565b6020850152604081013561498b81611911565b6040850152606081013561499e8161191e565b60608501520135916149af83610112565b0152565b6001600160801b0390811660045216602452604490565b6149d660c08201614922565b6001600160801b03811615614b01575b60a08201906149f482614936565b6001600160801b0382169290614a26908490614a14610120880188610aea565b929091614a21368a614940565b61540a565b91614a39614a3383614936565b846154c3565b6001600160801b038116949091908510614aed57505090614a5c614a6292614936565b906154eb565b9160e0810192614a80614a7485614922565b6001600160801b031690565b6001600160801b03821694908511614ad157505061010001359182614aa457505050565b610962614ab092611702565b90808210614abc575050565b63efc8d8eb60e01b5f5260045260245260445ffd5b90614ade61099492614922565b6312bacdd360e01b5f526149b3565b630686776b60e31b5f5261099492506149b3565b50614b0e60a08201614936565b15614b3457614b2f614b2a614b2560208401612836565b6148b6565b61535e565b6149e6565b614b2f614b2a614b2583612836565b9060e011611c2c5780350190565b903590601e198136030182121561012357018035906001600160401b03821161012357602001918160051b3603831361012357565b9190811015610ae55760051b81013590609e1981360301821215610123570190565b906020820191614bb88382614b51565b5f929150614bc860608301614922565b90614bd283612836565b906001600160801b03831615614d51575b6040840181614bf28287614b51565b801515948592509082614d46575b5050614d37579193825b614c3957505050505060809192935001614c26614a7482614922565b6001600160801b03831611614ad1575050565b614c5d919293949650614c64614c4f8a88614b51565b5f1987019491859190614b86565b9586615521565b6001600160801b03831692901591614c8e90839085614c8660808c018c610aea565b93909261540a565b90614c9983836154c3565b6001600160801b038116949091908510614aed5750508894939291614cbd916154eb565b97614cdb575b5050614ccf8694612836565b925f1901919382614c0a565b614cff906001600160801b038916906a0c097ce7bc90715b34b9f160241b02611739565b90614d1481614d0e858a614b51565b90612c01565b3590818310614d235750614cc3565b63e651804360e01b5f52610994935061176b565b63115eb5b360e31b5f5260045ffd5b14159050815f614c00565b9150614d5f614b2a826148b6565b91614be3565b614d7160c08201614922565b906001600160801b03821615614e47575b614dc860a08201614dc2614dbc614d9883614936565b6001600160801b0390961695614dad876116ed565b90614a14610120880188610aea565b91614936565b906154c3565b9060e0810191614dda614a7484614922565b6001600160801b03821693908410614e2b57505061010001359182614dfe57505050565b610962614e0a92611702565b90808210614e16575050565b634713c18b60e01b5f5260045260245260445ffd5b90614e3861099492614922565b638b063d7360e01b5f526149b3565b9050614e5560a08201614936565b15614e7457614e6e614b2a614e6983612836565b6144b8565b90614d82565b614e6e614b2a614e6960208401612836565b6020810190614e958282614b51565b5f93915080614ea384612836565b92614eb060608601614922565b6001600160801b03811615614fe7575b6040860191614ecf8388614b51565b801515958692509082614fdc575b5050614d37575f9591949395945b848610614f1b5750505050505050608001614f08614a7482614922565b6001600160801b03831610614e2b575050565b869850614f6a614f65614f3f614c5d89614f39878e9d9b9c9d614b51565b90614b86565b6001600160801b03909416939190614f5a6080880188610aea565b9184875f039161540a565b6154c3565b98614f88575b506001614f7d8993612836565b960194939591614eeb565b614fab906001600160801b038a166a0c097ce7bc90715b34b9f160241b02611739565b614fb987614d0e868b614b51565b35808210614fc75750614f70565b63a9b7edf760e01b5f5261099492508761176b565b14159050855f614edd565b50614ff4614b2a856144b8565b614ec0565b6001600160a01b039182165f9081529282166020908152604093849020935163789add5560e11b815260048101949094529183916024918391165afa908115610e68575f91615046575090565b90506020813d60201161506d575b8161506160209383611530565b81010312610123575190565b3d9150615054565b908215612b6a577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561012357604051630b0d9c0960e01b81526001600160a01b03938416600482015291909216602482015260448101929092525f908290606490829084905af18015610e68576150f55750565b806151015f8093611530565b80031261012357565b90600160ff1b8203615120576105b9915061512f565b816146bb576105b991506148b6565b6001600160a01b03811661514257504790565b6040516370a0823160e01b815230600482015290602090829060249082906001600160a01b03165afa908115610e68575f9161517c575090565b6105b9915060203d602011611138576111298183611530565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316806152fc57505f5b6001600160a01b0381169182156152ee5760405163aeb5556960e01b81526001600160a01b03919091169390602081600481885afa908115610e68575f916152cf575b501561461b57615237602061521d611bf2565b6040518093819263f493cec360e01b83526004830161450f565b0381885afa908115610e68575f916152b0575b50156145ee576001600160a01b03811630036152a3575050828261526d926156e5565b803b1561012357604051630934f6c760e21b815260048101929092525f908290602490829084905af18015610e685761231c5750565b610132949391925061562a565b6152c9915060203d60201161261d5761260f8183611530565b5f61524a565b6152e8915060203d60201161261d5761260f8183611530565b5f61520a565b9050610132939291506155f3565b6040516312f7fd6760e11b815290602090829081806153276001600160a01b03881660048301610785565b03915afa908115610e68575f9161533f575b506151c7565b615358915060203d602011610e6157610e538183611530565b5f615339565b6001600160801b038116919082900361537357565b6393dafdf160e01b5f5260045ffd5b6001600160a01b039091169052565b81516001600160a01b03908116825260208084015182168184015260408085015162ffffff168185015260608086015160020b908501526080948501518316948401949094528451151560a084015284015160c083015291909201511660e08201526105b992906101209081610100820152019161180f565b90916020939461544d6154689261542085615776565b85156154a8576401000276a4905b615440615439611563565b9715158852565b8787015260408601615382565b604051633cf3645360e21b8152958694859460048601615391565b03815f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1908115610e68575f9161517c575090565b73fffd8963efd1fc6a506488495d951d5263988d259061542e565b90156154e357600f0b5b5f81600f0b12615373576001600160801b031690565b60801d6154cd565b614b2a906105b9925f146155055760801d5b600f0b6116ed565b600f0b6154fd565b356105b981611911565b356105b98161191e565b905f608060405161553181611510565b828152826020820152826040820152826060820152015261555182612836565b906001600160a01b0380831690821610156155d757906143a3906155ce60015b946155c46155816020830161550d565b6155b861559c606061559560408701615517565b9501612836565b956155af6155a8611572565b998a615382565b60208901615382565b62ffffff166040870152565b60020b6060850152565b60808301615382565b6001600160a01b03918216916143a391166155ce818414615571565b61013292916001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169216611dc4565b6001600160a01b03918216927f000000000000000000000000000000000000000000000000000000000000000090921691823b1561012357604051631b63c28b60e11b8152925f92849283918591839161569591906001600160a01b038c16908b9060048601613163565b03925af18015610e68576156d1575b50803b1561012357604051630934f6c760e21b815260048101929092525f90829081838160248101612937565b8061232a5f6156df93611530565b5f6156a4565b9091906001600160a01b03811661571257505f80808061570694865af11590565b61570d5750565b6158ac565b6040805163a9059cbb60e01b81526001600160a01b039094166004850152602484019290925291905f9060208260448582885af13d15601f3d116001855114161716928281528260208201520152156157685750565b6001600160a01b031661583f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031615612ba25780516080820180516101329391926157c9916001600160a01b039081169116615915565b6020015190516001600160a01b039081169116615915565b9061580557508051156157f657805190602001fd5b630a12f52160e11b5f5260045ffd5b81511580615836575b615816575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b1561580e565b6040516390bfb86560e01b81526001600160a01b03909116600482015263a9059cbb60e01b60248201526080604482015260a03d601f01601f191690810160648301523d60848301523d5f60a484013e808201600460a482015260c4633c9fd93960e21b91015260e40190fd5b6040516390bfb86560e01b81526001600160a01b0390911660048201525f602482018190526080604483015260a03d601f01601f191690810160648401523d6084840152903d9060a484013e808201600460a482015260c4633d2cec6f60e21b91015260e40190fd5b6040516312f7fd6760e11b81526001600160a01b039190911690602081806159408560048301610785565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610e68575f916159f5575b506001600160a01b031615612a6b576159ad916020916040518080958194631557c23760e01b835260048301610785565b03915afa908115610e68575f916159d6575b50156159c757565b636e11e93f60e01b5f5260045ffd5b6159ef915060203d60201161261d5761260f8183611530565b5f6159bf565b615a0e915060203d602011610e6157610e538183611530565b5f61597c56fe0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a708af28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f692a42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb6d317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee31a164736f6c634300081a000a000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba30000000000000000000000004200000000000000000000000000000000000006000000000000000000000000fe57a6ba1951f69ae2ed4abe23e0f095df500c04000000000000000000000000640887a9ba3a9c53ed27d0f7e8246a4f933f342496e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54000000000000000000000000360e68faccca8ca495c1b759fd9eee466db9fb32000000000000000000000000d8eeba7c373d612f24660e45fa96f5d95b0c9d16000000000000000000000000c0836e5b058bbe22ae2266e1ac488a1a0fd8dce80000000000000000000000001b35d13a2e2528f192637f14b05f0dc0e7deb566000000000000000000000000ef684c38f94f48775959ecf2012d7e864ffb9dd4", + "nonce": "0xc", "chainId": "0xdef1" }, "additionalContracts": [], @@ -167,218 +25,33 @@ "receipts": [ { "status": "0x1", - "cumulativeGasUsed": "0x2e4ce3", - "logs": [], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0x85a87d8886f08683247c710b097241624c848df7bc67be73ecd9d3c54ab876a2", - "transactionIndex": "0x5", - "blockHash": "0x7e96087a9ddd2bc82b7e05c4c6bff898e3b2640a851914785bd722744a236289", - "blockNumber": "0x2d571e0", - "gasUsed": "0x25ff45", - "effectiveGasPrice": "0x955", - "blobGasUsed": "0x1c9e90", - "from": "0x9701fb0ade1e269c8f64ec0c7b3cfadb31a13a52", - "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", - "contractAddress": null, - "daFootprintGasScalar": "0x190", - "l1BaseFeeScalar": "0x1148", - "l1BlobBaseFee": "0x667dfd", - "l1BlobBaseFeeScalar": "0xc5f4f", - "l1Fee": "0xe7343e167", - "l1GasPrice": "0x68ee71b", - "l1GasUsed": "0x12517" - }, - { - "status": "0x1", - "cumulativeGasUsed": "0x2bdd12", - "logs": [], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0xcee82791dae57bca70e968d97867dc194e9063189f78ea3f8b8877c080df6556", - "transactionIndex": "0x5", - "blockHash": "0x7dac4b9c276542217f7a6c792a257ee59119da55e8d6507af83df2ec8d738d51", - "blockNumber": "0x2d571e3", - "gasUsed": "0x238f74", - "effectiveGasPrice": "0x955", - "blobGasUsed": "0x245590", - "from": "0x9701fb0ade1e269c8f64ec0c7b3cfadb31a13a52", - "to": null, - "contractAddress": "0x89e5db8b5aa49aa85ac63f691524311aeb649eba", - "daFootprintGasScalar": "0x190", - "l1BaseFeeScalar": "0x1148", - "l1BlobBaseFee": "0x667dfd", - "l1BlobBaseFeeScalar": "0xc5f4f", - "l1Fee": "0x1258525d69", - "l1GasPrice": "0x68ee71b", - "l1GasUsed": "0x17417" - }, - { - "status": "0x1", - "cumulativeGasUsed": "0x16b113", - "logs": [], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0x684cff4eb0a5d841133bcb4945f897b943cbae220e2d5f553d39cf61c38ef1ee", - "transactionIndex": "0x1", - "blockHash": "0xde877cae70f05eb77b39677367a31bbd770017dd4b8523673ccc37288c1d0167", - "blockNumber": "0x2d571e6", - "gasUsed": "0x15fc7d", - "effectiveGasPrice": "0x955", - "blobGasUsed": "0x17a200", - "from": "0x9701fb0ade1e269c8f64ec0c7b3cfadb31a13a52", - "to": null, - "contractAddress": "0x1f7d7550b1b028f7571e69a784071f0205fd2efa", - "daFootprintGasScalar": "0x190", - "l1BaseFeeScalar": "0x1148", - "l1BlobBaseFee": "0x6742f0", - "l1BlobBaseFeeScalar": "0xc5f4f", - "l1Fee": "0xc54152ec2", - "l1GasPrice": "0x6e4e55a", - "l1GasUsed": "0xf203" - }, - { - "status": "0x1", - "cumulativeGasUsed": "0x533822", - "logs": [], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0xd6a03e7275d4c27df650b11f62fe0075a09d81e9add645fe93bb43a98a5ffef5", - "transactionIndex": "0x6", - "blockHash": "0xc6cd312028ad432f91bc933fd1f3aa1bc2a195c593c74460eadea0e39dd2c0b3", - "blockNumber": "0x2d571ea", - "gasUsed": "0x4a7d1e", - "effectiveGasPrice": "0x955", - "blobGasUsed": "0x5499d0", - "from": "0x9701fb0ade1e269c8f64ec0c7b3cfadb31a13a52", - "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", - "contractAddress": null, - "daFootprintGasScalar": "0x190", - "l1BaseFeeScalar": "0x1148", - "l1BlobBaseFee": "0x6742f0", - "l1BlobBaseFeeScalar": "0xc5f4f", - "l1Fee": "0x2c220ebb9b", - "l1GasPrice": "0x6e4e55a", - "l1GasUsed": "0x3625b" - }, - { - "status": "0x1", - "cumulativeGasUsed": "0x53b1ca", - "logs": [], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0x82b12febd531cd2433dfc7a6c8f3dac95e07f3e41ba2c4fe3b5f1ad3d20f1928", - "transactionIndex": "0x3", - "blockHash": "0x65d92775566c2a50834cfff2ebd61f2381fbc0e6be95b3335f91be692860f6a2", - "blockNumber": "0x2d571ee", - "gasUsed": "0x515e9c", - "effectiveGasPrice": "0x956", - "blobGasUsed": "0x483aa0", - "from": "0x9701fb0ade1e269c8f64ec0c7b3cfadb31a13a52", - "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", - "contractAddress": null, - "daFootprintGasScalar": "0x190", - "l1BaseFeeScalar": "0x1148", - "l1BlobBaseFee": "0x6742f0", - "l1BlobBaseFeeScalar": "0xc5f4f", - "l1Fee": "0x25ae129230", - "l1GasPrice": "0x6e4e55a", - "l1GasUsed": "0x2e3ae" - }, - { - "status": "0x1", - "cumulativeGasUsed": "0x211d52", - "logs": [], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0x3df86453c2db60d366a8a393c471434fafdbef54d21f5a718779e3ea8a27b0a7", - "transactionIndex": "0x6", - "blockHash": "0xee9d61116e7f35ea984f9110f9c591f98521660e28b509b76f7f96b51515b501", - "blockNumber": "0x2d571f2", - "gasUsed": "0x117dc7", - "effectiveGasPrice": "0x957", - "blobGasUsed": "0x116520", - "from": "0x9701fb0ade1e269c8f64ec0c7b3cfadb31a13a52", - "to": null, - "contractAddress": "0x282a3c4d320cc7f0d5eaf56b8029e4b88338f0a3", - "daFootprintGasScalar": "0x190", - "l1BaseFeeScalar": "0x1148", - "l1BlobBaseFee": "0x69fffa", - "l1BlobBaseFeeScalar": "0xc5f4f", - "l1Fee": "0x92dfa59d7", - "l1GasPrice": "0x6e7d942", - "l1GasUsed": "0xb220" - }, - { - "status": "0x1", - "cumulativeGasUsed": "0x1412c3", - "logs": [ - { - "address": "0x33e885ed0ec9bf04ecfb19341582aadcb4c8a9e7", - "topics": [ - "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", - "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x0000000000000000000000009701fb0ade1e269c8f64ec0c7b3cfadb31a13a52" - ], - "data": "0x", - "blockHash": "0xde3b33e346e7caf384c578780f30c31bb78f66db6d6cf83f2e621ffbf14fda2d", - "blockNumber": "0x2d571f5", - "blockTimestamp": "0x6a288820", - "transactionHash": "0xf2502207bfa2a305c3e410a8e4f6eefcef42fb2cfab3e02a19c4197591907111", - "transactionIndex": "0x5", - "logIndex": "0x0", - "removed": false - } - ], - "logsBloom": "0x00000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000020000000000020000000800000000000000000000000000000000400000000000000000000000000000000000000400000000000000000000000020000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000002040000000000000", - "type": "0x2", - "transactionHash": "0xf2502207bfa2a305c3e410a8e4f6eefcef42fb2cfab3e02a19c4197591907111", - "transactionIndex": "0x5", - "blockHash": "0xde3b33e346e7caf384c578780f30c31bb78f66db6d6cf83f2e621ffbf14fda2d", - "blockNumber": "0x2d571f5", - "gasUsed": "0xbc2df", - "effectiveGasPrice": "0x957", - "blobGasUsed": "0xb8dd0", - "from": "0x9701fb0ade1e269c8f64ec0c7b3cfadb31a13a52", - "to": null, - "contractAddress": "0x33e885ed0ec9bf04ecfb19341582aadcb4c8a9e7", - "daFootprintGasScalar": "0x190", - "l1BaseFeeScalar": "0x1148", - "l1BlobBaseFee": "0x69fffa", - "l1BlobBaseFeeScalar": "0xc5f4f", - "l1Fee": "0x6199d6291", - "l1GasPrice": "0x6e7d942", - "l1GasUsed": "0x765e" - }, - { - "status": "0x1", - "cumulativeGasUsed": "0xcfb0b", + "cumulativeGasUsed": "0x63a2fe", "logs": [], "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "type": "0x2", - "transactionHash": "0x99801785c90501cc3d16818fa04f0098ea1b2a69f559bd9b9416424323ec2a9f", + "transactionHash": "0xd37e3e958e9c35d63b48bde9de8e7a01878f0881fa20b6e434a9f865244fc0db", "transactionIndex": "0x6", - "blockHash": "0x5b52ef16d3f8d1007b2d04f1dde51a01673b2eb0fc8c2fc00cd79a56bfa2c7b2", - "blockNumber": "0x2d571f7", - "gasUsed": "0x38cb0", - "effectiveGasPrice": "0x957", - "blobGasUsed": "0x45ec0", - "from": "0x9701fb0ade1e269c8f64ec0c7b3cfadb31a13a52", + "blockHash": "0x3903984e20541c81aef98d8ed3f1202711161b0da5ee1e2925c35e0ae1db7446", + "blockNumber": "0x35a7cbf", + "gasUsed": "0x4df679", + "effectiveGasPrice": "0x95c", + "blobGasUsed": "0x579900", + "from": "0x2179a60856e37dfeaaca0ab043b931fe224b27b6", "to": "0x4e59b44847b379578588920ca78fbf26c0b4956c", "contractAddress": null, "daFootprintGasScalar": "0x190", "l1BaseFeeScalar": "0x1148", - "l1BlobBaseFee": "0x69fffa", + "l1BlobBaseFee": "0x1198b05", "l1BlobBaseFeeScalar": "0xc5f4f", - "l1Fee": "0x24f299a54", - "l1GasPrice": "0x6e7d942", - "l1GasUsed": "0x2ccf" + "l1Fee": "0x76190dde56", + "l1GasPrice": "0x11291dd2", + "l1GasUsed": "0x3810b" } ], "libraries": [], "pending": [], "returns": {}, - "timestamp": 1781041186073, + "timestamp": 1789760233353, "chain": 57073, - "commit": "cac8ac3" + "commit": "e34ba78" } \ No newline at end of file diff --git a/deployments/1.md b/deployments/1.md index e77e279f..6851a164 100644 --- a/deployments/1.md +++ b/deployments/1.md @@ -13,8 +13,8 @@ - [Position Manager](#position-manager) - [V4 Quoter](#v4-quoter) - [State View](#state-view) - - [Universal Router](#universal-router) - [Universal Router (v2.2)](#universal-router-v2.2) + - [Universal Router (v2.1.1)](#universal-router-v2.1.1) - [Universal Router (v2.1.2)](#universal-router-v2.1.2) - [Pool Manager](#pool-manager) - [Fee On Transfer Detector](#fee-on-transfer-detector) @@ -44,10 +44,13 @@ - [Reserves Lens](#reserves-lens) - [Deployment History](#deployment-history) - [Fri Sep 18 2026](#fri-sep-18-2026) + - [Thu Sep 17 2026](#thu-sep-17-2026) - [Tue Aug 11 2026](#tue-aug-11-2026) + - [Mon Jul 13 2026](#mon-jul-13-2026) - [Mon Jun 29 2026](#mon-jun-29-2026) - [Wed Jun 03 2026](#wed-jun-03-2026) - [Thu May 28 2026](#thu-may-28-2026) + - [Tue Mar 17 2026](#tue-mar-17-2026) - [Wed Nov 19 2025](#wed-nov-19-2025) - [Wed Aug 27 2025](#wed-aug-27-2025) - [Fri May 23 2025](#fri-may-23-2025) @@ -69,7 +72,6 @@ - [Tue May 04 2021](#tue-may-04-2021) - [Fri Jun 05 2020](#fri-jun-05-2020) - [Mon May 04 2020](#mon-may-04-2020) - - [Mon Jul 13 2026](#mon-jul-13-2026) ## Summary @@ -123,13 +125,13 @@ - - + + - - + + @@ -443,33 +445,33 @@ Thu, 23 Jan 2025 18:52:35 UTC --- -### Universal Router +### Universal Router (v2.2) -Address: [0xd92a36b0000531ef3063ded4de20a0783308446c](https://etherscan.io/address/0xd92a36b0000531ef3063ded4de20a0783308446c) +Address: [0xab863e752bf67d8dcdd929eaae9be9dc83fb3bbb](https://etherscan.io/address/0xab863e752bf67d8dcdd929eaae9be9dc83fb3bbb) -Deployment Transaction: [0xc4c3e553b5a5067baf9504257279483ec4e5e08268010d3ec4e3f256e2f7cd1e](https://etherscan.io/tx/0xc4c3e553b5a5067baf9504257279483ec4e5e08268010d3ec4e3f256e2f7cd1e) +Deployment Transaction: [0x205624ca1d3e852c37b5f00f86208ec62a2576e4b94d58dd52ef6294bc306a06](https://etherscan.io/tx/0x205624ca1d3e852c37b5f00f86208ec62a2576e4b94d58dd52ef6294bc306a06) -Commit Hash: [d2d9c4a](git@github.com:Uniswap/contracts/commit/d2d9c4a) +Commit Hash: [e34ba78](git@github.com:Uniswap/contracts/commit/e34ba78) -Wed, 19 Nov 2025 23:20:49 UTC +Fri, 18 Sep 2026 19:05:27 UTC --- -### Universal Router (v2.2) - -Address: [0x0542093271a31f6fc1dadb232bd59eeb27de780f](https://etherscan.io/address/0x0542093271a31f6fc1dadb232bd59eeb27de780f) +### Universal Router (v2.1.1) -Deployment Transaction: [0xea21b0fdaacf8300d014bdc92fcdd127794953c7b81149da0ea78f6d682063a5](https://etherscan.io/tx/0xea21b0fdaacf8300d014bdc92fcdd127794953c7b81149da0ea78f6d682063a5) +Address: [0x4C82D1fBFe28C977cBB58D8C7FF8FCF9F70a2cCA](https://etherscan.io/address/0x4C82D1fBFe28C977cBB58D8C7FF8FCF9F70a2cCA) +Deployment Transaction: [0xbf12638984e1df26675d23c12e935897f207d079cb9df1b01604a1a08c39c2a2](https://etherscan.io/tx/0xbf12638984e1df26675d23c12e935897f207d079cb9df1b01604a1a08c39c2a2) +Commit Hash: [999d561](git@github.com:Uniswap/contracts/commit/999d561) -Tue, 11 Aug 2026 19:28:11 UTC +Tue, 17 Mar 2026 23:44:11 UTC @@ -998,27 +1000,59 @@ Deployed contracts:
- Permissioned Hooks (2973a7de) + Universal Router (v2.2)
N/A
UniversalRouter0xd92a36b0000531ef3063ded4de20a0783308446cUniversalRouter#v2.20xab863e752bf67d8dcdd929eaae9be9dc83fb3bbb N/A
UniversalRouter#v2.20x0542093271a31f6fc1dadb232bd59eeb27de780fUniversalRouter#v2.1.10x4C82D1fBFe28C977cBB58D8C7FF8FCF9F70a2cCA N/A
- + + + - - + + + +
Commit hash: e34ba78
Parameter Value
manager0x000000000004444c5dc75cB358380D2e3dE08A90params{"permit2":"0x000000000022D473030F116dDEE9F6B43aC78BA3","weth9":"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2","v2Factory":"0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f","v3Factory":"0x1F98431c8aD98523631AE4a59f267346ea31F984","pairInitCodeHash":"0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f","poolInitCodeHash":"0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54","v4PoolManager":"0x000000000004444c5dc75cB358380D2e3dE08A90","permissionsAdapterFactory":"0x7DA911490Ca4663E572eA9C8154f3CdEbCE16452","v3NFTPositionManager":"0xC36442b4a4522E871399CD717aBDD847Ab11FE88","v4PositionManager":"0xbD216513d74C8cf14cf4747E6AaA6420FF64ee9e","spokePool":"0x5c7BCd6E7De5423a257D81B442095A1a6ced35C"}
+ + + + +### Thu Sep 17 2026 + + + +Deployed contracts: + +
+ + Universal Router (v2.1.2) + + + + + + - - + +
ParameterValue
permissionsAdapterFactory0x7DA911490Ca4663E572eA9C8154f3CdEbCE16452params{"permit2":"0x000000000022D473030F116dDEE9F6B43aC78BA3","weth9":"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2","v2Factory":"0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f","v3Factory":"0x1F98431c8aD98523631AE4a59f267346ea31F984","pairInitCodeHash":"0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f","poolInitCodeHash":"0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54","v4PoolManager":"0x000000000004444c5dc75cB358380D2e3dE08A90","v3NFTPositionManager":"0xC36442b4a4522E871399CD717aBDD847Ab11FE88","v4PositionManager":"0xbD216513d74C8cf14cf4747E6AaA6420FF64ee9e","spokePool":"0x5c7BCd6E7De5423a257D81B442095A1a6ced35C5"}
+ + + +### Tue Aug 11 2026 + + + +Deployed contracts: +
- Universal Router (v2.2) + Permissioned Hooks (2973a7de) @@ -1027,8 +1061,12 @@ Deployed contracts: - - + + + + + +
Value
params{"permit2":"0x000000000022D473030F116dDEE9F6B43aC78BA3","weth9":"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2","v2Factory":"0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f","v3Factory":"0x1F98431c8aD98523631AE4a59f267346ea31F984","pairInitCodeHash":"0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f","poolInitCodeHash":"0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54","v4PoolManager":"0x000000000004444c5dc75cB358380D2e3dE08A90","permissionsAdapterFactory":"0x7DA911490Ca4663E572eA9C8154f3CdEbCE16452","v3NFTPositionManager":"0xC36442b4a4522E871399CD717aBDD847Ab11FE88","v4PositionManager":"0xbD216513d74C8cf14cf4747E6AaA6420FF64ee9e","spokePool":"0x5c7BCd6E7De5423a257D81B442095A1a6ced35C5"}manager0x000000000004444c5dc75cB358380D2e3dE08A90
permissionsAdapterFactory0x7DA911490Ca4663E572eA9C8154f3CdEbCE16452
@@ -1087,6 +1125,33 @@ Deployed contracts: +### Mon Jul 13 2026 + + + +Deployed contracts: + +
+ + Reserves Lens + + + + + + + + + + + + + +
Commit hash: b08eb66
ParameterValue
params{}
+
+ + + ### Mon Jun 29 2026 @@ -1250,6 +1315,31 @@ Deployed contracts: +### Tue Mar 17 2026 + + + +Deployed contracts: + +
+ + Universal Router (v2.1.1) + + + + + + + + + + + +
ParameterValue
params{"permit2":"0x000000000022D473030F116dDEE9F6B43aC78BA3","weth9":"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2","v2Factory":"0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f","v3Factory":"0x1F98431c8aD98523631AE4a59f267346ea31F984","pairInitCodeHash":"0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f","poolInitCodeHash":"0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54","v4PoolManager":"0x000000000004444c5dc75cB358380D2e3dE08A90","v3NFTPositionManager":"0xC36442b4a4522E871399CD717aBDD847Ab11FE88","v4PositionManager":"0xbD216513d74C8cf14cf4747E6AaA6420FF64ee9e","spokePool":"0x5c7BCd6E7De5423a257D81B442095A1a6ced35C5"}
+
+ + + ### Wed Nov 19 2025 @@ -2142,31 +2232,4 @@ Deployed contracts: - - - -### Mon Jul 13 2026 - - - -Deployed contracts: - -
- - Reserves Lens - - - - - - - - - - - - - -
Commit hash: b08eb66
ParameterValue
params{}
-
\ No newline at end of file diff --git a/deployments/11155111.md b/deployments/11155111.md index 52b03211..8e77e31b 100644 --- a/deployments/11155111.md +++ b/deployments/11155111.md @@ -4,8 +4,9 @@ ### Table of Contents - [Summary](#summary) - [Contracts](#contracts) - - [Universal Router](#universal-router) - [Universal Router (v2.2)](#universal-router-v2.2) + - [Universal Router (v2.1.2)](#universal-router-v2.1.2) + - [Universal Router (v2.1.1)](#universal-router-v2.1.1) - [Calibur Entry](#calibur-entry) - [Position Manager](#position-manager) - [V4 Quoter](#v4-quoter) @@ -27,12 +28,12 @@ - [Permissioned Hooks](#permissioned-hooks) - [Swap Proxy](#swap-proxy) - [Reserves Lens](#reserves-lens) - - [Universal Router (v2.1.1)](#universal-router-v2.1.1) - - [Universal Router (v2.1.2)](#universal-router-v2.1.2) - [Deployment History](#deployment-history) - [Fri Sep 18 2026](#fri-sep-18-2026) + - [Thu Sep 17 2026](#thu-sep-17-2026) - [Tue Aug 11 2026](#tue-aug-11-2026) - [Fri Jul 24 2026](#fri-jul-24-2026) + - [Mon Jul 13 2026](#mon-jul-13-2026) - [Mon Jun 29 2026](#mon-jun-29-2026) - [Wed Jun 03 2026](#wed-jun-03-2026) - [Thu May 28 2026](#thu-may-28-2026) @@ -45,7 +46,6 @@ - [Sat May 20 2023](#sat-may-20-2023) - [Fri May 19 2023](#fri-may-19-2023) - [Fri Nov 25 2022](#fri-nov-25-2022) - - [Mon Jul 13 2026](#mon-jul-13-2026) ## Summary @@ -54,13 +54,18 @@ - - + + - - + + + + + + + @@ -169,400 +174,19 @@ - - - + + - - - - -
Address Version
UniversalRouter0x470FFC67b1feEEC31D16C46AC7545C98716a194cUniversalRouter#v2.20x5093f1cded83d99ffed6602da6260672ae16787c N/A
UniversalRouter#v2.20x54c707df83f03bc9ca64ed2ccf9c99b63fd854b7UniversalRouter#v2.1.20x7E4f6c5e954Da5c61B3423D81E2277431Ac043f3N/A
UniversalRouter#v2.1.10x7DfD4F31be6814D2906BDE155c3e1B146EAc1468 N/A
N/A
UniversalRouter#v2.1.10x7DfD4F31be6814D2906BDE155c3e1B146EAc1468N/AParameterValue
UniversalRouter#v2.1.20x7E4f6c5e954Da5c61B3423D81E2277431Ac043f3N/A
- -## Contracts - -### Universal Router - -Address: [0x470FFC67b1feEEC31D16C46AC7545C98716a194c](https://sepolia.etherscan.io/address/0x470FFC67b1feEEC31D16C46AC7545C98716a194c) - -Deployment Transaction: [0xdac96ccdd5f2ef8dbf82dcbe1d9d4563eb28e95e8c49120aecc2a727add89454](https://sepolia.etherscan.io/tx/0xdac96ccdd5f2ef8dbf82dcbe1d9d4563eb28e95e8c49120aecc2a727add89454) - - - - - -Wed, 19 Nov 2025 22:51:48 UTC - - - ---- - -### Universal Router (v2.2) - -Address: [0x54c707df83f03bc9ca64ed2ccf9c99b63fd854b7](https://sepolia.etherscan.io/address/0x54c707df83f03bc9ca64ed2ccf9c99b63fd854b7) - -Deployment Transaction: [0x969883504a446154dd5bc9e3238e8b39fc349651291b431ef377a2a7ba6fca86](https://sepolia.etherscan.io/tx/0x969883504a446154dd5bc9e3238e8b39fc349651291b431ef377a2a7ba6fca86) - - - - - -Tue, 11 Aug 2026 19:19:00 UTC - - - ---- - -### Calibur Entry - -Address: [0x000000009b1d0af20d8c6d0a44e162d11f9b8f00](https://sepolia.etherscan.io/address/0x000000009b1d0af20d8c6d0a44e162d11f9b8f00) - -Deployment Transaction: [0x2a5ea946ce35b4b9f962c10c29cf8735794a1227ff4d130dc639e1a4a83b2b86](https://sepolia.etherscan.io/tx/0x2a5ea946ce35b4b9f962c10c29cf8735794a1227ff4d130dc639e1a4a83b2b86) - - - -Commit Hash: [0a52cd5](git@github.com:Uniswap/contracts/commit/0a52cd5) - -Fri, 23 May 2025 19:44:37 UTC - - - ---- - -### Position Manager - -Address: [0x429ba70129df741B2Ca2a85BC3A2a3328e5c09b4](https://sepolia.etherscan.io/address/0x429ba70129df741B2Ca2a85BC3A2a3328e5c09b4) - -Deployment Transaction: [0xb0836e30c4abac9b77a23fde5f2daa12eb39630d5d7d691e36459d0c9a720ad0](https://sepolia.etherscan.io/tx/0xb0836e30c4abac9b77a23fde5f2daa12eb39630d5d7d691e36459d0c9a720ad0) - - - - - -Wed, 11 Dec 2024 19:56:12 UTC - - - ---- - -### V4 Quoter - -Address: [0x61B3f2011A92d183C7dbaDBdA940a7555Ccf9227](https://sepolia.etherscan.io/address/0x61B3f2011A92d183C7dbaDBdA940a7555Ccf9227) - -Deployment Transaction: [0x0a60518d9c0999eede362f33ffd94e4563423ea8620b2ad4793cc864d81fd76e](https://sepolia.etherscan.io/tx/0x0a60518d9c0999eede362f33ffd94e4563423ea8620b2ad4793cc864d81fd76e) - - - - - -Wed, 11 Dec 2024 19:32:24 UTC - - - ---- - -### State View - -Address: [0xE1Dd9c3fA50EDB962E442f60DfBc432e24537E4C](https://sepolia.etherscan.io/address/0xE1Dd9c3fA50EDB962E442f60DfBc432e24537E4C) - -Deployment Transaction: [0x86445347fcff9619c8fd1fa1888f670b9503f9d26a62c3987adb0b9a76cb5336](https://sepolia.etherscan.io/tx/0x86445347fcff9619c8fd1fa1888f670b9503f9d26a62c3987adb0b9a76cb5336) - - - - - -Wed, 11 Dec 2024 19:30:12 UTC - - - ---- - -### Pool Manager - -Address: [0xE03A1074c86CFeDd5C142C4F04F1a1536e203543](https://sepolia.etherscan.io/address/0xE03A1074c86CFeDd5C142C4F04F1a1536e203543) - -Deployment Transaction: [0xdb2321e6dd8e0147066338043ab05d34f3b3d5cba9104c4e3286ebfd73399b8f](https://sepolia.etherscan.io/tx/0xdb2321e6dd8e0147066338043ab05d34f3b3d5cba9104c4e3286ebfd73399b8f) - - - - - -Wed, 11 Dec 2024 19:12:36 UTC - - - ---- - -### Uniswap V2 Router02 - -Address: [0xeE567Fe1712Faf6149d80dA1E6934E354124CfE3](https://sepolia.etherscan.io/address/0xeE567Fe1712Faf6149d80dA1E6934E354124CfE3) - -Deployment Transaction: [0x92674b51681d2e99e71e03bd387bc0f0e79f2412302b49ed5626d1fa2311bab9](https://sepolia.etherscan.io/tx/0x92674b51681d2e99e71e03bd387bc0f0e79f2412302b49ed5626d1fa2311bab9) - - - - - -Mon, 21 Oct 2024 22:00:12 UTC - - - ---- - -### Mixed Route Quoter V2 - -Address: [0x4745F77b56a0E2294426E3936dc4Fab68d9543Cd](https://sepolia.etherscan.io/address/0x4745F77b56a0E2294426E3936dc4Fab68d9543Cd) - -Deployment Transaction: [0x1b5f288ec3fa9ef5399b440b5aee3e21d193a7438abf6ac07faf37bab5318d96](https://sepolia.etherscan.io/tx/0x1b5f288ec3fa9ef5399b440b5aee3e21d193a7438abf6ac07faf37bab5318d96) - - - - - -Fri, 13 Sep 2024 19:12:12 UTC - - - ---- - -### Uniswap V2 Factory - -Address: [0xB7f907f7A9eBC822a80BD25E224be42Ce0A698A0](https://sepolia.etherscan.io/address/0xB7f907f7A9eBC822a80BD25E224be42Ce0A698A0) - -Deployment Transaction: [0xa1df492f64391739f9d488cbab7c9aded7187d9804b50cbb45486f9e16c63321](https://sepolia.etherscan.io/tx/0xa1df492f64391739f9d488cbab7c9aded7187d9804b50cbb45486f9e16c63321) - - - - - -Sat, 20 May 2023 17:26:12 UTC - - - ---- - -### Swap Router02 - -Address: [0x3bFA4769FB09eefC5a80d6E87c3B9C650f7Ae48E](https://sepolia.etherscan.io/address/0x3bFA4769FB09eefC5a80d6E87c3B9C650f7Ae48E) - -Deployment Transaction: [0x472b2240da580baa6b693bbdb8c8dea560d9fc8366d1c2f3b3e4cac33ca4ff02](https://sepolia.etherscan.io/tx/0x472b2240da580baa6b693bbdb8c8dea560d9fc8366d1c2f3b3e4cac33ca4ff02) - - - - - -Fri, 19 May 2023 16:59:36 UTC - - - ---- - -### Quoter V2 - -Address: [0xEd1f6473345F45b75F8179591dd5bA1888cf2FB3](https://sepolia.etherscan.io/address/0xEd1f6473345F45b75F8179591dd5bA1888cf2FB3) - -Deployment Transaction: [0x75b32b082670e633dc92969d8fb0da99d7753e73ce19d0502898cd4dddbabada](https://sepolia.etherscan.io/tx/0x75b32b082670e633dc92969d8fb0da99d7753e73ce19d0502898cd4dddbabada) - - - - - -Fri, 19 May 2023 16:59:00 UTC - - - ---- - -### Nonfungible Position Manager - -Address: [0x1238536071E1c677A632429e3655c799b22cDA52](https://sepolia.etherscan.io/address/0x1238536071E1c677A632429e3655c799b22cDA52) - -Deployment Transaction: [0xe625b82d7b492160a58009ee5e2154135b4fa6449ed87e54dc8c4c8d21684ec0](https://sepolia.etherscan.io/tx/0xe625b82d7b492160a58009ee5e2154135b4fa6449ed87e54dc8c4c8d21684ec0) - - - - - -Fri, 19 May 2023 16:57:12 UTC - - - ---- - -### Nonfungible Token Position Descriptor - -Address: [0x5bE4DAa6982C69aD20A57F1e68cBcA3D37de6207](https://sepolia.etherscan.io/address/0x5bE4DAa6982C69aD20A57F1e68cBcA3D37de6207) - -Deployment Transaction: [0xe79a9ba2329954a4a0b84b10153ac40b05653f5ac59d85fd33dad001824b130c](https://sepolia.etherscan.io/tx/0xe79a9ba2329954a4a0b84b10153ac40b05653f5ac59d85fd33dad001824b130c) - - - - - -Fri, 19 May 2023 16:56:24 UTC - - - ---- - -### N F T Descriptor - -Address: [0x3B5E3c5E595D85fbFBC2a42ECC091e183E76697C](https://sepolia.etherscan.io/address/0x3B5E3c5E595D85fbFBC2a42ECC091e183E76697C) - -Deployment Transaction: [0xc733d5c1fe5b667347628f92ffaaa18abebdd941435ed0a5471666366e4744a7](https://sepolia.etherscan.io/tx/0xc733d5c1fe5b667347628f92ffaaa18abebdd941435ed0a5471666366e4744a7) - - - - - -Fri, 19 May 2023 16:56:00 UTC - - - ---- - -### Uniswap Interface Multicall - -Address: [0xD7F33bCdb21b359c8ee6F0251d30E94832baAd07](https://sepolia.etherscan.io/address/0xD7F33bCdb21b359c8ee6F0251d30E94832baAd07) - -Deployment Transaction: [0xea785c3e599c9224472a941f0748da4942f56d79f915e673d98e75c8c324e3d4](https://sepolia.etherscan.io/tx/0xea785c3e599c9224472a941f0748da4942f56d79f915e673d98e75c8c324e3d4) - - - - - -Fri, 19 May 2023 16:54:48 UTC - - - ---- - -### Uniswap V3 Factory - -Address: [0x0227628f3F023bb0B980b67D528571c95c6DaC1c](https://sepolia.etherscan.io/address/0x0227628f3F023bb0B980b67D528571c95c6DaC1c) - -Deployment Transaction: [0xed1f65d809a0989338e2e1fc0b8e3208541e48987b9ca0debcf0b37a34e9abe5](https://sepolia.etherscan.io/tx/0xed1f65d809a0989338e2e1fc0b8e3208541e48987b9ca0debcf0b37a34e9abe5) - - - - - -Fri, 19 May 2023 16:53:48 UTC - - - ---- - -### Permit2 - -Address: [0x000000000022D473030F116dDEE9F6B43aC78BA3](https://sepolia.etherscan.io/address/0x000000000022D473030F116dDEE9F6B43aC78BA3) - -Deployment Transaction: [0x363df5deeead44d8fd38425f3986e3e81946a6c59d8b68fe33926cc700713173](https://sepolia.etherscan.io/tx/0x363df5deeead44d8fd38425f3986e3e81946a6c59d8b68fe33926cc700713173) - - - - - -Fri, 25 Nov 2022 14:19:48 UTC - - - ---- - -### Permissions Adapter Factory - -Address: [0xe6b0d96919334c33d06266d1420f97f6f434fa2b](https://sepolia.etherscan.io/address/0xe6b0d96919334c33d06266d1420f97f6f434fa2b) - -Deployment Transaction: [0x289b6a37196f69480595799b2dc11f9b90c573c3228c0a6d5739b89793264aec](https://sepolia.etherscan.io/tx/0x289b6a37196f69480595799b2dc11f9b90c573c3228c0a6d5739b89793264aec) - - - - - -Tue, 11 Aug 2026 16:14:00 UTC - - - ---- - -### Permissioned Position Manager - -Address: [0x864c37908aa5e10b100cacee1c62e3954d76f5e1](https://sepolia.etherscan.io/address/0x864c37908aa5e10b100cacee1c62e3954d76f5e1) - -Deployment Transaction: [0x4a913c5a00f8f5faa8a817c95c249f3e5214222a2528cbe0a5051093e0773203](https://sepolia.etherscan.io/tx/0x4a913c5a00f8f5faa8a817c95c249f3e5214222a2528cbe0a5051093e0773203) - - - - - -Fri, 18 Sep 2026 19:47:12 UTC - - - ---- - -### Permissioned Hooks - -Address: [0x51247e2291d290d17c08813a175ac86465ede8c0](https://sepolia.etherscan.io/address/0x51247e2291d290d17c08813a175ac86465ede8c0) - -Deployment Transaction: [0x841107890f91c2d6e600c078f2aef69acaae06bf9d71ca103ee600112112fc55](https://sepolia.etherscan.io/tx/0x841107890f91c2d6e600c078f2aef69acaae06bf9d71ca103ee600112112fc55) - - - - - -Tue, 11 Aug 2026 22:00:24 UTC - - - ---- - -### Swap Proxy - -Address: [0x0000000085E102724e78eCd2F45DC9cA239Affad](https://sepolia.etherscan.io/address/0x0000000085E102724e78eCd2F45DC9cA239Affad) - -Deployment Transaction: [0x4e523ef440e28ef0d0dd1f3f1dc825bd65bdf2903aab8fdb1e25fa57dd760477](https://sepolia.etherscan.io/tx/0x4e523ef440e28ef0d0dd1f3f1dc825bd65bdf2903aab8fdb1e25fa57dd760477) - - - -Commit Hash: [484b405](git@github.com:Uniswap/contracts/commit/484b405) - -Wed, 03 Jun 2026 18:45:48 UTC - - - ---- - -### Reserves Lens - -Address: [0x0000001b173C3bbF3984D417d8614E3eed34865B](https://sepolia.etherscan.io/address/0x0000001b173C3bbF3984D417d8614E3eed34865B) - -Deployment Transaction: [0x26088229e4483048190c07c0de4506668fc01bea726a91203f61d7e95663fb69](https://sepolia.etherscan.io/tx/0x26088229e4483048190c07c0de4506668fc01bea726a91203f61d7e95663fb69) - - - -Commit Hash: [b08eb66](git@github.com:Uniswap/contracts/commit/b08eb66) - -Mon, 13 Jul 2026 22:28:00 UTC - - - ---- - -### Universal Router (v2.1.1) - -Address: [0x7DfD4F31be6814D2906BDE155c3e1B146EAc1468](https://sepolia.etherscan.io/address/0x7DfD4F31be6814D2906BDE155c3e1B146EAc1468) - -Deployment Transaction: [0xc1ebad5554a50e1fa55274b40ef17dc899bef7378b88b8cfe2fcdebc89a014b6](https://sepolia.etherscan.io/tx/0xc1ebad5554a50e1fa55274b40ef17dc899bef7378b88b8cfe2fcdebc89a014b6) - - - -Commit Hash: [999d561](git@github.com:Uniswap/contracts/commit/999d561) - -Fri, 24 Jul 2026 20:38:26 UTC - + + params + {"permit2":"0x000000000022D473030F116dDEE9F6B43aC78BA3","weth9":"0xfFf9976782d46CC05630D1f6eBAb18b2324d6B14","v2Factory":"0xB7f907f7A9eBC822a80BD25E224be42Ce0A698A0","v3Factory":"0x0227628f3F023bb0B980b67D528571c95c6DaC1c","pairInitCodeHash":"0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f","poolInitCodeHash":"0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54","v4PoolManager":"0xE03A1074c86CFeDd5C142C4F04F1a1536e203543","permissionsAdapterFactory":"0xE6B0d96919334C33d06266d1420F97f6f434fA2B","v3NFTPositionManager":"0x1238536071E1c677A632429e3655c799b22cDA52","v4PositionManager":"0x429ba70129df741B2Ca2a85BC3A2a3328e5c09b4","spokePool":"0x5ef6C01E11889d86803e0B23e3cB3F9E9d97B66"} + + + + +### Thu Sep 17 2026 --- ### Universal Router (v2.1.2) @@ -639,7 +263,7 @@ Deployed contracts:
- Permissioned Hooks (63641618) + Universal Router (v2.1.2) @@ -648,18 +272,23 @@ Deployed contracts: - - - - - - + +
Value
manager0xE03A1074c86CFeDd5C142C4F04F1a1536e203543
permissionsAdapterFactory0xE6B0d96919334C33d06266d1420F97f6f434fA2Bparams{"permit2":"0x000000000022D473030F116dDEE9F6B43aC78BA3","weth9":"0xfFf9976782d46CC05630D1f6eBAb18b2324d6B14","v2Factory":"0xB7f907f7A9eBC822a80BD25E224be42Ce0A698A0","v3Factory":"0x0227628f3F023bb0B980b67D528571c95c6DaC1c","pairInitCodeHash":"0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f","poolInitCodeHash":"0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54","v4PoolManager":"0xE03A1074c86CFeDd5C142C4F04F1a1536e203543","v3NFTPositionManager":"0x1238536071E1c677A632429e3655c799b22cDA52","v4PositionManager":"0x429ba70129df741B2Ca2a85BC3A2a3328e5c09b4","spokePool":"0x5ef6C01E11889d86803e0B23e3cB3F9E9d97B662"}
+ + + +### Tue Aug 11 2026 + + + +Deployed contracts: +
- Universal Router (v2.2) + Permissioned Hooks (63641618) @@ -668,8 +297,12 @@ Deployed contracts: - - + + + + + +
Value
params{"permit2":"0x000000000022D473030F116dDEE9F6B43aC78BA3","weth9":"0xfFf9976782d46CC05630D1f6eBAb18b2324d6B14","v2Factory":"0xB7f907f7A9eBC822a80BD25E224be42Ce0A698A0","v3Factory":"0x0227628f3F023bb0B980b67D528571c95c6DaC1c","pairInitCodeHash":"0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f","poolInitCodeHash":"0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54","v4PoolManager":"0xE03A1074c86CFeDd5C142C4F04F1a1536e203543","permissionsAdapterFactory":"0xE6B0d96919334C33d06266d1420F97f6f434fA2B","v3NFTPositionManager":"0x1238536071E1c677A632429e3655c799b22cDA52","v4PositionManager":"0x429ba70129df741B2Ca2a85BC3A2a3328e5c09b4","spokePool":"0x5ef6C01E11889d86803e0B23e3cB3F9E9d97B662"}manager0xE03A1074c86CFeDd5C142C4F04F1a1536e203543
permissionsAdapterFactory0xE6B0d96919334C33d06266d1420F97f6f434fA2B
@@ -755,6 +388,33 @@ Deployed contracts: +### Mon Jul 13 2026 + + + +Deployed contracts: + +
+ + Reserves Lens + + + + + + + + + + + + + +
Commit hash: b08eb66
ParameterValue
params{}
+
+ + + ### Mon Jun 29 2026 @@ -1294,31 +954,4 @@ Deployed contracts: - - - -### Mon Jul 13 2026 - - - -Deployed contracts: - -
- - Reserves Lens - - - - - - - - - - - - - -
Commit hash: b08eb66
ParameterValue
params{}
-
\ No newline at end of file diff --git a/deployments/57073.md b/deployments/57073.md index 4ff799d6..197fbd5f 100644 --- a/deployments/57073.md +++ b/deployments/57073.md @@ -9,12 +9,11 @@ - [Position Manager](#position-manager) - [V4 Quoter](#v4-quoter) - [State View](#state-view) - - [Universal Router](#universal-router) + - [Universal Router (v2.2)](#universal-router-v2.2) + - [Universal Router (v2.1.2)](#universal-router-v2.1.2) - [Permissions Adapter Factory](#permissions-adapter-factory) - [Quoter](#quoter) - [Mixed Route Quoter V2](#mixed-route-quoter-v2) - - [Universal Router (v2.2)](#universal-router-v2.2) - - [Universal Router (v2.1.2)](#universal-router-v2.1.2) - [Calibur Entry](#calibur-entry) - [Fee On Transfer Detector](#fee-on-transfer-detector) - [Fee Collector](#fee-collector) @@ -33,7 +32,11 @@ - [Uniswap V3 Staker](#uniswap-v3-staker) - [Nonfungible Token Position Descriptor](#nonfungible-token-position-descriptor) - [Permit2](#permit2) + - [Reserves Lens](#reserves-lens) - [Deployment History](#deployment-history) + - [Fri Sep 18 2026](#fri-sep-18-2026) + - [Thu Sep 17 2026](#thu-sep-17-2026) + - [Mon Jul 13 2026](#mon-jul-13-2026) - [Tue Jan 28 2025](#tue-jan-28-2025) ## Summary @@ -44,147 +47,147 @@ Version PoolManager - 0x360e68faccca8ca495c1b759fd9eee466db9fb32 + 0x360e68faccca8ca495c1b759fd9eee466db9fb32 N/A PositionDescriptor - 0x42e3ccd9b7f67b5b2ee0c12074b84ccf2a8e7f36 + 0x42e3ccd9b7f67b5b2ee0c12074b84ccf2a8e7f36 N/A PositionManager - 0x1b35d13a2e2528f192637f14b05f0dc0e7deb566 + 0x1b35d13a2e2528f192637f14b05f0dc0e7deb566 N/A V4Quoter - 0x3972c00f7ed4885e145823eb7c655375d275a1c5 + 0x3972c00f7ed4885e145823eb7c655375d275a1c5 N/A StateView - 0x76fd297e2d437cd7f76d50f01afe6160f86e9990 + 0x76fd297e2d437cd7f76d50f01afe6160f86e9990 N/A - UniversalRouter - 0x112908dac86e20e7241b0927479ea3bf935d1fa0 - N/A - - - PermissionsAdapterFactory - 0xd8eeBA7c373d612F24660e45Fa96f5d95B0C9d16 + UniversalRouter#v2.2 + 0x8bbcaeb326ad590521a921c9e457ee09f336b48c N/A - Quoter - 0x89e5db8b5aa49aa85ac63f691524311aeb649eba + UniversalRouter#v2.1.2 + 0x661E93cca42AfacB172121EF892830cA3b70F08d N/A - MixedRouteQuoterV2 - 0x1f7d7550b1b028f7571e69a784071f0205fd2efa + PermissionsAdapterFactory + 0xd8eeBA7c373d612F24660e45Fa96f5d95B0C9d16 N/A - UniversalRouter#v2.2 - 0x28bd21bb4ea4fda370d8d7544992038375d8d456 + Quoter + 0x89e5db8b5aa49aa85ac63f691524311aeb649eba N/A - UniversalRouter#v2.1.2 - 0x661E93cca42AfacB172121EF892830cA3b70F08d + MixedRouteQuoterV2 + 0x1f7d7550b1b028f7571e69a784071f0205fd2efa N/A CaliburEntry - 0x000000009b1d0af20d8c6d0a44e162d11f9b8f00 + 0x000000009b1d0af20d8c6d0a44e162d11f9b8f00 N/A FeeOnTransferDetector - 0x282a3c4d320cc7f0d5eaf56b8029e4b88338f0a3 + 0x282a3c4d320cc7f0d5eaf56b8029e4b88338f0a3 N/A FeeCollector - 0x33e885ed0ec9bf04ecfb19341582aadcb4c8a9e7 + 0x33e885ed0ec9bf04ecfb19341582aadcb4c8a9e7 N/A ERC7914Detector - 0xc470458fc6a7e43471b31e6a2eb2612215a7102e + 0xc470458fc6a7e43471b31e6a2eb2612215a7102e N/A SwapProxy - 0x0000000085E102724e78eCd2F45DC9cA239Affad + 0x0000000085E102724e78eCd2F45DC9cA239Affad N/A UniswapV2Factory - 0xfe57A6BA1951F69aE2Ed4abe23e0f095DF500C04 + 0xfe57A6BA1951F69aE2Ed4abe23e0f095DF500C04 N/A UniswapV2Router02 - 0xb3fb126acdd5adca2f50ac644a7a2303745f18b4 + 0xb3fb126acdd5adca2f50ac644a7a2303745f18b4 N/A UniswapV3Factory - 0x640887A9ba3A9C53Ed27D0F7e8246A4F933f3424 + 0x640887A9ba3A9C53Ed27D0F7e8246A4F933f3424 N/A UniswapInterfaceMulticall - 0xA0fCec583AeE6176527C07B198e5561722332014 + 0xA0fCec583AeE6176527C07B198e5561722332014 N/A QuoterV2 - 0x96b572D2d880cf2Fa2563651BD23ADE6f5516652 + 0x96b572D2d880cf2Fa2563651BD23ADE6f5516652 N/A TickLens - 0x3e6Dba802d62aba2361Dd632fbC9f547AA6789aE + 0x3e6Dba802d62aba2361Dd632fbC9f547AA6789aE N/A NFTDescriptor - 0x987ca6B9cC569dE1a0340d2465DA8E4Aa4B14aa5 + 0x987ca6B9cC569dE1a0340d2465DA8E4Aa4B14aa5 N/A NonfungiblePositionManager - 0xC0836E5B058BBE22ae2266e1AC488A1A0fD8DCE8 + 0xC0836E5B058BBE22ae2266e1AC488A1A0fD8DCE8 N/A SwapRouter02 - 0x177778F19E89dD1012BdBe603F144088A95C4B53 + 0x177778F19E89dD1012BdBe603F144088A95C4B53 N/A V3Migrator - 0xdce28d2d5392e19091fe59d9750b3202ebe80641 + 0xdce28d2d5392e19091fe59d9750b3202ebe80641 N/A UniswapV3Staker - 0x245c0c29bb7dd9d1fa6a0713abfeb81439ffa870 + 0x245c0c29bb7dd9d1fa6a0713abfeb81439ffa870 N/A NonfungibleTokenPositionDescriptor - 0xa1168fd2Cb5acEC1F0B100593A1858f47b399A7B + 0xa1168fd2Cb5acEC1F0B100593A1858f47b399A7B N/A Permit2 - 0x000000000022D473030F116dDEE9F6B43aC78BA3 + 0x000000000022D473030F116dDEE9F6B43aC78BA3 + N/A + + + ReservesLens + 0x0000001b173C3bbF3984D417d8614E3eed34865B N/A @@ -192,9 +195,9 @@ ### Pool Manager -Address: 0x360e68faccca8ca495c1b759fd9eee466db9fb32 +Address: [0x360e68faccca8ca495c1b759fd9eee466db9fb32](https://explorer.inkonchain.com/address/0x360e68faccca8ca495c1b759fd9eee466db9fb32) -Deployment Transaction: 0x220fb18408ed9590ef3b52e775f78aab16a0d7f258d41360a6b06207adc5f8eb +Deployment Transaction: [0x220fb18408ed9590ef3b52e775f78aab16a0d7f258d41360a6b06207adc5f8eb](https://explorer.inkonchain.com/tx/0x220fb18408ed9590ef3b52e775f78aab16a0d7f258d41360a6b06207adc5f8eb) @@ -208,9 +211,9 @@ Tue, 28 Jan 2025 15:43:17 UTC ### Position Descriptor -Address: 0x42e3ccd9b7f67b5b2ee0c12074b84ccf2a8e7f36 +Address: [0x42e3ccd9b7f67b5b2ee0c12074b84ccf2a8e7f36](https://explorer.inkonchain.com/address/0x42e3ccd9b7f67b5b2ee0c12074b84ccf2a8e7f36) -Deployment Transaction: 0x9f5e73831f55f93c257c809c026f2bfef75926268e339a81a0a3306fc3861596 +Deployment Transaction: [0x9f5e73831f55f93c257c809c026f2bfef75926268e339a81a0a3306fc3861596](https://explorer.inkonchain.com/tx/0x9f5e73831f55f93c257c809c026f2bfef75926268e339a81a0a3306fc3861596) @@ -228,7 +231,7 @@ Proxy Type: TransparentUpgradeableProxy -Implementation: 0x58865104e4073b3c64d98639979fb7894a26e0c6 +Implementation: [0x58865104e4073b3c64d98639979fb7894a26e0c6](https://explorer.inkonchain.com/address/0x58865104e4073b3c64d98639979fb7894a26e0c6) @@ -242,7 +245,7 @@ Implementation: 0x58865104e4073b3c64d98639979fb7894a26e0c6 N/A - 0x58865104e4073b3c64d98639979fb7894a26e0c6 + 0x58865104e4073b3c64d98639979fb7894a26e0c6 f9a2783 @@ -253,9 +256,9 @@ Implementation: 0x58865104e4073b3c64d98639979fb7894a26e0c6 ### Position Manager -Address: 0x1b35d13a2e2528f192637f14b05f0dc0e7deb566 +Address: [0x1b35d13a2e2528f192637f14b05f0dc0e7deb566](https://explorer.inkonchain.com/address/0x1b35d13a2e2528f192637f14b05f0dc0e7deb566) -Deployment Transaction: 0xb558cc805260a9dc2f6759b37cab171a0ba8aa363eca99568844235d8500a911 +Deployment Transaction: [0xb558cc805260a9dc2f6759b37cab171a0ba8aa363eca99568844235d8500a911](https://explorer.inkonchain.com/tx/0xb558cc805260a9dc2f6759b37cab171a0ba8aa363eca99568844235d8500a911) @@ -269,9 +272,9 @@ Tue, 28 Jan 2025 15:43:17 UTC ### V4 Quoter -Address: 0x3972c00f7ed4885e145823eb7c655375d275a1c5 +Address: [0x3972c00f7ed4885e145823eb7c655375d275a1c5](https://explorer.inkonchain.com/address/0x3972c00f7ed4885e145823eb7c655375d275a1c5) -Deployment Transaction: 0xd196092abe42618011d5c36e2dbf4e65c86e128da7e655ac59860584e7595a0d +Deployment Transaction: [0xd196092abe42618011d5c36e2dbf4e65c86e128da7e655ac59860584e7595a0d](https://explorer.inkonchain.com/tx/0xd196092abe42618011d5c36e2dbf4e65c86e128da7e655ac59860584e7595a0d) @@ -285,9 +288,9 @@ Tue, 28 Jan 2025 15:43:17 UTC ### State View -Address: 0x76fd297e2d437cd7f76d50f01afe6160f86e9990 +Address: [0x76fd297e2d437cd7f76d50f01afe6160f86e9990](https://explorer.inkonchain.com/address/0x76fd297e2d437cd7f76d50f01afe6160f86e9990) -Deployment Transaction: 0x5f8b49401583bf6c1a5fd4b2497a1553ae1f3b22b2ac811a0d65f0727db47e20 +Deployment Transaction: [0x5f8b49401583bf6c1a5fd4b2497a1553ae1f3b22b2ac811a0d65f0727db47e20](https://explorer.inkonchain.com/tx/0x5f8b49401583bf6c1a5fd4b2497a1553ae1f3b22b2ac811a0d65f0727db47e20) @@ -299,17 +302,17 @@ Tue, 28 Jan 2025 15:43:17 UTC --- -### Universal Router +### Universal Router (v2.2) -Address: 0x112908dac86e20e7241b0927479ea3bf935d1fa0 +Address: [0x8bbcaeb326ad590521a921c9e457ee09f336b48c](https://explorer.inkonchain.com/address/0x8bbcaeb326ad590521a921c9e457ee09f336b48c) -Deployment Transaction: 0xf3718bafe63fb7416398113b88feb83615fded7bf1f14f0ec0cba272ce917d26 +Deployment Transaction: [0xd37e3e958e9c35d63b48bde9de8e7a01878f0881fa20b6e434a9f865244fc0db](https://explorer.inkonchain.com/tx/0xd37e3e958e9c35d63b48bde9de8e7a01878f0881fa20b6e434a9f865244fc0db) -Commit Hash: [f9a2783](git@github.com:Uniswap/contracts/commit/f9a2783) +Commit Hash: [e34ba78](git@github.com:Uniswap/contracts/commit/e34ba78) -Tue, 28 Jan 2025 15:43:17 UTC +Fri, 18 Sep 2026 19:37:13 UTC @@ -317,9 +320,9 @@ Tue, 28 Jan 2025 15:43:17 UTC ### Permissions Adapter Factory -Address: 0xd8eeBA7c373d612F24660e45Fa96f5d95B0C9d16 +Address: [0xd8eeBA7c373d612F24660e45Fa96f5d95B0C9d16](https://explorer.inkonchain.com/address/0xd8eeBA7c373d612F24660e45Fa96f5d95B0C9d16) -Deployment Transaction: 0x85a87d8886f08683247c710b097241624c848df7bc67be73ecd9d3c54ab876a2 +Deployment Transaction: [0x85a87d8886f08683247c710b097241624c848df7bc67be73ecd9d3c54ab876a2](https://explorer.inkonchain.com/tx/0x85a87d8886f08683247c710b097241624c848df7bc67be73ecd9d3c54ab876a2) @@ -333,9 +336,9 @@ Tue, 09 Jun 2026 21:39:23 UTC ### Quoter -Address: 0x89e5db8b5aa49aa85ac63f691524311aeb649eba +Address: [0x89e5db8b5aa49aa85ac63f691524311aeb649eba](https://explorer.inkonchain.com/address/0x89e5db8b5aa49aa85ac63f691524311aeb649eba) -Deployment Transaction: 0xcee82791dae57bca70e968d97867dc194e9063189f78ea3f8b8877c080df6556 +Deployment Transaction: [0xcee82791dae57bca70e968d97867dc194e9063189f78ea3f8b8877c080df6556](https://explorer.inkonchain.com/tx/0xcee82791dae57bca70e968d97867dc194e9063189f78ea3f8b8877c080df6556) @@ -349,25 +352,9 @@ Tue, 09 Jun 2026 21:39:23 UTC ### Mixed Route Quoter V2 -Address: 0x1f7d7550b1b028f7571e69a784071f0205fd2efa +Address: [0x1f7d7550b1b028f7571e69a784071f0205fd2efa](https://explorer.inkonchain.com/address/0x1f7d7550b1b028f7571e69a784071f0205fd2efa) -Deployment Transaction: 0x684cff4eb0a5d841133bcb4945f897b943cbae220e2d5f553d39cf61c38ef1ee - - - -Commit Hash: [cac8ac3](git@github.com:Uniswap/contracts/commit/cac8ac3) - -Tue, 09 Jun 2026 21:39:23 UTC - - - ---- - -### Universal Router (v2.2) - -Address: 0x28bd21bb4ea4fda370d8d7544992038375d8d456 - -Deployment Transaction: 0xd6a03e7275d4c27df650b11f62fe0075a09d81e9add645fe93bb43a98a5ffef5 +Deployment Transaction: [0x684cff4eb0a5d841133bcb4945f897b943cbae220e2d5f553d39cf61c38ef1ee](https://explorer.inkonchain.com/tx/0x684cff4eb0a5d841133bcb4945f897b943cbae220e2d5f553d39cf61c38ef1ee) @@ -397,9 +384,9 @@ Thu, 17 Sep 2026 22:34:13 UTC ### Calibur Entry -Address: 0x000000009b1d0af20d8c6d0a44e162d11f9b8f00 +Address: [0x000000009b1d0af20d8c6d0a44e162d11f9b8f00](https://explorer.inkonchain.com/address/0x000000009b1d0af20d8c6d0a44e162d11f9b8f00) -Deployment Transaction: 0x82b12febd531cd2433dfc7a6c8f3dac95e07f3e41ba2c4fe3b5f1ad3d20f1928 +Deployment Transaction: [0x82b12febd531cd2433dfc7a6c8f3dac95e07f3e41ba2c4fe3b5f1ad3d20f1928](https://explorer.inkonchain.com/tx/0x82b12febd531cd2433dfc7a6c8f3dac95e07f3e41ba2c4fe3b5f1ad3d20f1928) @@ -413,9 +400,9 @@ Tue, 09 Jun 2026 21:39:23 UTC ### Fee On Transfer Detector -Address: 0x282a3c4d320cc7f0d5eaf56b8029e4b88338f0a3 +Address: [0x282a3c4d320cc7f0d5eaf56b8029e4b88338f0a3](https://explorer.inkonchain.com/address/0x282a3c4d320cc7f0d5eaf56b8029e4b88338f0a3) -Deployment Transaction: 0x3df86453c2db60d366a8a393c471434fafdbef54d21f5a718779e3ea8a27b0a7 +Deployment Transaction: [0x3df86453c2db60d366a8a393c471434fafdbef54d21f5a718779e3ea8a27b0a7](https://explorer.inkonchain.com/tx/0x3df86453c2db60d366a8a393c471434fafdbef54d21f5a718779e3ea8a27b0a7) @@ -429,9 +416,9 @@ Tue, 09 Jun 2026 21:39:23 UTC ### Fee Collector -Address: 0x33e885ed0ec9bf04ecfb19341582aadcb4c8a9e7 +Address: [0x33e885ed0ec9bf04ecfb19341582aadcb4c8a9e7](https://explorer.inkonchain.com/address/0x33e885ed0ec9bf04ecfb19341582aadcb4c8a9e7) -Deployment Transaction: 0xf2502207bfa2a305c3e410a8e4f6eefcef42fb2cfab3e02a19c4197591907111 +Deployment Transaction: [0xf2502207bfa2a305c3e410a8e4f6eefcef42fb2cfab3e02a19c4197591907111](https://explorer.inkonchain.com/tx/0xf2502207bfa2a305c3e410a8e4f6eefcef42fb2cfab3e02a19c4197591907111) @@ -445,9 +432,9 @@ Tue, 09 Jun 2026 21:39:23 UTC ### E R C7914 Detector -Address: 0xc470458fc6a7e43471b31e6a2eb2612215a7102e +Address: [0xc470458fc6a7e43471b31e6a2eb2612215a7102e](https://explorer.inkonchain.com/address/0xc470458fc6a7e43471b31e6a2eb2612215a7102e) -Deployment Transaction: 0x99801785c90501cc3d16818fa04f0098ea1b2a69f559bd9b9416424323ec2a9f +Deployment Transaction: [0x99801785c90501cc3d16818fa04f0098ea1b2a69f559bd9b9416424323ec2a9f](https://explorer.inkonchain.com/tx/0x99801785c90501cc3d16818fa04f0098ea1b2a69f559bd9b9416424323ec2a9f) @@ -461,9 +448,9 @@ Tue, 09 Jun 2026 21:39:23 UTC ### Swap Proxy -Address: 0x0000000085E102724e78eCd2F45DC9cA239Affad +Address: [0x0000000085E102724e78eCd2F45DC9cA239Affad](https://explorer.inkonchain.com/address/0x0000000085E102724e78eCd2F45DC9cA239Affad) -Deployment Transaction: 0x7bcc6b9d9fc51cbb318b0e0398e1ac407dc811c137020fc06775ee2cc2f9d345 +Deployment Transaction: [0x7bcc6b9d9fc51cbb318b0e0398e1ac407dc811c137020fc06775ee2cc2f9d345](https://explorer.inkonchain.com/tx/0x7bcc6b9d9fc51cbb318b0e0398e1ac407dc811c137020fc06775ee2cc2f9d345) @@ -477,9 +464,9 @@ Tue, 09 Jun 2026 21:45:44 UTC ### Uniswap V2 Factory -Address: 0xfe57A6BA1951F69aE2Ed4abe23e0f095DF500C04 +Address: [0xfe57A6BA1951F69aE2Ed4abe23e0f095DF500C04](https://explorer.inkonchain.com/address/0xfe57A6BA1951F69aE2Ed4abe23e0f095DF500C04) -Deployment Transaction: 0x310e76f448b493aaedad1506857c2297fd2177095b0a358d2745ca2dfaf96f2c +Deployment Transaction: [0x310e76f448b493aaedad1506857c2297fd2177095b0a358d2745ca2dfaf96f2c](https://explorer.inkonchain.com/tx/0x310e76f448b493aaedad1506857c2297fd2177095b0a358d2745ca2dfaf96f2c) @@ -493,9 +480,9 @@ Thu, 12 Dec 2024 17:02:02 UTC ### Uniswap V2 Router02 -Address: 0xb3fb126acdd5adca2f50ac644a7a2303745f18b4 +Address: [0xb3fb126acdd5adca2f50ac644a7a2303745f18b4](https://explorer.inkonchain.com/address/0xb3fb126acdd5adca2f50ac644a7a2303745f18b4) -Deployment Transaction: 0xe56fc5d5808e1488364346ff250255edc21711e98ee1eb9aaeefd3432d638e42 +Deployment Transaction: [0xe56fc5d5808e1488364346ff250255edc21711e98ee1eb9aaeefd3432d638e42](https://explorer.inkonchain.com/tx/0xe56fc5d5808e1488364346ff250255edc21711e98ee1eb9aaeefd3432d638e42) @@ -509,9 +496,9 @@ Thu, 12 Dec 2024 17:02:28 UTC ### Uniswap V3 Factory -Address: 0x640887A9ba3A9C53Ed27D0F7e8246A4F933f3424 +Address: [0x640887A9ba3A9C53Ed27D0F7e8246A4F933f3424](https://explorer.inkonchain.com/address/0x640887A9ba3A9C53Ed27D0F7e8246A4F933f3424) -Deployment Transaction: 0x88590c9d79d097baa1e8b7a9041d513dd99ee1068954d5106fca6d0e5544d24c +Deployment Transaction: [0x88590c9d79d097baa1e8b7a9041d513dd99ee1068954d5106fca6d0e5544d24c](https://explorer.inkonchain.com/tx/0x88590c9d79d097baa1e8b7a9041d513dd99ee1068954d5106fca6d0e5544d24c) @@ -525,9 +512,9 @@ Mon, 09 Dec 2024 22:15:28 UTC ### Uniswap Interface Multicall -Address: 0xA0fCec583AeE6176527C07B198e5561722332014 +Address: [0xA0fCec583AeE6176527C07B198e5561722332014](https://explorer.inkonchain.com/address/0xA0fCec583AeE6176527C07B198e5561722332014) -Deployment Transaction: 0x42edd1723a48fedd1c617584dd5f30e3582f99344178b1d01dafe47145f9489f +Deployment Transaction: [0x42edd1723a48fedd1c617584dd5f30e3582f99344178b1d01dafe47145f9489f](https://explorer.inkonchain.com/tx/0x42edd1723a48fedd1c617584dd5f30e3582f99344178b1d01dafe47145f9489f) @@ -541,9 +528,9 @@ Mon, 09 Dec 2024 22:15:41 UTC ### Quoter V2 -Address: 0x96b572D2d880cf2Fa2563651BD23ADE6f5516652 +Address: [0x96b572D2d880cf2Fa2563651BD23ADE6f5516652](https://explorer.inkonchain.com/address/0x96b572D2d880cf2Fa2563651BD23ADE6f5516652) -Deployment Transaction: 0xfe04ff2d190ce8057bfc7300ada6c52a63bffa114f2261d2adccf3af989669f4 +Deployment Transaction: [0xfe04ff2d190ce8057bfc7300ada6c52a63bffa114f2261d2adccf3af989669f4](https://explorer.inkonchain.com/tx/0xfe04ff2d190ce8057bfc7300ada6c52a63bffa114f2261d2adccf3af989669f4) @@ -557,9 +544,9 @@ Mon, 09 Dec 2024 22:16:37 UTC ### Tick Lens -Address: 0x3e6Dba802d62aba2361Dd632fbC9f547AA6789aE +Address: [0x3e6Dba802d62aba2361Dd632fbC9f547AA6789aE](https://explorer.inkonchain.com/address/0x3e6Dba802d62aba2361Dd632fbC9f547AA6789aE) -Deployment Transaction: 0x6ad2506a96ea0b3d6e820d84e327e2956cb418c9454db3e5204fbb7be45b29e6 +Deployment Transaction: [0x6ad2506a96ea0b3d6e820d84e327e2956cb418c9454db3e5204fbb7be45b29e6](https://explorer.inkonchain.com/tx/0x6ad2506a96ea0b3d6e820d84e327e2956cb418c9454db3e5204fbb7be45b29e6) @@ -573,9 +560,9 @@ Mon, 09 Dec 2024 22:15:54 UTC ### N F T Descriptor -Address: 0x987ca6B9cC569dE1a0340d2465DA8E4Aa4B14aa5 +Address: [0x987ca6B9cC569dE1a0340d2465DA8E4Aa4B14aa5](https://explorer.inkonchain.com/address/0x987ca6B9cC569dE1a0340d2465DA8E4Aa4B14aa5) -Deployment Transaction: 0x976c5794bb273b4f7bb87c6d17155a32def2c15ca2eb1903e5f8a2e1d52becac +Deployment Transaction: [0x976c5794bb273b4f7bb87c6d17155a32def2c15ca2eb1903e5f8a2e1d52becac](https://explorer.inkonchain.com/tx/0x976c5794bb273b4f7bb87c6d17155a32def2c15ca2eb1903e5f8a2e1d52becac) @@ -589,9 +576,9 @@ Mon, 09 Dec 2024 22:16:00 UTC ### Nonfungible Position Manager -Address: 0xC0836E5B058BBE22ae2266e1AC488A1A0fD8DCE8 +Address: [0xC0836E5B058BBE22ae2266e1AC488A1A0fD8DCE8](https://explorer.inkonchain.com/address/0xC0836E5B058BBE22ae2266e1AC488A1A0fD8DCE8) -Deployment Transaction: 0x461f59a55c9aa5d7a0b6e8d1fa912b9cb780cbdcb835ec3e1a08036e7bcefb9c +Deployment Transaction: [0x461f59a55c9aa5d7a0b6e8d1fa912b9cb780cbdcb835ec3e1a08036e7bcefb9c](https://explorer.inkonchain.com/tx/0x461f59a55c9aa5d7a0b6e8d1fa912b9cb780cbdcb835ec3e1a08036e7bcefb9c) @@ -605,9 +592,9 @@ Mon, 09 Dec 2024 22:16:19 UTC ### Swap Router02 -Address: 0x177778F19E89dD1012BdBe603F144088A95C4B53 +Address: [0x177778F19E89dD1012BdBe603F144088A95C4B53](https://explorer.inkonchain.com/address/0x177778F19E89dD1012BdBe603F144088A95C4B53) -Deployment Transaction: 0xd12637ba2798952d50ba256403c7a15d4dbb69d92afaa71f6a0a4cfa2fc22849 +Deployment Transaction: [0xd12637ba2798952d50ba256403c7a15d4dbb69d92afaa71f6a0a4cfa2fc22849](https://explorer.inkonchain.com/tx/0xd12637ba2798952d50ba256403c7a15d4dbb69d92afaa71f6a0a4cfa2fc22849) @@ -621,9 +608,9 @@ Mon, 09 Dec 2024 22:16:43 UTC ### V3 Migrator -Address: 0xdce28d2d5392e19091fe59d9750b3202ebe80641 +Address: [0xdce28d2d5392e19091fe59d9750b3202ebe80641](https://explorer.inkonchain.com/address/0xdce28d2d5392e19091fe59d9750b3202ebe80641) -Deployment Transaction: 0x342077a8450084d79ae3345d8bce0f83e246af5b4babbf86b1e178b75090c021 +Deployment Transaction: [0x342077a8450084d79ae3345d8bce0f83e246af5b4babbf86b1e178b75090c021](https://explorer.inkonchain.com/tx/0x342077a8450084d79ae3345d8bce0f83e246af5b4babbf86b1e178b75090c021) @@ -637,9 +624,9 @@ Mon, 09 Dec 2024 22:16:25 UTC ### Uniswap V3 Staker -Address: 0x245c0c29bb7dd9d1fa6a0713abfeb81439ffa870 +Address: [0x245c0c29bb7dd9d1fa6a0713abfeb81439ffa870](https://explorer.inkonchain.com/address/0x245c0c29bb7dd9d1fa6a0713abfeb81439ffa870) -Deployment Transaction: 0x9da25176b5dcb78fe7d8ac9ad3933802f3399be030c96b49711d9443817d9a94 +Deployment Transaction: [0x9da25176b5dcb78fe7d8ac9ad3933802f3399be030c96b49711d9443817d9a94](https://explorer.inkonchain.com/tx/0x9da25176b5dcb78fe7d8ac9ad3933802f3399be030c96b49711d9443817d9a94) @@ -653,9 +640,9 @@ Mon, 09 Dec 2024 22:16:31 UTC ### Nonfungible Token Position Descriptor -Address: 0xa1168fd2Cb5acEC1F0B100593A1858f47b399A7B +Address: [0xa1168fd2Cb5acEC1F0B100593A1858f47b399A7B](https://explorer.inkonchain.com/address/0xa1168fd2Cb5acEC1F0B100593A1858f47b399A7B) -Deployment Transaction: 0x82cbb8b7c21cb402d751fc8910fe44f8bdaf7fed7d63abf5d55858f9ce1400ec +Deployment Transaction: [0x82cbb8b7c21cb402d751fc8910fe44f8bdaf7fed7d63abf5d55858f9ce1400ec](https://explorer.inkonchain.com/tx/0x82cbb8b7c21cb402d751fc8910fe44f8bdaf7fed7d63abf5d55858f9ce1400ec) @@ -673,11 +660,11 @@ Proxy Type: TransparentUpgradeableProxy -Implementation: 0x2079bc044AEe33146bB63674DC2502c69E821Af9 +Implementation: [0x2079bc044AEe33146bB63674DC2502c69E821Af9](https://explorer.inkonchain.com/address/0x2079bc044AEe33146bB63674DC2502c69E821Af9) -Proxy Admin: 0x9B65c0df5aFffB95E75Aa5cAD81F3Fe2368446f1 +Proxy Admin: [0x9B65c0df5aFffB95E75Aa5cAD81F3Fe2368446f1](https://explorer.inkonchain.com/address/0x9B65c0df5aFffB95E75Aa5cAD81F3Fe2368446f1) @@ -685,7 +672,7 @@ Proxy Admin: 0x9B65c0df5aFffB95E75Aa5cAD81F3Fe2368446f1 ### Permit2 -Address: 0x000000000022D473030F116dDEE9F6B43aC78BA3 +Address: [0x000000000022D473030F116dDEE9F6B43aC78BA3](https://explorer.inkonchain.com/address/0x000000000022D473030F116dDEE9F6B43aC78BA3) @@ -697,9 +684,104 @@ Invalid Date +--- + +### Reserves Lens + +Address: [0x0000001b173C3bbF3984D417d8614E3eed34865B](https://explorer.inkonchain.com/address/0x0000001b173C3bbF3984D417d8614E3eed34865B) + +Deployment Transaction: [0xfaf359bc16235cd1f1e7f59e2818fd54c1897a2c4a22a4d8e4bc6601cc664b84](https://explorer.inkonchain.com/tx/0xfaf359bc16235cd1f1e7f59e2818fd54c1897a2c4a22a4d8e4bc6601cc664b84) + + + +Commit Hash: [b08eb66](git@github.com:Uniswap/contracts/commit/b08eb66) + +Mon, 13 Jul 2026 22:33:08 UTC + + + ## Deployment History +### Fri Sep 18 2026 + + + +Deployed contracts: + +
+ + Universal Router (v2.2) + + + + + + + + + + + + + +
Commit hash: e34ba78
ParameterValue
params{"permit2":"0x000000000022D473030F116dDEE9F6B43aC78BA3","weth9":"0x4200000000000000000000000000000000000006","v2Factory":"0xfe57A6BA1951F69aE2Ed4abe23e0f095DF500C04","v3Factory":"0x640887A9ba3A9C53Ed27D0F7e8246A4F933f3424","pairInitCodeHash":"0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f","poolInitCodeHash":"0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54","v4PoolManager":"0x360E68faCcca8cA495c1B759Fd9EEe466db9FB32","permissionsAdapterFactory":"0xd8eeba7c373d612F24660E45fa96F5d95b0C9d16","v3NFTPositionManager":"0xC0836E5B058BBE22ae2266e1AC488A1A0fD8DCE8","v4PositionManager":"0x1b35d13a2E2528f192637F14B05f0Dc0e7dEB566","spokePool":"0xeF684C38F94F48775959ECf2012D7E864ffb9dd"}
+
+ + + +### Thu Sep 17 2026 + + + +Deployed contracts: + +
+ + Universal Router (v2.1.2) + + + + + + + + + + + +
ParameterValue
params{"permit2":"0x000000000022D473030F116dDEE9F6B43aC78BA3","weth9":"0x4200000000000000000000000000000000000006","v2Factory":"0xfe57A6BA1951F69aE2Ed4abe23e0f095DF500C04","v3Factory":"0x640887A9ba3A9C53Ed27D0F7e8246A4F933f3424","pairInitCodeHash":"0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f","poolInitCodeHash":"0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54","v4PoolManager":"0x360E68faCcca8cA495c1B759Fd9EEe466db9FB32","v3NFTPositionManager":"0xC0836E5B058BBE22ae2266e1AC488A1A0fD8DCE8","v4PositionManager":"0x1b35d13a2E2528f192637F14B05f0Dc0e7dEB566","spokePool":"0xeF684C38F94F48775959ECf2012D7E864ffb9dd4"}
+
+ + + +### Mon Jul 13 2026 + + + +Deployed contracts: + +
+ + Reserves Lens + + + + + + + + + + + + + +
Commit hash: b08eb66
ParameterValue
params{}
+
+ + + ### Tue Jan 28 2025 @@ -708,7 +790,7 @@ Deployed contracts:
- Pool Manager + Pool Manager @@ -720,13 +802,13 @@ Deployed contracts: - +
initialOwner0x2BAD8182C09F50c8318d769245beA52C32Be46CD0x2BAD8182C09F50c8318d769245beA52C32Be46CD
- Position Descriptor (Implementation) + Position Descriptor (Implementation) @@ -738,21 +820,21 @@ Deployed contracts: - + - + - +
_poolManager0x360E68faCcca8cA495c1B759Fd9EEe466db9FB320x360E68faCcca8cA495c1B759Fd9EEe466db9FB32
_wrappedNative0x42000000000000000000000000000000000000060x4200000000000000000000000000000000000006
_nativeCurrencyLabelBytes0x45544800000000000000000000000000000000000000000000000000000000000x4554480000000000000000000000000000000000000000000000000000000000
- Position Manager + Position Manager @@ -764,11 +846,11 @@ Deployed contracts: - + - + @@ -776,17 +858,17 @@ Deployed contracts: - + - +
_poolManager0x360E68faCcca8cA495c1B759Fd9EEe466db9FB320x360E68faCcca8cA495c1B759Fd9EEe466db9FB32
_permit20x000000000022D473030F116dDEE9F6B43aC78BA30x000000000022D473030F116dDEE9F6B43aC78BA3
_unsubscribeGasLimit
_tokenDescriptor0x42e3cCD9B7f67B5B2Ee0c12074B84cCF2a8E7f360x42e3cCD9B7f67B5B2Ee0c12074B84cCF2a8E7f36
_weth90x42000000000000000000000000000000000000060x4200000000000000000000000000000000000006
- V4 Quoter + V4 Quoter @@ -798,13 +880,13 @@ Deployed contracts: - +
_poolManager0x360E68faCcca8cA495c1B759Fd9EEe466db9FB320x360E68faCcca8cA495c1B759Fd9EEe466db9FB32
- State View + State View @@ -816,13 +898,13 @@ Deployed contracts: - +
_poolManager0x360E68faCcca8cA495c1B759Fd9EEe466db9FB320x360E68faCcca8cA495c1B759Fd9EEe466db9FB32
- Universal Router + Universal Router diff --git a/deployments/json/1.json b/deployments/json/1.json index ddcfe016..b6c101f7 100644 --- a/deployments/json/1.json +++ b/deployments/json/1.json @@ -66,19 +66,13 @@ "timestamp": 1737658355000, "commitHash": "2656054" }, - "UniversalRouter": { - "address": "0xd92a36b0000531ef3063ded4de20a0783308446c", - "proxy": false, - "deploymentTxn": "0xc4c3e553b5a5067baf9504257279483ec4e5e08268010d3ec4e3f256e2f7cd1e", - "timestamp": 1763594449915, - "commitHash": "d2d9c4a" - }, "UniversalRouter#v2.2": { - "address": "0x0542093271a31f6fc1dadb232bd59eeb27de780f", + "address": "0xab863e752bf67d8dcdd929eaae9be9dc83fb3bbb", "proxy": false, - "deploymentTxn": "0xea21b0fdaacf8300d014bdc92fcdd127794953c7b81149da0ea78f6d682063a5", - "initcodeHash": "db0a232c595e77655f35e5572e1805750acb832117524807669f3a2d58d9e5ad", - "timestamp": 1786476491000 + "deploymentTxn": "0x205624ca1d3e852c37b5f00f86208ec62a2576e4b94d58dd52ef6294bc306a06", + "initcodeHash": "333cfa85fc1c2d0383be5624e27637a2a11fdf40c51bdcdb8676f228ac48af1b", + "timestamp": 1789758327025, + "commitHash": "e34ba78" }, "UniversalRouter#v2.1.2": { "address": "0x23617e59A5925b2A4Bf75d73ff6711cD0b29De85", @@ -88,6 +82,14 @@ "timestamp": 1789681571000, "commitHash": "802fe4c" }, + "UniversalRouter#v2.1.1": { + "address": "0x4C82D1fBFe28C977cBB58D8C7FF8FCF9F70a2cCA", + "proxy": false, + "deploymentTxn": "0xbf12638984e1df26675d23c12e935897f207d079cb9df1b01604a1a08c39c2a2", + "initcodeHash": "", + "timestamp": 1773791051000, + "commitHash": "999d561" + }, "PoolManager": { "address": "0x000000000004444c5dc75cB358380D2e3dE08A90", "proxy": false, @@ -277,6 +279,62 @@ }, "timestamp": 1789760831000 }, + { + "contracts": { + "UniversalRouter#v2.2": { + "address": "0xab863e752bf67d8dcdd929eaae9be9dc83fb3bbb", + "proxy": false, + "deploymentTxn": "0x205624ca1d3e852c37b5f00f86208ec62a2576e4b94d58dd52ef6294bc306a06", + "initcodeHash": "333cfa85fc1c2d0383be5624e27637a2a11fdf40c51bdcdb8676f228ac48af1b", + "input": { + "constructor": { + "params": { + "permit2": "0x000000000022D473030F116dDEE9F6B43aC78BA3", + "weth9": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "v2Factory": "0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f", + "v3Factory": "0x1F98431c8aD98523631AE4a59f267346ea31F984", + "pairInitCodeHash": "0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f", + "poolInitCodeHash": "0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54", + "v4PoolManager": "0x000000000004444c5dc75cB358380D2e3dE08A90", + "permissionsAdapterFactory": "0x7DA911490Ca4663E572eA9C8154f3CdEbCE16452", + "v3NFTPositionManager": "0xC36442b4a4522E871399CD717aBDD847Ab11FE88", + "v4PositionManager": "0xbD216513d74C8cf14cf4747E6AaA6420FF64ee9e", + "spokePool": "0x5c7BCd6E7De5423a257D81B442095A1a6ced35C" + } + } + } + } + }, + "timestamp": 1789758327025, + "commitHash": "e34ba78" + }, + { + "contracts": { + "UniversalRouter#v2.1.2": { + "address": "0x23617e59A5925b2A4Bf75d73ff6711cD0b29De85", + "proxy": false, + "deploymentTxn": "0x350510f7398242ffc778c086ae6bbe9cc744c33a04468f1a7978e54164638257", + "initcodeHash": "7ac51bd61806bfc9a093d14441b6843e62c372e73f59aad77a56f6e1341a1b49", + "input": { + "constructor": { + "params": { + "permit2": "0x000000000022D473030F116dDEE9F6B43aC78BA3", + "weth9": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "v2Factory": "0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f", + "v3Factory": "0x1F98431c8aD98523631AE4a59f267346ea31F984", + "pairInitCodeHash": "0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f", + "poolInitCodeHash": "0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54", + "v4PoolManager": "0x000000000004444c5dc75cB358380D2e3dE08A90", + "v3NFTPositionManager": "0xC36442b4a4522E871399CD717aBDD847Ab11FE88", + "v4PositionManager": "0xbD216513d74C8cf14cf4747E6AaA6420FF64ee9e", + "spokePool": "0x5c7BCd6E7De5423a257D81B442095A1a6ced35C5" + } + } + } + } + }, + "timestamp": 1789681571000 + }, { "contracts": { "PermissionedHooks#2973a7de": { @@ -359,6 +417,23 @@ }, "timestamp": 1786474295000 }, + { + "contracts": { + "ReservesLens": { + "address": "0x0000001b173C3bbF3984D417d8614E3eed34865B", + "proxy": false, + "deploymentTxn": "0x7194e67256decab2de16282766e2d8188bad9d67d910ab73cb475632f3aa033b", + "initcodeHash": "6c7ca10687a2f929c8c16fa6323306255526ef96fb820be2822bb7631af873f8", + "input": { + "constructor": { + "params": {} + } + } + } + }, + "timestamp": 1783982003000, + "commitHash": "b08eb66" + }, { "contracts": { "PermissionedHooks#58dc2d9e": { @@ -480,6 +555,33 @@ "timestamp": 1779983563761, "commitHash": "f684acb" }, + { + "contracts": { + "UniversalRouter#v2.1.1": { + "address": "0x4C82D1fBFe28C977cBB58D8C7FF8FCF9F70a2cCA", + "proxy": false, + "deploymentTxn": "0xbf12638984e1df26675d23c12e935897f207d079cb9df1b01604a1a08c39c2a2", + "initcodeHash": "", + "input": { + "constructor": { + "params": { + "permit2": "0x000000000022D473030F116dDEE9F6B43aC78BA3", + "weth9": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", + "v2Factory": "0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f", + "v3Factory": "0x1F98431c8aD98523631AE4a59f267346ea31F984", + "pairInitCodeHash": "0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f", + "poolInitCodeHash": "0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54", + "v4PoolManager": "0x000000000004444c5dc75cB358380D2e3dE08A90", + "v3NFTPositionManager": "0xC36442b4a4522E871399CD717aBDD847Ab11FE88", + "v4PositionManager": "0xbD216513d74C8cf14cf4747E6AaA6420FF64ee9e", + "spokePool": "0x5c7BCd6E7De5423a257D81B442095A1a6ced35C5" + } + } + } + } + }, + "timestamp": 1773791051000 + }, { "contracts": { "UniversalRouter": { @@ -1109,23 +1211,6 @@ } }, "timestamp": 1588610042000 - }, - { - "contracts": { - "ReservesLens": { - "address": "0x0000001b173C3bbF3984D417d8614E3eed34865B", - "proxy": false, - "deploymentTxn": "0x7194e67256decab2de16282766e2d8188bad9d67d910ab73cb475632f3aa033b", - "initcodeHash": "6c7ca10687a2f929c8c16fa6323306255526ef96fb820be2822bb7631af873f8", - "input": { - "constructor": { - "params": {} - } - } - } - }, - "timestamp": 1783982003000, - "commitHash": "b08eb66" } ] } diff --git a/deployments/json/11155111.json b/deployments/json/11155111.json index b7bc908b..1249a2c4 100644 --- a/deployments/json/11155111.json +++ b/deployments/json/11155111.json @@ -1,18 +1,13 @@ { "chainId": "11155111", "latest": { - "UniversalRouter": { - "address": "0x470FFC67b1feEEC31D16C46AC7545C98716a194c", - "proxy": false, - "deploymentTxn": "0xdac96ccdd5f2ef8dbf82dcbe1d9d4563eb28e95e8c49120aecc2a727add89454", - "timestamp": 1763592708000 - }, "UniversalRouter#v2.2": { - "address": "0x54c707df83f03bc9ca64ed2ccf9c99b63fd854b7", + "address": "0x5093f1cded83d99ffed6602da6260672ae16787c", "proxy": false, - "deploymentTxn": "0x969883504a446154dd5bc9e3238e8b39fc349651291b431ef377a2a7ba6fca86", - "initcodeHash": "e40ed3766fcb4661e9f470bb7f2c951cd245942fb4e97257ad17a65e2656ea03", - "timestamp": 1786475940000 + "deploymentTxn": "0x2130e22012448a30e7f611d8afee6962358250cc0fd37711272b19c3a61c0711", + "initcodeHash": "46225ce52a7529ed2e28c5ce737f8c5cf1fed45c782e47c145b15b05ec23e51b", + "timestamp": 1789755277412, + "commitHash": "e34ba78" }, "CaliburEntry": { "address": "0x000000009b1d0af20d8c6d0a44e162d11f9b8f00", @@ -186,6 +181,62 @@ }, "timestamp": 1789760832000 }, + { + "contracts": { + "UniversalRouter#v2.2": { + "address": "0x5093f1cded83d99ffed6602da6260672ae16787c", + "proxy": false, + "deploymentTxn": "0x2130e22012448a30e7f611d8afee6962358250cc0fd37711272b19c3a61c0711", + "initcodeHash": "46225ce52a7529ed2e28c5ce737f8c5cf1fed45c782e47c145b15b05ec23e51b", + "input": { + "constructor": { + "params": { + "permit2": "0x000000000022D473030F116dDEE9F6B43aC78BA3", + "weth9": "0xfFf9976782d46CC05630D1f6eBAb18b2324d6B14", + "v2Factory": "0xB7f907f7A9eBC822a80BD25E224be42Ce0A698A0", + "v3Factory": "0x0227628f3F023bb0B980b67D528571c95c6DaC1c", + "pairInitCodeHash": "0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f", + "poolInitCodeHash": "0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54", + "v4PoolManager": "0xE03A1074c86CFeDd5C142C4F04F1a1536e203543", + "permissionsAdapterFactory": "0xE6B0d96919334C33d06266d1420F97f6f434fA2B", + "v3NFTPositionManager": "0x1238536071E1c677A632429e3655c799b22cDA52", + "v4PositionManager": "0x429ba70129df741B2Ca2a85BC3A2a3328e5c09b4", + "spokePool": "0x5ef6C01E11889d86803e0B23e3cB3F9E9d97B66" + } + } + } + } + }, + "timestamp": 1789755277412, + "commitHash": "e34ba78" + }, + { + "contracts": { + "UniversalRouter#v2.1.2": { + "address": "0x7E4f6c5e954Da5c61B3423D81E2277431Ac043f3", + "proxy": false, + "deploymentTxn": "0x319d4e70451a555e906fea6e5194ef7f116567a53d3df86947b7c94bd4187348", + "initcodeHash": "eee9ee2babe510254ea4af248d89c2c19450655a54cbf3f89b1eb3cf52a38d4e", + "input": { + "constructor": { + "params": { + "permit2": "0x000000000022D473030F116dDEE9F6B43aC78BA3", + "weth9": "0xfFf9976782d46CC05630D1f6eBAb18b2324d6B14", + "v2Factory": "0xB7f907f7A9eBC822a80BD25E224be42Ce0A698A0", + "v3Factory": "0x0227628f3F023bb0B980b67D528571c95c6DaC1c", + "pairInitCodeHash": "0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f", + "poolInitCodeHash": "0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54", + "v4PoolManager": "0xE03A1074c86CFeDd5C142C4F04F1a1536e203543", + "v3NFTPositionManager": "0x1238536071E1c677A632429e3655c799b22cDA52", + "v4PositionManager": "0x429ba70129df741B2Ca2a85BC3A2a3328e5c09b4", + "spokePool": "0x5ef6C01E11889d86803e0B23e3cB3F9E9d97B662" + } + } + } + } + }, + "timestamp": 1789680792000 + }, { "contracts": { "PermissionedHooks#63641618": { @@ -296,6 +347,23 @@ "timestamp": 1784925506763, "commitHash": "999d561" }, + { + "contracts": { + "ReservesLens": { + "address": "0x0000001b173C3bbF3984D417d8614E3eed34865B", + "proxy": false, + "deploymentTxn": "0x26088229e4483048190c07c0de4506668fc01bea726a91203f61d7e95663fb69", + "initcodeHash": "6c7ca10687a2f929c8c16fa6323306255526ef96fb820be2822bb7631af873f8", + "input": { + "constructor": { + "params": {} + } + } + } + }, + "timestamp": 1783981680000, + "commitHash": "b08eb66" + }, { "contracts": { "PermissionedHooks#07cdcd92": { @@ -715,23 +783,6 @@ } }, "timestamp": 1669385988000 - }, - { - "contracts": { - "ReservesLens": { - "address": "0x0000001b173C3bbF3984D417d8614E3eed34865B", - "proxy": false, - "deploymentTxn": "0x26088229e4483048190c07c0de4506668fc01bea726a91203f61d7e95663fb69", - "initcodeHash": "6c7ca10687a2f929c8c16fa6323306255526ef96fb820be2822bb7631af873f8", - "input": { - "constructor": { - "params": {} - } - } - } - }, - "timestamp": 1783981680000, - "commitHash": "b08eb66" } ] } diff --git a/deployments/json/57073.json b/deployments/json/57073.json index 695f8868..3989dc61 100644 --- a/deployments/json/57073.json +++ b/deployments/json/57073.json @@ -38,13 +38,6 @@ "timestamp": 1738078997000, "commitHash": "f9a2783" }, - "UniversalRouter": { - "address": "0x112908dac86e20e7241b0927479ea3bf935d1fa0", - "proxy": false, - "deploymentTxn": "0xf3718bafe63fb7416398113b88feb83615fded7bf1f14f0ec0cba272ce917d26", - "timestamp": 1738078997000, - "commitHash": "f9a2783" - }, "PermissionsAdapterFactory": { "address": "0xd8eeBA7c373d612F24660e45Fa96f5d95B0C9d16", "proxy": false, @@ -67,11 +60,12 @@ "commitHash": "cac8ac3" }, "UniversalRouter#v2.2": { - "address": "0x28bd21bb4ea4fda370d8d7544992038375d8d456", + "address": "0x8bbcaeb326ad590521a921c9e457ee09f336b48c", "proxy": false, - "deploymentTxn": "0xd6a03e7275d4c27df650b11f62fe0075a09d81e9add645fe93bb43a98a5ffef5", - "timestamp": 1781041163000, - "commitHash": "cac8ac3" + "deploymentTxn": "0xd37e3e958e9c35d63b48bde9de8e7a01878f0881fa20b6e434a9f865244fc0db", + "initcodeHash": "06045ea8008b31c9edc532735c79252ed84498b7172e165ae1e54fa79ec82a28", + "timestamp": 1789760233353, + "commitHash": "e34ba78" }, "UniversalRouter#v2.1.2": { "address": "0x661E93cca42AfacB172121EF892830cA3b70F08d", @@ -217,6 +211,79 @@ } }, "history": [ + { + "contracts": { + "UniversalRouter#v2.2": { + "address": "0x8bbcaeb326ad590521a921c9e457ee09f336b48c", + "proxy": false, + "deploymentTxn": "0xd37e3e958e9c35d63b48bde9de8e7a01878f0881fa20b6e434a9f865244fc0db", + "initcodeHash": "06045ea8008b31c9edc532735c79252ed84498b7172e165ae1e54fa79ec82a28", + "input": { + "constructor": { + "params": { + "permit2": "0x000000000022D473030F116dDEE9F6B43aC78BA3", + "weth9": "0x4200000000000000000000000000000000000006", + "v2Factory": "0xfe57A6BA1951F69aE2Ed4abe23e0f095DF500C04", + "v3Factory": "0x640887A9ba3A9C53Ed27D0F7e8246A4F933f3424", + "pairInitCodeHash": "0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f", + "poolInitCodeHash": "0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54", + "v4PoolManager": "0x360E68faCcca8cA495c1B759Fd9EEe466db9FB32", + "permissionsAdapterFactory": "0xd8eeba7c373d612F24660E45fa96F5d95b0C9d16", + "v3NFTPositionManager": "0xC0836E5B058BBE22ae2266e1AC488A1A0fD8DCE8", + "v4PositionManager": "0x1b35d13a2E2528f192637F14B05f0Dc0e7dEB566", + "spokePool": "0xeF684C38F94F48775959ECf2012D7E864ffb9dd" + } + } + } + } + }, + "timestamp": 1789760233353, + "commitHash": "e34ba78" + }, + { + "contracts": { + "UniversalRouter#v2.1.2": { + "address": "0x661E93cca42AfacB172121EF892830cA3b70F08d", + "proxy": false, + "deploymentTxn": "0x2b3bc3342634e3931177a86f49cb5a403f277251d1b5a1ba84cc11e2b5ebcca3", + "initcodeHash": "9c8ac59a2b76588bf32857c27596f099bc6f572c0080a372c42540b77e19998a", + "input": { + "constructor": { + "params": { + "permit2": "0x000000000022D473030F116dDEE9F6B43aC78BA3", + "weth9": "0x4200000000000000000000000000000000000006", + "v2Factory": "0xfe57A6BA1951F69aE2Ed4abe23e0f095DF500C04", + "v3Factory": "0x640887A9ba3A9C53Ed27D0F7e8246A4F933f3424", + "pairInitCodeHash": "0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f", + "poolInitCodeHash": "0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54", + "v4PoolManager": "0x360E68faCcca8cA495c1B759Fd9EEe466db9FB32", + "v3NFTPositionManager": "0xC0836E5B058BBE22ae2266e1AC488A1A0fD8DCE8", + "v4PositionManager": "0x1b35d13a2E2528f192637F14B05f0Dc0e7dEB566", + "spokePool": "0xeF684C38F94F48775959ECf2012D7E864ffb9dd4" + } + } + } + } + }, + "timestamp": 1789684453000 + }, + { + "contracts": { + "ReservesLens": { + "address": "0x0000001b173C3bbF3984D417d8614E3eed34865B", + "proxy": false, + "deploymentTxn": "0xfaf359bc16235cd1f1e7f59e2818fd54c1897a2c4a22a4d8e4bc6601cc664b84", + "initcodeHash": "6c7ca10687a2f929c8c16fa6323306255526ef96fb820be2822bb7631af873f8", + "input": { + "constructor": { + "params": {} + } + } + } + }, + "timestamp": 1783981988000, + "commitHash": "b08eb66" + }, { "contracts": { "PoolManager": { @@ -301,23 +368,6 @@ }, "timestamp": 1738078997000, "commitHash": "f9a2783" - }, - { - "contracts": { - "ReservesLens": { - "address": "0x0000001b173C3bbF3984D417d8614E3eed34865B", - "proxy": false, - "deploymentTxn": "0xfaf359bc16235cd1f1e7f59e2818fd54c1897a2c4a22a4d8e4bc6601cc664b84", - "initcodeHash": "6c7ca10687a2f929c8c16fa6323306255526ef96fb820be2822bb7631af873f8", - "input": { - "constructor": { - "params": {} - } - } - } - }, - "timestamp": 1783981988000, - "commitHash": "b08eb66" } ] } diff --git a/foundry.toml b/foundry.toml index 8b5c2aca..5f74918e 100644 --- a/foundry.toml +++ b/foundry.toml @@ -16,6 +16,7 @@ fs_permissions = [ ] skip = [ + "src/pkgs/liquidity-launcher/**", "src/pkgs/**/audits/**", "src/pkgs/**/certora/**", "src/pkgs/**/lib/**", diff --git a/script/deploy/tasks/1/task-1789758275.json b/script/deploy/tasks/1/task-1789758275.json new file mode 100644 index 00000000..5261f1b4 --- /dev/null +++ b/script/deploy/tasks/1/task-1789758275.json @@ -0,0 +1,54 @@ +{ + "rename": true, + "dependencies": { + "weth": { "value": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2" } + }, + "protocols": { + "permit2": { + "name": "Permit 2", + "deploy": false, + "contracts": { + "Permit2": { "deploy": false, "address": "0x000000000022D473030F116dDEE9F6B43aC78BA3" } + } + }, + "v2": { + "name": "Uniswap v2", + "deploy": false, + "contracts": { + "UniswapV2Factory": { "deploy": false, "address": "0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f" } + } + }, + "v3": { + "name": "Uniswap v3", + "deploy": false, + "contracts": { + "UniswapV3Factory": { "deploy": false, "address": "0x1F98431c8aD98523631AE4a59f267346ea31F984" }, + "NonfungiblePositionManager": { "deploy": false, "address": "0xC36442b4a4522E871399CD717aBDD847Ab11FE88" } + } + }, + "v4": { + "name": "Uniswap v4", + "deploy": false, + "contracts": { + "PoolManager": { "deploy": false, "address": "0x000000000004444c5dc75cB358380D2e3dE08A90" }, + "PositionManager": { "deploy": false, "address": "0xbD216513d74C8cf14cf4747E6AaA6420FF64ee9e" }, + "PermissionsAdapterFactory": { "deploy": false, "address": "0x7DA911490Ca4663E572eA9C8154f3CdEbCE16452" } + } + }, + "universal-router": { + "name": "Universal Router (Latest)", + "tag": "v2.2", + "deploy": true, + "contracts": { + "UniversalRouter": { + "deploy": true, + "params": { + "v2PairInitCodeHash": { "type": "bytes32", "value": "0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f" }, + "v3PoolInitCodeHash": { "type": "bytes32", "value": "0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54" }, + "acrossSpokePool": { "type": "address", "value": "0x5c7BCd6E7De5423a257D81B442095A1a6ced35C5" } + } + } + } + } + } +} diff --git a/script/deploy/tasks/11155111/task-1789755252.json b/script/deploy/tasks/11155111/task-1789755252.json new file mode 100644 index 00000000..e0d5aab6 --- /dev/null +++ b/script/deploy/tasks/11155111/task-1789755252.json @@ -0,0 +1,86 @@ +{ + "rename": true, + "dependencies": { + "weth": { + "value": "0xfFf9976782d46CC05630D1f6eBAb18b2324d6B14" + } + }, + "protocols": { + "permit2": { + "name": "Permit 2", + "deploy": false, + "contracts": { + "Permit2": { + "deploy": false, + "address": "0x000000000022D473030F116dDEE9F6B43aC78BA3" + } + } + }, + "v2": { + "name": "Uniswap v2", + "deploy": false, + "contracts": { + "UniswapV2Factory": { + "deploy": false, + "address": "0xB7f907f7A9eBC822a80BD25E224be42Ce0A698A0" + } + } + }, + "v3": { + "name": "Uniswap v3", + "deploy": false, + "contracts": { + "UniswapV3Factory": { + "deploy": false, + "address": "0x0227628f3F023bb0B980b67D528571c95c6DaC1c" + }, + "NonfungiblePositionManager": { + "deploy": false, + "address": "0x1238536071E1c677A632429e3655c799b22cDA52" + } + } + }, + "v4": { + "name": "Uniswap v4", + "deploy": false, + "contracts": { + "PoolManager": { + "deploy": false, + "address": "0xE03A1074c86CFeDd5C142C4F04F1a1536e203543" + }, + "PositionManager": { + "deploy": false, + "address": "0x429ba70129df741B2Ca2a85BC3A2a3328e5c09b4" + }, + "PermissionsAdapterFactory": { + "deploy": false, + "address": "0xe6B0d96919334C33d06266D1420f97F6F434fa2b" + } + } + }, + "universal-router": { + "name": "Universal Router (Latest)", + "tag": "v2.2", + "deploy": true, + "contracts": { + "UniversalRouter": { + "deploy": true, + "params": { + "v2PairInitCodeHash": { + "type": "bytes32", + "value": "0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f" + }, + "v3PoolInitCodeHash": { + "type": "bytes32", + "value": "0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54" + }, + "acrossSpokePool": { + "type": "address", + "value": "0x5ef6C01E11889d86803e0B23e3cB3F9E9d97B662" + } + } + } + } + } + } +} diff --git a/script/deploy/tasks/57073/task-1789760227.json b/script/deploy/tasks/57073/task-1789760227.json new file mode 100644 index 00000000..bedb4644 --- /dev/null +++ b/script/deploy/tasks/57073/task-1789760227.json @@ -0,0 +1,54 @@ +{ + "rename": true, + "dependencies": { + "weth": { "value": "0x4200000000000000000000000000000000000006" } + }, + "protocols": { + "permit2": { + "name": "Permit 2", + "deploy": false, + "contracts": { + "Permit2": { "deploy": false, "address": "0x000000000022D473030F116dDEE9F6B43aC78BA3" } + } + }, + "v2": { + "name": "Uniswap v2", + "deploy": false, + "contracts": { + "UniswapV2Factory": { "deploy": false, "address": "0xfe57A6BA1951F69aE2Ed4abe23e0f095DF500C04" } + } + }, + "v3": { + "name": "Uniswap v3", + "deploy": false, + "contracts": { + "UniswapV3Factory": { "deploy": false, "address": "0x640887A9ba3A9C53Ed27D0F7e8246A4F933f3424" }, + "NonfungiblePositionManager": { "deploy": false, "address": "0xC0836E5B058BBE22ae2266e1AC488A1A0fD8DCE8" } + } + }, + "v4": { + "name": "Uniswap v4", + "deploy": false, + "contracts": { + "PoolManager": { "deploy": false, "address": "0x360E68faCcca8cA495c1B759Fd9EEe466db9FB32" }, + "PositionManager": { "deploy": false, "address": "0x1b35d13a2E2528f192637F14B05f0Dc0e7dEB566" }, + "PermissionsAdapterFactory": { "deploy": false, "address": "0xd8eeba7c373d612F24660E45fa96F5d95b0C9d16" } + } + }, + "universal-router": { + "name": "Universal Router (Latest)", + "tag": "v2.2", + "deploy": true, + "contracts": { + "UniversalRouter": { + "deploy": true, + "params": { + "v2PairInitCodeHash": { "type": "bytes32", "value": "0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f" }, + "v3PoolInitCodeHash": { "type": "bytes32", "value": "0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54" }, + "acrossSpokePool": { "type": "address", "value": "0xeF684C38F94F48775959ECf2012D7E864ffb9dd4" } + } + } + } + } + } +} diff --git a/script/util/create_briefcase.sh b/script/util/create_briefcase.sh index b5a43345..0231f2d4 100755 --- a/script/util/create_briefcase.sh +++ b/script/util/create_briefcase.sh @@ -51,8 +51,13 @@ run_flatten_jobs() { # flatten packages pkgs=$(ls src/pkgs/); +# liquidity-launcher has never been part of the briefcase and is not wired into +# the briefcase path resolution (process_briefcase_files.py resolves its +# @uniswap/v4-periphery imports against the top-level package, not its own lib) +BRIEFCASE_SKIP_PKGS="${BRIEFCASE_SKIP_PKGS:-liquidity-launcher}" for pkg in $pkgs do + case " $BRIEFCASE_SKIP_PKGS " in *" $pkg "*) echo "skipping $pkg"; continue;; esac subpaths=$(find src/pkgs/$pkg -type d \( -path "src/pkgs/$pkg/lib" -o -path "src/pkgs/$pkg/test" \) -prune -o \( -name "interface" -o -name "interfaces" -o -name "libraries" -o -name "types" -o -name "util" -o -name "utils" \) -print | sed "s|src/pkgs/$pkg/||") for subpath in $subpaths do diff --git a/src/briefcase/deployers/universal-router/UniversalRouterDeployer.sol b/src/briefcase/deployers/universal-router/UniversalRouterDeployer.sol index 45c1fd17..a33e4b85 100644 --- a/src/briefcase/deployers/universal-router/UniversalRouterDeployer.sol +++ b/src/briefcase/deployers/universal-router/UniversalRouterDeployer.sol @@ -51,6 +51,6 @@ library UniversalRouterDeployer { * - evm_version: cancun */ function initcode() internal pure returns (bytes memory) { - return hex'6102c080604052346104605761016081615e268038038091610021828561047f565b833981010312610460576040519061016082016001600160401b0381118382101761044c57604052610052816104a2565b8252610060602082016104a2565b9160208101928352610074604083016104a2565b9260408201938452610088606084016104a2565b93606083019485526080840151926080810193845260a08501519360a082019485526100b660c087016104a2565b9660c083019788526100ca60e088016104a2565b9160e084019283526100df61010089016104a2565b96876101008601526101086101406100fa6101208c016104a2565b9a8b610120890152016104a2565b998a6101408701526040519861011d8a610464565b6001600160a01b039081168a52998a1660208a019081529051945195519751604051919a9198908216979682169695821695911661015a89610464565b8852602088019687525192519151905160405190936001600160a01b039384169316608082016001600160401b0381118382101761044c5760405281526020810192835260408101918252606081019384526040516101ba60408261047f565b600f815260208101906e2ab734bb32b939b0b62937baba32b960891b8252604051916101e760408461047f565b600183526020830191601960f91b8352610200816104b6565b6101205261020d8461064c565b61014052519020918260e05251902080610100524660a0526040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261027660c08261047f565b5190206080523060c052516001600160a01b0390811661016052905161018052905181166101a05290516101c0526101e091909152610200919091529051811661022052905181166102405290518116610260529051811661028052166102a0526040516156a19081610785823960805181613cf2015260a05181613daf015260c05181613cbc015260e05181613d4101526101005181613d67015261012051816104fc01526101405181610528015261016051818181612b3701528181612cb30152613953015261018051818181612b5801528181612c92015261393201526101a05181611c7001526101c05181611c4e01526101e0518181816105ee015281816107df0152818161111c015281816116e901528181612625015281816143d701528181614430015281816145c3015281816146ce015281816151af015261534c0152610200518181816106b5015281816144ee0152614eaf0152610220518181816116a0015281816128cb0152612a0a015261024051818181610d37015281816127e801528181613095015261538201526102605181818161045e015281816110900152612423015261028051818181610756015261117b01526102a05181818161041a01528181612127015261223b0152f35b634e487b7160e01b5f52604160045260245ffd5b5f80fd5b604081019081106001600160401b0382111761044c57604052565b601f909101601f19168101906001600160401b0382119082101761044c57604052565b51906001600160a01b038216820361046057565b908151602081105f14610530575090601f8151116104f05760208151910151602082106104e1571790565b5f198260200360031b1b161790565b604460209160405192839163305a27a960e01b83528160048401528051918291826024860152018484015e5f828201840152601f01601f19168101030190fd5b6001600160401b03811161044c575f54600181811c91168015610642575b602082101461062e57601f81116105fc575b50602092601f821160011461059d57928192935f92610592575b50508160011b915f199060031b1c1916175f5560ff90565b015190505f8061057a565b601f198216935f8052805f20915f5b8681106105e457508360019596106105cc575b505050811b015f5560ff90565b01515f1960f88460031b161c191690555f80806105bf565b919260206001819286850151815501940192016105ac565b5f8052601f60205f20910160051c810190601f830160051c015b8181106106235750610560565b5f8155600101610616565b634e487b7160e01b5f52602260045260245ffd5b90607f169061054e565b908151602081105f14610677575090601f8151116104f05760208151910151602082106104e1571790565b6001600160401b03811161044c57600154600181811c9116801561077a575b602082101461062e57601f8111610747575b50602092601f82116001146106e657928192935f926106db575b50508160011b915f199060031b1c19161760015560ff90565b015190505f806106c2565b601f1982169360015f52805f20915f5b86811061072f5750836001959610610717575b505050811b0160015560ff90565b01515f1960f88460031b161c191690555f8080610709565b919260206001819286850151815501940192016106f6565b60015f52601f60205f20910160051c810190601f830160051c015b81811061076f57506106a8565b5f8155600101610762565b90607f169061069656fe60806040526004361015610022575b3615610018575f80fd5b61002061169d565b005b5f3560e01c80631a27b2011461010157806324856bc3146100fc5780633593564c146100f757806344684dc3146100f25780638021fef7146100ed578063817122dc146100e857806384b0196e146100e357806391dd7346146100de578063ab769d37146100d9578063d04d79a2146100d4578063d0c9f6cb146100cf578063d737d0c7146100ca578063dc4c90d3146100c55763fa461e330361000e5761080e565b6107ca565b610798565b610741565b6106e4565b6106a0565b6105bc565b6104e4565b610449565b610405565b61036a565b6102a9565b6101f8565b61014d565b6001600160a01b031690565b6001600160a01b0381160361012357565b5f80fd5b359061013282610112565b565b6001600160a01b03165f90815260026020526040902090565b346101235760403660031901126101235760043561016a81610112565b6024359060018060a01b03165f52600260205260405f20905f52602052602060ff60405f2054166040519015158152f35b9181601f84011215610123578235916001600160401b038311610123576020838186019501011161012357565b9181601f84011215610123578235916001600160401b038311610123576020808501948460051b01011161012357565b6040366003190112610123576004356001600160401b0381116101235761022390369060040161019b565b6024356001600160401b038111610123576102429036906004016101c8565b913330146102a0575f805160206155f58339815191525c6001600160a01b03166102915761027f93335f805160206155f58339815191525d610b4e565b5f5f805160206155f58339815191525d005b6337affdbf60e11b5f5260045ffd5b61002093610b4e565b6060366003190112610123576004356001600160401b038111610123576102d490369060040161019b565b6024356001600160401b038111610123576102f39036906004016101c8565b916044354211610339573330146102a0575f805160206155f58339815191525c6001600160a01b03166102915761027f93335f805160206155f58339815191525d610b4e565b632dfb7c8b60e11b5f5260045ffd5b8015150361012357565b6084359061013282610348565b359061013282610348565b610100366003190112610123576004356001600160401b0381116101235761039690369060040161019b565b906024356001600160401b038111610123576103b69036906004016101c8565b926044356064356103c5610352565b9060a43560c435979093906001600160401b038911610123576103ef61002099369060040161019b565b97909660e43599611236565b5f91031261012357565b34610123575f366003190112610123576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610123575f366003190112610123576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b90602080835192838152019201905f5b8181106104ce5750505090565b82518452602093840193909201916001016104c1565b34610123575f366003190112610123576105766105207f00000000000000000000000000000000000000000000000000000000000000006133ce565b6105a461054c7f00000000000000000000000000000000000000000000000000000000000000006134b1565b6105846105576114a1565b91604051958695600f60f81b875260e0602088015260e087019061048d565b90858203604087015261048d565b904660608501523060808501525f60a085015283820360c08501526104b1565b0390f35b9060206105b992818152019061048d565b90565b34610123576020366003190112610123576004356001600160401b038111610123576105ec90369060040161019b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036106915761062591613569565b90818303610682575f5b838110610656576105a4604051610647602082611439565b5f8152604051918291826105a8565b8061067c6106676001938789610ad9565b3560f81c610676838787610b1c565b91613ee7565b0161062f565b63aaad13f760e01b5f5260045ffd5b63570c108560e11b5f5260045ffd5b34610123575f366003190112610123576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610123575f36600319011261012357604080516001600160a01b035f805160206156758339815191525c1681525f805160206156358339815191525c60208201525f805160206156558339815191525c91810191909152606090f35b34610123575f366003190112610123576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b6001600160a01b03909116815260200190565b34610123575f366003190112610123576040516001600160a01b035f805160206155f58339815191525c168152602090f35b34610123575f366003190112610123576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610123576060366003190112610123576024356004356044356001600160401b0381116101235761084490369060040161019b565b92905f831392831580610a61575b610a5257610899926108819161086a87850185611574565b90996001600160a01b039092169690959250611af8565b92909161088e8484613601565b999198908a8a611be4565b336001600160a01b0390911603610a43578015610a2a5790978891906001600160a01b03818116908a16105b156108dd575050505050505061002093503391611cb8565b909192939495989997506108f2866042111590565b1561099e57508651610944575b5050509461092361091661091e9361002098611d25565b939092611d3b565b6115f6565b94801561093c5761093390611682565b945b3390611dd7565b505f94610935565b61095d610967938a93610962935f1461099757506115f6565b61160b565b611642565b6109718686611660565b5180821061097f57806108ff565b631c1763d160e11b5f52610994925086611674565b5ffd5b90506115f6565b969450909192505f805160206156158339815191529796975c8711610a1b5783516109d4575b5050505061002093503391611cb8565b8661096261095d6109f7958b956109f1955f1461099757506115f6565b92611660565b51808210610a065780806109c4565b631c1763d160e11b5f52610994925085611674565b6339cedf2960e11b5f5260045ffd5b91978892906001600160a01b03898116908216106108c5565b6332b13d9160e01b5f5260045ffd5b63316cf0eb60e01b5f5260045ffd5b505f831315610852565b929190333014610abc575f805160206155f58339815191525c6001600160a01b031661029157610aaa93335f805160206155f58339815191525d610b4e565b5f5f805160206155f58339815191525d565b61013293610b4e565b634e487b7160e01b5f52603260045260245ffd5b90821015610ae5570190565b610ac5565b903590601e198136030182121561012357018035906001600160401b0382116101235760200191813603831361012357565b90821015610ae557610b339160051b810190610aea565b9091565b6040906105b993928152816020820152019061048d565b909392848103611227575f5b858110610b6957505050509050565b610b74818785610ad9565b35610b80828487610b1c565b6060929160019160f884901c607f1660218110156111ae576010811015611048576008811015610e2a5780610c495750610bca82610bc183610bfc95611b83565b9290938261270a565b92909360808301355f14610c4257610be0611ae6565b925b604081013590610bf760208201359135612888565b6131d2565b159081610c33575b50610c125750600101610b5a565b604051632c4029e960e01b8152918291610c2f9160048401610b37565b0390fd5b600160ff1b161590505f610c04565b3092610be2565b60018103610ca15750610c6382610bc183610c9595611b83565b92909360808301355f14610c9a57610c79611ae6565b925b604081013590610c9060208201359135612888565b613103565b610bfc565b3092610c7b565b60028103610cd2575050610c9590610cb7611ae6565b90604081013591610ccb6020830135612888565b9135613090565b9192909160038103610d705750505f92935090610d32610cf3849383611b58565b610d24610d01939293611ae6565b916040519485936020850197632a2d80d160e01b8952803501906024860161199f565b03601f198101835282611439565b5190827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af190610d6a6117de565b91610bfc565b9092915060048103610da3575080610d8e6020610c95930135612888565b60408201356001600160a01b03169135612fc6565b60058103610dca5750806040610c9592013590610dc36020820135612888565b9035612f3b565b60068103610df15750806040610c9592013590610dea6020820135612888565b9035612ec5565b60078103610e185750806040610c9592013590610e116020820135612888565b9035612e0b565b636bb50f4f60e11b5f5260045260245ffd5b90919060088103610e8a57508181610e48610c9594610e51946126ea565b9390928261270a565b92909360808301355f14610e8357610e67611ae6565b925b604081013590610e7e60208201359135612888565b612c56565b3092610e69565b60098103610ede57508181610e48610c9594610ea5946126ea565b92909360808301355f14610ed757610ebb611ae6565b925b604081013590610ed260208201359135612888565b612b14565b3092610ebd565b909290600a8103610f2b5750505f92935081610efe610d32928594611b2d565b929091610d24610f0c611ae6565b9460405194859360208501976302b67b5760e41b895260248601611951565b909290600b8103610f505750610c959150610f4b60208201359135612888565b6129ef565b600c8103610f725750610c959150610f6d60208201359135612888565b6128ba565b600d8103610f975750610c9591610f88916126cd565b90610f91611ae6565b916127d9565b9092509050600e8103610e1857506040516370a0823160e01b81529060208280610fc5843560048301610785565b0381848401356001600160a01b03165afa918215611043575f92611010575b5060400135111580610c95576040516351940b3960e11b6020820152909250610d6a8160248101610d24565b60409192506110359060203d811161103c575b61102d8183611439565b8101906118c5565b9190610fe4565b503d611023565b6118d4565b9091906010810361105e575090610c95916125f7565b93945092909150601181036110c357505f91908161107c84936125db565b61108b6040518093819361180d565b0390827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af190610d6a6117de565b601281036110e257505f9190829161107c6110dc611ae6565b826123d4565b6013810361114f5750505f809160405161111781610d24602082019463313b65df60e11b865260a08101359060248401611832565b5190827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af190610d6a6117de565b60148103610e1857505f91829161116681836122f5565b47916111776040518093819361180d565b03917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af190610d6a6117de565b939490939192604083101561120d57505060218103610e1857506111fe610d246111da5f948594613569565b60409593959491945194859360208501976324856bc360e01b895260248601611738565b519082305af190610d6a6117de565b9290949391604081145f14610e18575090610c95916120f5565b631fec674760e31b5f5260045ffd5b95909698929a99979197804211610339576112538c9a9b9c611a55565b5f5b8b81106113d457508686611314611324958f61132a999896610d24918f8f6112a39061131c9a60405161129081610d24602082018095611a87565b51902096156113cd5733925b36916114d7565b6020815191012097604051978896602088019a8b93909796959260e095926101008601997f4b503a2e339bf072a489301f3eec7abaefc520266c462796ed9267bbcc6e407c8752602087015260408601526060850152608084015260018060a01b031660a083015260c08201520152565b519020613392565b9236916114d7565b906133b8565b60018801611372575b61136a97505f805160206156758339815191525d5f805160206156358339815191525d5f805160206156558339815191525d610a6b565b610132611ab4565b61139661138f8961138284610134565b905f5260205260405f2090565b5460ff1690565b6113bf576113ba6113ad61136a9961138284610134565b805460ff19166001179055565b611333565b623f613760e71b5f5260045ffd5b5f9261129c565b806113e98d9f9e9d60019361129c918f610b1c565b602081519101206113fa8285611660565b52019c9a9b9c611255565b634e487b7160e01b5f52604160045260245ffd5b60a081019081106001600160401b0382111761143457604052565b611405565b601f909101601f19168101906001600160401b0382119082101761143457604052565b604051906101326101a083611439565b60405190610132606083611439565b6040519061013260a083611439565b6001600160401b0381116114345760051b60200190565b604051906114b0602083611439565b5f808352366020840137565b6001600160401b03811161143457601f01601f191660200190565b9291926114e3826114bc565b916114f16040519384611439565b829481845281830111610123578281602093845f960137010152565b9080601f83011215610123578160206105b9933591016114d7565b9291906115348161148a565b936115426040519586611439565b602085838152019160051b810192831161012357905b82821061156457505050565b8135815260209182019101611558565b6080818303126101235780356001600160401b038111610123578261159a91830161150d565b9260208201356115a981610112565b9260408301356001600160401b03811161012357830181601f82011215610123576060918160206115dc93359101611528565b92013590565b634e487b7160e01b5f52601160045260245ffd5b600160ff1b8114611606575f0390565b6115e2565b6a0c097ce7bc90715b34b9f160241b80820292918015908404909114171561160657565b8181029291811591840414171561160657565b811561164c570490565b634e487b7160e01b5f52601260045260245ffd5b8051821015610ae55760209160051b010190565b600452602452604452606490565b5f1981019190821161160657565b9190820391821161160657565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161415806116e5575b6116d657565b631c5deabb60e11b5f5260045ffd5b50337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614156116d0565b908060209392818452848401375f828201840152601f01601f1916010190565b93919061174d91604086526040860191611718565b926020818503910152808352602083019060208160051b85010193835f91601e1982360301905b848410611785575050505050505090565b90919293949596601f19828203018752873583811215610123578401602081019190356001600160401b038111610123578036038313610123576117cf6020928392600195611718565b99019701959401929190611774565b3d15611808573d906117ef826114bc565b916117fd6040519384611439565b82523d5f602084013e565b606090565b908092918237015f815290565b62ffffff81160361012357565b8060020b0361012357565b90929160a0906118b9608060c0850196803561184d81610112565b600180871b03168652602081013561186481610112565b600180871b0316602087015262ffffff60408201356118828161181a565b166040870152606081013561189681611827565b60020b606087015201356118a981610112565b6001600160a01b03166080850152565b600180831b0316910152565b90816020910312610123575190565b6040513d5f823e3d90fd5b359065ffffffffffff8216820361012357565b65ffffffffffff61194b60608093803561190b81610112565b6001600160a01b03168652602081013561192481610112565b6001600160a01b031660208701528361193f604083016118df565b166040870152016118df565b16910152565b60a06105b9959361010093600180841b0316835261197260208401826118f2565b608081013561198081610112565b600180841b031682840152013560c08201528160e08201520191611718565b6001600160a01b0390911681526060602082015290939260c08201929091853536879003601e190181121561012357860160208101949035906001600160401b038211610123578160071b360386136101235781906060808501525260e0820194905f5b818110611a3757505050604086611a236118a960206105b9999a01610127565b013560a08201526040818503910152611718565b90919560808082611a4a6001948b6118f2565b019701929101611a03565b90611a5f8261148a565b611a6c6040519182611439565b8281528092611a7d601f199161148a565b0190602036910137565b80516020909101905f5b818110611a9e5750505090565b8251845260209384019390920191600101611a91565b5f5f805160206156758339815191525d5f5f805160206156358339815191525d5f5f805160206156558339815191525d565b5f805160206155f58339815191525c90565b909163ffffffff82351682019263ffffffff84351692602080860195850101910110611b2057565b633b99b53d5f526004601cfd5b909163ffffffff60c08301351682019263ffffffff84351692602080860195850101910110611b2057565b909163ffffffff60208301351682019263ffffffff84351692602080860195850101910110611b2057565b909163ffffffff60608301351682019263ffffffff84351692602080860195850101910110611b2057565b6001600160f81b0319815260609190911b6001600160601b03191660018201526015810191909152603581019190915260550190565b6105b992611c9d92906001600160a01b0380831690841611611ca2575b604080516001600160a01b0394851660208201908152949093169083015262ffffff166060808301919091528152611c3a608082611439565b519020604051611c9581610d2460208201947f0000000000000000000000000000000000000000000000000000000000000000907f000000000000000000000000000000000000000000000000000000000000000087611bae565b519020610106565b610106565b909190611c01565b906014820180921161160657565b909291906001600160a01b0384163003611cd6576101329350612f3b565b91926001600160a01b038411611cf957610132936001600160a01b031692613090565b63c4bd89a960e01b5f5260045ffd5b909291928360041161012357831161012357600401916003190190565b9190918260171161012357601701916016190190565b600160ff1b8110156101235790565b959493611d6660609492611d839460808a5260808a0191611718565b6001600160a01b03909216602088015286820360408801526104b1565b930152565b9190826040910312610123576020825192015190565b6001600160a01b039182168152911515602083015260408201929092529116606082015260a0608082018190526105b99291019061048d565b92919395949094611de88386613601565b6001600160a01b038084169082161098899590939092611e09929091611be4565b611e1290610106565b611e1b90610106565b94845f14604098610d245f96611e6595611e4994611ead576401000276a49e5b8d5196879560208701611d4a565b8751630251596160e31b8152998a978896879560048701611d9e565b03925af18015611043575f925f91611e7c57509192565b9050611ea191925060403d604011611ea6575b611e998183611439565b810190611d88565b919092565b503d611e8f565b73fffd8963efd1fc6a506488495d951d5263988d259e611e3b565b91939490611ed68486613601565b6001600160a01b038082169084161097889490939092611ef7929091611be4565b611f0090610106565b611f0990610106565b93835f1496611e495f94610d2486611e659560409c611ead576401000276a49e8d5196879560208701611d4a565b63ffffffff81160361012357565b359061013282611f37565b602081830312610123578035906001600160401b03821161012357016101a08183031261012357611f7f61145c565b91611f8982610127565b8352611f9760208301610127565b6020840152611fa860408301610127565b6040840152611fb960608301610127565b60608401526080820135608084015260a082013560a084015260c082013560c0840152611fe860e08301610127565b60e0840152611ffa6101008301611f45565b61010084015261200d6101208301611f45565b6101208401526120206101408301611f45565b610140840152610160820135916001600160401b0383116101235761204d6101809261205994830161150d565b6101608501520161035f565b61018082015290565b6001600160a01b039182168152918116602083015291821660408201529181166060830152608082019290925260a081019290925260c0820192909252911660e08201526105b994936101809391926120e7926120d9916120cb9063ffffffff16610100870152565b63ffffffff16610120850152565b63ffffffff16610140830152565b81610160820152019061048d565b61210191810190611f50565b6080810151905f600160ff1b831461226e575b61018082015115612224575081905b80517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316929061215a90610106565b6121676020840151610106565b6121746040850151610106565b916121826060860151610106565b9460a08101519060c081015161219b60e0830151610106565b61010083015163ffffffff16906121ba61012085015163ffffffff1690565b926101606121d061014087015163ffffffff1690565b950151958c3b1561012357604051633dc9c91960e11b81529d8e9c8d9b8c9b6121fc9b60048e01612062565b03915a945f95f18015611043576122105750565b8061221e5f61013293611439565b806103fb565b9061226983612239611c9d6040850151610106565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690613633565b612123565b915061227e610180820151151590565b1561228a574791612114565b61229d611c9d611c9d6040840151610106565b602060405180926370a0823160e01b825281806122bd3060048301610785565b03915afa908115611043575f916122d6575b5091612114565b6122ef915060203d60201161103c5761102d8183611439565b5f6122cf565b80356322b9af7160e01b6001600160e01b03198216016123b85750612321826123279361232193611d08565b90611af8565b5f5b81811061233557505050565b61236361235d612357612349848688610ad9565b356001600160f81b03191690565b60f81c90565b60ff1690565b80159081156123ad575b81156123a2575b8115612397575b5061238857600101612329565b635d1d0f9f60e01b5f5260045ffd5b60039150145f61237b565b600181149150612374565b60048114915061236d565b63f801e52560e01b5f526001600160e01b03191660045260245ffd5b80356001600160e01b031916630624e65f60e11b811480156125cb575b80156125bb575b156125a957506040516331a9108f60e11b815260049182013591810182905290916001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690602083602481855afa928315611043575f93612588575b506001600160a01b03818116908416811492908315612518575b50821561249c575b50501590505b61248a5750565b63bb25d4c560e01b5f5260045260245ffd5b60405163e985e9c560e01b81526001600160a01b0394851660048201529190931660248201529160209150829060449082905afa801561104357612483915f916124e9575b505f8061247d565b61250b915060203d602011612511575b6125038183611439565b8101906129bf565b5f6124e1565b503d6124f9565b60405163020604bf60e21b81526004810187905291935090602081602481875afa908115611043575f91612559575b506001600160a01b031614915f612475565b61257b915060203d602011612581575b6125738183611439565b810190613722565b5f612547565b503d612569565b6125a291935060203d602011612581576125738183611439565b915f61245b565b63f801e52560e01b5f5260045260245ffd5b50630852cd8d60e31b81146123f8565b5063fc6f786560e01b81146123f1565b356001600160e01b03191663853d008560e01b81016125a95750565b6040516348c8949160e01b815260206004820152915f9183918291612620916024840191611718565b0381837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af180156110435761265c5750565b3d805f833e61266b8183611439565b810190602081830312610123578051906001600160401b038211610123570181601f820112156101235780516126a0816114bc565b926126ae6040519485611439565b81845260208284010111610123575f928160208094018483015e010152565b918235830191602083359481850194038560051b010111611b2057565b916060830135830191602083359481850194038560051b010111611b2057565b9160a0830135830191602083359481850194038560051b010111611b2057565b9190811015610ae55760071b0190565b356105b981610112565b60208082528101839052604001915f5b8181106127615750505090565b909192608080600192863561277581610112565b848060a01b03168152602087013561278c81610112565b848060a01b0316602082015260408701356127a681610112565b848060a01b0316604082015260608701356127c081610112565b848060a01b031660608201520194019101919091612754565b90915f5b83811061284c5750507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691823b156101235761283b925f9283604051809681958294630d58b1db60e01b845260048401612744565b03925af18015611043576122105750565b61285f61285a82868661272a565b61273a565b6001600160a01b03838116911603612879576001016127dd565b63e700287760e01b5f5260045ffd5b6001600160a01b038116600181036128ae5750505f805160206155f58339815191525c90565b6002036105b957503090565b6040516370a0823160e01b815290917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690602083806129053060048301610785565b0381855afa928315611043575f9361299e575b50821061298f578161292957505050565b803b1561012357604051632e1a7d4d60e01b815260048101839052905f908290602490829084905af180156110435761297b575b50306001600160a01b03831603612972575050565b61013291613737565b8061221e5f61298993611439565b5f61295d565b631a84bc4160e21b5f5260045ffd5b6129b891935060203d60201161103c5761102d8183611439565b915f612918565b9081602091031261012357516105b981610348565b6001600160a01b039091168152602081019190915260400190565b90600160ff1b8103612ad4575047905b81612a08575050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691823b1561012357604051630d0e30db60e41b81525f8160048185885af1801561104357612ac0575b50306001600160a01b03831603612a72575b505050565b612a96926020925f60405180968195829463a9059cbb60e01b8452600484016129d4565b03925af1801561104357612aa8575b50565b612aa59060203d602011612511576125038183611439565b8061221e5f612ace93611439565b5f612a5b565b90478211156129ff57631a84bc4160e21b5f5260045ffd5b9015610ae55790565b9060011015610ae55760200190565b9190811015610ae55760051b0190565b9290939196959460028310612c475786151580612c33575b612c245793965f94907f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000005f198601868111611606579190825b612bc2575050508811612bb3576101329785612bae92612ba961285a8787612aec565b611cb8565b6137ef565b6345585e0b60e11b5f5260045ffd5b919a9750905f198b018b811161160657612c0b8c612bf9612be7612c12948b8b612b04565b3591612bf283610112565b8a8a612b04565b3590612c0482610112565b848661412c565b919a6141c0565b9a8015611606575f1901919082612b86565b630c12651d60e31b5f5260045ffd5b505f19830183811161160657871415612b2c565b632b94ab4360e21b5f5260045ffd5b9294969095919660028510612c475781151580612df9575b612c2457612cd7612c8261285a8789612aec565b612c8f61285a888a612af5565b907f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000613bd9565b968781612de0575b505050612cfe611c9d611c9d61285a612cf788611682565b888a612b04565b91604051966370a0823160e01b885260208880612d1e8860048301610785565b0381875afa95861561104357612d62985f97612db2575b509085612d47949392602098996137ef565b60405180809681946370a0823160e01b835260048301610785565b03915afa801561104357612d7d925f91612d93575b50611690565b10612d8457565b631093d5f360e31b5f5260045ffd5b612dac915060203d60201161103c5761102d8183611439565b5f612d77565b60209750612d4794939291612dd488928a3d8c1161103c5761102d8183611439565b98509192939450612d35565b612df192612ba961285a898b612aec565b5f8087612cdf565b50612e0385611682565b821415612c6e565b670de0b6b3a76400008311612eb6576001600160a01b031680612e4d5750612e47612e39610132934761162f565b670de0b6b3a7640000900490565b90613737565b906040516370a0823160e01b815260208180612e6c3060048301610785565b0381865afa9081156110435761013294612e9192612e39925f91612e97575b5061162f565b91613bf0565b612eb0915060203d60201161103c5761102d8183611439565b5f612e8b565b6390f5ebeb60e01b5f5260045ffd5b6001600160a01b031680612ee15750612e476101329247613c5f565b6040516370a0823160e01b8152306004820152909190602081602481865afa9384156110435761013294612e91925f91612f1c575b50613c5f565b612f35915060203d60201161103c5761102d8183611439565b5f612f16565b9091906001600160a01b031680612f56575061013291613737565b600160ff1b8214612f6c575b9161013292613bf0565b6040516370a0823160e01b815230600482015292909150602083602481855afa801561104357610132935f91612fa7575b5091909250612f62565b612fc0915060203d60201161103c5761102d8183611439565b5f612f9d565b9091906001600160a01b031680612fe957504790811061298f5780612972575050565b91604051916370a0823160e01b8352602083806130093060048301610785565b0381875afa928315611043575f93613045575b508210613036578161302d57505050565b61013292613bf0565b630ceb95c760e31b5f5260045ffd5b61305f91935060203d60201161103c5761102d8183611439565b915f61301c565b6001600160a01b039182168152918116602083015291821660408201529116606082015260800190565b9290917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690813b15610123575f80946130e860405197889687958694631b63c28b60e11b865260048601613066565b03925af18015611043576130f95750565b5f61013291611439565b9492909695939193861515806131a8575b6131995761312a61313091613154983691611528565b94613c9a565b835180156131915761314190611682565b945b61314f61091e89611d3b565b611dd7565b909190156131825750613166906115f6565b0361317357610132613c88565b636a70124760e11b5f5260045ffd5b61318c91506115f6565b613166565b505f94613143565b630e0fbd8760e21b5f5260045ffd5b506131bc6131b760178961162f565b611caa565b831415613114565b5f1981146116065760010190565b9793979590919294958715159687809861337b575b613199578998600160ff1b851461330e575b909950879391965f92808b8a61320d6114a1565b9e8f9061325793613249935b61322d613227836042111590565b98611d3b565b908815613304575061324130925b8a613cab565b929091611ec8565b9091901561099757506115f6565b966132c9575b50156132a857309961326e91611d25565b9190978892809c8795613280906131c4565b9c8d9561325794613241613249959e50509c9e509495969290919e8f90928e9a95938e613219565b5050505093509350935050106132ba57565b631ce9aa4b60e11b5f5260045ffd5b6132d6906109628861160b565b6132e1858588612b04565b358082106132ef575061325d565b632d0a7cdd60e21b5f52610994925085611674565b613241909261323b565b935097611c9d611c9d6133219289614331565b976020604051809a6370a0823160e01b825281806133423060048301610785565b03915afa8015611043578a995f9161335c575b50936131f9565b613375915060203d60201161103c5761102d8183611439565b5f613355565b5061338a6131b760178b61162f565b8a14156131e7565b60429061339d613cb9565b906040519161190160f01b8352600283015260228201522090565b6105b9916133c591613dd5565b90929192613e2d565b60ff81146133df576105b990613ea9565b506040515f80548060011c916001821680156134a7575b602084108114613493578385528492602084019190811561347a5750600114613427575b506105b992500382611439565b5f80805291507f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b84831061346357506105b99350015f61341a565b80548284015285935060209092019160010161344f565b60ff19168252506105b993151560051b0190505f61341a565b634e487b7160e01b5f52602260045260245ffd5b92607f16926133f6565b60ff81146134c2576105b990613ea9565b506040515f6001548060011c9160018216801561355f575b602084108114613493578385528492602084019190811561347a575060011461350a57506105b992500382611439565b60015f90815291507fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b84831061354857506105b99350015f61341a565b805482840152859350602090920191600101613534565b92607f16926134da565b604081351891606082019363ffffffff6040840135169363ffffffe0601f8601169060608201602086013518179084019260608401359463ffffffff861694641fffffffe0608082019760051b1680915f925b8084106135d4575060809250010191011017611b2057565b90916020809163ffffffe0601f60808089890101359b848d18179b880101350116010193019291906135bc565b90602b1161362457803591601762ffffff8460601c9460481c1692013560601c90565b633b99b53d60e01b5f5260045ffd5b91909161369a6040519261366b8461365d602082019363095ea7b360e01b855288602484016129d4565b03601f198101865285611439565b83516001600160a01b038416915f91829182855af1906136896117de565b826136f0575b50816136e957501590565b6136a357505050565b60405163095ea7b360e01b60208201526001600160a01b0390931660248401525f6044840152610132926136e4906136de8160648101610d24565b826140c1565b6140c1565b3b15919050565b80519192508115918215613708575b5050905f61368f565b61371b92506020809183010191016129bf565b5f806136ff565b9081602091031261012357516105b981610112565b5f80809381935af11561374657565b60405162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b6044820152606490fd5b51906001600160701b038216820361012357565b90816060910312610123576137a981613781565b9160406137b860208401613781565b9201516105b981611f37565b90926080926105b995948352602083015260018060a01b03166040820152816060820152019061048d565b9493929391909161381961380661285a8589612aec565b61381361285a868a612af5565b9061423b565b50915f19840195600119850191831515985f955b898710613841575050505050505050505050565b61384f61285a888a85612b04565b9361386161285a60018a018b86612b04565b604051630240bc6b60e21b8152909590916001600160a01b038116606084600481845afa918215611043576138df945f905f94613ba5575b506001600160a01b03948516966001600160701b039485169516871493168315613b9b579060209194965b60405180809881946370a0823160e01b835260048301610785565b03915afa978815611043578f6139078f9a978f978e9988915f91613b7d575b50039687614252565b9315613b75578c5f94965b8c821015613b675761392f61285a6139779260028501908d612b04565b847f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006142ad565b9890985b9b83613b51575b5050505f14613aea576040516370a0823160e01b81526001600160a01b0391909116949092602084806139b88a60048301610785565b0381895afa938415611043575f94613aca575b506139d46114a1565b92803b15610123575f92838993613a016040519788968795869463022c0d9f60e01b8652600486016137c4565b03925af1801561104357613ab6575b50602060405180946370a0823160e01b82528180613a318960048301610785565b03915afa90811561104357613a5f935f92613a96575b5090036a0c097ce7bc90715b34b9f160241b02611642565b613a6a88888c612b04565b35808210613a815750506001905b9601959261382d565b6365d564a560e01b5f52610994925088611674565b613aaf91925060203d811161103c5761102d8183611439565b905f613a47565b8061221e5f613ac493611439565b5f613a10565b613ae391945060203d811161103c5761102d8183611439565b925f6139cb565b5093929150613af76114a1565b93803b15610123575f92838593613b246040519889968795869463022c0d9f60e01b8652600486016137c4565b03925af191821561104357600192613b3d575b50613a78565b8061221e5f613b4b93611439565b5f613b37565b613b5b9350612b04565b3515158c8f8d90613982565b5050955087958c8c5f61397b565b8c5f96613912565b613b95915060203d811161103c5761102d8183611439565b5f6138fe565b95602091906138c4565b9050613bc991935060603d8111613bd2575b613bc18183611439565b810190613795565b5092905f613899565b503d613bb7565b90916105b993613be89161423b565b9290916142be565b5f91826044926020956040519363a9059cbb60e01b8552600485015260248401525af13d15601f3d1160015f511416171615613c2857565b60405162461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b6044820152606490fd5b6127108211613c795761271091613c759161162f565b0490565b636f5500f360e11b5f5260045ffd5b5f5f805160206156158339815191525d565b5f805160206156158339815191525d565b90602b116101235790602b90565b307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161480613dac575b15613d14577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a08152613da660c082611439565b51902090565b507f00000000000000000000000000000000000000000000000000000000000000004614613ceb565b8151919060418303613e0557613dfe9250602082015190606060408401519301515f1a90614340565b9192909190565b50505f9160029190565b60041115613e1957565b634e487b7160e01b5f52602160045260245ffd5b613e3681613e0f565b80613e3f575050565b613e4881613e0f565b60018103613e5f5763f645eedf60e01b5f5260045ffd5b613e6881613e0f565b60028103613e83575063fce698f760e01b5f5260045260245ffd5b80613e8f600392613e0f565b14613e975750565b6335e2f38360e21b5f5260045260245ffd5b60ff811690601f8211613ed85760405191613ec5604084611439565b6020808452838101919036833783525290565b632cd44ac360e21b5f5260045ffd5b909190600b811015613f7b5760078103613f0e5750613f099061013292614910565b614c32565b60068103613f295750613f249061013292614724565b614b0f565b60098103613f445750613f3f9061013292614910565b614975565b9160088314613f6757505061099491505b635cda29d760e01b5f52600452602490565b610132925090613f7691614724565b6147db565b600c8103613fca5750613f8d916146b4565b90613f97816146c7565b91808311613fb357509061013291613fad611ae6565b906145ba565b6312bacdd360e01b5f52600452602482905260445ffd5b600f81036140195750613fdc916146b4565b90613fe6816143d0565b9180831061400257509061013291613ffc611ae6565b90614427565b638b063d7360e01b5f52600452602482905260445ffd5b600b810361404d575061404761403561404192610132946143b8565b938294939291936144d0565b926144eb565b916145ba565b600e810361407f575061407361406961407992610132946143b8565b9282949291612888565b926144bc565b91614427565b91601083146140945750506109949150613f55565b61013292506140a96140b292614079926143b8565b92919390612888565b916140bc846143d0565b613c5f565b5f806140e99260018060a01b03169360208151910182865af16140e26117de565b90836154c0565b8051908115159182614111575b50506140ff5750565b635274afe760e01b5f5260045260245ffd5b61412492506020809183010191016129bf565b155f806140f6565b9193929061413d614145928661423b565b9181946142be565b604051630240bc6b60e21b815290936060826004816001600160a01b0389165afa918215611043575f905f9361419b575b506001600160701b03928316939216916001600160a01b03918216911603610b335791565b90506141b791925060603d606011613bd257613bc18183611439565b5091905f614176565b9080158015614233575b61422457816141d89161162f565b916103e88302928084046103e814901517156116065781810391818311611606576103e583029283046103e514911417156116065761421691611642565b600181018091116116065790565b633dce448b60e11b5f5260045ffd5b5082156141ca565b6001600160a01b038281169082161015610b335791565b8115928380156142a5575b614224576103e58202918083046103e5149015171561160657614280908261162f565b926103e883029283046103e8141715611606578101809111611606576105b991611642565b50801561425d565b9261413d906142bb9361423b565b91565b6040516001600160601b0319606094851b8116602083019081529590941b9093166034840152602883529092909161432191906142fc604882611439565b519020614313604051948592602084019586611bae565b03601f198101845283611439565b905190206001600160a01b031690565b90601411613624573560601c90565b91906fa2a8918ca85bafe22016d0b997e4df60600160ff1b0384116143ad579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15611043575f516001600160a01b038116156143a357905f905f90565b505f906001905f90565b5050505f9160039190565b90606011611b20578035916040602083013592013590565b6143fb81307f0000000000000000000000000000000000000000000000000000000000000000614da6565b905f8212614407575090565b634c085bf160e01b5f9081526001600160a01b0391909116600452602490fd5b908215612a6d577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561012357604051630b0d9c0960e01b81526001600160a01b03938416600482015291909216602482015260448101929092525f908290606490829084905af18015611043576144a75750565b806144b35f8093611439565b80031261012357565b90816144cc576105b991506143d0565b5090565b156144e7575f805160206155f58339815191525c90565b3090565b907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168061455857505f5b6001600160a01b0316918215801561454a575b6145405750506105b990614e47565b6105b99250614e22565b50600160ff1b811415614531565b6040516312f7fd6760e11b815290602090829081806145836001600160a01b03881660048301610785565b03915afa908115611043575f9161459b575b5061451e565b6145b4915060203d602011612581576125738183611439565b5f614595565b908215612a6d577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691823b1561012357604051632961046560e21b81525f81806146108560048301610785565b038183885af18015611043576146a0575b506001600160a01b03811661466f575050602090600460405180948193630476982d60e21b83525af18015611043576146575750565b612aa59060203d60201161103c5761102d8183611439565b5f936020939261467e92614ead565b600460405180948193630476982d60e21b83525af18015611043576146575750565b8061221e5f6146ae93611439565b5f614621565b9190604011611b20576020823592013590565b6146f281307f0000000000000000000000000000000000000000000000000000000000000000614da6565b905f821361470457506105b9906115f6565b63019a8d9360e51b5f9081526001600160a01b0391909116600452602490fd5b9061016011611b205780350190565b356001600160801b03811681036101235790565b356105b981610348565b91908260a09103126101235760405161476981611419565b6080808294803561477981610112565b8452602081013561478981610112565b6020850152604081013561479c8161181a565b604085015260608101356147af81611827565b60608501520135916147c083610112565b0152565b6001600160801b0390811660045216602452604490565b6147e760c08201614733565b6001600160801b038116156148d3575b61484861484361091e61483d61480f60a08701614747565b6001600160801b0390951694859061482b610120890189610aea565b929091614838368b614751565b615158565b600f0b90565b6150ac565b9160e081019261486661485a85614733565b6001600160801b031690565b6001600160801b038216949085116148b75750506101000135918261488a57505050565b6109626148969261160b565b908082106148a2575050565b63efc8d8eb60e01b5f5260045260245260445ffd5b906148c461099492614733565b6312bacdd360e01b5f526147c4565b506148e060a08201614747565b15614901576148fc6148436148f76020840161273a565b6146c7565b6147f7565b6148fc6148436148f78361273a565b9060e011611b205780350190565b903590601e198136030182121561012357018035906001600160401b03821161012357602001918160051b3603831361012357565b9190811015610ae55760051b81013590609e1981360301821215610123570190565b906020820191614985838261491e565b5f92915061499560608301614733565b9061499f8361273a565b906001600160801b03831615614afb575b60408401816149bf828761491e565b801515948592509082614af0575b5050614ae1579193825b614a06575050505050608091929350016149f361485a82614733565b6001600160801b038316116148b7575050565b849650614a3590614a67614a6061483d614a3c614a278e8c9b999a9b61491e565b5f198b019791889190614953565b998a615255565b6001600160801b039095169485614a5660808d018d610aea565b9390921590615158565b5f036150ac565b97614a85575b5050614a79869461273a565b925f19019193826149d7565b614aa9906001600160801b038916906a0c097ce7bc90715b34b9f160241b02611642565b90614abe81614ab8858a61491e565b90612b04565b3590818310614acd5750614a6d565b63e651804360e01b5f526109949350611674565b63115eb5b360e31b5f5260045ffd5b14159050815f6149cd565b9150614b09614843826146c7565b916149b0565b614b1b60c08201614733565b906001600160801b03821615614bf3575b614b74614b6f614b3e60a08401614747565b6001600160801b0390941693614b53856115f6565b90614b62610120860186610aea565b9290916148383688614751565b615327565b9060e0810191614b8661485a84614733565b6001600160801b03821693908410614bd757505061010001359182614baa57505050565b610962614bb69261160b565b90808210614bc2575050565b634713c18b60e01b5f5260045260245260445ffd5b90614be461099492614733565b638b063d7360e01b5f526147c4565b9050614c0160a08201614747565b15614c2057614c1a614843614c158361273a565b6143d0565b90614b2c565b614c1a614843614c156020840161273a565b6020810190614c41828261491e565b5f93915080614c4f8461273a565b92614c5c60608601614733565b6001600160801b03811615614d94575b6040860191614c7b838861491e565b801515958692509082614d89575b5050614ae1575f9591949395945b848610614cc75750505050505050608001614cb461485a82614733565b6001600160801b03831610614bd7575050565b869850614d17614b6f614cf2614ceb89614ce5878e9d9b9c9d61491e565b90614953565b9586615255565b6001600160801b0390941693614d0b6080880188610aea565b929091865f0391615158565b98614d35575b506001614d2a899361273a565b960194939591614c97565b614d58906001600160801b038a166a0c097ce7bc90715b34b9f160241b02611642565b614d6687614ab8868b61491e565b35808210614d745750614d1d565b63a9b7edf760e01b5f52610994925087611674565b14159050855f614c89565b50614da1614843856143d0565b614c6c565b6001600160a01b039182165f9081529282166020908152604093849020935163789add5560e11b815260048101949094529183916024918391165afa908115611043575f91614df3575090565b90506020813d602011614e1a575b81614e0e60209383611439565b81010312610123575190565b3d9150614e01565b90600160ff1b8203614e38576105b99150614e47565b816144cc576105b991506146c7565b6001600160a01b038116614e5a57504790565b6040516370a0823160e01b815230600482015290602090829060249082906001600160a01b03165afa908115611043575f91614e94575090565b6105b9915060203d60201161103c5761102d8183611439565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168061504a57505f5b6001600160a01b03811691821561503c5760405163aeb5556960e01b81526001600160a01b03919091169390602081600481885afa908115611043575f9161501d575b501561500e57614f686020614f35611ae6565b60405163f493cec360e01b81526001600160a01b039091166004820152600160f01b602482015291829081906044820190565b0381885afa908115611043575f91614fef575b5015614fe1576001600160a01b0381163003614fd45750508282614f9e9261542f565b803b1561012357604051630934f6c760e21b815260048101929092525f908290602490829084905af18015611043576122105750565b6101329493919250615374565b6282b42960e81b5f5260045ffd5b615008915060203d602011612511576125038183611439565b5f614f7b565b63888f378560e01b5f5260045ffd5b615036915060203d602011612511576125038183611439565b5f614f22565b90506101329392915061533d565b6040516312f7fd6760e11b815290602090829081806150756001600160a01b03881660048301610785565b03915afa908115611043575f9161508d575b50614edf565b6150a6915060203d602011612581576125738183611439565b5f615087565b6001600160801b03811691908290036150c157565b6393dafdf160e01b5f5260045ffd5b6001600160a01b039091169052565b81516001600160a01b03908116825260208084015182168184015260408085015162ffffff168185015260608086015160020b908501526080948501518316948401949094528451151560a084015284015160c083015291909201511660e08201526105b9929061012090816101008201520191611718565b936020919394845f14615223576151aa6401000276a4925b61518f61517b61146c565b8815158152948787870152604086016150d0565b604051633cf3645360e21b81529788948594600486016150df565b03815f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1928315611043575f93615200575b505f13901515145f146151fa57600f0b90565b60801d90565b5f91935061521c9060203d60201161103c5761102d8183611439565b92906151e7565b6151aa73fffd8963efd1fc6a506488495d951d5263988d2592615170565b356105b98161181a565b356105b981611827565b905f608060405161526581611419565b82815282602082015282604082015282606082015201526152858261273a565b906001600160a01b03808316908216101561530b57906142bb9061530260015b946152f86152b560208301615241565b6152ec6152d060606152c96040870161524b565b950161273a565b956152e36152dc61147b565b998a6150d0565b602089016150d0565b62ffffff166040870152565b60020b6060850152565b608083016150d0565b6001600160a01b03918216916142bb91166153028184146152a5565b5f81600f0b126150c1576001600160801b031690565b61013292916001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169216611cb8565b6001600160a01b03918216927f000000000000000000000000000000000000000000000000000000000000000090921691823b1561012357604051631b63c28b60e11b8152925f9284928391859183916153df91906001600160a01b038c16908b9060048601613066565b03925af180156110435761541b575b50803b1561012357604051630934f6c760e21b815260048101929092525f9082908183816024810161283b565b8061221e5f61542993611439565b5f6153ee565b9091906001600160a01b03811661545c57505f80808061545094865af11590565b6154575750565b61558b565b6040805163a9059cbb60e01b81526001600160a01b039094166004850152602484019290925291905f9060208260448582885af13d15601f3d116001855114161716928281528260208201520152156154b25750565b6001600160a01b031661551e565b906154e457508051156154d557805190602001fd5b630a12f52160e11b5f5260045ffd5b81511580615515575b6154f5575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b156154ed565b6040516390bfb86560e01b81526001600160a01b03909116600482015263a9059cbb60e01b60248201526080604482015260a03d601f01601f191690810160648301523d60848301523d5f60a484013e808201600460a482015260c4633c9fd93960e21b91015260e40190fd5b6040516390bfb86560e01b81526001600160a01b0390911660048201525f602482018190526080604483015260a03d601f01601f191690810160648401523d6084840152903d9060a484013e808201600460a482015260c4633d2cec6f60e21b91015260e40190fdfe0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a708af28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f692a42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb6d317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee31a164736f6c634300081a000a'; + return hex'6102c080604052346104835761016081616269803803809161002182856104a2565b833981010312610483576040519061016082016001600160401b0381118382101761046f57604052610052816104c5565b8252610060602082016104c5565b9160208101928352610074604083016104c5565b9260408201938452610088606084016104c5565b93606083019485526080840151926080810193845260a08501519360a082019485526100b660c087016104c5565b9660c083019788526100ca60e088016104c5565b9160e084019283526100df61010089016104c5565b96876101008601526101086101406100fa6101208c016104c5565b9a8b610120890152016104c5565b998a6101408701526040519861011d8a610487565b6001600160a01b039081168a52998a1660208a019081529051945195519751604051919a9198908216979682169695821695911661015a89610487565b8852602088019687525192519151905160405190936001600160a01b039384169316608082016001600160401b0381118382101761046f5760405281526020810192835260408101918252606081019384526040516101ba6040826104a2565b600f815260208101906e2ab734bb32b939b0b62937baba32b960891b8252604051916101e76040846104a2565b600183526020830191601960f91b8352610200816104d9565b6101205261020d8461066f565b61014052519020918260e05251902080610100524660a0526040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815261027660c0826104a2565b5190206080523060c052516001600160a01b0390811661016052905161018052905181166101a05290516101c0526101e091909152610200919091529051811661022052905181166102405290518116610260529051811661028052166102a052604051615ac190816107a8823960805181613dda015260a05181613e97015260c05181613da4015260e05181613e2901526101005181613e4f015261012051816104fc01526101405181610528015261016051818181612c3401528181612db00152613a3b015261018051818181612c5501528181612d8f0152613a1a01526101a05181611d7c01526101c05181611d5a01526101e0518181816105ee015281816107df01528181611213015281816117e001528181612721015281816144bf015281816147b2015281816148bd0152818161507e0152818161546d01526156020152610200518181816106b501528181610ddf01528181610e7001528181614530015281816146dd01528181615197015281816157780152615944015261022051818181611797015281816129c70152612b07015261024051818181610d37015281816128e401528181613192015261563801526102605181818161045e01528181611187015261252f015261028051818181610756015261127201526102a05181818161041a0152818161223301526123470152f35b634e487b7160e01b5f52604160045260245ffd5b5f80fd5b604081019081106001600160401b0382111761046f57604052565b601f909101601f19168101906001600160401b0382119082101761046f57604052565b51906001600160a01b038216820361048357565b908151602081105f14610553575090601f815111610513576020815191015160208210610504571790565b5f198260200360031b1b161790565b604460209160405192839163305a27a960e01b83528160048401528051918291826024860152018484015e5f828201840152601f01601f19168101030190fd5b6001600160401b03811161046f575f54600181811c91168015610665575b602082101461065157601f811161061f575b50602092601f82116001146105c057928192935f926105b5575b50508160011b915f199060031b1c1916175f5560ff90565b015190505f8061059d565b601f198216935f8052805f20915f5b86811061060757508360019596106105ef575b505050811b015f5560ff90565b01515f1960f88460031b161c191690555f80806105e2565b919260206001819286850151815501940192016105cf565b5f8052601f60205f20910160051c810190601f830160051c015b8181106106465750610583565b5f8155600101610639565b634e487b7160e01b5f52602260045260245ffd5b90607f1690610571565b908151602081105f1461069a575090601f815111610513576020815191015160208210610504571790565b6001600160401b03811161046f57600154600181811c9116801561079d575b602082101461065157601f811161076a575b50602092601f821160011461070957928192935f926106fe575b50508160011b915f199060031b1c19161760015560ff90565b015190505f806106e5565b601f1982169360015f52805f20915f5b868110610752575083600195961061073a575b505050811b0160015560ff90565b01515f1960f88460031b161c191690555f808061072c565b91926020600181928685015181550194019201610719565b60015f52601f60205f20910160051c810190601f830160051c015b81811061079257506106cb565b5f8155600101610785565b90607f16906106b956fe60806040526004361015610022575b3615610018575f80fd5b610020611794565b005b5f3560e01c80631a27b2011461010157806324856bc3146100fc5780633593564c146100f757806344684dc3146100f25780638021fef7146100ed578063817122dc146100e857806384b0196e146100e357806391dd7346146100de578063ab769d37146100d9578063d04d79a2146100d4578063d0c9f6cb146100cf578063d737d0c7146100ca578063dc4c90d3146100c55763fa461e330361000e5761080e565b6107ca565b610798565b610741565b6106e4565b6106a0565b6105bc565b6104e4565b610449565b610405565b61036a565b6102a9565b6101f8565b61014d565b6001600160a01b031690565b6001600160a01b0381160361012357565b5f80fd5b359061013282610112565b565b6001600160a01b03165f90815260026020526040902090565b346101235760403660031901126101235760043561016a81610112565b6024359060018060a01b03165f52600260205260405f20905f52602052602060ff60405f2054166040519015158152f35b9181601f84011215610123578235916001600160401b038311610123576020838186019501011161012357565b9181601f84011215610123578235916001600160401b038311610123576020808501948460051b01011161012357565b6040366003190112610123576004356001600160401b0381116101235761022390369060040161019b565b6024356001600160401b038111610123576102429036906004016101c8565b913330146102a0575f80516020615a158339815191525c6001600160a01b03166102915761027f93335f80516020615a158339815191525d610b4e565b5f5f80516020615a158339815191525d005b6337affdbf60e11b5f5260045ffd5b61002093610b4e565b6060366003190112610123576004356001600160401b038111610123576102d490369060040161019b565b6024356001600160401b038111610123576102f39036906004016101c8565b916044354211610339573330146102a0575f80516020615a158339815191525c6001600160a01b03166102915761027f93335f80516020615a158339815191525d610b4e565b632dfb7c8b60e11b5f5260045ffd5b8015150361012357565b6084359061013282610348565b359061013282610348565b610100366003190112610123576004356001600160401b0381116101235761039690369060040161019b565b906024356001600160401b038111610123576103b69036906004016101c8565b926044356064356103c5610352565b9060a43560c435979093906001600160401b038911610123576103ef61002099369060040161019b565b97909660e4359961132d565b5f91031261012357565b34610123575f366003190112610123576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610123575f366003190112610123576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b90602080835192838152019201905f5b8181106104ce5750505090565b82518452602093840193909201916001016104c1565b34610123575f366003190112610123576105766105207f00000000000000000000000000000000000000000000000000000000000000006134cb565b6105a461054c7f00000000000000000000000000000000000000000000000000000000000000006135ae565b610584610557611598565b91604051958695600f60f81b875260e0602088015260e087019061048d565b90858203604087015261048d565b904660608501523060808501525f60a085015283820360c08501526104b1565b0390f35b9060206105b992818152019061048d565b90565b34610123576020366003190112610123576004356001600160401b038111610123576105ec90369060040161019b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036106915761062591613666565b90818303610682575f5b838110610656576105a4604051610647602082611530565b5f8152604051918291826105a8565b8061067c6106676001938789610ad9565b3560f81c610676838787610b1c565b91613fcf565b0161062f565b63aaad13f760e01b5f5260045ffd5b63570c108560e11b5f5260045ffd5b34610123575f366003190112610123576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610123575f36600319011261012357604080516001600160a01b035f80516020615a958339815191525c1681525f80516020615a558339815191525c60208201525f80516020615a758339815191525c91810191909152606090f35b34610123575f366003190112610123576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b6001600160a01b03909116815260200190565b34610123575f366003190112610123576040516001600160a01b035f80516020615a158339815191525c168152602090f35b34610123575f366003190112610123576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610123576060366003190112610123576024356004356044356001600160401b0381116101235761084490369060040161019b565b92905f831392831580610a61575b610a5257610899926108819161086a8785018561166b565b90996001600160a01b039092169690959250611c04565b92909161088e84846136fe565b999198908a8a611cf0565b336001600160a01b0390911603610a43578015610a2a5790978891906001600160a01b03818116908a16105b156108dd575050505050505061002093503391611dc4565b909192939495989997506108f2866042111590565b1561099e57508651610944575b5050509461092361091661091e9361002098611e31565b939092611e47565b6116ed565b94801561093c5761093390611779565b945b3390611ee3565b505f94610935565b61095d610967938a93610962935f1461099757506116ed565b611702565b611739565b6109718686611757565b5180821061097f57806108ff565b631c1763d160e11b5f5261099492508661176b565b5ffd5b90506116ed565b969450909192505f80516020615a358339815191529796975c8711610a1b5783516109d4575b5050505061002093503391611dc4565b8661096261095d6109f7958b956109f1955f1461099757506116ed565b92611757565b51808210610a065780806109c4565b631c1763d160e11b5f5261099492508561176b565b6339cedf2960e11b5f5260045ffd5b91978892906001600160a01b03898116908216106108c5565b6332b13d9160e01b5f5260045ffd5b63316cf0eb60e01b5f5260045ffd5b505f831315610852565b929190333014610abc575f80516020615a158339815191525c6001600160a01b031661029157610aaa93335f80516020615a158339815191525d610b4e565b5f5f80516020615a158339815191525d565b61013293610b4e565b634e487b7160e01b5f52603260045260245ffd5b90821015610ae5570190565b610ac5565b903590601e198136030182121561012357018035906001600160401b0382116101235760200191813603831361012357565b90821015610ae557610b339160051b810190610aea565b9091565b6040906105b993928152816020820152019061048d565b90939284810361131e575f5b858110610b6957505050509050565b610b74818785610ad9565b35610b80828487610b1c565b6060929160019160f884901c607f1660218110156112a557601081101561113f576008811015610f265780610c495750610bca82610bc183610bfc95611c8f565b92909382612806565b92909360808301355f14610c4257610be0611bf2565b925b604081013590610bf760208201359135612984565b6132cf565b159081610c33575b50610c125750600101610b5a565b604051632c4029e960e01b8152918291610c2f9160048401610b37565b0390fd5b600160ff1b161590505f610c04565b3092610be2565b60018103610ca15750610c6382610bc183610c9595611c8f565b92909360808301355f14610c9a57610c79611bf2565b925b604081013590610c9060208201359135612984565b613200565b610bfc565b3092610c7b565b60028103610cd2575050610c9590610cb7611bf2565b90604081013591610ccb6020830135612984565b913561318d565b9192909160038103610d705750505f92935090610d32610cf3849383611c64565b610d24610d01939293611bf2565b916040519485936020850197632a2d80d160e01b89528035019060248601611aab565b03601f198101835282611530565b5190827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af190610d6a6118d5565b91610bfc565b9092915060048103610e9f575080356001600160a01b038116151580610e6d575b610dbc575b81610da76020610c95940135612984565b6040909101356001600160a01b0316916130c3565b6040516312f7fd6760e11b81529160208380610ddb8560048301610785565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa8015610e6857610c95935f91610e3a575b506001600160a01b038116610e32575b509150610d96565b91505f610e2a565b610e5b915060203d8111610e61575b610e538183611530565b810190611a96565b5f610e1a565b503d610e49565b6119cb565b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161515610d91565b60058103610ec65750806040610c9592013590610ebf6020820135612984565b9035613038565b60068103610eed5750806040610c9592013590610ee66020820135612984565b9035612fc2565b60078103610f145750806040610c9592013590610f0d6020820135612984565b9035612f08565b636bb50f4f60e11b5f5260045260245ffd5b90919060088103610f8657508181610f44610c9594610f4d946127e6565b93909282612806565b92909360808301355f14610f7f57610f63611bf2565b925b604081013590610f7a60208201359135612984565b612d53565b3092610f65565b60098103610fda57508181610f44610c9594610fa1946127e6565b92909360808301355f14610fd357610fb7611bf2565b925b604081013590610fce60208201359135612984565b612c11565b3092610fb9565b909290600a81036110275750505f92935081610ffa610d32928594611c39565b929091610d24611008611bf2565b9460405194859360208501976302b67b5760e41b895260248601611a48565b909290600b810361104c5750610c95915061104760208201359135612984565b612aec565b600c810361106e5750610c95915061106960208201359135612984565b6129b6565b600d81036110935750610c9591611084916127c9565b9061108d611bf2565b916128d5565b9092509050600e8103610f1457506040516370a0823160e01b815290602082806110c1843560048301610785565b0381848401356001600160a01b03165afa918215610e68575f9261110c575b5060400135111580610c95576040516351940b3960e11b6020820152909250610d6a8160248101610d24565b60409192506111319060203d8111611138575b6111298183611530565b8101906119bc565b91906110e0565b503d61111f565b90919060108103611155575090610c95916126f3565b93945092909150601181036111ba57505f91908161117384936126d7565b61118260405180938193611904565b0390827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af190610d6a6118d5565b601281036111d957505f919082916111736111d3611bf2565b826124e0565b601381036112465750505f809160405161120e81610d24602082019463313b65df60e11b865260a08101359060248401611929565b5190827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af190610d6a6118d5565b60148103610f1457505f91829161125d8183612401565b479161126e60405180938193611904565b03917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af190610d6a6118d5565b939490939192604083101561130457505060218103610f1457506112f5610d246112d15f948594613666565b60409593959491945194859360208501976324856bc360e01b89526024860161182f565b519082305af190610d6a6118d5565b9290949391604081145f14610f14575090610c9591612201565b631fec674760e31b5f5260045ffd5b95909698929a999791978042116103395761134a8c9a9b9c611b61565b5f5b8b81106114cb5750868661140b61141b958f611421999896610d24918f8f61139a906114139a60405161138781610d24602082018095611b93565b51902096156114c45733925b36916115ce565b6020815191012097604051978896602088019a8b93909796959260e095926101008601997f4b503a2e339bf072a489301f3eec7abaefc520266c462796ed9267bbcc6e407c8752602087015260408601526060850152608084015260018060a01b031660a083015260c08201520152565b51902061348f565b9236916115ce565b906134b5565b60018801611469575b61146197505f80516020615a958339815191525d5f80516020615a558339815191525d5f80516020615a758339815191525d610a6b565b610132611bc0565b61148d6114868961147984610134565b905f5260205260405f2090565b5460ff1690565b6114b6576114b16114a46114619961147984610134565b805460ff19166001179055565b61142a565b623f613760e71b5f5260045ffd5b5f92611393565b806114e08d9f9e9d600193611393918f610b1c565b602081519101206114f18285611757565b52019c9a9b9c61134c565b634e487b7160e01b5f52604160045260245ffd5b60a081019081106001600160401b0382111761152b57604052565b6114fc565b601f909101601f19168101906001600160401b0382119082101761152b57604052565b604051906101326101a083611530565b60405190610132606083611530565b6040519061013260a083611530565b6001600160401b03811161152b5760051b60200190565b604051906115a7602083611530565b5f808352366020840137565b6001600160401b03811161152b57601f01601f191660200190565b9291926115da826115b3565b916115e86040519384611530565b829481845281830111610123578281602093845f960137010152565b9080601f83011215610123578160206105b9933591016115ce565b92919061162b81611581565b936116396040519586611530565b602085838152019160051b810192831161012357905b82821061165b57505050565b813581526020918201910161164f565b6080818303126101235780356001600160401b0381116101235782611691918301611604565b9260208201356116a081610112565b9260408301356001600160401b03811161012357830181601f82011215610123576060918160206116d39335910161161f565b92013590565b634e487b7160e01b5f52601160045260245ffd5b600160ff1b81146116fd575f0390565b6116d9565b6a0c097ce7bc90715b34b9f160241b8082029291801590840490911417156116fd57565b818102929181159184041417156116fd57565b8115611743570490565b634e487b7160e01b5f52601260045260245ffd5b8051821015610ae55760209160051b010190565b600452602452604452606490565b5f198101919082116116fd57565b919082039182116116fd57565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161415806117dc575b6117cd57565b631c5deabb60e11b5f5260045ffd5b50337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614156117c7565b908060209392818452848401375f828201840152601f01601f1916010190565b9391906118449160408652604086019161180f565b926020818503910152808352602083019060208160051b85010193835f91601e1982360301905b84841061187c575050505050505090565b90919293949596601f19828203018752873583811215610123578401602081019190356001600160401b038111610123578036038313610123576118c6602092839260019561180f565b9901970195940192919061186b565b3d156118ff573d906118e6826115b3565b916118f46040519384611530565b82523d5f602084013e565b606090565b908092918237015f815290565b62ffffff81160361012357565b8060020b0361012357565b90929160a0906119b0608060c0850196803561194481610112565b600180871b03168652602081013561195b81610112565b600180871b0316602087015262ffffff604082013561197981611911565b166040870152606081013561198d8161191e565b60020b606087015201356119a081610112565b6001600160a01b03166080850152565b600180831b0316910152565b90816020910312610123575190565b6040513d5f823e3d90fd5b359065ffffffffffff8216820361012357565b65ffffffffffff611a42606080938035611a0281610112565b6001600160a01b031686526020810135611a1b81610112565b6001600160a01b0316602087015283611a36604083016119d6565b166040870152016119d6565b16910152565b60a06105b9959361010093600180841b03168352611a6960208401826119e9565b6080810135611a7781610112565b600180841b031682840152013560c08201528160e0820152019161180f565b9081602091031261012357516105b981610112565b6001600160a01b0390911681526060602082015290939260c08201929091853536879003601e190181121561012357860160208101949035906001600160401b038211610123578160071b360386136101235781906060808501525260e0820194905f5b818110611b4357505050604086611b2f6119a060206105b9999a01610127565b013560a0820152604081850391015261180f565b90919560808082611b566001948b6119e9565b019701929101611b0f565b90611b6b82611581565b611b786040519182611530565b8281528092611b89601f1991611581565b0190602036910137565b80516020909101905f5b818110611baa5750505090565b8251845260209384019390920191600101611b9d565b5f5f80516020615a958339815191525d5f5f80516020615a558339815191525d5f5f80516020615a758339815191525d565b5f80516020615a158339815191525c90565b909163ffffffff82351682019263ffffffff84351692602080860195850101910110611c2c57565b633b99b53d5f526004601cfd5b909163ffffffff60c08301351682019263ffffffff84351692602080860195850101910110611c2c57565b909163ffffffff60208301351682019263ffffffff84351692602080860195850101910110611c2c57565b909163ffffffff60608301351682019263ffffffff84351692602080860195850101910110611c2c57565b6001600160f81b0319815260609190911b6001600160601b03191660018201526015810191909152603581019190915260550190565b6105b992611da992906001600160a01b0380831690841611611dae575b604080516001600160a01b0394851660208201908152949093169083015262ffffff166060808301919091528152611d46608082611530565b519020604051611da181610d2460208201947f0000000000000000000000000000000000000000000000000000000000000000907f000000000000000000000000000000000000000000000000000000000000000087611cba565b519020610106565b610106565b909190611d0d565b90601482018092116116fd57565b909291906001600160a01b0384163003611de2576101329350613038565b91926001600160a01b038411611e0557610132936001600160a01b03169261318d565b63c4bd89a960e01b5f5260045ffd5b909291928360041161012357831161012357600401916003190190565b9190918260171161012357601701916016190190565b600160ff1b8110156101235790565b959493611e7260609492611e8f9460808a5260808a019161180f565b6001600160a01b03909216602088015286820360408801526104b1565b930152565b9190826040910312610123576020825192015190565b6001600160a01b039182168152911515602083015260408201929092529116606082015260a0608082018190526105b99291019061048d565b92919395949094611ef483866136fe565b6001600160a01b038084169082161098899590939092611f15929091611cf0565b611f1e90610106565b611f2790610106565b94845f14604098610d245f96611f7195611f5594611fb9576401000276a49e5b8d5196879560208701611e56565b8751630251596160e31b8152998a978896879560048701611eaa565b03925af18015610e68575f925f91611f8857509192565b9050611fad91925060403d604011611fb2575b611fa58183611530565b810190611e94565b919092565b503d611f9b565b73fffd8963efd1fc6a506488495d951d5263988d259e611f47565b91939490611fe284866136fe565b6001600160a01b038082169084161097889490939092612003929091611cf0565b61200c90610106565b61201590610106565b93835f1496611f555f94610d2486611f719560409c611fb9576401000276a49e8d5196879560208701611e56565b63ffffffff81160361012357565b359061013282612043565b602081830312610123578035906001600160401b03821161012357016101a0818303126101235761208b611553565b9161209582610127565b83526120a360208301610127565b60208401526120b460408301610127565b60408401526120c560608301610127565b60608401526080820135608084015260a082013560a084015260c082013560c08401526120f460e08301610127565b60e08401526121066101008301612051565b6101008401526121196101208301612051565b61012084015261212c6101408301612051565b610140840152610160820135916001600160401b0383116101235761215961018092612165948301611604565b6101608501520161035f565b61018082015290565b6001600160a01b039182168152918116602083015291821660408201529181166060830152608082019290925260a081019290925260c0820192909252911660e08201526105b994936101809391926121f3926121e5916121d79063ffffffff16610100870152565b63ffffffff16610120850152565b63ffffffff16610140830152565b81610160820152019061048d565b61220d9181019061205c565b6080810151905f600160ff1b831461237a575b61018082015115612330575081905b80517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316929061226690610106565b6122736020840151610106565b6122806040850151610106565b9161228e6060860151610106565b9460a08101519060c08101516122a760e0830151610106565b61010083015163ffffffff16906122c661012085015163ffffffff1690565b926101606122dc61014087015163ffffffff1690565b950151958c3b1561012357604051633dc9c91960e11b81529d8e9c8d9b8c9b6123089b60048e0161216e565b03915a945f95f18015610e685761231c5750565b8061232a5f61013293611530565b806103fb565b9061237583612345611da96040850151610106565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690613730565b61222f565b915061238a610180820151151590565b15612396574791612220565b6123a9611da9611da96040840151610106565b602060405180926370a0823160e01b825281806123c93060048301610785565b03915afa908115610e68575f916123e2575b5091612220565b6123fb915060203d602011611138576111298183611530565b5f6123db565b80356322b9af7160e01b6001600160e01b03198216016124c4575061242d826124339361242d93611e14565b90611c04565b5f5b81811061244157505050565b61246f612469612463612455848688610ad9565b356001600160f81b03191690565b60f81c90565b60ff1690565b80159081156124b9575b81156124ae575b81156124a3575b5061249457600101612435565b635d1d0f9f60e01b5f5260045ffd5b60039150145f612487565b600181149150612480565b600481149150612479565b63f801e52560e01b5f526001600160e01b03191660045260245ffd5b80356001600160e01b031916630624e65f60e11b811480156126c7575b80156126b7575b156126a557506040516331a9108f60e11b815260049182013591810182905290916001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690602083602481855afa928315610e68575f93612684575b506001600160a01b03818116908416811492908315612624575b5082156125a8575b50501590505b6125965750565b63bb25d4c560e01b5f5260045260245ffd5b60405163e985e9c560e01b81526001600160a01b0394851660048201529190931660248201529160209150829060449082905afa8015610e685761258f915f916125f5575b505f80612589565b612617915060203d60201161261d575b61260f8183611530565b810190612abc565b5f6125ed565b503d612605565b60405163020604bf60e21b81526004810187905291935090602081602481875afa908115610e68575f91612665575b506001600160a01b031614915f612581565b61267e915060203d602011610e6157610e538183611530565b5f612653565b61269e91935060203d602011610e6157610e538183611530565b915f612567565b63f801e52560e01b5f5260045260245ffd5b50630852cd8d60e31b8114612504565b5063fc6f786560e01b81146124fd565b356001600160e01b03191663853d008560e01b81016126a55750565b6040516348c8949160e01b815260206004820152915f918391829161271c91602484019161180f565b0381837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af18015610e68576127585750565b3d805f833e6127678183611530565b810190602081830312610123578051906001600160401b038211610123570181601f8201121561012357805161279c816115b3565b926127aa6040519485611530565b81845260208284010111610123575f928160208094018483015e010152565b918235830191602083359481850194038560051b010111611c2c57565b916060830135830191602083359481850194038560051b010111611c2c57565b9160a0830135830191602083359481850194038560051b010111611c2c57565b9190811015610ae55760071b0190565b356105b981610112565b60208082528101839052604001915f5b81811061285d5750505090565b909192608080600192863561287181610112565b848060a01b03168152602087013561288881610112565b848060a01b0316602082015260408701356128a281610112565b848060a01b0316604082015260608701356128bc81610112565b848060a01b031660608201520194019101919091612850565b90915f5b8381106129485750507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691823b1561012357612937925f9283604051809681958294630d58b1db60e01b845260048401612840565b03925af18015610e685761231c5750565b61295b612956828686612826565b612836565b6001600160a01b03838116911603612975576001016128d9565b63e700287760e01b5f5260045ffd5b6001600160a01b038116600181036129aa5750505f80516020615a158339815191525c90565b6002036105b957503090565b6040516370a0823160e01b815290917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169060208380612a013060048301610785565b0381855afa928315610e68575f93612a9b575b508210612a8c5781612a2557505050565b803b1561012357604051632e1a7d4d60e01b815260048101839052905f908290602490829084905af18015610e6857612a78575b50306001600160a01b03831603612a6f575b5050565b6101329161381f565b8061232a5f612a8693611530565b5f612a59565b631a84bc4160e21b5f5260045ffd5b612ab591935060203d602011611138576111298183611530565b915f612a14565b9081602091031261012357516105b981610348565b6001600160a01b039091168152602081019190915260400190565b90600160ff1b8103612bd1575047905b81612b05575050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691823b1561012357604051630d0e30db60e41b81525f8160048185885af18015610e6857612bbd575b50306001600160a01b03831603612b6f575b505050565b612b93926020925f60405180968195829463a9059cbb60e01b845260048401612ad1565b03925af18015610e6857612ba5575b50565b612ba29060203d60201161261d5761260f8183611530565b8061232a5f612bcb93611530565b5f612b58565b9047821115612afc57631a84bc4160e21b5f5260045ffd5b9015610ae55790565b9060011015610ae55760200190565b9190811015610ae55760051b0190565b9290939196959460028310612d445786151580612d30575b612d215793965f94907f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000005f1986018681116116fd579190825b612cbf575050508811612cb0576101329785612cab92612ca66129568787612be9565b611dc4565b6138d7565b6345585e0b60e11b5f5260045ffd5b919a9750905f198b018b81116116fd57612d088c612cf6612ce4612d0f948b8b612c01565b3591612cef83610112565b8a8a612c01565b3590612d0182610112565b8486614214565b919a6142a8565b9a80156116fd575f1901919082612c83565b630c12651d60e31b5f5260045ffd5b505f1983018381116116fd57871415612c29565b632b94ab4360e21b5f5260045ffd5b9294969095919660028510612d445781151580612ef6575b612d2157612dd4612d7f6129568789612be9565b612d8c612956888a612bf2565b907f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000613cc1565b968781612edd575b505050612dfb611da9611da9612956612df488611779565b888a612c01565b91604051966370a0823160e01b885260208880612e1b8860048301610785565b0381875afa958615610e6857612e5f985f97612eaf575b509085612e44949392602098996138d7565b60405180809681946370a0823160e01b835260048301610785565b03915afa8015610e6857612e7a925f91612e90575b50611787565b10612e8157565b631093d5f360e31b5f5260045ffd5b612ea9915060203d602011611138576111298183611530565b5f612e74565b60209750612e4494939291612ed188928a3d8c11611138576111298183611530565b98509192939450612e32565b612eee92612ca6612956898b612be9565b5f8087612ddc565b50612f0085611779565b821415612d6b565b670de0b6b3a76400008311612fb3576001600160a01b031680612f4a5750612f44612f366101329347611726565b670de0b6b3a7640000900490565b9061381f565b906040516370a0823160e01b815260208180612f693060048301610785565b0381865afa908115610e685761013294612f8e92612f36925f91612f94575b50611726565b91613cd8565b612fad915060203d602011611138576111298183611530565b5f612f88565b6390f5ebeb60e01b5f5260045ffd5b6001600160a01b031680612fde5750612f446101329247613d47565b6040516370a0823160e01b8152306004820152909190602081602481865afa938415610e685761013294612f8e925f91613019575b50613d47565b613032915060203d602011611138576111298183611530565b5f613013565b9091906001600160a01b03168061305357506101329161381f565b600160ff1b8214613069575b9161013292613cd8565b6040516370a0823160e01b815230600482015292909150602083602481855afa8015610e6857610132935f916130a4575b509190925061305f565b6130bd915060203d602011611138576111298183611530565b5f61309a565b9091906001600160a01b0316806130e6575047908110612a8c5780612a6f575050565b91604051916370a0823160e01b8352602083806131063060048301610785565b0381875afa928315610e68575f93613142575b508210613133578161312a57505050565b61013292613cd8565b630ceb95c760e31b5f5260045ffd5b61315c91935060203d602011611138576111298183611530565b915f613119565b6001600160a01b039182168152918116602083015291821660408201529116606082015260800190565b9290917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690813b15610123575f80946131e560405197889687958694631b63c28b60e11b865260048601613163565b03925af18015610e68576131f65750565b5f61013291611530565b9492909695939193861515806132a5575b6132965761322761322d9161325198369161161f565b94613d82565b8351801561328e5761323e90611779565b945b61324c61091e89611e47565b611ee3565b9091901561327f5750613263906116ed565b0361327057610132613d70565b636a70124760e11b5f5260045ffd5b61328991506116ed565b613263565b505f94613240565b630e0fbd8760e21b5f5260045ffd5b506132b96132b4601789611726565b611db6565b831415613211565b5f1981146116fd5760010190565b97939795909192949587151596878098613478575b613296578998600160ff1b851461340b575b909950879391965f92808b8a61330a611598565b9e8f9061335493613346935b61332a613324836042111590565b98611e47565b908815613401575061333e30925b8a613d93565b929091611fd4565b9091901561099757506116ed565b966133c6575b50156133a557309961336b91611e31565b9190978892809c879561337d906132c1565b9c8d956133549461333e613346959e50509c9e509495969290919e8f90928e9a95938e613316565b5050505093509350935050106133b757565b631ce9aa4b60e11b5f5260045ffd5b6133d39061096288611702565b6133de858588612c01565b358082106133ec575061335a565b632d0a7cdd60e21b5f5261099492508561176b565b61333e9092613338565b935097611da9611da961341e9289614419565b976020604051809a6370a0823160e01b8252818061343f3060048301610785565b03915afa8015610e68578a995f91613459575b50936132f6565b613472915060203d602011611138576111298183611530565b5f613452565b506134876132b460178b611726565b8a14156132e4565b60429061349a613da1565b906040519161190160f01b8352600283015260228201522090565b6105b9916134c291613ebd565b90929192613f15565b60ff81146134dc576105b990613f91565b506040515f80548060011c916001821680156135a4575b60208410811461359057838552849260208401919081156135775750600114613524575b506105b992500382611530565b5f80805291507f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b84831061356057506105b99350015f613517565b80548284015285935060209092019160010161354c565b60ff19168252506105b993151560051b0190505f613517565b634e487b7160e01b5f52602260045260245ffd5b92607f16926134f3565b60ff81146135bf576105b990613f91565b506040515f6001548060011c9160018216801561365c575b6020841081146135905783855284926020840191908115613577575060011461360757506105b992500382611530565b60015f90815291507fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b84831061364557506105b99350015f613517565b805482840152859350602090920191600101613631565b92607f16926135d7565b604081351891606082019363ffffffff6040840135169363ffffffe0601f8601169060608201602086013518179084019260608401359463ffffffff861694641fffffffe0608082019760051b1680915f925b8084106136d1575060809250010191011017611c2c57565b90916020809163ffffffe0601f60808089890101359b848d18179b880101350116010193019291906136b9565b90602b1161372157803591601762ffffff8460601c9460481c1692013560601c90565b633b99b53d60e01b5f5260045ffd5b919091613797604051926137688461375a602082019363095ea7b360e01b85528860248401612ad1565b03601f198101865285611530565b83516001600160a01b038416915f91829182855af1906137866118d5565b826137ed575b50816137e657501590565b6137a057505050565b60405163095ea7b360e01b60208201526001600160a01b0390931660248401525f6044840152610132926137e1906137db8160648101610d24565b826141a9565b6141a9565b3b15919050565b80519192508115918215613805575b5050905f61378c565b6138189250602080918301019101612abc565b5f806137fc565b5f80809381935af11561382e57565b60405162461bcd60e51b815260206004820152601360248201527211551217d514905394d1915497d19052531151606a1b6044820152606490fd5b51906001600160701b038216820361012357565b908160609103126101235761389181613869565b9160406138a060208401613869565b9201516105b981612043565b90926080926105b995948352602083015260018060a01b03166040820152816060820152019061048d565b949392939190916139016138ee6129568589612be9565b6138fb612956868a612bf2565b90614323565b50915f19840195600119850191831515985f955b898710613929575050505050505050505050565b613937612956888a85612c01565b9361394961295660018a018b86612c01565b604051630240bc6b60e21b8152909590916001600160a01b038116606084600481845afa918215610e68576139c7945f905f94613c8d575b506001600160a01b03948516966001600160701b039485169516871493168315613c83579060209194965b60405180809881946370a0823160e01b835260048301610785565b03915afa978815610e68578f6139ef8f9a978f978e9988915f91613c65575b5003968761433a565b9315613c5d578c5f94965b8c821015613c4f57613a17612956613a5f9260028501908d612c01565b847f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000614395565b9890985b9b83613c39575b5050505f14613bd2576040516370a0823160e01b81526001600160a01b039190911694909260208480613aa08a60048301610785565b0381895afa938415610e68575f94613bb2575b50613abc611598565b92803b15610123575f92838993613ae96040519788968795869463022c0d9f60e01b8652600486016138ac565b03925af18015610e6857613b9e575b50602060405180946370a0823160e01b82528180613b198960048301610785565b03915afa908115610e6857613b47935f92613b7e575b5090036a0c097ce7bc90715b34b9f160241b02611739565b613b5288888c612c01565b35808210613b695750506001905b96019592613915565b6365d564a560e01b5f5261099492508861176b565b613b9791925060203d8111611138576111298183611530565b905f613b2f565b8061232a5f613bac93611530565b5f613af8565b613bcb91945060203d8111611138576111298183611530565b925f613ab3565b5093929150613bdf611598565b93803b15610123575f92838593613c0c6040519889968795869463022c0d9f60e01b8652600486016138ac565b03925af1918215610e6857600192613c25575b50613b60565b8061232a5f613c3393611530565b5f613c1f565b613c439350612c01565b3515158c8f8d90613a6a565b5050955087958c8c5f613a63565b8c5f966139fa565b613c7d915060203d8111611138576111298183611530565b5f6139e6565b95602091906139ac565b9050613cb191935060603d8111613cba575b613ca98183611530565b81019061387d565b5092905f613981565b503d613c9f565b90916105b993613cd091614323565b9290916143a6565b5f91826044926020956040519363a9059cbb60e01b8552600485015260248401525af13d15601f3d1160015f511416171615613d1057565b60405162461bcd60e51b815260206004820152600f60248201526e1514905394d1915497d19052531151608a1b6044820152606490fd5b6127108211613d615761271091613d5d91611726565b0490565b636f5500f360e11b5f5260045ffd5b5f5f80516020615a358339815191525d565b5f80516020615a358339815191525d565b90602b116101235790602b90565b307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161480613e94575b15613dfc577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a08152613e8e60c082611530565b51902090565b507f00000000000000000000000000000000000000000000000000000000000000004614613dd3565b8151919060418303613eed57613ee69250602082015190606060408401519301515f1a90614428565b9192909190565b50505f9160029190565b60041115613f0157565b634e487b7160e01b5f52602160045260245ffd5b613f1e81613ef7565b80613f27575050565b613f3081613ef7565b60018103613f475763f645eedf60e01b5f5260045ffd5b613f5081613ef7565b60028103613f6b575063fce698f760e01b5f5260045260245ffd5b80613f77600392613ef7565b14613f7f5750565b6335e2f38360e21b5f5260045260245ffd5b60ff811690601f8211613fc05760405191613fad604084611530565b6020808452838101919036833783525290565b632cd44ac360e21b5f5260045ffd5b909190600b8110156140635760078103613ff65750613ff19061013292614b43565b614e86565b60068103614011575061400c9061013292614913565b614d65565b6009810361402c57506140279061013292614b43565b614ba8565b916008831461404f57505061099491505b635cda29d760e01b5f52600452602490565b61013292509061405e91614913565b6149ca565b600c81036140b25750614075916148a3565b9061407f816148b6565b9180831161409b57509061013291614095611bf2565b906147a9565b6312bacdd360e01b5f52600452602482905260445ffd5b600f810361410157506140c4916148a3565b906140ce816144b8565b918083106140ea575090610132916140e4611bf2565b9061452c565b638b063d7360e01b5f52600452602482905260445ffd5b600b8103614135575061412f61411d61412992610132946144a0565b938294939291936146bf565b926146da565b916147a9565b600e8103614167575061415b61415161416192610132946144a0565b9282949291612984565b926146ab565b9161452c565b916010831461417c575050610994915061403d565b610132925061419161419a92614161926144a0565b92919390612984565b916141a4846144b8565b613d47565b5f806141d19260018060a01b03169360208151910182865af16141ca6118d5565b90836157e1565b80519081151591826141f9575b50506141e75750565b635274afe760e01b5f5260045260245ffd5b61420c9250602080918301019101612abc565b155f806141de565b9193929061422561422d9286614323565b9181946143a6565b604051630240bc6b60e21b815290936060826004816001600160a01b0389165afa918215610e68575f905f93614283575b506001600160701b03928316939216916001600160a01b03918216911603610b335791565b905061429f91925060603d606011613cba57613ca98183611530565b5091905f61425e565b908015801561431b575b61430c57816142c091611726565b916103e88302928084046103e814901517156116fd57818103918183116116fd576103e583029283046103e514911417156116fd576142fe91611739565b600181018091116116fd5790565b633dce448b60e11b5f5260045ffd5b5082156142b2565b6001600160a01b038281169082161015610b335791565b81159283801561438d575b61430c576103e58202918083046103e514901517156116fd576143689082611726565b926103e883029283046103e81417156116fd5781018091116116fd576105b991611739565b508015614345565b92614225906143a393614323565b91565b6040516001600160601b0319606094851b8116602083019081529590941b9093166034840152602883529092909161440991906143e4604882611530565b5190206143fb604051948592602084019586611cba565b03601f198101845283611530565b905190206001600160a01b031690565b90601411613721573560601c90565b91906fa2a8918ca85bafe22016d0b997e4df60600160ff1b038411614495579160209360809260ff5f9560405194855216868401526040830152606082015282805260015afa15610e68575f516001600160a01b0381161561448b57905f905f90565b505f906001905f90565b5050505f9160039190565b90606011611c2c578035916040602083013592013590565b6144e381307f0000000000000000000000000000000000000000000000000000000000000000614ff9565b905f82126144ef575090565b634c085bf160e01b5f9081526001600160a01b0391909116600452602490fd5b6001600160a01b039091168152600160f01b602082015260400190565b91907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168061464957505f5b6001600160a01b0316614577575b61013292615075565b60405163aeb5556960e01b81526001600160a01b03841690602081600481855afa908115610e68575f9161462a575b501561461b5760206145d6916145ba611bf2565b90604051808095819463f493cec360e01b83526004830161450f565b03915afa908115610e68575f916145fc575b5061456e575b6282b42960e81b5f5260045ffd5b614615915060203d60201161261d5761260f8183611530565b5f6145e8565b63888f378560e01b5f5260045ffd5b614643915060203d60201161261d5761260f8183611530565b5f6145a6565b6040516312f7fd6760e11b815290602090829081806146746001600160a01b038a1660048301610785565b03915afa908115610e68575f9161468c575b50614560565b6146a5915060203d602011610e6157610e538183611530565b5f614686565b90816146bb576105b991506144b8565b5090565b156146d6575f80516020615a158339815191525c90565b3090565b907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168061474757505f5b6001600160a01b03169182158015614739575b61472f5750506105b99061512f565b6105b9925061510a565b50600160ff1b811415614720565b6040516312f7fd6760e11b815290602090829081806147726001600160a01b03881660048301610785565b03915afa908115610e68575f9161478a575b5061470d565b6147a3915060203d602011610e6157610e538183611530565b5f614784565b908215612b6a577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691823b1561012357604051632961046560e21b81525f81806147ff8560048301610785565b038183885af18015610e685761488f575b506001600160a01b03811661485e575050602090600460405180948193630476982d60e21b83525af18015610e68576148465750565b612ba29060203d602011611138576111298183611530565b5f936020939261486d92615195565b600460405180948193630476982d60e21b83525af18015610e68576148465750565b8061232a5f61489d93611530565b5f614810565b9190604011611c2c576020823592013590565b6148e181307f0000000000000000000000000000000000000000000000000000000000000000614ff9565b905f82136148f357506105b9906116ed565b63019a8d9360e51b5f9081526001600160a01b0391909116600452602490fd5b9061016011611c2c5780350190565b356001600160801b03811681036101235790565b356105b981610348565b91908260a09103126101235760405161495881611510565b6080808294803561496881610112565b8452602081013561497881610112565b6020850152604081013561498b81611911565b6040850152606081013561499e8161191e565b60608501520135916149af83610112565b0152565b6001600160801b0390811660045216602452604490565b6149d660c08201614922565b6001600160801b03811615614b01575b60a08201906149f482614936565b6001600160801b0382169290614a26908490614a14610120880188610aea565b929091614a21368a614940565b61540a565b91614a39614a3383614936565b846154c3565b6001600160801b038116949091908510614aed57505090614a5c614a6292614936565b906154eb565b9160e0810192614a80614a7485614922565b6001600160801b031690565b6001600160801b03821694908511614ad157505061010001359182614aa457505050565b610962614ab092611702565b90808210614abc575050565b63efc8d8eb60e01b5f5260045260245260445ffd5b90614ade61099492614922565b6312bacdd360e01b5f526149b3565b630686776b60e31b5f5261099492506149b3565b50614b0e60a08201614936565b15614b3457614b2f614b2a614b2560208401612836565b6148b6565b61535e565b6149e6565b614b2f614b2a614b2583612836565b9060e011611c2c5780350190565b903590601e198136030182121561012357018035906001600160401b03821161012357602001918160051b3603831361012357565b9190811015610ae55760051b81013590609e1981360301821215610123570190565b906020820191614bb88382614b51565b5f929150614bc860608301614922565b90614bd283612836565b906001600160801b03831615614d51575b6040840181614bf28287614b51565b801515948592509082614d46575b5050614d37579193825b614c3957505050505060809192935001614c26614a7482614922565b6001600160801b03831611614ad1575050565b614c5d919293949650614c64614c4f8a88614b51565b5f1987019491859190614b86565b9586615521565b6001600160801b03831692901591614c8e90839085614c8660808c018c610aea565b93909261540a565b90614c9983836154c3565b6001600160801b038116949091908510614aed5750508894939291614cbd916154eb565b97614cdb575b5050614ccf8694612836565b925f1901919382614c0a565b614cff906001600160801b038916906a0c097ce7bc90715b34b9f160241b02611739565b90614d1481614d0e858a614b51565b90612c01565b3590818310614d235750614cc3565b63e651804360e01b5f52610994935061176b565b63115eb5b360e31b5f5260045ffd5b14159050815f614c00565b9150614d5f614b2a826148b6565b91614be3565b614d7160c08201614922565b906001600160801b03821615614e47575b614dc860a08201614dc2614dbc614d9883614936565b6001600160801b0390961695614dad876116ed565b90614a14610120880188610aea565b91614936565b906154c3565b9060e0810191614dda614a7484614922565b6001600160801b03821693908410614e2b57505061010001359182614dfe57505050565b610962614e0a92611702565b90808210614e16575050565b634713c18b60e01b5f5260045260245260445ffd5b90614e3861099492614922565b638b063d7360e01b5f526149b3565b9050614e5560a08201614936565b15614e7457614e6e614b2a614e6983612836565b6144b8565b90614d82565b614e6e614b2a614e6960208401612836565b6020810190614e958282614b51565b5f93915080614ea384612836565b92614eb060608601614922565b6001600160801b03811615614fe7575b6040860191614ecf8388614b51565b801515958692509082614fdc575b5050614d37575f9591949395945b848610614f1b5750505050505050608001614f08614a7482614922565b6001600160801b03831610614e2b575050565b869850614f6a614f65614f3f614c5d89614f39878e9d9b9c9d614b51565b90614b86565b6001600160801b03909416939190614f5a6080880188610aea565b9184875f039161540a565b6154c3565b98614f88575b506001614f7d8993612836565b960194939591614eeb565b614fab906001600160801b038a166a0c097ce7bc90715b34b9f160241b02611739565b614fb987614d0e868b614b51565b35808210614fc75750614f70565b63a9b7edf760e01b5f5261099492508761176b565b14159050855f614edd565b50614ff4614b2a856144b8565b614ec0565b6001600160a01b039182165f9081529282166020908152604093849020935163789add5560e11b815260048101949094529183916024918391165afa908115610e68575f91615046575090565b90506020813d60201161506d575b8161506160209383611530565b81010312610123575190565b3d9150615054565b908215612b6a577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b1561012357604051630b0d9c0960e01b81526001600160a01b03938416600482015291909216602482015260448101929092525f908290606490829084905af18015610e68576150f55750565b806151015f8093611530565b80031261012357565b90600160ff1b8203615120576105b9915061512f565b816146bb576105b991506148b6565b6001600160a01b03811661514257504790565b6040516370a0823160e01b815230600482015290602090829060249082906001600160a01b03165afa908115610e68575f9161517c575090565b6105b9915060203d602011611138576111298183611530565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316806152fc57505f5b6001600160a01b0381169182156152ee5760405163aeb5556960e01b81526001600160a01b03919091169390602081600481885afa908115610e68575f916152cf575b501561461b57615237602061521d611bf2565b6040518093819263f493cec360e01b83526004830161450f565b0381885afa908115610e68575f916152b0575b50156145ee576001600160a01b03811630036152a3575050828261526d926156e5565b803b1561012357604051630934f6c760e21b815260048101929092525f908290602490829084905af18015610e685761231c5750565b610132949391925061562a565b6152c9915060203d60201161261d5761260f8183611530565b5f61524a565b6152e8915060203d60201161261d5761260f8183611530565b5f61520a565b9050610132939291506155f3565b6040516312f7fd6760e11b815290602090829081806153276001600160a01b03881660048301610785565b03915afa908115610e68575f9161533f575b506151c7565b615358915060203d602011610e6157610e538183611530565b5f615339565b6001600160801b038116919082900361537357565b6393dafdf160e01b5f5260045ffd5b6001600160a01b039091169052565b81516001600160a01b03908116825260208084015182168184015260408085015162ffffff168185015260608086015160020b908501526080948501518316948401949094528451151560a084015284015160c083015291909201511660e08201526105b992906101209081610100820152019161180f565b90916020939461544d6154689261542085615776565b85156154a8576401000276a4905b615440615439611563565b9715158852565b8787015260408601615382565b604051633cf3645360e21b8152958694859460048601615391565b03815f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1908115610e68575f9161517c575090565b73fffd8963efd1fc6a506488495d951d5263988d259061542e565b90156154e357600f0b5b5f81600f0b12615373576001600160801b031690565b60801d6154cd565b614b2a906105b9925f146155055760801d5b600f0b6116ed565b600f0b6154fd565b356105b981611911565b356105b98161191e565b905f608060405161553181611510565b828152826020820152826040820152826060820152015261555182612836565b906001600160a01b0380831690821610156155d757906143a3906155ce60015b946155c46155816020830161550d565b6155b861559c606061559560408701615517565b9501612836565b956155af6155a8611572565b998a615382565b60208901615382565b62ffffff166040870152565b60020b6060850152565b60808301615382565b6001600160a01b03918216916143a391166155ce818414615571565b61013292916001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169216611dc4565b6001600160a01b03918216927f000000000000000000000000000000000000000000000000000000000000000090921691823b1561012357604051631b63c28b60e11b8152925f92849283918591839161569591906001600160a01b038c16908b9060048601613163565b03925af18015610e68576156d1575b50803b1561012357604051630934f6c760e21b815260048101929092525f90829081838160248101612937565b8061232a5f6156df93611530565b5f6156a4565b9091906001600160a01b03811661571257505f80808061570694865af11590565b61570d5750565b6158ac565b6040805163a9059cbb60e01b81526001600160a01b039094166004850152602484019290925291905f9060208260448582885af13d15601f3d116001855114161716928281528260208201520152156157685750565b6001600160a01b031661583f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031615612ba25780516080820180516101329391926157c9916001600160a01b039081169116615915565b6020015190516001600160a01b039081169116615915565b9061580557508051156157f657805190602001fd5b630a12f52160e11b5f5260045ffd5b81511580615836575b615816575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b1561580e565b6040516390bfb86560e01b81526001600160a01b03909116600482015263a9059cbb60e01b60248201526080604482015260a03d601f01601f191690810160648301523d60848301523d5f60a484013e808201600460a482015260c4633c9fd93960e21b91015260e40190fd5b6040516390bfb86560e01b81526001600160a01b0390911660048201525f602482018190526080604483015260a03d601f01601f191690810160648401523d6084840152903d9060a484013e808201600460a482015260c4633d2cec6f60e21b91015260e40190fd5b6040516312f7fd6760e11b81526001600160a01b039190911690602081806159408560048301610785565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115610e68575f916159f5575b506001600160a01b031615612a6b576159ad916020916040518080958194631557c23760e01b835260048301610785565b03915afa908115610e68575f916159d6575b50156159c757565b636e11e93f60e01b5f5260045ffd5b6159ef915060203d60201161261d5761260f8183611530565b5f6159bf565b615a0e915060203d602011610e6157610e538183611530565b5f61597c56fe0e87e1788ebd9ed6a7e63c70a374cd3283e41cad601d21fbe27863899ed4a708af28d9864a81dfdf71cab65f4e5d79a0cf9b083905fb8971425e6cb581b3f692a42de8dec63499ed8713dc6815ea14006a1f8e80e1664c66e3beb461bb65b0da17350132762f24cc4b86e10621ea1e0b5c33483a51cca86a1b11e7ed029b6eb6d317c76a4357223a1868125ee857a1f31cabfcec288f6cdd0ea8c52b6a71ee31a164736f6c634300081a000a'; } } diff --git a/src/pkgs/universal-router b/src/pkgs/universal-router index fb25ff09..64027f33 160000 --- a/src/pkgs/universal-router +++ b/src/pkgs/universal-router @@ -1 +1 @@ -Subproject commit fb25ff09c71dcfc13665e6c65788db737f29e0d4 +Subproject commit 64027f3372aa235734207c4e05667204f6f927e1