60806040526040518060400160405280600881526020017f4e4f542046494e45000000000000000000000000000000000000000000000000815250600690805190602001906200005192919062000b39565b506040518060400160405280600781526020017f4e4f5446494e4500000000000000000000000000000000000000000000000000815250600790805190602001906200009f92919062000b39565b506009600860006101000a81548160ff021916908360ff160217905550670de0b6b3a7640000600955600954600d55620001056064620000f16002600954620009ca60201b62001f531790919060201c565b62000a4e60201b62001fce1790919060201c565b600e556103de600f556103e8601055600160115560fa6014556101906015553480156200013157600080fd5b506200014262000aa060201b60201c565b6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600954600160006200021362000aa860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555073ea15de8b18010008b429a29e3211e04e3d6913ce600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200030d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000333919062000c53565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200039b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003c1919062000c53565b6040518363ffffffff1660e01b8152600401620003e092919062000c96565b6020604051808303816000875af115801562000400573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000426919062000c53565b905080600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160036000620004c062000aa860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000620005f962000aa860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560006200073262000aa860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200095962000aa860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600954604051620009ba919062000cde565b60405180910390a3505062000fb7565b600080831415620009df576000905062000a48565b60008284620009ef919062000d2a565b905082848262000a00919062000dba565b1462000a43576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a3a9062000e79565b60405180910390fd5b809150505b92915050565b600062000a9883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000ad160201b60201c565b905092915050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000808311829062000b1b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000b12919062000f2e565b60405180910390fd5b506000838562000b2c919062000dba565b9050809150509392505050565b82805462000b479062000f81565b90600052602060002090601f01602090048101928262000b6b576000855562000bb7565b82601f1062000b8657805160ff191683800117855562000bb7565b8280016001018555821562000bb7579182015b8281111562000bb657825182559160200191906001019062000b99565b5b50905062000bc6919062000bca565b5090565b5b8082111562000be557600081600090555060010162000bcb565b5090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000c1b8262000bee565b9050919050565b62000c2d8162000c0e565b811462000c3957600080fd5b50565b60008151905062000c4d8162000c22565b92915050565b60006020828403121562000c6c5762000c6b62000be9565b5b600062000c7c8482850162000c3c565b91505092915050565b62000c908162000c0e565b82525050565b600060408201905062000cad600083018562000c85565b62000cbc602083018462000c85565b9392505050565b6000819050919050565b62000cd88162000cc3565b82525050565b600060208201905062000cf5600083018462000ccd565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000d378262000cc3565b915062000d448362000cc3565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000d805762000d7f62000cfb565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000dc78262000cc3565b915062000dd48362000cc3565b92508262000de75762000de662000d8b565b5b828204905092915050565b600082825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600062000e6160218362000df2565b915062000e6e8262000e03565b604082019050919050565b6000602082019050818103600083015262000e948162000e52565b9050919050565b600081519050919050565b60005b8381101562000ec657808201518184015260208101905062000ea9565b8381111562000ed6576000848401525b50505050565b6000601f19601f8301169050919050565b600062000efa8262000e9b565b62000f06818562000df2565b935062000f1881856020860162000ea6565b62000f238162000edc565b840191505092915050565b6000602082019050818103600083015262000f4a818462000eed565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000f9a57607f821691505b6020821081141562000fb15762000fb062000f52565b5b50919050565b6144008062000fc76000396000f3fe6080604052600436106102765760003560e01c80638a8c523c1161014f578063b0bc2a2d116100c1578063ed4214291161007a578063ed42142914610987578063f097ea1a146109c4578063f242ab41146109ed578063f2fde38b14610a18578063f4b3dbc314610a41578063fe6f1b0514610a7e5761027d565b8063b0bc2a2d14610877578063bf56b371146108a0578063bf862391146108cb578063dd62ed3e146108f6578063ea5b9e8514610933578063ec44acf21461095c5761027d565b80639a36dfa1116101135780639a36dfa114610757578063a2b8a94714610782578063a457c2d7146107ab578063a643c1a0146107e8578063a7c29b4014610811578063a9059cbb1461083a5761027d565b80638a8c523c146106845780638da5cb5b1461069b578063950eb5d5146106c657806395d89b41146106ef57806399b102b51461071a5761027d565b80635342acb4116101e85780637c6a9a9c116101ac5780637c6a9a9c146105725780637d99c66d1461059d578063844af78e146105c857806384ea21bc146105f35780638756aabd14610630578063879dd3c5146106595761027d565b80635342acb41461048d578063679a3c59146104ca57806370a08231146104f3578063715018a61461053057806375f0a874146105475761027d565b80631884f1e61161023a5780631884f1e61461036957806323b872dd14610394578063267fb987146103d15780632d129390146103fc578063313ce5671461042557806339509351146104505761027d565b806306fdde03146102825780630758d924146102ad578063095ea7b3146102d85780630a2d140c1461031557806318160ddd1461033e5761027d565b3661027d57005b600080fd5b34801561028e57600080fd5b50610297610aa9565b6040516102a4919061346f565b60405180910390f35b3480156102b957600080fd5b506102c2610b3b565b6040516102cf9190613510565b60405180910390f35b3480156102e457600080fd5b506102ff60048036038101906102fa91906135a4565b610b61565b60405161030c91906135ff565b60405180910390f35b34801561032157600080fd5b5061033c60048036038101906103379190613646565b610b7f565b005b34801561034a57600080fd5b50610353610c31565b6040516103609190613682565b60405180910390f35b34801561037557600080fd5b5061037e610c3b565b60405161038b9190613682565b60405180910390f35b3480156103a057600080fd5b506103bb60048036038101906103b6919061369d565b610c41565b6040516103c891906135ff565b60405180910390f35b3480156103dd57600080fd5b506103e6610d1a565b6040516103f391906135ff565b60405180910390f35b34801561040857600080fd5b50610423600480360381019061041e91906136f0565b610d2d565b005b34801561043157600080fd5b5061043a610e1d565b604051610447919061374c565b60405180910390f35b34801561045c57600080fd5b50610477600480360381019061047291906135a4565b610e34565b60405161048491906135ff565b60405180910390f35b34801561049957600080fd5b506104b460048036038101906104af9190613767565b610ee7565b6040516104c191906135ff565b60405180910390f35b3480156104d657600080fd5b506104f160048036038101906104ec9190613767565b610f07565b005b3480156104ff57600080fd5b5061051a60048036038101906105159190613767565b610fe6565b6040516105279190613682565b60405180910390f35b34801561053c57600080fd5b5061054561102f565b005b34801561055357600080fd5b5061055c611182565b60405161056991906137a3565b60405180910390f35b34801561057e57600080fd5b506105876111a8565b6040516105949190613682565b60405180910390f35b3480156105a957600080fd5b506105b26111ae565b6040516105bf9190613682565b60405180910390f35b3480156105d457600080fd5b506105dd6111b4565b6040516105ea9190613682565b60405180910390f35b3480156105ff57600080fd5b5061061a60048036038101906106159190613767565b6111ba565b60405161062791906135ff565b60405180910390f35b34801561063c57600080fd5b50610657600480360381019061065291906137be565b6111da565b005b34801561066557600080fd5b5061066e6112d2565b60405161067b91906135ff565b60405180910390f35b34801561069057600080fd5b506106996112e5565b005b3480156106a757600080fd5b506106b0611424565b6040516106bd91906137a3565b60405180910390f35b3480156106d257600080fd5b506106ed60048036038101906106e891906137be565b61144d565b005b3480156106fb57600080fd5b50610704611557565b604051610711919061346f565b60405180910390f35b34801561072657600080fd5b50610741600480360381019061073c9190613767565b6115e9565b60405161074e91906135ff565b60405180910390f35b34801561076357600080fd5b5061076c611609565b6040516107799190613682565b60405180910390f35b34801561078e57600080fd5b506107a960048036038101906107a491906137be565b61160f565b005b3480156107b757600080fd5b506107d260048036038101906107cd91906135a4565b611719565b6040516107df91906135ff565b60405180910390f35b3480156107f457600080fd5b5061080f600480360381019061080a9190613767565b6117e6565b005b34801561081d57600080fd5b50610838600480360381019061083391906136f0565b6118bf565b005b34801561084657600080fd5b50610861600480360381019061085c91906135a4565b6119af565b60405161086e91906135ff565b60405180910390f35b34801561088357600080fd5b5061089e60048036038101906108999190613646565b6119cd565b005b3480156108ac57600080fd5b506108b5611a7f565b6040516108c29190613682565b60405180910390f35b3480156108d757600080fd5b506108e0611a85565b6040516108ed9190613682565b60405180910390f35b34801561090257600080fd5b5061091d600480360381019061091891906137eb565b611a8b565b60405161092a9190613682565b60405180910390f35b34801561093f57600080fd5b5061095a600480360381019061095591906136f0565b611b12565b005b34801561096857600080fd5b50610971611c02565b60405161097e91906135ff565b60405180910390f35b34801561099357600080fd5b506109ae60048036038101906109a991906137be565b611c15565b6040516109bb9190613682565b60405180910390f35b3480156109d057600080fd5b506109eb60048036038101906109e691906137be565b611c4c565b005b3480156109f957600080fd5b50610a02611d2e565b604051610a0f91906137a3565b60405180910390f35b348015610a2457600080fd5b50610a3f6004803603810190610a3a9190613767565b611d54565b005b348015610a4d57600080fd5b50610a686004803603810190610a6391906137be565b611f16565b604051610a759190613682565b60405180910390f35b348015610a8a57600080fd5b50610a93611f4d565b604051610aa09190613682565b60405180910390f35b606060068054610ab89061385a565b80601f0160208091040260200160405190810160405280929190818152602001828054610ae49061385a565b8015610b315780601f10610b0657610100808354040283529160200191610b31565b820191906000526020600020905b815481529060010190602001808311610b1457829003601f168201915b5050505050905090565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610b75610b6e612018565b8484612020565b6001905092915050565b610b87612018565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0b906138d8565b60405180910390fd5b80601360006101000a81548160ff02191690831515021790555050565b6000600954905090565b600d5481565b6000610c4e8484846121eb565b610d0f84610c5a612018565b610d0a856040518060600160405280602a8152602001614377602a9139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610cc0612018565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461264e9092919063ffffffff16565b612020565b600190509392505050565b601360009054906101000a900460ff1681565b610d35612018565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dc2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db9906138d8565b60405180910390fd5b80600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600860009054906101000a900460ff16905090565b6000610edd610e41612018565b84610ed88560026000610e52612018565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126b290919063ffffffff16565b612020565b6001905092915050565b60036020528060005260406000206000915054906101000a900460ff1681565b610f0f612018565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f93906138d8565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610fe2573d6000803e3d6000fd5b5050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611037612018565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110bb906138d8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60145481565b60115481565b60155481565b60056020528060005260406000206000915054906101000a900460ff1681565b6111e2612018565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461126f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611266906138d8565b60405180910390fd5b611286601054600954611fce90919063ffffffff16565b8110156112c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112bf9061396a565b60405180910390fd5b80600e8190555050565b601360019054906101000a900460ff1681565b6112ed612018565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461137a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611371906138d8565b60405180910390fd5b601360029054906101000a900460ff16156113ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c1906139d6565b60405180910390fd5b6001601360026101000a81548160ff0219169083151502179055506001601360016101000a81548160ff0219169083151502179055506001601360006101000a81548160ff02191690831515021790555042601281905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611455612018565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d9906138d8565b60405180910390fd5b806014819055506115126064611504600f601054611f5390919063ffffffff16565b611fce90919063ffffffff16565b811115611554576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154b90613a42565b60405180910390fd5b50565b6060600780546115669061385a565b80601f01602080910402602001604051908101604052809291908181526020018280546115929061385a565b80156115df5780601f106115b4576101008083540402835291602001916115df565b820191906000526020600020905b8154815290600101906020018083116115c257829003601f168201915b5050505050905090565b60046020528060005260406000206000915054906101000a900460ff1681565b600e5481565b611617612018565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169b906138d8565b60405180910390fd5b806015819055506116d460646116c6600f601054611f5390919063ffffffff16565b611fce90919063ffffffff16565b811115611716576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170d90613a42565b60405180910390fd5b50565b60006117dc611726612018565b846117d7856040518060600160405280602a81526020016143a1602a913960026000611750612018565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461264e9092919063ffffffff16565b612020565b6001905092915050565b6117ee612018565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461187b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611872906138d8565b60405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6118c7612018565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611954576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194b906138d8565b60405180910390fd5b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60006119c36119bc612018565b84846121eb565b6001905092915050565b6119d5612018565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a59906138d8565b60405180910390fd5b80601360016101000a81548160ff02191690831515021790555050565b60125481565b600f5481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611b1a612018565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ba7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9e906138d8565b60405180910390fd5b80600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601360029054906101000a900460ff1681565b600080611c41601054611c3360145486611f5390919063ffffffff16565b611fce90919063ffffffff16565b905080915050919050565b611c54612018565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ce1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cd8906138d8565b60405180910390fd5b60008111611d24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1b90613aae565b60405180910390fd5b80600d8190555050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611d5c612018565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611de9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de0906138d8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611e59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5090613b40565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080611f42601054611f3460155486611f5390919063ffffffff16565b611fce90919063ffffffff16565b905080915050919050565b60105481565b600080831415611f665760009050611fc8565b60008284611f749190613b8f565b9050828482611f839190613c18565b14611fc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fba90613cbb565b60405180910390fd5b809150505b92915050565b600061201083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612710565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612090576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208790613d4d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612100576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120f790613ddf565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516121de9190613682565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561225b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161225290613e71565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156122cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122c290613f03565b60405180910390fd5b6000811161230e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161230590613f95565b60405180910390fd5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156123b25750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156124b857601360029054906101000a900460ff166124b7578273ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415801561247757508173ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b6124b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124ad90614001565b60405180910390fd5b5b5b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661256957600e546125278261251985610fe6565b6126b290919063ffffffff16565b1115612568576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161255f9061406d565b60405180910390fd5b5b6125738383612773565b600060019050600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061261a5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806126325750601360019054906101000a900460ff16155b1561263c57600090505b61264884848484612970565b50505050565b6000838311158290612696576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161268d919061346f565b60405180910390fd5b50600083856126a5919061408d565b9050809150509392505050565b60008082846126c191906140c1565b905083811015612706576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126fd90614163565b60405180910390fd5b8091505092915050565b60008083118290612757576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161274e919061346f565b60405180910390fd5b50600083856127669190613c18565b9050809150509392505050565b600061277e30610fe6565b90506000600d5482101590508080156127e55750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156127fd5750601360009054906101000a900460ff165b801561288e57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561288c5750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b155b1561296a576128c230600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600d54612020565b6128f0600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600d546130a8565b6000479050600081111561296857600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612966573d6000803e3d6000fd5b505b505b50505050565b8373ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480156129ca5750805b15612c80576000806011546012546129e291906140c1565b42108015612a3e5750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b15612a8857612a6c601054612a5e600f5487611f5390919063ffffffff16565b611fce90919063ffffffff16565b9150612a81828561328e90919063ffffffff16565b9050612aa9565b612a9184611c15565b9150612aa6828561328e90919063ffffffff16565b90505b612b32846040518060400160405280601d81526020017f4e4f5446494e453a20696e73756666696369656e742062616c616e6365000000815250600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461264e9092919063ffffffff16565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612bc781600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126b290919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612c679190613682565b60405180910390a3612c7986836132d8565b50506130a2565b8273ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148015612cda5750805b15612eda576000612cea83611f16565b90506000612d01828561328e90919063ffffffff16565b9050612d8c846040518060400160405280601d81526020017f4e4f5446494e453a20696e73756666696369656e742062616c616e6365000000815250600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461264e9092919063ffffffff16565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612e2181600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126b290919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612ec19190613682565b60405180910390a3612ed386836132d8565b50506130a1565b612f63826040518060400160405280601d81526020017f4e4f5446494e453a20696e73756666696369656e742062616c616e6365000000815250600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461264e9092919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612ff882600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126b290919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516130989190613682565b60405180910390a35b5b50505050565b60008290506000600267ffffffffffffffff8111156130ca576130c9614183565b5b6040519080825280602002602001820160405280156130f85781602001602082028036833780820191505090505b50905030816000815181106131105761310f6141b2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508173ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613195573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131b991906141f6565b816001815181106131cd576131cc6141b2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508173ffffffffffffffffffffffffffffffffffffffff1663791ac947846000843061012c4261323691906140c1565b6040518663ffffffff1660e01b815260040161325695949392919061431c565b600060405180830381600087803b15801561327057600080fd5b505af1158015613284573d6000803e3d6000fd5b5050505050505050565b60006132d083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061264e565b905092915050565b61332a81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126b290919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516133ca9190613682565b60405180910390a35050565b600081519050919050565b600082825260208201905092915050565b60005b838110156134105780820151818401526020810190506133f5565b8381111561341f576000848401525b50505050565b6000601f19601f8301169050919050565b6000613441826133d6565b61344b81856133e1565b935061345b8185602086016133f2565b61346481613425565b840191505092915050565b600060208201905081810360008301526134898184613436565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006134d66134d16134cc84613491565b6134b1565b613491565b9050919050565b60006134e8826134bb565b9050919050565b60006134fa826134dd565b9050919050565b61350a816134ef565b82525050565b60006020820190506135256000830184613501565b92915050565b600080fd5b600061353b82613491565b9050919050565b61354b81613530565b811461355657600080fd5b50565b60008135905061356881613542565b92915050565b6000819050919050565b6135818161356e565b811461358c57600080fd5b50565b60008135905061359e81613578565b92915050565b600080604083850312156135bb576135ba61352b565b5b60006135c985828601613559565b92505060206135da8582860161358f565b9150509250929050565b60008115159050919050565b6135f9816135e4565b82525050565b600060208201905061361460008301846135f0565b92915050565b613623816135e4565b811461362e57600080fd5b50565b6000813590506136408161361a565b92915050565b60006020828403121561365c5761365b61352b565b5b600061366a84828501613631565b91505092915050565b61367c8161356e565b82525050565b60006020820190506136976000830184613673565b92915050565b6000806000606084860312156136b6576136b561352b565b5b60006136c486828701613559565b93505060206136d586828701613559565b92505060406136e68682870161358f565b9150509250925092565b600080604083850312156137075761370661352b565b5b600061371585828601613559565b925050602061372685828601613631565b9150509250929050565b600060ff82169050919050565b61374681613730565b82525050565b6000602082019050613761600083018461373d565b92915050565b60006020828403121561377d5761377c61352b565b5b600061378b84828501613559565b91505092915050565b61379d81613530565b82525050565b60006020820190506137b86000830184613794565b92915050565b6000602082840312156137d4576137d361352b565b5b60006137e28482850161358f565b91505092915050565b600080604083850312156138025761380161352b565b5b600061381085828601613559565b925050602061382185828601613559565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061387257607f821691505b602082108114156138865761388561382b565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006138c26020836133e1565b91506138cd8261388c565b602082019050919050565b600060208201905081810360008301526138f1816138b5565b9050919050565b7f4e4f5446494e453a2073686f756c642062652067726561746572207468616e2060008201527f302e312500000000000000000000000000000000000000000000000000000000602082015250565b60006139546024836133e1565b915061395f826138f8565b604082019050919050565b6000602082019050818103600083015261398381613947565b9050919050565b7f4e4f5446494e453a20616c726561647920656e61626c65640000000000000000600082015250565b60006139c06018836133e1565b91506139cb8261398a565b602082019050919050565b600060208201905081810360008301526139ef816139b3565b9050919050565b7f4e4f5446494e453a2063616e2774206265206d6f7265207468616e2031352500600082015250565b6000613a2c601f836133e1565b9150613a37826139f6565b602082019050919050565b60006020820190508181036000830152613a5b81613a1f565b9050919050565b7f4e4f5446494e453a2063616e2774206265203000000000000000000000000000600082015250565b6000613a986013836133e1565b9150613aa382613a62565b602082019050919050565b60006020820190508181036000830152613ac781613a8b565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613b2a6026836133e1565b9150613b3582613ace565b604082019050919050565b60006020820190508181036000830152613b5981613b1d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613b9a8261356e565b9150613ba58361356e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613bde57613bdd613b60565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613c238261356e565b9150613c2e8361356e565b925082613c3e57613c3d613be9565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613ca56021836133e1565b9150613cb082613c49565b604082019050919050565b60006020820190508181036000830152613cd481613c98565b9050919050565b7f4e4f5446494e453a20617070726f76652066726f6d20746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613d376026836133e1565b9150613d4282613cdb565b604082019050919050565b60006020820190508181036000830152613d6681613d2a565b9050919050565b7f4e4f5446494e453a20617070726f766520746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613dc96024836133e1565b9150613dd482613d6d565b604082019050919050565b60006020820190508181036000830152613df881613dbc565b9050919050565b7f4e4f5446494e453a207472616e736665722066726f6d20746865207a65726f2060008201527f6164647265737300000000000000000000000000000000000000000000000000602082015250565b6000613e5b6027836133e1565b9150613e6682613dff565b604082019050919050565b60006020820190508181036000830152613e8a81613e4e565b9050919050565b7f4e4f5446494e453a207472616e7366657220746f20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613eed6025836133e1565b9150613ef882613e91565b604082019050919050565b60006020820190508181036000830152613f1c81613ee0565b9050919050565b7f4e4f5446494e453a20416d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613f7f6029836133e1565b9150613f8a82613f23565b604082019050919050565b60006020820190508181036000830152613fae81613f72565b9050919050565b7f4e4f5446494e453a2074726164696e672069732064697361626c650000000000600082015250565b6000613feb601b836133e1565b9150613ff682613fb5565b602082019050919050565b6000602082019050818103600083015261401a81613fde565b9050919050565b7f4e4f5446494e453a206d617820686f6c64206c696d6974206578636565647300600082015250565b6000614057601f836133e1565b915061406282614021565b602082019050919050565b600060208201905081810360008301526140868161404a565b9050919050565b60006140988261356e565b91506140a38361356e565b9250828210156140b6576140b5613b60565b5b828203905092915050565b60006140cc8261356e565b91506140d78361356e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561410c5761410b613b60565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061414d601b836133e1565b915061415882614117565b602082019050919050565b6000602082019050818103600083015261417c81614140565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506141f081613542565b92915050565b60006020828403121561420c5761420b61352b565b5b600061421a848285016141e1565b91505092915050565b6000819050919050565b600061424861424361423e84614223565b6134b1565b61356e565b9050919050565b6142588161422d565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61429381613530565b82525050565b60006142a5838361428a565b60208301905092915050565b6000602082019050919050565b60006142c98261425e565b6142d38185614269565b93506142de8361427a565b8060005b8381101561430f5781516142f68882614299565b9750614301836142b1565b9250506001810190506142e2565b5085935050505092915050565b600060a0820190506143316000830188613673565b61433e602083018761424f565b818103604083015261435081866142be565b905061435f6060830185613794565b61436c6080830184613673565b969550505050505056fe4e4f5446494e453a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63654e4f5446494e453a2064656372656173656420616c6c6f77616e6365206f722062656c6f77207a65726fa2646970667358221220e900b129a56c3a5280726db4e969b8badb19a84098d42ad2acdc5af5ed65b00064736f6c634300080a0033