0 txs
0 calls
constructor
No constructor.
functions
deposit
payablefunction deposit(address token, uint256 _amount, uint8 mode) payable returns (uint256 amount, uint256 _bdv, int96 stem)
safeBatchTransferFrom
nonpayablefunction safeBatchTransferFrom(address sender, address recipient, uint256[] depositIds, uint256[] amounts, bytes)
safeTransferFrom
nonpayablefunction safeTransferFrom(address sender, address recipient, uint256 depositId, uint256 amount, bytes)
transferDeposit
payablefunction transferDeposit(address sender, address recipient, address token, int96 stem, uint256 amount) payable returns (uint256 _bdv)
transferDeposits
payablefunction transferDeposits(address sender, address recipient, address token, int96[] stem, uint256[] amounts) payable returns (uint256[] bdvs)
updateSortedDepositIds
payablefunction updateSortedDepositIds(address account, address token, uint256[] sortedDepositIds) payable
withdrawDeposit
payablefunction withdrawDeposit(address token, int96 stem, uint256 amount, uint8 mode) payable
withdrawDeposits
payablefunction withdrawDeposits(address token, int96[] stems, uint256[] amounts, uint8 mode) payable
events
FarmerGerminatingStalkBalanceChanged
event FarmerGerminatingStalkBalanceChanged(address indexed account, int256 delta, uint8 germ)
InternalBalanceChanged
event InternalBalanceChanged(address indexed account, address indexed token, int256 delta)
RemoveDeposit
event RemoveDeposit(address indexed account, address indexed token, int96 stem, uint256 amount, uint256 bdv)
RemoveDeposits
event RemoveDeposits(address indexed account, address indexed token, int96[] stems, uint256[] amounts, uint256 amount, uint256[] bdvs)
StalkBalanceChanged
event StalkBalanceChanged(address indexed account, int256 delta, int256 deltaRoots)
TotalGerminatingBalanceChanged
event TotalGerminatingBalanceChanged(uint256 germinationSeason, address indexed token, int256 deltaAmount, int256 deltaBdv)
TotalGerminatingStalkChanged
event TotalGerminatingStalkChanged(uint256 germinationSeason, int256 deltaGerminatingStalk)
TransferBatch
event TransferBatch(address indexed operator, address indexed from, address indexed to, uint256[] ids, uint256[] values)
TransferSingle
event TransferSingle(address indexed operator, address indexed sender, address indexed recipient, uint256 depositId, uint256 amount)
errors
AddressEmptyCode
error AddressEmptyCode(address target)
AddressInsufficientBalance
error AddressInsufficientBalance(address account)
FailedInnerCall
error FailedInnerCall()
SafeCastOverflowedIntDowncast
error SafeCastOverflowedIntDowncast(uint8 bits, int256 value)
SafeCastOverflowedUintDowncast
error SafeCastOverflowedUintDowncast(uint8 bits, uint256 value)
SafeCastOverflowedUintToInt
error SafeCastOverflowedUintToInt(uint256 value)
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
creation bytecode
0x6080604052348015600e575f80fd5b50615daa8061001c5f395ff3fe60806040526004361061006a575f3560e01c8063081d77ba1461006e57806327e047f114610094578063297e6c69146100a95780632eb2c2d6146100bc578063c56411f6146100db578063e348f82b146100fb578063f19ed6be1461010e578063f242432a1461013f575b5f80fd5b61008161007c3660046150ba565b61015e565b6040519081526020015b60405180910390f35b6100a76100a2366004615166565b6103e3565b005b6100a76100b73660046151f1565b6106f8565b3480156100c7575f80fd5b506100a76100d636600461528e565b610ae9565b6100ee6100e9366004615344565b610e47565b60405161008b919061541e565b6100a7610109366004615430565b61131a565b61012161011c36600461547c565b61161d565b604080519384526020840192909252600b0b9082015260600161008b565b34801561014a575f80fd5b506100a76101593660046154be565b61199c565b60c4545f908161016c611c36565b90505f61017882611d65565b90505f8060010154604080516318160ddd60e01b815290516001600160a01b03909216916318160ddd916004808201926020929091908290030181865afa1580156101c5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101e99190615534565b600354909150600119016102185760405162461bcd60e51b815260040161020f9061554b565b60405180910390fd5b600260035561022a8a8a8a8a8a611e66565b60016003559450805f60010154604080516318160ddd60e01b815290516001600160a01b03909216916318160ddd916004808201926020929091908290030181865afa15801561027c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102a09190615534565b146102bd5760405162461bcd60e51b815260040161020f90615582565b505f6102c883611d65565b9050835f60c4015410156102ee5760405162461bcd60e51b815260040161020f906155af565b5f5b83518110156103525781818151811061030b5761030b6155e6565b6020026020010151838281518110610325576103256155e6565b60200260200101511461034a5760405162461bcd60e51b815260040161020f906155fa565b6001016102f0565b50505050505f610360611c36565b90505f8061036d83612114565b915091505f5b83518110156103d65782818151811061038e5761038e6155e6565b60200260200101518282815181106103a8576103a86155e6565b602002602001015110156103ce5760405162461bcd60e51b815260040161020f9061563e565b600101610373565b5050505095945050505050565b600154604080516318160ddd60e01b815290515f926001600160a01b0316916318160ddd9160048083019260209291908290030181865afa15801561042a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061044e9190615534565b9050865f61045a611c36565b90505f61046682611d65565b90508973efa4e6492966228a7af3d5d9045bd9c9e5dc72bf636b29cbfe61048b612514565b836040518363ffffffff1660e01b81526004016104a9929190615675565b5f6040518083038186803b1580156104bf575f80fd5b505af41580156104d1573d5f803e3d5ffd5b50506003546001190191506104fa90505760405162461bcd60e51b815260040161020f9061554b565b60026003555f61051561050b612514565b8d8d8d8d8d61255f565b905061052a8c82610524612514565b8a61265a565b505060016003555f61053b83611d65565b90505f5b83518110156105d557846001600160a01b0316848281518110610564576105646155e6565b60200260200101516001600160a01b031603156105cd5781818151811061058d5761058d6155e6565b60200260200101518382815181106105a7576105a76155e6565b602002602001015111156105cd5760405162461bcd60e51b815260040161020f9061568f565b60010161053f565b5050505050806105e25f90565b60010154604080516318160ddd60e01b815290516001600160a01b03909216916318160ddd916004808201926020929091908290030181865afa15801561062b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061064f9190615534565b1461066c5760405162461bcd60e51b815260040161020f90615582565b505f610676611c36565b90505f8061068383612114565b915091505f5b83518110156106ec578281815181106106a4576106a46155e6565b60200260200101518282815181106106be576106be6155e6565b602002602001015110156106e45760405162461bcd60e51b815260040161020f9061563e565b600101610689565b50505050505050505050565b600154604080516318160ddd60e01b815290515f926001600160a01b0316916318160ddd9160048083019260209291908290030181865afa15801561073f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107639190615534565b600354909150600119016107895760405162461bcd60e51b815260040161020f9061554b565b6002600355816107d35760405162461bcd60e51b8152602060048201526015602482015274115b5c1d1e4819195c1bdcda5d081251081b1a5cdd605a1b604482015260640161020f565b6001600160a01b038086165f908152602081815260408083209388168352601490930181528282208054845181840281018401909552808552929392909183018282801561083e57602002820191905f5260205f20905b81548152602001906001019080831161082a575b505050505090508051848490501461088a5760405162461bcd60e51b815260206004820152600f60248201526e098cadccee8d040dad2e6dac2e8c6d608b1b604482015260640161020f565b60016001605f1b03195f5b848110156109c3575f6108c28787848181106108b3576108b36155e6565b90506020020135606081901c91565b91505082600b0b81600b0b136109135760405162461bcd60e51b815260206004820152601660248201527511195c1bdcda5d0812511cc81b9bdd081cdbdc9d195960521b604482015260640161020f565b8092505f805b855181101561096b57858181518110610934576109346155e6565b602002602001015189898681811061094e5761094e6155e6565b9050602002013503610963576001915061096b565b600101610919565b50806109b95760405162461bcd60e51b815260206004820152601c60248201527f4944206e6f7420666f756e6420696e2063757272656e74206c69737400000000604482015260640161020f565b5050600101610895565b506109d0878787876126a3565b50506001600381905554604080516318160ddd60e01b8152905183926001600160a01b0316916318160ddd9160048083019260209291908290030181865afa158015610a1e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a429190615534565b14610a5f5760405162461bcd60e51b815260040161020f90615582565b505f610a69611c36565b90505f80610a7683612114565b915091505f5b8351811015610adf57828181518110610a9757610a976155e6565b6020026020010151828281518110610ab157610ab16155e6565b60200260200101511015610ad75760405162461bcd60e51b815260040161020f9061563e565b600101610a7c565b5050505050505050565b60c4545f610af5611c36565b90505f610b0182611d65565b90505f8060010154604080516318160ddd60e01b815290516001600160a01b03909216916318160ddd916004808201926020929091908290030181865afa158015610b4e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b729190615534565b60035490915060011901610b985760405162461bcd60e51b815260040161020f9061554b565b6002600355888714610c125760405162461bcd60e51b815260206004820152603b60248201527f53696c6f3a206465706f73697449447320616e6420616d6f756e74732061727260448201527f617973206d757374206265207468652073616d65206c656e6774680000000000606482015260840161020f565b6001600160a01b038b16610c385760405162461bcd60e51b815260040161020f906156e0565b5f805f5b8b811015610c8c57610c598d8d838181106108b3576108b36155e6565b9093509150610c838f8f85858f8f87818110610c7757610c776155e6565b90506020020135611e66565b50600101610c3c565b5050600160035550805f60010154604080516318160ddd60e01b815290516001600160a01b03909216916318160ddd916004808201926020929091908290030181865afa158015610cdf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d039190615534565b14610d205760405162461bcd60e51b815260040161020f90615582565b505f610d2b83611d65565b9050835f60c401541015610d515760405162461bcd60e51b815260040161020f906155af565b5f5b8351811015610db557818181518110610d6e57610d6e6155e6565b6020026020010151838281518110610d8857610d886155e6565b602002602001015114610dad5760405162461bcd60e51b815260040161020f906155fa565b600101610d53565b50505050505f610dc3611c36565b90505f80610dd083612114565b915091505f5b8351811015610e3957828181518110610df157610df16155e6565b6020026020010151828281518110610e0b57610e0b6155e6565b60200260200101511015610e315760405162461bcd60e51b815260040161020f9061563e565b600101610dd6565b505050505050505050505050565b60c4546060905f610e56611c36565b90505f610e6282611d65565b90505f8060010154604080516318160ddd60e01b815290516001600160a01b03909216916318160ddd916004808201926020929091908290030181865afa158015610eaf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ed39190615534565b60035490915060011901610ef95760405162461bcd60e51b815260040161020f9061554b565b600260035585610f4b5760405162461bcd60e51b815260206004820152601c60248201527f53696c6f3a20616d6f756e747320617272617920697320656d70747900000000604482015260640161020f565b5f805b87811015610ff2575f898983818110610f6957610f696155e6565b9050602002013511610fbd5760405162461bcd60e51b815260206004820152601a60248201527f53696c6f3a20616d6f756e7420696e2061727261792069732030000000000000604482015260640161020f565b610fe8898983818110610fd257610fd26155e6565b905060200201358361274b90919063ffffffff16565b9150600101610f4e565b50610ffb612514565b6001600160a01b03168d6001600160a01b0316146110845773efa4e6492966228a7af3d5d9045bd9c9e5dc72bf63d670bde08e611036612514565b8e856040518563ffffffff1660e01b81526004016110579493929190615725565b5f6040518083038186803b15801561106d575f80fd5b505af415801561107f573d5f803e3d5ffd5b505050505b73efa4e6492966228a7af3d5d9045bd9c9e5dc72bf636b29cbfe8e8d6040518363ffffffff1660e01b81526004016110bd929190615675565b5f6040518083038186803b1580156110d3575f80fd5b505af41580156110e5573d5f803e3d5ffd5b5050604051633594e5ff60e11b815273efa4e6492966228a7af3d5d9045bd9c9e5dc72bf9250636b29cbfe9150611122908f908f90600401615675565b5f6040518083038186803b158015611138575f80fd5b505af415801561114a573d5f803e3d5ffd5b5050505061115d8d8d8d8d8d8d8d61275f565b600160035595508190505f60010154604080516318160ddd60e01b815290516001600160a01b03909216916318160ddd916004808201926020929091908290030181865afa1580156111b1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111d59190615534565b146111f25760405162461bcd60e51b815260040161020f90615582565b505f6111fd83611d65565b9050835f60c4015410156112235760405162461bcd60e51b815260040161020f906155af565b5f5b835181101561128757818181518110611240576112406155e6565b602002602001015183828151811061125a5761125a6155e6565b60200260200101511461127f5760405162461bcd60e51b815260040161020f906155fa565b600101611225565b50505050505f611295611c36565b90505f806112a283612114565b915091505f5b835181101561130b578281815181106112c3576112c36155e6565b60200260200101518282815181106112dd576112dd6155e6565b602002602001015110156113035760405162461bcd60e51b815260040161020f9061563e565b6001016112a8565b50505050979650505050505050565b600154604080516318160ddd60e01b815290515f926001600160a01b0316916318160ddd9160048083019260209291908290030181865afa158015611361573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113859190615534565b9050845f611391611c36565b90505f61139d82611d65565b90508773efa4e6492966228a7af3d5d9045bd9c9e5dc72bf636b29cbfe6113c2612514565b836040518363ffffffff1660e01b81526004016113e0929190615675565b5f6040518083038186803b1580156113f6575f80fd5b505af4158015611408573d5f803e3d5ffd5b505060035460011901915061143190505760405162461bcd60e51b815260040161020f9061554b565b6002600355611449611441612514565b8a8a8a612c3d565b61145c8988611456612514565b8961265a565b5060016003555f61146c83611d65565b90505f5b835181101561150657846001600160a01b0316848281518110611495576114956155e6565b60200260200101516001600160a01b031603156114fe578181815181106114be576114be6155e6565b60200260200101518382815181106114d8576114d86155e6565b602002602001015111156114fe5760405162461bcd60e51b815260040161020f9061568f565b600101611470565b5050505050806115135f90565b60010154604080516318160ddd60e01b815290516001600160a01b03909216916318160ddd916004808201926020929091908290030181865afa15801561155c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115809190615534565b1461159d5760405162461bcd60e51b815260040161020f90615582565b505f6115a7611c36565b90505f806115b483612114565b915091505f5b8351811015610adf578281815181106115d5576115d56155e6565b60200260200101518282815181106115ef576115ef6155e6565b602002602001015110156116155760405162461bcd60e51b815260040161020f9061563e565b6001016115ba565b600154604080516318160ddd60e01b815290515f928392839283926001600160a01b0316916318160ddd9160048083019260209291908290030181865afa15801561166a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061168e9190615534565b60c4549091505f61169d611c36565b90505f6116a982611d65565b600354909150600119016116cf5760405162461bcd60e51b815260040161020f9061554b565b60026003558973efa4e6492966228a7af3d5d9045bd9c9e5dc72bf636b29cbfe6116f7612514565b836040518363ffffffff1660e01b8152600401611715929190615675565b5f6040518083038186803b15801561172b575f80fd5b505af415801561173d573d5f803e3d5ffd5b505050506117548b8b61174e612514565b8c612caa565b9750611768611761612514565b8c8a612e33565b600160035590975095505f905061177e83611d65565b9050835f60c4015410156117d45760405162461bcd60e51b815260206004820152601e60248201527f494e563a206e6f4f7574466c6f77205374616c6b206465637265617365640000604482015260640161020f565b5f5b8351811015611878578181815181106117f1576117f16155e6565b602002602001015183828151811061180b5761180b6155e6565b602002602001015111156118705760405162461bcd60e51b815260206004820152602660248201527f494e563a206e6f4f7574466c6f7720546f6b656e2062616c616e6365206465636044820152651c99585cd95960d21b606482015260840161020f565b6001016117d6565b5050505050806118855f90565b60010154604080516318160ddd60e01b815290516001600160a01b03909216916318160ddd916004808201926020929091908290030181865afa1580156118ce573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118f29190615534565b1461190f5760405162461bcd60e51b815260040161020f90615582565b505f611919611c36565b90505f8061192683612114565b915091505f5b835181101561198f57828181518110611947576119476155e6565b6020026020010151828281518110611961576119616155e6565b602002602001015110156119875760405162461bcd60e51b815260040161020f9061563e565b60010161192c565b5050505093509350939050565b60c4545f6119a8611c36565b90505f6119b482611d65565b90505f8060010154604080516318160ddd60e01b815290516001600160a01b03909216916318160ddd916004808201926020929091908290030181865afa158015611a01573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a259190615534565b60035490915060011901611a4b5760405162461bcd60e51b815260040161020f9061554b565b60026003556001600160a01b038916611a765760405162461bcd60e51b815260040161020f906156e0565b606088901c88611a898c8c84848d611e66565b5050600160035550805f60010154604080516318160ddd60e01b815290516001600160a01b03909216916318160ddd916004808201926020929091908290030181865afa158015611adc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b009190615534565b14611b1d5760405162461bcd60e51b815260040161020f90615582565b505f611b2883611d65565b9050835f60c401541015611b4e5760405162461bcd60e51b815260040161020f906155af565b5f5b8351811015611bb257818181518110611b6b57611b6b6155e6565b6020026020010151838281518110611b8557611b856155e6565b602002602001015114611baa5760405162461bcd60e51b815260040161020f906155fa565b600101611b50565b50505050505f611bc0611c36565b90505f80611bcd83612114565b915091505f5b83518110156106ec57828181518110611bee57611bee6155e6565b6020026020010151828281518110611c0857611c086155e6565b60200260200101511015611c2e5760405162461bcd60e51b815260040161020f9061563e565b600101611bd3565b60605f611c41612ef5565b90505f611c4c612ff6565b90505f81518351611c5d9190615763565b9050806001600160401b03811115611c7757611c77615776565b604051908082528060200260200182016040528015611ca0578160200160208202803683370190505b5093505f5b8351811015611cfa57838181518110611cc057611cc06155e6565b6020026020010151858281518110611cda57611cda6155e6565b6001600160a01b0390921660209283029190910190910152600101611ca5565b505f5b8251811015611d5e57828181518110611d1857611d186155e6565b602002602001015185828651611d2e9190615763565b81518110611d3e57611d3e6155e6565b6001600160a01b0390921660209283029190910190910152600101611cfd565b5050505090565b606081516001600160401b03811115611d8057611d80615776565b604051908082528060200260200182016040528015611da9578160200160208202803683370190505b5090505f5b8251811015611e6057828181518110611dc957611dc96155e6565b60200260200101516001600160a01b03166370a08231306040518263ffffffff1660e01b8152600401611dfc919061578a565b602060405180830381865afa158015611e17573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e3b9190615534565b828281518110611e4d57611e4d6155e6565b6020908102919091010152600101611dae565b50919050565b5f611e6f612514565b6001600160a01b0316866001600160a01b031614611ef85773efa4e6492966228a7af3d5d9045bd9c9e5dc72bf63d670bde087611eaa612514565b87866040518563ffffffff1660e01b8152600401611ecb9493929190615725565b5f6040518083038186803b158015611ee1575f80fd5b505af4158015611ef3573d5f803e3d5ffd5b505050505b604051633594e5ff60e11b815273efa4e6492966228a7af3d5d9045bd9c9e5dc72bf90636b29cbfe90611f319089908890600401615675565b5f6040518083038186803b158015611f47575f80fd5b505af4158015611f59573d5f803e3d5ffd5b5050604051633594e5ff60e11b815273efa4e6492966228a7af3d5d9045bd9c9e5dc72bf9250636b29cbfe9150611f969088908890600401615675565b5f6040518083038186803b158015611fac575f80fd5b505af4158015611fbe573d5f803e3d5ffd5b505050505f805f80611fd48a8989896001613062565b935093509350935073f2a0e7fb0e9b1189b14274418e4ac78ae449b4ed63e41ad52e8a8a8a8a8760016040518763ffffffff1660e01b815260040161201e969594939291906157b2565b5f6040518083038186803b158015612034575f80fd5b505af4158015612046573d5f803e3d5ffd5b5060029250612053915050565b8160028111156120655761206561579e565b036120835761207e8a8a612079878761274b565b6131a6565b6120a0565b61208f8a8a86846133f2565b82156120a0576120a08a8a856131a6565b886001600160a01b03168a6001600160a01b03166120bc612514565b6001600160a01b03167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f626120f08c8c61357e565b60408051918252602082018c90520160405180910390a45098975050505050505050565b6060805f83516001600160401b0381111561213157612131615776565b60405190808252806020026020018201604052801561215a578160200160208202803683370190505b50925083516001600160401b0381111561217657612176615776565b60405190808252806020026020018201604052801561219f578160200160208202803683370190505b5091505f5b845181101561250d5781600101601b015f8683815181106121c7576121c76155e6565b6020908102919091018101516001600160a01b031682528101919091526040015f908120549060ca840190600181526020019081526020015f205f878481518110612214576122146155e6565b6020908102919091018101516001600160a01b031682528101919091526040015f908120546001600160801b03169060ca8501908081526020019081526020015f205f888581518110612269576122696155e6565b6020908102919091018101516001600160a01b031682528101919091526040015f9081205488516001600160801b039091169160c78701918a90879081106122b3576122b36155e6565b6020908102919091018101516001600160a01b031682528101919091526040015f20546122e991906001600160801b0316615803565b6122f39190615803565b6001600160801b03166123069190615763565b848281518110612318576123186155e6565b6020908102919091010152600182015485516001600160a01b0390911690869083908110612348576123486155e6565b60200260200101516001600160a01b0316036123f4578160010160080154848281518110612378576123786155e6565b6020026020010181815161238c9190615763565b9052505f5b60088301548110156123f2575f818152602080850190526040902060018101546002909101546123c1919061582a565b8583815181106123d3576123d36155e6565b602002602001018181516123e79190615763565b905250600101612391565b505b81600101610101015f015f868381518110612411576124116155e6565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205484828151811061244b5761244b6155e6565b6020026020010181815161245f9190615763565b9052508451859082908110612476576124766155e6565b60200260200101516001600160a01b03166370a08231306040518263ffffffff1660e01b81526004016124a9919061578a565b602060405180830381865afa1580156124c4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124e89190615534565b8382815181106124fa576124fa6155e6565b60209081029190910101526001016121a4565b5050915091565b5f6125467f7efbaaac9214ca1879e26b4df38e29a72561affb741bba775ce66d5bb6a82a09546001600160a01b031690565b905060016001600160a01b0382161161255c5750335b90565b5f83821461257f5760405162461bcd60e51b815260040161020f9061583d565b5f61258e8888888888886135a0565b805151909150156125b8578051805160408201516020909201516125b8928b928b929091906139bd565b602081015151156125e3576020808201518051604082015191909201516125e3928b928b925f6139db565b6040810151511561260f5760408082015180519181015160209091015161260f928b928b9260016139db565b60608101511561262a57612627888260600151613a4a565b50505b60408101515160208201515182515161264e9291612648919061274b565b9061274b565b98975050505050505050565b821561269d5760018160018111156126745761267461579e565b0361268957612684828585613c10565b61269d565b61269d6001600160a01b0385168385613c45565b50505050565b5f805b82811015612711576001600160a01b038087165f9081526020848152604080832093891683526014909301905290812082916001909101908686848181106126f0576126f06155e6565b602090810292909201358352508101919091526040015f20556001016126a6565b506001600160a01b038086165f9081526020838152604080832093881683526014909301905220612743908484614fe5565b505050505050565b5f6127568284615763565b90505b92915050565b60608382146127805760405162461bcd60e51b815260040161020f9061583d565b61278861502a565b5f856001600160401b038111156127a1576127a1615776565b6040519080825280602002602001820160405280156127ca578160200160208202803683370190505b5090505f866001600160401b038111156127e6576127e6615776565b60405190808252806020026020018201604052801561280f578160200160208202803683370190505b5090505f61281c8a613ca9565b90505f5b88811015612b10575f6128598b8b8481811061283e5761283e6155e6565b90506020020160208101906128539190615884565b84613ce4565b90505f6128a68f8e8e8e87818110612873576128736155e6565b90506020020160208101906128889190615884565b8d8d8881811061289a5761289a6155e6565b90506020020135613d45565b905073f2a0e7fb0e9b1189b14274418e4ac78ae449b4ed63e41ad52e8f8f8f8f888181106128d6576128d66155e6565b90506020020160208101906128eb9190615884565b8e8e898181106128fd576128fd6155e6565b905060200201358660016040518763ffffffff1660e01b8152600401612928969594939291906157b2565b5f6040518083038186803b15801561293e575f80fd5b505af4158015612950573d5f803e3d5ffd5b505050505f6129928d8d8681811061296a5761296a6155e6565b905060200201602081019061297f9190615884565b866020015161298d8561407d565b6140b4565b90506129bb8b8b868181106129a9576129a96155e6565b8b51519260209091020135905061274b565b88515260028360028111156129d2576129d261579e565b03612a08578751604001516129e7908361274b565b8851604001528751602001516129fd908261274b565b885160200152612a95565b5f836002811115612a1b57612a1b61579e565b03612a5c57602088015160400151612a33908361274b565b6020808a0180516040019290925290510151612a4f908261274b565b6020808a01510152612a95565b6040808901510151612a6e908361274b565b6040808a018051909101919091525160200151612a8b908261274b565b6040890151602001525b81878581518110612aa857612aa86155e6565b602002602001018181525050612ae48e8e8e87818110612aca57612aca6155e6565b9050602002016020810190612adf9190615884565b61357e565b868581518110612af657612af66155e6565b602002602001018181525050505050806001019050612820565b5060405163d7787ee560e01b815273efa4e6492966228a7af3d5d9045bd9c9e5dc72bf9063d7787ee590612b4e908f908f908f908a9060040161589d565b5f6040518083038186803b158015612b64575f80fd5b505af4158015612b76573d5f803e3d5ffd5b505050508a6001600160a01b03168c6001600160a01b0316612b96612514565b6001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb858b8b604051612bd293929190615967565b60405180910390a48351516040516001600160a01b03808d1692908f16917f6008478fd0513693018a0ac8771ada053137941c0d833295a27629af7a3ab56b91612c25918e918e918e918e918c9061598c565b60405180910390a350909a9950505050505050505050565b5f805f80612c4e888888885f613062565b929650909450925090506002816002811115612c6c57612c6c61579e565b03612c8c57612c8788888785612c82898961274b565b6139bd565b610adf565b612c9a8888878588866139db565b8215610adf576106ec8884613a4a565b5f835f03612cb957505f612e2b565b5f826003811115612ccc57612ccc61579e565b14612d1857612cf28386866001866003811115612ceb57612ceb61579e565b14156140e9565b905080841480612d1357506003826003811115612d1157612d1161579e565b145b612e2b575b6040516370a0823160e01b81525f906001600160a01b038716906370a0823190612d4690309060040161578a565b602060405180830381865afa158015612d61573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612d859190615534565b9050612da88430612d96858961582a565b6001600160a01b038a16929190614199565b612e27612e2082886001600160a01b03166370a08231306040518263ffffffff1660e01b8152600401612ddb919061578a565b602060405180830381865afa158015612df6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612e1a9190615534565b906141d2565b839061274b565b9150505b949350505050565b5f805f73f2a0e7fb0e9b1189b14274418e4ac78ae449b4ed631ade41108787612e5b896141dd565b6040516001600160e01b031960e086901b1681526001600160a01b039384166004820152929091166024830152600b81900b60448301526064820188905294506084016040805180830381865af4158015612eb8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612edc9190615a02565b9093509050612eec86848361429a565b50935093915050565b60c9546060905f9081816001600160401b03811115612f1657612f16615776565b604051908082528060200260200182016040528015612f3f578160200160208202803683370190505b5093505f5b82811015612fec5760c98401805482908110612f6257612f626155e6565b5f91825260209091200154600160a01b900460ff1615612fe45760c98401805482908110612f9257612f926155e6565b5f918252602090912001546001600160a01b03168583612fb181615a33565b945081518110612fc357612fc36155e6565b60200260200101906001600160a01b031690816001600160a01b0316815250505b600101612f44565b5080845250505090565b60605f61300161446c565b90505f5b8151811015611e6057613030828281518110613023576130236155e6565b6020026020010151614563565b828281518110613042576130426155e6565b6001600160a01b0390921660209283029190910190910152600101613005565b5f808080805f6130728a8a6145f3565b90935090506130838b8b8b8b613d45565b6001600160a01b038b165f90815260c8840160205260409020549094506130ba908590600160481b900465ffffffffffff1661461c565b95506130ca898261298d8761407d565b94505f8760018111156130df576130df61579e565b03613143575f6001600160a01b038c166130f7612514565b6001600160a01b03167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6261312b8e8e61357e565b60408051918252602082018e90520160405180910390a45b60408051600b8b900b8152602081018a90529081018590526001600160a01b03808c1691908d16907f153f0425cb9f489d8ca1232a9a790fb1ee212c4d80bb8cf8c83b0f5b203bab1c9060600160405180910390a3505095509550955095915050565b6001600160a01b0383165f90815260208190526040812060010154819083146131fa5760c482015460c58301546131f59160019161264891906131ef908490612e1a908a61461c565b90614627565b613213565b6001600160a01b0385165f908152602083905260409020545b6001600160a01b0386165f9081526020849052604090206001015490915061323b90846141d2565b6001600160a01b0386165f90815260208490526040902060018101919091555461326590826141d2565b6001600160a01b0386165f818152602085905260409020919091555f80516020615d5583398151915261329785615a4b565b6132a084615a4b565b6040805192835260208301919091520160405180910390a26001600160a01b0385165f9081526020839052604090208054602c909101541115613359576001600160a01b0385165f9081526020839052604081208054602c90910154613305916141d2565b6001600160a01b038088165f908152602086905260408082208054602c9182015592891682529020015490915061333c908261274b565b6001600160a01b0386165f908152602085905260409020602c0155505b6001600160a01b0384165f9081526020839052604090206001015461337e908461274b565b6001600160a01b0385165f9081526020849052604090206001810191909155546133a8908261274b565b6001600160a01b0385165f818152602085815260409182902093909355805186815292830184905290915f80516020615d5583398151915291015b60405180910390a25050505050565b5f6133fc8361407d565b6001600160a01b0386165f908152602083905260408120601a01908460028111156134295761342961579e565b600281111561343a5761343a61579e565b815260208101919091526040015f90812080549091906134649084906001600160801b0316615a65565b92506101000a8154816001600160801b0302191690836001600160801b031602179055506134918361407d565b6001600160a01b0385165f908152602083905260408120601a01908460028111156134be576134be61579e565b60028111156134cf576134cf61579e565b815260208101919091526040015f90812080549091906134f99084906001600160801b0316615803565b92506101000a8154816001600160801b0302191690836001600160801b03160217905550846001600160a01b03165f80516020615d358339815191528461353f90615a4b565b8460405161354e929190615a99565b60405180910390a2836001600160a01b03165f80516020615d3583398151915284846040516133e3929190615a99565b6001600160601b031660609190911b6bffffffffffffffffffffffff19161790565b6135a861502a565b5f80856001600160401b038111156135c2576135c2615776565b6040519080825280602002602001820160405280156135eb578160200160208202803683370190505b5090505f866001600160401b0381111561360757613607615776565b604051908082528060200260200182016040528015613630578160200160208202803683370190505b5090505f61363d8a613ca9565b90505f5b8881101561382f575f61365f8b8b8481811061283e5761283e6155e6565b90505f6136798e8e8e8e87818110612873576128736155e6565b90508086848151811061368e5761368e6155e6565b6020026020010181815250506136b08d8d8d86818110612aca57612aca6155e6565b8584815181106136c2576136c26155e6565b6020026020010181815250505f6136e48d8d8681811061296a5761296a6155e6565b905060028360028111156136fa576136fa61579e565b0361375a5788516040015161370f908361274b565b895160400152885160200151613725908261274b565b8951602001526137528b8b86818110613740576137406155e6565b8c51519260209091020135905061274b565b895152613821565b5f83600281111561376d5761376d61579e565b036137c157602089015160400151613785908361274b565b60208a0151604001526137b68b8b868181106137a3576137a36155e6565b60208d810151519391020135905061274b565b60208a01515261380c565b6040808a015101516137d3908361274b565b6040808b015101526138058b8b868181106137f0576137f06155e6565b60408d0151519260209091020135905061274b565b60408a0151525b606089015161381b908261274b565b60608a01525b505050806001019050613641565b506001600160a01b038a165f90815260c885016020526040902054855151600160481b90910465ffffffffffff16901561388a5785516040015161388390613877908361461c565b8751602001519061274b565b8651602001525b602086015151156138b1576020860151604001516138a8908261461c565b60208088015101525b604086015151156138d85760408087015101516138ce908261461c565b6040870151602001525b505f6001600160a01b038c166138ec612514565b6001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb858b8b60405161392893929190615967565b60405180910390a4896001600160a01b03168b6001600160a01b03167f6008478fd0513693018a0ac8771ada053137941c0d833295a27629af7a3ab56b8b8b8b8b6139948c604001515f01516126488e602001515f01518f5f01515f015161274b90919063ffffffff16565b8a6040516139a79695949392919061598c565b60405180910390a3505050509695505050505050565b6139c8848484614632565b6139d28582613a4a565b50505050505050565b6139e785858584614716565b60405163100ca29360e01b815273efa4e6492966228a7af3d5d9045bd9c9e5dc72bf9063100ca29390613a2290899086908690600401615aad565b5f6040518083038186803b158015613a38575f80fd5b505af41580156106ec573d5f803e3d5ffd5b5f8080835f03613a60575f809250925050613c09565b60c481015460c5820154613a7991906131ef908761461c565b6001600160a01b0386165f90815260208390526040902054909350831115613ab6576001600160a01b0385165f9081526020829052604090205492505b60c4810154613ac590856141d2565b60c48201556001600160a01b0385165f90815260208290526040902060010154613aef90856141d2565b6001600160a01b0386165f9081526020839052604090206001015560c5810154613b1990846141d2565b60c58201556001600160a01b0385165f90815260208290526040902054613b4090846141d2565b6001600160a01b0386165f908152602083905260409020818155602c01541115613bc5576001600160a01b0385165f9081526020829052604081208054602c90910154613b8c916141d2565b6001600160a01b0387165f9081526020849052604090208054602c9091015560ed830154909150613bbd90826141d2565b60ed83015591505b6001600160a01b0385165f80516020615d55833981519152613be686615a4b565b613bef86615a4b565b6040805192835260208301919091520160405180910390a2505b9250929050565b5f613c1b8484614975565b90505f613c28828461274b565b9050613c3e858583613c39876149a1565b6149cd565b5050505050565b6040516001600160a01b03838116602483015260448201839052613ca491859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180516001600160e01b038381831617835250505050614ac9565b505050565b604080518082019091525f8082526020820152613cc5826141dd565b600b0b60208201819052613cda908390614b21565b600b0b8152919050565b5f815f0151600b0b83600b0b1215613cfe57506002612759565b8160200151600b0b83600b0b03613d2b57613d17614b3b565b613d22576001613d24565b5f5b9050612759565b613d33614b3b565b613d3d575f613d24565b506001612759565b5f805f613d52868661357e565b6001600160a01b0388165f908152602084815260408083208484526013019091529020546001600160801b03600160801b8204811695509192501680851115613ddd5760405162461bcd60e51b815260206004820152601c60248201527f53696c6f3a2043726174652062616c616e636520746f6f206c6f772e00000000604482015260640161020f565b80851015613faa575f613dfd6001612648846131ef83612e1a8c8c61461c565b90505f613e0a86836141d2565b90505f613e1784896141d2565b905080865f015f8d6001600160a01b03166001600160a01b031681526020019081526020015f206013015f8781526020019081526020015f205f015f6101000a8154816001600160801b0302191690836001600160801b0316021790555081865f015f8d6001600160a01b03166001600160a01b031681526020019081526020015f206013015f8781526020019081526020015f205f0160106101000a8154816001600160801b0302191690836001600160801b03160217905550613f4b83875f015f8e6001600160a01b03166001600160a01b031681526020019081526020015f206018015f8d6001600160a01b03166001600160a01b031681526020019081526020015f205f01600c9054906101000a90046001600160801b03166001600160801b0316614b5790919063ffffffff16565b6001600160a01b03808d165f90815260209889526040808220928e168252601890920190985290962080546001600160801b0397909716600160601b02600160601b600160e01b031990971696909617909555509350612e2b92505050565b8015613fdf576001600160a01b0388165f90815260208481526040808320858452601301909152812055613fdf888884614b62565b6001600160a01b038881165f90815260208581526040808320938b16835260189093019052205461402090600160601b90046001600160801b031685614b57565b6001600160a01b03808a165f90815260209586526040808220928b168252601890920190955290932080546001600160801b0394909416600160601b02600160601b600160e01b0319909416939093179092555050949350505050565b5f6001600160801b038211156140b0576040516306dfcc6560e41b8152608060048201526024810183905260440161020f565b5090565b5f6140df6001600160801b0383166140d0600b86900b87614c5f565b6001600160601b03169061461c565b90505b9392505050565b5f806140f58686614975565b905082806141035750838110155b61415e5760405162461bcd60e51b815260206004820152602660248201527f42616c616e63653a20496e73756666696369656e7420696e7465726e616c2062604482015265616c616e636560d01b606482015260840161020f565b6141688185614c6a565b91505f614175838361582a565b905061418f878783614186876149a1565b613c3990615a4b565b5050949350505050565b6040516001600160a01b03848116602483015283811660448301526064820183905261269d9186918216906323b872dd90608401613c72565b5f612756828461582a565b6001600160a01b0381165f90815260c86020526040812054819061426c906142329061421590600160781b900463ffffffff16614c7f565b60d48401546142299063ffffffff16614c7f565b600b0b90614c5f565b6001600160a01b0385165f90815260c88401602052604090205461426390600160201b900464ffffffffff16614c7f565b600b0b90614c91565b6001600160a01b0384165f90815260c8830160205260409020546140e29190600160981b9004600b0b615ad9565b6001600160a01b0383165f9081526020819052604081208390601a01828460028111156142c9576142c961579e565b60028111156142da576142da61579e565b815260208101919091526040015f90812080549091906143049084906001600160801b0316615803565b82546001600160801b039182166101009390930a92830291909202199091161790555060d481015463ffffffff168260028111156143445761434461579e565b61434c614c9c565b600281111561435d5761435d61579e565b0361439c5763ffffffff81165f90815260cb83016020526040812080546001600160801b0387169290614391908490615763565b909155506143e59050565b6001600160801b03841660cb83015f6143b6600185615b06565b63ffffffff1663ffffffff1681526020019081526020015f205f015f8282546143df9190615763565b90915550505b846001600160a01b03165f80516020615d35833981519152856001600160801b031685604051614416929190615a99565b60405180910390a26040805163ffffffff831681526001600160801b03861660208201527f3dd97efd4911891b98b28287922dd7351872382b548b549517e183ee6544c743910160405180910390a15050505050565b60c9546060905f9081816001600160401b0381111561448d5761448d615776565b6040519080825280602002602001820160405280156144b6578160200160208202803683370190505b5093505f5b82811015612fec5760c984018054829081106144d9576144d96155e6565b5f91825260209091200154600160b81b900460ff161561455b5760c98401805482908110614509576145096155e6565b5f918252602090912001546001600160a01b0316858361452881615a33565b94508151811061453a5761453a6155e6565b60200260200101906001600160a01b031690816001600160a01b0316815250505b6001016144bb565b5f80826001600160a01b0316639d63848a6040518163ffffffff1660e01b81526004015f60405180830381865afa1580156145a0573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526145c79190810190615b2e565b9050806145d382614cb4565b815181106145e3576145e36155e6565b6020026020010151915050919050565b5f805f6145ff85613ca9565b905061460b8482613ce4565b816020015192509250509250929050565b5f6127568284615be1565b5f6127568284615c0c565b5f61466861463f8461407d565b6001600160a01b0386165f90815260c7840160205260409020546001600160801b031690614b57565b6001600160a01b0385165f90815260c783016020526040902080546001600160801b0319166001600160801b03929092169190911790556146db6146ab8361407d565b6001600160a01b0386165f90815260c784016020526040902054600160801b90046001600160801b031690614b57565b6001600160a01b039094165f90815260c79091016020526040902080546001600160801b03948516600160801b029416939093179092555050565b5f8082600281111561472a5761472a61579e565b1415801561474a575060018260028111156147475761474761579e565b14155b156147915760405162461bcd60e51b8152602060048201526017602482015276696e76616c6964206765726d696e6174696f6e5369646560481b604482015260640161020f565b61479a8461407d565b60ca82015f8460028111156147b1576147b161579e565b60028111156147c2576147c261579e565b815260208082019290925260409081015f9081206001600160a01b038a168252909252812080549091906148009084906001600160801b0316615a65565b92506101000a8154816001600160801b0302191690836001600160801b0316021790555061482d8361407d565b60ca82015f8460028111156148445761484461579e565b60028111156148555761485561579e565b815260208082019290925260409081015f9081206001600160a01b038a1682529092529020805460109061489a908490600160801b90046001600160801b0316615a65565b92506101000a8154816001600160801b0302191690836001600160801b03160217905550846001600160a01b03167f99f70d4286db852579c7e4c4e3d46125005d363d480494fec6524240ade1e00e8360028111156148fb576148fb61579e565b614903614c9c565b60028111156149145761491461579e565b146149355760d48301546149309060019063ffffffff16615b06565b614941565b60d483015463ffffffff165b61494a87615a4b565b61495387615a4b565b6040805163ffffffff90941684526020840192909252908201526060016133e3565b6001600160a01b039182165f90815260208181526040808320939094168252601b909201909152205490565b5f6001600160ff1b038211156140b05760405163123baf0360e11b81526004810183905260240161020f565b5f80821215614a2357614a026149e283615a4b565b6001600160a01b0386165f908152601c84016020526040902054906141d2565b6001600160a01b0385165f908152601c830160205260409020819055614a64565b6001600160a01b0384165f908152601c82016020526040902054614a47908361274b565b6001600160a01b0385165f908152601c8301602052604090208190555b506001600160a01b038581165f81815260208481526040808320948916808452601b90950182529182902087905590518581527f18e1ea4139e68413d7d08aa752e71568e36b2c5bf940893314c2c5b01eaa0c42910160405180910390a35050505050565b5f614add6001600160a01b03841683614d45565b905080515f14158015614b01575080806020019051810190614aff9190615c1f565b155b15613ca45782604051635274afe760e01b815260040161020f919061578a565b5f61275682614b2f85614d52565b64ffffffffff16614c5f565b60d4545f908190614b519063ffffffff16614e5f565b91505090565b5f6127568284615a65565b6001600160a01b038381165f90815260208181526040808320938616835260149093018152828220848352600180820190925292822054835492939290918391614bac919061582a565b81548110614bbc57614bbc6155e6565b905f5260205f200154825f018281548110614bd957614bd96155e6565b905f5260205f20018190555080826001015f845f018481548110614bff57614bff6155e6565b905f5260205f20015481526020019081526020015f20819055505f19826001015f8681526020019081526020015f2081905550815f01805480614c4457614c44615c3e565b600190038181905f5260205f20015f90559055505050505050565b5f6127568284615c52565b5f818310614c785781612756565b5090919050565b5f612759614c8c836149a1565b614e8e565b5f6127568284615c7f565b5f614ca5614b3b565b614caf5750600190565b505f90565b5f805b8251821015614d0557828281518110614cd257614cd26155e6565b602090810291909101015160018201546001600160a01b03908116911614614cfa5750919050565b816001019150614cb7565b60405162461bcd60e51b81526020600482015260156024820152742737b716a132b0b7103737ba1034b7102bb2b6361760591b604482015260640161020f565b606061275683835f614ec2565b60d4546001600160a01b0382165f90815260c860205260408120549091829163ffffffff918216600160781b9091049091161015614db9576001600160a01b0383165f90815260c882016020526040902054600160201b900464ffffffffff169150611e60565b6001600160a01b0383165f90815260c88201602052604081206001015460040b908112614e1a576001600160a01b0384165f90815260c883016020526040902054614e13908290600160201b900464ffffffffff16615c9e565b9250614e58565b614e2381615cbc565b6001600160a01b0385165f90815260c884016020526040902054614e559190600160201b900464ffffffffff16615cde565b92505b5050919050565b5f614e7563ffffffff80841690600290614f5b16565b63ffffffff1615614e87576001612759565b5f92915050565b80600b81900b8114614ebd5760405163327269a760e01b8152606060048201526024810183905260440161020f565b919050565b606081471015614ee7573060405163cd78605960e01b815260040161020f919061578a565b5f80856001600160a01b03168486604051614f029190615cfc565b5f6040518083038185875af1925050503d805f8114614f3c576040519150601f19603f3d011682016040523d82523d5f602084013e614f41565b606091505b5091509150614f51868383614f66565b9695505050505050565b5f6127568284615d12565b606082614f7b57614f7682614fb9565b6140e2565b8151158015614f9257506001600160a01b0384163b155b15614fb25783604051639996b31560e01b815260040161020f919061578a565b50806140e2565b805115614fc95780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b50565b828054828255905f5260205f2090810192821561501e579160200282015b8281111561501e578235825591602001919060010190615003565b506140b0929150615063565b604051806080016040528061503d615077565b815260200161504a615077565b8152602001615057615077565b81526020015f81525090565b5b808211156140b0575f8155600101615064565b60405180606001604052805f81526020015f81526020015f81525090565b6001600160a01b0381168114614fe2575f80fd5b8035600b81900b8114614ebd575f80fd5b5f805f805f60a086880312156150ce575f80fd5b85356150d981615095565b945060208601356150e981615095565b935060408601356150f981615095565b9250615107606087016150a9565b949793965091946080013592915050565b5f8083601f840112615128575f80fd5b5081356001600160401b0381111561513e575f80fd5b6020830191508360208260051b8501011115613c09575f80fd5b803560028110614ebd575f80fd5b5f805f805f806080878903121561517b575f80fd5b863561518681615095565b955060208701356001600160401b03808211156151a1575f80fd5b6151ad8a838b01615118565b909750955060408901359150808211156151c5575f80fd5b506151d289828a01615118565b90945092506151e5905060608801615158565b90509295509295509295565b5f805f8060608587031215615204575f80fd5b843561520f81615095565b9350602085013561521f81615095565b925060408501356001600160401b03811115615239575f80fd5b61524587828801615118565b95989497509550505050565b5f8083601f840112615261575f80fd5b5081356001600160401b03811115615277575f80fd5b602083019150836020828501011115613c09575f80fd5b5f805f805f805f8060a0898b0312156152a5575f80fd5b88356152b081615095565b975060208901356152c081615095565b965060408901356001600160401b03808211156152db575f80fd5b6152e78c838d01615118565b909850965060608b01359150808211156152ff575f80fd5b61530b8c838d01615118565b909650945060808b0135915080821115615323575f80fd5b506153308b828c01615251565b999c989b5096995094979396929594505050565b5f805f805f805f60a0888a03121561535a575f80fd5b873561536581615095565b9650602088013561537581615095565b9550604088013561538581615095565b945060608801356001600160401b03808211156153a0575f80fd5b6153ac8b838c01615118565b909650945060808a01359150808211156153c4575f80fd5b506153d18a828b01615118565b989b979a50959850939692959293505050565b5f815180845260208085019450602084015f5b83811015615413578151875295820195908201906001016153f7565b509495945050505050565b602081525f61275660208301846153e4565b5f805f8060808587031215615443575f80fd5b843561544e81615095565b935061545c602086016150a9565b92506040850135915061547160608601615158565b905092959194509250565b5f805f6060848603121561548e575f80fd5b833561549981615095565b9250602084013591506040840135600481106154b3575f80fd5b809150509250925092565b5f805f805f8060a087890312156154d3575f80fd5b86356154de81615095565b955060208701356154ee81615095565b9450604087013593506060870135925060808701356001600160401b03811115615516575f80fd5b61552289828a01615251565b979a9699509497509295939492505050565b5f60208284031215615544575f80fd5b5051919050565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b6020808252601390820152721253958e8814dd5c1c1b1e4818da185b99d959606a1b604082015260600190565b6020808252601e908201527f494e563a206e6f4e6574466c6f77205374616c6b206465637265617365640000604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b60208082526024908201527f494e563a206e6f4e6574466c6f7720546f6b656e2062616c616e6365206368616040820152631b99d95960e21b606082015260800190565b6020808252601f908201527f494e563a20496e73756666696369656e7420746f6b656e2062616c616e636500604082015260600190565b6001600160a01b0392831681529116602082015260400190565b60208082526031908201527f494e563a206f6e654f7574466c6f77206d756c7469706c6520746f6b656e2062604082015270185b185b98d95cc8191958dc99585cd959607a1b606082015260800190565b60208082526025908201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604082015264647265737360d81b606082015260800190565b6001600160a01b039485168152928416602084015292166040820152606081019190915260800190565b634e487b7160e01b5f52601160045260245ffd5b808201808211156127595761275961574f565b634e487b7160e01b5f52604160045260245ffd5b6001600160a01b0391909116815260200190565b634e487b7160e01b5f52602160045260245ffd5b6001600160a01b03878116825286166020820152600b85900b6040820152606081018490526080810183905260c08101600283106157f2576157f261579e565b8260a0830152979650505050505050565b6001600160801b038181168382160190808211156158235761582361574f565b5092915050565b818103818111156127595761275961574f565b60208082526027908201527f53696c6f3a204372617465732c20616d6f756e7473206172652064696666206c60408201526632b733ba34399760c91b606082015260800190565b5f60208284031215615894575f80fd5b612756826150a9565b6001600160a01b03858116825284811660208301528316604082015281516101a08201906158e39060608401908051825260208082015190830152604090810151910152565b602083810151805160c08501528082015160e0850152604090810151610100850152808501518051610120860152918201516101408501520151610160830152606090920151610180909101529392505050565b8183525f6001600160fb1b0383111561594e575f80fd5b8260051b80836020870137939093016020019392505050565b604081525f61597960408301866153e4565b8281036020840152612e27818587615937565b608080825281018690525f8760a08301825b898110156159c6576159af836150a9565b600b0b82526020928301929091019060010161599e565b5083810360208501526159da81888a615937565b91505084604084015282810360608401526159f581856153e4565b9998505050505050505050565b5f8060408385031215615a13575f80fd5b82519150602083015160038110615a28575f80fd5b809150509250929050565b5f60018201615a4457615a4461574f565b5060010190565b5f600160ff1b8201615a5f57615a5f61574f565b505f0390565b6001600160801b038281168282160390808211156158235761582361574f565b60038110615a9557615a9561579e565b9052565b828152604081016140e26020830184615a85565b6001600160a01b03841681526001600160801b038316602082015260608101612e2b6040830184615a85565b600b81810b9083900b0160016001605f1b03811360016001605f1b0319821217156127595761275961574f565b63ffffffff8281168282160390808211156158235761582361574f565b8051614ebd81615095565b5f6020808385031215615b3f575f80fd5b82516001600160401b0380821115615b55575f80fd5b818501915085601f830112615b68575f80fd5b815181811115615b7a57615b7a615776565b8060051b604051601f19603f83011681018181108582111715615b9f57615b9f615776565b604052918252848201925083810185019188831115615bbc575f80fd5b938501935b8285101561264e57615bd285615b23565b84529385019392850192615bc1565b80820281158282048414176127595761275961574f565b634e487b7160e01b5f52601260045260245ffd5b5f82615c1a57615c1a615bf8565b500490565b5f60208284031215615c2f575f80fd5b815180151581146140e2575f80fd5b634e487b7160e01b5f52603160045260245ffd5b600b82810b9082900b0360016001605f1b0319811260016001605f1b03821317156127595761275961574f565b5f82600b0b82600b0b0280600b0b91508082146158235761582361574f565b64ffffffffff8281168282160390808211156158235761582361574f565b5f8160040b647fffffffff198103615cd657615cd661574f565b5f0392915050565b64ffffffffff8181168382160190808211156158235761582361574f565b5f82518060208501845e5f920191825250919050565b5f63ffffffff80841680615d2857615d28615bf8565b9216919091069291505056fe9c0c70ad39ba6959d6008b9bc651f15ce23613cc1c5ebb4c6ffba0e53a1ea705b2d61db64b8ad7535308d2111c78934bc32baf9b7cd3a2e58cba25730003cd58a26469706673582212204ed06ad43e19616c3391d8e97aa3f9e12c357074640ffea2d2d3986f23477d6364736f6c63430008190033