591.2k txs
2.63m calls
constructor
constructor()
functions
basesMap
viewfunction basesMap(uint8) view returns (address)
bound
viewfunction bound() view returns (uint64)
cloPrice
viewfunction cloPrice(address _base) view returns (uint256 refPrice, uint256 refTimestamp)
clOracles
viewfunction clOracles(address) view returns (address oracle, uint8 decimal, bool cloPreferred)
decimals
purefunction decimals(address) pure returns (uint8)
getBase
viewfunction getBase(uint8 _id) view returns (address)
infos
viewfunction infos(address) view returns (uint128 price, uint64 coeff, uint64 spread)
isAdmin
viewfunction isAdmin(address) view returns (bool)
isGuardian
viewfunction isGuardian(address) view returns (bool)
isWoFeasible
viewfunction isWoFeasible(address _base) view returns (bool)
owner
viewfunction owner() view returns (address)
price
viewfunction price(address _base) view returns (uint256 priceOut, bool feasible)
priceRanges
viewfunction priceRanges(address) view returns (uint128 min, uint128 max)
quoteToken
viewfunction quoteToken() view returns (address)
staleDuration
viewfunction staleDuration() view returns (uint256)
state
viewfunction state(address _base) view returns (tuple)
timestamp
viewfunction timestamp() view returns (uint256)
wooPP
viewfunction wooPP() view returns (address)
woState
viewfunction woState(address _base) view returns (tuple)
inCaseTokenGotStuck
nonpayablefunction inCaseTokenGotStuck(address stuckToken)
postPrice
nonpayablefunction postPrice(address _base, uint128 _price, uint256 _ts)
postPrice
nonpayablefunction postPrice(address _base, uint128 _price)
postPriceList
nonpayablefunction postPriceList(address[] _bases, uint128[] _prices, uint256 _ts)
postState
nonpayablefunction postState(address _base, uint128 _price, uint64 _spread, uint64 _coeff, uint256 _ts)
postState
nonpayablefunction postState(address _base, uint128 _price, uint64 _spread, uint64 _coeff)
postStateList
nonpayablefunction postStateList(address[] _bases, uint128[] _prices, uint64[] _spreads, uint64[] _coeffs, uint256 _ts)
renounceOwnership
nonpayablefunction renounceOwnership()
setAdmin
nonpayablefunction setAdmin(address _addr, bool _flag)
setBase
nonpayablefunction setBase(uint8 _id, address _base)
setBound
nonpayablefunction setBound(uint64 _bound)
setCloPreferred
nonpayablefunction setCloPreferred(address _token, bool _cloPreferred)
setCLOracle
nonpayablefunction setCLOracle(address _token, address _oracle, bool _cloPreferred)
setGuardian
nonpayablefunction setGuardian(address _addr, bool _flag)
setQuoteToken
nonpayablefunction setQuoteToken(address _quote, address _oracle)
setRange
nonpayablefunction setRange(address _base, uint128 _min, uint128 _max)
setStaleDuration
nonpayablefunction setStaleDuration(uint256 _staleDuration)
setWooPP
nonpayablefunction setWooPP(address _wooPP)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
errors
No errors.
creation bytecode
0x60806040523480156200001157600080fd5b506200001d3362000042565b61012c600655600780546001600160401b031916662386f26fc1000017905562000092565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b613c2e80620000a26000396000f3fe608060405234801561001057600080fd5b50600436106102925760003560e01c80638da5cb5b11610160578063c6ddb642116100d8578063d736ce7c1161008c578063e52d06ab11610071578063e52d06ab14610c6c578063f2030e7314610ca2578063f2fde38b14610d4757610292565b8063d736ce7c14610c2d578063e1a4e72a14610c5957610292565b8063cdf8bf90116100bd578063cdf8bf9014610b81578063d449a83214610bf4578063d5bade0714610c1a57610292565b8063c6ddb64214610ace578063cc6864b114610b7857610292565b8063aea910781161012f578063be4df7d611610114578063be4df7d614610a7b578063c16116d414610aa8578063c32025a414610abb57610292565b8063aea9107814610a3c578063b80777ea14610a6457610292565b80638da5cb5b146109e557806399235fd414610a035780639d152ee914610a16578063a4a2a8c514610a2957610292565b806331e658a51161020e5780635ab2566c116101c25780636e27fcd6116101a75780636e27fcd6146109b7578063715018a6146109ca57806371ea9205146109d257610292565b80635ab2566c146109915780635bc9f65d146109a457610292565b8063447f3843116101f3578063447f3843146109585780634a502f391461096b5780634b0bddd21461097e57610292565b806331e658a5146108dc57806337e257fd1461094557610292565b80631ffabeb81161026557806324d7806c1161024a57806324d7806c1461089357806328533a6d146108b65780632b8a1c5a146108c957610292565b80631ffabeb81461083b578063217a4b701461084e57610292565b80630925d4a3146107b35780630b7841f5146107c85780630c68ba21146107f55780631142e75314610828575b6000366060336102b760005473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1614806102e857503360009081526008602052604090205460ff165b6103395760405162461bcd60e51b815260206004820152601460248201527f576f6f7261636c6556325f323a202141646d696e00000000000000000000000060448201526064015b60405180910390fd5b81806103875760405162461bcd60e51b815260206004820152601760248201527f576f6f7261636c6556325f323a202163616c6c646174610000000000000000006044820152606401610330565b60008484600081811061039c5761039c613220565b919091013560f881901c925060fe1c9050603f82168115806103c157508160ff166002145b1561058a5760008060005b8360ff16811015610515576104328a8a6103e784600561327e565b6103f29060016132bb565b906103fe85600561327e565b6104099060016132bb565b6104149060016132bb565b92610421939291906132d3565b61042a916132fd565b60f81c610d5a565b925061049a8a8a61044484600561327e565b61044f9060016132bb565b61045a9060016132bb565b9061046685600561327e565b6104719060016132bb565b61047c9060056132bb565b92610489939291906132d3565b61049291613345565b60e01c610e0f565b91506104a68383610e39565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260016020526040902080547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff841617905561050e8161338b565b90506103cc565b5060ff84161561057d57888861052c8560056133c3565b6105379060016133ec565b60ff16906105468660056133c3565b6105519060016133ec565b61055c9060046133ec565b60ff169261056c939291906132d3565b61057591613345565b60e01c61057f565b425b600555506107a49050565b8160ff166001148061059f57508160ff166003145b1561075c5760008060008060005b8560ff168110156106e3576105df8c8c6105c884600961327e565b6105d39060016132bb565b906103fe85600961327e565b94506106138c8c6105f184600961327e565b6105fc9060016132bb565b6106079060016132bb565b9061046685600961327e565b935061067b8c8c61062584600961327e565b6106309060016132bb565b61063b9060056132bb565b9061064785600961327e565b6106529060016132bb565b61065d9060076132bb565b9261066a939291906132d3565b61067391613411565b60f01c61107b565b92506106c58c8c61068d84600961327e565b6106989060016132bb565b6106a39060076132bb565b906106af85600961327e565b6106ba9060016132bb565b61065d9060096132bb565b91506106d38585858561109d565b6106dc8161338b565b90506105ad565b508560ff1660011461074d578a8a6106fc8760096133c3565b6107079060016133ec565b60ff16906107168860096133c3565b6107219060016133ec565b61072c9060046133ec565b60ff169261073c939291906132d3565b61074591613345565b60e01c61074f565b425b600555506107a492505050565b60405162461bcd60e51b815260206004820152601160248201527f576f6f7261636c6556325f323a20216f700000000000000000000000000000006044820152606401610330565b50505050915050805190602001f35b6107c66107c13660046134a0565b611132565b005b6107db6107d63660046134dc565b611244565b604080519283526020830191909152015b60405180910390f35b6108186108033660046134dc565b60096020526000908152604090205460ff1681565b60405190151581526020016107ec565b6107c661083636600461350f565b611276565b6107c6610849366004613538565b6112b9565b60045461086e9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016107ec565b6108186108a13660046134dc565b60086020526000908152604090205460ff1681565b6107c66108c436600461356f565b6113c5565b6107c66108d7366004613538565b61147d565b6108ef6108ea3660046134dc565b6114db565b6040805182516fffffffffffffffffffffffffffffffff16815260208084015167ffffffffffffffff908116918301919091528383015116918101919091526060918201511515918101919091526080016107ec565b6108186109533660046134dc565b6115f9565b6107c66109663660046135b2565b611653565b6107c661097936600461365a565b611705565b6107c661098c366004613538565b611873565b61086e61099f366004613735565b610d5a565b6107c66109b23660046134dc565b6118d1565b6107c66109c5366004613752565b6119c1565b6107c6611b7d565b6107c66109e0366004613785565b611b91565b60005473ffffffffffffffffffffffffffffffffffffffff1661086e565b6107c6610a113660046137d9565b611c44565b6107c6610a243660046137f2565b611ce6565b6107c6610a37366004613866565b611f08565b610a4f610a4a3660046134dc565b6120ff565b604080519283529015156020830152016107ec565b610a6d60055481565b6040519081526020016107ec565b600754610a8f9067ffffffffffffffff1681565b60405167ffffffffffffffff90911681526020016107ec565b6108ef610ab63660046134dc565b6123a3565b6107c6610ac93660046138ad565b6124a8565b610b3f610adc3660046134dc565b6001602052600090815260409020546fffffffffffffffffffffffffffffffff81169067ffffffffffffffff7001000000000000000000000000000000008204811691780100000000000000000000000000000000000000000000000090041683565b604080516fffffffffffffffffffffffffffffffff909416845267ffffffffffffffff92831660208501529116908201526060016107ec565b610a6d60065481565b610bcb610b8f3660046134dc565b6003602052600090815260409020546fffffffffffffffffffffffffffffffff8082169170010000000000000000000000000000000090041682565b604080516fffffffffffffffffffffffffffffffff9384168152929091166020830152016107ec565b610c08610c023660046134dc565b50600890565b60405160ff90911681526020016107ec565b6107c6610c283660046138cb565b61260b565b60075461086e9068010000000000000000900473ffffffffffffffffffffffffffffffffffffffff1681565b6107c6610c673660046134dc565b612731565b61086e610c7a366004613735565b600a6020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff1681565b610d11610cb03660046134dc565b60026020526000908152604090205473ffffffffffffffffffffffffffffffffffffffff81169060ff740100000000000000000000000000000000000000008204811691750100000000000000000000000000000000000000000090041683565b6040805173ffffffffffffffffffffffffffffffffffffffff909416845260ff90921660208401521515908201526060016107ec565b6107c6610d553660046134dc565b6128e6565b60408051606081018252734200000000000000000000000000000000000006815273d9aaec86b65d86f6a7b5b1b0c42ffa531710b6ca602082015273833589fcd6edb6e08f4c7c32d4f71b54bda0291391810191909152600090600360ff841610610ded5760ff83166000908152600a602052604090205473ffffffffffffffffffffffffffffffffffffffff16610e08565b808360ff1660038110610e0257610e02613220565b60200201515b9392505050565b6000610e1f601f8316600a613a0d565b610e33906307ffffff600585901c1661327e565b92915050565b73ffffffffffffffffffffffffffffffffffffffff821660009081526001602052604090205467ffffffffffffffff7801000000000000000000000000000000000000000000000000820416906fffffffffffffffffffffffffffffffff16801580610eb557506fffffffffffffffffffffffffffffffff8316155b80610ed25750670de0b6b3a76400008267ffffffffffffffff1610155b15610edd5750505050565b6000816fffffffffffffffffffffffffffffffff16846fffffffffffffffffffffffffffffffff161015610f115781610f13565b835b6fffffffffffffffffffffffffffffffff1690506000826fffffffffffffffffffffffffffffffff16856fffffffffffffffffffffffffffffffff161115610f5b5782610f5d565b845b6fffffffffffffffffffffffffffffffff1690506000610f8f67ffffffffffffffff8616670de0b6b3a7640000613a1f565b8383610fa3670de0b6b3a76400008061327e565b610fad919061327e565b610fb79190613a36565b610fc19190613a36565b9050670de0b6b3a7640000811015611072576000610fe782670de0b6b3a7640000613a1f565b90508567ffffffffffffffff168167ffffffffffffffff1611156110705773ffffffffffffffffffffffffffffffffffffffff88166000908152600160205260409020805477ffffffffffffffffffffffffffffffffffffffffffffffff16780100000000000000000000000000000000000000000000000067ffffffffffffffff8416021790555b505b50505050505050565b600061108b601f8316600a613a71565b610e33906107ff600585901c1661327e565b73ffffffffffffffffffffffffffffffffffffffff841660009081526001602052604090206110cd858585612980565b805467ffffffffffffffff909216700100000000000000000000000000000000027fffffffffffffffff0000000000000000000000000000000000000000000000009092166fffffffffffffffffffffffffffffffff90941693909317179091555050565b3361115260005473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff16148061118357503360009081526008602052604090205460ff165b6111cf5760405162461bcd60e51b815260206004820152601460248201527f576f6f7261636c6556325f323a202141646d696e0000000000000000000000006044820152606401610330565b6111d98383610e39565b73ffffffffffffffffffffffffffffffffffffffff909216600090815260016020526040902080546fffffffffffffffffffffffffffffffff9092167fffffffffffffffffffffffffffffffff00000000000000000000000000000000909216919091179055600555565b600454600090819061126d90849073ffffffffffffffffffffffffffffffffffffffff16612d12565b91509150915091565b61127e612f1f565b600780547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff92909216919091179055565b336112d960005473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff16148061130a57503360009081526008602052604090205460ff165b6113565760405162461bcd60e51b815260206004820152601460248201527f576f6f7261636c6556325f323a202141646d696e0000000000000000000000006044820152606401610330565b73ffffffffffffffffffffffffffffffffffffffff909116600090815260026020526040902080549115157501000000000000000000000000000000000000000000027fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff909216919091179055565b3360009081526009602052604090205460ff166114245760405162461bcd60e51b815260206004820152601760248201527f576f6f7261636c6556325f323a2021477561726469616e0000000000000000006044820152606401610330565b73ffffffffffffffffffffffffffffffffffffffff90921660009081526003602052604090206fffffffffffffffffffffffffffffffff9283167001000000000000000000000000000000000292909116919091179055565b611485612f1f565b73ffffffffffffffffffffffffffffffffffffffff91909116600090815260096020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b60408051608081018252600080825260208201819052918101829052606081019190915273ffffffffffffffffffffffffffffffffffffffff82166000908152600160209081526040808320815160608101835290546fffffffffffffffffffffffffffffffff8116825267ffffffffffffffff70010000000000000000000000000000000082048116948301949094527801000000000000000000000000000000000000000000000000900490921690820152908061159a856120ff565b915091506040518060800160405280836fffffffffffffffffffffffffffffffff168152602001846040015167ffffffffffffffff168152602001846020015167ffffffffffffffff1681526020018215158152509350505050919050565b73ffffffffffffffffffffffffffffffffffffffff81166000908152600160205260408120546fffffffffffffffffffffffffffffffff1615801590610e33575060065460055461164a91906132bb565b42111592915050565b3361167360005473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1614806116a457503360009081526008602052604090205460ff165b6116f05760405162461bcd60e51b815260206004820152601460248201527f576f6f7261636c6556325f323a202141646d696e0000000000000000000000006044820152606401610330565b6116fc8585858561109d565b60055550505050565b3361172560005473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff16148061175657503360009081526008602052604090205460ff165b6117a25760405162461bcd60e51b815260206004820152601460248201527f576f6f7261636c6556325f323a202141646d696e0000000000000000000000006044820152606401610330565b8760005b81811015611864576118528b8b838181106117c3576117c3613220565b90506020020160208101906117d891906134dc565b8a8a848181106117ea576117ea613220565b90506020020160208101906117ff9190613a81565b89898581811061181157611811613220565b9050602002016020810190611826919061350f565b88888681811061183857611838613220565b905060200201602081019061184d919061350f565b61109d565b8061185c8161338b565b9150506117a6565b50506005555050505050505050565b61187b612f1f565b73ffffffffffffffffffffffffffffffffffffffff91909116600090815260086020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055565b336118f160005473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff16148061192257503360009081526008602052604090205460ff165b61196e5760405162461bcd60e51b815260206004820152601460248201527f576f6f7261636c6556325f323a202141646d696e0000000000000000000000006044820152606401610330565b6007805473ffffffffffffffffffffffffffffffffffffffff90921668010000000000000000027fffffffff0000000000000000000000000000000000000000ffffffffffffffff909216919091179055565b336119e160005473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff161480611a1257503360009081526008602052604090205460ff165b611a5e5760405162461bcd60e51b815260206004820152601460248201527f576f6f7261636c6556325f323a202141646d696e0000000000000000000000006044820152606401610330565b6004805473ffffffffffffffffffffffffffffffffffffffff8085167fffffffffffffffffffffffff0000000000000000000000000000000000000000928316811784556000908152600260209081526040918290208054938716939094168317845581517f313ce56700000000000000000000000000000000000000000000000000000000815291519394929363313ce56793838101938290030181865afa158015611b0f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b339190613a9c565b815460ff9190911674010000000000000000000000000000000000000000027fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff9091161790555050565b611b85612f1f565b611b8f6000612f86565b565b33611bb160005473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff161480611be257503360009081526008602052604090205460ff165b611c2e5760405162461bcd60e51b815260206004820152601460248201527f576f6f7261636c6556325f323a202141646d696e0000000000000000000000006044820152606401610330565b611c3a8484848461109d565b5050426005555050565b33611c6460005473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff161480611c9557503360009081526008602052604090205460ff165b611ce15760405162461bcd60e51b815260206004820152601460248201527f576f6f7261636c6556325f323a202141646d696e0000000000000000000000006044820152606401610330565b600655565b33611d0660005473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff161480611d3757503360009081526008602052604090205460ff165b611d835760405162461bcd60e51b815260206004820152601460248201527f576f6f7261636c6556325f323a202141646d696e0000000000000000000000006044820152606401610330565b83828114611dd35760405162461bcd60e51b815260206004820152601c60248201527f576f6f7261636c6556325f323a206c656e6774685f494e56414c4944000000006044820152606401610330565b60005b81811015611efd57611e34878783818110611df357611df3613220565b9050602002016020810190611e0891906134dc565b868684818110611e1a57611e1a613220565b9050602002016020810190611e2f9190613a81565b610e39565b848482818110611e4657611e46613220565b9050602002016020810190611e5b9190613a81565b60016000898985818110611e7157611e71613220565b9050602002016020810190611e8691906134dc565b73ffffffffffffffffffffffffffffffffffffffff168152602081019190915260400160002080547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff9290921691909117905580611ef58161338b565b915050611dd6565b505060055550505050565b33611f2860005473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff161480611f5957503360009081526008602052604090205460ff165b611fa55760405162461bcd60e51b815260206004820152601460248201527f576f6f7261636c6556325f323a202141646d696e0000000000000000000000006044820152606401610330565b73ffffffffffffffffffffffffffffffffffffffff83811660009081526002602090815260409182902080547fffffffffffffffffffffffff000000000000000000000000000000000000000016938616938417815582517f313ce567000000000000000000000000000000000000000000000000000000008152925190939263313ce5679260048083019391928290030181865afa15801561204c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120709190613a9c565b81547fffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000060ff92909216919091027fffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffff16177501000000000000000000000000000000000000000000921515929092029190911790555050565b73ffffffffffffffffffffffffffffffffffffffff808216600090815260016020526040812054600554600454929384936fffffffffffffffffffffffffffffffff90931692849161215391889116612d12565b50905060008315801590612173575060065461216f90846132bb565b4211155b90506000821580159061220e57506007548590670de0b6b3a7640000906121a49067ffffffffffffffff1682613ab9565b6121b89067ffffffffffffffff168661327e565b6121c29190613a36565b1115801561220e5750600754670de0b6b3a7640000906121ec9067ffffffffffffffff1682613ae2565b6122009067ffffffffffffffff168561327e565b61220a9190613a36565b8511155b9050811561222157849650809550612278565b73ffffffffffffffffffffffffffffffffffffffff88166000908152600260205260409020547501000000000000000000000000000000000000000000900460ff1661226e576000612270565b825b965086151595505b85156123995773ffffffffffffffffffffffffffffffffffffffff88166000908152600360209081526040918290208251808401909352546fffffffffffffffffffffffffffffffff808216808552700100000000000000000000000000000000909204169183019190915288116123325760405162461bcd60e51b815260206004820152601260248201527f576f6f7261636c6556325f323a20216d696e00000000000000000000000000006044820152606401610330565b80602001516fffffffffffffffffffffffffffffffff1688106123975760405162461bcd60e51b815260206004820152601260248201527f576f6f7261636c6556325f323a20216d617800000000000000000000000000006044820152606401610330565b505b5050505050915091565b604080516080808201835260008083526020808401829052838501829052606080850183905273ffffffffffffffffffffffffffffffffffffffff8716835260018252918590208551808401875290546fffffffffffffffffffffffffffffffff808216835267ffffffffffffffff7001000000000000000000000000000000008304811684860190815278010000000000000000000000000000000000000000000000009093048116848a0190815289519788018a5284518316885251811694870194909452905190921695840195909552845193949391830191161580159061249d575060065460055461249991906132bb565b4211155b151590529392505050565b336124c860005473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff1614806124f957503360009081526008602052604090205460ff165b6125455760405162461bcd60e51b815260206004820152601460248201527f576f6f7261636c6556325f323a202141646d696e0000000000000000000000006044820152606401610330565b600061255083610d5a565b73ffffffffffffffffffffffffffffffffffffffff16146125b35760405162461bcd60e51b815260206004820152601d60248201527f576f6f7261636c6556325f323a202169645f5345545f414c52454144590000006044820152606401610330565b60ff919091166000908152600a6020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909216919091179055565b3361262b60005473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff16148061265c57503360009081526008602052604090205460ff165b6126a85760405162461bcd60e51b815260206004820152601460248201527f576f6f7261636c6556325f323a202141646d696e0000000000000000000000006044820152606401610330565b6126b28282610e39565b73ffffffffffffffffffffffffffffffffffffffff828116600090815260016020526040902080547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff841617905560075468010000000000000000900416331461272d57426005555b5050565b3361275160005473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff16148061278257503360009081526008602052604090205460ff165b6127ce5760405162461bcd60e51b815260206004820152601460248201527f576f6f7261636c6556325f323a202141646d696e0000000000000000000000006044820152606401610330565b73ffffffffffffffffffffffffffffffffffffffff811673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee0361282a5761282761282160005473ffffffffffffffffffffffffffffffffffffffff1690565b47612ffb565b50565b6040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015260009073ffffffffffffffffffffffffffffffffffffffff8316906370a0823190602401602060405180830381865afa158015612897573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128bb9190613b0e565b905061272d826128e060005473ffffffffffffffffffffffffffffffffffffffff1690565b836130ca565b6128ee612f1f565b73ffffffffffffffffffffffffffffffffffffffff81166129775760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610330565b61282781612f86565b670de0b6b3a76400008167ffffffffffffffff16106129e15760405162461bcd60e51b815260206004820152600860248201527f215f7370726561640000000000000000000000000000000000000000000000006044820152606401610330565b73ffffffffffffffffffffffffffffffffffffffff831660009081526001602052604090205467ffffffffffffffff7801000000000000000000000000000000000000000000000000820416906fffffffffffffffffffffffffffffffff16801580612a5d57506fffffffffffffffffffffffffffffffff8416155b80612a7a5750670de0b6b3a76400008267ffffffffffffffff1610155b15612af657505073ffffffffffffffffffffffffffffffffffffffff9092166000908152600160205260409020805467ffffffffffffffff90931678010000000000000000000000000000000000000000000000000277ffffffffffffffffffffffffffffffffffffffffffffffff9093169290921790915550565b6000816fffffffffffffffffffffffffffffffff16856fffffffffffffffffffffffffffffffff161015612b2a5781612b2c565b845b6fffffffffffffffffffffffffffffffff1690506000826fffffffffffffffffffffffffffffffff16866fffffffffffffffffffffffffffffffff161115612b745782612b76565b855b6fffffffffffffffffffffffffffffffff1690506000612ba867ffffffffffffffff8616670de0b6b3a7640000613a1f565b8383612bbc670de0b6b3a76400008061327e565b612bc6919061327e565b612bd09190613a36565b612bda9190613a36565b9050670de0b6b3a7640000811015612c9c576000612c0082670de0b6b3a7640000613a1f565b90508667ffffffffffffffff168167ffffffffffffffff1611612c235786612c25565b805b73ffffffffffffffffffffffffffffffffffffffff8a166000908152600160205260409020805467ffffffffffffffff9290921678010000000000000000000000000000000000000000000000000277ffffffffffffffffffffffffffffffffffffffffffffffff90921691909117905550611070565b73ffffffffffffffffffffffffffffffffffffffff88166000908152600160205260409020805467ffffffffffffffff881678010000000000000000000000000000000000000000000000000277ffffffffffffffffffffffffffffffffffffffffffffffff9091161790555050505050505050565b73ffffffffffffffffffffffffffffffffffffffff808316600090815260026020526040812054909182911680612d8b5760405162461bcd60e51b815260206004820152601560248201527f576f6f7261636c6556325f323a20216f7261636c6500000000000000000000006044820152606401610330565b73ffffffffffffffffffffffffffffffffffffffff8481166000908152600260205260408082205481517ffeaf968c0000000000000000000000000000000000000000000000000000000081529151818516947401000000000000000000000000000000000000000090920460ff169392839287169163feaf968c9160048082019260a0929091908290030181865afa158015612e2c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e509190613b41565b509350509250506000808573ffffffffffffffffffffffffffffffffffffffff1663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa158015612ea5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ec99190613b41565b509194509092508591508390506000612ee388600a613b91565b905081612ef0828561327e565b612efa9190613a36565b9b5083861015612f0a5785612f0c565b835b9a50505050505050505050509250929050565b60005473ffffffffffffffffffffffffffffffffffffffff163314611b8f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610330565b6000805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6040805160008082526020820190925273ffffffffffffffffffffffffffffffffffffffff84169083906040516130329190613ba0565b60006040518083038185875af1925050503d806000811461306f576040519150601f19603f3d011682016040523d82523d6000602084013e613074565b606091505b50509050806130c55760405162461bcd60e51b815260206004820152600360248201527f53544500000000000000000000000000000000000000000000000000000000006044820152606401610330565b505050565b6040805173ffffffffffffffffffffffffffffffffffffffff8481166024830152604480830185905283518084039091018152606490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb0000000000000000000000000000000000000000000000000000000017905291516000928392908716916131619190613ba0565b6000604051808303816000865af19150503d806000811461319e576040519150601f19603f3d011682016040523d82523d6000602084013e6131a3565b606091505b50915091508180156131cd5750805115806131cd5750808060200190518101906131cd9190613bdb565b6132195760405162461bcd60e51b815260206004820152600260248201527f53540000000000000000000000000000000000000000000000000000000000006044820152606401610330565b5050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156132b6576132b661324f565b500290565b600082198211156132ce576132ce61324f565b500190565b600080858511156132e357600080fd5b838611156132f057600080fd5b5050820193919092039150565b7fff00000000000000000000000000000000000000000000000000000000000000813581811691600185101561333d5780818660010360031b1b83161692505b505092915050565b7fffffffff00000000000000000000000000000000000000000000000000000000813581811691600485101561333d5760049490940360031b84901b1690921692915050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036133bc576133bc61324f565b5060010190565b600060ff821660ff84168160ff04811182151516156133e4576133e461324f565b029392505050565b600060ff821660ff84168060ff038211156134095761340961324f565b019392505050565b7fffff000000000000000000000000000000000000000000000000000000000000813581811691600285101561333d5760029490940360031b84901b1690921692915050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461347b57600080fd5b919050565b80356fffffffffffffffffffffffffffffffff8116811461347b57600080fd5b6000806000606084860312156134b557600080fd5b6134be84613457565b92506134cc60208501613480565b9150604084013590509250925092565b6000602082840312156134ee57600080fd5b610e0882613457565b803567ffffffffffffffff8116811461347b57600080fd5b60006020828403121561352157600080fd5b610e08826134f7565b801515811461282757600080fd5b6000806040838503121561354b57600080fd5b61355483613457565b915060208301356135648161352a565b809150509250929050565b60008060006060848603121561358457600080fd5b61358d84613457565b925061359b60208501613480565b91506135a960408501613480565b90509250925092565b600080600080600060a086880312156135ca57600080fd5b6135d386613457565b94506135e160208701613480565b93506135ef604087016134f7565b92506135fd606087016134f7565b949793965091946080013592915050565b60008083601f84011261362057600080fd5b50813567ffffffffffffffff81111561363857600080fd5b6020830191508360208260051b850101111561365357600080fd5b9250929050565b600080600080600080600080600060a08a8c03121561367857600080fd5b893567ffffffffffffffff8082111561369057600080fd5b61369c8d838e0161360e565b909b50995060208c01359150808211156136b557600080fd5b6136c18d838e0161360e565b909950975060408c01359150808211156136da57600080fd5b6136e68d838e0161360e565b909750955060608c01359150808211156136ff57600080fd5b5061370c8c828d0161360e565b9a9d999c50979a9699959894979660800135949350505050565b60ff8116811461282757600080fd5b60006020828403121561374757600080fd5b8135610e0881613726565b6000806040838503121561376557600080fd5b61376e83613457565b915061377c60208401613457565b90509250929050565b6000806000806080858703121561379b57600080fd5b6137a485613457565b93506137b260208601613480565b92506137c0604086016134f7565b91506137ce606086016134f7565b905092959194509250565b6000602082840312156137eb57600080fd5b5035919050565b60008060008060006060868803121561380a57600080fd5b853567ffffffffffffffff8082111561382257600080fd5b61382e89838a0161360e565b9097509550602088013591508082111561384757600080fd5b506138548882890161360e565b96999598509660400135949350505050565b60008060006060848603121561387b57600080fd5b61388484613457565b925061389260208501613457565b915060408401356138a28161352a565b809150509250925092565b600080604083850312156138c057600080fd5b823561376e81613726565b600080604083850312156138de57600080fd5b6138e783613457565b915061377c60208401613480565b600181815b8085111561394e57817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048211156139345761393461324f565b8085161561394157918102915b93841c93908002906138fa565b509250929050565b60008261396557506001610e33565b8161397257506000610e33565b81600181146139885760028114613992576139ae565b6001915050610e33565b60ff8411156139a3576139a361324f565b50506001821b610e33565b5060208310610133831016604e8410600b84101617156139d1575081810a610e33565b6139db83836138f5565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048211156133e4576133e461324f565b6000610e0863ffffffff841683613956565b600082821015613a3157613a3161324f565b500390565b600082613a6c577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b6000610e0861ffff841683613956565b600060208284031215613a9357600080fd5b610e0882613480565b600060208284031215613aae57600080fd5b8151610e0881613726565b600067ffffffffffffffff83811690831681811015613ada57613ada61324f565b039392505050565b600067ffffffffffffffff808316818516808303821115613b0557613b0561324f565b01949350505050565b600060208284031215613b2057600080fd5b5051919050565b805169ffffffffffffffffffff8116811461347b57600080fd5b600080600080600060a08688031215613b5957600080fd5b613b6286613b27565b9450602086015193506040860151925060608601519150613b8560808701613b27565b90509295509295909350565b6000610e0860ff841683613956565b6000825160005b81811015613bc15760208186018101518583015201613ba7565b81811115613bd0576000828501525b509190910192915050565b600060208284031215613bed57600080fd5b8151610e088161352a56fea2646970667358221220223811cb22ef6cd27f507fe74bc0b7dee584292bf620fe31e096f7a0497ec93c64736f6c634300080e0033