6080604052695915a68d88da6a0800006000196200001e919062000765565b6000196200002d9190620007cc565b6006556000600855600f6009556000600a55602d600b55600a54600c55600b54600d55600c54600e55600d54600f557358e33d0475ea4e4697cdb3719fbe8e368052a485601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507358e33d0475ea4e4697cdb3719fbe8e368052a485601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601560146101000a81548160ff02191690831515021790555060006015806101000a81548160ff0219169083151502179055506001601560166101000a81548160ff021916908315150217905550682d9c7e3c2d7e2a00006016556901c75d6ae6e445a53600601755682d9c7e3c2d7e2a00006018553480156200018b57600080fd5b5060006200019e620006fb60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506006546002600062000253620006fb60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200033257600080fd5b505afa15801562000347573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200036d919062000871565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620003d057600080fd5b505afa158015620003e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200040b919062000871565b6040518363ffffffff1660e01b81526004016200042a929190620008b4565b602060405180830381600087803b1580156200044557600080fd5b505af11580156200045a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000480919062000871565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160056000620004d66200070360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000683620006fb60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef695915a68d88da6a080000604051620006ec9190620008f2565b60405180910390a3506200090f565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000772826200072c565b91506200077f836200072c565b92508262000792576200079162000736565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620007d9826200072c565b9150620007e6836200072c565b925082821015620007fc57620007fb6200079d565b5b828203905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000839826200080c565b9050919050565b6200084b816200082c565b81146200085757600080fd5b50565b6000815190506200086b8162000840565b92915050565b6000602082840312156200088a576200088962000807565b5b60006200089a848285016200085a565b91505092915050565b620008ae816200082c565b82525050565b6000604082019050620008cb6000830185620008a3565b620008da6020830184620008a3565b9392505050565b620008ec816200072c565b82525050565b6000602082019050620009096000830184620008e1565b92915050565b61379a806200091f6000396000f3fe6080604052600436106101a05760003560e01c80637d1db4a5116100ec578063a9059cbb1161008a578063c492f04611610064578063c492f046146105b1578063dd62ed3e146105da578063ea1644d514610617578063f2fde38b14610640576101a7565b8063a9059cbb14610520578063bfd792841461055d578063c3c8cd801461059a576101a7565b80638f9a55c0116100c65780638f9a55c01461047857806395d89b41146104a357806398a5c315146104ce578063a2a957bb146104f7576101a7565b80637d1db4a5146103e55780637f2feddc146104105780638da5cb5b1461044d576101a7565b8063313ce567116101595780636fc3eaec116101335780636fc3eaec1461035157806370a0823114610368578063715018a6146103a557806374010ece146103bc576101a7565b8063313ce567146102d257806349bd5a5e146102fd5780636d8aa8f814610328576101a7565b806306fdde03146101ac578063095ea7b3146101d75780631694505e1461021457806318160ddd1461023f57806323b872dd1461026a5780632fd689e3146102a7576101a7565b366101a757005b600080fd5b3480156101b857600080fd5b506101c1610669565b6040516101ce91906127e8565b60405180910390f35b3480156101e357600080fd5b506101fe60048036038101906101f991906128a8565b6106a6565b60405161020b9190612903565b60405180910390f35b34801561022057600080fd5b506102296106c4565b604051610236919061297d565b60405180910390f35b34801561024b57600080fd5b506102546106ea565b60405161026191906129a7565b60405180910390f35b34801561027657600080fd5b50610291600480360381019061028c91906129c2565b6106fc565b60405161029e9190612903565b60405180910390f35b3480156102b357600080fd5b506102bc6107d5565b6040516102c991906129a7565b60405180910390f35b3480156102de57600080fd5b506102e76107db565b6040516102f49190612a31565b60405180910390f35b34801561030957600080fd5b506103126107e4565b60405161031f9190612a5b565b60405180910390f35b34801561033457600080fd5b5061034f600480360381019061034a9190612aa2565b61080a565b005b34801561035d57600080fd5b506103666108bc565b005b34801561037457600080fd5b5061038f600480360381019061038a9190612acf565b61098d565b60405161039c91906129a7565b60405180910390f35b3480156103b157600080fd5b506103ba6109de565b005b3480156103c857600080fd5b506103e360048036038101906103de9190612afc565b610b31565b005b3480156103f157600080fd5b506103fa610bd0565b60405161040791906129a7565b60405180910390f35b34801561041c57600080fd5b5061043760048036038101906104329190612acf565b610bd6565b60405161044491906129a7565b60405180910390f35b34801561045957600080fd5b50610462610bee565b60405161046f9190612a5b565b60405180910390f35b34801561048457600080fd5b5061048d610c17565b60405161049a91906129a7565b60405180910390f35b3480156104af57600080fd5b506104b8610c1d565b6040516104c591906127e8565b60405180910390f35b3480156104da57600080fd5b506104f560048036038101906104f09190612afc565b610c5a565b005b34801561050357600080fd5b5061051e60048036038101906105199190612b29565b610cf9565b005b34801561052c57600080fd5b50610547600480360381019061054291906128a8565b610db0565b6040516105549190612903565b60405180910390f35b34801561056957600080fd5b50610584600480360381019061057f9190612acf565b610dce565b6040516105919190612903565b60405180910390f35b3480156105a657600080fd5b506105af610dee565b005b3480156105bd57600080fd5b506105d860048036038101906105d39190612bf5565b610ec7565b005b3480156105e657600080fd5b5061060160048036038101906105fc9190612c55565b611001565b60405161060e91906129a7565b60405180910390f35b34801561062357600080fd5b5061063e60048036038101906106399190612afc565b611088565b005b34801561064c57600080fd5b5061066760048036038101906106629190612acf565b611127565b005b60606040518060400160405280600f81526020017f576f726c644c6962657274792e66690000000000000000000000000000000000815250905090565b60006106ba6106b36112e9565b84846112f1565b6001905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000695915a68d88da6a080000905090565b60006107098484846114bc565b6107ca846107156112e9565b6107c58560405180606001604052806028815260200161373d60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061077b6112e9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c5e9092919063ffffffff16565b6112f1565b600190509392505050565b60185481565b60006009905090565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6108126112e9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461089f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089690612ce1565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fd6112e9565b73ffffffffffffffffffffffffffffffffffffffff1614806109735750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661095b6112e9565b73ffffffffffffffffffffffffffffffffffffffff16145b61097c57600080fd5b600047905061098a81611cc2565b50565b60006109d7600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d2e565b9050919050565b6109e66112e9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6a90612ce1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610b396112e9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bbd90612ce1565b60405180910390fd5b8060168190555050565b60165481565b60116020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60175481565b60606040518060400160405280600481526020017f574c464900000000000000000000000000000000000000000000000000000000815250905090565b610c626112e9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce690612ce1565b60405180910390fd5b8060188190555050565b610d016112e9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8590612ce1565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b6000610dc4610dbd6112e9565b84846114bc565b6001905092915050565b60106020528060005260406000206000915054906101000a900460ff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e2f6112e9565b73ffffffffffffffffffffffffffffffffffffffff161480610ea55750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e8d6112e9565b73ffffffffffffffffffffffffffffffffffffffff16145b610eae57600080fd5b6000610eb93061098d565b9050610ec481611d9c565b50565b610ecf6112e9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5390612ce1565b60405180910390fd5b60005b83839050811015610ffb578160056000868685818110610f8257610f81612d01565b5b9050602002016020810190610f979190612acf565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610ff390612d5f565b915050610f5f565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6110906112e9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461111d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111490612ce1565b60405180910390fd5b8060178190555050565b61112f6112e9565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b390612ce1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561122c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122390612e1a565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611361576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135890612eac565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156113d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c890612f3e565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114af91906129a7565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561152c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152390612fd0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561159c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159390613062565b60405180910390fd5b600081116115df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d6906130f4565b60405180910390fd5b6115e7610bee565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156116555750611625610bee565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561195d57601560149054906101000a900460ff166116e457611676610bee565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146116e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116da90613186565b60405180910390fd5b5b601654811115611729576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611720906131f2565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146117d6576017548161178b8461098d565b6117959190613212565b106117d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117cc906132da565b60405180910390fd5b5b60006117e13061098d565b90506000601854821015905060165482106117fc5760165491505b808015611814575060158054906101000a900460ff16155b801561186e5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156118865750601560169054906101000a900460ff165b80156118dc5750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156119325750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561195a5761194082611d9c565b600047905060008111156119585761195747611cc2565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611a045750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611ab75750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611ab65750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611ac55760009050611c4c565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611b705750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611b8857600854600c81905550600954600d819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611c335750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611c4b57600a54600c81905550600b54600d819055505b5b611c5884848484612022565b50505050565b6000838311158290611ca6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9d91906127e8565b60405180910390fd5b5060008385611cb591906132fa565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611d2a573d6000803e3d6000fd5b5050565b6000600654821115611d75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6c906133a0565b60405180910390fd5b6000611d7f61204f565b9050611d94818461207a90919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611dd357611dd26133c0565b5b604051908082528060200260200182016040528015611e015781602001602082028036833780820191505090505b5090503081600081518110611e1957611e18612d01565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611ebb57600080fd5b505afa158015611ecf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ef39190613404565b81600181518110611f0757611f06612d01565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611f6e30601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846112f1565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611fd295949392919061352a565b600060405180830381600087803b158015611fec57600080fd5b505af1158015612000573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b806120305761202f6120c4565b5b61203b848484612107565b80612049576120486122d2565b5b50505050565b600080600061205c6122e6565b91509150612073818361207a90919063ffffffff16565b9250505090565b60006120bc83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061234b565b905092915050565b6000600c541480156120d857506000600d54145b156120e257612105565b600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b600080600080600080612119876123ae565b95509550955095509550955061217786600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461241690919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061220c85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461246090919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612258816124be565b612262848361257b565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516122bf91906129a7565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b600080600060065490506000695915a68d88da6a080000905061231e695915a68d88da6a08000060065461207a90919063ffffffff16565b82101561233e57600654695915a68d88da6a080000935093505050612347565b81819350935050505b9091565b60008083118290612392576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161238991906127e8565b60405180910390fd5b50600083856123a191906135b3565b9050809150509392505050565b60008060008060008060008060006123cb8a600c54600d546125b5565b92509250925060006123db61204f565b905060008060006123ee8e87878761264b565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061245883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c5e565b905092915050565b600080828461246f9190613212565b9050838110156124b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124ab90613630565b60405180910390fd5b8091505092915050565b60006124c861204f565b905060006124df82846126d490919063ffffffff16565b905061253381600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461246090919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6125908260065461241690919063ffffffff16565b6006819055506125ab8160075461246090919063ffffffff16565b6007819055505050565b6000806000806125e160646125d3888a6126d490919063ffffffff16565b61207a90919063ffffffff16565b9050600061260b60646125fd888b6126d490919063ffffffff16565b61207a90919063ffffffff16565b9050600061263482612626858c61241690919063ffffffff16565b61241690919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061266485896126d490919063ffffffff16565b9050600061267b86896126d490919063ffffffff16565b9050600061269287896126d490919063ffffffff16565b905060006126bb826126ad858761241690919063ffffffff16565b61241690919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808314156126e75760009050612749565b600082846126f59190613650565b905082848261270491906135b3565b14612744576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161273b9061371c565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561278957808201518184015260208101905061276e565b83811115612798576000848401525b50505050565b6000601f19601f8301169050919050565b60006127ba8261274f565b6127c4818561275a565b93506127d481856020860161276b565b6127dd8161279e565b840191505092915050565b6000602082019050818103600083015261280281846127af565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061283f82612814565b9050919050565b61284f81612834565b811461285a57600080fd5b50565b60008135905061286c81612846565b92915050565b6000819050919050565b61288581612872565b811461289057600080fd5b50565b6000813590506128a28161287c565b92915050565b600080604083850312156128bf576128be61280a565b5b60006128cd8582860161285d565b92505060206128de85828601612893565b9150509250929050565b60008115159050919050565b6128fd816128e8565b82525050565b600060208201905061291860008301846128f4565b92915050565b6000819050919050565b600061294361293e61293984612814565b61291e565b612814565b9050919050565b600061295582612928565b9050919050565b60006129678261294a565b9050919050565b6129778161295c565b82525050565b6000602082019050612992600083018461296e565b92915050565b6129a181612872565b82525050565b60006020820190506129bc6000830184612998565b92915050565b6000806000606084860312156129db576129da61280a565b5b60006129e98682870161285d565b93505060206129fa8682870161285d565b9250506040612a0b86828701612893565b9150509250925092565b600060ff82169050919050565b612a2b81612a15565b82525050565b6000602082019050612a466000830184612a22565b92915050565b612a5581612834565b82525050565b6000602082019050612a706000830184612a4c565b92915050565b612a7f816128e8565b8114612a8a57600080fd5b50565b600081359050612a9c81612a76565b92915050565b600060208284031215612ab857612ab761280a565b5b6000612ac684828501612a8d565b91505092915050565b600060208284031215612ae557612ae461280a565b5b6000612af38482850161285d565b91505092915050565b600060208284031215612b1257612b1161280a565b5b6000612b2084828501612893565b91505092915050565b60008060008060808587031215612b4357612b4261280a565b5b6000612b5187828801612893565b9450506020612b6287828801612893565b9350506040612b7387828801612893565b9250506060612b8487828801612893565b91505092959194509250565b600080fd5b600080fd5b600080fd5b60008083601f840112612bb557612bb4612b90565b5b8235905067ffffffffffffffff811115612bd257612bd1612b95565b5b602083019150836020820283011115612bee57612bed612b9a565b5b9250929050565b600080600060408486031215612c0e57612c0d61280a565b5b600084013567ffffffffffffffff811115612c2c57612c2b61280f565b5b612c3886828701612b9f565b93509350506020612c4b86828701612a8d565b9150509250925092565b60008060408385031215612c6c57612c6b61280a565b5b6000612c7a8582860161285d565b9250506020612c8b8582860161285d565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612ccb60208361275a565b9150612cd682612c95565b602082019050919050565b60006020820190508181036000830152612cfa81612cbe565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612d6a82612872565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612d9d57612d9c612d30565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612e0460268361275a565b9150612e0f82612da8565b604082019050919050565b60006020820190508181036000830152612e3381612df7565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612e9660248361275a565b9150612ea182612e3a565b604082019050919050565b60006020820190508181036000830152612ec581612e89565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612f2860228361275a565b9150612f3382612ecc565b604082019050919050565b60006020820190508181036000830152612f5781612f1b565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612fba60258361275a565b9150612fc582612f5e565b604082019050919050565b60006020820190508181036000830152612fe981612fad565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061304c60238361275a565b915061305782612ff0565b604082019050919050565b6000602082019050818103600083015261307b8161303f565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006130de60298361275a565b91506130e982613082565b604082019050919050565b6000602082019050818103600083015261310d816130d1565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000613170603f8361275a565b915061317b82613114565b604082019050919050565b6000602082019050818103600083015261319f81613163565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b60006131dc601c8361275a565b91506131e7826131a6565b602082019050919050565b6000602082019050818103600083015261320b816131cf565b9050919050565b600061321d82612872565b915061322883612872565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561325d5761325c612d30565b5b828201905092915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b60006132c460238361275a565b91506132cf82613268565b604082019050919050565b600060208201905081810360008301526132f3816132b7565b9050919050565b600061330582612872565b915061331083612872565b92508282101561332357613322612d30565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b600061338a602a8361275a565b91506133958261332e565b604082019050919050565b600060208201905081810360008301526133b98161337d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000815190506133fe81612846565b92915050565b60006020828403121561341a5761341961280a565b5b6000613428848285016133ef565b91505092915050565b6000819050919050565b600061345661345161344c84613431565b61291e565b612872565b9050919050565b6134668161343b565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6134a181612834565b82525050565b60006134b38383613498565b60208301905092915050565b6000602082019050919050565b60006134d78261346c565b6134e18185613477565b93506134ec83613488565b8060005b8381101561351d57815161350488826134a7565b975061350f836134bf565b9250506001810190506134f0565b5085935050505092915050565b600060a08201905061353f6000830188612998565b61354c602083018761345d565b818103604083015261355e81866134cc565b905061356d6060830185612a4c565b61357a6080830184612998565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006135be82612872565b91506135c983612872565b9250826135d9576135d8613584565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061361a601b8361275a565b9150613625826135e4565b602082019050919050565b600060208201905081810360008301526136498161360d565b9050919050565b600061365b82612872565b915061366683612872565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561369f5761369e612d30565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061370660218361275a565b9150613711826136aa565b604082019050919050565b60006020820190508181036000830152613735816136f9565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220ca3e0d1628730d7d0c32a1db8dd7099163cec8e0f1f94d051141b9340a1e7bb864736f6c63430008090033