@towns-protocol/generated 0.0.430 → 0.0.432

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/README.md CHANGED
@@ -18,18 +18,18 @@ This package contains:
18
18
 
19
19
  ```bash
20
20
  # After fresh clone
21
- yarn install && yarn build
21
+ bun install && bun run build
22
22
 
23
23
  # Get artifacts (auto-downloads or generates as needed)
24
- yarn build
24
+ bun run build
25
25
  ```
26
26
 
27
27
  ## Troubleshooting
28
28
 
29
29
  ```bash
30
30
  # Missing artifacts error
31
- yarn build
31
+ bun run build
32
32
 
33
33
  # Clean slate regeneration
34
- rm -rf dev/ && yarn build
34
+ rm -rf dev/ && bun run build
35
35
  ```
@@ -1 +1 @@
1
- 7abed0b718514c0305d0bace7704addd1ca234f9:006771918164ca029e2c73521c0bf67308a0f2d6
1
+ f3263c2230f037eb0ae24d8e8f50348a6af83fa8:86229ec54a3ba81f5ea001f1374eed7d2daef0ea
@@ -2376,7 +2376,7 @@ const _abi = [
2376
2376
  ] as const;
2377
2377
 
2378
2378
  const _bytecode =
2379
- "0x6080604052348015600e575f5ffd5b5060156019565b60bd565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef520008054640100000000900460ff16156064576040516366008a2d60e01b815260040160405180910390fd5b805463ffffffff908116101560ba57805463ffffffff191663ffffffff90811782556040519081527fe9c9b456cb2994b80aeef036cf59d26e9617df80f816a6ee5a5b4166e07e2f5c9060200160405180910390a15b50565b615175806100ca5f395ff3fe60806040526004361061016d575f3560e01c806379dda585116100c657806393b13cb71161007c578063a5a4103111610057578063a5a41031146103c9578063df9a9fe6146103dd578063e847abdd146103fc575f5ffd5b806393b13cb71461037557806395d600c81461039657806397fb7c1e146103aa575f5ffd5b80638120f0ba116100ac5780638120f0ba1461031657806383f3f0dc146103435780638c625b0614610362575f5ffd5b806379dda585146102ef5780637c9669ac14610303575f5ffd5b80635803909f11610126578063686f768411610101578063686f7684146102a957806369d5f38a146102bc578063706b8e09146102db575f5ffd5b80635803909f146102325780635becd24a14610251578063657e45e814610270575f5ffd5b806317c957091161015657806317c95709146101b9578063280a47c71461020d5780633e9491a214610220575f5ffd5b80630ef1be5f146101715780631278076a14610192575b5f5ffd5b34801561017c575f5ffd5b5061019061018b366004614543565b610410565b005b34801561019d575f5ffd5b506101a66104c5565b6040519081526020015b60405180910390f35b3480156101c4575f5ffd5b506101a66101d3366004614582565b5f9081527f4775a23600034fdd9f073b224f794d51a58b35ba663a9602623ba7a5c09cce00602052604090205467ffffffffffffffff1690565b61019061021b366004614599565b610527565b34801561022b575f5ffd5b50476101a6565b34801561023d575f5ffd5b506101a661024c366004614582565b6105fd565b34801561025c575f5ffd5b5061019061026b366004614582565b61065c565b34801561027b575f5ffd5b50610284610743565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101b0565b6101906102b73660046147a3565b610787565b3480156102c7575f5ffd5b506101906102d6366004614582565b6107cb565b3480156102e6575f5ffd5b506101a66108da565b3480156102fa575f5ffd5b506102846108e3565b610190610311366004614582565b610922565b348015610321575f5ffd5b5061032a610965565b60405167ffffffffffffffff90911681526020016101b0565b34801561034e575f5ffd5b5061019061035d366004614805565b61096e565b610190610370366004614820565b6109e8565b348015610380575f5ffd5b50610389610a1b565b6040516101b09190614887565b3480156103a1575f5ffd5b506101a6610a25565b3480156103b5575f5ffd5b506101906103c4366004614582565b610a4e565b3480156103d4575f5ffd5b506101a6610b38565b3480156103e8575f5ffd5b506101906103f7366004614820565b610b90565b348015610407575f5ffd5b50610284610c69565b610418610ca8565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610483576040517f65f490650000000000000000000000000000000000000000000000000000000081523360048201526024015b60405180910390fd5b6104c182828080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250610d6892505050565b5050565b5f61052161051c6105177f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b610d93565b610ea1565b50919050565b3068929eee149b4bd2126854036105455763ab143c065f526004601cfd5b3068929eee149b4bd21268555f83600181111561056457610564614899565b03610587575f61057682840184614820565b905061058181610ece565b506105ec565b600183600181111561059b5761059b614899565b036105c3575f806105ae838501856147a3565b915091506105bc8282610fd5565b50506105ec565b6105ec7f3be0196900000000000000000000000000000000000000000000000000000000611120565b3868929eee149b4bd2126855505050565b5f61065561051c836106507f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b611128565b5092915050565b610664610ca8565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146106ca576040517f65f4906500000000000000000000000000000000000000000000000000000000815233600482015260240161047a565b5f6106f37fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6035490565b9050801580159061070357508082115b15610731576107317fc3983b9100000000000000000000000000000000000000000000000000000000611120565b61073a826111a4565b6104c182611248565b5f6107827fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6045473ffffffffffffffffffffffffffffffffffffffff1690565b905090565b3068929eee149b4bd2126854036107a55763ab143c065f526004601cfd5b3068929eee149b4bd21268556107bb8282610fd5565b3868929eee149b4bd21268555050565b6107d3610ca8565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610839576040517f65f4906500000000000000000000000000000000000000000000000000000000815233600482015260240161047a565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb608546040517f91b7f5ed0000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff909116906391b7f5ed906024015f604051808303815f87803b1580156108c1575f5ffd5b505af11580156108d3573d5f5f3e3d5ffd5b5050505050565b5f610782611306565b5f6107827fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6065473ffffffffffffffffffffffffffffffffffffffff1690565b3068929eee149b4bd2126854036109405763ab143c065f526004601cfd5b3068929eee149b4bd212685561095633826113d1565b3868929eee149b4bd212685550565b5f61078261156d565b610976610ca8565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146109dc576040517f65f4906500000000000000000000000000000000000000000000000000000000815233600482015260240161047a565b6109e581611630565b50565b3068929eee149b4bd212685403610a065763ab143c065f526004601cfd5b3068929eee149b4bd212685561095681610ece565b60606107826116ab565b5f6107827fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6035490565b610a56610ca8565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610abc576040517f65f4906500000000000000000000000000000000000000000000000000000000815233600482015260240161047a565b610b1081610b0b7f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b61175d565b6109e5817fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60355565b5f610b8a61051c6105177f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b92915050565b610b98610ca8565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610bfe576040517f65f4906500000000000000000000000000000000000000000000000000000000815233600482015260240161047a565b610c078161178e565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60880547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff831617905550565b5f6107827fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6085473ffffffffffffffffffffffffffffffffffffffff1690565b5f807fd2f24d4f172e4e84e48e7c4125b6e904c29e5eba33ad4938fee51dd5dbd4b600805460018201546040517f6352211e000000000000000000000000000000000000000000000000000000008152600481019190915291925073ffffffffffffffffffffffffffffffffffffffff1690636352211e90602401602060405180830381865afa158015610d3e573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d6291906148c6565b91505090565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60c6104c18282614970565b5f5f610dd37fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6085473ffffffffffffffffffffffffffffffffffffffff1690565b905073ffffffffffffffffffffffffffffffffffffffff8116610df857505f92915050565b5f610e01611306565b6040517f5cf4ee91000000000000000000000000000000000000000000000000000000008152600481018290526024810186905290915073ffffffffffffffffffffffffffffffffffffffff831690635cf4ee91906044015b602060405180830381865afa158015610e75573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e999190614a87565b949350505050565b5f5f610eac836118c7565b9050825f03610ebd57809150915091565b610ec78184614acb565b9150915091565b610ed7816119e0565b5f610ee0611ad6565b905080604001518015610ef65750806020015134105b15610f2457610f247fb1296a8a00000000000000000000000000000000000000000000000000000000611120565b806060015115610f3857610f386001611bbd565b5f610f7c83610f777f8c625b06d047a4c1ca46cdab06b7e14ce79b486f06c67a1b220fa942669ca49b338760405180602001604052805f815250611bfa565b611c2c565b90505f5f610f908533858760200151611dc1565b91509150806108d3578115610fcb57836040015115610fb357610fb38385611e3c565b610fbd8386611f99565b610fc685612024565b6108d3565b6108d38386612113565b610fde826119e0565b5f610fe7611ad6565b905080604001518015610ffd5750806020015134105b1561102b5761102b7fb1296a8a00000000000000000000000000000000000000000000000000000000611120565b80606001511561103f5761103f6001611bbd565b611049838361216a565b5f8260405160200161105b9190614ade565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291905290507f686f7684000000000000000000000000000000000000000000000000000000005f6110bd86610f7784338388611bfa565b90505f5f6110d18833858960200151611dc1565b915091508061111657811561110c578560400151156110f4576110f483876121ef565b6110fe8389611f99565b61110788612024565b611116565b6111168389612113565b5050505050505050565b805f5260045ffd5b5f8281527fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60960205260408120547fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb600908261118185610d93565b9050815f03611194579250610b8a915050565b8181189082110218949350505050565b6111ac6108e3565b73ffffffffffffffffffffffffffffffffffffffff16632cbb9d136040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111f4573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112189190614a87565b8111156109e5576109e57fc3983b9100000000000000000000000000000000000000000000000000000000611120565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60d80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790557fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6078190556040517fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6009082907fab14a23e88fb272313490d4f20d63098e64fd38304c0e07a377db98c2b39b92f905f90a25050565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60d545f907fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6009060ff161561135d5760070154919050565b6113656108e3565b73ffffffffffffffffffffffffffffffffffffffff16632cbb9d136040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113ad573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d629190614a87565b5f6113db826123a4565b905073ffffffffffffffffffffffffffffffffffffffff8116611421576114217f5fbd571700000000000000000000000000000000000000000000000000000000611120565b5f61142a61156d565b67ffffffffffffffff1690505f611486846106507f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b90505f61149282610ea1565b509050348111156114c6576114c67f34a7a93d00000000000000000000000000000000000000000000000000000000611120565b5f6114d187846123af565b90505f6114de8284614b38565b905080156114f2576114f08882612477565b505b5f6114fd8434614b38565b9050801561154e5761154e6115467fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6045473ffffffffffffffffffffffffffffffffffffffff1690565b308b846125ed565b6115588785612645565b611562888761269c565b505050505050505050565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6065474010000000000000000000000000000000000000000900467ffffffffffffffff165f81900361162d576115c16108e3565b73ffffffffffffffffffffffffffffffffffffffff16638120f0ba6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611609573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107829190614b4b565b90565b611639816127ca565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb606805467ffffffffffffffff90921674010000000000000000000000000000000000000000027fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff909216919091179055565b60607fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb600600c0180546116dc906148e1565b80601f0160208091040260200160405190810160405280929190818152602001828054611708906148e1565b80156117535780601f1061172a57610100808354040283529160200191611753565b820191905f5260205f20905b81548152906001019060200180831161173657829003601f168201915b5050505050905090565b808210156104c1576104c17fccc9aa2e00000000000000000000000000000000000000000000000000000000611120565b73ffffffffffffffffffffffffffffffffffffffff81166117d2576117d27f0e88bf4b00000000000000000000000000000000000000000000000000000000611120565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6065473ffffffffffffffffffffffffffffffffffffffff166040517f8df80bd600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301529190911690638df80bd690602401602060405180830381865afa158015611876573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061189a9190614b7a565b6109e5576109e57f0e88bf4b00000000000000000000000000000000000000000000000000000000611120565b5f5f6118d16108e3565b90505f8173ffffffffffffffffffffffffffffffffffffffff16630eac306d6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561191d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119419190614a87565b9050835f03611951579392505050565b5f6119cc858473ffffffffffffffffffffffffffffffffffffffff16639f6542aa6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561199f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119c39190614b93565b61ffff166128c0565b905081811082821802811895945050505050565b73ffffffffffffffffffffffffffffffffffffffff8116611a2457611a247f5fbd571700000000000000000000000000000000000000000000000000000000611120565b5f611a4d7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6035490565b90508015801590611aa8575080611aa57f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b10155b156104c1576104c17f7efcdb4900000000000000000000000000000000000000000000000000000000611120565b604080516080810182525f808252602082018190529181018290526060810182905290611b447f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b90505f611b5082610d93565b90505f611b5b611306565b9050815f03611b6a5750505090565b81845282811115611b7b5750505090565b5f611b84612913565b90508015611b9c575050600160608401525090919050565b5f611ba684610ea1565b506001604088015260208701525093949350505050565b7f097b4f25b64e012d0cf55f67e9b34fe5d57f15b11b95baa4ddd136b424967c008054829082905f90611bf1908490614b38565b90915550505050565b606084848484604051602001611c139493929190614bb4565b6040516020818303038152906040529050949350505050565b6040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606084901b1660208201524360348201525f908190605401604051602081830303815290604052805190602001209050611d0b81611cdf8387611c928661293c565b6040805160208082019590955273ffffffffffffffffffffffffffffffffffffffff9390931683820152606080840192909252805180840390920182526080909201909152805191012090565b604080516020808201949094528082019290925280518083038201815260609092019052805191012090565b5f8181527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e026020526040812080549294507f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e00929091908290611d6c906148e1565b90501115611d9d57611d9d7ff82e65c300000000000000000000000000000000000000000000000000000000611120565b80611da88682614970565b503415611db857611db884612982565b50505092915050565b5f5f5f611e026040518060400160405280600981526020017f4a6f696e537061636500000000000000000000000000000000000000000000008152506129e0565b9050611e0e8188612b78565b15611e205760015f9250925050611e33565b611e2d8188888888612d93565b92509250505b94509492505050565b5f5f5f611e4885612f20565b8054611e53906148e1565b80601f0160208091040260200160405190810160405280929190818152602001828054611e7f906148e1565b8015611eca5780601f10611ea157610100808354040283529160200191611eca565b820191905f5260205f20905b815481529060010190602001808311611ead57829003601f168201915b5050505050806020019051810190611ee29190614c95565b50919450925090507fffffffff0000000000000000000000000000000000000000000000000000000083167f8c625b060000000000000000000000000000000000000000000000000000000014611f5c57611f5c7fda6153bd00000000000000000000000000000000000000000000000000000000611120565b5f611f6a83865f01516123af565b90505f818660200151611f7d9190614b38565b9050611f90878585896020015185612f73565b50505050505050565b5f8281527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e016020526040902054801561201f57611fd68382612fa2565b61201f6120177fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6045473ffffffffffffffffffffffffffffffffffffffff1690565b3084846125ed565b505050565b5f61202d61300a565b90506120b1816120816105177f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b5f9182527fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb609602052604090912055565b6120bc826001613031565b6120cd816120c861156d565b61269c565b604051819073ffffffffffffffffffffffffffffffffffffffff8416907f2f40b0474996b72a4251e00fb9170cdd960deea1dc749772cbbab61395b9b576905f90a35050565b61211c8261304a565b6121268282611f99565b60405173ffffffffffffffffffffffffffffffffffffffff8216907f86fd446d5c04e892d58b448a924dcd9c3ece3a5e0d2960b8c35cd475a5595a1f905f90a25050565b8173ffffffffffffffffffffffffffffffffffffffff16816020015173ffffffffffffffffffffffffffffffffffffffff1614806121c15750602081015173ffffffffffffffffffffffffffffffffffffffff1633145b156104c1576104c17f5fbd571700000000000000000000000000000000000000000000000000000000611120565b5f5f5f5f6121fc86612f20565b8054612207906148e1565b80601f0160208091040260200160405190810160405280929190818152602001828054612233906148e1565b801561227e5780601f106122555761010080835404028352916020019161227e565b820191905f5260205f20905b81548152906001019060200180831161226157829003601f168201915b50505050508060200190518101906122969190614c95565b929650909450925090507fffffffff0000000000000000000000000000000000000000000000000000000084167f686f76840000000000000000000000000000000000000000000000000000000014612312576123127fda6153bd00000000000000000000000000000000000000000000000000000000611120565b5f818060200190518101906123279190614d19565b90505f5f61233886895f01516123af565b90505f61234c87855f01518b5f01516130a2565b90505f61236688866020015187604001518d5f015161320f565b90508082848c6020015161237a9190614b38565b6123849190614b38565b61238e9190614b38565b93505050506111168886868a6020015185612f73565b5f610b8a8183613391565b5f6123b9826118c7565b9050610b8a6123fc7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6045473ffffffffffffffffffffffffffffffffffffffff1690565b846124056108e3565b73ffffffffffffffffffffffffffffffffffffffff16634ccb20c06040518163ffffffff1660e01b8152600401602060405180830381865afa15801561244d573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061247191906148c6565b846125ed565b5f7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb600816124d87fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6045473ffffffffffffffffffffffffffffffffffffffff1690565b90507fffffffffffffffffffffffff111111111111111111111111111111111111111273ffffffffffffffffffffffffffffffffffffffff82160161253a578382600a015f82825461252a9190614acb565b90915550849350610b8a92505050565b5f61255b73ffffffffffffffffffffffffffffffffffffffff83163061339c565b9050612569828730886133cf565b5f61258a73ffffffffffffffffffffffffffffffffffffffff84163061339c565b90505f6125978383614b38565b90508681146125c9576125c97fb1296a8a00000000000000000000000000000000000000000000000000000000611120565b8085600a015f8282546125dc9190614acb565b909155509098975050505050505050565b801561263f5773ffffffffffffffffffffffffffffffffffffffff841673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1461263557612630848484846133cf565b61263f565b61263f8282613463565b50505050565b5f61264e613483565b90505f61267d825f8560405160200161266991815260200190565b604051602081830303815290604052613556565b905061268a8285836135ac565b61263f82612696610ca8565b836135ac565b5f8281527f4775a23600034fdd9f073b224f794d51a58b35ba663a9602623ba7a5c09cce00602081905260409091205467ffffffffffffffff1680158015906126e257505f5b1561271c576040517ff7d2131a0000000000000000000000000000000000000000000000000000000081526004810185905260240161047a565b5f428267ffffffffffffffff161115612740576127398483614dc1565b905061274d565b61274a8442614dc1565b90505b5f858152602084815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff8516908117909155915191825286917f2ec2be2c4b90c2cf13ecb6751a24daed6bb741ae5ed3f7371aabf9402f6d62e8910160405180910390a25050505050565b5f6127d36108e3565b73ffffffffffffffffffffffffffffffffffffffff16638120f0ba6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561281b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061283f9190614b4b565b67ffffffffffffffff1690508167ffffffffffffffff165f03612885576128857f82323d2e00000000000000000000000000000000000000000000000000000000611120565b808267ffffffffffffffff1611156104c1576104c17f82323d2e00000000000000000000000000000000000000000000000000000000611120565b5f6127108211156128f5576128f57f197f1962000000000000000000000000000000000000000000000000000000008361362b565b6127106129028385614de1565b61290c9190614df8565b9392505050565b5f7f097b4f25b64e012d0cf55f67e9b34fe5d57f15b11b95baa4ddd136b424967c005b54919050565b5f8181527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e006020819052604082208054908361297783614e30565b909155509392505050565b5f8181527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e016020526040812080547f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e0092349291611bf1908490614acb565b60605f6129eb613637565b80519091505f8167ffffffffffffffff811115612a0a57612a0a61460e565b604051908082528060200260200182016040528015612a6d57816020015b612a5a6040518060a001604052805f8152602001606081526020015f1515815260200160608152602001606081525090565b815260200190600190039081612a285790505b50855160208701209091505f90815b84811015612b6c575f5f5f5f612aaa8a8681518110612a9d57612a9d614e67565b6020026020010151613662565b93509350935093505f5b8251811015612b5c5786838281518110612ad057612ad0614e67565b60200260200101518051906020012003612b54576040518060a001604052808c8881518110612b0157612b01614e67565b60200260200101518152602001868152602001851515815260200184815260200183815250898981518110612b3857612b38614e67565b602002602001018190525087612b4d90614e30565b9750612b5c565b600101612ab4565b5050505050806001019050612a7c565b50508152949350505050565b5f5f612b838361374e565b90505f5b8451811015612d8957848181518110612ba257612ba2614e67565b602002602001015160400151612d81575f5b858281518110612bc657612bc6614e67565b60200260200101516080015151811015612d7f575f868381518110612bed57612bed614e67565b6020026020010151608001518281518110612c0a57612c0a614e67565b602002602001015190508073ffffffffffffffffffffffffffffffffffffffff16632e1b61e46040518163ffffffff1660e01b8152600401602060405180830381865afa158015612c5d573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612c819190614b7a565b158015612d6457508073ffffffffffffffffffffffffffffffffffffffff16630cf0b5335f5f1b866040518060400160405280600981526020017f4a6f696e53706163650000000000000000000000000000000000000000000000815250604051602001612cef9190614e94565b604051602081830303815290604052612d0790614eaa565b6040518463ffffffff1660e01b8152600401612d2593929190614eec565b602060405180830381865afa158015612d40573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612d649190614b7a565b15612d76576001945050505050610b8a565b50600101612bb4565b505b600101612b87565b505f949350505050565b5f8080805b8851811015612f1157888181518110612db357612db3614e67565b602002602001015160400151612f09575f5b898281518110612dd757612dd7614e67565b60200260200101516080015151811015612f07575f8a8381518110612dfe57612dfe614e67565b6020026020010151608001518281518110612e1b57612e1b614e67565b602002602001015190508073ffffffffffffffffffffffffffffffffffffffff16632e1b61e46040518163ffffffff1660e01b8152600401602060405180830381865afa158015612e6e573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612e929190614b7a565b15612efe5783612ecf57612ec68a8a8a848f8881518110612eb557612eb5614e67565b60200260200101515f01518c6139c2565b60019350612ef9565b612ef98a8a8a848f8881518110612ee857612ee8614e67565b60200260200101515f01515f6139c2565b600194505b50600101612dc5565b505b600101612d98565b505f9250509550959350505050565b5f8181527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e02602052604081207f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e009061290c565b8015612f8557612f838482612477565b505b612f8f8583612fa2565b612f988561304a565b6108d38383612645565b5f8281527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e016020526040812080547f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e0092849291613000908490614b38565b9091555050505050565b5f7f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00612936565b6104c1828260405180602001604052805f815250613ab2565b5f8181527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e02602052604090207f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e00906104c1905f6144b4565b5f73ffffffffffffffffffffffffffffffffffffffff83166130c557505f61290c565b5f6131047fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6065473ffffffffffffffffffffffffffffffffffffffff1690565b6040517f5cb4f54800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff86811660048301529190911690635cb4f54890602401608060405180830381865afa158015613170573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906131949190614f57565b905080604001515f036131aa575f91505061290c565b6131b88382604001516128c0565b91506132076131fb7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6045473ffffffffffffffffffffffffffffffffffffffff1690565b868360200151856125ed565b509392505050565b5f82515f146132bf575f61322284613b7a565b604081015190915073ffffffffffffffffffffffffffffffffffffffff16158061324e57506020810151155b1561325c575f915050610e99565b61326a8382602001516128c0565b91506132b96132ad7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6045473ffffffffffffffffffffffffffffffffffffffff1690565b878360400151856125ed565b50610e99565b73ffffffffffffffffffffffffffffffffffffffff841615610e99578473ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361331557505f610e99565b613346826133417faca21cc4d2a125f3e0ae03aa135d42b2b9177631aca87599d42a68b47e9008015490565b6128c0565b9050610e996133897fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6045473ffffffffffffffffffffffffffffffffffffffff1690565b8686846125ed565b5f61290c8383613c22565b5f816014526f70a082310000000000000000000000005f5260208060246010865afa601f3d111660205102905092915050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16031561263f5773ffffffffffffffffffffffffffffffffffffffff831630146134425761263073ffffffffffffffffffffffffffffffffffffffff8516848484613d5d565b61263f73ffffffffffffffffffffffffffffffffffffffff85168383613dbf565b6104c173ffffffffffffffffffffffffffffffffffffffff831682613e12565b5f7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb600600601546040517f44ab66800000000000000000000000000000000000000000000000000000000081527f526976657241697264726f700000000000000000000000000000000000000000600482015273ffffffffffffffffffffffffffffffffffffffff909116906344ab668090602401602060405180830381865afa158015613532573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061078291906148c6565b6040517fdc69fdde0000000000000000000000000000000000000000000000000000000081525f9073ffffffffffffffffffffffffffffffffffffffff85169063dc69fdde90610e5a9086908690600401614fd1565b6040517f40c10f1900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8381166004830152602482018390528416906340c10f19906044015f604051808303815f87803b158015613619575f5ffd5b505af1158015611f90573d5f5f3e3d5ffd5b815f528060045260245ffd5b60606107827f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd01613e2b565b5f8181527f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd0360205260408120805460609291839182919081906136a4906148e1565b80601f01602080910402602001604051908101604052809291908181526020018280546136d0906148e1565b801561371b5780601f106136f25761010080835404028352916020019161371b565b820191905f5260205f20905b8154815290600101906020018083116136fe57829003601f168201915b5050505060018301549196505060ff16935061373960028201613e37565b925061374481613f0e565b9150509193509193565b60605f7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb600600601546040517f02345b9800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff858116600483015290911691505f9082906302345b98906024015f60405180830381865afa1580156137e5573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261382a919081019061501e565b905080515f0361399b576040517ff821039800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85811660048301525f919084169063f821039890602401602060405180830381865afa1580156138a1573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906138c591906148c6565b905073ffffffffffffffffffffffffffffffffffffffff811615613999576040517f02345b9800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff808316600483015291955085918416906302345b98906024015f60405180830381865afa158015613951573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052613996919081019061501e565b91505b505b6139a481613f1d565b92506001835101835283604051526020604051016040525050919050565b6139cd868483613f2b565b5f7f9075c515a635ba70c9696f31149324218d75cf00afe836c482e6473f38b19e005f8681526001828101602052604090912080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016909117815560030180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8716179055905080546040805173ffffffffffffffffffffffffffffffffffffffff8981166020830152611f909316918a9189918891889101604051602081830303815290604052613fe4565b613abc8383614105565b73ffffffffffffffffffffffffffffffffffffffff83163b1561201f577f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00548281035b613b115f8683806001019450866142ba565b613b47576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b818110613aff57817f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df0054146108d3575f5ffd5b613bb26040518060600160405280606081526020015f81526020015f73ffffffffffffffffffffffffffffffffffffffff1681525090565b5080516020808301919091205f9081527faca21cc4d2a125f3e0ae03aa135d42b2b9177631aca87599d42a68b47e9008028252604090819020815160608101835293845280549284019290925260019091015473ffffffffffffffffffffffffffffffffffffffff169082015290565b5f818311613d2b57505f8181527f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df046020526040812054907f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00907c010000000000000000000000000000000000000000000000000000000083169003613d2957815f03613d235780548310613ce2576040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092015f81815260048401602052604090205490929091508115613ce3575b50610b8a565b505b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60405181606052826040528360601b602c526f23b872dd000000000000000000000000600c5260205f6064601c5f895af18060015f511416613db157803d873b151710613db157637939f4245f526004601cfd5b505f60605260405250505050565b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af18060015f511416613e0857803d853b151710613e08576390b8ec185f526004601cfd5b505f603452505050565b5f385f3884865af16104c15763b12d13eb5f526004601cfd5b60605f61290c8361442c565b6060815f01805480602002602001604051908101604052809291908181526020015f905b82821015613f03578382905f5260205f20018054613e78906148e1565b80601f0160208091040260200160405190810160405280929190818152602001828054613ea4906148e1565b8015613eef5780601f10613ec657610100808354040283529160200191613eef565b820191905f5260205f20905b815481529060010190602001808311613ed257829003601f168201915b505050505081526020019060010190613e5b565b505050509050919050565b60605f61290c83600401613e2b565b6060610b8a61162d83614485565b34811115613f5c57613f5c7ff4e95a4100000000000000000000000000000000000000000000000000000000611120565b73ffffffffffffffffffffffffffffffffffffffff8316613fa057613fa07f99ef038800000000000000000000000000000000000000000000000000000000611120565b73ffffffffffffffffffffffffffffffffffffffff821661201f5761201f7f4bb7c20500000000000000000000000000000000000000000000000000000000611120565b8115614077576040517f21be050a00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8716906321be050a9084906140449089908990899088906004016150d2565b5f604051808303818588803b15801561405b575f5ffd5b505af115801561406d573d5f5f3e3d5ffd5b50505050506140fd565b6040517f21be050a00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8716906321be050a906140cf9088908890889087906004016150d2565b5f604051808303815f87803b1580156140e6575f5ffd5b505af11580156140f8573d5f5f3e3d5ffd5b505050505b505050505050565b7f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00545f829003614161576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff83165f8181527f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df056020908152604080832080546801000000000000000188020190558483527f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df0490915281206001851460e11b4260a01b178317905582840190839083907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a4600183015b8181146142585780835f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5f5fa4600101614222565b50815f03614292576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df005550505050565b6040517f150b7a020000000000000000000000000000000000000000000000000000000081525f9073ffffffffffffffffffffffffffffffffffffffff85169063150b7a029061431490339089908890889060040161510c565b6020604051808303815f875af192505050801561436c575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682019092526143699181019061515c565b60015b6143e1573d808015614399576040519150601f19603f3d011682016040523d82523d5f602084013e61439e565b606091505b5080515f036143d9576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b7fffffffff00000000000000000000000000000000000000000000000000000000167f150b7a0200000000000000000000000000000000000000000000000000000000149050610e99565b6060815f0180548060200260200160405190810160405280929190818152602001828054801561447957602002820191905f5260205f20905b815481526020019060010190808311614465575b50505050509050919050565b604051815160051b8101602001818084035b808201518252816020019150828203614497575060405250919050565b5080546144c0906148e1565b5f825580601f106144cf575050565b601f0160209004905f5260205f20908101906109e591905b808211156144fa575f81556001016144e7565b5090565b5f5f83601f84011261450e575f5ffd5b50813567ffffffffffffffff811115614525575f5ffd5b60208301915083602082850101111561453c575f5ffd5b9250929050565b5f5f60208385031215614554575f5ffd5b823567ffffffffffffffff81111561456a575f5ffd5b614576858286016144fe565b90969095509350505050565b5f60208284031215614592575f5ffd5b5035919050565b5f5f5f604084860312156145ab575f5ffd5b8335600281106145b9575f5ffd5b9250602084013567ffffffffffffffff8111156145d4575f5ffd5b6145e0868287016144fe565b9497909650939450505050565b73ffffffffffffffffffffffffffffffffffffffff811681146109e5575f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040516060810167ffffffffffffffff8111828210171561465e5761465e61460e565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff811182821017156146ab576146ab61460e565b604052919050565b5f67ffffffffffffffff8211156146cc576146cc61460e565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b5f60608284031215614708575f5ffd5b61471061463b565b9050813561471d816145ed565b8152602082013561472d816145ed565b6020820152604082013567ffffffffffffffff81111561474b575f5ffd5b8201601f8101841361475b575f5ffd5b803561476e614769826146b3565b614664565b818152856020838501011115614782575f5ffd5b816020840160208301375f6020838301015280604085015250505092915050565b5f5f604083850312156147b4575f5ffd5b82356147bf816145ed565b9150602083013567ffffffffffffffff8111156147da575f5ffd5b6147e6858286016146f8565b9150509250929050565b67ffffffffffffffff811681146109e5575f5ffd5b5f60208284031215614815575f5ffd5b813561290c816147f0565b5f60208284031215614830575f5ffd5b813561290c816145ed565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081525f61290c602083018461483b565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b5f602082840312156148d6575f5ffd5b815161290c816145ed565b600181811c908216806148f557607f821691505b602082108103610521577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b601f82111561201f57805f5260205f20601f840160051c810160208510156149515750805b601f840160051c820191505b818110156108d3575f815560010161495d565b815167ffffffffffffffff81111561498a5761498a61460e565b61499e8161499884546148e1565b8461492c565b6020601f8211600181146149ef575f83156149b95750848201515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600385901b1c1916600184901b1784556108d3565b5f848152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08516915b82811015614a3c5787850151825560209485019460019092019101614a1c565b5084821015614a7857868401517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b60f8161c191681555b50505050600190811b01905550565b5f60208284031215614a97575f5ffd5b5051919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b80820180821115610b8a57610b8a614a9e565b6020815273ffffffffffffffffffffffffffffffffffffffff825116602082015273ffffffffffffffffffffffffffffffffffffffff60208301511660408201525f6040830151606080840152610e99608084018261483b565b81810381811115610b8a57610b8a614a9e565b5f60208284031215614b5b575f5ffd5b815161290c816147f0565b80518015158114614b75575f5ffd5b919050565b5f60208284031215614b8a575f5ffd5b61290c82614b66565b5f60208284031215614ba3575f5ffd5b815161ffff8116811461290c575f5ffd5b7fffffffff000000000000000000000000000000000000000000000000000000008516815273ffffffffffffffffffffffffffffffffffffffff8416602082015273ffffffffffffffffffffffffffffffffffffffff83166040820152608060608201525f614c26608083018461483b565b9695505050505050565b80517fffffffff0000000000000000000000000000000000000000000000000000000081168114614b75575f5ffd5b5f614c6c614769846146b3565b9050828152838383011115614c7f575f5ffd5b8282602083015e5f602084830101529392505050565b5f5f5f5f60808587031215614ca8575f5ffd5b614cb185614c30565b93506020850151614cc1816145ed565b6040860151909350614cd2816145ed565b606086015190925067ffffffffffffffff811115614cee575f5ffd5b8501601f81018713614cfe575f5ffd5b614d0d87825160208401614c5f565b91505092959194509250565b5f60208284031215614d29575f5ffd5b815167ffffffffffffffff811115614d3f575f5ffd5b820160608185031215614d50575f5ffd5b614d5861463b565b8151614d63816145ed565b81526020820151614d73816145ed565b6020820152604082015167ffffffffffffffff811115614d91575f5ffd5b80830192505084601f830112614da5575f5ffd5b614db485835160208501614c5f565b6040820152949350505050565b67ffffffffffffffff8181168382160190811115610b8a57610b8a614a9e565b8082028115828204841417610b8a57610b8a614a9e565b5f82614e2b577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614e6057614e60614a9e565b5060010190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f82518060208501845e5f920191825250919050565b80516020808301519190811015610521577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60209190910360031b1b16919050565b5f60608201858352606060208401528085518083526080850191506020870192505f5b81811015614f4357835173ffffffffffffffffffffffffffffffffffffffff16835260209384019390920191600101614f0f565b505060409390930193909352509392505050565b5f6080828403128015614f68575f5ffd5b506040516080810167ffffffffffffffff81118282101715614f8c57614f8c61460e565b6040528251614f9a816145ed565b81526020830151614faa816145ed565b602082015260408381015190820152614fc560608401614b66565b60608201529392505050565b5f60048410615007577f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b83825260406020830152610e99604083018461483b565b5f6020828403121561502e575f5ffd5b815167ffffffffffffffff811115615044575f5ffd5b8201601f81018413615054575f5ffd5b805167ffffffffffffffff81111561506e5761506e61460e565b8060051b61507e60208201614664565b91825260208184018101929081019087841115615099575f5ffd5b6020850194505b838510156150c757845192506150b5836145ed565b828252602094850194909101906150a0565b979650505050505050565b73ffffffffffffffffffffffffffffffffffffffff85168152836020820152826040820152608060608201525f614c26608083018461483b565b73ffffffffffffffffffffffffffffffffffffffff8516815273ffffffffffffffffffffffffffffffffffffffff84166020820152826040820152608060608201525f614c26608083018461483b565b5f6020828403121561516c575f5ffd5b61290c82614c3056";
2379
+ "0x6080604052348015600e575f5ffd5b5060156019565b60bd565b7f59b501c3653afc186af7d48dda36cf6732bd21629a6295693664240a6ef520008054640100000000900460ff16156064576040516366008a2d60e01b815260040160405180910390fd5b805463ffffffff908116101560ba57805463ffffffff191663ffffffff90811782556040519081527fe9c9b456cb2994b80aeef036cf59d26e9617df80f816a6ee5a5b4166e07e2f5c9060200160405180910390a15b50565b61520c806100ca5f395ff3fe60806040526004361061016d575f3560e01c806379dda585116100c657806393b13cb71161007c578063a5a4103111610057578063a5a41031146103c9578063df9a9fe6146103dd578063e847abdd146103fc575f5ffd5b806393b13cb71461037557806395d600c81461039657806397fb7c1e146103aa575f5ffd5b80638120f0ba116100ac5780638120f0ba1461031657806383f3f0dc146103435780638c625b0614610362575f5ffd5b806379dda585146102ef5780637c9669ac14610303575f5ffd5b80635803909f11610126578063686f768411610101578063686f7684146102a957806369d5f38a146102bc578063706b8e09146102db575f5ffd5b80635803909f146102325780635becd24a14610251578063657e45e814610270575f5ffd5b806317c957091161015657806317c95709146101b9578063280a47c71461020d5780633e9491a214610220575f5ffd5b80630ef1be5f146101715780631278076a14610192575b5f5ffd5b34801561017c575f5ffd5b5061019061018b3660046145d4565b610410565b005b34801561019d575f5ffd5b506101a66104c5565b6040519081526020015b60405180910390f35b3480156101c4575f5ffd5b506101a66101d3366004614613565b5f9081527f4775a23600034fdd9f073b224f794d51a58b35ba663a9602623ba7a5c09cce00602052604090205467ffffffffffffffff1690565b61019061021b36600461462a565b61053a565b34801561022b575f5ffd5b50476101a6565b34801561023d575f5ffd5b506101a661024c366004614613565b610610565b34801561025c575f5ffd5b5061019061026b366004614613565b610688565b34801561027b575f5ffd5b5061028461076f565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101b0565b6101906102b7366004614834565b6107b3565b3480156102c7575f5ffd5b506101906102d6366004614613565b6107f7565b3480156102e6575f5ffd5b506101a6610906565b3480156102fa575f5ffd5b5061028461090f565b610190610311366004614613565b61094e565b348015610321575f5ffd5b5061032a610991565b60405167ffffffffffffffff90911681526020016101b0565b34801561034e575f5ffd5b5061019061035d366004614896565b61099a565b6101906103703660046148b1565b610a14565b348015610380575f5ffd5b50610389610a47565b6040516101b09190614918565b3480156103a1575f5ffd5b506101a6610a51565b3480156103b5575f5ffd5b506101906103c4366004614613565b610a7a565b3480156103d4575f5ffd5b506101a6610b64565b3480156103e8575f5ffd5b506101906103f73660046148b1565b610bd4565b348015610407575f5ffd5b50610284610cad565b610418610cec565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610483576040517f65f490650000000000000000000000000000000000000000000000000000000081523360048201526024015b60405180910390fd5b6104c182828080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250610dac92505050565b5050565b5f5f61051a6105157f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b610dd7565b9050805f0361052a575f91505090565b61053381610ee5565b5092915050565b3068929eee149b4bd2126854036105585763ab143c065f526004601cfd5b3068929eee149b4bd21268555f8360018111156105775761057761492a565b0361059a575f610589828401846148b1565b905061059481610f12565b506105ff565b60018360018111156105ae576105ae61492a565b036105d6575f806105c183850185614834565b915091506105cf8282611019565b50506105ff565b6105ff7f3be0196900000000000000000000000000000000000000000000000000000000611164565b3868929eee149b4bd2126855505050565b5f5f610666836106617f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b61116c565b9050805f0361067757505f92915050565b61068081610ee5565b509392505050565b610690610cec565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146106f6576040517f65f4906500000000000000000000000000000000000000000000000000000000815233600482015260240161047a565b5f61071f7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6035490565b9050801580159061072f57508082115b1561075d5761075d7fc3983b9100000000000000000000000000000000000000000000000000000000611164565b610766826111ea565b6104c18261128e565b5f6107ae7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6045473ffffffffffffffffffffffffffffffffffffffff1690565b905090565b3068929eee149b4bd2126854036107d15763ab143c065f526004601cfd5b3068929eee149b4bd21268556107e78282611019565b3868929eee149b4bd21268555050565b6107ff610cec565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610865576040517f65f4906500000000000000000000000000000000000000000000000000000000815233600482015260240161047a565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb608546040517f91b7f5ed0000000000000000000000000000000000000000000000000000000081526004810183905273ffffffffffffffffffffffffffffffffffffffff909116906391b7f5ed906024015f604051808303815f87803b1580156108ed575f5ffd5b505af11580156108ff573d5f5f3e3d5ffd5b5050505050565b5f6107ae61134c565b5f6107ae7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6065473ffffffffffffffffffffffffffffffffffffffff1690565b3068929eee149b4bd21268540361096c5763ab143c065f526004601cfd5b3068929eee149b4bd21268556109823382611417565b3868929eee149b4bd212685550565b5f6107ae61160d565b6109a2610cec565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a08576040517f65f4906500000000000000000000000000000000000000000000000000000000815233600482015260240161047a565b610a11816116d0565b50565b3068929eee149b4bd212685403610a325763ab143c065f526004601cfd5b3068929eee149b4bd212685561098281610f12565b60606107ae61174b565b5f6107ae7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6035490565b610a82610cec565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ae8576040517f65f4906500000000000000000000000000000000000000000000000000000000815233600482015260240161047a565b610b3c81610b377f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b6117fd565b610a11817fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60355565b5f5f610bb46105157f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b9050805f03610bc4575f91505090565b610bcd81610ee5565b9392505050565b610bdc610cec565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c42576040517f65f4906500000000000000000000000000000000000000000000000000000000815233600482015260240161047a565b610c4b8161182e565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60880547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff831617905550565b5f6107ae7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6085473ffffffffffffffffffffffffffffffffffffffff1690565b5f807fd2f24d4f172e4e84e48e7c4125b6e904c29e5eba33ad4938fee51dd5dbd4b600805460018201546040517f6352211e000000000000000000000000000000000000000000000000000000008152600481019190915291925073ffffffffffffffffffffffffffffffffffffffff1690636352211e90602401602060405180830381865afa158015610d82573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610da69190614957565b91505090565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60c6104c18282614a07565b5f5f610e177fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6085473ffffffffffffffffffffffffffffffffffffffff1690565b905073ffffffffffffffffffffffffffffffffffffffff8116610e3c57505f92915050565b5f610e4561134c565b6040517f5cf4ee91000000000000000000000000000000000000000000000000000000008152600481018290526024810186905290915073ffffffffffffffffffffffffffffffffffffffff831690635cf4ee91906044015b602060405180830381865afa158015610eb9573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610edd9190614b1e565b949350505050565b5f5f610ef083611967565b9050825f03610f0157809150915091565b610f0b8184614b62565b9150915091565b610f1b81611a80565b5f610f24611b76565b905080604001518015610f3a5750806020015134105b15610f6857610f687fb1296a8a00000000000000000000000000000000000000000000000000000000611164565b806060015115610f7c57610f7c6001611c5d565b5f610fc083610fbb7f8c625b06d047a4c1ca46cdab06b7e14ce79b486f06c67a1b220fa942669ca49b338760405180602001604052805f815250611c9a565b611ccc565b90505f5f610fd48533858760200151611e61565b91509150806108ff57811561100f57836040015115610ff757610ff78385611edc565b6110018386612039565b61100a856120c4565b6108ff565b6108ff83866121b3565b61102282611a80565b5f61102b611b76565b9050806040015180156110415750806020015134105b1561106f5761106f7fb1296a8a00000000000000000000000000000000000000000000000000000000611164565b806060015115611083576110836001611c5d565b61108d838361220a565b5f8260405160200161109f9190614b75565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081840301815291905290507f686f7684000000000000000000000000000000000000000000000000000000005f61110186610fbb84338388611c9a565b90505f5f6111158833858960200151611e61565b915091508061115a5781156111505785604001511561113857611138838761228f565b6111428389612039565b61114b886120c4565b61115a565b61115a83896121b3565b5050505050505050565b805f5260045ffd5b5f8281527fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60960205260408120547fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60090826111c585610dd7565b9050815f036111d85792506111e4915050565b81811890821102189150505b92915050565b6111f261090f565b73ffffffffffffffffffffffffffffffffffffffff16632cbb9d136040518163ffffffff1660e01b8152600401602060405180830381865afa15801561123a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061125e9190614b1e565b811115610a1157610a117fc3983b9100000000000000000000000000000000000000000000000000000000611164565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60d80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790557fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6078190556040517fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6009082907fab14a23e88fb272313490d4f20d63098e64fd38304c0e07a377db98c2b39b92f905f90a25050565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb60d545f907fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6009060ff16156113a35760070154919050565b6113ab61090f565b73ffffffffffffffffffffffffffffffffffffffff16632cbb9d136040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113f3573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610da69190614b1e565b5f61142182612444565b905073ffffffffffffffffffffffffffffffffffffffff8116611467576114677f5fbd571700000000000000000000000000000000000000000000000000000000611164565b5f61147061160d565b67ffffffffffffffff1690505f6114cc846106617f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b9050805f036115285761151e6115167fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6045473ffffffffffffffffffffffffffffffffffffffff1690565b30873461244f565b6108ff84836124a7565b5f61153282610ee5565b50905034811115611566576115667f34a7a93d00000000000000000000000000000000000000000000000000000000611164565b5f61157187846125d5565b90505f61157e8284614bcf565b9050801561159257611590888261269d565b505b5f61159d8434614bcf565b905080156115ee576115ee6115e67fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6045473ffffffffffffffffffffffffffffffffffffffff1690565b308b8461244f565b6115f88785612813565b61160288876124a7565b505050505050505050565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6065474010000000000000000000000000000000000000000900467ffffffffffffffff165f8190036116cd5761166161090f565b73ffffffffffffffffffffffffffffffffffffffff16638120f0ba6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116a9573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107ae9190614be2565b90565b6116d98161286a565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb606805467ffffffffffffffff90921674010000000000000000000000000000000000000000027fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff909216919091179055565b60607fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb600600c01805461177c90614972565b80601f01602080910402602001604051908101604052809291908181526020018280546117a890614972565b80156117f35780601f106117ca576101008083540402835291602001916117f3565b820191905f5260205f20905b8154815290600101906020018083116117d657829003601f168201915b5050505050905090565b808210156104c1576104c17fccc9aa2e00000000000000000000000000000000000000000000000000000000611164565b73ffffffffffffffffffffffffffffffffffffffff8116611872576118727f0e88bf4b00000000000000000000000000000000000000000000000000000000611164565b7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6065473ffffffffffffffffffffffffffffffffffffffff166040517f8df80bd600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301529190911690638df80bd690602401602060405180830381865afa158015611916573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061193a9190614c11565b610a1157610a117f0e88bf4b00000000000000000000000000000000000000000000000000000000611164565b5f5f61197161090f565b90505f8173ffffffffffffffffffffffffffffffffffffffff16630eac306d6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119bd573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119e19190614b1e565b9050835f036119f1579392505050565b5f611a6c858473ffffffffffffffffffffffffffffffffffffffff16639f6542aa6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a3f573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a639190614c2a565b61ffff16612960565b905081811082821802811895945050505050565b73ffffffffffffffffffffffffffffffffffffffff8116611ac457611ac47f5fbd571700000000000000000000000000000000000000000000000000000000611164565b5f611aed7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6035490565b90508015801590611b48575080611b457f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b10155b156104c1576104c17f7efcdb4900000000000000000000000000000000000000000000000000000000611164565b604080516080810182525f808252602082018190529181018290526060810182905290611be47f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b90505f611bf082610dd7565b90505f611bfb61134c565b9050815f03611c0a5750505090565b81845282811115611c1b5750505090565b5f611c246129ac565b90508015611c3c575050600160608401525090919050565b5f611c4684610ee5565b506001604088015260208701525093949350505050565b7f097b4f25b64e012d0cf55f67e9b34fe5d57f15b11b95baa4ddd136b424967c008054829082905f90611c91908490614bcf565b90915550505050565b606084848484604051602001611cb39493929190614c4b565b6040516020818303038152906040529050949350505050565b6040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000606084901b1660208201524360348201525f908190605401604051602081830303815290604052805190602001209050611dab81611d7f8387611d32866129d5565b6040805160208082019590955273ffffffffffffffffffffffffffffffffffffffff9390931683820152606080840192909252805180840390920182526080909201909152805191012090565b604080516020808201949094528082019290925280518083038201815260609092019052805191012090565b5f8181527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e026020526040812080549294507f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e00929091908290611e0c90614972565b90501115611e3d57611e3d7ff82e65c300000000000000000000000000000000000000000000000000000000611164565b80611e488682614a07565b503415611e5857611e5884612a1b565b50505092915050565b5f5f5f611ea26040518060400160405280600981526020017f4a6f696e53706163650000000000000000000000000000000000000000000000815250612a79565b9050611eae8188612c11565b15611ec05760015f9250925050611ed3565b611ecd8188888888612e2c565b92509250505b94509492505050565b5f5f5f611ee885612fb9565b8054611ef390614972565b80601f0160208091040260200160405190810160405280929190818152602001828054611f1f90614972565b8015611f6a5780601f10611f4157610100808354040283529160200191611f6a565b820191905f5260205f20905b815481529060010190602001808311611f4d57829003601f168201915b5050505050806020019051810190611f829190614d2c565b50919450925090507fffffffff0000000000000000000000000000000000000000000000000000000083167f8c625b060000000000000000000000000000000000000000000000000000000014611ffc57611ffc7fda6153bd00000000000000000000000000000000000000000000000000000000611164565b5f61200a83865f01516125d5565b90505f81866020015161201d9190614bcf565b905061203087858589602001518561300c565b50505050505050565b5f8281527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e01602052604090205480156120bf57612076838261303b565b6120bf6120b77fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6045473ffffffffffffffffffffffffffffffffffffffff1690565b30848461244f565b505050565b5f6120cd6130a3565b9050612151816121216105157f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df01547f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00540390565b5f9182527fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb609602052604090912055565b61215c8260016130ca565b61216d8161216861160d565b6124a7565b604051819073ffffffffffffffffffffffffffffffffffffffff8416907f2f40b0474996b72a4251e00fb9170cdd960deea1dc749772cbbab61395b9b576905f90a35050565b6121bc826130e3565b6121c68282612039565b60405173ffffffffffffffffffffffffffffffffffffffff8216907f86fd446d5c04e892d58b448a924dcd9c3ece3a5e0d2960b8c35cd475a5595a1f905f90a25050565b8173ffffffffffffffffffffffffffffffffffffffff16816020015173ffffffffffffffffffffffffffffffffffffffff1614806122615750602081015173ffffffffffffffffffffffffffffffffffffffff1633145b156104c1576104c17f5fbd571700000000000000000000000000000000000000000000000000000000611164565b5f5f5f5f61229c86612fb9565b80546122a790614972565b80601f01602080910402602001604051908101604052809291908181526020018280546122d390614972565b801561231e5780601f106122f55761010080835404028352916020019161231e565b820191905f5260205f20905b81548152906001019060200180831161230157829003601f168201915b50505050508060200190518101906123369190614d2c565b929650909450925090507fffffffff0000000000000000000000000000000000000000000000000000000084167f686f768400000000000000000000000000000000000000000000000000000000146123b2576123b27fda6153bd00000000000000000000000000000000000000000000000000000000611164565b5f818060200190518101906123c79190614db0565b90505f5f6123d886895f01516125d5565b90505f6123ec87855f01518b5f015161313b565b90505f61240688866020015187604001518d5f01516132a0565b90508082848c6020015161241a9190614bcf565b6124249190614bcf565b61242e9190614bcf565b935050505061115a8886868a602001518561300c565b5f6111e48183613422565b80156124a15773ffffffffffffffffffffffffffffffffffffffff841673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee14612497576124928484848461342d565b6124a1565b6124a182826134c1565b50505050565b5f8281527f4775a23600034fdd9f073b224f794d51a58b35ba663a9602623ba7a5c09cce00602081905260409091205467ffffffffffffffff1680158015906124ed57505f5b15612527576040517ff7d2131a0000000000000000000000000000000000000000000000000000000081526004810185905260240161047a565b5f428267ffffffffffffffff16111561254b576125448483614e58565b9050612558565b6125558442614e58565b90505b5f858152602084815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff8516908117909155915191825286917f2ec2be2c4b90c2cf13ecb6751a24daed6bb741ae5ed3f7371aabf9402f6d62e8910160405180910390a25050505050565b5f6125df82611967565b90506111e46126227fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6045473ffffffffffffffffffffffffffffffffffffffff1690565b8461262b61090f565b73ffffffffffffffffffffffffffffffffffffffff16634ccb20c06040518163ffffffff1660e01b8152600401602060405180830381865afa158015612673573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126979190614957565b8461244f565b5f7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb600816126fe7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6045473ffffffffffffffffffffffffffffffffffffffff1690565b90507fffffffffffffffffffffffff111111111111111111111111111111111111111273ffffffffffffffffffffffffffffffffffffffff821601612760578382600a015f8282546127509190614b62565b909155508493506111e492505050565b5f61278173ffffffffffffffffffffffffffffffffffffffff8316306134e1565b905061278f8287308861342d565b5f6127b073ffffffffffffffffffffffffffffffffffffffff8416306134e1565b90505f6127bd8383614bcf565b90508681146127ef576127ef7fb1296a8a00000000000000000000000000000000000000000000000000000000611164565b8085600a015f8282546128029190614b62565b909155509098975050505050505050565b5f61281c613514565b90505f61284b825f8560405160200161283791815260200190565b6040516020818303038152906040526135e7565b905061285882858361363d565b6124a182612864610cec565b8361363d565b5f61287361090f565b73ffffffffffffffffffffffffffffffffffffffff16638120f0ba6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156128bb573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906128df9190614be2565b67ffffffffffffffff1690508167ffffffffffffffff165f03612925576129257f82323d2e00000000000000000000000000000000000000000000000000000000611164565b808267ffffffffffffffff1611156104c1576104c17f82323d2e00000000000000000000000000000000000000000000000000000000611164565b5f612710821115612995576129957f197f196200000000000000000000000000000000000000000000000000000000836136bc565b6127106129a28385614e78565b610bcd9190614e8f565b5f7f097b4f25b64e012d0cf55f67e9b34fe5d57f15b11b95baa4ddd136b424967c005b54919050565b5f8181527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e0060208190526040822080549083612a1083614ec7565b909155509392505050565b5f8181527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e016020526040812080547f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e0092349291611c91908490614b62565b60605f612a846136c8565b80519091505f8167ffffffffffffffff811115612aa357612aa361469f565b604051908082528060200260200182016040528015612b0657816020015b612af36040518060a001604052805f8152602001606081526020015f1515815260200160608152602001606081525090565b815260200190600190039081612ac15790505b50855160208701209091505f90815b84811015612c05575f5f5f5f612b438a8681518110612b3657612b36614efe565b60200260200101516136f3565b93509350935093505f5b8251811015612bf55786838281518110612b6957612b69614efe565b60200260200101518051906020012003612bed576040518060a001604052808c8881518110612b9a57612b9a614efe565b60200260200101518152602001868152602001851515815260200184815260200183815250898981518110612bd157612bd1614efe565b602002602001018190525087612be690614ec7565b9750612bf5565b600101612b4d565b5050505050806001019050612b15565b50508152949350505050565b5f5f612c1c836137df565b90505f5b8451811015612e2257848181518110612c3b57612c3b614efe565b602002602001015160400151612e1a575f5b858281518110612c5f57612c5f614efe565b60200260200101516080015151811015612e18575f868381518110612c8657612c86614efe565b6020026020010151608001518281518110612ca357612ca3614efe565b602002602001015190508073ffffffffffffffffffffffffffffffffffffffff16632e1b61e46040518163ffffffff1660e01b8152600401602060405180830381865afa158015612cf6573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612d1a9190614c11565b158015612dfd57508073ffffffffffffffffffffffffffffffffffffffff16630cf0b5335f5f1b866040518060400160405280600981526020017f4a6f696e53706163650000000000000000000000000000000000000000000000815250604051602001612d889190614f2b565b604051602081830303815290604052612da090614f41565b6040518463ffffffff1660e01b8152600401612dbe93929190614f83565b602060405180830381865afa158015612dd9573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612dfd9190614c11565b15612e0f5760019450505050506111e4565b50600101612c4d565b505b600101612c20565b505f949350505050565b5f8080805b8851811015612faa57888181518110612e4c57612e4c614efe565b602002602001015160400151612fa2575f5b898281518110612e7057612e70614efe565b60200260200101516080015151811015612fa0575f8a8381518110612e9757612e97614efe565b6020026020010151608001518281518110612eb457612eb4614efe565b602002602001015190508073ffffffffffffffffffffffffffffffffffffffff16632e1b61e46040518163ffffffff1660e01b8152600401602060405180830381865afa158015612f07573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612f2b9190614c11565b15612f975783612f6857612f5f8a8a8a848f8881518110612f4e57612f4e614efe565b60200260200101515f01518c613a53565b60019350612f92565b612f928a8a8a848f8881518110612f8157612f81614efe565b60200260200101515f01515f613a53565b600194505b50600101612e5e565b505b600101612e31565b505f9250509550959350505050565b5f8181527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e02602052604081207f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e0090610bcd565b801561301e5761301c848261269d565b505b613028858361303b565b613031856130e3565b6108ff8383612813565b5f8281527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e016020526040812080547f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e0092849291613099908490614bcf565b9091555050505050565b5f7f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df006129cf565b6104c1828260405180602001604052805f815250613b43565b5f8181527f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e02602052604090207f34516f6fe09a043d57f1ff579a303a7ae85314751c77b4eb1a55837604a86e00906104c1905f614545565b5f73ffffffffffffffffffffffffffffffffffffffff831661315e57505f610bcd565b5f61319d7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6065473ffffffffffffffffffffffffffffffffffffffff1690565b6040517f5cb4f54800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff86811660048301529190911690635cb4f54890602401608060405180830381865afa158015613209573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061322d9190614fee565b905080604001515f03613243575f915050610bcd565b613251838260400151612960565b91506106806132947fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6045473ffffffffffffffffffffffffffffffffffffffff1690565b8683602001518561244f565b5f82515f14613350575f6132b384613c0b565b604081015190915073ffffffffffffffffffffffffffffffffffffffff1615806132df57506020810151155b156132ed575f915050610edd565b6132fb838260200151612960565b915061334a61333e7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6045473ffffffffffffffffffffffffffffffffffffffff1690565b8783604001518561244f565b50610edd565b73ffffffffffffffffffffffffffffffffffffffff841615610edd578473ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036133a657505f610edd565b6133d7826133d27faca21cc4d2a125f3e0ae03aa135d42b2b9177631aca87599d42a68b47e9008015490565b612960565b9050610edd61341a7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb6045473ffffffffffffffffffffffffffffffffffffffff1690565b86868461244f565b5f610bcd8383613cb3565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603156124a15773ffffffffffffffffffffffffffffffffffffffff831630146134a05761249273ffffffffffffffffffffffffffffffffffffffff8516848484613dee565b6124a173ffffffffffffffffffffffffffffffffffffffff85168383613e50565b6104c173ffffffffffffffffffffffffffffffffffffffff831682613ea3565b5f816014526f70a082310000000000000000000000005f5260208060246010865afa601f3d111660205102905092915050565b5f7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb600600601546040517f44ab66800000000000000000000000000000000000000000000000000000000081527f526976657241697264726f700000000000000000000000000000000000000000600482015273ffffffffffffffffffffffffffffffffffffffff909116906344ab668090602401602060405180830381865afa1580156135c3573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107ae9190614957565b6040517fdc69fdde0000000000000000000000000000000000000000000000000000000081525f9073ffffffffffffffffffffffffffffffffffffffff85169063dc69fdde90610e9e9086908690600401615068565b6040517f40c10f1900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8381166004830152602482018390528416906340c10f19906044015f604051808303815f87803b1580156136aa575f5ffd5b505af1158015612030573d5f5f3e3d5ffd5b815f528060045260245ffd5b60606107ae7f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd01613ebc565b5f8181527f672ef851d5f92307da037116e23aa9e31af7e1f7e3ca62c4e6d540631df3fd03602052604081208054606092918391829190819061373590614972565b80601f016020809104026020016040519081016040528092919081815260200182805461376190614972565b80156137ac5780601f10613783576101008083540402835291602001916137ac565b820191905f5260205f20905b81548152906001019060200180831161378f57829003601f168201915b5050505060018301549196505060ff1693506137ca60028201613ec8565b92506137d581613f9f565b9150509193509193565b60605f7fc21004fcc619240a31f006438274d15cd813308303284436eef6055f0fdcb600600601546040517f02345b9800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff858116600483015290911691505f9082906302345b98906024015f60405180830381865afa158015613876573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682016040526138bb91908101906150b5565b905080515f03613a2c576040517ff821039800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85811660048301525f919084169063f821039890602401602060405180830381865afa158015613932573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906139569190614957565b905073ffffffffffffffffffffffffffffffffffffffff811615613a2a576040517f02345b9800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff808316600483015291955085918416906302345b98906024015f60405180830381865afa1580156139e2573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052613a2791908101906150b5565b91505b505b613a3581613fae565b92506001835101835283604051526020604051016040525050919050565b613a5e868483613fbc565b5f7f9075c515a635ba70c9696f31149324218d75cf00afe836c482e6473f38b19e005f8681526001828101602052604090912080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016909117815560030180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8716179055905080546040805173ffffffffffffffffffffffffffffffffffffffff89811660208301526120309316918a9189918891889101604051602081830303815290604052614075565b613b4d8383614196565b73ffffffffffffffffffffffffffffffffffffffff83163b156120bf577f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00548281035b613ba25f86838060010194508661434b565b613bd8576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b818110613b9057817f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df0054146108ff575f5ffd5b613c436040518060600160405280606081526020015f81526020015f73ffffffffffffffffffffffffffffffffffffffff1681525090565b5080516020808301919091205f9081527faca21cc4d2a125f3e0ae03aa135d42b2b9177631aca87599d42a68b47e9008028252604090819020815160608101835293845280549284019290925260019091015473ffffffffffffffffffffffffffffffffffffffff169082015290565b5f818311613dbc57505f8181527f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df046020526040812054907f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00907c010000000000000000000000000000000000000000000000000000000083169003613dba57815f03613db45780548310613d73576040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092015f81815260048401602052604090205490929091508115613d74575b506111e4565b505b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60405181606052826040528360601b602c526f23b872dd000000000000000000000000600c5260205f6064601c5f895af18060015f511416613e4257803d873b151710613e4257637939f4245f526004601cfd5b505f60605260405250505050565b81601452806034526fa9059cbb0000000000000000000000005f5260205f604460105f875af18060015f511416613e9957803d853b151710613e99576390b8ec185f526004601cfd5b505f603452505050565b5f385f3884865af16104c15763b12d13eb5f526004601cfd5b60605f610bcd836144bd565b6060815f01805480602002602001604051908101604052809291908181526020015f905b82821015613f94578382905f5260205f20018054613f0990614972565b80601f0160208091040260200160405190810160405280929190818152602001828054613f3590614972565b8015613f805780601f10613f5757610100808354040283529160200191613f80565b820191905f5260205f20905b815481529060010190602001808311613f6357829003601f168201915b505050505081526020019060010190613eec565b505050509050919050565b60605f610bcd83600401613ebc565b60606111e46116cd83614516565b34811115613fed57613fed7ff4e95a4100000000000000000000000000000000000000000000000000000000611164565b73ffffffffffffffffffffffffffffffffffffffff8316614031576140317f99ef038800000000000000000000000000000000000000000000000000000000611164565b73ffffffffffffffffffffffffffffffffffffffff82166120bf576120bf7f4bb7c20500000000000000000000000000000000000000000000000000000000611164565b8115614108576040517f21be050a00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8716906321be050a9084906140d5908990899089908890600401615169565b5f604051808303818588803b1580156140ec575f5ffd5b505af11580156140fe573d5f5f3e3d5ffd5b505050505061418e565b6040517f21be050a00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8716906321be050a90614160908890889088908790600401615169565b5f604051808303815f87803b158015614177575f5ffd5b505af1158015614189573d5f5f3e3d5ffd5b505050505b505050505050565b7f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df00545f8290036141f2576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff83165f8181527f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df056020908152604080832080546801000000000000000188020190558483527f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df0490915281206001851460e11b4260a01b178317905582840190839083907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a4600183015b8181146142e95780835f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5f5fa46001016142b3565b50815f03614323576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f6569bde4a160c636ea8b8d11acb83a60d7fec0b8f2e09389306cba0e1340df005550505050565b6040517f150b7a020000000000000000000000000000000000000000000000000000000081525f9073ffffffffffffffffffffffffffffffffffffffff85169063150b7a02906143a59033908990889088906004016151a3565b6020604051808303815f875af19250505080156143fd575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682019092526143fa918101906151f3565b60015b614472573d80801561442a576040519150601f19603f3d011682016040523d82523d5f602084013e61442f565b606091505b5080515f0361446a576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b7fffffffff00000000000000000000000000000000000000000000000000000000167f150b7a0200000000000000000000000000000000000000000000000000000000149050610edd565b6060815f0180548060200260200160405190810160405280929190818152602001828054801561450a57602002820191905f5260205f20905b8154815260200190600101908083116144f6575b50505050509050919050565b604051815160051b8101602001818084035b808201518252816020019150828203614528575060405250919050565b50805461455190614972565b5f825580601f10614560575050565b601f0160209004905f5260205f2090810190610a1191905b8082111561458b575f8155600101614578565b5090565b5f5f83601f84011261459f575f5ffd5b50813567ffffffffffffffff8111156145b6575f5ffd5b6020830191508360208285010111156145cd575f5ffd5b9250929050565b5f5f602083850312156145e5575f5ffd5b823567ffffffffffffffff8111156145fb575f5ffd5b6146078582860161458f565b90969095509350505050565b5f60208284031215614623575f5ffd5b5035919050565b5f5f5f6040848603121561463c575f5ffd5b83356002811061464a575f5ffd5b9250602084013567ffffffffffffffff811115614665575f5ffd5b6146718682870161458f565b9497909650939450505050565b73ffffffffffffffffffffffffffffffffffffffff81168114610a11575f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040516060810167ffffffffffffffff811182821017156146ef576146ef61469f565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561473c5761473c61469f565b604052919050565b5f67ffffffffffffffff82111561475d5761475d61469f565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b5f60608284031215614799575f5ffd5b6147a16146cc565b905081356147ae8161467e565b815260208201356147be8161467e565b6020820152604082013567ffffffffffffffff8111156147dc575f5ffd5b8201601f810184136147ec575f5ffd5b80356147ff6147fa82614744565b6146f5565b818152856020838501011115614813575f5ffd5b816020840160208301375f6020838301015280604085015250505092915050565b5f5f60408385031215614845575f5ffd5b82356148508161467e565b9150602083013567ffffffffffffffff81111561486b575f5ffd5b61487785828601614789565b9150509250929050565b67ffffffffffffffff81168114610a11575f5ffd5b5f602082840312156148a6575f5ffd5b8135610bcd81614881565b5f602082840312156148c1575f5ffd5b8135610bcd8161467e565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081525f610bcd60208301846148cc565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b5f60208284031215614967575f5ffd5b8151610bcd8161467e565b600181811c9082168061498657607f821691505b6020821081036149bd577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b601f8211156120bf57805f5260205f20601f840160051c810160208510156149e85750805b601f840160051c820191505b818110156108ff575f81556001016149f4565b815167ffffffffffffffff811115614a2157614a2161469f565b614a3581614a2f8454614972565b846149c3565b6020601f821160018114614a86575f8315614a505750848201515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600385901b1c1916600184901b1784556108ff565b5f848152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08516915b82811015614ad35787850151825560209485019460019092019101614ab3565b5084821015614b0f57868401517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b60f8161c191681555b50505050600190811b01905550565b5f60208284031215614b2e575f5ffd5b5051919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b808201808211156111e4576111e4614b35565b6020815273ffffffffffffffffffffffffffffffffffffffff825116602082015273ffffffffffffffffffffffffffffffffffffffff60208301511660408201525f6040830151606080840152610edd60808401826148cc565b818103818111156111e4576111e4614b35565b5f60208284031215614bf2575f5ffd5b8151610bcd81614881565b80518015158114614c0c575f5ffd5b919050565b5f60208284031215614c21575f5ffd5b610bcd82614bfd565b5f60208284031215614c3a575f5ffd5b815161ffff81168114610bcd575f5ffd5b7fffffffff000000000000000000000000000000000000000000000000000000008516815273ffffffffffffffffffffffffffffffffffffffff8416602082015273ffffffffffffffffffffffffffffffffffffffff83166040820152608060608201525f614cbd60808301846148cc565b9695505050505050565b80517fffffffff0000000000000000000000000000000000000000000000000000000081168114614c0c575f5ffd5b5f614d036147fa84614744565b9050828152838383011115614d16575f5ffd5b8282602083015e5f602084830101529392505050565b5f5f5f5f60808587031215614d3f575f5ffd5b614d4885614cc7565b93506020850151614d588161467e565b6040860151909350614d698161467e565b606086015190925067ffffffffffffffff811115614d85575f5ffd5b8501601f81018713614d95575f5ffd5b614da487825160208401614cf6565b91505092959194509250565b5f60208284031215614dc0575f5ffd5b815167ffffffffffffffff811115614dd6575f5ffd5b820160608185031215614de7575f5ffd5b614def6146cc565b8151614dfa8161467e565b81526020820151614e0a8161467e565b6020820152604082015167ffffffffffffffff811115614e28575f5ffd5b80830192505084601f830112614e3c575f5ffd5b614e4b85835160208501614cf6565b6040820152949350505050565b67ffffffffffffffff81811683821601908111156111e4576111e4614b35565b80820281158282048414176111e4576111e4614b35565b5f82614ec2577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614ef757614ef7614b35565b5060010190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f82518060208501845e5f920191825250919050565b805160208083015191908110156149bd577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60209190910360031b1b16919050565b5f60608201858352606060208401528085518083526080850191506020870192505f5b81811015614fda57835173ffffffffffffffffffffffffffffffffffffffff16835260209384019390920191600101614fa6565b505060409390930193909352509392505050565b5f6080828403128015614fff575f5ffd5b506040516080810167ffffffffffffffff811182821017156150235761502361469f565b60405282516150318161467e565b815260208301516150418161467e565b60208201526040838101519082015261505c60608401614bfd565b60608201529392505050565b5f6004841061509e577f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b83825260406020830152610edd60408301846148cc565b5f602082840312156150c5575f5ffd5b815167ffffffffffffffff8111156150db575f5ffd5b8201601f810184136150eb575f5ffd5b805167ffffffffffffffff8111156151055761510561469f565b8060051b615115602082016146f5565b91825260208184018101929081019087841115615130575f5ffd5b6020850194505b8385101561515e578451925061514c8361467e565b82825260209485019490910190615137565b979650505050505050565b73ffffffffffffffffffffffffffffffffffffffff85168152836020820152826040820152608060608201525f614cbd60808301846148cc565b73ffffffffffffffffffffffffffffffffffffffff8516815273ffffffffffffffffffffffffffffffffffffffff84166020820152826040820152608060608201525f614cbd60808301846148cc565b5f60208284031215615203575f5ffd5b610bcd82614cc756";
2380
2380
 
2381
2381
  type MembershipFacetConstructorParams =
2382
2382
  | [signer?: Signer]
@@ -1375,6 +1375,17 @@ const _abi = [
1375
1375
  ],
1376
1376
  anonymous: false,
1377
1377
  },
1378
+ {
1379
+ type: "error",
1380
+ name: "AmountSDOverflowed",
1381
+ inputs: [
1382
+ {
1383
+ name: "amountSD",
1384
+ type: "uint256",
1385
+ internalType: "uint256",
1386
+ },
1387
+ ],
1388
+ },
1378
1389
  {
1379
1390
  type: "error",
1380
1391
  name: "ERC20InsufficientAllowance",
@@ -1609,7 +1620,7 @@ const _abi = [
1609
1620
  ] as const;
1610
1621
 
1611
1622
  const _bytecode =
1612
- "0x60c060405234801561000f575f5ffd5b50604051613e35380380613e3583398101604081905261002e91610286565b83838383838360128484818181818d6001600160a01b03811661006a57604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b6100738161017a565b506001600160a01b0380831660805281166100a157604051632d618d8160e21b815260040160405180910390fd5b60805160405163ca5eb5e160e01b81526001600160a01b0383811660048301529091169063ca5eb5e1906024015f604051808303815f87803b1580156100e5575f5ffd5b505af11580156100f7573d5f5f3e3d5ffd5b505050505050505061010d6101c960201b60201c565b60ff168360ff161015610133576040516301e9714b60e41b815260040160405180910390fd5b61013e60068461031f565b61014990600a610421565b60a052506008915061015d905083826104ba565b50600961016a82826104ba565b5050505050505050505050610574565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600690565b634e487b7160e01b5f52604160045260245ffd5b5f82601f8301126101f1575f5ffd5b81516001600160401b0381111561020a5761020a6101ce565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610238576102386101ce565b60405281815283820160200185101561024f575f5ffd5b8160208501602083015e5f918101602001919091529392505050565b80516001600160a01b0381168114610281575f5ffd5b919050565b5f5f5f5f60808587031215610299575f5ffd5b84516001600160401b038111156102ae575f5ffd5b6102ba878288016101e2565b602087015190955090506001600160401b038111156102d7575f5ffd5b6102e3878288016101e2565b9350506102f26040860161026b565b91506103006060860161026b565b905092959194509250565b634e487b7160e01b5f52601160045260245ffd5b60ff82811682821603908111156103385761033861030b565b92915050565b6001815b60018411156103795780850481111561035d5761035d61030b565b600184161561036b57908102905b60019390931c928002610342565b935093915050565b5f8261038f57506001610338565b8161039b57505f610338565b81600181146103b157600281146103bb576103d7565b6001915050610338565b60ff8411156103cc576103cc61030b565b50506001821b610338565b5060208310610133831016604e8410600b84101617156103fa575081810a610338565b6104065f19848461033e565b805f19048211156104195761041961030b565b029392505050565b5f61042f60ff841683610381565b9392505050565b600181811c9082168061044a57607f821691505b60208210810361046857634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156104b557805f5260205f20601f840160051c810160208510156104935750805b601f840160051c820191505b818110156104b2575f815560010161049f565b50505b505050565b81516001600160401b038111156104d3576104d36101ce565b6104e7816104e18454610436565b8461046e565b6020601f821160018114610519575f83156105025750848201515b5f19600385901b1c1916600184901b1784556104b2565b5f84815260208120601f198516915b828110156105485787850151825560209485019460019092019101610528565b508482101561056557868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b60805160a05161385a6105db5f395f81816106be01528181611e8301528181611ef5015261218101525f818161056e01528181610b080152818161123101528181611557015281816119b30152818161228e01528181612467015261254f015261385a5ff3fe6080604052600436106102c1575f3560e01c80637d25a05e11610170578063bb0b6a53116100d1578063d045a0dc11610087578063f2fde38b11610062578063f2fde38b1461087c578063fc0c546a146104f7578063ff7bd03d1461089b575f5ffd5b8063d045a0dc146107f9578063d42438851461080c578063dd62ed3e1461082b575f5ffd5b8063bd815db0116100b7578063bd815db0146107a6578063c7c7f5b3146107b9578063ca5eb5e1146107da575f5ffd5b8063bb0b6a531461075c578063bc70b35414610787575f5ffd5b8063963efcaa11610126578063a9059cbb1161010c578063a9059cbb146106f2578063b731ea0a14610711578063b98bd0701461073d575f5ffd5b8063963efcaa146106ad5780639f68b964146106e0575f5ffd5b8063857749b011610156578063857749b01461065d5780638da5cb5b1461067057806395d89b4114610699575f5ffd5b80637d25a05e1461060457806382413eac1461063e575f5ffd5b806323b872dd116102255780635535d461116101db5780636fc1b31e116101b65780636fc1b31e1461059057806370a08231146105af578063715018a6146105f0575f5ffd5b80635535d461146105095780635a0dfe4d146105285780635e280f111461055d575f5ffd5b80633400288b1161020b5780633400288b146104ac5780633b6f743b146104cb57806352ae2879146104f7575f5ffd5b806323b872dd1461046c578063313ce5671461048b575f5ffd5b8063134d4f251161027a57806317442b701161026057806317442b701461041957806318160ddd1461043a5780631f5e133414610458575f5ffd5b8063134d4f25146103b2578063156a0d0f146103d9575f5ffd5b80630d35b415116102aa5780630d35b4151461031e578063111ecdad1461034c57806313137d651461039d575f5ffd5b806306fdde03146102c5578063095ea7b3146102ef575b5f5ffd5b3480156102d0575f5ffd5b506102d96108ba565b6040516102e69190612728565b60405180910390f35b3480156102fa575f5ffd5b5061030e61030936600461275b565b61094a565b60405190151581526020016102e6565b348015610329575f5ffd5b5061033d61033836600461279b565b610963565b6040516102e6939291906127cd565b348015610357575f5ffd5b506004546103789073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016102e6565b6103b06103ab3660046128db565b610b06565b005b3480156103bd575f5ffd5b506103c6600281565b60405161ffff90911681526020016102e6565b3480156103e4575f5ffd5b50604080517f02e49c2c00000000000000000000000000000000000000000000000000000000815260016020820152016102e6565b348015610424575f5ffd5b50604080516001815260026020820152016102e6565b348015610445575f5ffd5b506007545b6040519081526020016102e6565b348015610463575f5ffd5b506103c6600181565b348015610477575f5ffd5b5061030e610486366004612977565b610c05565b348015610496575f5ffd5b5060125b60405160ff90911681526020016102e6565b3480156104b7575f5ffd5b506103b06104c63660046129cd565b610c2a565b3480156104d6575f5ffd5b506104ea6104e53660046129f4565b610c40565b6040516102e69190612a43565b348015610502575f5ffd5b5030610378565b348015610514575f5ffd5b506102d9610523366004612a6b565b610ca4565b348015610533575f5ffd5b5061030e6105423660046129cd565b63ffffffff919091165f908152600160205260409020541490565b348015610568575f5ffd5b506103787f000000000000000000000000000000000000000000000000000000000000000081565b34801561059b575f5ffd5b506103b06105aa366004612a9c565b610d46565b3480156105ba575f5ffd5b5061044a6105c9366004612a9c565b73ffffffffffffffffffffffffffffffffffffffff165f9081526005602052604090205490565b3480156105fb575f5ffd5b506103b0610dc8565b34801561060f575f5ffd5b5061062561061e3660046129cd565b5f92915050565b60405167ffffffffffffffff90911681526020016102e6565b348015610649575f5ffd5b5061030e610658366004612ab7565b610ddb565b348015610668575f5ffd5b50600661049a565b34801561067b575f5ffd5b505f5473ffffffffffffffffffffffffffffffffffffffff16610378565b3480156106a4575f5ffd5b506102d9610dfd565b3480156106b8575f5ffd5b5061044a7f000000000000000000000000000000000000000000000000000000000000000081565b3480156106eb575f5ffd5b505f61030e565b3480156106fd575f5ffd5b5061030e61070c36600461275b565b610e0c565b34801561071c575f5ffd5b506002546103789073ffffffffffffffffffffffffffffffffffffffff1681565b348015610748575f5ffd5b506103b0610757366004612b5b565b610e19565b348015610767575f5ffd5b5061044a610776366004612b9a565b60016020525f908152604090205481565b348015610792575f5ffd5b506102d96107a1366004612bb3565b610e33565b6103b06107b4366004612b5b565b610fed565b6107cc6107c7366004612c10565b6111b1565b6040516102e6929190612c97565b3480156107e5575f5ffd5b506103b06107f4366004612a9c565b6111e4565b6103b06108073660046128db565b61128b565b348015610817575f5ffd5b506103b0610826366004612a9c565b6112d3565b348015610836575f5ffd5b5061044a610845366004612ce9565b73ffffffffffffffffffffffffffffffffffffffff9182165f90815260066020908152604080832093909416825291909152205490565b348015610887575f5ffd5b506103b0610896366004612a9c565b61134e565b3480156108a6575f5ffd5b5061030e6108b5366004612d15565b6113b1565b6060600880546108c990612d2f565b80601f01602080910402602001604051908101604052809291908181526020018280546108f590612d2f565b80156109405780601f1061091757610100808354040283529160200191610940565b820191905f5260205f20905b81548152906001019060200180831161092357829003601f168201915b5050505050905090565b5f336109578185856113e5565b60019150505b92915050565b604080518082019091525f8082526020820152606061099360405180604001604052805f81526020015f81525090565b5f5f90505f3073ffffffffffffffffffffffffffffffffffffffff1663fc0c546a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109e1573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a059190612d7a565b73ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a4d573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a719190612d95565b604080518082018252848152602080820184905282515f80825291810190935290975091925090610ac4565b604080518082019091525f815260606020820152815260200190600190039081610a9d5790505b5093505f80610ae8604089013560608a0135610ae360208c018c612b9a565b6113f7565b60408051808201909152918252602082015296989597505050505050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163314610b7c576040517f91ac5e4f0000000000000000000000000000000000000000000000000000000081523360048201526024015b60405180910390fd5b60208701803590610b9690610b91908a612b9a565b61144b565b14610bed57610ba86020880188612b9a565b6040517fc26bebcc00000000000000000000000000000000000000000000000000000000815263ffffffff909116600482015260208801356024820152604401610b73565b610bfc8787878787878761149f565b50505050505050565b5f33610c12858285611630565b610c1d8585856116fe565b60019150505b9392505050565b610c326117a7565b610c3c82826117f9565b5050565b604080518082019091525f80825260208201525f610c6e60408501356060860135610ae36020880188612b9a565b9150505f5f610c7d868461184d565b9092509050610c9a610c926020880188612b9a565b83838861199e565b9695505050505050565b600360209081525f928352604080842090915290825290208054610cc790612d2f565b80601f0160208091040260200160405190810160405280929190818152602001828054610cf390612d2f565b8015610d3e5780601f10610d1557610100808354040283529160200191610d3e565b820191905f5260205f20905b815481529060010190602001808311610d2157829003601f168201915b505050505081565b610d4e6117a7565b600480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527ff0be4f1e87349231d80c36b33f9e8639658eeaf474014dee15a3e6a4d4414197906020015b60405180910390a150565b610dd06117a7565b610dd95f611a89565b565b73ffffffffffffffffffffffffffffffffffffffff811630145b949350505050565b6060600980546108c990612d2f565b5f336109578185856116fe565b610e216117a7565b610c3c610e2e8284612eb9565b611afd565b63ffffffff84165f90815260036020908152604080832061ffff87168452909152812080546060929190610e6690612d2f565b80601f0160208091040260200160405190810160405280929190818152602001828054610e9290612d2f565b8015610edd5780601f10610eb457610100808354040283529160200191610edd565b820191905f5260205f20905b815481529060010190602001808311610ec057829003601f168201915b5050505050905080515f03610f2b5783838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250929450610df59350505050565b5f839003610f3a579050610df5565b60028310610fb757610f8084848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250611bfe92505050565b80610f8e8460028188612fdd565b604051602001610fa09392919061301b565b604051602081830303815290604052915050610df5565b83836040517f9a6d49cd000000000000000000000000000000000000000000000000000000008152600401610b73929190613080565b5f5b818110156110f0573683838381811061100a5761100a613093565b905060200281019061101c91906130c0565b905061104e61102e6020830183612b9a565b602083013563ffffffff919091165f908152600160205260409020541490565b61105857506110e8565b3063d045a0dc60c08301358360a08101356110776101008301836130fc565b611088610100890160e08a01612a9c565b6110966101208a018a6130fc565b6040518963ffffffff1660e01b81526004016110b89796959493929190613172565b5f604051808303818588803b1580156110cf575f5ffd5b505af11580156110e1573d5f5f3e3d5ffd5b5050505050505b600101610fef565b503373ffffffffffffffffffffffffffffffffffffffff16638e9e70996040518163ffffffff1660e01b81526004015f60405180830381865afa158015611139573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261117e9190810190613205565b6040517f8351eea7000000000000000000000000000000000000000000000000000000008152600401610b739190612728565b6111b961269b565b604080518082019091525f80825260208201526111d7858585611c43565b915091505b935093915050565b6111ec6117a7565b6040517fca5eb5e100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e1906024015f604051808303815f87803b158015611272575f5ffd5b505af1158015611284573d5f5f3e3d5ffd5b5050505050565b3330146112c4576040517f14d4a4e800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610bfc87878787878787610bed565b6112db6117a7565b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527fd48d879cef83a1c0bdda516f27b13ddb1b3f8bbac1c9e1511bb2a659c242776090602001610dbd565b6113566117a7565b73ffffffffffffffffffffffffffffffffffffffff81166113a5576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081525f6004820152602401610b73565b6113ae81611a89565b50565b5f6020820180359060019083906113c89086612b9a565b63ffffffff16815260208101919091526040015f20541492915050565b6113f28383836001611d3b565b505050565b5f5f61140285611e80565b9150819050838110156111dc576040517f71c4efed0000000000000000000000000000000000000000000000000000000081526004810182905260248101859052604401610b73565b63ffffffff81165f908152600160205260408120548061095d576040517ff6ff4fb700000000000000000000000000000000000000000000000000000000815263ffffffff84166004820152602401610b73565b5f6114b06114ad8787611eb6565b90565b90505f6114db826114c96114c48a8a611ecd565b611eef565b6114d660208d018d612b9a565b611f24565b905060288611156115c1575f6115176114fa60608c0160408d0161327a565b61150760208d018d612b9a565b846115128c8c611f58565b611fa2565b6040517f7cb5901200000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690637cb59012906115929086908d905f908790600401613295565b5f604051808303815f87803b1580156115a9575f5ffd5b505af11580156115bb573d5f5f3e3d5ffd5b50505050505b73ffffffffffffffffffffffffffffffffffffffff8216887fefed6d3500546b29533b128a29e3a94d70788727f0507505ac12eaf2e578fd9c61160760208d018d612b9a565b6040805163ffffffff9092168252602082018690520160405180910390a3505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff8381165f908152600660209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8110156116f857818110156116ea576040517ffb8f41b200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201526024810182905260448101839052606401610b73565b6116f884848484035f611d3b565b50505050565b73ffffffffffffffffffffffffffffffffffffffff831661174d576040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081525f6004820152602401610b73565b73ffffffffffffffffffffffffffffffffffffffff821661179c576040517fec442f050000000000000000000000000000000000000000000000000000000081525f6004820152602401610b73565b6113f2838383611fd4565b5f5473ffffffffffffffffffffffffffffffffffffffff163314610dd9576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610b73565b63ffffffff82165f81815260016020908152604091829020849055815192835282018390527f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b910160405180910390a15050565b6060805f6118a885602001356118628661217b565b61186f60a08901896130fc565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506121a692505050565b90935090505f816118ba5760016118bd565b60025b90506118dd6118cf6020880188612b9a565b826107a160808a018a6130fc565b60045490935073ffffffffffffffffffffffffffffffffffffffff168015611994576040517f043a78eb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82169063043a78eb9061195390889088906004016132d3565b602060405180830381865afa15801561196e573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061199291906132f7565b505b5050509250929050565b604080518082019091525f80825260208201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ddc28c586040518060a001604052808863ffffffff168152602001611a0d8961144b565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b8152600401611a42929190613312565b6040805180830381865afa158015611a5c573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a8091906133e4565b95945050505050565b5f805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f5b8151811015611bce57611b2e828281518110611b1d57611b1d613093565b602002602001015160400151611bfe565b818181518110611b4057611b40613093565b60200260200101516040015160035f848481518110611b6157611b61613093565b60200260200101515f015163ffffffff1663ffffffff1681526020019081526020015f205f848481518110611b9857611b98613093565b60200260200101516020015161ffff1661ffff1681526020019081526020015f209081611bc59190613442565b50600101611aff565b507fbe4864a8e820971c0247f5992e2da559595f7bf076a21cb5928d443d2a13b67481604051610dbd9190613559565b600281015161ffff8116600314610c3c57816040517f9a6d49cd000000000000000000000000000000000000000000000000000000008152600401610b739190612728565b611c4b61269b565b604080518082019091525f80825260208201525f80611c8033604089013560608a0135611c7b60208c018c612b9a565b612238565b915091505f5f611c90898461184d565b9092509050611cbc611ca560208b018b612b9a565b8383611cb6368d90038d018d613605565b8b61225d565b60408051808201909152858152602080820186905282519298509096503391907f85496b760a4b7f8d66384b9df21b381f5d1b1e79f229a47aaf4c232edc2fe59a90611d0a908d018d612b9a565b6040805163ffffffff909216825260208201899052810187905260600160405180910390a350505050935093915050565b73ffffffffffffffffffffffffffffffffffffffff8416611d8a576040517fe602df050000000000000000000000000000000000000000000000000000000081525f6004820152602401610b73565b73ffffffffffffffffffffffffffffffffffffffff8316611dd9576040517f94280d620000000000000000000000000000000000000000000000000000000081525f6004820152602401610b73565b73ffffffffffffffffffffffffffffffffffffffff8085165f90815260066020908152604080832093871683529290522082905580156116f8578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051611e7291815260200190565b60405180910390a350505050565b5f7f0000000000000000000000000000000000000000000000000000000000000000611eac8184613663565b61095d919061369b565b5f611ec46020828486612fdd565b610c23916136b2565b5f611edc602860208486612fdd565b611ee5916136ee565b60c01c9392505050565b5f61095d7f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff841661369b565b5f73ffffffffffffffffffffffffffffffffffffffff8416611f465761dead93505b611f508484612370565b509092915050565b6060611f678260288186612fdd565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250929695505050505050565b606084848484604051602001611fbb9493929190613754565b6040516020818303038152906040529050949350505050565b73ffffffffffffffffffffffffffffffffffffffff831661200b578060075f82825461200091906137bb565b909155506120bb9050565b73ffffffffffffffffffffffffffffffffffffffff83165f9081526005602052604090205481811015612090576040517fe450d38c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff851660048201526024810182905260448101839052606401610b73565b73ffffffffffffffffffffffffffffffffffffffff84165f9081526005602052604090209082900390555b73ffffffffffffffffffffffffffffffffffffffff82166120e45760078054829003905561210f565b73ffffffffffffffffffffffffffffffffffffffff82165f9081526005602052604090208054820190555b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161216e91815260200190565b60405180910390a3505050565b5f61095d7f000000000000000000000000000000000000000000000000000000000000000083613663565b80516060901515806122075784846040516020016121f392919091825260c01b7fffffffffffffffff00000000000000000000000000000000000000000000000016602082015260280190565b60405160208183030381529060405261222e565b8484338560405160200161221e94939291906137ce565b6040516020818303038152906040525b9150935093915050565b5f5f6122458585856113f7565b909250905061225486836123ca565b94509492505050565b61226561269b565b5f612272845f0151612424565b60208501519091501561228c5761228c8460200151612464565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632637a450826040518060a001604052808b63ffffffff1681526020016122e98c61144b565b81526020018a81526020018981526020015f8960200151111515815250866040518463ffffffff1660e01b8152600401612324929190613312565b60806040518083038185885af1158015612340573d5f5f3e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906123659190613810565b979650505050505050565b73ffffffffffffffffffffffffffffffffffffffff82166123bf576040517fec442f050000000000000000000000000000000000000000000000000000000081525f6004820152602401610b73565b610c3c5f8383611fd4565b73ffffffffffffffffffffffffffffffffffffffff8216612419576040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081525f6004820152602401610b73565b610c3c825f83611fd4565b5f813414612460576040517f9f704120000000000000000000000000000000000000000000000000000000008152346004820152602401610b73565b5090565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa1580156124ce573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124f29190612d7a565b905073ffffffffffffffffffffffffffffffffffffffff8116612541576040517f5373352a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805133602482018190527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff81811660448501526064808501889052855180860390910181526084909401909452602080840180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd000000000000000000000000000000000000000000000000000000001781528451610c3c9688169589936116f89388935f9283929091839182885af18061261b576040513d5f823e3d81fd5b50505f513d9150811561263257806001141561264c565b73ffffffffffffffffffffffffffffffffffffffff84163b155b156116f8576040517f5274afe700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85166004820152602401610b73565b60405180606001604052805f81526020015f67ffffffffffffffff1681526020016126d760405180604001604052805f81526020015f81525090565b905290565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081525f610c2360208301846126dc565b73ffffffffffffffffffffffffffffffffffffffff811681146113ae575f5ffd5b5f5f6040838503121561276c575f5ffd5b82356127778161273a565b946020939093013593505050565b5f60e08284031215612795575f5ffd5b50919050565b5f602082840312156127ab575f5ffd5b813567ffffffffffffffff8111156127c1575f5ffd5b610df584828501612785565b83518152602080850151908201525f60a0820160a0604084015280855180835260c08501915060c08160051b8601019250602087015f5b8281101561286a577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff40878603018452815180518652602081015190506040602087015261285460408701826126dc565b9550506020938401939190910190600101612804565b5050855160608601525050602084015160808401529050610df5565b5f60608284031215612795575f5ffd5b5f5f83601f8401126128a6575f5ffd5b50813567ffffffffffffffff8111156128bd575f5ffd5b6020830191508360208285010111156128d4575f5ffd5b9250929050565b5f5f5f5f5f5f5f60e0888a0312156128f1575f5ffd5b6128fb8989612886565b965060608801359550608088013567ffffffffffffffff81111561291d575f5ffd5b6129298a828b01612896565b90965094505060a088013561293d8161273a565b925060c088013567ffffffffffffffff811115612958575f5ffd5b6129648a828b01612896565b989b979a50959850939692959293505050565b5f5f5f60608486031215612989575f5ffd5b83356129948161273a565b925060208401356129a48161273a565b929592945050506040919091013590565b803563ffffffff811681146129c8575f5ffd5b919050565b5f5f604083850312156129de575f5ffd5b612777836129b5565b80151581146113ae575f5ffd5b5f5f60408385031215612a05575f5ffd5b823567ffffffffffffffff811115612a1b575f5ffd5b612a2785828601612785565b9250506020830135612a38816129e7565b809150509250929050565b81518152602080830151908201526040810161095d565b803561ffff811681146129c8575f5ffd5b5f5f60408385031215612a7c575f5ffd5b612a85836129b5565b9150612a9360208401612a5a565b90509250929050565b5f60208284031215612aac575f5ffd5b8135610c238161273a565b5f5f5f5f60a08587031215612aca575f5ffd5b612ad48686612886565b9350606085013567ffffffffffffffff811115612aef575f5ffd5b612afb87828801612896565b9094509250506080850135612b0f8161273a565b939692955090935050565b5f5f83601f840112612b2a575f5ffd5b50813567ffffffffffffffff811115612b41575f5ffd5b6020830191508360208260051b85010111156128d4575f5ffd5b5f5f60208385031215612b6c575f5ffd5b823567ffffffffffffffff811115612b82575f5ffd5b612b8e85828601612b1a565b90969095509350505050565b5f60208284031215612baa575f5ffd5b610c23826129b5565b5f5f5f5f60608587031215612bc6575f5ffd5b612bcf856129b5565b9350612bdd60208601612a5a565b9250604085013567ffffffffffffffff811115612bf8575f5ffd5b612c0487828801612896565b95989497509550505050565b5f5f5f8385036080811215612c23575f5ffd5b843567ffffffffffffffff811115612c39575f5ffd5b612c4587828801612785565b94505060407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe082011215612c77575f5ffd5b506020840191506060840135612c8c8161273a565b809150509250925092565b5f60c0820190508351825267ffffffffffffffff60208501511660208301526040840151612cd2604084018280518252602090810151910152565b5082516080830152602083015160a0830152610c23565b5f5f60408385031215612cfa575f5ffd5b8235612d058161273a565b91506020830135612a388161273a565b5f60608284031215612d25575f5ffd5b610c238383612886565b600181811c90821680612d4357607f821691505b602082108103612795577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60208284031215612d8a575f5ffd5b8151610c238161273a565b5f60208284031215612da5575f5ffd5b5051919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040516060810167ffffffffffffffff81118282101715612dfc57612dfc612dac565b60405290565b6040805190810167ffffffffffffffff81118282101715612dfc57612dfc612dac565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715612e6c57612e6c612dac565b604052919050565b5f67ffffffffffffffff821115612e8d57612e8d612dac565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b5f67ffffffffffffffff831115612ed257612ed2612dac565b8260051b612ee260208201612e25565b84815290830190602081019036831115612efa575f5ffd5b845b83811015612fd357803567ffffffffffffffff811115612f1a575f5ffd5b86016060368290031215612f2c575f5ffd5b612f34612dd9565b612f3d826129b5565b8152612f4b60208301612a5a565b6020820152604082013567ffffffffffffffff811115612f69575f5ffd5b919091019036601f830112612f7c575f5ffd5b8135612f8f612f8a82612e74565b612e25565b818152366020838601011115612fa3575f5ffd5b816020850160208301375f6020838301015280604084015250508085525050602083019250602081019050612efc565b5095945050505050565b5f5f85851115612feb575f5ffd5b83861115612ff7575f5ffd5b5050820193919092039150565b5f81518060208401855e5f93019283525090919050565b5f6130268286613004565b838582375f930192835250909392505050565b81835281816020850137505f602082840101525f60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b602081525f610df5602083018486613039565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f82357ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec18336030181126130f2575f5ffd5b9190910192915050565b5f5f83357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261312f575f5ffd5b83018035915067ffffffffffffffff821115613149575f5ffd5b6020019150368190038213156128d4575f5ffd5b67ffffffffffffffff811681146113ae575f5ffd5b63ffffffff613180896129b5565b168152602088810135908201525f604089013561319c8161315d565b67ffffffffffffffff811660408401525087606083015260e060808301526131c860e083018789613039565b73ffffffffffffffffffffffffffffffffffffffff861660a084015282810360c08401526131f7818587613039565b9a9950505050505050505050565b5f60208284031215613215575f5ffd5b815167ffffffffffffffff81111561322b575f5ffd5b8201601f8101841361323b575f5ffd5b8051613249612f8a82612e74565b81815285602083850101111561325d575f5ffd5b8160208401602083015e5f91810160200191909152949350505050565b5f6020828403121561328a575f5ffd5b8135610c238161315d565b73ffffffffffffffffffffffffffffffffffffffff8516815283602082015261ffff83166040820152608060608201525f610c9a60808301846126dc565b604081525f6132e560408301856126dc565b8281036020840152611a8081856126dc565b5f60208284031215613307575f5ffd5b8151610c23816129e7565b6040815263ffffffff8351166040820152602083015160608201525f604084015160a0608084015261334760e08401826126dc565b905060608501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08483030160a085015261338282826126dc565b60809690960151151560c085015250505073ffffffffffffffffffffffffffffffffffffffff9190911660209091015290565b5f604082840312156133c5575f5ffd5b6133cd612e02565b825181526020928301519281019290925250919050565b5f604082840312156133f4575f5ffd5b610c2383836133b5565b601f8211156113f257805f5260205f20601f840160051c810160208510156134235750805b601f840160051c820191505b81811015611284575f815560010161342f565b815167ffffffffffffffff81111561345c5761345c612dac565b6134708161346a8454612d2f565b846133fe565b6020601f8211600181146134c1575f831561348b5750848201515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600385901b1c1916600184901b178455611284565b5f848152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08516915b8281101561350e57878501518255602094850194600190920191016134ee565b508482101561354a57868401517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b60f8161c191681555b50505050600190811b01905550565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b828110156135f9577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0878603018452815163ffffffff815116865261ffff602082015116602087015260408101519050606060408701526135e360608701826126dc565b955050602093840193919091019060010161357f565b50929695505050505050565b5f6040828403128015613616575f5ffd5b5061361f612e02565b823581526020928301359281019290925250919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f82613696577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b808202811582820484141761095d5761095d613636565b8035602083101561095d577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b80357fffffffffffffffff000000000000000000000000000000000000000000000000811690600884101561374d577fffffffffffffffff000000000000000000000000000000000000000000000000808560080360031b1b82161691505b5092915050565b7fffffffffffffffff0000000000000000000000000000000000000000000000008560c01b1681527fffffffff000000000000000000000000000000000000000000000000000000008460e01b16600882015282600c8201525f610c9a602c830184613004565b8082018082111561095d5761095d613636565b8481527fffffffffffffffff0000000000000000000000000000000000000000000000008460c01b1660208201528260288201525f610c9a6048830184613004565b5f6080828403128015613821575f5ffd5b5061382a612dd9565b82518152602083015161383c8161315d565b602082015261384e84604085016133b5565b6040820152939250505056";
1623
+ "0x60c060405234801561000f575f5ffd5b50604051613e7d380380613e7d83398101604081905261002e91610286565b83838383838360128484818181818d6001600160a01b03811661006a57604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b6100738161017a565b506001600160a01b0380831660805281166100a157604051632d618d8160e21b815260040160405180910390fd5b60805160405163ca5eb5e160e01b81526001600160a01b0383811660048301529091169063ca5eb5e1906024015f604051808303815f87803b1580156100e5575f5ffd5b505af11580156100f7573d5f5f3e3d5ffd5b505050505050505061010d6101c960201b60201c565b60ff168360ff161015610133576040516301e9714b60e41b815260040160405180910390fd5b61013e60068461031f565b61014990600a610421565b60a052506008915061015d905083826104ba565b50600961016a82826104ba565b5050505050505050505050610574565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b600690565b634e487b7160e01b5f52604160045260245ffd5b5f82601f8301126101f1575f5ffd5b81516001600160401b0381111561020a5761020a6101ce565b604051601f8201601f19908116603f011681016001600160401b0381118282101715610238576102386101ce565b60405281815283820160200185101561024f575f5ffd5b8160208501602083015e5f918101602001919091529392505050565b80516001600160a01b0381168114610281575f5ffd5b919050565b5f5f5f5f60808587031215610299575f5ffd5b84516001600160401b038111156102ae575f5ffd5b6102ba878288016101e2565b602087015190955090506001600160401b038111156102d7575f5ffd5b6102e3878288016101e2565b9350506102f26040860161026b565b91506103006060860161026b565b905092959194509250565b634e487b7160e01b5f52601160045260245ffd5b60ff82811682821603908111156103385761033861030b565b92915050565b6001815b60018411156103795780850481111561035d5761035d61030b565b600184161561036b57908102905b60019390931c928002610342565b935093915050565b5f8261038f57506001610338565b8161039b57505f610338565b81600181146103b157600281146103bb576103d7565b6001915050610338565b60ff8411156103cc576103cc61030b565b50506001821b610338565b5060208310610133831016604e8410600b84101617156103fa575081810a610338565b6104065f19848461033e565b805f19048211156104195761041961030b565b029392505050565b5f61042f60ff841683610381565b9392505050565b600181811c9082168061044a57607f821691505b60208210810361046857634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156104b557805f5260205f20601f840160051c810160208510156104935750805b601f840160051c820191505b818110156104b2575f815560010161049f565b50505b505050565b81516001600160401b038111156104d3576104d36101ce565b6104e7816104e18454610436565b8461046e565b6020601f821160018114610519575f83156105025750848201515b5f19600385901b1c1916600184901b1784556104b2565b5f84815260208120601f198516915b828110156105485787850151825560209485019460019092019101610528565b508482101561056557868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b60805160a0516138a26105db5f395f81816106be01528181611e8301528181611ef5015261218201525f818161056e01528181610b080152818161123101528181611557015281816119b3015281816122d6015281816124af015261259701526138a25ff3fe6080604052600436106102c1575f3560e01c80637d25a05e11610170578063bb0b6a53116100d1578063d045a0dc11610087578063f2fde38b11610062578063f2fde38b1461087c578063fc0c546a146104f7578063ff7bd03d1461089b575f5ffd5b8063d045a0dc146107f9578063d42438851461080c578063dd62ed3e1461082b575f5ffd5b8063bd815db0116100b7578063bd815db0146107a6578063c7c7f5b3146107b9578063ca5eb5e1146107da575f5ffd5b8063bb0b6a531461075c578063bc70b35414610787575f5ffd5b8063963efcaa11610126578063a9059cbb1161010c578063a9059cbb146106f2578063b731ea0a14610711578063b98bd0701461073d575f5ffd5b8063963efcaa146106ad5780639f68b964146106e0575f5ffd5b8063857749b011610156578063857749b01461065d5780638da5cb5b1461067057806395d89b4114610699575f5ffd5b80637d25a05e1461060457806382413eac1461063e575f5ffd5b806323b872dd116102255780635535d461116101db5780636fc1b31e116101b65780636fc1b31e1461059057806370a08231146105af578063715018a6146105f0575f5ffd5b80635535d461146105095780635a0dfe4d146105285780635e280f111461055d575f5ffd5b80633400288b1161020b5780633400288b146104ac5780633b6f743b146104cb57806352ae2879146104f7575f5ffd5b806323b872dd1461046c578063313ce5671461048b575f5ffd5b8063134d4f251161027a57806317442b701161026057806317442b701461041957806318160ddd1461043a5780631f5e133414610458575f5ffd5b8063134d4f25146103b2578063156a0d0f146103d9575f5ffd5b80630d35b415116102aa5780630d35b4151461031e578063111ecdad1461034c57806313137d651461039d575f5ffd5b806306fdde03146102c5578063095ea7b3146102ef575b5f5ffd5b3480156102d0575f5ffd5b506102d96108ba565b6040516102e69190612770565b60405180910390f35b3480156102fa575f5ffd5b5061030e6103093660046127a3565b61094a565b60405190151581526020016102e6565b348015610329575f5ffd5b5061033d6103383660046127e3565b610963565b6040516102e693929190612815565b348015610357575f5ffd5b506004546103789073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016102e6565b6103b06103ab366004612923565b610b06565b005b3480156103bd575f5ffd5b506103c6600281565b60405161ffff90911681526020016102e6565b3480156103e4575f5ffd5b50604080517f02e49c2c00000000000000000000000000000000000000000000000000000000815260016020820152016102e6565b348015610424575f5ffd5b50604080516001815260026020820152016102e6565b348015610445575f5ffd5b506007545b6040519081526020016102e6565b348015610463575f5ffd5b506103c6600181565b348015610477575f5ffd5b5061030e6104863660046129bf565b610c05565b348015610496575f5ffd5b5060125b60405160ff90911681526020016102e6565b3480156104b7575f5ffd5b506103b06104c6366004612a15565b610c2a565b3480156104d6575f5ffd5b506104ea6104e5366004612a3c565b610c40565b6040516102e69190612a8b565b348015610502575f5ffd5b5030610378565b348015610514575f5ffd5b506102d9610523366004612ab3565b610ca4565b348015610533575f5ffd5b5061030e610542366004612a15565b63ffffffff919091165f908152600160205260409020541490565b348015610568575f5ffd5b506103787f000000000000000000000000000000000000000000000000000000000000000081565b34801561059b575f5ffd5b506103b06105aa366004612ae4565b610d46565b3480156105ba575f5ffd5b5061044a6105c9366004612ae4565b73ffffffffffffffffffffffffffffffffffffffff165f9081526005602052604090205490565b3480156105fb575f5ffd5b506103b0610dc8565b34801561060f575f5ffd5b5061062561061e366004612a15565b5f92915050565b60405167ffffffffffffffff90911681526020016102e6565b348015610649575f5ffd5b5061030e610658366004612aff565b610ddb565b348015610668575f5ffd5b50600661049a565b34801561067b575f5ffd5b505f5473ffffffffffffffffffffffffffffffffffffffff16610378565b3480156106a4575f5ffd5b506102d9610dfd565b3480156106b8575f5ffd5b5061044a7f000000000000000000000000000000000000000000000000000000000000000081565b3480156106eb575f5ffd5b505f61030e565b3480156106fd575f5ffd5b5061030e61070c3660046127a3565b610e0c565b34801561071c575f5ffd5b506002546103789073ffffffffffffffffffffffffffffffffffffffff1681565b348015610748575f5ffd5b506103b0610757366004612ba3565b610e19565b348015610767575f5ffd5b5061044a610776366004612be2565b60016020525f908152604090205481565b348015610792575f5ffd5b506102d96107a1366004612bfb565b610e33565b6103b06107b4366004612ba3565b610fed565b6107cc6107c7366004612c58565b6111b1565b6040516102e6929190612cdf565b3480156107e5575f5ffd5b506103b06107f4366004612ae4565b6111e4565b6103b0610807366004612923565b61128b565b348015610817575f5ffd5b506103b0610826366004612ae4565b6112d3565b348015610836575f5ffd5b5061044a610845366004612d31565b73ffffffffffffffffffffffffffffffffffffffff9182165f90815260066020908152604080832093909416825291909152205490565b348015610887575f5ffd5b506103b0610896366004612ae4565b61134e565b3480156108a6575f5ffd5b5061030e6108b5366004612d5d565b6113b1565b6060600880546108c990612d77565b80601f01602080910402602001604051908101604052809291908181526020018280546108f590612d77565b80156109405780601f1061091757610100808354040283529160200191610940565b820191905f5260205f20905b81548152906001019060200180831161092357829003601f168201915b5050505050905090565b5f336109578185856113e5565b60019150505b92915050565b604080518082019091525f8082526020820152606061099360405180604001604052805f81526020015f81525090565b5f5f90505f3073ffffffffffffffffffffffffffffffffffffffff1663fc0c546a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109e1573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a059190612dc2565b73ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a4d573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a719190612ddd565b604080518082018252848152602080820184905282515f80825291810190935290975091925090610ac4565b604080518082019091525f815260606020820152815260200190600190039081610a9d5790505b5093505f80610ae8604089013560608a0135610ae360208c018c612be2565b6113f7565b60408051808201909152918252602082015296989597505050505050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163314610b7c576040517f91ac5e4f0000000000000000000000000000000000000000000000000000000081523360048201526024015b60405180910390fd5b60208701803590610b9690610b91908a612be2565b61144b565b14610bed57610ba86020880188612be2565b6040517fc26bebcc00000000000000000000000000000000000000000000000000000000815263ffffffff909116600482015260208801356024820152604401610b73565b610bfc8787878787878761149f565b50505050505050565b5f33610c12858285611630565b610c1d8585856116fe565b60019150505b9392505050565b610c326117a7565b610c3c82826117f9565b5050565b604080518082019091525f80825260208201525f610c6e60408501356060860135610ae36020880188612be2565b9150505f5f610c7d868461184d565b9092509050610c9a610c926020880188612be2565b83838861199e565b9695505050505050565b600360209081525f928352604080842090915290825290208054610cc790612d77565b80601f0160208091040260200160405190810160405280929190818152602001828054610cf390612d77565b8015610d3e5780601f10610d1557610100808354040283529160200191610d3e565b820191905f5260205f20905b815481529060010190602001808311610d2157829003601f168201915b505050505081565b610d4e6117a7565b600480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527ff0be4f1e87349231d80c36b33f9e8639658eeaf474014dee15a3e6a4d4414197906020015b60405180910390a150565b610dd06117a7565b610dd95f611a89565b565b73ffffffffffffffffffffffffffffffffffffffff811630145b949350505050565b6060600980546108c990612d77565b5f336109578185856116fe565b610e216117a7565b610c3c610e2e8284612f01565b611afd565b63ffffffff84165f90815260036020908152604080832061ffff87168452909152812080546060929190610e6690612d77565b80601f0160208091040260200160405190810160405280929190818152602001828054610e9290612d77565b8015610edd5780601f10610eb457610100808354040283529160200191610edd565b820191905f5260205f20905b815481529060010190602001808311610ec057829003601f168201915b5050505050905080515f03610f2b5783838080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250929450610df59350505050565b5f839003610f3a579050610df5565b60028310610fb757610f8084848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250611bfe92505050565b80610f8e8460028188613025565b604051602001610fa093929190613063565b604051602081830303815290604052915050610df5565b83836040517f9a6d49cd000000000000000000000000000000000000000000000000000000008152600401610b739291906130c8565b5f5b818110156110f0573683838381811061100a5761100a6130db565b905060200281019061101c9190613108565b905061104e61102e6020830183612be2565b602083013563ffffffff919091165f908152600160205260409020541490565b61105857506110e8565b3063d045a0dc60c08301358360a0810135611077610100830183613144565b611088610100890160e08a01612ae4565b6110966101208a018a613144565b6040518963ffffffff1660e01b81526004016110b897969594939291906131ba565b5f604051808303818588803b1580156110cf575f5ffd5b505af11580156110e1573d5f5f3e3d5ffd5b5050505050505b600101610fef565b503373ffffffffffffffffffffffffffffffffffffffff16638e9e70996040518163ffffffff1660e01b81526004015f60405180830381865afa158015611139573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016820160405261117e919081019061324d565b6040517f8351eea7000000000000000000000000000000000000000000000000000000008152600401610b739190612770565b6111b96126e3565b604080518082019091525f80825260208201526111d7858585611c43565b915091505b935093915050565b6111ec6117a7565b6040517fca5eb5e100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e1906024015f604051808303815f87803b158015611272575f5ffd5b505af1158015611284573d5f5f3e3d5ffd5b5050505050565b3330146112c4576040517f14d4a4e800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610bfc87878787878787610bed565b6112db6117a7565b600280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527fd48d879cef83a1c0bdda516f27b13ddb1b3f8bbac1c9e1511bb2a659c242776090602001610dbd565b6113566117a7565b73ffffffffffffffffffffffffffffffffffffffff81166113a5576040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081525f6004820152602401610b73565b6113ae81611a89565b50565b5f6020820180359060019083906113c89086612be2565b63ffffffff16815260208101919091526040015f20541492915050565b6113f28383836001611d3b565b505050565b5f5f61140285611e80565b9150819050838110156111dc576040517f71c4efed0000000000000000000000000000000000000000000000000000000081526004810182905260248101859052604401610b73565b63ffffffff81165f908152600160205260408120548061095d576040517ff6ff4fb700000000000000000000000000000000000000000000000000000000815263ffffffff84166004820152602401610b73565b5f6114b06114ad8787611eb6565b90565b90505f6114db826114c96114c48a8a611ecd565b611eef565b6114d660208d018d612be2565b611f24565b905060288611156115c1575f6115176114fa60608c0160408d016132c2565b61150760208d018d612be2565b846115128c8c611f58565b611fa2565b6040517f7cb5901200000000000000000000000000000000000000000000000000000000815290915073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001690637cb59012906115929086908d905f9087906004016132dd565b5f604051808303815f87803b1580156115a9575f5ffd5b505af11580156115bb573d5f5f3e3d5ffd5b50505050505b73ffffffffffffffffffffffffffffffffffffffff8216887fefed6d3500546b29533b128a29e3a94d70788727f0507505ac12eaf2e578fd9c61160760208d018d612be2565b6040805163ffffffff9092168252602082018690520160405180910390a3505050505050505050565b73ffffffffffffffffffffffffffffffffffffffff8381165f908152600660209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8110156116f857818110156116ea576040517ffb8f41b200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff841660048201526024810182905260448101839052606401610b73565b6116f884848484035f611d3b565b50505050565b73ffffffffffffffffffffffffffffffffffffffff831661174d576040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081525f6004820152602401610b73565b73ffffffffffffffffffffffffffffffffffffffff821661179c576040517fec442f050000000000000000000000000000000000000000000000000000000081525f6004820152602401610b73565b6113f2838383611fd4565b5f5473ffffffffffffffffffffffffffffffffffffffff163314610dd9576040517f118cdaa7000000000000000000000000000000000000000000000000000000008152336004820152602401610b73565b63ffffffff82165f81815260016020908152604091829020849055815192835282018390527f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b910160405180910390a15050565b6060805f6118a885602001356118628661217b565b61186f60a0890189613144565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152506121ee92505050565b90935090505f816118ba5760016118bd565b60025b90506118dd6118cf6020880188612be2565b826107a160808a018a613144565b60045490935073ffffffffffffffffffffffffffffffffffffffff168015611994576040517f043a78eb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82169063043a78eb90611953908890889060040161331b565b602060405180830381865afa15801561196e573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611992919061333f565b505b5050509250929050565b604080518082019091525f80825260208201527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ddc28c586040518060a001604052808863ffffffff168152602001611a0d8961144b565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b8152600401611a4292919061335a565b6040805180830381865afa158015611a5c573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a80919061342c565b95945050505050565b5f805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f5b8151811015611bce57611b2e828281518110611b1d57611b1d6130db565b602002602001015160400151611bfe565b818181518110611b4057611b406130db565b60200260200101516040015160035f848481518110611b6157611b616130db565b60200260200101515f015163ffffffff1663ffffffff1681526020019081526020015f205f848481518110611b9857611b986130db565b60200260200101516020015161ffff1661ffff1681526020019081526020015f209081611bc5919061348a565b50600101611aff565b507fbe4864a8e820971c0247f5992e2da559595f7bf076a21cb5928d443d2a13b67481604051610dbd91906135a1565b600281015161ffff8116600314610c3c57816040517f9a6d49cd000000000000000000000000000000000000000000000000000000008152600401610b739190612770565b611c4b6126e3565b604080518082019091525f80825260208201525f80611c8033604089013560608a0135611c7b60208c018c612be2565b612280565b915091505f5f611c90898461184d565b9092509050611cbc611ca560208b018b612be2565b8383611cb6368d90038d018d61364d565b8b6122a5565b60408051808201909152858152602080820186905282519298509096503391907f85496b760a4b7f8d66384b9df21b381f5d1b1e79f229a47aaf4c232edc2fe59a90611d0a908d018d612be2565b6040805163ffffffff909216825260208201899052810187905260600160405180910390a350505050935093915050565b73ffffffffffffffffffffffffffffffffffffffff8416611d8a576040517fe602df050000000000000000000000000000000000000000000000000000000081525f6004820152602401610b73565b73ffffffffffffffffffffffffffffffffffffffff8316611dd9576040517f94280d620000000000000000000000000000000000000000000000000000000081525f6004820152602401610b73565b73ffffffffffffffffffffffffffffffffffffffff8085165f90815260066020908152604080832093871683529290522082905580156116f8578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051611e7291815260200190565b60405180910390a350505050565b5f7f0000000000000000000000000000000000000000000000000000000000000000611eac81846136ab565b61095d91906136e3565b5f611ec46020828486613025565b610c23916136fa565b5f611edc602860208486613025565b611ee591613736565b60c01c9392505050565b5f61095d7f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff84166136e3565b5f73ffffffffffffffffffffffffffffffffffffffff8416611f465761dead93505b611f5084846123b8565b509092915050565b6060611f678260288186613025565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250929695505050505050565b606084848484604051602001611fbb949392919061379c565b6040516020818303038152906040529050949350505050565b73ffffffffffffffffffffffffffffffffffffffff831661200b578060075f8282546120009190613803565b909155506120bb9050565b73ffffffffffffffffffffffffffffffffffffffff83165f9081526005602052604090205481811015612090576040517fe450d38c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff851660048201526024810182905260448101839052606401610b73565b73ffffffffffffffffffffffffffffffffffffffff84165f9081526005602052604090209082900390555b73ffffffffffffffffffffffffffffffffffffffff82166120e45760078054829003905561210f565b73ffffffffffffffffffffffffffffffffffffffff82165f9081526005602052604090208054820190555b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161216e91815260200190565b60405180910390a3505050565b5f806121a77f0000000000000000000000000000000000000000000000000000000000000000846136ab565b905067ffffffffffffffff81111561095d576040517fe2ce941300000000000000000000000000000000000000000000000000000000815260048101829052602401610b73565b805160609015158061224f57848460405160200161223b92919091825260c01b7fffffffffffffffff00000000000000000000000000000000000000000000000016602082015260280190565b604051602081830303815290604052612276565b848433856040516020016122669493929190613816565b6040516020818303038152906040525b9150935093915050565b5f5f61228d8585856113f7565b909250905061229c8683612412565b94509492505050565b6122ad6126e3565b5f6122ba845f015161246c565b6020850151909150156122d4576122d484602001516124ac565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632637a450826040518060a001604052808b63ffffffff1681526020016123318c61144b565b81526020018a81526020018981526020015f8960200151111515815250866040518463ffffffff1660e01b815260040161236c92919061335a565b60806040518083038185885af1158015612388573d5f5f3e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906123ad9190613858565b979650505050505050565b73ffffffffffffffffffffffffffffffffffffffff8216612407576040517fec442f050000000000000000000000000000000000000000000000000000000081525f6004820152602401610b73565b610c3c5f8383611fd4565b73ffffffffffffffffffffffffffffffffffffffff8216612461576040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081525f6004820152602401610b73565b610c3c825f83611fd4565b5f8134146124a8576040517f9f704120000000000000000000000000000000000000000000000000000000008152346004820152602401610b73565b5090565b5f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663e4fe1d946040518163ffffffff1660e01b8152600401602060405180830381865afa158015612516573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061253a9190612dc2565b905073ffffffffffffffffffffffffffffffffffffffff8116612589576040517f5373352a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805133602482018190527f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff81811660448501526064808501889052855180860390910181526084909401909452602080840180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd000000000000000000000000000000000000000000000000000000001781528451610c3c9688169589936116f89388935f9283929091839182885af180612663576040513d5f823e3d81fd5b50505f513d9150811561267a578060011415612694565b73ffffffffffffffffffffffffffffffffffffffff84163b155b156116f8576040517f5274afe700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85166004820152602401610b73565b60405180606001604052805f81526020015f67ffffffffffffffff16815260200161271f60405180604001604052805f81526020015f81525090565b905290565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b602081525f610c236020830184612724565b73ffffffffffffffffffffffffffffffffffffffff811681146113ae575f5ffd5b5f5f604083850312156127b4575f5ffd5b82356127bf81612782565b946020939093013593505050565b5f60e082840312156127dd575f5ffd5b50919050565b5f602082840312156127f3575f5ffd5b813567ffffffffffffffff811115612809575f5ffd5b610df5848285016127cd565b83518152602080850151908201525f60a0820160a0604084015280855180835260c08501915060c08160051b8601019250602087015f5b828110156128b2577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff40878603018452815180518652602081015190506040602087015261289c6040870182612724565b955050602093840193919091019060010161284c565b5050855160608601525050602084015160808401529050610df5565b5f606082840312156127dd575f5ffd5b5f5f83601f8401126128ee575f5ffd5b50813567ffffffffffffffff811115612905575f5ffd5b60208301915083602082850101111561291c575f5ffd5b9250929050565b5f5f5f5f5f5f5f60e0888a031215612939575f5ffd5b61294389896128ce565b965060608801359550608088013567ffffffffffffffff811115612965575f5ffd5b6129718a828b016128de565b90965094505060a088013561298581612782565b925060c088013567ffffffffffffffff8111156129a0575f5ffd5b6129ac8a828b016128de565b989b979a50959850939692959293505050565b5f5f5f606084860312156129d1575f5ffd5b83356129dc81612782565b925060208401356129ec81612782565b929592945050506040919091013590565b803563ffffffff81168114612a10575f5ffd5b919050565b5f5f60408385031215612a26575f5ffd5b6127bf836129fd565b80151581146113ae575f5ffd5b5f5f60408385031215612a4d575f5ffd5b823567ffffffffffffffff811115612a63575f5ffd5b612a6f858286016127cd565b9250506020830135612a8081612a2f565b809150509250929050565b81518152602080830151908201526040810161095d565b803561ffff81168114612a10575f5ffd5b5f5f60408385031215612ac4575f5ffd5b612acd836129fd565b9150612adb60208401612aa2565b90509250929050565b5f60208284031215612af4575f5ffd5b8135610c2381612782565b5f5f5f5f60a08587031215612b12575f5ffd5b612b1c86866128ce565b9350606085013567ffffffffffffffff811115612b37575f5ffd5b612b43878288016128de565b9094509250506080850135612b5781612782565b939692955090935050565b5f5f83601f840112612b72575f5ffd5b50813567ffffffffffffffff811115612b89575f5ffd5b6020830191508360208260051b850101111561291c575f5ffd5b5f5f60208385031215612bb4575f5ffd5b823567ffffffffffffffff811115612bca575f5ffd5b612bd685828601612b62565b90969095509350505050565b5f60208284031215612bf2575f5ffd5b610c23826129fd565b5f5f5f5f60608587031215612c0e575f5ffd5b612c17856129fd565b9350612c2560208601612aa2565b9250604085013567ffffffffffffffff811115612c40575f5ffd5b612c4c878288016128de565b95989497509550505050565b5f5f5f8385036080811215612c6b575f5ffd5b843567ffffffffffffffff811115612c81575f5ffd5b612c8d878288016127cd565b94505060407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe082011215612cbf575f5ffd5b506020840191506060840135612cd481612782565b809150509250925092565b5f60c0820190508351825267ffffffffffffffff60208501511660208301526040840151612d1a604084018280518252602090810151910152565b5082516080830152602083015160a0830152610c23565b5f5f60408385031215612d42575f5ffd5b8235612d4d81612782565b91506020830135612a8081612782565b5f60608284031215612d6d575f5ffd5b610c2383836128ce565b600181811c90821680612d8b57607f821691505b6020821081036127dd577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60208284031215612dd2575f5ffd5b8151610c2381612782565b5f60208284031215612ded575f5ffd5b5051919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040516060810167ffffffffffffffff81118282101715612e4457612e44612df4565b60405290565b6040805190810167ffffffffffffffff81118282101715612e4457612e44612df4565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715612eb457612eb4612df4565b604052919050565b5f67ffffffffffffffff821115612ed557612ed5612df4565b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b5f67ffffffffffffffff831115612f1a57612f1a612df4565b8260051b612f2a60208201612e6d565b84815290830190602081019036831115612f42575f5ffd5b845b8381101561301b57803567ffffffffffffffff811115612f62575f5ffd5b86016060368290031215612f74575f5ffd5b612f7c612e21565b612f85826129fd565b8152612f9360208301612aa2565b6020820152604082013567ffffffffffffffff811115612fb1575f5ffd5b919091019036601f830112612fc4575f5ffd5b8135612fd7612fd282612ebc565b612e6d565b818152366020838601011115612feb575f5ffd5b816020850160208301375f6020838301015280604084015250508085525050602083019250602081019050612f44565b5095945050505050565b5f5f85851115613033575f5ffd5b8386111561303f575f5ffd5b5050820193919092039150565b5f81518060208401855e5f93019283525090919050565b5f61306e828661304c565b838582375f930192835250909392505050565b81835281816020850137505f602082840101525f60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b602081525f610df5602083018486613081565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f82357ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec183360301811261313a575f5ffd5b9190910192915050565b5f5f83357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112613177575f5ffd5b83018035915067ffffffffffffffff821115613191575f5ffd5b60200191503681900382131561291c575f5ffd5b67ffffffffffffffff811681146113ae575f5ffd5b63ffffffff6131c8896129fd565b168152602088810135908201525f60408901356131e4816131a5565b67ffffffffffffffff811660408401525087606083015260e0608083015261321060e083018789613081565b73ffffffffffffffffffffffffffffffffffffffff861660a084015282810360c084015261323f818587613081565b9a9950505050505050505050565b5f6020828403121561325d575f5ffd5b815167ffffffffffffffff811115613273575f5ffd5b8201601f81018413613283575f5ffd5b8051613291612fd282612ebc565b8181528560208385010111156132a5575f5ffd5b8160208401602083015e5f91810160200191909152949350505050565b5f602082840312156132d2575f5ffd5b8135610c23816131a5565b73ffffffffffffffffffffffffffffffffffffffff8516815283602082015261ffff83166040820152608060608201525f610c9a6080830184612724565b604081525f61332d6040830185612724565b8281036020840152611a808185612724565b5f6020828403121561334f575f5ffd5b8151610c2381612a2f565b6040815263ffffffff8351166040820152602083015160608201525f604084015160a0608084015261338f60e0840182612724565b905060608501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08483030160a08501526133ca8282612724565b60809690960151151560c085015250505073ffffffffffffffffffffffffffffffffffffffff9190911660209091015290565b5f6040828403121561340d575f5ffd5b613415612e4a565b825181526020928301519281019290925250919050565b5f6040828403121561343c575f5ffd5b610c2383836133fd565b601f8211156113f257805f5260205f20601f840160051c8101602085101561346b5750805b601f840160051c820191505b81811015611284575f8155600101613477565b815167ffffffffffffffff8111156134a4576134a4612df4565b6134b8816134b28454612d77565b84613446565b6020601f821160018114613509575f83156134d35750848201515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600385901b1c1916600184901b178455611284565b5f848152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08516915b828110156135565787850151825560209485019460019092019101613536565b508482101561359257868401517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b60f8161c191681555b50505050600190811b01905550565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b82811015613641577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0878603018452815163ffffffff815116865261ffff6020820151166020870152604081015190506060604087015261362b6060870182612724565b95505060209384019391909101906001016135c7565b50929695505050505050565b5f604082840312801561365e575f5ffd5b50613667612e4a565b823581526020928301359281019290925250919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f826136de577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b808202811582820484141761095d5761095d61367e565b8035602083101561095d577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff602084900360031b1b1692915050565b80357fffffffffffffffff0000000000000000000000000000000000000000000000008116906008841015613795577fffffffffffffffff000000000000000000000000000000000000000000000000808560080360031b1b82161691505b5092915050565b7fffffffffffffffff0000000000000000000000000000000000000000000000008560c01b1681527fffffffff000000000000000000000000000000000000000000000000000000008460e01b16600882015282600c8201525f610c9a602c83018461304c565b8082018082111561095d5761095d61367e565b8481527fffffffffffffffff0000000000000000000000000000000000000000000000008460c01b1660208201528260288201525f610c9a604883018461304c565b5f6080828403128015613869575f5ffd5b50613872612e21565b825181526020830151613884816131a5565b602082015261389684604085016133fd565b6040820152939250505056";
1613
1624
 
1614
1625
  type TownsConstructorParams =
1615
1626
  | [signer?: Signer]
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@towns-protocol/generated",
3
- "version": "0.0.430",
3
+ "version": "0.0.432",
4
4
  "type": "module",
5
5
  "scripts": {
6
- "build": "node ./scripts/prepare.js",
6
+ "build": "bun ./scripts/prepare.js",
7
7
  "build-types": "bash scripts/build-contract-types.sh",
8
- "make-config": "node ./scripts/make-config.js"
8
+ "make-config": "bun ./scripts/make-config.js"
9
9
  },
10
10
  "dependencies": {
11
11
  "@ethersproject/abi": "^5.8.0",
@@ -13,7 +13,7 @@
13
13
  "ethers": "^5.8.0"
14
14
  },
15
15
  "devDependencies": {
16
- "@towns-protocol/contracts": "^0.0.430",
16
+ "@towns-protocol/contracts": "^0.0.432",
17
17
  "@typechain/ethers-v5": "^11.1.2",
18
18
  "typechain": "^8.3.2"
19
19
  },
@@ -34,5 +34,5 @@
34
34
  "publishConfig": {
35
35
  "access": "public"
36
36
  },
37
- "gitHead": "200adfdd8222b53b62d2af9609ed04f3eb831584"
37
+ "gitHead": "aed1393cc61f669c852b2d244630e27ae27a5922"
38
38
  }
@@ -15,7 +15,7 @@ CONTRACT_INTERFACES="(IDiamond|IDiamondCut|IArchitect|Architect|ILegacyArchitect
15
15
 
16
16
  # Clean typings to avoid stale factories/interfaces lingering between runs
17
17
  rm -rf "$TYPINGS_DIR"
18
- yarn typechain --target=ethers-v5 "$CONTRACTS_DIR/out/**/?${CONTRACT_INTERFACES}.json" --out-dir "$TYPINGS_DIR"
18
+ bun run typechain --target=ethers-v5 "$CONTRACTS_DIR/out/**/?${CONTRACT_INTERFACES}.json" --out-dir "$TYPINGS_DIR"
19
19
 
20
20
  # Clean abis to avoid stale abi files lingering between runs
21
21
  rm -rf "$ABI_DIR"