@stargatefinance/stg-evm-v2 0.3.2 → 0.3.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +17 -49
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.mts +73 -103
- package/dist/index.d.ts +73 -103
- package/dist/index.mjs +17 -49
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
package/dist/index.cjs
CHANGED
|
@@ -17,7 +17,7 @@ var require_package = __commonJS({
|
|
|
17
17
|
"package.json"(exports, module) {
|
|
18
18
|
module.exports = {
|
|
19
19
|
name: "@stargatefinance/stg-evm-v2",
|
|
20
|
-
version: "0.3.
|
|
20
|
+
version: "0.3.3",
|
|
21
21
|
license: "BUSL-1.1",
|
|
22
22
|
exports: {
|
|
23
23
|
".": {
|
|
@@ -88,7 +88,7 @@ var require_package = __commonJS({
|
|
|
88
88
|
"@layerzerolabs/lz-evm-v1-0.7": "~2.3.2",
|
|
89
89
|
"@layerzerolabs/lz-utilities": "~2.3.2",
|
|
90
90
|
"@layerzerolabs/lz-v2-utilities": "~2.3.2",
|
|
91
|
-
"@stargatefinance/stg-definitions-v2": "~0.1.
|
|
91
|
+
"@stargatefinance/stg-definitions-v2": "~0.1.10",
|
|
92
92
|
"@stargatefinance/stg-evm-v1": "~1.0.31",
|
|
93
93
|
"@types/sinon": "~17.0.3",
|
|
94
94
|
ethers: "^5.7.2"
|
|
@@ -16559,7 +16559,7 @@ var _abi59 = [
|
|
|
16559
16559
|
type: "event"
|
|
16560
16560
|
}
|
|
16561
16561
|
];
|
|
16562
|
-
var _bytecode9 = "
|
|
16562
|
+
var _bytecode9 = "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212205a8499b2791bf5224075e078b281b57503954ce8fb782da7ace52b88ccc30cde64736f6c63430008160033";
|
|
16563
16563
|
var isSuperArgs9 = (xs) => xs.length > 1;
|
|
16564
16564
|
var BusLib__factory = class extends ethers.ContractFactory {
|
|
16565
16565
|
constructor(...args) {
|
|
@@ -19007,12 +19007,12 @@ var _abi68 = [
|
|
|
19007
19007
|
},
|
|
19008
19008
|
{
|
|
19009
19009
|
inputs: [],
|
|
19010
|
-
name: "
|
|
19010
|
+
name: "Messaging_InvalidMsgValue",
|
|
19011
19011
|
type: "error"
|
|
19012
19012
|
},
|
|
19013
19013
|
{
|
|
19014
19014
|
inputs: [],
|
|
19015
|
-
name: "
|
|
19015
|
+
name: "Messaging_MaxNumPassengersExceedsQueueCapacity",
|
|
19016
19016
|
type: "error"
|
|
19017
19017
|
},
|
|
19018
19018
|
{
|
|
@@ -19269,16 +19269,10 @@ var _abi68 = [
|
|
|
19269
19269
|
name: "eid",
|
|
19270
19270
|
type: "uint32"
|
|
19271
19271
|
},
|
|
19272
|
-
{
|
|
19273
|
-
indexed: false,
|
|
19274
|
-
internalType: "uint16",
|
|
19275
|
-
name: "assetId",
|
|
19276
|
-
type: "uint16"
|
|
19277
|
-
},
|
|
19278
19272
|
{
|
|
19279
19273
|
indexed: false,
|
|
19280
19274
|
internalType: "uint128",
|
|
19281
|
-
name: "
|
|
19275
|
+
name: "gasLimit",
|
|
19282
19276
|
type: "uint128"
|
|
19283
19277
|
}
|
|
19284
19278
|
],
|
|
@@ -19310,7 +19304,7 @@ var _abi68 = [
|
|
|
19310
19304
|
{
|
|
19311
19305
|
indexed: false,
|
|
19312
19306
|
internalType: "uint8",
|
|
19313
|
-
name: "
|
|
19307
|
+
name: "maxNumPassengers",
|
|
19314
19308
|
type: "uint8"
|
|
19315
19309
|
}
|
|
19316
19310
|
],
|
|
@@ -19508,11 +19502,11 @@ var _abi68 = [
|
|
|
19508
19502
|
type: "uint32"
|
|
19509
19503
|
}
|
|
19510
19504
|
],
|
|
19511
|
-
name: "
|
|
19505
|
+
name: "busQueues",
|
|
19512
19506
|
outputs: [
|
|
19513
19507
|
{
|
|
19514
19508
|
internalType: "uint8",
|
|
19515
|
-
name: "
|
|
19509
|
+
name: "maxNumPassengers",
|
|
19516
19510
|
type: "uint8"
|
|
19517
19511
|
},
|
|
19518
19512
|
{
|
|
@@ -19669,18 +19663,13 @@ var _abi68 = [
|
|
|
19669
19663
|
internalType: "uint32",
|
|
19670
19664
|
name: "eid",
|
|
19671
19665
|
type: "uint32"
|
|
19672
|
-
},
|
|
19673
|
-
{
|
|
19674
|
-
internalType: "uint16",
|
|
19675
|
-
name: "assetId",
|
|
19676
|
-
type: "uint16"
|
|
19677
19666
|
}
|
|
19678
19667
|
],
|
|
19679
19668
|
name: "gasLimits",
|
|
19680
19669
|
outputs: [
|
|
19681
19670
|
{
|
|
19682
19671
|
internalType: "uint128",
|
|
19683
|
-
name: "
|
|
19672
|
+
name: "gasLimit",
|
|
19684
19673
|
type: "uint128"
|
|
19685
19674
|
}
|
|
19686
19675
|
],
|
|
@@ -20471,14 +20460,9 @@ var _abi68 = [
|
|
|
20471
20460
|
name: "_eid",
|
|
20472
20461
|
type: "uint32"
|
|
20473
20462
|
},
|
|
20474
|
-
{
|
|
20475
|
-
internalType: "uint16",
|
|
20476
|
-
name: "_assetId",
|
|
20477
|
-
type: "uint16"
|
|
20478
|
-
},
|
|
20479
20463
|
{
|
|
20480
20464
|
internalType: "uint128",
|
|
20481
|
-
name: "
|
|
20465
|
+
name: "_gasLimit",
|
|
20482
20466
|
type: "uint128"
|
|
20483
20467
|
}
|
|
20484
20468
|
],
|
|
@@ -20509,7 +20493,7 @@ var _abi68 = [
|
|
|
20509
20493
|
},
|
|
20510
20494
|
{
|
|
20511
20495
|
internalType: "uint8",
|
|
20512
|
-
name: "
|
|
20496
|
+
name: "_maxNumPassengers",
|
|
20513
20497
|
type: "uint8"
|
|
20514
20498
|
}
|
|
20515
20499
|
],
|
|
@@ -20723,7 +20707,7 @@ var _abi68 = [
|
|
|
20723
20707
|
type: "function"
|
|
20724
20708
|
}
|
|
20725
20709
|
];
|
|
20726
|
-
var _bytecode16 = "0x60e06040523480156200001157600080fd5b5060405162005d3b38038062005d3b833981016040819052620000349162000207565b82828181818162000045336200019a565b6001600160a01b0380831660805281166200007357604051632d618d8160e21b815260040160405180910390fd5b60805160405163ca5eb5e160e01b81526001600160a01b0383811660048301529091169063ca5eb5e190602401600060405180830381600087803b158015620000bb57600080fd5b505af1158015620000d0573d6000803e3d6000fd5b5050505050505050505060028166ffffffffffffff161015620001065760405163e7c8940d60e01b815260040160405180910390fd5b8066ffffffffffffff1660a08166ffffffffffffff16815250506080516001600160a01b031663416ecebf6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000161573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000187919062000260565b63ffffffff1660c052506200028f915050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146200020257600080fd5b919050565b6000806000606084860312156200021d57600080fd5b6200022884620001ea565b92506200023860208501620001ea565b9150604084015166ffffffffffffff811681146200025557600080fd5b809150509250925092565b6000602082840312156200027357600080fd5b815163ffffffff811681146200028857600080fd5b9392505050565b60805160a05160c051615a3662000305600039600061182301526000818161046e01528181610aa201528181610cc4015281816112cb01528181611315015281816119c10152611b9801526000818161054301528181610b2401528181611942015281816122550152612c570152615a366000f3fe6080604052600436106102f25760003560e01c8063917df23b1161018f578063d045a0dc116100e1578063e018950f1161008a578063fda49eb411610064578063fda49eb414610a1c578063ff6fb30014610a3c578063ff7bd03d14610a4f57600080fd5b8063e018950f146109bc578063e4c572cc146109dc578063f2fde38b146109fc57600080fd5b8063d40f8743116100bb578063d40f87431461094a578063d42438851461096b578063d8e8dbc71461098b57600080fd5b8063d045a0dc1461081e578063d117b56214610831578063d20737311461087e57600080fd5b8063bb0b6a5311610143578063c39d902c1161011d578063c39d902c146107be578063ca5eb5e1146107de578063cbb1ac7b146107fe57600080fd5b8063bb0b6a5314610750578063bc70b3541461078b578063bd815db0146107ab57600080fd5b8063a2bdd90c11610174578063a2bdd90c146106f0578063b731ea0a14610710578063b98bd0701461073057600080fd5b8063917df23b1461068a57806399bb66ce146106d057600080fd5b80635a0dfe4d11610248578063715018a6116101fc578063826f1fb1116101d6578063826f1fb11461062c5780638da5cb5b1461064c5780638f71f7dd1461066a57600080fd5b8063715018a6146105bb5780637d25a05e146105d057806382413eac1461060c57600080fd5b80635e280f111161022d5780635e280f11146105315780635f6d9ae414610565578063671d64291461059b57600080fd5b80635a0dfe4d146104a85780635e1d66cd146104d857600080fd5b80633292cf02116102aa57806352ae28791161028457806352ae28791461041c5780635535d4611461042f578063565e49991461045c57600080fd5b80633292cf02146103a457806332e4e363146103c45780633400288b146103fc57600080fd5b806317442b70116102db57806317442b70146103425780631ab15f04146103645780632dca2f511461038457600080fd5b8063086431ec146102f757806313137d651461032d575b600080fd5b34801561030357600080fd5b506103176103123660046144a3565b610a6f565b60405161032491906144f6565b60405180910390f35b61034061033b36600461453c565b610b22565b005b34801561034e57600080fd5b5060408051600181526002602082015201610324565b34801561037057600080fd5b5061034061037f366004614604565b610c14565b34801561039057600080fd5b5061034061039f366004614658565b610cba565b3480156103b057600080fd5b506103176103bf366004614694565b610d8f565b3480156103d057600080fd5b506005546103e4906001600160a01b031681565b6040516001600160a01b039091168152602001610324565b34801561040857600080fd5b506103406104173660046146eb565b610de7565b34801561042857600080fd5b50306103e4565b34801561043b57600080fd5b5061044f61044a366004614715565b610dfd565b604051610324919061478f565b34801561046857600080fd5b506104907f000000000000000000000000000000000000000000000000000000000000000081565b60405166ffffffffffffff9091168152602001610324565b3480156104b457600080fd5b506104c86104c33660046146eb565b610ea2565b6040519015158152602001610324565b3480156104e457600080fd5b506105196104f3366004614715565b60076020908152600092835260408084209091529082529020546001600160801b031681565b6040516001600160801b039091168152602001610324565b34801561053d57600080fd5b506103e47f000000000000000000000000000000000000000000000000000000000000000081565b34801561057157600080fd5b506103e46105803660046147a2565b6004602052600090815260409020546001600160a01b031681565b3480156105a757600080fd5b506103406105b63660046147bd565b610ec1565b3480156105c757600080fd5b50610340610f36565b3480156105dc57600080fd5b506105f36105eb3660046146eb565b600092915050565b60405167ffffffffffffffff9091168152602001610324565b34801561061857600080fd5b506104c86106273660046147d8565b610f4a565b34801561063857600080fd5b506103406106473660046147bd565b610fd7565b34801561065857600080fd5b506000546001600160a01b03166103e4565b34801561067657600080fd5b5061034061068536600461483e565b611045565b34801561069657600080fd5b506002546106bd9074010000000000000000000000000000000000000000900461ffff1681565b60405161ffff9091168152602001610324565b3480156106dc57600080fd5b506103406106eb3660046148b6565b611237565b3480156106fc57600080fd5b5061031761070b366004614910565b61142f565b34801561071c57600080fd5b506002546103e4906001600160a01b031681565b34801561073c57600080fd5b5061034061074b36600461493a565b611476565b34801561075c57600080fd5b5061077d61076b36600461497c565b60016020526000908152604090205481565b604051908152602001610324565b34801561079757600080fd5b5061044f6107a6366004614997565b611490565b6103406107b936600461493a565b611651565b3480156107ca57600080fd5b506103406107d9366004614a17565b6117dd565b3480156107ea57600080fd5b506103406107f93660046147bd565b611902565b61081161080c366004614a51565b61199a565b6040516103249190614adf565b61034061082c36600461453c565b611a85565b34801561083d57600080fd5b5061077d61084c366004614aed565b63ffffffff909116600090815260086020908152604080832066ffffffffffffff909416835260029093019052205490565b34801561088a57600080fd5b506108fe61089936600461497c565b6008602052600090815260409020805460019091015460ff8216916effffffffffffffffffffffffffffff6101008204811692700100000000000000000000000000000000909204169066ffffffffffffff8082169167010000000000000090041685565b6040805160ff90961686526effffffffffffffffffffffffffffff9485166020870152939092169284019290925266ffffffffffffff918216606084015216608082015260a001610324565b61095d610958366004614b17565b611acd565b604051610324929190614b42565b34801561097757600080fd5b506103406109863660046147bd565b611c4b565b34801561099757600080fd5b506106bd6109a63660046147bd565b60036020526000908152604090205461ffff1681565b3480156109c857600080fd5b5061077d6109d7366004614b7e565b611cb9565b3480156109e857600080fd5b506103406109f73660046147a2565b611dcc565b348015610a0857600080fd5b50610340610a173660046147bd565b611e4f565b348015610a2857600080fd5b506009546103e4906001600160a01b031681565b610811610a4a366004614bb8565b611ef9565b348015610a5b57600080fd5b506104c8610a6a366004614c19565b611f4a565b604080518082019091526000808252602082015263ffffffff80851660009081526008602052604081209091610acc91907f00000000000000000000000000000000000000000000000000000000000000009087908790611f8016565b9050600080610adb8784612208565b91509150610aec878383600061223f565b93508260600151846000015111610b04576000610b15565b60608301518451610b159190614c64565b8452509195945050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610b8b576040517f91ac5e4f0000000000000000000000000000000000000000000000000000000081523360048201526024015b60405180910390fd5b60208701803590610ba590610ba0908a61497c565b612320565b14610bfc57610bb7602088018861497c565b6040517fc26bebcc00000000000000000000000000000000000000000000000000000000815263ffffffff909116600482015260208801356024820152604401610b82565b610c0b87878787878787612375565b50505050505050565b610c1c61241e565b63ffffffff8316600081815260076020908152604080832061ffff87168085529083529281902080547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166001600160801b038716908117909155815194855291840192909252908201527fde2eee52c6cc0883d0d3b9820e6279d63f0ab9483d92fc751231766ac162aafb906060015b60405180910390a1505050565b610cc261241e565b7f000000000000000000000000000000000000000000000000000000000000000066ffffffffffffff168160ff1610610d27576040517fef00577f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b63ffffffff8083166000908152600860205260409020610d4991839061249216565b6040805163ffffffff8416815260ff831660208201527ff9fa6c3c4dbf13c4a8348c3102ef22789aa450b81e492b853e93f9701e08958091015b60405180910390a15050565b60408051808201909152600080825260208201526000610dae336124c1565b9050600080610dbd838761251d565b9092509050610ddd610dd5604088016020890161497c565b83838861223f565b9695505050505050565b610def61241e565b610df98282612587565b5050565b600660209081526000928352604080842090915290825290208054610e2190614c77565b80601f0160208091040260200160405190810160405280929190818152602001828054610e4d90614c77565b8015610e9a5780601f10610e6f57610100808354040283529160200191610e9a565b820191906000526020600020905b815481529060010190602001808311610e7d57829003601f168201915b505050505081565b63ffffffff821660009081526001602052604090205481145b92915050565b610ec961241e565b600980547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383169081179091556040519081527fa3d32c8d3ebb805bea77a26e7c146c5a608570f9179b53a417e92f10f5b306b9906020015b60405180910390a150565b610f3e61241e565b610f4860006125d5565b565b600080610f57858561263d565b5050905060005b8151811015610fc857836001600160a01b031660046000848481518110610f8757610f87614cc4565b6020908102919091018101515161ffff168252810191909152604001600020546001600160a01b031603610fc057600192505050610fcf565b600101610f5e565b5060009150505b949350505050565b610fdf61241e565b600580547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383169081179091556040519081527f5767d79cd17d7554509a4dd59a5a7a9175c7e36466455d7b2fa478822880857990602001610f2b565b61104d61241e565b60025461ffff74010000000000000000000000000000000000000000909104811690821611156110bd57600280547fffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000061ffff8416021790555b6001600160a01b0380831660009081526003602090815260408083205461ffff8681168552600490935292205491169116811561112e5761ffff8216600090815260046020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001690555b6001600160a01b0381161561117c576001600160a01b038116600090815260036020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001690555b6001600160a01b038416600081815260036020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001661ffff8916908117909155808452600483529281902080547fffffffffffffffffffffffff000000000000000000000000000000000000000016851790558051938452908301919091527fac53470cf8e9e3d673caa7d47cd7db36c0d38cf37fc147c70c92bc0c1c4734f591015b60405180910390a150505050565b61123f61241e565b60005b838110156114285760006008600087878581811061126257611262614cc4565b9050602002016020810190611277919061497c565b63ffffffff16815260208101919091526040016000908120600181015490925066ffffffffffffff90811690861610156112be57600182015466ffffffffffffff166112c0565b845b905060006112ef60017f0000000000000000000000000000000000000000000000000000000000000000614cf3565b66ffffffffffffff168566ffffffffffffff16101561130e5784611339565b61133960017f0000000000000000000000000000000000000000000000000000000000000000614cf3565b9050815b8166ffffffffffffff168166ffffffffffffff16116113a55766ffffffffffffff8116600090815260028501602052604090207f460000000000000000000000000000000000000000000000000000000000000090558061139d81614d1a565b91505061133d565b507f5032c62011fb9918d2d9a36b6391111f72f778dc98300d2e22f0062a76e712f58888868181106113d9576113d9614cc4565b90506020020160208101906113ee919061497c565b6040805163ffffffff909216825266ffffffffffffff808616602084015284169082015260600160405180910390a1505050600101611242565b5050505050565b604080518082019091526000808252602082015263ffffffff80841660009081526008602052604090206114659184906129aa16565b6001600160801b0316815292915050565b61147e61241e565b610df961148b8284614e14565b612a0e565b63ffffffff8416600090815260066020908152604080832061ffff871684529091528120805460609291906114c490614c77565b80601f01602080910402602001604051908101604052809291908181526020018280546114f090614c77565b801561153d5780601f106115125761010080835404028352916020019161153d565b820191906000526020600020905b81548152906001019060200180831161152057829003601f168201915b50505050509050805160000361158d5783838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929450610fcf9350505050565b600083900361159d579050610fcf565b6002831061161b576115e484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612b1592505050565b806115f28460028188614f2a565b60405160200161160493929190614f54565b604051602081830303815290604052915050610fcf565b83836040517f9a6d49cd000000000000000000000000000000000000000000000000000000008152600401610b82929190614fa7565b60005b81811015611743573683838381811061166f5761166f614cc4565b90506020028101906116819190614fbb565b905061169d611693602083018361497c565b6020830135610ea2565b6116a7575061173b565b3063d045a0dc60c08301358360a08101356116c6610100830183614ff9565b6116d7610100890160e08a016147bd565b6116e56101208a018a614ff9565b6040518963ffffffff1660e01b815260040161170797969594939291906150b2565b6000604051808303818588803b15801561172057600080fd5b505af1158015611734573d6000803e3d6000fd5b5050505050505b600101611654565b50336001600160a01b0316638e9e70996040518163ffffffff1660e01b8152600401600060405180830381865afa158015611782573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526117aa9190810190615109565b6040517f8351eea7000000000000000000000000000000000000000000000000000000008152600401610b82919061478f565b6005546001600160a01b03163314611821576040517fc63aab2c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000063ffffffff168363ffffffff1603611886576040517fa27dd10200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b63ffffffff80841660009081526008602052604090206118aa9184908490612b5a16565b6040805163ffffffff851681526effffffffffffffffffffffffffffff80851660208301528316918101919091527fb8611e882dee0ae26e55604af1d40fa9f0ec18a0e28dcee93da3b15239930caf90606001610cad565b61190a61241e565b6040517fca5eb5e10000000000000000000000000000000000000000000000000000000081526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e190602401600060405180830381600087803b15801561198657600080fd5b505af1158015611428573d6000803e3d6000fd5b6119a26143fe565b63ffffffff808616600090815260086020526040812090916119eb91907f00000000000000000000000000000000000000000000000000000000000000009088908890612bd416565b90506000806119fa8884612208565b9150915060006040518060400160405280856060015134611a1b9190615177565b815260006020909101819052600954919250906001600160a01b031615611a4d576009546001600160a01b0316611a4f565b865b9050611a5e8a85858585612c4b565b9550611a788a866020015187604001518960000151612d24565b5050505050949350505050565b333014611abe576040517f14d4a4e800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610c0b87878787878787610bfc565b611ad56143fe565b6040805180820190915260008152606060208201526000611af5336124c1565b905060006040518060e001604052808361ffff16815260200187604001358152602001876060016020810190611b2b919061518a565b67ffffffffffffffff16815260408051602081810183526000808352908401919091529082018190526060820152608001611b6c60c0890160a08a016151a7565b6001600160801b0316905290506000611b8b604088016020890161497c565b9050600080600080611bed7f000000000000000000000000000000000000000000000000000000000000000086888e6080016020810190611bcc91906151a7565b63ffffffff808b1660009081526008602052604090209493929190612d7c16565b60408051808201825266ffffffffffffff8616815260208101859052908e01516001600160801b0393909316928390529b50929650909450925090508015611c3d57611c3b8a826000612f9f565b505b505050505050509250929050565b611c5361241e565b600280547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383169081179091556040519081527fd48d879cef83a1c0bdda516f27b13ddb1b3f8bbac1c9e1511bb2a659c242776090602001610f2b565b6000808260ff1667ffffffffffffffff811115611cd857611cd8614d40565b604051908082528060200260200182016040528015611d3e57816020015b6040805160e081018252600080825260208083018290529282018190526060808301526080820181905260a0820181905260c08201528252600019909201910181611cf65790505b50905060005b8360ff168160ff161015611d835785828260ff1681518110611d6857611d68614cc4565b602090810291909101015161ffff9091169052600101611d44565b506000611d9282600080613058565b90506000611da386846000806131e8565b90508460ff16611db6878484600061223f565b51611dc191906151f1565b979650505050505050565b611dd461241e565b600280547fffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000061ffff8416908102919091179091556040519081527f8f1145f51954bc9512a08693182e170a57b63ca4f6acc321b87c526970f4c01790602001610f2b565b611e5761241e565b6001600160a01b038116611eed576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610b82565b611ef6816125d5565b50565b611f016143fe565b6000611f0c336124c1565b9050600080611f1b838861251d565b9092509050611dc1611f336040890160208a0161497c565b8383611f44368b90038b018b615205565b89612c4b565b6000602082018035906001908390611f62908661497c565b63ffffffff1681526020810191909152604001600020541492915050565b6040805160a0810182526060808252600060208301819052928201839052810182905260808101829052908080611fb786866134da565b60ff83166040880181905266ffffffffffffff8316602089015292955090935091501580611fec5750875460ff908116908416115b15612023576040517f5b3f67cd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8260ff1667ffffffffffffffff81111561203f5761203f614d40565b6040519080825280602002602001820160405280156120a557816020015b6040805160e081018252600080825260208083018290529282018190526060808301526080820181905260a0820181905260c0820152825260001990920191018161205d5790505b508452600188015466ffffffffffffff83811667010000000000000090920416146120fc576040517f5b3f67cd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600066ffffffffffffff83161561214f576002890160008961211f600187614cf3565b6121299190615237565b66ffffffffffffff1666ffffffffffffff16815260200190815260200160002054612152565b60005b90506121618588888486613533565b90506000600161217460ff87168661525d565b61217e9190614cf3565b60018b015490915066ffffffffffffff9081169082161015806121d1575060028a0160006121ac8b84615237565b66ffffffffffffff1666ffffffffffffff168152602001908152602001600020548214155b15611a78576040517f5b3f67cd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60608061221f836000015184608001516000613058565b9150612236848460000151856080015160006131e8565b90509250929050565b60408051808201909152600080825260208201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ddc28c586040518060a001604052808863ffffffff1681526020016122a289612320565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b81526004016122d792919061527d565b6040805180830381865afa1580156122f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123179190615344565b95945050505050565b63ffffffff811660009081526001602052604081205480610ebb576040517ff6ff4fb700000000000000000000000000000000000000000000000000000000815263ffffffff84166004820152602401610b82565b6000806000612384888861263d565b9250925092506000826001600160801b03161180156123ac5750816001600160801b03163414155b156123e3576040517f07098ab800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060ff821615612400576123fb60ff831684615360565b612403565b60005b90506124118b8b8684613658565b5050505050505050505050565b6000546001600160a01b03163314610f48576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610b82565b81547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660ff91909116179055565b6001600160a01b03811660009081526003602052604081205461ffff1690819003612518576040517f8b6fecb700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b60608061255f8460408501356125386080870187860161518a565b61255a6125486080890189614ff9565b61255560208b018b6147bd565b61380b565b613883565b9150612236612574604085016020860161497c565b8561258260a0870187614ff9565b613972565b63ffffffff8216600081815260016020908152604091829020849055815192835282018390527f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b9101610d83565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b606060008080858186612651601083615177565b93506126609284929190614f2a565b61266991615386565b60801c9250600086868381811061268257612682614cc4565b919091013560f81c91506000905061269b600184615177565b92508160ff1667ffffffffffffffff8111156126b9576126b9614d40565b60405190808252806020026020018201604052801561272857816020015b612715604080516060808201835260008083526020808401829052845160808101865282815290810182905280850183905291820152909182015290565b8152602001906001900390816126d75790505b50955060005b8260ff168160ff16101561296657600089858a61274c600283615177565b975061275b9288929190614f2a565b612764916153ce565b60f01c905060006127978b878c61277c602083615177565b995061278b928a929190614f2a565b61279491615414565b90565b905060008b878c6127a9600883615177565b99506127b8928a929190614f2a565b6127c191615432565b60c01c905060008c8c898181106127da576127da614cc4565b600192013560f81c821492506127f291905089615177565b97508015612808578861280481615478565b9950505b60008d898e612818600283615177565b9b50612827928c929190614f2a565b612830916153ce565b60f01c905060008161285157604051806020016040528060008152506128a6565b8e8a8f61286261ffff861683615177565b9c50612871928d929190614f2a565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050505b9050600060405180606001604052808861ffff16815260200185151581526020016040518060800160405280896001600160a01b031681526020018867ffffffffffffffff168152602001858152602001600060ff16815250815250905060008361ffff161115612931578861291b81615478565b604083015160ff90921660609092019190915298505b808e8960ff168151811061294757612947614cc4565b602002602001018190525050505050505050808060010191505061272e565b508287146129a0576040517f7e87b49900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050509250925092565b815461010090046effffffffffffffffffffffffffffff1660008190036129fd576040517f2701dbb900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612a078282615497565b9392505050565b60005b8151811015612ae557612a40828281518110612a2f57612a2f614cc4565b602002602001015160400151612b15565b818181518110612a5257612a52614cc4565b60200260200101516040015160066000848481518110612a7457612a74614cc4565b60200260200101516000015163ffffffff1663ffffffff1681526020019081526020016000206000848481518110612aae57612aae614cc4565b60200260200101516020015161ffff1661ffff1681526020019081526020016000209081612adc91906154ff565b50600101612a11565b507fbe4864a8e820971c0247f5992e2da559595f7bf076a21cb5928d443d2a13b67481604051610f2b91906155bf565b600281015161ffff8116600314610df957816040517f9a6d49cd000000000000000000000000000000000000000000000000000000008152600401610b82919061478f565b82547fff000000000000000000000000000000000000000000000000000000000000ff166101006effffffffffffffffffffffffffffff938416027fff000000000000000000000000000000ffffffffffffffffffffffffffffffff16177001000000000000000000000000000000009190921602179055565b6040805160a081018252606080825260006020830181905292820183905281018290526080810191909152612c0b85858585611f80565b9050806040015160ff168160200151018560010160076101000a81548166ffffffffffffff021916908366ffffffffffffff160217905550949350505050565b612c536143fe565b82517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632637a450826040518060a001604052808b63ffffffff168152602001612ca58c612320565b81526020018a815260200189815260200160008960200151111515815250866040518463ffffffff1660e01b8152600401612ce192919061527d565b60806040518083038185885af1158015612cff573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611dc19190615668565b6040805163ffffffff8616815266ffffffffffffff8516602082015260ff841691810191909152606081018290527fac3ae656fc8519b8303cdfef076feabd744d2095edbae20d58c938a105d9f0d190608001611229565b60006060600080612d8d89866129aa565b915034826001600160801b03161115612dd2576040517f2701dbb900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b34826001600160801b03161015612df157506001600160801b03811634035b600189810180547fffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000811666ffffffffffffff9182168085018316919091179283905596508a81166701000000000000009092048116870390920190911610612e85576040517f7a376e5300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612e8f8683613a8c565b9250600066ffffffffffffff851615612ef3578960020160008a66ffffffffffffff166001880366ffffffffffffff1681612ecc57612ecc6151c2565b0666ffffffffffffff1666ffffffffffffff16815260200190815260200160002054612ef6565b60005b90508084604051602001612f0b9291906156b2565b604051602081830303815290604052805190602001208a60020160008b88612f339190615237565b66ffffffffffffff1666ffffffffffffff168152602001908152602001600020819055507fd73bff10645d27f6036f6a705dfca85bd9801a94175d09d4b5a4029acc4109a2888686604051612f8a939291906156d8565b60405180910390a15095509550955095915050565b600081612ffa576040516001600160a01b038516908490600081818185875af1925050503d8060008114612fef576040519150601f19603f3d011682016040523d82523d6000602084013e612ff4565b606091505b5061304f565b6040516001600160a01b038516906108fc9085906000818181858888f193505050503d8060008114613048576040519150601f19603f3d011682016040523d82523d6000602084013e61304d565b606091505b505b50949350505050565b82516040805180820190915260608082526000602083015291906130d984600260016008613087602084615177565b6130919190615177565b61309b9190615177565b6130a59190615177565b6130b29060ff8616615706565b6130be60016010615177565b6130c89190615177565b6130d29190615177565b8290613c54565b506130ef816001600160801b0387166010613ccb565b506130fa8183613d55565b5060005b8260ff168160ff1610156131dd576000878260ff168151811061312357613123614cc4565b6020026020010151905061314b816000015161ffff16600285613ccb9092919063ffffffff16565b50602081015161315c908490613db9565b50604081015161317990849067ffffffffffffffff166008613ccb565b506131a360008260c001516001600160801b03161161319957600061319c565b60015b8490613d55565b506131c26131b5826060015151613dda565b849061ffff166002613ccb565b5060608101516131d3908490613e72565b50506001016130fe565b505195945050505050565b63ffffffff84166000908152600660209081526040808320838052909152902080546060919061321790614c77565b80601f016020809104026020016040519081016040528092919081815260200182805461324390614c77565b80156132905780601f1061326557610100808354040283529160200191613290565b820191906000526020600020905b81548152906001019060200180831161327357829003601f168201915b505083519394505050901515905060006132ac6021600361571d565b6132b86023600361571d565b6132c59060ff8716615738565b6132cf919061571d565b61ffff169050816132e15760026132e4565b82515b6132ee9082615177565b905061330d604051806040016040528060608152602001600081525090565b6133178183613c54565b50821561332e576133288185613e72565b5061333d565b61333b8160036002613ccb565b505b86516000908190815b818160ff1610156134515760008b8260ff168151811061336857613368614cc4565b602002602001015190506133808d8260000151613e93565b61338a9085615497565b6060820151519094501561343e576133a3866001613d55565b5060a08101516001600160801b031615156133d3816133c35760136133c6565b60235b889061ffff166002613ccb565b506133df876003613d55565b506133fc866133ed81615756565b9750889061ffff166002613ccb565b5060808201516134189088906001600160801b03166010613ccb565b50801561343c5760a082015161343a9088906001600160801b03166010613ccb565b505b505b508061344981615478565b915050613346565b5061345d846001613d55565b506001600160801b03891615156134898161347957601161347c565b60215b869061ffff166002613ccb565b50613495856001613d55565b506134ab856001600160801b0385166010613ccb565b5080156134c9576134c7856001600160801b038c166010613ccb565b505b505091519998505050505050505050565b60008060008484828181106134f1576134f1614cc4565b919091013560f81c935060019150859050818561350f600783615177565b935061351e9284929190614f2a565b6135279161576d565b60c81c91509250925092565b600080845b80841080156135505750876040015160ff168260ff16105b156136135760003660008060006135688c8c8b613efb565b94509450945094509450848d60000151888061358390615478565b995060ff168151811061359857613598614cc4565b60200260200101819052508984846040516020016135b8939291906157b3565b604051602081830303815290604052805190602001209950818d6060018181516135e29190615177565b90525060c085015160808e0180516135fb908390615497565b6001600160801b031690525097506135389350505050565b80841461364c576040517f5b3f67cd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50929695505050505050565b8151349060005b818110156137f057600085828151811061367b5761367b614cc4565b60200260200101519050600061369482600001516141f7565b9050816020015115613762576040820151516136bb816001600160801b0389166001612f9f565b1561371557604080516001600160a01b03831681526001600160801b03891660208201819052909703967f2d0eb51492ddbee9e95192a44349b114ecfdaacebba5e8aa735b12f14ab1affa910160405180910390a1613760565b604080516001600160a01b03831681526001600160801b03891660208201527f4e2061832d78c1622b4b41b221d1791733ba77cd67e86bba10b3e61194d55eb2910160405180910390a15b505b60408083015190517f7e3e8a4c0000000000000000000000000000000000000000000000000000000081526001600160a01b03831691637e3e8a4c916137b0918d918d9189916004016157cd565b600060405180830381600087803b1580156137ca57600080fd5b505af11580156137de573d6000803e3d6000fd5b50506001909401935061365f92505050565b508115613803576138033383600061424b565b505050505050565b60608261384e5783838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610fcf92505050565b6001600160a01b038216848460405160200161386c939291906157b3565b604051602081830303815290604052949350505050565b60408051600180825281830190925260609160009190816020015b6040805160e081018252600080825260208083018290529282018190526060808301526080820181905260a0820181905260c0820152825260001990920191018161389e5790505090506040518060e001604052808761ffff1681526020018681526020018567ffffffffffffffff16815260200184815260200160006001600160801b0316815260200160006001600160801b0316815260200160006001600160801b03168152508160008151811061395a5761395a614cc4565b6020026020010181905250610ddd8160008551613058565b606060006139808686613e93565b905061398f8660008686611490565b915081516000146139ca5781600160116001846040516020016139b695949392919061584b565b604051602081830303815290604052610ddd565b6040517e0300000000000000000000000000000000000000000000000000000000000060208201527f0100000000000000000000000000000000000000000000000000000000000000602282018190527e11000000000000000000000000000000000000000000000000000000000000602383015260258201527fffffffffffffffffffffffffffffffff00000000000000000000000000000000608083901b1660268201526036016040516020818303038152906040529695505050505050565b60606000613a9e846060015151613dda565b9050600061ffff821615613b0f5761ffff8216613abc601080615177565b60026010806008613ace602085615177565b613ad89190615177565b613ae29190615177565b613aec9190615177565b613af69190615177565b613b009190615177565b613b0a9190615177565b613b49565b60026010806008613b21602085615177565b613b2b9190615177565b613b359190615177565b613b3f9190615177565b613b499190615177565b9050613b68604051806040016040528060608152602001600081525090565b613b728183613c54565b508551613b8690829061ffff166002613ccb565b506020860151613b97908290613db9565b506040860151613bb490829067ffffffffffffffff166008613ccb565b50613bca816001600160801b0387166010613ccb565b5060c0860151613be69082906001600160801b03166010613ccb565b50613bf78161ffff85166002613ccb565b5061ffff831615613c4a576080860151613c1d9082906001600160801b03166010613ccb565b5060a0860151613c399082906001600160801b03166010613ccb565b5060608601516131dd908290613e72565b5195945050505050565b604080518082019091526060815260006020820152613c746020836158fc565b15613c9c57613c846020836158fc565b613c8f906020614c64565b613c999083615177565b91505b602080840183905260405180855260008152908184010181811015613cc057600080fd5b604052509192915050565b6040805180820190915260608152600060208201528351516000613cef8285615177565b90508560200151811115613d1157613d1186613d0c836002615706565b614291565b60006001613d21866101006159f4565b613d2b9190614c64565b90508651828101878319825116178152508051831115613d49578281525b50959695505050505050565b6040805180820190915260608152600060208201528251516000613d7a826001615177565b905084602001518210613d9657613d9685613d0c836002615706565b8451602083820101858153508051821115613daf578181525b5093949350505050565b604080518082019091526060815260006020820152612a07838360206142ae565b600061ffff821115613e6e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203160448201527f36206269747300000000000000000000000000000000000000000000000000006064820152608401610b82565b5090565b604080518082019091526060815260006020820152612a078383845161432d565b63ffffffff8216600090815260076020908152604080832061ffff851684529091528120546001600160801b031690819003610ebb576040517fc960f36b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805160e0810182526000808252602082018190529181018290526060808201526080810182905260a0810182905260c0810191909152366000808060026010806008613f4a602085615177565b613f549190615177565b613f5e9190615177565b613f689190615177565b613f729190615177565b613f7c9087615177565b871015613fb5576040517f08665d0f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5084878188613fc5600283615177565b9350613fd49284929190614f2a565b613fdd916153ce565b60f01c8552878188613ff0602083615177565b9350613fff9284929190614f2a565b61400891615414565b602086015287818861401b600883615177565b935061402a9284929190614f2a565b61403391615432565b60c01c6040860152878188614049601083615177565b93506140589284929190614f2a565b61406191615386565b60801c9150878188614074601083615177565b93506140839284929190614f2a565b61408c91615386565b60801c60c086015260008882896140a4600283615177565b94506140b39285929190614f2a565b6140bc916153ce565b60f01c905080156141db5761ffff81166140d7601080615177565b6140e19084615177565b6140eb9190615177565b881015614124576040517f08665d0f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b888289614132601083615177565b94506141419285929190614f2a565b61414a91615386565b608090811c90870152888289614161601083615177565b94506141709285929190614f2a565b61417991615386565b60801c60a087015288828961419261ffff851683615177565b94506141a19285929190614f2a565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050505060608701525b6141e782888a8c614f2a565b9450945050939792965093509350565b61ffff81166000908152600460205260409020546001600160a01b031680612518576040517f8b6fecb700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b614256838383612f9f565b61428c576040517f7c75c3d200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b815161429d8383613c54565b506142a88382613e72565b50505050565b60408051808201909152606081526000602082015283515160006142d28285615177565b905085602001518111156142ef576142ef86613d0c836002615706565b60006001856101000a0390508460200360080286901c95508651828101878319825116178152508051831115613d4957919091525093949350505050565b604080518082019091526060815260006020820152825182111561435057600080fd5b835151600061435f8483615177565b9050856020015181111561437c5761437c86613d0c836002615706565b855180518382016020019160009180851115614396578482525b505050602086015b602086106143d657805182526143b5602083615177565b91506143c2602082615177565b90506143cf602087614c64565b955061439e565b51815160001960208890036101000a0190811690199190911617905250849150509392505050565b604051806060016040528060008019168152602001600067ffffffffffffffff168152602001614441604051806040016040528060008152602001600081525090565b905290565b803563ffffffff8116811461251857600080fd5b60008083601f84011261446c57600080fd5b50813567ffffffffffffffff81111561448457600080fd5b60208301915083602082850101111561449c57600080fd5b9250929050565b6000806000604084860312156144b857600080fd5b6144c184614446565b9250602084013567ffffffffffffffff8111156144dd57600080fd5b6144e98682870161445a565b9497909650939450505050565b815181526020808301519082015260408101610ebb565b60006060828403121561451f57600080fd5b50919050565b80356001600160a01b038116811461251857600080fd5b600080600080600080600060e0888a03121561455757600080fd5b614561898961450d565b965060608801359550608088013567ffffffffffffffff8082111561458557600080fd5b6145918b838c0161445a565b90975095508591506145a560a08b01614525565b945060c08a01359150808211156145bb57600080fd5b506145c88a828b0161445a565b989b979a50959850939692959293505050565b803561ffff8116811461251857600080fd5b80356001600160801b038116811461251857600080fd5b60008060006060848603121561461957600080fd5b61462284614446565b9250614630602085016145db565b915061463e604085016145ed565b90509250925092565b803560ff8116811461251857600080fd5b6000806040838503121561466b57600080fd5b61467483614446565b915061223660208401614647565b600060c0828403121561451f57600080fd5b600080604083850312156146a757600080fd5b823567ffffffffffffffff8111156146be57600080fd5b6146ca85828601614682565b925050602083013580151581146146e057600080fd5b809150509250929050565b600080604083850312156146fe57600080fd5b61470783614446565b946020939093013593505050565b6000806040838503121561472857600080fd5b61473183614446565b9150612236602084016145db565b60005b8381101561475a578181015183820152602001614742565b50506000910152565b6000815180845261477b81602086016020860161473f565b601f01601f19169290920160200192915050565b602081526000612a076020830184614763565b6000602082840312156147b457600080fd5b612a07826145db565b6000602082840312156147cf57600080fd5b612a0782614525565b60008060008060a085870312156147ee57600080fd5b6147f8868661450d565b9350606085013567ffffffffffffffff81111561481457600080fd5b6148208782880161445a565b9094509250614833905060808601614525565b905092959194509250565b6000806040838503121561485157600080fd5b61473183614525565b60008083601f84011261486c57600080fd5b50813567ffffffffffffffff81111561488457600080fd5b6020830191508360208260051b850101111561449c57600080fd5b803566ffffffffffffff8116811461251857600080fd5b600080600080606085870312156148cc57600080fd5b843567ffffffffffffffff8111156148e357600080fd5b6148ef8782880161485a565b909550935061490290506020860161489f565b91506148336040860161489f565b6000806040838503121561492357600080fd5b61492c83614446565b9150612236602084016145ed565b6000806020838503121561494d57600080fd5b823567ffffffffffffffff81111561496457600080fd5b6149708582860161485a565b90969095509350505050565b60006020828403121561498e57600080fd5b612a0782614446565b600080600080606085870312156149ad57600080fd5b6149b685614446565b93506149c4602086016145db565b9250604085013567ffffffffffffffff8111156149e057600080fd5b6149ec8782880161445a565b95989497509550505050565b80356effffffffffffffffffffffffffffff8116811461251857600080fd5b600080600060608486031215614a2c57600080fd5b614a3584614446565b9250614a43602085016149f8565b915061463e604085016149f8565b60008060008060608587031215614a6757600080fd5b614a7085614446565b9350602085013567ffffffffffffffff811115614a8c57600080fd5b614a988782880161445a565b9094509250614833905060408601614525565b8051825267ffffffffffffffff6020820151166020830152604081015161428c604084018280518252602090810151910152565b60808101610ebb8284614aab565b60008060408385031215614b0057600080fd5b614b0983614446565b91506122366020840161489f565b60008060e08385031215614b2a57600080fd5b614b348484614682565b915061223660c08401614525565b614b4c8184614aab565b60a0608082015266ffffffffffffff82511660a082015260006020830151604060c084015261231760e0840182614763565b600080600060608486031215614b9357600080fd5b614b9c846145db565b9250614baa60208501614446565b915061463e60408501614647565b60008060008385036080811215614bce57600080fd5b843567ffffffffffffffff811115614be557600080fd5b614bf187828801614682565b9450506040601f1982011215614c0657600080fd5b5060208401915061463e60608501614525565b600060608284031215614c2b57600080fd5b612a07838361450d565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b81810381811115610ebb57610ebb614c35565b600181811c90821680614c8b57607f821691505b60208210810361451f577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b66ffffffffffffff828116828216039080821115614d1357614d13614c35565b5092915050565b600066ffffffffffffff808316818103614d3657614d36614c35565b6001019392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516060810167ffffffffffffffff81118282101715614d9257614d92614d40565b60405290565b6040805190810167ffffffffffffffff81118282101715614d9257614d92614d40565b604051601f8201601f1916810167ffffffffffffffff81118282101715614de457614de4614d40565b604052919050565b600067ffffffffffffffff821115614e0657614e06614d40565b50601f01601f191660200190565b600067ffffffffffffffff80841115614e2f57614e2f614d40565b8360051b6020614e40818301614dbb565b868152918501918181019036841115614e5857600080fd5b865b84811015614f1e57803586811115614e725760008081fd5b88016060368290031215614e865760008081fd5b614e8e614d6f565b614e9782614446565b8152614ea48683016145db565b8682015260408083013589811115614ebc5760008081fd5b929092019136601f840112614ed15760008081fd5b8235614ee4614edf82614dec565b614dbb565b8181523689838701011115614ef95760008081fd5b818986018a830137600091810189019190915290820152845250918301918301614e5a565b50979650505050505050565b60008085851115614f3a57600080fd5b83861115614f4757600080fd5b5050820193919092039150565b60008451614f6681846020890161473f565b8201838582376000930192835250909392505050565b818352818160208501375060006020828401015260006020601f19601f840116840101905092915050565b602081526000610fcf602083018486614f7c565b600082357ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec1833603018112614fef57600080fd5b9190910192915050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261502e57600080fd5b83018035915067ffffffffffffffff82111561504957600080fd5b60200191503681900382131561449c57600080fd5b67ffffffffffffffff81168114611ef657600080fd5b63ffffffff61508282614446565b16825260208101356020830152604081013561509d8161505e565b67ffffffffffffffff81166040840152505050565b6150bc8189615074565b86606082015260e0608082015260006150d960e083018789614f7c565b6001600160a01b03861660a084015282810360c08401526150fb818587614f7c565b9a9950505050505050505050565b60006020828403121561511b57600080fd5b815167ffffffffffffffff81111561513257600080fd5b8201601f8101841361514357600080fd5b8051615151614edf82614dec565b81815285602083850101111561516657600080fd5b61231782602083016020860161473f565b80820180821115610ebb57610ebb614c35565b60006020828403121561519c57600080fd5b8135612a078161505e565b6000602082840312156151b957600080fd5b612a07826145ed565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082615200576152006151c2565b500490565b60006040828403121561521757600080fd5b61521f614d98565b82358152602083013560208201528091505092915050565b600066ffffffffffffff80841680615251576152516151c2565b92169190910692915050565b66ffffffffffffff818116838216019080821115614d1357614d13614c35565b6040815263ffffffff8351166040820152602083015160608201526000604084015160a060808401526152b360e0840182614763565b905060608501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08483030160a08501526152ee8282614763565b60809690960151151560c08501525050506001600160a01b039190911660209091015290565b60006040828403121561532657600080fd5b61532e614d98565b9050815181526020820151602082015292915050565b60006040828403121561535657600080fd5b612a078383615314565b60006001600160801b038084168061537a5761537a6151c2565b92169190910492915050565b7fffffffffffffffffffffffffffffffff0000000000000000000000000000000081358181169160108510156153c65780818660100360031b1b83161692505b505092915050565b7fffff00000000000000000000000000000000000000000000000000000000000081358181169160028510156153c65760029490940360031b84901b1690921692915050565b80356020831015610ebb57600019602084900360031b1b1692915050565b7fffffffffffffffff00000000000000000000000000000000000000000000000081358181169160088510156153c65760089490940360031b84901b1690921692915050565b600060ff821660ff810361548e5761548e614c35565b60010192915050565b6001600160801b03818116838216019080821115614d1357614d13614c35565b601f82111561428c576000816000526020600020601f850160051c810160208610156154e05750805b601f850160051c820191505b81811015613803578281556001016154ec565b815167ffffffffffffffff81111561551957615519614d40565b61552d816155278454614c77565b846154b7565b602080601f831160018114615562576000841561554a5750858301515b600019600386901b1c1916600185901b178555613803565b600085815260208120601f198616915b8281101561559157888601518255948401946001909101908401615572565b50858210156155af5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b8381101561565a578883037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc00185528151805163ffffffff1684528781015161ffff1688850152860151606087850181905261564681860183614763565b9689019694505050908601906001016155e8565b509098975050505050505050565b60006080828403121561567a57600080fd5b615682614d6f565b8251815260208301516156948161505e565b60208201526156a68460408501615314565b60408201529392505050565b828152600082516156ca81602085016020870161473f565b919091016020019392505050565b63ffffffff8416815266ffffffffffffff831660208201526060604082015260006123176060830184614763565b8082028115828204841417610ebb57610ebb614c35565b61ffff818116838216019080821115614d1357614d13614c35565b61ffff8181168382160280821691908281146153c6576153c6614c35565b600061ffff808316818103614d3657614d36614c35565b7fffffffffffffff0000000000000000000000000000000000000000000000000081358181169160078510156153c65760079490940360031b84901b1690921692915050565b838152818360208301376000910160200190815292915050565b6157d78186615074565b83606082015260ff8316608082015260c060a08201526001600160a01b0382511660c082015267ffffffffffffffff60208301511660e082015260006040830151608061010084015261582e610140840182614763565b905060ff6060850151166101208401528091505095945050505050565b6000865161585d818460208b0161473f565b60f896871b7fff000000000000000000000000000000000000000000000000000000000000009081169390910192835260f09590951b7fffff000000000000000000000000000000000000000000000000000000000000166001830152509190931b909116600382015260809190911b7fffffffffffffffffffffffffffffffff00000000000000000000000000000000166004820152601401919050565b60008261590b5761590b6151c2565b500690565b600181815b8085111561594b57816000190482111561593157615931614c35565b8085161561593e57918102915b93841c9390800290615915565b509250929050565b60008261596257506001610ebb565b8161596f57506000610ebb565b8160018114615985576002811461598f576159ab565b6001915050610ebb565b60ff8411156159a0576159a0614c35565b50506001821b610ebb565b5060208310610133831016604e8410600b84101617156159ce575081810a610ebb565b6159d88383615910565b80600019048211156159ec576159ec614c35565b029392505050565b6000612a07838361595356fea26469706673582212207a68c05f7dbf71ce5752fbe9a57b8ad718b6d670660d24e2f32c0d082a559e9a64736f6c63430008160033";
|
|
20710
|
+
var _bytecode16 = "0x60e06040523480156200001157600080fd5b5060405162005cc338038062005cc3833981016040819052620000349162000207565b82828181818162000045336200019a565b6001600160a01b0380831660805281166200007357604051632d618d8160e21b815260040160405180910390fd5b60805160405163ca5eb5e160e01b81526001600160a01b0383811660048301529091169063ca5eb5e190602401600060405180830381600087803b158015620000bb57600080fd5b505af1158015620000d0573d6000803e3d6000fd5b5050505050505050505060028166ffffffffffffff161015620001065760405163e7c8940d60e01b815260040160405180910390fd5b8066ffffffffffffff1660a08166ffffffffffffff16815250506080516001600160a01b031663416ecebf6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000161573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000187919062000260565b63ffffffff1660c052506200028f915050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146200020257600080fd5b919050565b6000806000606084860312156200021d57600080fd5b6200022884620001ea565b92506200023860208501620001ea565b9150604084015166ffffffffffffff811681146200025557600080fd5b809150509250925092565b6000602082840312156200027357600080fd5b815163ffffffff811681146200028857600080fd5b9392505050565b60805160a05160c0516159be6200030560003960006117f801526000818161044e01528181610a9701528181610c13015281816112a0015281816112ea0152818161199a0152611b710152600081816104ca01528181610b190152818161191b0152818161222e0152612c2f01526159be6000f3fe6080604052600436106102f25760003560e01c8063917df23b1161018f578063d045a0dc116100e1578063e4c572cc1161008a578063fda49eb411610064578063fda49eb414610a11578063ff6fb30014610a31578063ff7bd03d14610a4457600080fd5b8063e4c572cc14610983578063f2fde38b146109a3578063f8d50da6146109c357600080fd5b8063d4243885116100bb578063d424388514610912578063d8e8dbc714610932578063e018950f1461096357600080fd5b8063d045a0dc14610891578063d117b562146108a4578063d40f8743146108f157600080fd5b8063bb0b6a5311610143578063c39d902c1161011d578063c39d902c14610831578063ca5eb5e114610851578063cbb1ac7b1461087157600080fd5b8063bb0b6a53146107c3578063bc70b354146107fe578063bd815db01461081e57600080fd5b8063a2bdd90c11610174578063a2bdd90c14610763578063b731ea0a14610783578063b98bd070146107a357600080fd5b8063917df23b146106fd57806399bb66ce1461074357600080fd5b80635e280f1111610248578063715018a6116101fc578063826f1fb1116101d6578063826f1fb11461069f5780638da5cb5b146106bf5780638f71f7dd146106dd57600080fd5b8063715018a61461062e5780637d25a05e1461064357806382413eac1461067f57600080fd5b806365b9bacb1161022d57806365b9bacb14610522578063671d6429146105425780636ad9914d1461056257600080fd5b80635e280f11146104b85780635f6d9ae4146104ec57600080fd5b806332e4e363116102aa5780635535d461116102845780635535d4611461040f578063565e49991461043c5780635a0dfe4d1461048857600080fd5b806332e4e363146103a45780633400288b146103dc57806352ae2879146103fc57600080fd5b806317442b70116102db57806317442b70146103425780632dca2f51146103645780633292cf021461038457600080fd5b8063086431ec146102f757806313137d651461032d575b600080fd5b34801561030357600080fd5b50610317610312366004614465565b610a64565b60405161032491906144b8565b60405180910390f35b61034061033b3660046144fe565b610b17565b005b34801561034e57600080fd5b5060408051600181526002602082015201610324565b34801561037057600080fd5b5061034061037f3660046145ae565b610c09565b34801561039057600080fd5b5061031761039f3660046145ea565b610cde565b3480156103b057600080fd5b506005546103c4906001600160a01b031681565b6040516001600160a01b039091168152602001610324565b3480156103e857600080fd5b506103406103f7366004614641565b610d36565b34801561040857600080fd5b50306103c4565b34801561041b57600080fd5b5061042f61042a36600461467d565b610d4c565b60405161032491906146f7565b34801561044857600080fd5b506104707f000000000000000000000000000000000000000000000000000000000000000081565b60405166ffffffffffffff9091168152602001610324565b34801561049457600080fd5b506104a86104a3366004614641565b610df1565b6040519015158152602001610324565b3480156104c457600080fd5b506103c47f000000000000000000000000000000000000000000000000000000000000000081565b3480156104f857600080fd5b506103c461050736600461470a565b6004602052600090815260409020546001600160a01b031681565b34801561052e57600080fd5b5061034061053d36600461473c565b610e10565b34801561054e57600080fd5b5061034061055d366004614766565b610e96565b34801561056e57600080fd5b506105e261057d366004614781565b6008602052600090815260409020805460019091015460ff8216916effffffffffffffffffffffffffffff6101008204811692700100000000000000000000000000000000909204169066ffffffffffffff8082169167010000000000000090041685565b6040805160ff90961686526effffffffffffffffffffffffffffff9485166020870152939092169284019290925266ffffffffffffff918216606084015216608082015260a001610324565b34801561063a57600080fd5b50610340610f0b565b34801561064f57600080fd5b5061066661065e366004614641565b600092915050565b60405167ffffffffffffffff9091168152602001610324565b34801561068b57600080fd5b506104a861069a36600461479c565b610f1f565b3480156106ab57600080fd5b506103406106ba366004614766565b610fac565b3480156106cb57600080fd5b506000546001600160a01b03166103c4565b3480156106e957600080fd5b506103406106f8366004614802565b61101a565b34801561070957600080fd5b506002546107309074010000000000000000000000000000000000000000900461ffff1681565b60405161ffff9091168152602001610324565b34801561074f57600080fd5b5061034061075e36600461487a565b61120c565b34801561076f57600080fd5b5061031761077e36600461473c565b611404565b34801561078f57600080fd5b506002546103c4906001600160a01b031681565b3480156107af57600080fd5b506103406107be3660046148d4565b61144b565b3480156107cf57600080fd5b506107f06107de366004614781565b60016020526000908152604090205481565b604051908152602001610324565b34801561080a57600080fd5b5061042f610819366004614916565b611465565b61034061082c3660046148d4565b611626565b34801561083d57600080fd5b5061034061084c366004614996565b6117b2565b34801561085d57600080fd5b5061034061086c366004614766565b6118db565b61088461087f3660046149d9565b611973565b6040516103249190614a67565b61034061089f3660046144fe565b611a5e565b3480156108b057600080fd5b506107f06108bf366004614a75565b63ffffffff909116600090815260086020908152604080832066ffffffffffffff909416835260029093019052205490565b6109046108ff366004614a9f565b611aa6565b604051610324929190614aca565b34801561091e57600080fd5b5061034061092d366004614766565b611c24565b34801561093e57600080fd5b5061073061094d366004614766565b60036020526000908152604090205461ffff1681565b34801561096f57600080fd5b506107f061097e366004614b06565b611c92565b34801561098f57600080fd5b5061034061099e36600461470a565b611da5565b3480156109af57600080fd5b506103406109be366004614766565b611e28565b3480156109cf57600080fd5b506109f96109de366004614781565b6007602052600090815260409020546001600160801b031681565b6040516001600160801b039091168152602001610324565b348015610a1d57600080fd5b506009546103c4906001600160a01b031681565b610884610a3f366004614b40565b611ed2565b348015610a5057600080fd5b506104a8610a5f366004614ba1565b611f23565b604080518082019091526000808252602082015263ffffffff80851660009081526008602052604081209091610ac191907f00000000000000000000000000000000000000000000000000000000000000009087908790611f5916565b9050600080610ad087846121e1565b91509150610ae18783836000612218565b93508260600151846000015111610af9576000610b0a565b60608301518451610b0a9190614bec565b8452509195945050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163314610b80576040517f91ac5e4f0000000000000000000000000000000000000000000000000000000081523360048201526024015b60405180910390fd5b60208701803590610b9a90610b95908a614781565b6122f9565b14610bf157610bac6020880188614781565b6040517fc26bebcc00000000000000000000000000000000000000000000000000000000815263ffffffff909116600482015260208801356024820152604401610b77565b610c008787878787878761234e565b50505050505050565b610c116123f7565b7f000000000000000000000000000000000000000000000000000000000000000066ffffffffffffff168160ff1610610c76576040517f31843b5600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b63ffffffff8083166000908152600860205260409020610c9891839061246b16565b6040805163ffffffff8416815260ff831660208201527ff9fa6c3c4dbf13c4a8348c3102ef22789aa450b81e492b853e93f9701e08958091015b60405180910390a15050565b60408051808201909152600080825260208201526000610cfd3361249a565b9050600080610d0c83876124f6565b9092509050610d2c610d246040880160208901614781565b838388612218565b9695505050505050565b610d3e6123f7565b610d48828261255f565b5050565b600660209081526000928352604080842090915290825290208054610d7090614bff565b80601f0160208091040260200160405190810160405280929190818152602001828054610d9c90614bff565b8015610de95780601f10610dbe57610100808354040283529160200191610de9565b820191906000526020600020905b815481529060010190602001808311610dcc57829003601f168201915b505050505081565b63ffffffff821660009081526001602052604090205481145b92915050565b610e186123f7565b63ffffffff821660008181526007602090815260409182902080547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166001600160801b0386169081179091558251938452908301527f2de2cdf6b9f29bfb9afedda6cf015c5fcb9832c9c0c3dcc06d501d964cf565379101610cd2565b610e9e6123f7565b600980547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383169081179091556040519081527fa3d32c8d3ebb805bea77a26e7c146c5a608570f9179b53a417e92f10f5b306b9906020015b60405180910390a150565b610f136123f7565b610f1d60006125ad565b565b600080610f2c8585612615565b5050905060005b8151811015610f9d57836001600160a01b031660046000848481518110610f5c57610f5c614c4c565b6020908102919091018101515161ffff168252810191909152604001600020546001600160a01b031603610f9557600192505050610fa4565b600101610f33565b5060009150505b949350505050565b610fb46123f7565b600580547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383169081179091556040519081527f5767d79cd17d7554509a4dd59a5a7a9175c7e36466455d7b2fa478822880857990602001610f00565b6110226123f7565b60025461ffff740100000000000000000000000000000000000000009091048116908216111561109257600280547fffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000061ffff8416021790555b6001600160a01b0380831660009081526003602090815260408083205461ffff868116855260049093529220549116911681156111035761ffff8216600090815260046020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001690555b6001600160a01b03811615611151576001600160a01b038116600090815260036020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001690555b6001600160a01b038416600081815260036020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001661ffff8916908117909155808452600483529281902080547fffffffffffffffffffffffff000000000000000000000000000000000000000016851790558051938452908301919091527fac53470cf8e9e3d673caa7d47cd7db36c0d38cf37fc147c70c92bc0c1c4734f591015b60405180910390a150505050565b6112146123f7565b60005b838110156113fd5760006008600087878581811061123757611237614c4c565b905060200201602081019061124c9190614781565b63ffffffff16815260208101919091526040016000908120600181015490925066ffffffffffffff908116908616101561129357600182015466ffffffffffffff16611295565b845b905060006112c460017f0000000000000000000000000000000000000000000000000000000000000000614c7b565b66ffffffffffffff168566ffffffffffffff1610156112e3578461130e565b61130e60017f0000000000000000000000000000000000000000000000000000000000000000614c7b565b9050815b8166ffffffffffffff168166ffffffffffffff161161137a5766ffffffffffffff8116600090815260028501602052604090207f460000000000000000000000000000000000000000000000000000000000000090558061137281614ca2565b915050611312565b507f5032c62011fb9918d2d9a36b6391111f72f778dc98300d2e22f0062a76e712f58888868181106113ae576113ae614c4c565b90506020020160208101906113c39190614781565b6040805163ffffffff909216825266ffffffffffffff808616602084015284169082015260600160405180910390a1505050600101611217565b5050505050565b604080518082019091526000808252602082015263ffffffff808416600090815260086020526040902061143a91849061298216565b6001600160801b0316815292915050565b6114536123f7565b610d486114608284614d9c565b6129e6565b63ffffffff8416600090815260066020908152604080832061ffff8716845290915281208054606092919061149990614bff565b80601f01602080910402602001604051908101604052809291908181526020018280546114c590614bff565b80156115125780601f106114e757610100808354040283529160200191611512565b820191906000526020600020905b8154815290600101906020018083116114f557829003601f168201915b5050505050905080516000036115625783838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929450610fa49350505050565b6000839003611572579050610fa4565b600283106115f0576115b984848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612aed92505050565b806115c78460028188614eb2565b6040516020016115d993929190614edc565b604051602081830303815290604052915050610fa4565b83836040517f9a6d49cd000000000000000000000000000000000000000000000000000000008152600401610b77929190614f2f565b60005b81811015611718573683838381811061164457611644614c4c565b90506020028101906116569190614f43565b90506116726116686020830183614781565b6020830135610df1565b61167c5750611710565b3063d045a0dc60c08301358360a081013561169b610100830183614f81565b6116ac610100890160e08a01614766565b6116ba6101208a018a614f81565b6040518963ffffffff1660e01b81526004016116dc979695949392919061503a565b6000604051808303818588803b1580156116f557600080fd5b505af1158015611709573d6000803e3d6000fd5b5050505050505b600101611629565b50336001600160a01b0316638e9e70996040518163ffffffff1660e01b8152600401600060405180830381865afa158015611757573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261177f9190810190615091565b6040517f8351eea7000000000000000000000000000000000000000000000000000000008152600401610b7791906146f7565b6005546001600160a01b031633146117f6576040517fc63aab2c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000063ffffffff168363ffffffff160361185b576040517fa27dd10200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b63ffffffff808416600090815260086020526040902061187f9184908490612b3216565b6040805163ffffffff851681526effffffffffffffffffffffffffffff848116602083015283168183015290517fb8611e882dee0ae26e55604af1d40fa9f0ec18a0e28dcee93da3b15239930caf9181900360600190a1505050565b6118e36123f7565b6040517fca5eb5e10000000000000000000000000000000000000000000000000000000081526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e190602401600060405180830381600087803b15801561195f57600080fd5b505af11580156113fd573d6000803e3d6000fd5b61197b6143c0565b63ffffffff808616600090815260086020526040812090916119c491907f00000000000000000000000000000000000000000000000000000000000000009088908890612bac16565b90506000806119d388846121e1565b91509150600060405180604001604052808560600151346119f491906150ff565b815260006020909101819052600954919250906001600160a01b031615611a26576009546001600160a01b0316611a28565b865b9050611a378a85858585612c23565b9550611a518a866020015187604001518960000151612cfc565b5050505050949350505050565b333014611a97576040517f14d4a4e800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610c0087878787878787610bf1565b611aae6143c0565b6040805180820190915260008152606060208201526000611ace3361249a565b905060006040518060e001604052808361ffff16815260200187604001358152602001876060016020810190611b049190615112565b67ffffffffffffffff16815260408051602081810183526000808352908401919091529082018190526060820152608001611b4560c0890160a08a0161512f565b6001600160801b0316905290506000611b646040880160208901614781565b9050600080600080611bc67f000000000000000000000000000000000000000000000000000000000000000086888e6080016020810190611ba5919061512f565b63ffffffff808b1660009081526008602052604090209493929190612d5416565b60408051808201825266ffffffffffffff8616815260208101859052908e01516001600160801b0393909316928390529b50929650909450925090508015611c1657611c148a826000612f77565b505b505050505050509250929050565b611c2c6123f7565b600280547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383169081179091556040519081527fd48d879cef83a1c0bdda516f27b13ddb1b3f8bbac1c9e1511bb2a659c242776090602001610f00565b6000808260ff1667ffffffffffffffff811115611cb157611cb1614cc8565b604051908082528060200260200182016040528015611d1757816020015b6040805160e081018252600080825260208083018290529282018190526060808301526080820181905260a0820181905260c08201528252600019909201910181611ccf5790505b50905060005b8360ff168160ff161015611d5c5785828260ff1681518110611d4157611d41614c4c565b602090810291909101015161ffff9091169052600101611d1d565b506000611d6b82600080613030565b90506000611d7c86846000806131c0565b90508460ff16611d8f8784846000612218565b51611d9a9190615179565b979650505050505050565b611dad6123f7565b600280547fffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000061ffff8416908102919091179091556040519081527f8f1145f51954bc9512a08693182e170a57b63ca4f6acc321b87c526970f4c01790602001610f00565b611e306123f7565b6001600160a01b038116611ec6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610b77565b611ecf816125ad565b50565b611eda6143c0565b6000611ee53361249a565b9050600080611ef483886124f6565b9092509050611d9a611f0c6040890160208a01614781565b8383611f1d368b90038b018b61518d565b89612c23565b6000602082018035906001908390611f3b9086614781565b63ffffffff1681526020810191909152604001600020541492915050565b6040805160a0810182526060808252600060208301819052928201839052810182905260808101829052908080611f9086866134ad565b60ff83166040880181905266ffffffffffffff8316602089015292955090935091501580611fc55750875460ff908116908416115b15611ffc576040517f5b3f67cd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8260ff1667ffffffffffffffff81111561201857612018614cc8565b60405190808252806020026020018201604052801561207e57816020015b6040805160e081018252600080825260208083018290529282018190526060808301526080820181905260a0820181905260c082015282526000199092019101816120365790505b508452600188015466ffffffffffffff83811667010000000000000090920416146120d5576040517f5b3f67cd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600066ffffffffffffff83161561212857600289016000896120f8600187614c7b565b61210291906151bf565b66ffffffffffffff1666ffffffffffffff1681526020019081526020016000205461212b565b60005b905061213a8588888486613506565b90506000600161214d60ff8716866151e5565b6121579190614c7b565b60018b015490915066ffffffffffffff9081169082161015806121aa575060028a0160006121858b846151bf565b66ffffffffffffff1666ffffffffffffff168152602001908152602001600020548214155b15611a51576040517f5b3f67cd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6060806121f8836000015184608001516000613030565b915061220f848460000151856080015160006131c0565b90509250929050565b60408051808201909152600080825260208201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ddc28c586040518060a001604052808863ffffffff16815260200161227b896122f9565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b81526004016122b0929190615205565b6040805180830381865afa1580156122cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122f091906152cc565b95945050505050565b63ffffffff811660009081526001602052604081205480610e0a576040517ff6ff4fb700000000000000000000000000000000000000000000000000000000815263ffffffff84166004820152602401610b77565b600080600061235d8888612615565b9250925092506000826001600160801b03161180156123855750816001600160801b03163414155b156123bc576040517f07098ab800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600060ff8216156123d9576123d460ff8316846152e8565b6123dc565b60005b90506123ea8b8b868461362b565b5050505050505050505050565b6000546001600160a01b03163314610f1d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610b77565b81547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660ff91909116179055565b6001600160a01b03811660009081526003602052604081205461ffff16908190036124f1576040517f8b6fecb700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b60608061253884604085013561251160808701878601615112565b6125336125216080890189614f81565b61252e60208b018b614766565b6137de565b613856565b915061220f61254d6040850160208601614781565b61255a60a0860186614f81565b613945565b63ffffffff8216600081815260016020908152604091829020849055815192835282018390527f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b9101610cd2565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6060600080808581866126296010836150ff565b93506126389284929190614eb2565b6126419161530e565b60801c9250600086868381811061265a5761265a614c4c565b919091013560f81c9150600090506126736001846150ff565b92508160ff1667ffffffffffffffff81111561269157612691614cc8565b60405190808252806020026020018201604052801561270057816020015b6126ed604080516060808201835260008083526020808401829052845160808101865282815290810182905280850183905291820152909182015290565b8152602001906001900390816126af5790505b50955060005b8260ff168160ff16101561293e57600089858a6127246002836150ff565b97506127339288929190614eb2565b61273c91615356565b60f01c9050600061276f8b878c6127546020836150ff565b9950612763928a929190614eb2565b61276c9161539c565b90565b905060008b878c6127816008836150ff565b9950612790928a929190614eb2565b612799916153ba565b60c01c905060008c8c898181106127b2576127b2614c4c565b600192013560f81c821492506127ca919050896150ff565b975080156127e057886127dc81615400565b9950505b60008d898e6127f06002836150ff565b9b506127ff928c929190614eb2565b61280891615356565b60f01c9050600081612829576040518060200160405280600081525061287e565b8e8a8f61283a61ffff8616836150ff565b9c50612849928d929190614eb2565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152505050505b9050600060405180606001604052808861ffff16815260200185151581526020016040518060800160405280896001600160a01b031681526020018867ffffffffffffffff168152602001858152602001600060ff16815250815250905060008361ffff16111561290957886128f381615400565b604083015160ff90921660609092019190915298505b808e8960ff168151811061291f5761291f614c4c565b6020026020010181905250505050505050508080600101915050612706565b50828714612978576040517f7e87b49900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050509250925092565b815461010090046effffffffffffffffffffffffffffff1660008190036129d5576040517f2701dbb900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6129df828261541f565b9392505050565b60005b8151811015612abd57612a18828281518110612a0757612a07614c4c565b602002602001015160400151612aed565b818181518110612a2a57612a2a614c4c565b60200260200101516040015160066000848481518110612a4c57612a4c614c4c565b60200260200101516000015163ffffffff1663ffffffff1681526020019081526020016000206000848481518110612a8657612a86614c4c565b60200260200101516020015161ffff1661ffff1681526020019081526020016000209081612ab49190615487565b506001016129e9565b507fbe4864a8e820971c0247f5992e2da559595f7bf076a21cb5928d443d2a13b67481604051610f009190615547565b600281015161ffff8116600314610d4857816040517f9a6d49cd000000000000000000000000000000000000000000000000000000008152600401610b7791906146f7565b82547fff000000000000000000000000000000000000000000000000000000000000ff166101006effffffffffffffffffffffffffffff938416027fff000000000000000000000000000000ffffffffffffffffffffffffffffffff16177001000000000000000000000000000000009190921602179055565b6040805160a081018252606080825260006020830181905292820183905281018290526080810191909152612be385858585611f59565b9050806040015160ff168160200151018560010160076101000a81548166ffffffffffffff021916908366ffffffffffffff160217905550949350505050565b612c2b6143c0565b82517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632637a450826040518060a001604052808b63ffffffff168152602001612c7d8c6122f9565b81526020018a815260200189815260200160008960200151111515815250866040518463ffffffff1660e01b8152600401612cb9929190615205565b60806040518083038185885af1158015612cd7573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611d9a91906155f0565b6040805163ffffffff8616815266ffffffffffffff8516602082015260ff841691810191909152606081018290527fac3ae656fc8519b8303cdfef076feabd744d2095edbae20d58c938a105d9f0d1906080016111fe565b60006060600080612d658986612982565b915034826001600160801b03161115612daa576040517f2701dbb900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b34826001600160801b03161015612dc957506001600160801b03811634035b600189810180547fffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000811666ffffffffffffff9182168085018316919091179283905596508a81166701000000000000009092048116870390920190911610612e5d576040517f7a376e5300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612e678683613a5d565b9250600066ffffffffffffff851615612ecb578960020160008a66ffffffffffffff166001880366ffffffffffffff1681612ea457612ea461514a565b0666ffffffffffffff1666ffffffffffffff16815260200190815260200160002054612ece565b60005b90508084604051602001612ee392919061563a565b604051602081830303815290604052805190602001208a60020160008b88612f0b91906151bf565b66ffffffffffffff1666ffffffffffffff168152602001908152602001600020819055507fd73bff10645d27f6036f6a705dfca85bd9801a94175d09d4b5a4029acc4109a2888686604051612f6293929190615660565b60405180910390a15095509550955095915050565b600081612fd2576040516001600160a01b038516908490600081818185875af1925050503d8060008114612fc7576040519150601f19603f3d011682016040523d82523d6000602084013e612fcc565b606091505b50613027565b6040516001600160a01b038516906108fc9085906000818181858888f193505050503d8060008114613020576040519150601f19603f3d011682016040523d82523d6000602084013e613025565b606091505b505b50949350505050565b82516040805180820190915260608082526000602083015291906130b18460026001600861305f6020846150ff565b61306991906150ff565b61307391906150ff565b61307d91906150ff565b61308a9060ff861661568e565b613096600160106150ff565b6130a091906150ff565b6130aa91906150ff565b8290613c25565b506130c7816001600160801b0387166010613c9c565b506130d28183613d26565b5060005b8260ff168160ff1610156131b5576000878260ff16815181106130fb576130fb614c4c565b60200260200101519050613123816000015161ffff16600285613c9c9092919063ffffffff16565b506020810151613134908490613d8a565b50604081015161315190849067ffffffffffffffff166008613c9c565b5061317b60008260c001516001600160801b031611613171576000613174565b60015b8490613d26565b5061319a61318d826060015151613dab565b849061ffff166002613c9c565b5060608101516131ab908490613e43565b50506001016130d6565b505195945050505050565b63ffffffff8416600090815260066020908152604080832083805290915290208054606091906131ef90614bff565b80601f016020809104026020016040519081016040528092919081815260200182805461321b90614bff565b80156132685780601f1061323d57610100808354040283529160200191613268565b820191906000526020600020905b81548152906001019060200180831161324b57829003601f168201915b50508351939450505090151590506000613284602160036156a5565b613290602360036156a5565b61329d9060ff87166156c0565b6132a791906156a5565b61ffff169050816132b95760026132bc565b82515b6132c690826150ff565b90506132e5604051806040016040528060608152602001600081525090565b6132ef8183613c25565b508215613306576133008185613e43565b50613315565b6133138160036002613c9c565b505b86516000908190815b818160ff1610156134245760008b8260ff168151811061334057613340614c4c565b602002602001015190506133538d613e64565b61335d908561541f565b6060820151519094501561341157613376866001613d26565b5060a08101516001600160801b031615156133a681613396576013613399565b60235b889061ffff166002613c9c565b506133b2876003613d26565b506133cf866133c0816156de565b9750889061ffff166002613c9c565b5060808201516133eb9088906001600160801b03166010613c9c565b50801561340f5760a082015161340d9088906001600160801b03166010613c9c565b505b505b508061341c81615400565b91505061331e565b50613430846001613d26565b506001600160801b038916151561345c8161344c57601161344f565b60215b869061ffff166002613c9c565b50613468856001613d26565b5061347e856001600160801b0385166010613c9c565b50801561349c5761349a856001600160801b038c166010613c9c565b505b505091519998505050505050505050565b60008060008484828181106134c4576134c4614c4c565b919091013560f81c93506001915085905081856134e26007836150ff565b93506134f19284929190614eb2565b6134fa916156f5565b60c81c91509250925092565b600080845b80841080156135235750876040015160ff168260ff16105b156135e657600036600080600061353b8c8c8b613ebd565b94509450945094509450848d60000151888061355690615400565b995060ff168151811061356b5761356b614c4c565b602002602001018190525089848460405160200161358b9392919061573b565b604051602081830303815290604052805190602001209950818d6060018181516135b591906150ff565b90525060c085015160808e0180516135ce90839061541f565b6001600160801b0316905250975061350b9350505050565b80841461361f576040517f5b3f67cd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50929695505050505050565b8151349060005b818110156137c357600085828151811061364e5761364e614c4c565b60200260200101519050600061366782600001516141b9565b90508160200151156137355760408201515161368e816001600160801b0389166001612f77565b156136e857604080516001600160a01b03831681526001600160801b03891660208201819052909703967f2d0eb51492ddbee9e95192a44349b114ecfdaacebba5e8aa735b12f14ab1affa910160405180910390a1613733565b604080516001600160a01b03831681526001600160801b03891660208201527f4e2061832d78c1622b4b41b221d1791733ba77cd67e86bba10b3e61194d55eb2910160405180910390a15b505b60408083015190517f7e3e8a4c0000000000000000000000000000000000000000000000000000000081526001600160a01b03831691637e3e8a4c91613783918d918d918991600401615755565b600060405180830381600087803b15801561379d57600080fd5b505af11580156137b1573d6000803e3d6000fd5b50506001909401935061363292505050565b5081156137d6576137d63383600061420d565b505050505050565b6060826138215783838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610fa492505050565b6001600160a01b038216848460405160200161383f9392919061573b565b604051602081830303815290604052949350505050565b60408051600180825281830190925260609160009190816020015b6040805160e081018252600080825260208083018290529282018190526060808301526080820181905260a0820181905260c082015282526000199092019101816138715790505090506040518060e001604052808761ffff1681526020018681526020018567ffffffffffffffff16815260200184815260200160006001600160801b0316815260200160006001600160801b0316815260200160006001600160801b03168152508160008151811061392d5761392d614c4c565b6020026020010181905250610d2c8160008551613030565b6060600061395285613e64565b90506139618560008686611465565b9150815160001461399c5781600160116001846040516020016139889594939291906157d3565b6040516020818303038152906040526122f0565b6040517e0300000000000000000000000000000000000000000000000000000000000060208201527f0100000000000000000000000000000000000000000000000000000000000000602282018190527e11000000000000000000000000000000000000000000000000000000000000602383015260258201527fffffffffffffffffffffffffffffffff00000000000000000000000000000000608083901b16602682015260360160405160208183030381529060405295945050505050565b60606000613a6f846060015151613dab565b9050600061ffff821615613ae05761ffff8216613a8d6010806150ff565b60026010806008613a9f6020856150ff565b613aa991906150ff565b613ab391906150ff565b613abd91906150ff565b613ac791906150ff565b613ad191906150ff565b613adb91906150ff565b613b1a565b60026010806008613af26020856150ff565b613afc91906150ff565b613b0691906150ff565b613b1091906150ff565b613b1a91906150ff565b9050613b39604051806040016040528060608152602001600081525090565b613b438183613c25565b508551613b5790829061ffff166002613c9c565b506020860151613b68908290613d8a565b506040860151613b8590829067ffffffffffffffff166008613c9c565b50613b9b816001600160801b0387166010613c9c565b5060c0860151613bb79082906001600160801b03166010613c9c565b50613bc88161ffff85166002613c9c565b5061ffff831615613c1b576080860151613bee9082906001600160801b03166010613c9c565b5060a0860151613c0a9082906001600160801b03166010613c9c565b5060608601516131b5908290613e43565b5195945050505050565b604080518082019091526060815260006020820152613c45602083615884565b15613c6d57613c55602083615884565b613c60906020614bec565b613c6a90836150ff565b91505b602080840183905260405180855260008152908184010181811015613c9157600080fd5b604052509192915050565b6040805180820190915260608152600060208201528351516000613cc082856150ff565b90508560200151811115613ce257613ce286613cdd83600261568e565b614253565b60006001613cf28661010061597c565b613cfc9190614bec565b90508651828101878319825116178152508051831115613d1a578281525b50959695505050505050565b6040805180820190915260608152600060208201528251516000613d4b8260016150ff565b905084602001518210613d6757613d6785613cdd83600261568e565b8451602083820101858153508051821115613d80578181525b5093949350505050565b6040805180820190915260608152600060208201526129df83836020614270565b600061ffff821115613e3f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203160448201527f36206269747300000000000000000000000000000000000000000000000000006064820152608401610b77565b5090565b6040805180820190915260608152600060208201526129df838384516142ef565b63ffffffff81166000908152600760205260408120546001600160801b0316908190036124f1576040517fc960f36b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805160e0810182526000808252602082018190529181018290526060808201526080810182905260a0810182905260c0810191909152366000808060026010806008613f0c6020856150ff565b613f1691906150ff565b613f2091906150ff565b613f2a91906150ff565b613f3491906150ff565b613f3e90876150ff565b871015613f77576040517f08665d0f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5084878188613f876002836150ff565b9350613f969284929190614eb2565b613f9f91615356565b60f01c8552878188613fb26020836150ff565b9350613fc19284929190614eb2565b613fca9161539c565b6020860152878188613fdd6008836150ff565b9350613fec9284929190614eb2565b613ff5916153ba565b60c01c604086015287818861400b6010836150ff565b935061401a9284929190614eb2565b6140239161530e565b60801c91508781886140366010836150ff565b93506140459284929190614eb2565b61404e9161530e565b60801c60c086015260008882896140666002836150ff565b94506140759285929190614eb2565b61407e91615356565b60f01c9050801561419d5761ffff81166140996010806150ff565b6140a390846150ff565b6140ad91906150ff565b8810156140e6576040517f08665d0f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8882896140f46010836150ff565b94506141039285929190614eb2565b61410c9161530e565b608090811c908701528882896141236010836150ff565b94506141329285929190614eb2565b61413b9161530e565b60801c60a087015288828961415461ffff8516836150ff565b94506141639285929190614eb2565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050505060608701525b6141a982888a8c614eb2565b9450945050939792965093509350565b61ffff81166000908152600460205260409020546001600160a01b0316806124f1576040517f8b6fecb700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b614218838383612f77565b61424e576040517f7c75c3d200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b815161425f8383613c25565b5061426a8382613e43565b50505050565b604080518082019091526060815260006020820152835151600061429482856150ff565b905085602001518111156142b1576142b186613cdd83600261568e565b60006001856101000a0390508460200360080286901c95508651828101878319825116178152508051831115613d1a57919091525093949350505050565b604080518082019091526060815260006020820152825182111561431257600080fd5b835151600061432184836150ff565b9050856020015181111561433e5761433e86613cdd83600261568e565b855180518382016020019160009180851115614358578482525b505050602086015b6020861061439857805182526143776020836150ff565b91506143846020826150ff565b9050614391602087614bec565b9550614360565b51815160001960208890036101000a0190811690199190911617905250849150509392505050565b604051806060016040528060008019168152602001600067ffffffffffffffff168152602001614403604051806040016040528060008152602001600081525090565b905290565b803563ffffffff811681146124f157600080fd5b60008083601f84011261442e57600080fd5b50813567ffffffffffffffff81111561444657600080fd5b60208301915083602082850101111561445e57600080fd5b9250929050565b60008060006040848603121561447a57600080fd5b61448384614408565b9250602084013567ffffffffffffffff81111561449f57600080fd5b6144ab8682870161441c565b9497909650939450505050565b815181526020808301519082015260408101610e0a565b6000606082840312156144e157600080fd5b50919050565b80356001600160a01b03811681146124f157600080fd5b600080600080600080600060e0888a03121561451957600080fd5b61452389896144cf565b965060608801359550608088013567ffffffffffffffff8082111561454757600080fd5b6145538b838c0161441c565b909750955085915061456760a08b016144e7565b945060c08a013591508082111561457d57600080fd5b5061458a8a828b0161441c565b989b979a50959850939692959293505050565b803560ff811681146124f157600080fd5b600080604083850312156145c157600080fd5b6145ca83614408565b915061220f6020840161459d565b600060c082840312156144e157600080fd5b600080604083850312156145fd57600080fd5b823567ffffffffffffffff81111561461457600080fd5b614620858286016145d8565b9250506020830135801515811461463657600080fd5b809150509250929050565b6000806040838503121561465457600080fd5b61465d83614408565b946020939093013593505050565b803561ffff811681146124f157600080fd5b6000806040838503121561469057600080fd5b61469983614408565b915061220f6020840161466b565b60005b838110156146c25781810151838201526020016146aa565b50506000910152565b600081518084526146e38160208601602086016146a7565b601f01601f19169290920160200192915050565b6020815260006129df60208301846146cb565b60006020828403121561471c57600080fd5b6129df8261466b565b80356001600160801b03811681146124f157600080fd5b6000806040838503121561474f57600080fd5b61475883614408565b915061220f60208401614725565b60006020828403121561477857600080fd5b6129df826144e7565b60006020828403121561479357600080fd5b6129df82614408565b60008060008060a085870312156147b257600080fd5b6147bc86866144cf565b9350606085013567ffffffffffffffff8111156147d857600080fd5b6147e48782880161441c565b90945092506147f79050608086016144e7565b905092959194509250565b6000806040838503121561481557600080fd5b614699836144e7565b60008083601f84011261483057600080fd5b50813567ffffffffffffffff81111561484857600080fd5b6020830191508360208260051b850101111561445e57600080fd5b803566ffffffffffffff811681146124f157600080fd5b6000806000806060858703121561489057600080fd5b843567ffffffffffffffff8111156148a757600080fd5b6148b38782880161481e565b90955093506148c6905060208601614863565b91506147f760408601614863565b600080602083850312156148e757600080fd5b823567ffffffffffffffff8111156148fe57600080fd5b61490a8582860161481e565b90969095509350505050565b6000806000806060858703121561492c57600080fd5b61493585614408565b93506149436020860161466b565b9250604085013567ffffffffffffffff81111561495f57600080fd5b61496b8782880161441c565b95989497509550505050565b80356effffffffffffffffffffffffffffff811681146124f157600080fd5b6000806000606084860312156149ab57600080fd5b6149b484614408565b92506149c260208501614977565b91506149d060408501614977565b90509250925092565b600080600080606085870312156149ef57600080fd5b6149f885614408565b9350602085013567ffffffffffffffff811115614a1457600080fd5b614a208782880161441c565b90945092506147f79050604086016144e7565b8051825267ffffffffffffffff6020820151166020830152604081015161424e604084018280518252602090810151910152565b60808101610e0a8284614a33565b60008060408385031215614a8857600080fd5b614a9183614408565b915061220f60208401614863565b60008060e08385031215614ab257600080fd5b614abc84846145d8565b915061220f60c084016144e7565b614ad48184614a33565b60a0608082015266ffffffffffffff82511660a082015260006020830151604060c08401526122f060e08401826146cb565b600080600060608486031215614b1b57600080fd5b614b248461466b565b9250614b3260208501614408565b91506149d06040850161459d565b60008060008385036080811215614b5657600080fd5b843567ffffffffffffffff811115614b6d57600080fd5b614b79878288016145d8565b9450506040601f1982011215614b8e57600080fd5b506020840191506149d0606085016144e7565b600060608284031215614bb357600080fd5b6129df83836144cf565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b81810381811115610e0a57610e0a614bbd565b600181811c90821680614c1357607f821691505b6020821081036144e1577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b66ffffffffffffff828116828216039080821115614c9b57614c9b614bbd565b5092915050565b600066ffffffffffffff808316818103614cbe57614cbe614bbd565b6001019392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516060810167ffffffffffffffff81118282101715614d1a57614d1a614cc8565b60405290565b6040805190810167ffffffffffffffff81118282101715614d1a57614d1a614cc8565b604051601f8201601f1916810167ffffffffffffffff81118282101715614d6c57614d6c614cc8565b604052919050565b600067ffffffffffffffff821115614d8e57614d8e614cc8565b50601f01601f191660200190565b600067ffffffffffffffff80841115614db757614db7614cc8565b8360051b6020614dc8818301614d43565b868152918501918181019036841115614de057600080fd5b865b84811015614ea657803586811115614dfa5760008081fd5b88016060368290031215614e0e5760008081fd5b614e16614cf7565b614e1f82614408565b8152614e2c86830161466b565b8682015260408083013589811115614e445760008081fd5b929092019136601f840112614e595760008081fd5b8235614e6c614e6782614d74565b614d43565b8181523689838701011115614e815760008081fd5b818986018a830137600091810189019190915290820152845250918301918301614de2565b50979650505050505050565b60008085851115614ec257600080fd5b83861115614ecf57600080fd5b5050820193919092039150565b60008451614eee8184602089016146a7565b8201838582376000930192835250909392505050565b818352818160208501375060006020828401015260006020601f19601f840116840101905092915050565b602081526000610fa4602083018486614f04565b600082357ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec1833603018112614f7757600080fd5b9190910192915050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614fb657600080fd5b83018035915067ffffffffffffffff821115614fd157600080fd5b60200191503681900382131561445e57600080fd5b67ffffffffffffffff81168114611ecf57600080fd5b63ffffffff61500a82614408565b16825260208101356020830152604081013561502581614fe6565b67ffffffffffffffff81166040840152505050565b6150448189614ffc565b86606082015260e06080820152600061506160e083018789614f04565b6001600160a01b03861660a084015282810360c0840152615083818587614f04565b9a9950505050505050505050565b6000602082840312156150a357600080fd5b815167ffffffffffffffff8111156150ba57600080fd5b8201601f810184136150cb57600080fd5b80516150d9614e6782614d74565b8181528560208385010111156150ee57600080fd5b6122f08260208301602086016146a7565b80820180821115610e0a57610e0a614bbd565b60006020828403121561512457600080fd5b81356129df81614fe6565b60006020828403121561514157600080fd5b6129df82614725565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000826151885761518861514a565b500490565b60006040828403121561519f57600080fd5b6151a7614d20565b82358152602083013560208201528091505092915050565b600066ffffffffffffff808416806151d9576151d961514a565b92169190910692915050565b66ffffffffffffff818116838216019080821115614c9b57614c9b614bbd565b6040815263ffffffff8351166040820152602083015160608201526000604084015160a0608084015261523b60e08401826146cb565b905060608501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08483030160a085015261527682826146cb565b60809690960151151560c08501525050506001600160a01b039190911660209091015290565b6000604082840312156152ae57600080fd5b6152b6614d20565b9050815181526020820151602082015292915050565b6000604082840312156152de57600080fd5b6129df838361529c565b60006001600160801b03808416806153025761530261514a565b92169190910492915050565b7fffffffffffffffffffffffffffffffff00000000000000000000000000000000813581811691601085101561534e5780818660100360031b1b83161692505b505092915050565b7fffff000000000000000000000000000000000000000000000000000000000000813581811691600285101561534e5760029490940360031b84901b1690921692915050565b80356020831015610e0a57600019602084900360031b1b1692915050565b7fffffffffffffffff000000000000000000000000000000000000000000000000813581811691600885101561534e5760089490940360031b84901b1690921692915050565b600060ff821660ff810361541657615416614bbd565b60010192915050565b6001600160801b03818116838216019080821115614c9b57614c9b614bbd565b601f82111561424e576000816000526020600020601f850160051c810160208610156154685750805b601f850160051c820191505b818110156137d657828155600101615474565b815167ffffffffffffffff8111156154a1576154a1614cc8565b6154b5816154af8454614bff565b8461543f565b602080601f8311600181146154ea57600084156154d25750858301515b600019600386901b1c1916600185901b1785556137d6565b600085815260208120601f198616915b82811015615519578886015182559484019460019091019084016154fa565b50858210156155375787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b838110156155e2578883037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc00185528151805163ffffffff1684528781015161ffff168885015286015160608785018190526155ce818601836146cb565b968901969450505090860190600101615570565b509098975050505050505050565b60006080828403121561560257600080fd5b61560a614cf7565b82518152602083015161561c81614fe6565b602082015261562e846040850161529c565b60408201529392505050565b828152600082516156528160208501602087016146a7565b919091016020019392505050565b63ffffffff8416815266ffffffffffffff831660208201526060604082015260006122f060608301846146cb565b8082028115828204841417610e0a57610e0a614bbd565b61ffff818116838216019080821115614c9b57614c9b614bbd565b61ffff81811683821602808216919082811461534e5761534e614bbd565b600061ffff808316818103614cbe57614cbe614bbd565b7fffffffffffffff00000000000000000000000000000000000000000000000000813581811691600785101561534e5760079490940360031b84901b1690921692915050565b838152818360208301376000910160200190815292915050565b61575f8186614ffc565b83606082015260ff8316608082015260c060a08201526001600160a01b0382511660c082015267ffffffffffffffff60208301511660e08201526000604083015160806101008401526157b66101408401826146cb565b905060ff6060850151166101208401528091505095945050505050565b600086516157e5818460208b016146a7565b60f896871b7fff000000000000000000000000000000000000000000000000000000000000009081169390910192835260f09590951b7fffff000000000000000000000000000000000000000000000000000000000000166001830152509190931b909116600382015260809190911b7fffffffffffffffffffffffffffffffff00000000000000000000000000000000166004820152601401919050565b6000826158935761589361514a565b500690565b600181815b808511156158d35781600019048211156158b9576158b9614bbd565b808516156158c657918102915b93841c939080029061589d565b509250929050565b6000826158ea57506001610e0a565b816158f757506000610e0a565b816001811461590d576002811461591757615933565b6001915050610e0a565b60ff84111561592857615928614bbd565b50506001821b610e0a565b5060208310610133831016604e8410600b8410161715615956575081810a610e0a565b6159608383615898565b806000190482111561597457615974614bbd565b029392505050565b60006129df83836158db56fea2646970667358221220a8f396bec5dae5672cf1188ca6e2901dfa1049bff133c4630f6e3bf3f5c0bdcf64736f6c63430008160033";
|
|
20727
20711
|
var isSuperArgs16 = (xs) => xs.length > 1;
|
|
20728
20712
|
var TokenMessaging__factory = class extends ethers.ContractFactory {
|
|
20729
20713
|
constructor(...args) {
|
|
@@ -20820,16 +20804,10 @@ var _abi69 = [
|
|
|
20820
20804
|
name: "eid",
|
|
20821
20805
|
type: "uint32"
|
|
20822
20806
|
},
|
|
20823
|
-
{
|
|
20824
|
-
indexed: false,
|
|
20825
|
-
internalType: "uint16",
|
|
20826
|
-
name: "assetId",
|
|
20827
|
-
type: "uint16"
|
|
20828
|
-
},
|
|
20829
20807
|
{
|
|
20830
20808
|
indexed: false,
|
|
20831
20809
|
internalType: "uint128",
|
|
20832
|
-
name: "
|
|
20810
|
+
name: "gasLimit",
|
|
20833
20811
|
type: "uint128"
|
|
20834
20812
|
}
|
|
20835
20813
|
],
|
|
@@ -20914,18 +20892,13 @@ var _abi69 = [
|
|
|
20914
20892
|
internalType: "uint32",
|
|
20915
20893
|
name: "eid",
|
|
20916
20894
|
type: "uint32"
|
|
20917
|
-
},
|
|
20918
|
-
{
|
|
20919
|
-
internalType: "uint16",
|
|
20920
|
-
name: "assetId",
|
|
20921
|
-
type: "uint16"
|
|
20922
20895
|
}
|
|
20923
20896
|
],
|
|
20924
20897
|
name: "gasLimits",
|
|
20925
20898
|
outputs: [
|
|
20926
20899
|
{
|
|
20927
20900
|
internalType: "uint128",
|
|
20928
|
-
name: "
|
|
20901
|
+
name: "gasLimit",
|
|
20929
20902
|
type: "uint128"
|
|
20930
20903
|
}
|
|
20931
20904
|
],
|
|
@@ -20989,14 +20962,9 @@ var _abi69 = [
|
|
|
20989
20962
|
name: "_eid",
|
|
20990
20963
|
type: "uint32"
|
|
20991
20964
|
},
|
|
20992
|
-
{
|
|
20993
|
-
internalType: "uint16",
|
|
20994
|
-
name: "_assetId",
|
|
20995
|
-
type: "uint16"
|
|
20996
|
-
},
|
|
20997
20965
|
{
|
|
20998
20966
|
internalType: "uint128",
|
|
20999
|
-
name: "
|
|
20967
|
+
name: "_gasLimit",
|
|
21000
20968
|
type: "uint128"
|
|
21001
20969
|
}
|
|
21002
20970
|
],
|
|
@@ -21019,7 +20987,7 @@ var _abi69 = [
|
|
|
21019
20987
|
type: "function"
|
|
21020
20988
|
}
|
|
21021
20989
|
];
|
|
21022
|
-
var _bytecode17 = "
|
|
20990
|
+
var _bytecode17 = "0x608060405234801561001057600080fd5b5061001a3361001f565b61006f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610f108061007e6000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c8063b98bd0701161005b578063b98bd070146100fb578063bc70b3541461010e578063f2fde38b14610121578063f8d50da61461013457600080fd5b80635535d4611461008d57806365b9bacb146100b6578063715018a6146100cb5780638da5cb5b146100d3575b600080fd5b6100a061009b3660046107f5565b610187565b6040516100ad9190610878565b60405180910390f35b6100c96100c4366004610892565b61022c565b005b6100c96102c2565b60005460405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100ad565b6100c96101093660046108de565b6102d6565b6100a061011c366004610953565b6102f4565b6100c961012f3660046109e1565b6104c6565b610166610142366004610a17565b6002602052600090815260409020546fffffffffffffffffffffffffffffffff1681565b6040516fffffffffffffffffffffffffffffffff90911681526020016100ad565b6001602090815260009283526040808420909152908252902080546101ab90610a32565b80601f01602080910402602001604051908101604052809291908181526020018280546101d790610a32565b80156102245780601f106101f957610100808354040283529160200191610224565b820191906000526020600020905b81548152906001019060200180831161020757829003601f168201915b505050505081565b61023461057d565b63ffffffff821660008181526002602090815260409182902080547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff86169081179091558251938452908301527f2de2cdf6b9f29bfb9afedda6cf015c5fcb9832c9c0c3dcc06d501d964cf56537910160405180910390a15050565b6102ca61057d565b6102d460006105fe565b565b6102de61057d565b6102f06102eb8284610b0e565b610673565b5050565b63ffffffff8416600090815260016020908152604080832061ffff8716845290915281208054606092919061032890610a32565b80601f016020809104026020016040519081016040528092919081815260200182805461035490610a32565b80156103a15780601f10610376576101008083540402835291602001916103a1565b820191906000526020600020905b81548152906001019060200180831161038457829003601f168201915b5050505050905080516000036103f15783838080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509294506104be9350505050565b60008390036104015790506104be565b6002831061047f5761044884848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061078592505050565b806104568460028188610c34565b60405160200161046893929190610c5e565b6040516020818303038152906040529150506104be565b83836040517f9a6d49cd0000000000000000000000000000000000000000000000000000000081526004016104b5929190610c86565b60405180910390fd5b949350505050565b6104ce61057d565b73ffffffffffffffffffffffffffffffffffffffff8116610571576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016104b5565b61057a816105fe565b50565b60005473ffffffffffffffffffffffffffffffffffffffff1633146102d4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104b5565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60005b815181101561074a576106a582828151811061069457610694610cb5565b602002602001015160400151610785565b8181815181106106b7576106b7610cb5565b602002602001015160400151600160008484815181106106d9576106d9610cb5565b60200260200101516000015163ffffffff1663ffffffff168152602001908152602001600020600084848151811061071357610713610cb5565b60200260200101516020015161ffff1661ffff16815260200190815260200160002090816107419190610d35565b50600101610676565b507fbe4864a8e820971c0247f5992e2da559595f7bf076a21cb5928d443d2a13b6748160405161077a9190610e31565b60405180910390a150565b600281015161ffff81166003146102f057816040517f9a6d49cd0000000000000000000000000000000000000000000000000000000081526004016104b59190610878565b803563ffffffff811681146107de57600080fd5b919050565b803561ffff811681146107de57600080fd5b6000806040838503121561080857600080fd5b610811836107ca565b915061081f602084016107e3565b90509250929050565b60005b8381101561084357818101518382015260200161082b565b50506000910152565b60008151808452610864816020860160208601610828565b601f01601f19169290920160200192915050565b60208152600061088b602083018461084c565b9392505050565b600080604083850312156108a557600080fd5b6108ae836107ca565b915060208301356fffffffffffffffffffffffffffffffff811681146108d357600080fd5b809150509250929050565b600080602083850312156108f157600080fd5b823567ffffffffffffffff8082111561090957600080fd5b818501915085601f83011261091d57600080fd5b81358181111561092c57600080fd5b8660208260051b850101111561094157600080fd5b60209290920196919550909350505050565b6000806000806060858703121561096957600080fd5b610972856107ca565b9350610980602086016107e3565b9250604085013567ffffffffffffffff8082111561099d57600080fd5b818701915087601f8301126109b157600080fd5b8135818111156109c057600080fd5b8860208285010111156109d257600080fd5b95989497505060200194505050565b6000602082840312156109f357600080fd5b813573ffffffffffffffffffffffffffffffffffffffff8116811461088b57600080fd5b600060208284031215610a2957600080fd5b61088b826107ca565b600181811c90821680610a4657607f821691505b602082108103610a7f577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040516060810167ffffffffffffffff81118282101715610ad757610ad7610a85565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715610b0657610b06610a85565b604052919050565b600067ffffffffffffffff80841115610b2957610b29610a85565b8360051b6020610b3a818301610add565b868152918501918181019036841115610b5257600080fd5b865b84811015610c2857803586811115610b6c5760008081fd5b88016060368290031215610b805760008081fd5b610b88610ab4565b610b91826107ca565b8152610b9e8683016107e3565b8682015260408083013589811115610bb65760008081fd5b9290920191601f3681850112610bcc5760008081fd5b83358a811115610bde57610bde610a85565b610bef89601f198484011601610add565b91508082523689828701011115610c065760008081fd5b808986018a840137600090820189015290820152845250918301918301610b54565b50979650505050505050565b60008085851115610c4457600080fd5b83861115610c5157600080fd5b5050820193919092039150565b60008451610c70818460208901610828565b8201838582376000930192835250909392505050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b601f821115610d30576000816000526020600020601f850160051c81016020861015610d0d5750805b601f850160051c820191505b81811015610d2c57828155600101610d19565b5050505b505050565b815167ffffffffffffffff811115610d4f57610d4f610a85565b610d6381610d5d8454610a32565b84610ce4565b602080601f831160018114610db65760008415610d805750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555610d2c565b600085815260208120601f198616915b82811015610de557888601518255948401946001909101908401610dc6565b5085821015610e2157878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b83811015610ecc578883037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc00185528151805163ffffffff1684528781015161ffff16888501528601516060878501819052610eb88186018361084c565b968901969450505090860190600101610e5a565b50909897505050505050505056fea26469706673582212205488940b3837406720bbb409acf98c4ff8d82e8ae2146ed485c32fd6f8c92e8f64736f6c63430008160033";
|
|
21023
20991
|
var isSuperArgs17 = (xs) => xs.length > 1;
|
|
21024
20992
|
var TokenMessagingOptions__factory = class extends ethers.ContractFactory {
|
|
21025
20993
|
constructor(...args) {
|