6080604052683635c9adc5dea000006000196200001d9190620005bc565b6000196200002c919062000543565b6006556002600855600e6009556000600f60156101000a81548160ff0219169083151502179055506000600f60166101000a81548160ff0219169083151502179055506000600f60176101000a81548160ff021916908315150217905550683635c9adc5dea00000601055348015620000a457600080fd5b5060405162004296380380620042968339818101604052810190620000ca9190620004d4565b6000620000dc6200048c60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35081600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060065460026000620002136200048c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160056000620002676200049460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620004146200048c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef683635c9adc5dea000006040516200047c919062000526565b60405180910390a350506200066c565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600081519050620004ce8162000652565b92915050565b60008060408385031215620004e857600080fd5b6000620004f885828601620004bd565b92505060206200050b85828601620004bd565b9150509250929050565b6200052081620005b2565b82525050565b60006020820190506200053d600083018462000515565b92915050565b60006200055082620005b2565b91506200055d83620005b2565b925082821015620005735762000572620005f4565b5b828203905092915050565b60006200058b8262000592565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000620005c982620005b2565b9150620005d683620005b2565b925082620005e957620005e862000623565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6200065d816200057e565b81146200066957600080fd5b50565b613c1a806200067c6000396000f3fe60806040526004361061012e5760003560e01c80638da5cb5b116100ab578063c9567bf91161006f578063c9567bf9146103c5578063cba0e996146103dc578063d00efb2f14610419578063d543dbeb14610444578063dd62ed3e1461046d578063e47d6060146104aa57610135565b80638da5cb5b146102f257806395d89b411461031d578063a9059cbb14610348578063b515566a14610385578063c3c8cd80146103ae57610135565b8063313ce567116100f2578063313ce567146102335780635932ead11461025e5780636fc3eaec1461028757806370a082311461029e578063715018a6146102db57610135565b806306fdde031461013a578063095ea7b31461016557806318160ddd146101a257806323b872dd146101cd578063273123b71461020a57610135565b3661013557005b600080fd5b34801561014657600080fd5b5061014f6104e7565b60405161015c91906132e2565b60405180910390f35b34801561017157600080fd5b5061018c60048036038101906101879190612e05565b610524565b60405161019991906132c7565b60405180910390f35b3480156101ae57600080fd5b506101b7610542565b6040516101c49190613484565b60405180910390f35b3480156101d957600080fd5b506101f460048036038101906101ef9190612db6565b610553565b60405161020191906132c7565b60405180910390f35b34801561021657600080fd5b50610231600480360381019061022c9190612d28565b61062c565b005b34801561023f57600080fd5b5061024861071c565b60405161025591906134f9565b60405180910390f35b34801561026a57600080fd5b5061028560048036038101906102809190612e82565b610725565b005b34801561029357600080fd5b5061029c6107d7565b005b3480156102aa57600080fd5b506102c560048036038101906102c09190612d28565b610849565b6040516102d29190613484565b60405180910390f35b3480156102e757600080fd5b506102f061089a565b005b3480156102fe57600080fd5b506103076109ed565b60405161031491906131f9565b60405180910390f35b34801561032957600080fd5b50610332610a16565b60405161033f91906132e2565b60405180910390f35b34801561035457600080fd5b5061036f600480360381019061036a9190612e05565b610a53565b60405161037c91906132c7565b60405180910390f35b34801561039157600080fd5b506103ac60048036038101906103a79190612e41565b610a71565b005b3480156103ba57600080fd5b506103c3610bc1565b005b3480156103d157600080fd5b506103da610c3b565b005b3480156103e857600080fd5b5061040360048036038101906103fe9190612d28565b61119e565b60405161041091906132c7565b60405180910390f35b34801561042557600080fd5b5061042e6111f4565b60405161043b9190613484565b60405180910390f35b34801561045057600080fd5b5061046b60048036038101906104669190612ed4565b6111fa565b005b34801561047957600080fd5b50610494600480360381019061048f9190612d7a565b611343565b6040516104a19190613484565b60405180910390f35b3480156104b657600080fd5b506104d160048036038101906104cc9190612d28565b6113ca565b6040516104de91906132c7565b60405180910390f35b60606040518060400160405280600a81526020017f436f736d6f7320496e7500000000000000000000000000000000000000000000815250905090565b6000610538610531611420565b8484611428565b6001905092915050565b6000683635c9adc5dea00000905090565b60006105608484846115f3565b6106218461056c611420565b61061c85604051806060016040528060288152602001613bbd60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105d2611420565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120379092919063ffffffff16565b611428565b600190509392505050565b610634611420565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106b8906133c4565b60405180910390fd5b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b61072d611420565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b1906133c4565b60405180910390fd5b80600f60176101000a81548160ff02191690831515021790555050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610818611420565b73ffffffffffffffffffffffffffffffffffffffff161461083857600080fd5b60004790506108468161209b565b50565b6000610893600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612196565b9050919050565b6108a2611420565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461092f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610926906133c4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600981526020017f436f736d6f73496e750000000000000000000000000000000000000000000000815250905090565b6000610a67610a60611420565b84846115f3565b6001905092915050565b610a79611420565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610afd906133c4565b60405180910390fd5b60005b8151811015610bbd576001600a6000848481518110610b51577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610bb59061379a565b915050610b09565b5050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c02611420565b73ffffffffffffffffffffffffffffffffffffffff1614610c2257600080fd5b6000610c2d30610849565b9050610c3881612204565b50565b610c43611420565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc7906133c4565b60405180910390fd5b600f60149054906101000a900460ff1615610d20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1790613444565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610db030600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16683635c9adc5dea00000611428565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610df657600080fd5b505afa158015610e0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2e9190612d51565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610e9057600080fd5b505afa158015610ea4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ec89190612d51565b6040518363ffffffff1660e01b8152600401610ee5929190613214565b602060405180830381600087803b158015610eff57600080fd5b505af1158015610f13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f379190612d51565b600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610fc030610849565b600080610fcb6109ed565b426040518863ffffffff1660e01b8152600401610fed96959493929190613266565b6060604051808303818588803b15801561100657600080fd5b505af115801561101a573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061103f9190612efd565b5050506001600f60166101000a81548160ff0219169083151502179055506001600f60176101000a81548160ff021916908315150217905550678ac7230489e80000601081905550436011819055506001600f60146101000a81548160ff021916908315150217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161114892919061323d565b602060405180830381600087803b15801561116257600080fd5b505af1158015611176573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061119a9190612eab565b5050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60115481565b611202611420565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461128f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611286906133c4565b60405180910390fd5b600081116112d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c990613384565b60405180910390fd5b61130160646112f383683635c9adc5dea000006124fe90919063ffffffff16565b61257990919063ffffffff16565b6010819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6010546040516113389190613484565b60405180910390a150565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611498576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148f90613424565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611508576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ff90613344565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516115e69190613484565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611663576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165a90613404565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156116d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ca90613304565b60405180910390fd5b60008111611716576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170d906133e4565b60405180910390fd5b61171e6109ed565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561178c575061175c6109ed565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611f7457600f60179054906101000a900460ff16156119bf573073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561180e57503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156118685750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118c25750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156119be57600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611908611420565b73ffffffffffffffffffffffffffffffffffffffff16148061197e5750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611966611420565b73ffffffffffffffffffffffffffffffffffffffff16145b6119bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b490613464565b60405180910390fd5b5b5b600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611a635750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611ab95750600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611ac257600080fd5b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611b6d5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611bc35750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611bdb5750600f60179054906101000a900460ff165b15611c7c5742600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611c2b57600080fd5b601442611c3891906135ba565b600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6002601154611c8b91906135ba565b4311158015611c9b575060105481145b15611eba57600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611d4c5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611dae576001600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611eb9565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015611e5a5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611eb8576001600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b5b6000611ec530610849565b9050600f60159054906101000a900460ff16158015611f325750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611f4a5750600f60169054906101000a900460ff165b15611f7257611f5881612204565b60004790506000811115611f7057611f6f4761209b565b5b505b505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061201b5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561202557600090505b612031848484846125c3565b50505050565b600083831115829061207f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161207691906132e2565b60405180910390fd5b506000838561208e919061369b565b9050809150509392505050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6120eb60028461257990919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612116573d6000803e3d6000fd5b50600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61216760028461257990919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612192573d6000803e3d6000fd5b5050565b60006006548211156121dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121d490613324565b60405180910390fd5b60006121e76125f0565b90506121fc818461257990919063ffffffff16565b915050919050565b6001600f60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115612262577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156122905781602001602082028036833780820191505090505b50905030816000815181106122ce577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561237057600080fd5b505afa158015612384573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123a89190612d51565b816001815181106123e2577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061244930600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611428565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016124ad95949392919061349f565b600060405180830381600087803b1580156124c757600080fd5b505af11580156124db573d6000803e3d6000fd5b50505050506000600f60156101000a81548160ff02191690831515021790555050565b6000808314156125115760009050612573565b6000828461251f9190613641565b905082848261252e9190613610565b1461256e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612565906133a4565b60405180910390fd5b809150505b92915050565b60006125bb83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061261b565b905092915050565b806125d1576125d061267e565b5b6125dc8484846126af565b806125ea576125e961287a565b5b50505050565b60008060006125fd61288c565b91509150612614818361257990919063ffffffff16565b9250505090565b60008083118290612662576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161265991906132e2565b60405180910390fd5b50600083856126719190613610565b9050809150509392505050565b600060085414801561269257506000600954145b1561269c576126ad565b600060088190555060006009819055505b565b6000806000806000806126c1876128ee565b95509550955095509550955061271f86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461295690919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506127b485600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129a090919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612800816129fe565b61280a8483612abb565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516128679190613484565b60405180910390a3505050505050505050565b6002600881905550600a600981905550565b600080600060065490506000683635c9adc5dea0000090506128c2683635c9adc5dea0000060065461257990919063ffffffff16565b8210156128e157600654683635c9adc5dea000009350935050506128ea565b81819350935050505b9091565b600080600080600080600080600061290b8a600854600954612af5565b925092509250600061291b6125f0565b9050600080600061292e8e878787612b8b565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061299883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612037565b905092915050565b60008082846129af91906135ba565b9050838110156129f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129eb90613364565b60405180910390fd5b8091505092915050565b6000612a086125f0565b90506000612a1f82846124fe90919063ffffffff16565b9050612a7381600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129a090919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612ad08260065461295690919063ffffffff16565b600681905550612aeb816007546129a090919063ffffffff16565b6007819055505050565b600080600080612b216064612b13888a6124fe90919063ffffffff16565b61257990919063ffffffff16565b90506000612b4b6064612b3d888b6124fe90919063ffffffff16565b61257990919063ffffffff16565b90506000612b7482612b66858c61295690919063ffffffff16565b61295690919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612ba485896124fe90919063ffffffff16565b90506000612bbb86896124fe90919063ffffffff16565b90506000612bd287896124fe90919063ffffffff16565b90506000612bfb82612bed858761295690919063ffffffff16565b61295690919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000612c27612c2284613539565b613514565b90508083825260208201905082856020860282011115612c4657600080fd5b60005b85811015612c765781612c5c8882612c80565b845260208401935060208301925050600181019050612c49565b5050509392505050565b600081359050612c8f81613b77565b92915050565b600081519050612ca481613b77565b92915050565b600082601f830112612cbb57600080fd5b8135612ccb848260208601612c14565b91505092915050565b600081359050612ce381613b8e565b92915050565b600081519050612cf881613b8e565b92915050565b600081359050612d0d81613ba5565b92915050565b600081519050612d2281613ba5565b92915050565b600060208284031215612d3a57600080fd5b6000612d4884828501612c80565b91505092915050565b600060208284031215612d6357600080fd5b6000612d7184828501612c95565b91505092915050565b60008060408385031215612d8d57600080fd5b6000612d9b85828601612c80565b9250506020612dac85828601612c80565b9150509250929050565b600080600060608486031215612dcb57600080fd5b6000612dd986828701612c80565b9350506020612dea86828701612c80565b9250506040612dfb86828701612cfe565b9150509250925092565b60008060408385031215612e1857600080fd5b6000612e2685828601612c80565b9250506020612e3785828601612cfe565b9150509250929050565b600060208284031215612e5357600080fd5b600082013567ffffffffffffffff811115612e6d57600080fd5b612e7984828501612caa565b91505092915050565b600060208284031215612e9457600080fd5b6000612ea284828501612cd4565b91505092915050565b600060208284031215612ebd57600080fd5b6000612ecb84828501612ce9565b91505092915050565b600060208284031215612ee657600080fd5b6000612ef484828501612cfe565b91505092915050565b600080600060608486031215612f1257600080fd5b6000612f2086828701612d13565b9350506020612f3186828701612d13565b9250506040612f4286828701612d13565b9150509250925092565b6000612f588383612f64565b60208301905092915050565b612f6d816136cf565b82525050565b612f7c816136cf565b82525050565b6000612f8d82613575565b612f978185613598565b9350612fa283613565565b8060005b83811015612fd3578151612fba8882612f4c565b9750612fc58361358b565b925050600181019050612fa6565b5085935050505092915050565b612fe9816136e1565b82525050565b612ff881613724565b82525050565b600061300982613580565b61301381856135a9565b9350613023818560208601613736565b61302c81613870565b840191505092915050565b60006130446023836135a9565b915061304f82613881565b604082019050919050565b6000613067602a836135a9565b9150613072826138d0565b604082019050919050565b600061308a6022836135a9565b91506130958261391f565b604082019050919050565b60006130ad601b836135a9565b91506130b88261396e565b602082019050919050565b60006130d0601d836135a9565b91506130db82613997565b602082019050919050565b60006130f36021836135a9565b91506130fe826139c0565b604082019050919050565b60006131166020836135a9565b915061312182613a0f565b602082019050919050565b60006131396029836135a9565b915061314482613a38565b604082019050919050565b600061315c6025836135a9565b915061316782613a87565b604082019050919050565b600061317f6024836135a9565b915061318a82613ad6565b604082019050919050565b60006131a26017836135a9565b91506131ad82613b25565b602082019050919050565b60006131c56011836135a9565b91506131d082613b4e565b602082019050919050565b6131e48161370d565b82525050565b6131f381613717565b82525050565b600060208201905061320e6000830184612f73565b92915050565b60006040820190506132296000830185612f73565b6132366020830184612f73565b9392505050565b60006040820190506132526000830185612f73565b61325f60208301846131db565b9392505050565b600060c08201905061327b6000830189612f73565b61328860208301886131db565b6132956040830187612fef565b6132a26060830186612fef565b6132af6080830185612f73565b6132bc60a08301846131db565b979650505050505050565b60006020820190506132dc6000830184612fe0565b92915050565b600060208201905081810360008301526132fc8184612ffe565b905092915050565b6000602082019050818103600083015261331d81613037565b9050919050565b6000602082019050818103600083015261333d8161305a565b9050919050565b6000602082019050818103600083015261335d8161307d565b9050919050565b6000602082019050818103600083015261337d816130a0565b9050919050565b6000602082019050818103600083015261339d816130c3565b9050919050565b600060208201905081810360008301526133bd816130e6565b9050919050565b600060208201905081810360008301526133dd81613109565b9050919050565b600060208201905081810360008301526133fd8161312c565b9050919050565b6000602082019050818103600083015261341d8161314f565b9050919050565b6000602082019050818103600083015261343d81613172565b9050919050565b6000602082019050818103600083015261345d81613195565b9050919050565b6000602082019050818103600083015261347d816131b8565b9050919050565b600060208201905061349960008301846131db565b92915050565b600060a0820190506134b460008301886131db565b6134c16020830187612fef565b81810360408301526134d38186612f82565b90506134e26060830185612f73565b6134ef60808301846131db565b9695505050505050565b600060208201905061350e60008301846131ea565b92915050565b600061351e61352f565b905061352a8282613769565b919050565b6000604051905090565b600067ffffffffffffffff82111561355457613553613841565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006135c58261370d565b91506135d08361370d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613605576136046137e3565b5b828201905092915050565b600061361b8261370d565b91506136268361370d565b92508261363657613635613812565b5b828204905092915050565b600061364c8261370d565b91506136578361370d565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156136905761368f6137e3565b5b828202905092915050565b60006136a68261370d565b91506136b18361370d565b9250828210156136c4576136c36137e3565b5b828203905092915050565b60006136da826136ed565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061372f8261370d565b9050919050565b60005b83811015613754578082015181840152602081019050613739565b83811115613763576000848401525b50505050565b61377282613870565b810181811067ffffffffffffffff8211171561379157613790613841565b5b80604052505050565b60006137a58261370d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156137d8576137d76137e3565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f416d6f756e74206d7573742062652067726561746572207468616e2030000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f4552523a20556e6973776170206f6e6c79000000000000000000000000000000600082015250565b613b80816136cf565b8114613b8b57600080fd5b50565b613b97816136e1565b8114613ba257600080fd5b50565b613bae8161370d565b8114613bb957600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122072d05da659892940927b48818b5780c897980eff5cf6a4c52070aca9f078935064736f6c634300080400330000000000000000000000003869acc1d9e8ef6cecad2f13f9d1d55a73cb393c000000000000000000000000d2f73bccf13d94eac5172c8da411775e908addbe