solc-0.8.36-memorymasking-07 0x88e6a0c2ddd26feeb64f039a2c41296fcb3f5640 optimized

22761 bytes

5f1960805260a0604052348015610014575f5ffd5b506004361061018c575f3560e01c806370cf754a116100de578063c45a015511610098578063ddca3f4311610073578063ddca3f4314610569578063f3058399146105a3578063f30dba93146105ac578063f637731d14610667575f5ffd5b8063c45a0155146104e1578063d0c93a7c14610508578063d21220a714610542575f5ffd5b806370cf754a146104265780638206a4d11461044d57806385b6672914610460578063883bdbfd14610473578063a34123a714610494578063a38807f2146104a7575f5ffd5b80633850c7bd11610149578063490e6cbc11610124578063490e6cbc1461036b5780634f1eb3d81461037e578063514ea4bf146103915780635339c29614610407575f5ffd5b80633850c7bd146102a75780633c8a7d8d146103415780634614131914610354575f5ffd5b80630dfe168114610190578063128acb08146101cf5780631a686502146101f75780631ad8b03b14610218578063252c09d71461024c57806332148f6714610292575b5f5ffd5b6101b77f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4881565b60405160745190911681526020015b60405180910390f35b6101e26101dd366004614f59565b61067a565b604080519283526020830191909152016101c6565b600454610205906070511681565b60405160705190911681526020016101c6565b6003546102319060705180821691600160801b90041682565b604080516070519384168152929091166020830152016101c6565b61025f61025a366004614fd3565b61113b565b60408051606451909516855260069390930b602085015260745190911691830191909152151560608201526080016101c6565b6102a56102a0366004614fea565b611178565b005b5f546102f590607451811690600160a01b810460020b9061ffff600160b81b8204811691600160c81b8104821691600160d81b8204169060ff600160e81b8204811691600160f01b90041687565b60408051607451909816885260029690960b602088015261ffff94851695870195909552918316606086015291909116608084015260ff1660a0830152151560c082015260e0016101c6565b6101e261034f36600461502d565b611251565b61035d60025481565b6040519081526020016101c6565b6102a5610379366004615077565b61147a565b61023161038c3660046150d6565b611893565b6103d661039f366004614fd3565b60076020525f9081526040902080546001820154600283015460039093015460705192831693919281811691600160801b90041685565b604080516070519687168152602081019590955284019290925283166060830152909116608082015260a0016101c6565b61035d610415366004615139565b60066020525f908152604090205481565b6102057f0000000000000000000000000000000000005e8b2285f864419ac400be90719681565b6102a561045b366004615169565b611a89565b61023161046e36600461519a565b611c40565b6104866104813660046151dc565b611ee1565b6040516101c6929190615241565b6101e26104a23660046152c8565b611f62565b6104ba6104b53660046152f1565b6120ca565b6040805160069490940b8452607451909216602084015260645116908201526060016101c6565b6101b77f0000000000000000000000001f98431c8ad98523631ae4a59f267346ea31f98481565b61052f7f000000000000000000000000000000000000000000000000000000000000000a81565b60405160029190910b81526020016101c6565b6101b77f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281565b6105907f00000000000000000000000000000000000000000000000000000000000001f481565b60405160635190911681526020016101c6565b61035d60015481565b6106176105ba366004615319565b60056020525f90815260409020805460018201546002830154600390930154607051831693600160801b909304600f0b9290600681900b90600160381b81046074511690600160d81b81046064511690600160f81b900460ff1688565b604080516070519099168952600f9790970b602089015295870194909452606086019290925260060b60808501526074511660a08401526064511660c0830152151560e0820152610100016101c6565b6102a5610675366004615332565b6122e8565b5f5f610684612418565b855f036106bd5760405162461bcd60e51b8152602060048201526002602482015261415360f01b60448201526064015b60405180910390fd5b6040805160e0810182525f5460745181168252600160a01b810460020b602083015261ffff600160b81b8204811693830193909352600160c81b810483166060830152600160d81b8104909216608082015260ff600160e81b8304811660a0830152600160f01b909204909116151560c0820181905261074f5760405162461bcd60e51b81526004016106b49061534d565b8761078a57805f0151607451168660745116118015610785575073fffd8963efd1fc6a506488495d951d5263988d266074518716105b6107ac565b805f01516074511686607451161080156107ac57506401000276a36074518716115b6107de5760405162461bcd60e51b815260206004820152600360248201526214d41360ea1b60448201526064016106b4565b5f805460ff60f01b191681556040805160c08101909152808a61080c5760048460a0015160ff16901c61081d565b60108460a0015161081d919061537e565b60ff168152600454607051166020820152604001426064511681526020015f60060b81526020015f6074511681526020015f151581525090505f5f891390505f6040518060e001604052808b81526020015f8152602001855f0151607451168152602001856020015160020b81526020018c61089b5760025461089f565b6001545b81526020015f60705116815260200184602001516070511681525090505b8051158015906108d95750886074511681604001516074511614155b15610cd4576040805160e0810182525f80825260208201819052918101829052606081018290526080810182905260a0810182905260c081019190915260408201516074511681526060820151610954906006907f000000000000000000000000000000000000000000000000000000000000000a8f612449565b1515604083015260020b60208201819052620d89e719131561097f57620d89e71960208201526109b3565b61098c620d89e7196153b3565b60020b816020015160020b13156109b3576109aa620d89e7196153b3565b60020b60208201525b6109c081602001516125fe565b6074511660608201526040820151610a38908d6109eb578b60745116836060015160745116116109fb565b8b60745116836060015160745116105b610a09578260600151610a0b565b8b5b60c085015185517f00000000000000000000000000000000000000000000000000000000000001f4612a07565b60c085015260a084015260808301526074511660408301528215610aab57610a728160c001518260800151610a6d91906153d3565b612c05565b82518390610a819083906153e6565b90525060a0810151610aa190610a9690612c05565b602084015190612c19565b6020830152610af7565b610ab88160a00151612c05565b82518390610ac790839061540c565b90525060c08101516080820151610af191610ae691610a6d91906153d3565b602084015190612c3d565b60208301525b835160ff1615610b4c575f845f015160ff168260c00151610b189190615433565b9050808260c001818151610b2c9190615446565b90525060a083018051829190610b43908390615459565b60705116905250505b60c08201516070511615610b8a57610b758160c00151600160801b8460c0015160705116612c5b565b82608001818151610b8691906153d3565b9052505b80606001516074511682604001516074511603610ca257806040015115610c75578360a00151610bfd57610be484604001515f8760200151886040015188602001518a606001516008612dcc909695949392919060645116565b60745116608086015260060b6060850152600160a08501525b5f610c4882602001518e610c1357600154610c19565b84608001515b8f610c28578560800151610c2c565b6002545b608089015160608a015160408b01516005959493929190612f99565b90508c15610c5c57610c5981615473565b90505b610c6a8360c0015182613098565b6070511660c0840152505b8b610c84578060200151610c95565b60018160200151610c959190615498565b60020b6060830152610cce565b805f01516074511682604001516074511614610cce57610cc58260400151613143565b60020b60608301525b506108bd565b836020015160020b816060015160020b14610d94575f5f610d1f86604001518660400151886020015188602001518a606001518b608001516008613457909695949392919060645116565b604085015160608601515f805463ffffffff60b81b1916600160c81b61ffff9586160261ffff60b81b191617600160b81b9590941694909402929092176001600160b81b031916600160a01b606351909316929092026001600160a01b0319169190911760745190911617905550610db39050565b60408101515f80546001600160a01b0319166074519092169190911790555b8060c001516070511683602001516070511614610dea5760c0810151600480546001600160801b0319166070519092169190911790555b8a15610e4057608081015160015560a08101516070511615610e3b5760a0810151600380545f90610e2090849060705116615459565b92506101000a81548160705102191690836070511602179055505b610e93565b608081015160025560a08101516070511615610e935760a081015160038054601090610e78908490600160801b900460705116615459565b92506101000a81548160705102191690836070511602179055505b8115158b151514610eb45760208101518151610eaf908c6153e6565b610ec6565b8051610ec0908b6153e6565b81602001515b90965094508a15610fba575f851215610f0c57610f0c7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28d610f07886154bd565b6135bd565b5f610f156136ae565b60405163fa461e3360e01b8152909150339063fa461e3390610f41908a908a908e908e906004016154ff565b5f604051808303815f87803b158015610f58575f5ffd5b505af1158015610f6a573d5f5f3e3d5ffd5b50505050610f766136ae565b610f8082896137a1565b1115610fb45760405162461bcd60e51b815260206004820152600360248201526249494160e81b60448201526064016106b4565b5061109a565b5f861215610ff057610ff07f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb488d610f07896154bd565b5f610ff96137ba565b60405163fa461e3360e01b8152909150339063fa461e3390611025908a908a908e908e906004016154ff565b5f604051808303815f87803b15801561103c575f5ffd5b505af115801561104e573d5f5f3e3d5ffd5b5050505061105a6137ba565b61106482886137a1565b11156110985760405162461bcd60e51b815260206004820152600360248201526249494160e81b60448201526064016106b4565b505b8b6074511633607451167fc42079f94a6350d7e6235f29174924f928cc2ac818eb64fed8004e115fbcca67888885604001518660c001518760600151604051611110959493929190948552602085019390935260745191909116604084015260705116606083015260020b608082015260a00190565b60405180910390a350505f805460ff60f01b1916600160f01b17905550919890975095505050505050565b60088161ffff811061114b575f80fd5b015460645181169150600160201b810460060b90600160581b81046074511690600160f81b900460ff1684565b5f54600160f01b900460ff166111a05760405162461bcd60e51b81526004016106b49061534d565b5f805460ff60f01b191690556111b4612418565b5f8054600160d81b900461ffff16906111cf60088385613804565b5f805461ffff808416600160d81b810261ffff60d81b199093169290921790925591925083161461123a576040805161ffff8085168252831660208201527fac49e518f90a358f652e4400164f05a5d8f7e35e7747279bc3a93dbf584e125a91015b60405180910390a15b50505f805460ff60f01b1916600160f01b17905550565b5f80548190600160f01b900460ff1661127c5760405162461bcd60e51b81526004016106b49061534d565b5f805460ff60f01b191690556070518516611295575f5ffd5b5f5f6112d860405180608001604052808c6074511681526020018b60020b81526020018a60020b81526020016112ce8a607051166138a5565b600f0b90526138ba565b92509250508193508092505f5f5f8611156112f8576112f56136ae565b91505b8415611309576113066137ba565b90505b60405163d348799760e01b8152339063d34879979061133290899089908d908d906004016154ff565b5f604051808303815f87803b158015611349575f5ffd5b505af115801561135b573d5f5f3e3d5ffd5b505050505f8611156113ac5761136f6136ae565b61137983886137a1565b11156113ac5760405162461bcd60e51b815260206004820152600260248201526104d360f41b60448201526064016106b4565b84156113f7576113ba6137ba565b6113c482876137a1565b11156113f75760405162461bcd60e51b81526020600482015260026024820152614d3160f01b60448201526064016106b4565b60408051607451331681526070518b1660208201529081018790526060810186905260028b810b91908d900b906074518f16907f7a53080ba414158be7ec69b987b5fb7d07dee101fe85488f0853ae16239d0bde9060800160405180910390a450505f805460ff60f01b1916600160f01b17905550919890975095505050505050565b5f54600160f01b900460ff166114a25760405162461bcd60e51b81526004016106b49061534d565b5f805460ff60f01b191690556114b6612418565b60045460705116806114ee5760405162461bcd60e51b81526020600482015260016024820152601360fa1b60448201526064016106b4565b5f611521867f00000000000000000000000000000000000000000000000000000000000001f460635116620f4240613adb565b90505f611556867f00000000000000000000000000000000000000000000000000000000000001f460635116620f4240613adb565b90505f6115616136ae565b90505f61156c6137ba565b9050881561159f5761159f7f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb488b8b6135bd565b87156115d0576115d07f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28b8a6135bd565b604051630e9cbafb60e41b8152339063e9cbafb0906115f990879087908c908c906004016154ff565b5f604051808303815f87803b158015611610575f5ffd5b505af1158015611622573d5f5f3e3d5ffd5b505050505f61162f6136ae565b90505f61163a6137ba565b90508161164785886137a1565b111561167a5760405162461bcd60e51b8152602060048201526002602482015261046360f41b60448201526064016106b4565b8061168584876137a1565b11156116b85760405162461bcd60e51b8152602060048201526002602482015261463160f01b60448201526064016106b4565b5f6116c38584615446565b90505f6116d08584615446565b90508115611784575f80546116f190601090600160e81b900460ff1661537e565b90505f60ff82161561170f5761170a60ff831685615433565b611711565b5f5b905060705181161561175057600380548291905f9061173590849060705116615459565b92506101000a81548160705102191690836070511602179055505b61176c61175d8286615446565b600160801b8d60705116612c5b565b60015f82825461177c91906153d3565b909155505050505b8015611821575f8054600160e81b900460041c600f169081156117b3576117ae60ff831684615433565b6117b5565b5f5b90506070518116156117fc57600380548291906010906117e1908490600160801b900460705116615459565b92506101000a81548160705102191690836070511602179055505b61180961175d8285615446565b60025f82825461181991906153d3565b909155505050505b604080518e8152602081018e9052908101839052606081018290526074518f169033907fbdbdb71d7860376ba52b25a5028beea23581364a40522f6bcfb86bb1f2dca6339060800160405180910390a350505f805460ff60f01b1916600160f01b179055505050505050505050505050565b5f80548190600160f01b900460ff166118be5760405162461bcd60e51b81526004016106b49061534d565b5f805460ff60f01b191681556118d76007338989613b20565b6003810154909150607051908116908616116118f357846118fd565b6003810154607051165b6003820154909350607051600160801b9091048116908516116119205783611931565b6003810154600160801b9004607051165b91506070518316156119a0576003810180548491905f9061195790849060705116615528565b92506101000a81548160705102191690836070511602179055506119a07f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb488985607051166135bd565b607051821615611a1457818160030160108282829054906101000a9004607051166119cb9190615528565b92506101000a8154816070510219169083607051160217905550611a147f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28984607051166135bd565b604080516074518a16815260705185811660208301528416818301529051600288810b92908a900b9133917f70935338e69775456a85ddef226c395fb668b63fa0115f5f20610b388e6ca9c0919081900360600190a4505f805460ff60f01b1916600160f01b17905590969095509350505050565b5f54600160f01b900460ff16611ab15760405162461bcd60e51b81526004016106b49061534d565b5f805460ff60f01b1916905560408051638da5cb5b60e01b815290516074517f0000000000000000000000001f98431c8ad98523631ae4a59f267346ea31f9841691638da5cb5b9160048083019260209291908290030181865afa158015611b1b573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b3f9190615542565b60745116336074511614611b51575f5ffd5b60ff82161580611b74575060048260ff1610158015611b745750600a8260ff1611155b8015611b9e575060ff81161580611b9e575060048160ff1610158015611b9e5750600a8160ff1611155b611ba6575f5ffd5b5f54600160e81b900460ff16611bc4600483901b610ff0168461555d565b5f805460ff92909216600160e81b0260ff60e81b199092169190911790557f973d8d92bb299f4af6ce49b52a8adb85ae46b9f214c4c4fc06ac77401237b133611c0e60108361537e565b6040805160ff9283168152600f600486901c166020820152868316918101919091529084166060820152608001611231565b5f80548190600160f01b900460ff16611c6b5760405162461bcd60e51b81526004016106b49061534d565b5f805460ff60f01b1916905560408051638da5cb5b60e01b815290516074517f0000000000000000000000001f98431c8ad98523631ae4a59f267346ea31f9841691638da5cb5b9160048083019260209291908290030181865afa158015611cd5573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611cf99190615542565b60745116336074511614611d0b575f5ffd5b60035460705190811690851611611d225783611d2a565b600354607051165b600354909250607051600160801b909104811690841611611d4b5782611d5a565b600354600160801b9004607051165b9050607051821615611de65760035460705190811690831603611d855781611d8181615576565b9250505b600380548391905f90611d9d90849060705116615528565b92506101000a8154816070510219169083607051160217905550611de67f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb488684607051166135bd565b607051811615611e7f57600354607051600160801b909104811690821603611e165780611e1281615576565b9150505b60038054829190601090611e36908490600160801b900460705116615528565b92506101000a8154816070510219169083607051160217905550611e7f7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28683607051166135bd565b6040805160705180851682528316602082015260745187169133917f596b573906218d3411850b26a6b437d6c4522fdb43d2d2386263f86d50b8b151910160405180910390a35f805460ff60f01b1916600160f01b1790559094909350915050565b606080611eec612418565b611f56428585808060200260200160405190810160405280939291908181526020018383602002808284375f92018290525054600454600896959450600160a01b820460020b935061ffff600160b81b83048116935060705190911691600160c81b900416613b71565b915091505b9250929050565b5f80548190600160f01b900460ff16611f8d5760405162461bcd60e51b81526004016106b49061534d565b5f805460ff60f01b1916815560408051608081018252338152600288810b602083015287900b9181019190915281908190611fdc9060608101611fd36070518a166138a5565b6112ce90615473565b92509250925081611fec906154bd565b9450611ff7816154bd565b93505f85118061200657505f84115b1561205957600383015461201f90869060705116615459565b600384015461203a908690600160801b900460705116615459565b6070519182169116600160801b026001600160801b0319161760038401555b604080516070518816815260208101879052908101859052600288810b91908a900b9033907f0c396cd989a39f4459b5fa1aed6a9a8dcdbc45908acfd67e028cd568da98982c9060600160405180910390a450505f805460ff60f01b1916600160f01b179055509094909350915050565b5f5f5f6120d5612418565b6120df8585613cbc565b600285810b5f908152600560205260408082209287900b825281206003830154600681900b93600160381b820460745116928492600160d81b8104606451169284929091600160f81b900460ff1680612136575f5ffd5b6003820154600681900b9850600160381b8104607451169650600160d81b8104606451169450600160f81b900460ff168061216f575f5ffd5b50506040805160e0810182525f5460745181168252600160a01b8104600290810b6020840181905261ffff600160b81b8404811695850195909552600160c81b830485166060850152600160d81b8304909416608084015260ff600160e81b8304811660a0850152600160f01b909204909116151560c08301529093508e900b13159050612227576122018688615592565b61220b85876155bf565b61221584866155d9565b995099509950505050505050506122e1565b8a60020b816020015160020b12156122c35760208101516040820151600454606084015142935f93849361226a9360089388938793919290916070511690612dcc565b90925090508861227a8b84615592565b6122849190615592565b8761228f8a846155bf565b61229991906155bf565b866122a489876155d9565b6122ae91906155d9565b9c509c509c50505050505050505050506122e1565b6122cd8787615592565b6122d786866155bf565b61221585856155d9565b9250925092565b5f5460745116156123205760405162461bcd60e51b8152602060048201526002602482015261414960f01b60448201526064016106b4565b5f61232a82613143565b604080516080808201835260645142168083525f602080850182905284860182905260016060958601819052600160f81b909317600855855160e0810187526074518a16808252600289900b82840181905282890185905296820185905294810184905260a0810183905260c00183905281546001600160b81b031916909317600160a01b6063518816021767ffffffffffffffff60b81b19166501000001000160c81b179055835160745188168152918201929092528251939450909283927f98636036cb66a9c19a37435efc1e90142190214e8abeb821bdba3f2990dd4c95928290030190a150505050565b306074517f00000000000000000000000088e6a0c2ddd26feeb64f039a2c41296fcb3f56401614612447575f5ffd5b565b5f808061245685876155f3565b90505f8660020b128015612475575061246f858761562b565b60020b15155b1561248857806124848161564c565b9150505b8315612532575f5f61249983613d81565b90925090505f600160ff831681901b906124b39082615446565b6124bd91906153d3565b600184900b5f90815260208c9052604090205481168015159650909150856124fc57886124ed60ff851687615498565b6124f79190615664565b612527565b8861250682613d9d565b6125109085615683565b61251d9060ff1687615498565b6125279190615664565b9650505050506125f4565b5f8061254761254284600161569c565b613d81565b90925090505f61255e600160ff841681901b615446565b600184900b5f90815260208c9052604090205490199081168015159650909150856125b6578861258f8460ff615683565b60ff1661259d87600161569c565b6125a7919061569c565b6125b19190615664565b6125ed565b88836125c183613e8a565b6125cb9190615683565b60ff166125d987600161569c565b6125e3919061569c565b6125ed9190615664565b9650505050505b5094509492505050565b5f5f5f8360020b12612613578260020b612620565b8260020b612620906154bd565b905061262f620d89e7196153b3565b60020b8111156126655760405162461bcd60e51b81526020600482015260016024820152601560fa1b60448201526064016106b4565b5f816001165f0361267a57600160801b61268c565b6ffffcb933bd6fad37aa2d162d1a5940015b60715116905060028216156126bc5760806126b7826ffff97272373d413259a46990580e213a6156c1565b901c90505b60048216156126e65760806126e1826ffff2e50f5f656932ef12357cf3c7fdcc6156c1565b901c90505b600882161561271057608061270b826fffe5caca7e10e4e61c3624eaa0941cd06156c1565b901c90505b601082161561273a576080612735826fffcb9843d60f6159c9db58835c9266446156c1565b901c90505b602082161561276457608061275f826fff973b41fa98c081472e6896dfb254c06156c1565b901c90505b604082161561278e576080612789826fff2ea16466c96a3843ec78b326b528616156c1565b901c90505b60808216156127b85760806127b3826ffe5dee046a99a2a811c461f1969c30536156c1565b901c90505b6101008216156127e35760806127de826ffcbe86c7900a88aedcffc83b479aa3a46156c1565b901c90505b61020082161561280e576080612809826ff987a7253ac413176f2b074cf7815e546156c1565b901c90505b610400821615612839576080612834826ff3392b0822b70005940c7a398e4b70f36156c1565b901c90505b61080082161561286457608061285f826fe7159475a2c29b7443b29c7fa6e889d96156c1565b901c90505b61100082161561288f57608061288a826fd097f3bdfd2022b8845ad8f792aa58256156c1565b901c90505b6120008216156128ba5760806128b5826fa9f746462d870fdf8a65dc1f90e061e56156c1565b901c90505b6140008216156128e55760806128e0826f70d869a156d2a1b890bb3df62baf32f76156c1565b901c90505b61800082161561291057608061290b826f31be135f97d08fd981231505542fcfa66156c1565b901c90505b6201000082161561293c576080612937826f09aa508b5b7a84e1c677de54f3e99bc96156c1565b901c90505b62020000821615612967576080612962826e5d6af8dedb81196699c329225ee6046156c1565b901c90505b6204000082161561299157608061298c826d2216e584f5fa1ea926041bedfe986156c1565b901c90505b620800008216156129b95760806129b4826b048a170391f7dc42444e8fa26156c1565b901c90505b5f8460020b13156129d2576129cf815f19615433565b90505b6129e0600160201b826156d8565b156129ec5760016129ee565b5f5b6129ff9060ff16602083901c6153d3565b949350505050565b5f808080607451808916908a161015818712801590612a8b575f612a3f89612a328a620f42406156eb565b60635116620f4240612c5b565b905082612a5857612a538c8c8c6001613fa6565b612a65565b612a658b8d8c6001614005565b9550858110612a76578a9650612a85565b612a828c8b83866140a0565b96505b50612add565b81612aa157612a9c8b8b8b5f614005565b612aad565b612aad8a8c8b5f613fa6565b935083612ab9896154bd565b10612ac657899550612add565b612ada8b8a612ad48b6154bd565b856140de565b95505b6074518a8116908716148215612b3a57808015612af75750815b612b0d57612b08878d8c6001614005565b612b0f565b855b9550808015612b1c575081155b612b3157612b2c878d8c5f613fa6565b612b33565b845b9450612b83565b808015612b445750815b612b5a57612b558c888c6001613fa6565b612b5c565b855b9550808015612b69575081155b612b7e57612b798c888c5f614005565b612b80565b845b94505b81158015612b985750612b95896154bd565b85115b15612ba957612ba6896154bd565b94505b818015612bbe57508a60745116876074511614155b15612bd457612bcd868a615446565b9350612bf6565b612bf3866063518a16612bea8b620f42406156eb565b60635116613adb565b93505b50505095509550955095915050565b5f600160ff1b8210612c15575f5ffd5b5090565b5f8082121583612c2984826153e6565b925082131514612c37575f5ffd5b92915050565b5f8082121583612c4d848261540c565b925082121514612c37575f5ffd5b5f80805f19858709858702925082811083820303915050805f03612c8f575f8411612c84575f5ffd5b508290049050612dc5565b808411612c9a575f5ffd5b5f848688098084039381119092039190505f85612cb9811960016153d3565b16958690049593849004935f819003046001019050612cd881846156c1565b909317925f612ce88760036156c1565b6002189050612cf781886156c1565b612d02906002615446565b612d0c90826156c1565b9050612d1881886156c1565b612d23906002615446565b612d2d90826156c1565b9050612d3981886156c1565b612d44906002615446565b612d4e90826156c1565b9050612d5a81886156c1565b612d65906002615446565b612d6f90826156c1565b9050612d7b81886156c1565b612d86906002615446565b612d9090826156c1565b9050612d9c81886156c1565b612da7906002615446565b612db190826156c1565b9050612dbd81866156c1565b955050505050505b9392505050565b5f5f86606451165f03612e69575f898661ffff1661ffff8110612df157612df1615705565b604080516080810182529190920154606451808216808452600160201b830460060b6020850152600160581b83046074511694840194909452600160f81b90910460ff16151560608301529092508a1614612e5557612e52818a898861411a565b90505b806020015181604001519250925050612f8d565b5f612e74888a6155d9565b90505f5f612e878c8c858c8c8c8c6141e2565b91509150815f015160645116836064511603612eb3578160200151826040015194509450505050612f8d565b805f015160645116836064511603612edb578060200151816040015194509450505050612f8d565b815181515f91612eea916155d9565b83519091505f90612efb90866155d9565b90508060645116826064511685602001518560200151612f1b9190615592565b612f259190615719565b612f2f919061574c565b8460200151612f3e919061576b565b8260645116826064511686604001518660400151612f5c91906155bf565b60745116612f6a91906156c1565b612f749190615433565b8560400151612f839190615798565b9650965050505050505b97509795505050505050565b600286900b5f9081526020889052604081206001810154612fba9088615446565b60018201556002810154612fce9087615446565b60028201556003810154612fed90600160381b900460745116866155bf565b60038201805460745192909216600160381b02670100000000000000600160d81b031990921691909117908190556130289060060b85615592565b60038201805466ffffffffffffff191660675192909216919091179081905561305c90600160d81b900460645116846155d9565b60038201805460645192909216600160d81b0263ffffffff60d81b1990921691909117905554600160801b9004600f0b98975050505050505050565b5f5f82600f0b12156130fa5760705183166130b283615473565b6130bc9085615528565b91508160705116106130f55760405162461bcd60e51b81526020600482015260026024820152614c5360f01b60448201526064016106b4565b612c37565b60705183166131098385615459565b915081607051161015612c375760405162461bcd60e51b81526020600482015260026024820152614c4160f01b60448201526064016106b4565b5f6401000276a3607451831610801590613174575073fffd8963efd1fc6a506488495d951d5263988d266074518316105b6131a45760405162461bcd60e51b81526020600482015260016024820152602960f91b60448201526064016106b4565b640100000000600160c01b03602083901b16607051811160071b81811c606851811160061b90811c606451811160051b90811c61ffff811160041b90811c60ff8111600390811b91821c600f811160021b90811c918211600190811b92831c9790881196179094179092171790911717176080811061323257613228607f82615446565b83901c9150613243565b61323d81607f615446565b83901b91505b5f60406132516080846153e6565b901b9050828302607f1c92508260801c80603f1b8217915083811c935050828302607f1c92508260801c80603e1b8217915083811c935050828302607f1c92508260801c80603d1b8217915083811c935050828302607f1c92508260801c80603c1b8217915083811c935050828302607f1c92508260801c80603b1b8217915083811c935050828302607f1c92508260801c80603a1b8217915083811c935050828302607f1c92508260801c8060391b8217915083811c935050828302607f1c92508260801c8060381b8217915083811c935050828302607f1c92508260801c8060371b8217915083811c935050828302607f1c92508260801c8060361b8217915083811c935050828302607f1c92508260801c8060351b8217915083811c935050828302607f1c92508260801c8060341b8217915083811c935050828302607f1c92508260801c8060331b8217915083811c935050828302607f1c92508260801c8060321b82179150505f81693627a301d71055774c856133d391906157b2565b90505f60806133f26f028f6481ab7f045a5af012a19d003aaa846153e6565b901d90505f6080613413846fdb2df09e81959a81455e260799a0632f61540c565b901d90508060020b8260020b14613448578860745116613432826125fe565b607451161115613442578161344a565b8061344a565b815b9998505050505050505050565b5f5f5f898961ffff1661ffff811061347157613471615705565b604080516080810182529190920154606451808216808452600160201b830460060b6020850152600160581b83046074511694840194909452600160f81b90910460ff1615156060830152909250891690036134d35788859250925050612f8d565b8461ffff168461ffff161180156134fb57506134f06001866157e1565b61ffff168961ffff16145b156135085783915061350c565b8491505b816135188a60016157fb565b6135229190615815565b92506135308189898961411a565b8a8461ffff1661ffff811061354757613547615705565b825191018054602084015160408501516060909501511515600160f81b02607f51607451909616600160581b0295909516606b51606751909216600160201b026affffffffffffffffffffff19909316606451909516949094179190911716919091179190911790555097509795505050505050565b604080516074518416602482015260448082018490528251808303909101815260649091018252602081018051607c511663a9059cbb60e01b17905290515f91829160745187169161360e91615838565b5f604051808303815f865af19150503d805f8114613647576040519150601f19603f3d011682016040523d82523d5f602084013e61364c565b606091505b5091509150818015613676575080511580613676575080806020019051810190613676919061584e565b6136a75760405162461bcd60e51b81526020600482015260026024820152612a2360f11b60448201526064016106b4565b5050505050565b604051607451301660248201525f90819081906074517f000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4816906370a0823160e01b906044015b60408051601f19818403018152918152602082018051607c51166001600160e01b031990941693909317909252905161372d9190615838565b5f60405180830381855afa9150503d805f8114613765576040519150601f19603f3d011682016040523d82523d5f602084013e61376a565b606091505b509150915081801561377e57506020815110155b613786575f5ffd5b8080602001905181019061379a9190615869565b9250505090565b5f826137ad83826153d3565b9150811015612c37575f5ffd5b604051607451301660248201525f90819081906074517f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc216906370a0823160e01b906044016136f4565b5f5f8361ffff161161383c5760405162461bcd60e51b81526020600482015260016024820152604960f81b60448201526064016106b4565b8261ffff168261ffff1611613852575081612dc5565b825b8261ffff168161ffff16101561389c576001858261ffff1661ffff811061387d5761387d615705565b01805463ffffffff191660645192909216919091179055600101613854565b50909392505050565b80600f81900b81146138b5575f5ffd5b919050565b5f5f5f6138c5612418565b6138d784602001518560400151613cbc565b6040805160e0810182525f5460745181168252600160a01b810460020b602080840182905261ffff600160b81b8404811685870152600160c81b84048116606080870191909152600160d81b8504909116608086015260ff600160e81b8504811660a0870152600160f01b909404909316151560c08501528851908901519489015192890151939461396f94919390929091906143e4565b93508460600151600f0b5f14613ad357846020015160020b816020015160020b12156139c3576139bc6139a586602001516125fe565b6139b287604001516125fe565b87606001516145bc565b9250613ad3565b846040015160020b816020015160020b1215613aa957600454604082015160705190911690613a0990426020850151606086015160808701516008949392918791613457565b5f805463ffffffff60b81b1916600160c81b61ffff9384160261ffff60b81b191617600160b81b939092169290920217905581516040870151613a5a9190613a50906125fe565b88606001516145bc565b9350613a78613a6c87602001516125fe565b835160608901516145fc565b9250613a88818760600151613098565b600480546001600160801b0319166070519290921691909117905550613ad3565b613ad0613ab986602001516125fe565b613ac687604001516125fe565b87606001516145fc565b91505b509193909250565b5f613ae7848484612c5b565b90505f8280613af857613af861536a565b8486091115612dc5575f198110613b0d575f5ffd5b80613b1781615880565b95945050505050565b604080516074519490941660601b60208086019190915260e893841b60348601529190921b60378401528151601a818503018152603a90930182528251928101929092205f90815292909152902090565b6060805f8361ffff1611613bab5760405162461bcd60e51b81526020600482015260016024820152604960f81b60448201526064016106b4565b8651606851811115613bbf57613bbf615898565b604051908082528060200260200182016040528015613be8578160200160208202803683370190505b5091508651606851811115613bff57613bff615898565b604051908082528060200260200182016040528015613c28578160200160208202803683370190505b5090505f5b8751811015613caf57613c5e8a8a8a8481518110613c4d57613c4d615705565b60200260200101518a8a8a8a612dcc565b848381518110613c7057613c70615705565b60200260200101848481518110613c8957613c89615705565b6074519093166020938402919091019092019190915260069190910b9052600101613c2d565b5097509795505050505050565b8060020b8260020b12613cf75760405162461bcd60e51b8152602060048201526003602482015262544c5560e81b60448201526064016106b4565b620d89e719600283900b1215613d355760405162461bcd60e51b8152602060048201526003602482015262544c4d60e81b60448201526064016106b4565b613d42620d89e7196153b3565b60020b8160020b1315613d7d5760405162461bcd60e51b815260206004820152600360248201526254554d60e81b60448201526064016106b4565b5050565b600281900b60081d5f613d966101008461562b565b9050915091565b5f5f8211613da9575f5ffd5b600160801b8210613dc757608091821c91613dc4908261555d565b90505b680100000000000000008210613dea57604091821c91613de7908261555d565b90505b600160201b8210613e0857602091821c91613e05908261555d565b90505b620100008210613e2557601091821c91613e22908261555d565b90505b6101008210613e4157600891821c91613e3e908261555d565b90505b60108210613e5c57600491821c91613e59908261555d565b90505b60048210613e7757600291821c91613e74908261555d565b90505b600282106138b557612c3760018261555d565b5f5f8211613e96575f5ffd5b5060ff607051821615613eb557613eae608082615683565b9050613ebd565b608082901c91505b606851821615613ed957613ed2604082615683565b9050613ee1565b604082901c91505b606451821615613efd57613ef6602082615683565b9050613f05565b602082901c91505b61ffff821615613f2157613f1a601082615683565b9050613f29565b601082901c91505b60ff821615613f4457613f3d600882615683565b9050613f4c565b600882901c91505b600f821615613f6757613f60600482615683565b9050613f6f565b600482901c91505b6003821615613f8a57613f83600282615683565b9050613f92565b600282901c91505b60018216156138b557612c37600182615683565b5f836074511685607451161115613fbb579293925b81613fe557613fe06070518416613fd287876155bf565b60745116600160601b612c5b565b613b17565b613b176070518416613ff787876155bf565b60745116600160601b613adb565b5f83607451168560745116111561401a579293925b600160601b600160e01b03606084901b165f61403687876155bf565b6074511690505f87607451161161404b575f5ffd5b8361407357866074511661406483838960745116612c5b565b61406e9190615433565b614095565b61409561408583838960745116613adb565b8860745116808204910615150190565b979650505050505050565b5f5f8560745116116140b0575f5ffd5b5f8460705116116140bf575f5ffd5b816140d157613fe0858585600161462e565b613b1785858560016146e4565b5f5f8560745116116140ee575f5ffd5b5f8460705116116140fd575f5ffd5b8161410e57613fe08585855f6146e4565b613b178585855f61462e565b604080516080810182525f80825260208201819052918101829052606081019190915284515f9061414b90866155d9565b905060405180608001604052808660645116815260200182606451168660020b614175919061574c565b8860200151614184919061576b565b60060b81526020015f85607051161161419e5760016141a0565b845b6141bb906070511663ffffffff60801b608086901b166158ac565b88604001516141ca9190615798565b60745116815260016020909101529695505050505050565b604080516080810182525f808252602082018190529181018290526060810191909152604080516080810182525f808252602082018190529181018290526060810191909152888561ffff1661ffff811061423f5761423f615705565b6040805160808101825291909201546064518116808352600160201b820460060b6020840152600160581b82046074511693830193909352600160f81b900460ff16151560608201529250614296908990896147db565b156142c0578151606451888116911614612f8d57816142b78389898861411a565b91509150612f8d565b88836142cd8760016157fb565b6142d79190615815565b61ffff1661ffff81106142ec576142ec615705565b60408051608081018252929091015460645181168352600160201b810460060b6020840152607451600160581b8204169183019190915260ff600160f81b9091041615156060820181905290925061438757604080516080810182528a5460645181168252600160201b810460060b6020830152600160581b81046074511692820192909252600160f81b90910460ff161515606082015291505b61439588835f0151896147db565b6143c75760405162461bcd60e51b815260206004820152600360248201526213d31160ea1b60448201526064016106b4565b6143d48989898887614885565b9150915097509795505050505050565b5f6143f26007878787613b20565b600154600254919250905f80600f87900b15614522575f805460045442929182916144489160089186918591600160a01b820460020b9161ffff600160b81b82048116926070511691600160c81b900416612dcc565b909250905061448160058d8b8d8b8b87898b5f7f0000000000000000000000000000000000005e8b2285f864419ac400be907196614a88565b94506144b860058c8b8d8b8b87898b60017f0000000000000000000000000000000000005e8b2285f864419ac400be907196614a88565b935084156144ec576144ec60068d7f000000000000000000000000000000000000000000000000000000000000000a614c0d565b831561451e5761451e60068c7f000000000000000000000000000000000000000000000000000000000000000a614c0d565b5050505b5f8061453360058c8c8b8a8a614c5d565b9092509050614544878a8484614d45565b5f89600f0b12156145ad57831561457e5760028b810b5f908152600560205260408120818155600181018290559182018190556003909101555b82156145ad5760028a810b5f908152600560205260408120818155600181018290559182018190556003909101555b50505050505095945050505050565b5f5f82600f0b126145dc576145d7610a6d8585856001614005565b6129ff565b6145f3610a6d85856145ed86615473565b5f614005565b6129ff906154bd565b5f5f82600f0b12614617576145d7610a6d8585856001613fa6565b6145f3610a6d858561462886615473565b5f613fa6565b5f811561468a575f6074518411156146585761465384600160601b8760705116612c5b565b61466a565b61466a6070518616606086901b615433565b905061468261467d6074518816836137a1565b614ef2565b9150506129ff565b5f6074518411156146ad576146a884600160601b8760705116613adb565b6146c5565b6146c5606085901b6070518716808204910615150190565b9050808660745116116146d6575f5ffd5b614682816074518816615446565b5f825f036146f35750836129ff565b600160601b600160e01b03606085901b16821561478b575f60745187168561471b82826156c1565b92506147279083615433565b0361475b575f61473782846153d3565b90508281106147595761474f83896074511683613adb565b93505050506129ff565b505b61478282614777876147716074518c1684615433565b906137a1565b808204910615150190565b925050506129ff565b5f60745187168561479c82826156c1565b92506147a89083615433565b1480156147b457508082115b6147bc575f5ffd5b5f6147c78284615446565b905061474f61467d848a6074511684613adb565b5f83606451168360645116111580156147fc57508360645116826064511611155b15614814578160645116836064511611159050612dc5565b5f846064511684606451161161483b576148366064518516600160201b6158cf565b614841565b83606451165b6065511690505f856064511684606451161161486e576148696064518516600160201b6158cf565b614874565b83606451165b606551169091111595945050505050565b604080516080810182525f808252602082018190529181018290526060810191909152604080516080810182525f8082526020820181905291810182905260608101919091525f836148d88660016157fb565b6148e29190615815565b61ffff1690505f60018561ffff16836148fb91906153d3565b6149059190615446565b90505f5b600261491583856153d3565b61491f9190615433565b90508961493061ffff8816836156d8565b61ffff811061494157614941615705565b60408051608081018252929091015460645181168352600160201b810460060b6020840152607451600160581b8204169183019190915260ff600160f81b909104161515606082018190529095506149a55761499e8160016153d3565b9250614909565b8961ffff87166149b68360016153d3565b6149c091906156d8565b61ffff81106149d1576149d1615705565b60408051608081018252929091015460645181168352600160201b810460060b6020840152607451600160581b8204169183019190915260ff600160f81b909104161515606082015285519094505f90614a2d908b908b6147db565b9050808015614a455750614a458a8a875f01516147db565b15614a505750614a7b565b80614a6757614a60600183615446565b9250614a75565b614a728260016153d3565b93505b50614909565b5050509550959350505050565b60028a900b5f90815260208c90526040812080546070511682614aab828d613098565b9050846070511681607051161115614aea5760405162461bcd60e51b81526020600482015260026024820152614c4f60f01b60448201526064016106b4565b607051818116159083168015919091141594505f03614b86578c60020b8e60020b13614b7357600183018b9055600283018a90556003830180546067518a166001600160f81b0319909116600160381b6074518d16027fff00000000ffffffffffffffffffffffffffffffffffffffff00000000000000161717600160d81b6064518a16021790555b600383018054607f5116600160f81b1790555b82546001600160801b031916607051821617835585614bc8578254614bc390614bbe90600160801b9004600f90810b908f900b612c3d565b6138a5565b614be7565b8254614be790614bbe90600160801b9004600f90810b908f900b612c19565b8354607051918216600160801b0291161790925550909c9b505050505050505050505050565b614c17818361562b565b60020b15614c23575f5ffd5b5f80614c3261254284866155f3565b600191820b5f9081526020979097526040909620805460ff9097169190911b90951890945550505050565b600285810b5f8181526020899052604080822088850b83529082209193849391929184918291908a900b12614c9d57505060018201546002830154614cc1565b6001840154614cac9089615446565b9150836002015487614cbe9190615446565b90505b5f5f8b60020b8b60020b1215614ce257505060018301546002840154614d06565b6001850154614cf1908b615446565b9150846002015489614d039190615446565b90505b81614d11858c615446565b614d1b9190615446565b975080614d28848b615446565b614d329190615446565b9650505050505050965096945050505050565b6040805160a081018252855460705190811682526001870154602083015260028701549282019290925260038601548083166060830152600160801b900490911660808201525f600f85900b8103614dd657815160705116614dce5760405162461bcd60e51b815260206004820152600260248201526104e560f41b60448201526064016106b4565b508051614de5565b8151614de29086613098565b90505b5f614e09836020015186614df99190615446565b845160705116600160801b612c5b565b90505f614e2f846040015186614e1f9190615446565b855160705116600160801b612c5b565b905086600f0b5f14614e505787546001600160801b03191660705184161788555b60018801869055600288018590556070518216151580614e7357505f8160705116115b15614ee8576003880180548391905f90614e9290849060705116615459565b92506101000a8154816070510219169083607051160217905550808860030160108282829054906101000a900460705116614ecd9190615459565b92506101000a81548160705102191690836070511602179055505b5050505050505050565b80607451811681146138b5575f5ffd5b60745181168114614f11575f5ffd5b50565b8015158114614f11575f5ffd5b5f5f83601f840112614f31575f5ffd5b508135606851811115614f42575f5ffd5b602083019150836020828501011115611f5b575f5ffd5b5f5f5f5f5f5f60a08789031215614f6e575f5ffd5b8635614f7981614f02565b95506020870135614f8981614f14565b9450604087013593506060870135614fa081614f02565b92506080870135606851811115614fb5575f5ffd5b614fc189828a01614f21565b979a9699509497509295939492505050565b5f60208284031215614fe3575f5ffd5b5035919050565b5f60208284031215614ffa575f5ffd5b813561ffff81168114612dc5575f5ffd5b8035600281900b81146138b5575f5ffd5b8035607051811681146138b5575f5ffd5b5f5f5f5f5f5f60a08789031215615042575f5ffd5b863561504d81614f02565b955061505b6020880161500b565b94506150696040880161500b565b9350614fa06060880161501c565b5f5f5f5f5f6080868803121561508b575f5ffd5b853561509681614f02565b9450602086013593506040860135925060608601356068518111156150b9575f5ffd5b6150c588828901614f21565b969995985093965092949392505050565b5f5f5f5f5f60a086880312156150ea575f5ffd5b85356150f581614f02565b94506151036020870161500b565b93506151116040870161500b565b925061511f6060870161501c565b915061512d6080870161501c565b90509295509295909350565b5f60208284031215615149575f5ffd5b81358060010b8114612dc5575f5ffd5b803560ff811681146138b5575f5ffd5b5f5f6040838503121561517a575f5ffd5b61518383615159565b915061519160208401615159565b90509250929050565b5f5f5f606084860312156151ac575f5ffd5b83356151b781614f02565b92506151c56020850161501c565b91506151d36040850161501c565b90509250925092565b5f5f602083850312156151ed575f5ffd5b82356068518111156151fd575f5ffd5b8301601f8101851361520d575f5ffd5b803560685181111561521d575f5ffd5b8560208260051b8401011115615231575f5ffd5b6020919091019590945092505050565b604080825283519082018190525f9060208501906060840190835b8181101561527d57835160060b83526020938401939092019160010161525c565b5050838103602080860191909152855180835291810192508501905f5b818110156152bc5760745183511684526020938401939092019160010161529a565b50919695505050505050565b5f5f5f606084860312156152da575f5ffd5b6152e38461500b565b92506151c56020850161500b565b5f5f60408385031215615302575f5ffd5b61530b8361500b565b91506151916020840161500b565b5f60208284031215615329575f5ffd5b612dc58261500b565b5f60208284031215615342575f5ffd5b8135612dc581614f02565b6020808252600390820152624c4f4b60e81b604082015260600190565b634e487b7160e01b5f52601260045260245ffd5b5f60ff8316806153905761539061536a565b8060ff84160691505092915050565b634e487b7160e01b5f52601160045260245ffd5b5f8160020b627fffff1981036153cb576153cb61539f565b5f0392915050565b80820180821115612c3757612c3761539f565b8181035f8312801583831316838312821617156154055761540561539f565b5092915050565b8082018281125f83128015821682158216171561542b5761542b61539f565b505092915050565b5f826154415761544161536a565b500490565b81810381811115612c3757612c3761539f565b6070518181168382160190811115612c3757612c3761539f565b5f81600f0b6f7fffffffffffffffffffffffffffffff1981036153cb576153cb61539f565b600282810b9082900b03627fffff198112627fffff82131715612c3757612c3761539f565b5f600160ff1b82016154d1576154d161539f565b505f0390565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b848152836020820152606060408201525f61551e6060830184866154d7565b9695505050505050565b6070518281168282160390811115612c3757612c3761539f565b5f60208284031215615552575f5ffd5b8151612dc581614f02565b60ff8181168382160190811115612c3757612c3761539f565b5f6070518216806155895761558961539f565b5f190192915050565b600682810b9082900b03667fffffffffffff198112667fffffffffffff82131715612c3757612c3761539f565b6074518281168282160390811115612c3757612c3761539f565b6064518281168282160390811115612c3757612c3761539f565b5f8160020b8360020b806156095761560961536a565b627fffff1982145f19821416156156225761562261539f565b90059392505050565b5f8260020b8061563d5761563d61536a565b808360020b0791505092915050565b5f8160020b627fffff1981036155895761558961539f565b5f8260020b8260020b028060020b91508082146154055761540561539f565b60ff8281168282160390811115612c3757612c3761539f565b600281810b9083900b01627fffff8113627fffff1982121715612c3757612c3761539f565b8082028115828204841417612c3757612c3761539f565b5f826156e6576156e661536a565b500690565b6063518281168282160390811115612c3757612c3761539f565b634e487b7160e01b5f52603260045260245ffd5b5f8160060b8360060b8061572f5761572f61536a565b667fffffffffffff1982145f19821416156156225761562261539f565b5f8260060b8260060b028060060b91508082146154055761540561539f565b600681810b9083900b01667fffffffffffff8113667fffffffffffff1982121715612c3757612c3761539f565b6074518181168382160190811115612c3757612c3761539f565b8082025f8212600160ff1b841416156157cd576157cd61539f565b8181058314821517612c3757612c3761539f565b61ffff8281168282160390811115612c3757612c3761539f565b61ffff8181168382160190811115612c3757612c3761539f565b5f61ffff8316806158285761582861536a565b8061ffff84160691505092915050565b5f82518060208501845e5f920191825250919050565b5f6020828403121561585e575f5ffd5b8151612dc581614f14565b5f60208284031215615879575f5ffd5b5051919050565b5f600182016158915761589161539f565b5060010190565b634e487b7160e01b5f52604160045260245ffd5b5f6074518316806158bf576158bf61536a565b8060745184160491505092915050565b6065518181168382160190811115612c3757612c3761539f56