0x60806040526004361061016a5760003560e01c80638a0dae59116100d1578063c3c8cd801161008a578063dd62ed3e11610064578063dd62ed3e146104d3578063e57f14e114610510578063ea43915e14610539578063f2fde38b1461055057610171565b8063c3c8cd801461047c578063c9567bf914610493578063c97c1821146104aa57610171565b80638a0dae591461036e5780638da5cb5b1461039757806395d89b41146103c2578063a9059cbb146103ed578063ab18af271461042a578063b515566a1461045357610171565b8063313ce56711610123578063313ce567146102985780634ea18fab146102c35780636fc3eaec146102ec57806370a0823114610303578063715018a614610340578063751039fc1461035757610171565b806306fdde0314610176578063095ea7b3146101a157806316114acd146101de578063174fbaee1461020757806318160ddd1461023057806323b872dd1461025b57610171565b3661017157005b600080fd5b34801561018257600080fd5b5061018b610579565b6040516101989190612f8c565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c39190613056565b6105b6565b6040516101d591906130b1565b60405180910390f35b3480156101ea57600080fd5b50610205600480360381019061020091906130cc565b6105d4565b005b34801561021357600080fd5b5061022e600480360381019061022991906130f9565b61078c565b005b34801561023c57600080fd5b50610245610884565b6040516102529190613148565b60405180910390f35b34801561026757600080fd5b50610282600480360381019061027d9190613163565b610894565b60405161028f91906130b1565b60405180910390f35b3480156102a457600080fd5b506102ad61096d565b6040516102ba91906131d2565b60405180910390f35b3480156102cf57600080fd5b506102ea60048036038101906102e591906131ed565b610976565b005b3480156102f857600080fd5b50610301610a15565b005b34801561030f57600080fd5b5061032a600480360381019061032591906130cc565b610abb565b6040516103379190613148565b60405180910390f35b34801561034c57600080fd5b50610355610b04565b005b34801561036357600080fd5b5061036c610c57565b005b34801561037a57600080fd5b506103956004803603810190610390919061321a565b610d09565b005b3480156103a357600080fd5b506103ac610e4a565b6040516103b991906132b6565b60405180910390f35b3480156103ce57600080fd5b506103d7610e73565b6040516103e49190612f8c565b60405180910390f35b3480156103f957600080fd5b50610414600480360381019061040f9190613056565b610eb0565b60405161042191906130b1565b60405180910390f35b34801561043657600080fd5b50610451600480360381019061044c91906130cc565b610ece565b005b34801561045f57600080fd5b5061047a60048036038101906104759190613419565b610fa7565b005b34801561048857600080fd5b506104916110ea565b005b34801561049f57600080fd5b506104a8611198565b005b3480156104b657600080fd5b506104d160048036038101906104cc9190613419565b61130d565b005b3480156104df57600080fd5b506104fa60048036038101906104f59190613462565b611437565b6040516105079190613148565b60405180910390f35b34801561051c57600080fd5b50610537600480360381019061053291906130cc565b6114be565b005b34801561054557600080fd5b5061054e6115ae565b005b34801561055c57600080fd5b50610577600480360381019061057291906130cc565b611660565b005b60606040518060400160405280600b81526020017f416c6c20496e20436f696e000000000000000000000000000000000000000000815250905090565b60006105ca6105c3611876565b848461187e565b6001905092915050565b6105dc611876565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610669576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610660906134ee565b60405180910390fd5b60008190508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016106e691906132b6565b602060405180830381865afa158015610703573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107279190613523565b6040518363ffffffff1660e01b81526004016107449291906135af565b6020604051808303816000875af1158015610763573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107879190613604565b505050565b610794611876565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610821576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610818906134ee565b60405180910390fd5b60328211158015610833575060328111155b610872576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610869906136a3565b60405180910390fd5b8160098190555080600a819055505050565b6000670de0b6b3a7640000905090565b60006108a1848484611a47565b610962846108ad611876565b61095d8560405180606001604052806028815260200161406b60289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610913611876565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461249d9092919063ffffffff16565b61187e565b600190509392505050565b60006009905090565b61097e611876565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a02906134ee565b60405180910390fd5b8060138190555050565b610a1d611876565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610aaa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa1906134ee565b60405180910390fd5b6000479050610ab881612501565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610b0c611876565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b90906134ee565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610c5f611876565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce3906134ee565b60405180910390fd5b6000601d60176101000a81548160ff021916908315150217905550565b610d11611876565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d95906134ee565b60405180910390fd5b606481838587898b610db091906136f2565b610dba91906136f2565b610dc491906136f2565b610dce91906136f2565b610dd891906136f2565b14610e18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0f90613798565b60405180910390fd5b85600b8190555084600c8190555083600d8190555082600e8190555081600f8190555080601081905550505050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f414c4c494e000000000000000000000000000000000000000000000000000000815250905090565b6000610ec4610ebd611876565b8484611a47565b6001905092915050565b610ed6611876565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5a906134ee565b60405180910390fd5b80601b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610faf611876565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461103c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611033906134ee565b60405180910390fd5b601d60189054906101000a900460ff1661105557600080fd5b60005b81518110156110e65760016005600084848151811061107a576110796137b8565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806110de906137e7565b915050611058565b5050565b6110f2611876565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461117f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611176906134ee565b60405180910390fd5b600061118a30610abb565b9050611195816127d4565b50565b6111a0611876565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461122d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611224906134ee565b60405180910390fd5b601d60149054906101000a900460ff161561127d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112749061387b565b60405180910390fd5b61129761128930610abb565b47611292610e4a565b612a4d565b60646009819055506064600a819055506001601d60166101000a81548160ff0219169083151502179055506001601d60146101000a81548160ff0219169083151502179055506001601d60176101000a81548160ff02191690831515021790555060b44261130591906136f2565b600881905550565b611315611876565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611399906134ee565b60405180910390fd5b60005b8151811015611433576000600560008484815181106113c7576113c66137b8565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061142b906137e7565b9150506113a5565b5050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6114c6611876565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611553576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154a906134ee565b60405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6115b6611876565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611643576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163a906134ee565b60405180910390fd5b6000601d60186101000a81548160ff021916908315150217905550565b611668611876565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ec906134ee565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006117f483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612b62565b905092915050565b600080830361180e5760009050611870565b6000828461181c919061389b565b905082848261182b919061390c565b1461186b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611862906139af565b60405180910390fd5b809150505b92915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036118ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e490613a41565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361195c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195390613ad3565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611a3a9190613148565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611ab6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aad90613b65565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1c90613bf7565b60405180910390fd5b60008111611b68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5f90613c89565b60405180910390fd5b6000600781905550601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611c1c5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156120fb57600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611cc55750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611cce57600080fd5b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611d795750601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611dcf5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611de75750601d60179054906101000a900460ff165b15611f265760125481600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e3a91906136f2565b1115611e7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7290613cf5565b60405180910390fd5b601154811115611e8a57600080fd5b42600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611ed557600080fd5b601e42611ee291906136f2565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601d60159054906101000a900460ff16158015611f915750601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611fa95750601d60169054906101000a900460ff165b8015611fff5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156120595750601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156120fa5760085442116120a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161209990613d61565b60405180910390fd5b60006120ad30610abb565b90506013548111156120f8576014548111156120d5576014549050818111156120d4578190505b5b6120de816127d4565b600047905060008111156120f6576120f547612501565b5b505b505b5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061219c5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061224f5750601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561224e5750601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b5b156122615760006007819055506123d6565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561230c5750601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561231b576009546007819055505b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156123c65750601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156123d557600a546007819055505b5b601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148061247f5750601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b1561248d5760006007819055505b612498838383612bc5565b505050565b60008383111582906124e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124dc9190612f8c565b60405180910390fd5b50600083856124f49190613d81565b9050809150509392505050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6125656064612557600d54866117fc90919063ffffffff16565b6117b290919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612590573d6000803e3d6000fd5b50601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6125f560646125e7600c54866117fc90919063ffffffff16565b6117b290919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612620573d6000803e3d6000fd5b50601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6126856064612677600e54866117fc90919063ffffffff16565b6117b290919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156126b0573d6000803e3d6000fd5b50601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6127156064612707600f54866117fc90919063ffffffff16565b6117b290919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612740573d6000803e3d6000fd5b50601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6127a56064612797600b54866117fc90919063ffffffff16565b6117b290919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156127d0573d6000803e3d6000fd5b5050565b6001601d60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561280c5761280b6132d6565b5b60405190808252806020026020018201604052801561283a5781602001602082028036833780820191505090505b5090503081600081518110612852576128516137b8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156128f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061291d9190613dca565b81600181518110612931576129306137b8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061299830601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461187e565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016129fc959493929190613ef0565b600060405180830381600087803b158015612a1657600080fd5b505af1158015612a2a573d6000803e3d6000fd5b50505050506000601d60156101000a81548160ff02191690831515021790555050565b6001601d60156101000a81548160ff021916908315150217905550612a9530601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168561187e565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308660008087426040518863ffffffff1660e01b8152600401612afc96959493929190613f4a565b60606040518083038185885af1158015612b1a573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612b3f9190613fab565b5050506000601d60156101000a81548160ff021916908315150217905550505050565b60008083118290612ba9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ba09190612f8c565b60405180910390fd5b5060008385612bb8919061390c565b9050809150509392505050565b600080612bd183612e00565b91509150612c2783600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e5490919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612cbc82600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e9e90919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612d5181600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e9e90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612df19190613148565b60405180910390a35050505050565b6000806000612e2e6103e8612e20600754876117fc90919063ffffffff16565b6117b290919063ffffffff16565b90506000612e458286612e5490919063ffffffff16565b90508082935093505050915091565b6000612e9683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061249d565b905092915050565b6000808284612ead91906136f2565b905083811015612ef2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ee99061404a565b60405180910390fd5b8091505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612f36578082015181840152602081019050612f1b565b60008484015250505050565b6000601f19601f8301169050919050565b6000612f5e82612efc565b612f688185612f07565b9350612f78818560208601612f18565b612f8181612f42565b840191505092915050565b60006020820190508181036000830152612fa68184612f53565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612fed82612fc2565b9050919050565b612ffd81612fe2565b811461300857600080fd5b50565b60008135905061301a81612ff4565b92915050565b6000819050919050565b61303381613020565b811461303e57600080fd5b50565b6000813590506130508161302a565b92915050565b6000806040838503121561306d5761306c612fb8565b5b600061307b8582860161300b565b925050602061308c85828601613041565b9150509250929050565b60008115159050919050565b6130ab81613096565b82525050565b60006020820190506130c660008301846130a2565b92915050565b6000602082840312156130e2576130e1612fb8565b5b60006130f08482850161300b565b91505092915050565b600080604083850312156131105761310f612fb8565b5b600061311e85828601613041565b925050602061312f85828601613041565b9150509250929050565b61314281613020565b82525050565b600060208201905061315d6000830184613139565b92915050565b60008060006060848603121561317c5761317b612fb8565b5b600061318a8682870161300b565b935050602061319b8682870161300b565b92505060406131ac86828701613041565b9150509250925092565b600060ff82169050919050565b6131cc816131b6565b82525050565b60006020820190506131e760008301846131c3565b92915050565b60006020828403121561320357613202612fb8565b5b600061321184828501613041565b91505092915050565b60008060008060008060c0878903121561323757613236612fb8565b5b600061324589828a01613041565b965050602061325689828a01613041565b955050604061326789828a01613041565b945050606061327889828a01613041565b935050608061328989828a01613041565b92505060a061329a89828a01613041565b9150509295509295509295565b6132b081612fe2565b82525050565b60006020820190506132cb60008301846132a7565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61330e82612f42565b810181811067ffffffffffffffff8211171561332d5761332c6132d6565b5b80604052505050565b6000613340612fae565b905061334c8282613305565b919050565b600067ffffffffffffffff82111561336c5761336b6132d6565b5b602082029050602081019050919050565b600080fd5b600061339561339084613351565b613336565b905080838252602082019050602084028301858111156133b8576133b761337d565b5b835b818110156133e157806133cd888261300b565b8452602084019350506020810190506133ba565b5050509392505050565b600082601f830112613400576133ff6132d1565b5b8135613410848260208601613382565b91505092915050565b60006020828403121561342f5761342e612fb8565b5b600082013567ffffffffffffffff81111561344d5761344c612fbd565b5b613459848285016133eb565b91505092915050565b6000806040838503121561347957613478612fb8565b5b60006134878582860161300b565b92505060206134988582860161300b565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006134d8602083612f07565b91506134e3826134a2565b602082019050919050565b60006020820190508181036000830152613507816134cb565b9050919050565b60008151905061351d8161302a565b92915050565b60006020828403121561353957613538612fb8565b5b60006135478482850161350e565b91505092915050565b6000819050919050565b600061357561357061356b84612fc2565b613550565b612fc2565b9050919050565b60006135878261355a565b9050919050565b60006135998261357c565b9050919050565b6135a98161358e565b82525050565b60006040820190506135c460008301856135a0565b6135d16020830184613139565b9392505050565b6135e181613096565b81146135ec57600080fd5b50565b6000815190506135fe816135d8565b92915050565b60006020828403121561361a57613619612fb8565b5b6000613628848285016135ef565b91505092915050565b7f46656573206861766520746f20736d616c6c6572207468616e206f722065717560008201527f616c20746f203525000000000000000000000000000000000000000000000000602082015250565b600061368d602883612f07565b915061369882613631565b604082019050919050565b600060208201905081810360008301526136bc81613680565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006136fd82613020565b915061370883613020565b92508282019050808211156137205761371f6136c3565b5b92915050565b7f50657263656e7461676573206861766520746f2061646420757020746f20313060008201527f3000000000000000000000000000000000000000000000000000000000000000602082015250565b6000613782602183612f07565b915061378d82613726565b604082019050919050565b600060208201905081810360008301526137b181613775565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006137f282613020565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613824576138236136c3565b5b600182019050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000613865601783612f07565b91506138708261382f565b602082019050919050565b6000602082019050818103600083015261389481613858565b9050919050565b60006138a682613020565b91506138b183613020565b92508282026138bf81613020565b915082820484148315176138d6576138d56136c3565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061391782613020565b915061392283613020565b925082613932576139316138dd565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613999602183612f07565b91506139a48261393d565b604082019050919050565b600060208201905081810360008301526139c88161398c565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613a2b602483612f07565b9150613a36826139cf565b604082019050919050565b60006020820190508181036000830152613a5a81613a1e565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613abd602283612f07565b9150613ac882613a61565b604082019050919050565b60006020820190508181036000830152613aec81613ab0565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613b4f602583612f07565b9150613b5a82613af3565b604082019050919050565b60006020820190508181036000830152613b7e81613b42565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613be1602383612f07565b9150613bec82613b85565b604082019050919050565b60006020820190508181036000830152613c1081613bd4565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613c73602983612f07565b9150613c7e82613c17565b604082019050919050565b60006020820190508181036000830152613ca281613c66565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b6000613cdf601383612f07565b9150613cea82613ca9565b602082019050919050565b60006020820190508181036000830152613d0e81613cd2565b9050919050565b7f74696e7920636f6f6c646f776e20746f20626c61636b6c69737420626f747300600082015250565b6000613d4b601f83612f07565b9150613d5682613d15565b602082019050919050565b60006020820190508181036000830152613d7a81613d3e565b9050919050565b6000613d8c82613020565b9150613d9783613020565b9250828203905081811115613daf57613dae6136c3565b5b92915050565b600081519050613dc481612ff4565b92915050565b600060208284031215613de057613ddf612fb8565b5b6000613dee84828501613db5565b91505092915050565b6000819050919050565b6000613e1c613e17613e1284613df7565b613550565b613020565b9050919050565b613e2c81613e01565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613e6781612fe2565b82525050565b6000613e798383613e5e565b60208301905092915050565b6000602082019050919050565b6000613e9d82613e32565b613ea78185613e3d565b9350613eb283613e4e565b8060005b83811015613ee3578151613eca8882613e6d565b9750613ed583613e85565b925050600181019050613eb6565b5085935050505092915050565b600060a082019050613f056000830188613139565b613f126020830187613e23565b8181036040830152613f248186613e92565b9050613f3360608301856132a7565b613f406080830184613139565b9695505050505050565b600060c082019050613f5f60008301896132a7565b613f6c6020830188613139565b613f796040830187613e23565b613f866060830186613e23565b613f9360808301856132a7565b613fa060a0830184613139565b979650505050505050565b600080600060608486031215613fc457613fc3612fb8565b5b6000613fd28682870161350e565b9350506020613fe38682870161350e565b9250506040613ff48682870161350e565b9150509250925092565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614034601b83612f07565b915061403f82613ffe565b602082019050919050565b6000602082019050818103600083015261406381614027565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122020a192282f9754cbcf14edee1b2996aa3e4da6a48d11aa3521a67123884398a064736f6c63430008120033
0x608060405260326009556032600a55601d600b556016600c556016600d556015600e556005600f5560016010556200004f6064670de0b6b3a764000062000a4f60201b620017b21790919060201c565b601155620000756032670de0b6b3a764000062000a4f60201b620017b21790919060201c565b6012556200009c6103e8670de0b6b3a764000062000a4f60201b620017b21790919060201c565b601355620000c361012c670de0b6b3a764000062000a4f60201b620017b21790919060201c565b6014556000601d60156101000a81548160ff0219169083151502179055506000601d60166101000a81548160ff0219169083151502179055506001601d60176101000a81548160ff0219169083151502179055506001601d60186101000a81548160ff02191690831515021790555060006200014462000aa160201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35033601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073b1cf86b9258b8a7f6888d0bd92045b33db90ca77601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073dda1aa0c5b9c8b90f2fcec4a7bf16fc675739f0d601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073d24434c40e1c08d8b70f0b363e3b54cff71243a0601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073edf647837b955d1a0ba0baa9183e9aaaa83c9a92601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073d851cc237c245d49726ea6c34bd3eb7cda56bc1e601a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620004096037620003f56064670de0b6b3a764000062000a4f60201b620017b21790919060201c565b62000aa960201b620017fc1790919060201c565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000489602d620004756064670de0b6b3a764000062000a4f60201b620017b21790919060201c565b62000aa960201b620017fc1790919060201c565b60026000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550737a250d5630b4cf539739df2c5dacb4c659f2488d601c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620005b1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005d7919062000c27565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000661573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000687919062000c27565b6040518363ffffffff1660e01b8152600401620006a692919062000c6a565b6020604051808303816000875af1158015620006c6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620006ec919062000c27565b601d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600460006200074262000b2c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200096c6037620009586064670de0b6b3a764000062000a4f60201b620017b21790919060201c565b62000aa960201b620017fc1790919060201c565b6040516200097b919062000cb2565b60405180910390a3601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef62000a32602d62000a1e6064670de0b6b3a764000062000a4f60201b620017b21790919060201c565b62000aa960201b620017fc1790919060201c565b60405162000a41919062000cb2565b60405180910390a362000f06565b600062000a9983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000b5560201b60201c565b905092915050565b600033905090565b600080830362000abd576000905062000b26565b6000828462000acd919062000cfe565b905082848262000ade919062000d78565b1462000b21576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000b189062000e37565b60405180910390fd5b809150505b92915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000808311829062000b9f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000b96919062000ee2565b60405180910390fd5b506000838562000bb0919062000d78565b9050809150509392505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000bef8262000bc2565b9050919050565b62000c018162000be2565b811462000c0d57600080fd5b50565b60008151905062000c218162000bf6565b92915050565b60006020828403121562000c405762000c3f62000bbd565b5b600062000c508482850162000c10565b91505092915050565b62000c648162000be2565b82525050565b600060408201905062000c81600083018562000c59565b62000c90602083018462000c59565b9392505050565b6000819050919050565b62000cac8162000c97565b82525050565b600060208201905062000cc9600083018462000ca1565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000d0b8262000c97565b915062000d188362000c97565b925082820262000d288162000c97565b9150828204841483151762000d425762000d4162000ccf565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000d858262000c97565b915062000d928362000c97565b92508262000da55762000da462000d49565b5b828204905092915050565b600082825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600062000e1f60218362000db0565b915062000e2c8262000dc1565b604082019050919050565b6000602082019050818103600083015262000e528162000e10565b9050919050565b600081519050919050565b60005b8381101562000e8457808201518184015260208101905062000e67565b60008484015250505050565b6000601f19601f8301169050919050565b600062000eae8262000e59565b62000eba818562000db0565b935062000ecc81856020860162000e64565b62000ed78162000e90565b840191505092915050565b6000602082019050818103600083015262000efe818462000ea1565b905092915050565b6140c88062000f166000396000f3fe60806040526004361061016a5760003560e01c80638a0dae59116100d1578063c3c8cd801161008a578063dd62ed3e11610064578063dd62ed3e146104d3578063e57f14e114610510578063ea43915e14610539578063f2fde38b1461055057610171565b8063c3c8cd801461047c578063c9567bf914610493578063c97c1821146104aa57610171565b80638a0dae591461036e5780638da5cb5b1461039757806395d89b41146103c2578063a9059cbb146103ed578063ab18af271461042a578063b515566a1461045357610171565b8063313ce56711610123578063313ce567146102985780634ea18fab146102c35780636fc3eaec146102ec57806370a0823114610303578063715018a614610340578063751039fc1461035757610171565b806306fdde0314610176578063095ea7b3146101a157806316114acd146101de578063174fbaee1461020757806318160ddd1461023057806323b872dd1461025b57610171565b3661017157005b600080fd5b34801561018257600080fd5b5061018b610579565b6040516101989190612f8c565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c39190613056565b6105b6565b6040516101d591906130b1565b60405180910390f35b3480156101ea57600080fd5b50610205600480360381019061020091906130cc565b6105d4565b005b34801561021357600080fd5b5061022e600480360381019061022991906130f9565b61078c565b005b34801561023c57600080fd5b50610245610884565b6040516102529190613148565b60405180910390f35b34801561026757600080fd5b50610282600480360381019061027d9190613163565b610894565b60405161028f91906130b1565b60405180910390f35b3480156102a457600080fd5b506102ad61096d565b6040516102ba91906131d2565b60405180910390f35b3480156102cf57600080fd5b506102ea60048036038101906102e591906131ed565b610976565b005b3480156102f857600080fd5b50610301610a15565b005b34801561030f57600080fd5b5061032a600480360381019061032591906130cc565b610abb565b6040516103379190613148565b60405180910390f35b34801561034c57600080fd5b50610355610b04565b005b34801561036357600080fd5b5061036c610c57565b005b34801561037a57600080fd5b506103956004803603810190610390919061321a565b610d09565b005b3480156103a357600080fd5b506103ac610e4a565b6040516103b991906132b6565b60405180910390f35b3480156103ce57600080fd5b506103d7610e73565b6040516103e49190612f8c565b60405180910390f35b3480156103f957600080fd5b50610414600480360381019061040f9190613056565b610eb0565b60405161042191906130b1565b60405180910390f35b34801561043657600080fd5b50610451600480360381019061044c91906130cc565b610ece565b005b34801561045f57600080fd5b5061047a60048036038101906104759190613419565b610fa7565b005b34801561048857600080fd5b506104916110ea565b005b34801561049f57600080fd5b506104a8611198565b005b3480156104b657600080fd5b506104d160048036038101906104cc9190613419565b61130d565b005b3480156104df57600080fd5b506104fa60048036038101906104f59190613462565b611437565b6040516105079190613148565b60405180910390f35b34801561051c57600080fd5b50610537600480360381019061053291906130cc565b6114be565b005b34801561054557600080fd5b5061054e6115ae565b005b34801561055c57600080fd5b50610577600480360381019061057291906130cc565b611660565b005b60606040518060400160405280600b81526020017f416c6c20496e20436f696e000000000000000000000000000000000000000000815250905090565b60006105ca6105c3611876565b848461187e565b6001905092915050565b6105dc611876565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610669576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610660906134ee565b60405180910390fd5b60008190508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016106e691906132b6565b602060405180830381865afa158015610703573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107279190613523565b6040518363ffffffff1660e01b81526004016107449291906135af565b6020604051808303816000875af1158015610763573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107879190613604565b505050565b610794611876565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610821576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610818906134ee565b60405180910390fd5b60328211158015610833575060328111155b610872576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610869906136a3565b60405180910390fd5b8160098190555080600a819055505050565b6000670de0b6b3a7640000905090565b60006108a1848484611a47565b610962846108ad611876565b61095d8560405180606001604052806028815260200161406b60289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610913611876565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461249d9092919063ffffffff16565b61187e565b600190509392505050565b60006009905090565b61097e611876565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a02906134ee565b60405180910390fd5b8060138190555050565b610a1d611876565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610aaa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa1906134ee565b60405180910390fd5b6000479050610ab881612501565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610b0c611876565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b90906134ee565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610c5f611876565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce3906134ee565b60405180910390fd5b6000601d60176101000a81548160ff021916908315150217905550565b610d11611876565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d95906134ee565b60405180910390fd5b606481838587898b610db091906136f2565b610dba91906136f2565b610dc491906136f2565b610dce91906136f2565b610dd891906136f2565b14610e18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0f90613798565b60405180910390fd5b85600b8190555084600c8190555083600d8190555082600e8190555081600f8190555080601081905550505050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f414c4c494e000000000000000000000000000000000000000000000000000000815250905090565b6000610ec4610ebd611876565b8484611a47565b6001905092915050565b610ed6611876565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5a906134ee565b60405180910390fd5b80601b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610faf611876565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461103c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611033906134ee565b60405180910390fd5b601d60189054906101000a900460ff1661105557600080fd5b60005b81518110156110e65760016005600084848151811061107a576110796137b8565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806110de906137e7565b915050611058565b5050565b6110f2611876565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461117f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611176906134ee565b60405180910390fd5b600061118a30610abb565b9050611195816127d4565b50565b6111a0611876565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461122d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611224906134ee565b60405180910390fd5b601d60149054906101000a900460ff161561127d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112749061387b565b60405180910390fd5b61129761128930610abb565b47611292610e4a565b612a4d565b60646009819055506064600a819055506001601d60166101000a81548160ff0219169083151502179055506001601d60146101000a81548160ff0219169083151502179055506001601d60176101000a81548160ff02191690831515021790555060b44261130591906136f2565b600881905550565b611315611876565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611399906134ee565b60405180910390fd5b60005b8151811015611433576000600560008484815181106113c7576113c66137b8565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061142b906137e7565b9150506113a5565b5050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6114c6611876565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611553576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154a906134ee565b60405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6115b6611876565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611643576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163a906134ee565b60405180910390fd5b6000601d60186101000a81548160ff021916908315150217905550565b611668611876565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ec906134ee565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006117f483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612b62565b905092915050565b600080830361180e5760009050611870565b6000828461181c919061389b565b905082848261182b919061390c565b1461186b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611862906139af565b60405180910390fd5b809150505b92915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036118ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e490613a41565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361195c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195390613ad3565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611a3a9190613148565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611ab6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aad90613b65565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1c90613bf7565b60405180910390fd5b60008111611b68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5f90613c89565b60405180910390fd5b6000600781905550601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611c1c5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156120fb57600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611cc55750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611cce57600080fd5b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611d795750601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611dcf5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611de75750601d60179054906101000a900460ff165b15611f265760125481600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e3a91906136f2565b1115611e7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7290613cf5565b60405180910390fd5b601154811115611e8a57600080fd5b42600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611ed557600080fd5b601e42611ee291906136f2565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601d60159054906101000a900460ff16158015611f915750601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611fa95750601d60169054906101000a900460ff165b8015611fff5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156120595750601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156120fa5760085442116120a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161209990613d61565b60405180910390fd5b60006120ad30610abb565b90506013548111156120f8576014548111156120d5576014549050818111156120d4578190505b5b6120de816127d4565b600047905060008111156120f6576120f547612501565b5b505b505b5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061219c5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061224f5750601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561224e5750601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b5b156122615760006007819055506123d6565b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561230c5750601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561231b576009546007819055505b601d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156123c65750601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156123d557600a546007819055505b5b601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148061247f5750601b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b1561248d5760006007819055505b612498838383612bc5565b505050565b60008383111582906124e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124dc9190612f8c565b60405180910390fd5b50600083856124f49190613d81565b9050809150509392505050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6125656064612557600d54866117fc90919063ffffffff16565b6117b290919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612590573d6000803e3d6000fd5b50601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6125f560646125e7600c54866117fc90919063ffffffff16565b6117b290919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612620573d6000803e3d6000fd5b50601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6126856064612677600e54866117fc90919063ffffffff16565b6117b290919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156126b0573d6000803e3d6000fd5b50601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6127156064612707600f54866117fc90919063ffffffff16565b6117b290919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612740573d6000803e3d6000fd5b50601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6127a56064612797600b54866117fc90919063ffffffff16565b6117b290919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156127d0573d6000803e3d6000fd5b5050565b6001601d60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561280c5761280b6132d6565b5b60405190808252806020026020018201604052801561283a5781602001602082028036833780820191505090505b5090503081600081518110612852576128516137b8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156128f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061291d9190613dca565b81600181518110612931576129306137b8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061299830601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461187e565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016129fc959493929190613ef0565b600060405180830381600087803b158015612a1657600080fd5b505af1158015612a2a573d6000803e3d6000fd5b50505050506000601d60156101000a81548160ff02191690831515021790555050565b6001601d60156101000a81548160ff021916908315150217905550612a9530601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168561187e565b601c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308660008087426040518863ffffffff1660e01b8152600401612afc96959493929190613f4a565b60606040518083038185885af1158015612b1a573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612b3f9190613fab565b5050506000601d60156101000a81548160ff021916908315150217905550505050565b60008083118290612ba9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ba09190612f8c565b60405180910390fd5b5060008385612bb8919061390c565b9050809150509392505050565b600080612bd183612e00565b91509150612c2783600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e5490919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612cbc82600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e9e90919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612d5181600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612e9e90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612df19190613148565b60405180910390a35050505050565b6000806000612e2e6103e8612e20600754876117fc90919063ffffffff16565b6117b290919063ffffffff16565b90506000612e458286612e5490919063ffffffff16565b90508082935093505050915091565b6000612e9683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061249d565b905092915050565b6000808284612ead91906136f2565b905083811015612ef2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ee99061404a565b60405180910390fd5b8091505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612f36578082015181840152602081019050612f1b565b60008484015250505050565b6000601f19601f8301169050919050565b6000612f5e82612efc565b612f688185612f07565b9350612f78818560208601612f18565b612f8181612f42565b840191505092915050565b60006020820190508181036000830152612fa68184612f53565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612fed82612fc2565b9050919050565b612ffd81612fe2565b811461300857600080fd5b50565b60008135905061301a81612ff4565b92915050565b6000819050919050565b61303381613020565b811461303e57600080fd5b50565b6000813590506130508161302a565b92915050565b6000806040838503121561306d5761306c612fb8565b5b600061307b8582860161300b565b925050602061308c85828601613041565b9150509250929050565b60008115159050919050565b6130ab81613096565b82525050565b60006020820190506130c660008301846130a2565b92915050565b6000602082840312156130e2576130e1612fb8565b5b60006130f08482850161300b565b91505092915050565b600080604083850312156131105761310f612fb8565b5b600061311e85828601613041565b925050602061312f85828601613041565b9150509250929050565b61314281613020565b82525050565b600060208201905061315d6000830184613139565b92915050565b60008060006060848603121561317c5761317b612fb8565b5b600061318a8682870161300b565b935050602061319b8682870161300b565b92505060406131ac86828701613041565b9150509250925092565b600060ff82169050919050565b6131cc816131b6565b82525050565b60006020820190506131e760008301846131c3565b92915050565b60006020828403121561320357613202612fb8565b5b600061321184828501613041565b91505092915050565b60008060008060008060c0878903121561323757613236612fb8565b5b600061324589828a01613041565b965050602061325689828a01613041565b955050604061326789828a01613041565b945050606061327889828a01613041565b935050608061328989828a01613041565b92505060a061329a89828a01613041565b9150509295509295509295565b6132b081612fe2565b82525050565b60006020820190506132cb60008301846132a7565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61330e82612f42565b810181811067ffffffffffffffff8211171561332d5761332c6132d6565b5b80604052505050565b6000613340612fae565b905061334c8282613305565b919050565b600067ffffffffffffffff82111561336c5761336b6132d6565b5b602082029050602081019050919050565b600080fd5b600061339561339084613351565b613336565b905080838252602082019050602084028301858111156133b8576133b761337d565b5b835b818110156133e157806133cd888261300b565b8452602084019350506020810190506133ba565b5050509392505050565b600082601f830112613400576133ff6132d1565b5b8135613410848260208601613382565b91505092915050565b60006020828403121561342f5761342e612fb8565b5b600082013567ffffffffffffffff81111561344d5761344c612fbd565b5b613459848285016133eb565b91505092915050565b6000806040838503121561347957613478612fb8565b5b60006134878582860161300b565b92505060206134988582860161300b565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006134d8602083612f07565b91506134e3826134a2565b602082019050919050565b60006020820190508181036000830152613507816134cb565b9050919050565b60008151905061351d8161302a565b92915050565b60006020828403121561353957613538612fb8565b5b60006135478482850161350e565b91505092915050565b6000819050919050565b600061357561357061356b84612fc2565b613550565b612fc2565b9050919050565b60006135878261355a565b9050919050565b60006135998261357c565b9050919050565b6135a98161358e565b82525050565b60006040820190506135c460008301856135a0565b6135d16020830184613139565b9392505050565b6135e181613096565b81146135ec57600080fd5b50565b6000815190506135fe816135d8565b92915050565b60006020828403121561361a57613619612fb8565b5b6000613628848285016135ef565b91505092915050565b7f46656573206861766520746f20736d616c6c6572207468616e206f722065717560008201527f616c20746f203525000000000000000000000000000000000000000000000000602082015250565b600061368d602883612f07565b915061369882613631565b604082019050919050565b600060208201905081810360008301526136bc81613680565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006136fd82613020565b915061370883613020565b92508282019050808211156137205761371f6136c3565b5b92915050565b7f50657263656e7461676573206861766520746f2061646420757020746f20313060008201527f3000000000000000000000000000000000000000000000000000000000000000602082015250565b6000613782602183612f07565b915061378d82613726565b604082019050919050565b600060208201905081810360008301526137b181613775565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006137f282613020565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613824576138236136c3565b5b600182019050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000613865601783612f07565b91506138708261382f565b602082019050919050565b6000602082019050818103600083015261389481613858565b9050919050565b60006138a682613020565b91506138b183613020565b92508282026138bf81613020565b915082820484148315176138d6576138d56136c3565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061391782613020565b915061392283613020565b925082613932576139316138dd565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613999602183612f07565b91506139a48261393d565b604082019050919050565b600060208201905081810360008301526139c88161398c565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613a2b602483612f07565b9150613a36826139cf565b604082019050919050565b60006020820190508181036000830152613a5a81613a1e565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613abd602283612f07565b9150613ac882613a61565b604082019050919050565b60006020820190508181036000830152613aec81613ab0565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613b4f602583612f07565b9150613b5a82613af3565b604082019050919050565b60006020820190508181036000830152613b7e81613b42565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613be1602383612f07565b9150613bec82613b85565b604082019050919050565b60006020820190508181036000830152613c1081613bd4565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613c73602983612f07565b9150613c7e82613c17565b604082019050919050565b60006020820190508181036000830152613ca281613c66565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b6000613cdf601383612f07565b9150613cea82613ca9565b602082019050919050565b60006020820190508181036000830152613d0e81613cd2565b9050919050565b7f74696e7920636f6f6c646f776e20746f20626c61636b6c69737420626f747300600082015250565b6000613d4b601f83612f07565b9150613d5682613d15565b602082019050919050565b60006020820190508181036000830152613d7a81613d3e565b9050919050565b6000613d8c82613020565b9150613d9783613020565b9250828203905081811115613daf57613dae6136c3565b5b92915050565b600081519050613dc481612ff4565b92915050565b600060208284031215613de057613ddf612fb8565b5b6000613dee84828501613db5565b91505092915050565b6000819050919050565b6000613e1c613e17613e1284613df7565b613550565b613020565b9050919050565b613e2c81613e01565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613e6781612fe2565b82525050565b6000613e798383613e5e565b60208301905092915050565b6000602082019050919050565b6000613e9d82613e32565b613ea78185613e3d565b9350613eb283613e4e565b8060005b83811015613ee3578151613eca8882613e6d565b9750613ed583613e85565b925050600181019050613eb6565b5085935050505092915050565b600060a082019050613f056000830188613139565b613f126020830187613e23565b8181036040830152613f248186613e92565b9050613f3360608301856132a7565b613f406080830184613139565b9695505050505050565b600060c082019050613f5f60008301896132a7565b613f6c6020830188613139565b613f796040830187613e23565b613f866060830186613e23565b613f9360808301856132a7565b613fa060a0830184613139565b979650505050505050565b600080600060608486031215613fc457613fc3612fb8565b5b6000613fd28682870161350e565b9350506020613fe38682870161350e565b9250506040613ff48682870161350e565b9150509250925092565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614034601b83612f07565b915061403f82613ffe565b602082019050919050565b6000602082019050818103600083015261406381614027565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122020a192282f9754cbcf14edee1b2996aa3e4da6a48d11aa3521a67123884398a064736f6c63430008120033