6080604052695915a68d88da6a0800006000196200001e91906200070e565b6000196200002d919062000775565b6006556000600855601e6009556000600a556028600b55600a54600c55600b54600d55600c54600e55600d54600f5533601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601560146101000a81548160ff02191690831515021790555060006015806101000a81548160ff0219169083151502179055506001601560166101000a81548160ff0219169083151502179055506901c75d6ae6e4814000006016556901c75d6ae6e481400000601755682d89577d7d402000006018553480156200016457600080fd5b50600062000177620006a460201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600654600260006200022c620006a460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000310573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200033691906200081a565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200039e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003c491906200081a565b6040518363ffffffff1660e01b8152600401620003e39291906200085d565b6020604051808303816000875af115801562000403573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200042991906200081a565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560006200047f620006ac60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200062c620006a460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef695915a68d88da6a0800006040516200069591906200089b565b60405180910390a350620008b8565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200071b82620006d5565b91506200072883620006d5565b9250826200073b576200073a620006df565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200078282620006d5565b91506200078f83620006d5565b925082821015620007a557620007a462000746565b5b828203905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620007e282620007b5565b9050919050565b620007f481620007d5565b81146200080057600080fd5b50565b6000815190506200081481620007e9565b92915050565b600060208284031215620008335762000832620007b0565b5b6000620008438482850162000803565b91505092915050565b6200085781620007d5565b82525050565b60006040820190506200087460008301856200084c565b6200088360208301846200084c565b9392505050565b6200089581620006d5565b82525050565b6000602082019050620008b260008301846200088a565b92915050565b613dcd80620008c86000396000f3fe6080604052600436106101d15760003560e01c80637f2feddc116100f7578063a9059cbb11610095578063c492f04611610064578063c492f0461461065d578063dd62ed3e14610686578063ea1644d5146106c3578063f2fde38b146106ec576101d8565b8063a9059cbb146105a3578063bba4de00146105e0578063bfd7928414610609578063c3c8cd8014610646576101d8565b80638f9a55c0116100d15780638f9a55c0146104fb57806395d89b411461052657806398a5c31514610551578063a2a957bb1461057a576101d8565b80637f2feddc1461046a5780638da5cb5b146104a75780638f70ccf7146104d2576101d8565b806349bd5a5e1161016f57806370a082311161013e57806370a08231146103c2578063715018a6146103ff57806374010ece146104165780637d1db4a51461043f576101d8565b806349bd5a5e1461032e57806369b33c6e146103595780636d8aa8f8146103825780636fc3eaec146103ab576101d8565b806318160ddd116101ab57806318160ddd1461027057806323b872dd1461029b5780632fd689e3146102d8578063313ce56714610303576101d8565b806306fdde03146101dd578063095ea7b3146102085780631694505e14610245576101d8565b366101d857005b600080fd5b3480156101e957600080fd5b506101f2610715565b6040516101ff9190612c28565b60405180910390f35b34801561021457600080fd5b5061022f600480360381019061022a9190612cf2565b610752565b60405161023c9190612d4d565b60405180910390f35b34801561025157600080fd5b5061025a610770565b6040516102679190612dc7565b60405180910390f35b34801561027c57600080fd5b50610285610796565b6040516102929190612df1565b60405180910390f35b3480156102a757600080fd5b506102c260048036038101906102bd9190612e0c565b6107a8565b6040516102cf9190612d4d565b60405180910390f35b3480156102e457600080fd5b506102ed610881565b6040516102fa9190612df1565b60405180910390f35b34801561030f57600080fd5b50610318610887565b6040516103259190612e7b565b60405180910390f35b34801561033a57600080fd5b50610343610890565b6040516103509190612ea5565b60405180910390f35b34801561036557600080fd5b50610380600480360381019061037b9190612ec0565b6108b6565b005b34801561038e57600080fd5b506103a960048036038101906103a49190612f19565b6109a6565b005b3480156103b757600080fd5b506103c0610a58565b005b3480156103ce57600080fd5b506103e960048036038101906103e49190612ec0565b610b29565b6040516103f69190612df1565b60405180910390f35b34801561040b57600080fd5b50610414610b7a565b005b34801561042257600080fd5b5061043d60048036038101906104389190612f46565b610ccd565b005b34801561044b57600080fd5b50610454610d6c565b6040516104619190612df1565b60405180910390f35b34801561047657600080fd5b50610491600480360381019061048c9190612ec0565b610d72565b60405161049e9190612df1565b60405180910390f35b3480156104b357600080fd5b506104bc610d8a565b6040516104c99190612ea5565b60405180910390f35b3480156104de57600080fd5b506104f960048036038101906104f49190612f19565b610db3565b005b34801561050757600080fd5b50610510610e65565b60405161051d9190612df1565b60405180910390f35b34801561053257600080fd5b5061053b610e6b565b6040516105489190612c28565b60405180910390f35b34801561055d57600080fd5b5061057860048036038101906105739190612f46565b610ea8565b005b34801561058657600080fd5b506105a1600480360381019061059c9190612f73565b610f47565b005b3480156105af57600080fd5b506105ca60048036038101906105c59190612cf2565b610ffe565b6040516105d79190612d4d565b60405180910390f35b3480156105ec57600080fd5b5061060760048036038101906106029190613122565b61101c565b005b34801561061557600080fd5b50610630600480360381019061062b9190612ec0565b611146565b60405161063d9190612d4d565b60405180910390f35b34801561065257600080fd5b5061065b611166565b005b34801561066957600080fd5b50610684600480360381019061067f91906131c6565b61123f565b005b34801561069257600080fd5b506106ad60048036038101906106a89190613226565b611379565b6040516106ba9190612df1565b60405180910390f35b3480156106cf57600080fd5b506106ea60048036038101906106e59190612f46565b611400565b005b3480156106f857600080fd5b50610713600480360381019061070e9190612ec0565b61149f565b005b60606040518060400160405280600681526020017f57414c4c2e450000000000000000000000000000000000000000000000000000815250905090565b600061076661075f611660565b8484611668565b6001905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000695915a68d88da6a080000905090565b60006107b5848484611831565b610876846107c1611660565b61087185604051806060016040528060288152602001613d7060289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610827611660565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120b49092919063ffffffff16565b611668565b600190509392505050565b60185481565b60006009905090565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6108be611660565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461094b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610942906132b2565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6109ae611660565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a32906132b2565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a99611660565b73ffffffffffffffffffffffffffffffffffffffff161480610b0f5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610af7611660565b73ffffffffffffffffffffffffffffffffffffffff16145b610b1857600080fd5b6000479050610b2681612118565b50565b6000610b73600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612184565b9050919050565b610b82611660565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c06906132b2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610cd5611660565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d59906132b2565b60405180910390fd5b8060168190555050565b60165481565b60116020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610dbb611660565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3f906132b2565b60405180910390fd5b80601560146101000a81548160ff02191690831515021790555050565b60175481565b60606040518060400160405280600681526020017f57414c4c2e450000000000000000000000000000000000000000000000000000815250905090565b610eb0611660565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f34906132b2565b60405180910390fd5b8060188190555050565b610f4f611660565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fdc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd3906132b2565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b600061101261100b611660565b8484611831565b6001905092915050565b611024611660565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a8906132b2565b60405180910390fd5b60005b8151811015611142576001601060008484815181106110d6576110d56132d2565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061113a90613330565b9150506110b4565b5050565b60106020528060005260406000206000915054906101000a900460ff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111a7611660565b73ffffffffffffffffffffffffffffffffffffffff16148061121d5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611205611660565b73ffffffffffffffffffffffffffffffffffffffff16145b61122657600080fd5b600061123130610b29565b905061123c816121f2565b50565b611247611660565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112cb906132b2565b60405180910390fd5b60005b838390508110156113735781600560008686858181106112fa576112f96132d2565b5b905060200201602081019061130f9190612ec0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061136b90613330565b9150506112d7565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611408611660565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611495576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148c906132b2565b60405180910390fd5b8060178190555050565b6114a7611660565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611534576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152b906132b2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036115a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159a906133ea565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ce9061347c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611746576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173d9061350e565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516118249190612df1565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036118a0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611897906135a0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361190f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190690613632565b60405180910390fd5b60008111611952576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611949906136c4565b60405180910390fd5b61195a610d8a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156119c85750611998610d8a565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611db357601560149054906101000a900460ff16611a57576119e9610d8a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611a56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4d90613756565b60405180910390fd5b5b601654811115611a9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a93906137c2565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611b405750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611b7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7690613854565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611c2c5760175481611be184610b29565b611beb9190613874565b10611c2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c229061393c565b60405180910390fd5b5b6000611c3730610b29565b9050600060185482101590506016548210611c525760165491505b808015611c6a575060158054906101000a900460ff16155b8015611cc45750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611cdc5750601560169054906101000a900460ff165b8015611d325750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611d885750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611db057611d96826121f2565b60004790506000811115611dae57611dad47612118565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611e5a5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611f0d5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611f0c5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611f1b57600090506120a2565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611fc65750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611fde57600854600c81905550600954600d819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156120895750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156120a157600a54600c81905550600b54600d819055505b5b6120ae84848484612469565b50505050565b60008383111582906120fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120f39190612c28565b60405180910390fd5b506000838561210b919061395c565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612180573d6000803e3d6000fd5b5050565b60006006548211156121cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121c290613a02565b60405180910390fd5b60006121d5612496565b90506121ea81846124c190919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561222957612228612fdf565b5b6040519080825280602002602001820160405280156122575781602001602082028036833780820191505090505b509050308160008151811061226f5761226e6132d2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612316573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061233a9190613a37565b8160018151811061234e5761234d6132d2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506123b530601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611668565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612419959493929190613b5d565b600060405180830381600087803b15801561243357600080fd5b505af1158015612447573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b806124775761247661250b565b5b612482848484612548565b806124905761248f612713565b5b50505050565b60008060006124a3612727565b915091506124ba81836124c190919063ffffffff16565b9250505090565b600061250383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061278c565b905092915050565b6000600c5414801561251f57506000600d54145b61254657600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b60008060008060008061255a876127ef565b9550955095509550955095506125b886600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461285790919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061264d85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128a190919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612699816128ff565b6126a384836129bc565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516127009190612df1565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b600080600060065490506000695915a68d88da6a080000905061275f695915a68d88da6a0800006006546124c190919063ffffffff16565b82101561277f57600654695915a68d88da6a080000935093505050612788565b81819350935050505b9091565b600080831182906127d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127ca9190612c28565b60405180910390fd5b50600083856127e29190613be6565b9050809150509392505050565b600080600080600080600080600061280c8a600c54600d546129f6565b925092509250600061281c612496565b9050600080600061282f8e878787612a8c565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061289983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506120b4565b905092915050565b60008082846128b09190613874565b9050838110156128f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128ec90613c63565b60405180910390fd5b8091505092915050565b6000612909612496565b905060006129208284612b1590919063ffffffff16565b905061297481600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128a190919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6129d18260065461285790919063ffffffff16565b6006819055506129ec816007546128a190919063ffffffff16565b6007819055505050565b600080600080612a226064612a14888a612b1590919063ffffffff16565b6124c190919063ffffffff16565b90506000612a4c6064612a3e888b612b1590919063ffffffff16565b6124c190919063ffffffff16565b90506000612a7582612a67858c61285790919063ffffffff16565b61285790919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612aa58589612b1590919063ffffffff16565b90506000612abc8689612b1590919063ffffffff16565b90506000612ad38789612b1590919063ffffffff16565b90506000612afc82612aee858761285790919063ffffffff16565b61285790919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808303612b275760009050612b89565b60008284612b359190613c83565b9050828482612b449190613be6565b14612b84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b7b90613d4f565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612bc9578082015181840152602081019050612bae565b83811115612bd8576000848401525b50505050565b6000601f19601f8301169050919050565b6000612bfa82612b8f565b612c048185612b9a565b9350612c14818560208601612bab565b612c1d81612bde565b840191505092915050565b60006020820190508181036000830152612c428184612bef565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612c8982612c5e565b9050919050565b612c9981612c7e565b8114612ca457600080fd5b50565b600081359050612cb681612c90565b92915050565b6000819050919050565b612ccf81612cbc565b8114612cda57600080fd5b50565b600081359050612cec81612cc6565b92915050565b60008060408385031215612d0957612d08612c54565b5b6000612d1785828601612ca7565b9250506020612d2885828601612cdd565b9150509250929050565b60008115159050919050565b612d4781612d32565b82525050565b6000602082019050612d626000830184612d3e565b92915050565b6000819050919050565b6000612d8d612d88612d8384612c5e565b612d68565b612c5e565b9050919050565b6000612d9f82612d72565b9050919050565b6000612db182612d94565b9050919050565b612dc181612da6565b82525050565b6000602082019050612ddc6000830184612db8565b92915050565b612deb81612cbc565b82525050565b6000602082019050612e066000830184612de2565b92915050565b600080600060608486031215612e2557612e24612c54565b5b6000612e3386828701612ca7565b9350506020612e4486828701612ca7565b9250506040612e5586828701612cdd565b9150509250925092565b600060ff82169050919050565b612e7581612e5f565b82525050565b6000602082019050612e906000830184612e6c565b92915050565b612e9f81612c7e565b82525050565b6000602082019050612eba6000830184612e96565b92915050565b600060208284031215612ed657612ed5612c54565b5b6000612ee484828501612ca7565b91505092915050565b612ef681612d32565b8114612f0157600080fd5b50565b600081359050612f1381612eed565b92915050565b600060208284031215612f2f57612f2e612c54565b5b6000612f3d84828501612f04565b91505092915050565b600060208284031215612f5c57612f5b612c54565b5b6000612f6a84828501612cdd565b91505092915050565b60008060008060808587031215612f8d57612f8c612c54565b5b6000612f9b87828801612cdd565b9450506020612fac87828801612cdd565b9350506040612fbd87828801612cdd565b9250506060612fce87828801612cdd565b91505092959194509250565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61301782612bde565b810181811067ffffffffffffffff8211171561303657613035612fdf565b5b80604052505050565b6000613049612c4a565b9050613055828261300e565b919050565b600067ffffffffffffffff82111561307557613074612fdf565b5b602082029050602081019050919050565b600080fd5b600061309e6130998461305a565b61303f565b905080838252602082019050602084028301858111156130c1576130c0613086565b5b835b818110156130ea57806130d68882612ca7565b8452602084019350506020810190506130c3565b5050509392505050565b600082601f83011261310957613108612fda565b5b813561311984826020860161308b565b91505092915050565b60006020828403121561313857613137612c54565b5b600082013567ffffffffffffffff81111561315657613155612c59565b5b613162848285016130f4565b91505092915050565b600080fd5b60008083601f84011261318657613185612fda565b5b8235905067ffffffffffffffff8111156131a3576131a261316b565b5b6020830191508360208202830111156131bf576131be613086565b5b9250929050565b6000806000604084860312156131df576131de612c54565b5b600084013567ffffffffffffffff8111156131fd576131fc612c59565b5b61320986828701613170565b9350935050602061321c86828701612f04565b9150509250925092565b6000806040838503121561323d5761323c612c54565b5b600061324b85828601612ca7565b925050602061325c85828601612ca7565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061329c602083612b9a565b91506132a782613266565b602082019050919050565b600060208201905081810360008301526132cb8161328f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061333b82612cbc565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361336d5761336c613301565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006133d4602683612b9a565b91506133df82613378565b604082019050919050565b60006020820190508181036000830152613403816133c7565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613466602483612b9a565b91506134718261340a565b604082019050919050565b6000602082019050818103600083015261349581613459565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006134f8602283612b9a565b91506135038261349c565b604082019050919050565b60006020820190508181036000830152613527816134eb565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061358a602583612b9a565b91506135958261352e565b604082019050919050565b600060208201905081810360008301526135b98161357d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061361c602383612b9a565b9150613627826135c0565b604082019050919050565b6000602082019050818103600083015261364b8161360f565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006136ae602983612b9a565b91506136b982613652565b604082019050919050565b600060208201905081810360008301526136dd816136a1565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000613740603f83612b9a565b915061374b826136e4565b604082019050919050565b6000602082019050818103600083015261376f81613733565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b60006137ac601c83612b9a565b91506137b782613776565b602082019050919050565b600060208201905081810360008301526137db8161379f565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b600061383e602383612b9a565b9150613849826137e2565b604082019050919050565b6000602082019050818103600083015261386d81613831565b9050919050565b600061387f82612cbc565b915061388a83612cbc565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156138bf576138be613301565b5b828201905092915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000613926602383612b9a565b9150613931826138ca565b604082019050919050565b6000602082019050818103600083015261395581613919565b9050919050565b600061396782612cbc565b915061397283612cbc565b92508282101561398557613984613301565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b60006139ec602a83612b9a565b91506139f782613990565b604082019050919050565b60006020820190508181036000830152613a1b816139df565b9050919050565b600081519050613a3181612c90565b92915050565b600060208284031215613a4d57613a4c612c54565b5b6000613a5b84828501613a22565b91505092915050565b6000819050919050565b6000613a89613a84613a7f84613a64565b612d68565b612cbc565b9050919050565b613a9981613a6e565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613ad481612c7e565b82525050565b6000613ae68383613acb565b60208301905092915050565b6000602082019050919050565b6000613b0a82613a9f565b613b148185613aaa565b9350613b1f83613abb565b8060005b83811015613b50578151613b378882613ada565b9750613b4283613af2565b925050600181019050613b23565b5085935050505092915050565b600060a082019050613b726000830188612de2565b613b7f6020830187613a90565b8181036040830152613b918186613aff565b9050613ba06060830185612e96565b613bad6080830184612de2565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613bf182612cbc565b9150613bfc83612cbc565b925082613c0c57613c0b613bb7565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613c4d601b83612b9a565b9150613c5882613c17565b602082019050919050565b60006020820190508181036000830152613c7c81613c40565b9050919050565b6000613c8e82612cbc565b9150613c9983612cbc565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613cd257613cd1613301565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613d39602183612b9a565b9150613d4482613cdd565b604082019050919050565b60006020820190508181036000830152613d6881613d2c565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220f55479cb6a853a5c2c6bda4bc52fe255cc10ba511c33c92a45555706cc638ecc64736f6c634300080f0033