60806040525f60065f6101000a81548160ff02191690831515021790555034801562000029575f80fd5b5060405162003b9838038062003b9883398181016040528101906200004f9190620002ba565b8160405180602001604052805f81525062000070816200014560201b60201c565b505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620000e4575f6040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401620000db919062000310565b60405180910390fd5b620000f5816200015a60201b60201c565b508160045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060058190555050506200066a565b806002908162000156919062000586565b5050565b5f60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6200024c8262000221565b9050919050565b6200025e8162000240565b811462000269575f80fd5b50565b5f815190506200027c8162000253565b92915050565b5f819050919050565b620002968162000282565b8114620002a1575f80fd5b50565b5f81519050620002b4816200028b565b92915050565b5f8060408385031215620002d357620002d26200021d565b5b5f620002e2858286016200026c565b9250506020620002f585828601620002a4565b9150509250929050565b6200030a8162000240565b82525050565b5f602082019050620003255f830184620002ff565b92915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680620003a757607f821691505b602082108103620003bd57620003bc62000362565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620004217fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620003e4565b6200042d8683620003e4565b95508019841693508086168417925050509392505050565b5f819050919050565b5f6200046e62000468620004628462000282565b62000445565b62000282565b9050919050565b5f819050919050565b62000489836200044e565b620004a1620004988262000475565b848454620003f0565b825550505050565b5f90565b620004b7620004a9565b620004c48184846200047e565b505050565b5b81811015620004eb57620004df5f82620004ad565b600181019050620004ca565b5050565b601f8211156200053a576200050481620003c3565b6200050f84620003d5565b810160208510156200051f578190505b620005376200052e85620003d5565b830182620004c9565b50505b505050565b5f82821c905092915050565b5f6200055c5f19846008026200053f565b1980831691505092915050565b5f6200057683836200054b565b9150826002028217905092915050565b62000591826200032b565b67ffffffffffffffff811115620005ad57620005ac62000335565b5b620005b982546200038f565b620005c6828285620004ef565b5f60209050601f831160018114620005fc575f8415620005e7578287015190505b620005f3858262000569565b86555062000662565b601f1984166200060c86620003c3565b5f5b8281101562000635578489015182556001820191506020850194506020810190506200060e565b8683101562000655578489015162000651601f8916826200054b565b8355505b6001600288020188555050505b505050505050565b61352080620006785f395ff3fe60806040526004361061013e575f3560e01c80638a71bb2d116100b5578063cce7ec131161006e578063cce7ec1314610443578063ce606ee01461045f578063de74e57b14610489578063e985e9c5146104c7578063f242432a14610503578063f2fde38b1461052b5761013e565b80638a71bb2d1461034f5780638da5cb5b14610379578063964bc33f146103a35780639fe9f623146103cb578063a22cb465146103f3578063a9059cbb1461041b5761013e565b80634cd412d5116101075780634cd412d51461025b5780634e1273f41461028557806361ba27da146102c1578063704ecd0e146102e9578063715018a61461031157806377097fc8146103275761013e565b8062fdd58e1461014257806301ffc9a71461017e5780630e89341c146101ba5780632a55205a146101f65780632eb2c2d614610233575b5f80fd5b34801561014d575f80fd5b5061016860048036038101906101639190611f9c565b610553565b6040516101759190611fe9565b60405180910390f35b348015610189575f80fd5b506101a4600480360381019061019f9190612057565b6105a8565b6040516101b1919061209c565b60405180910390f35b3480156101c5575f80fd5b506101e060048036038101906101db91906120b5565b610689565b6040516101ed919061216a565b60405180910390f35b348015610201575f80fd5b5061021c6004803603810190610217919061218a565b61071b565b60405161022a9291906121d7565b60405180910390f35b34801561023e575f80fd5b50610259600480360381019061025491906123ee565b610764565b005b348015610266575f80fd5b5061026f61080b565b60405161027c919061209c565b60405180910390f35b348015610290575f80fd5b506102ab60048036038101906102a69190612579565b61081d565b6040516102b891906126a6565b60405180910390f35b3480156102cc575f80fd5b506102e760048036038101906102e291906120b5565b610924565b005b3480156102f4575f80fd5b5061030f600480360381019061030a91906126c6565b610936565b005b34801561031c575f80fd5b50610325610a02565b005b348015610332575f80fd5b5061034d600480360381019061034891906127b4565b610a15565b005b34801561035a575f80fd5b50610363610a66565b6040516103709190611fe9565b60405180910390f35b348015610384575f80fd5b5061038d610a6c565b60405161039a919061280e565b60405180910390f35b3480156103ae575f80fd5b506103c960048036038101906103c491906120b5565b610a94565b005b3480156103d6575f80fd5b506103f160048036038101906103ec9190612851565b610b6f565b005b3480156103fe575f80fd5b506104196004803603810190610414919061287c565b610b93565b005b348015610426575f80fd5b50610441600480360381019061043c9190611f9c565b610ba9565b005b61045d60048036038101906104589190611f9c565b610c1c565b005b34801561046a575f80fd5b50610473610e6b565b604051610480919061280e565b60405180910390f35b348015610494575f80fd5b506104af60048036038101906104aa91906120b5565b610e90565b6040516104be939291906128ba565b60405180910390f35b3480156104d2575f80fd5b506104ed60048036038101906104e891906128ef565b610ee2565b6040516104fa919061209c565b60405180910390f35b34801561050e575f80fd5b506105296004803603810190610524919061292d565b610f70565b005b348015610536575f80fd5b50610551600480360381019061054c91906129c0565b61101e565b005b5f805f8381526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f7fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061067257507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806106825750610681826110a2565b5b9050919050565b60606002805461069890612a18565b80601f01602080910402602001604051908101604052809291908181526020018280546106c490612a18565b801561070f5780601f106106e65761010080835404028352916020019161070f565b820191905f5260205f20905b8154815290600101906020018083116106f257829003601f168201915b50505050509050919050565b5f8060646005548461072d9190612a75565b6107379190612ae3565b905060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691509250929050565b5f61076d61110b565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141580156107b257506107b08682610ee2565b155b156107f65780866040517fe237d9220000000000000000000000000000000000000000000000000000000081526004016107ed929190612b13565b60405180910390fd5b6108038686868686611112565b505050505050565b60065f9054906101000a900460ff1681565b6060815183511461086957815183516040517f5b059991000000000000000000000000000000000000000000000000000000008152600401610860929190612b3a565b60405180910390fd5b5f835167ffffffffffffffff81111561088557610884612202565b5b6040519080825280602002602001820160405280156108b35781602001602082028036833780820191505090505b5090505f5b8451811015610919576108ef6108d7828761120690919063ffffffff16565b6108ea838761121990919063ffffffff16565b610553565b82828151811061090257610901612b61565b5b6020026020010181815250508060010190506108b8565b508091505092915050565b61092c61122c565b8060058190555050565b5f6109413385610553565b11610981576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097890612bfe565b60405180910390fd5b5f60075f8581526020019081526020015f20905082815f018190555081816001015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018160010160146101000a81548160ff02191690831515021790555050505050565b610a0a61122c565b610a135f6112b3565b565b610a1d61122c565b610a5960045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683600160405180602001604052805f815250611376565b610a628161140b565b5050565b60055481565b5f60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60075f8281526020019081526020015f2060010160149054906101000a900460ff16610af5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aec90612c66565b60405180910390fd5b5f610b003383610553565b11610b40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3790612cf4565b60405180910390fd5b5f60075f8381526020019081526020015f2060010160146101000a81548160ff02191690831515021790555050565b610b7761122c565b8060065f6101000a81548160ff02191690831515021790555050565b610ba5610b9e61110b565b838361141e565b5050565b610bb161122c565b5f610bbc3383610553565b11610bfc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf390612d82565b60405180910390fd5b610c18338383600160405180602001604052805f815250611587565b5050565b60075f8281526020019081526020015f2060010160149054906101000a900460ff16610c7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7490612dea565b60405180910390fd5b5f60075f8381526020019081526020015f205f01549050803414610cd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ccd90612e52565b60405180910390fd5b5f80610ce2848461071b565b915091505f8184610cf39190612e70565b90505f8373ffffffffffffffffffffffffffffffffffffffff1683604051610d1a90612ed0565b5f6040518083038185875af1925050503d805f8114610d54576040519150601f19603f3d011682016040523d82523d5f602084013e610d59565b606091505b5050905080610d9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9490612f2e565b60405180910390fd5b5f8773ffffffffffffffffffffffffffffffffffffffff1683604051610dc290612ed0565b5f6040518083038185875af1925050503d805f8114610dfc576040519150601f19603f3d011682016040523d82523d5f602084013e610e01565b606091505b5050905080610e45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3c90612f96565b60405180910390fd5b610e61883389600160405180602001604052805f815250611587565b5050505050505050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6007602052805f5260405f205f91509050805f015490806001015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060010160149054906101000a900460ff16905083565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b60065f9054906101000a900460ff16610fbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb590612ffe565b60405180910390fd5b81610fc98685610553565b101561100a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100190613066565b60405180910390fd5b611017858585858561168d565b5050505050565b61102661122c565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611096575f6040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040161108d919061280e565b60405180910390fd5b61109f816112b3565b50565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611182575f6040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611179919061280e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036111f2575f6040517f01a835140000000000000000000000000000000000000000000000000000000081526004016111e9919061280e565b60405180910390fd5b6111ff8585858585611734565b5050505050565b5f60208202602084010151905092915050565b5f60208202602084010151905092915050565b61123461110b565b73ffffffffffffffffffffffffffffffffffffffff16611252610a6c565b73ffffffffffffffffffffffffffffffffffffffff16146112b15761127561110b565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016112a8919061280e565b60405180910390fd5b565b5f60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036113e6575f6040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016113dd919061280e565b60405180910390fd5b5f806113f285856117e0565b915091506114035f87848487611734565b505050505050565b806002908161141a9190613221565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361148e575f6040517fced3e100000000000000000000000000000000000000000000000000000000008152600401611485919061280e565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405161157a919061209c565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036115f7575f6040517f57f447ce0000000000000000000000000000000000000000000000000000000081526004016115ee919061280e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603611667575f6040517f01a8351400000000000000000000000000000000000000000000000000000000815260040161165e919061280e565b60405180910390fd5b5f8061167385856117e0565b915091506116848787848487611734565b50505050505050565b5f61169661110b565b90508073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff16141580156116db57506116d98682610ee2565b155b1561171f5780866040517fe237d922000000000000000000000000000000000000000000000000000000008152600401611716929190612b13565b60405180910390fd5b61172c8686868686611587565b505050505050565b61174085858585611810565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146117d9575f61177c61110b565b905060018451036117c8575f61179b5f8661121990919063ffffffff16565b90505f6117b15f8661121990919063ffffffff16565b90506117c1838989858589611ba0565b50506117d7565b6117d6818787878787611d4f565b5b505b5050505050565b60608060405191506001825283602083015260408201905060018152826020820152604081016040529250929050565b805182511461185a57815181516040517f5b059991000000000000000000000000000000000000000000000000000000008152600401611851929190612b3a565b60405180910390fd5b5f61186361110b565b90505f5b8351811015611a5f575f611884828661121990919063ffffffff16565b90505f61189a838661121990919063ffffffff16565b90505f73ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16146119bd575f805f8481526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508181101561196957888183856040517f03dee4c500000000000000000000000000000000000000000000000000000000815260040161196094939291906132f0565b60405180910390fd5b8181035f808581526020019081526020015f205f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614611a5257805f808481526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611a4a9190613333565b925050819055505b5050806001019050611867565b506001835103611b1a575f611a7d5f8561121990919063ffffffff16565b90505f611a935f8561121990919063ffffffff16565b90508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628585604051611b0b929190612b3a565b60405180910390a45050611b99565b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051611b90929190613366565b60405180910390a45b5050505050565b5f8473ffffffffffffffffffffffffffffffffffffffff163b1115611d47578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401611c009594939291906133ed565b6020604051808303815f875af1925050508015611c3b57506040513d601f19601f82011682018060405250810190611c389190613459565b60015b611cbc573d805f8114611c69576040519150601f19603f3d011682016040523d82523d5f602084013e611c6e565b606091505b505f815103611cb457846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611cab919061280e565b60405180910390fd5b805181602001fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611d4557846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611d3c919061280e565b60405180910390fd5b505b505050505050565b5f8473ffffffffffffffffffffffffffffffffffffffff163b1115611ef6578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b8152600401611daf959493929190613484565b6020604051808303815f875af1925050508015611dea57506040513d601f19601f82011682018060405250810190611de79190613459565b60015b611e6b573d805f8114611e18576040519150601f19603f3d011682016040523d82523d5f602084013e611e1d565b606091505b505f815103611e6357846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611e5a919061280e565b60405180910390fd5b805181602001fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611ef457846040517f57f447ce000000000000000000000000000000000000000000000000000000008152600401611eeb919061280e565b60405180910390fd5b505b505050505050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611f3882611f0f565b9050919050565b611f4881611f2e565b8114611f52575f80fd5b50565b5f81359050611f6381611f3f565b92915050565b5f819050919050565b611f7b81611f69565b8114611f85575f80fd5b50565b5f81359050611f9681611f72565b92915050565b5f8060408385031215611fb257611fb1611f07565b5b5f611fbf85828601611f55565b9250506020611fd085828601611f88565b9150509250929050565b611fe381611f69565b82525050565b5f602082019050611ffc5f830184611fda565b92915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61203681612002565b8114612040575f80fd5b50565b5f813590506120518161202d565b92915050565b5f6020828403121561206c5761206b611f07565b5b5f61207984828501612043565b91505092915050565b5f8115159050919050565b61209681612082565b82525050565b5f6020820190506120af5f83018461208d565b92915050565b5f602082840312156120ca576120c9611f07565b5b5f6120d784828501611f88565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156121175780820151818401526020810190506120fc565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61213c826120e0565b61214681856120ea565b93506121568185602086016120fa565b61215f81612122565b840191505092915050565b5f6020820190508181035f8301526121828184612132565b905092915050565b5f80604083850312156121a05761219f611f07565b5b5f6121ad85828601611f88565b92505060206121be85828601611f88565b9150509250929050565b6121d181611f2e565b82525050565b5f6040820190506121ea5f8301856121c8565b6121f76020830184611fda565b9392505050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61223882612122565b810181811067ffffffffffffffff8211171561225757612256612202565b5b80604052505050565b5f612269611efe565b9050612275828261222f565b919050565b5f67ffffffffffffffff82111561229457612293612202565b5b602082029050602081019050919050565b5f80fd5b5f6122bb6122b68461227a565b612260565b905080838252602082019050602084028301858111156122de576122dd6122a5565b5b835b8181101561230757806122f38882611f88565b8452602084019350506020810190506122e0565b5050509392505050565b5f82601f830112612325576123246121fe565b5b81356123358482602086016122a9565b91505092915050565b5f80fd5b5f67ffffffffffffffff82111561235c5761235b612202565b5b61236582612122565b9050602081019050919050565b828183375f83830152505050565b5f61239261238d84612342565b612260565b9050828152602081018484840111156123ae576123ad61233e565b5b6123b9848285612372565b509392505050565b5f82601f8301126123d5576123d46121fe565b5b81356123e5848260208601612380565b91505092915050565b5f805f805f60a0868803121561240757612406611f07565b5b5f61241488828901611f55565b955050602061242588828901611f55565b945050604086013567ffffffffffffffff81111561244657612445611f0b565b5b61245288828901612311565b935050606086013567ffffffffffffffff81111561247357612472611f0b565b5b61247f88828901612311565b925050608086013567ffffffffffffffff8111156124a05761249f611f0b565b5b6124ac888289016123c1565b9150509295509295909350565b5f67ffffffffffffffff8211156124d3576124d2612202565b5b602082029050602081019050919050565b5f6124f66124f1846124b9565b612260565b90508083825260208201905060208402830185811115612519576125186122a5565b5b835b81811015612542578061252e8882611f55565b84526020840193505060208101905061251b565b5050509392505050565b5f82601f8301126125605761255f6121fe565b5b81356125708482602086016124e4565b91505092915050565b5f806040838503121561258f5761258e611f07565b5b5f83013567ffffffffffffffff8111156125ac576125ab611f0b565b5b6125b88582860161254c565b925050602083013567ffffffffffffffff8111156125d9576125d8611f0b565b5b6125e585828601612311565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61262181611f69565b82525050565b5f6126328383612618565b60208301905092915050565b5f602082019050919050565b5f612654826125ef565b61265e81856125f9565b935061266983612609565b805f5b838110156126995781516126808882612627565b975061268b8361263e565b92505060018101905061266c565b5085935050505092915050565b5f6020820190508181035f8301526126be818461264a565b905092915050565b5f805f606084860312156126dd576126dc611f07565b5b5f6126ea86828701611f88565b93505060206126fb86828701611f88565b925050604061270c86828701611f55565b9150509250925092565b5f67ffffffffffffffff8211156127305761272f612202565b5b61273982612122565b9050602081019050919050565b5f61275861275384612716565b612260565b9050828152602081018484840111156127745761277361233e565b5b61277f848285612372565b509392505050565b5f82601f83011261279b5761279a6121fe565b5b81356127ab848260208601612746565b91505092915050565b5f80604083850312156127ca576127c9611f07565b5b5f6127d785828601611f88565b925050602083013567ffffffffffffffff8111156127f8576127f7611f0b565b5b61280485828601612787565b9150509250929050565b5f6020820190506128215f8301846121c8565b92915050565b61283081612082565b811461283a575f80fd5b50565b5f8135905061284b81612827565b92915050565b5f6020828403121561286657612865611f07565b5b5f6128738482850161283d565b91505092915050565b5f806040838503121561289257612891611f07565b5b5f61289f85828601611f55565b92505060206128b08582860161283d565b9150509250929050565b5f6060820190506128cd5f830186611fda565b6128da60208301856121c8565b6128e7604083018461208d565b949350505050565b5f806040838503121561290557612904611f07565b5b5f61291285828601611f55565b925050602061292385828601611f55565b9150509250929050565b5f805f805f60a0868803121561294657612945611f07565b5b5f61295388828901611f55565b955050602061296488828901611f55565b945050604061297588828901611f88565b935050606061298688828901611f88565b925050608086013567ffffffffffffffff8111156129a7576129a6611f0b565b5b6129b3888289016123c1565b9150509295509295909350565b5f602082840312156129d5576129d4611f07565b5b5f6129e284828501611f55565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612a2f57607f821691505b602082108103612a4257612a416129eb565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612a7f82611f69565b9150612a8a83611f69565b9250828202612a9881611f69565b91508282048414831517612aaf57612aae612a48565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612aed82611f69565b9150612af883611f69565b925082612b0857612b07612ab6565b5b828204905092915050565b5f604082019050612b265f8301856121c8565b612b3360208301846121c8565b9392505050565b5f604082019050612b4d5f830185611fda565b612b5a6020830184611fda565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f596f75206d757374206f776e2074686520746f6b656e20746f206c69737420695f8201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b5f612be86021836120ea565b9150612bf382612b8e565b604082019050919050565b5f6020820190508181035f830152612c1581612bdc565b9050919050565b7f546f6b656e206973206e6f74206c6973746564000000000000000000000000005f82015250565b5f612c506013836120ea565b9150612c5b82612c1c565b602082019050919050565b5f6020820190508181035f830152612c7d81612c44565b9050919050565b7f596f75206d757374206f776e2074686520746f6b656e20746f2064656c6973745f8201527f2069740000000000000000000000000000000000000000000000000000000000602082015250565b5f612cde6023836120ea565b9150612ce982612c84565b604082019050919050565b5f6020820190508181035f830152612d0b81612cd2565b9050919050565b7f596f75206d757374206f776e2074686520746f6b656e20746f207472616e73665f8201527f6572206974000000000000000000000000000000000000000000000000000000602082015250565b5f612d6c6025836120ea565b9150612d7782612d12565b604082019050919050565b5f6020820190508181035f830152612d9981612d60565b9050919050565b7f546f6b656e206e6f74206c697374656420666f722073616c65000000000000005f82015250565b5f612dd46019836120ea565b9150612ddf82612da0565b602082019050919050565b5f6020820190508181035f830152612e0181612dc8565b9050919050565b7f496e636f7272656374204554482073656e7400000000000000000000000000005f82015250565b5f612e3c6012836120ea565b9150612e4782612e08565b602082019050919050565b5f6020820190508181035f830152612e6981612e30565b9050919050565b5f612e7a82611f69565b9150612e8583611f69565b9250828203905081811115612e9d57612e9c612a48565b5b92915050565b5f81905092915050565b50565b5f612ebb5f83612ea3565b9150612ec682612ead565b5f82019050919050565b5f612eda82612eb0565b9150819050919050565b7f526f79616c7479207061796d656e74206661696c6564000000000000000000005f82015250565b5f612f186016836120ea565b9150612f2382612ee4565b602082019050919050565b5f6020820190508181035f830152612f4581612f0c565b9050919050565b7f5061796d656e7420746f2073656c6c6572206661696c656400000000000000005f82015250565b5f612f806018836120ea565b9150612f8b82612f4c565b602082019050919050565b5f6020820190508181035f830152612fad81612f74565b9050919050565b7f5472616e7366657273206172652063757272656e746c792064697361626c65645f82015250565b5f612fe86020836120ea565b9150612ff382612fb4565b602082019050919050565b5f6020820190508181035f83015261301581612fdc565b9050919050565b7f496e73756666696369656e7420746f6b656e2062616c616e63650000000000005f82015250565b5f613050601a836120ea565b915061305b8261301c565b602082019050919050565b5f6020820190508181035f83015261307d81613044565b9050919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026130e07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826130a5565b6130ea86836130a5565b95508019841693508086168417925050509392505050565b5f819050919050565b5f61312561312061311b84611f69565b613102565b611f69565b9050919050565b5f819050919050565b61313e8361310b565b61315261314a8261312c565b8484546130b1565b825550505050565b5f90565b61316661315a565b613171818484613135565b505050565b5b81811015613194576131895f8261315e565b600181019050613177565b5050565b601f8211156131d9576131aa81613084565b6131b384613096565b810160208510156131c2578190505b6131d66131ce85613096565b830182613176565b50505b505050565b5f82821c905092915050565b5f6131f95f19846008026131de565b1980831691505092915050565b5f61321183836131ea565b9150826002028217905092915050565b61322a826120e0565b67ffffffffffffffff81111561324357613242612202565b5b61324d8254612a18565b613258828285613198565b5f60209050601f831160018114613289575f8415613277578287015190505b6132818582613206565b8655506132e8565b601f19841661329786613084565b5f5b828110156132be57848901518255600182019150602085019450602081019050613299565b868310156132db57848901516132d7601f8916826131ea565b8355505b6001600288020188555050505b505050505050565b5f6080820190506133035f8301876121c8565b6133106020830186611fda565b61331d6040830185611fda565b61332a6060830184611fda565b95945050505050565b5f61333d82611f69565b915061334883611f69565b92508282019050808211156133605761335f612a48565b5b92915050565b5f6040820190508181035f83015261337e818561264a565b90508181036020830152613392818461264a565b90509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f6133bf8261339b565b6133c981856133a5565b93506133d98185602086016120fa565b6133e281612122565b840191505092915050565b5f60a0820190506134005f8301886121c8565b61340d60208301876121c8565b61341a6040830186611fda565b6134276060830185611fda565b818103608083015261343981846133b5565b90509695505050505050565b5f815190506134538161202d565b92915050565b5f6020828403121561346e5761346d611f07565b5b5f61347b84828501613445565b91505092915050565b5f60a0820190506134975f8301886121c8565b6134a460208301876121c8565b81810360408301526134b6818661264a565b905081810360608301526134ca818561264a565b905081810360808301526134de81846133b5565b9050969550505050505056fea2646970667358221220bf38cf397c25593f5415e01692ada40b72f30612b2d492cd94adac7a84e595d764736f6c63430008180033000000000000000000000000fd8cd1da32884e57bc5196d421318fbf9c3e0d4a000000000000000000000000000000000000000000000000000000000000000a