60806040526001600560006101000a81548160ff02191690831515021790555060166006556016600755600160085560016009556013600a556013600b556013600c556000600d556009600a6200005791906200063d565b6507a6fd8f6a006200006a91906200068e565b600e556009600a6200007d91906200063d565b6507a6fd8f6a006200009091906200068e565b600f556009600a620000a391906200063d565b6503d37ec7b500620000b691906200068e565b6010556009600a620000c991906200063d565b6503d37ec7b500620000dc91906200068e565b6011556000601360156101000a81548160ff0219169083151502179055506000601360166101000a81548160ff0219169083151502179055503480156200012257600080fd5b506000620001356200047260201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001e36200047260201b60201c565b600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a6200023391906200063d565b66017e9d8602b4006200024791906200068e565b600160006200025b6200047260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160036000620002af6200047a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620003e26200047260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6200044191906200063d565b66017e9d8602b4006200045591906200068e565b604051620004649190620006ea565b60405180910390a362000707565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200053157808604811115620005095762000508620004a3565b5b6001851615620005195780820291505b80810290506200052985620004d2565b9450620004e9565b94509492505050565b6000826200054c57600190506200061f565b816200055c57600090506200061f565b81600181146200057557600281146200058057620005b6565b60019150506200061f565b60ff841115620005955762000594620004a3565b5b8360020a915084821115620005af57620005ae620004a3565b5b506200061f565b5060208310610133831016604e8410600b8410161715620005f05782820a905083811115620005ea57620005e9620004a3565b5b6200061f565b620005ff8484846001620004df565b92509050818404811115620006195762000618620004a3565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b60006200064a8262000626565b9150620006578362000630565b9250620006867fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200053a565b905092915050565b60006200069b8262000626565b9150620006a88362000626565b9250828202620006b88162000626565b91508282048414831517620006d257620006d1620004a3565b5b5092915050565b620006e48162000626565b82525050565b6000602082019050620007016000830184620006d9565b92915050565b61359b80620007176000396000f3fe6080604052600436106101395760003560e01c8063751039fc116100ab578063a9059cbb1161006f578063a9059cbb146103d9578063bf474bed14610416578063c876d0b914610441578063c9567bf91461046c578063dd62ed3e14610483578063f8686f07146104c057610140565b8063751039fc146103165780637d1db4a51461032d5780638da5cb5b146103585780638f9a55c01461038357806395d89b41146103ae57610140565b8063309764ed116100fd578063309764ed14610240578063313ce5671461026957806351bc3c8514610294578063692cda7a146102ab57806370a08231146102c2578063715018a6146102ff57610140565b806306fdde0314610145578063095ea7b3146101705780630faee56f146101ad57806318160ddd146101d857806323b872dd1461020357610140565b3661014057005b600080fd5b34801561015157600080fd5b5061015a6104d7565b60405161016791906124bb565b60405180910390f35b34801561017c57600080fd5b5061019760048036038101906101929190612576565b610514565b6040516101a491906125d1565b60405180910390f35b3480156101b957600080fd5b506101c2610532565b6040516101cf91906125fb565b60405180910390f35b3480156101e457600080fd5b506101ed610538565b6040516101fa91906125fb565b60405180910390f35b34801561020f57600080fd5b5061022a60048036038101906102259190612616565b61055f565b60405161023791906125d1565b60405180910390f35b34801561024c57600080fd5b5061026760048036038101906102629190612576565b610638565b005b34801561027557600080fd5b5061027e6107b6565b60405161028b9190612685565b60405180910390f35b3480156102a057600080fd5b506102a96107bf565b005b3480156102b757600080fd5b506102c061085c565b005b3480156102ce57600080fd5b506102e960048036038101906102e491906126a0565b61099f565b6040516102f691906125fb565b60405180910390f35b34801561030b57600080fd5b506103146109e8565b005b34801561032257600080fd5b5061032b610b3b565b005b34801561033957600080fd5b50610342610c74565b60405161034f91906125fb565b60405180910390f35b34801561036457600080fd5b5061036d610c7a565b60405161037a91906126dc565b60405180910390f35b34801561038f57600080fd5b50610398610ca3565b6040516103a591906125fb565b60405180910390f35b3480156103ba57600080fd5b506103c3610ca9565b6040516103d091906124bb565b60405180910390f35b3480156103e557600080fd5b5061040060048036038101906103fb9190612576565b610ce6565b60405161040d91906125d1565b60405180910390f35b34801561042257600080fd5b5061042b610d04565b60405161043891906125fb565b60405180910390f35b34801561044d57600080fd5b50610456610d0a565b60405161046391906125d1565b60405180910390f35b34801561047857600080fd5b50610481610d1d565b005b34801561048f57600080fd5b506104aa60048036038101906104a591906126f7565b611258565b6040516104b791906125fb565b60405180910390f35b3480156104cc57600080fd5b506104d56112df565b005b60606040518060400160405280600c81526020017f56616d7069726520506570650000000000000000000000000000000000000000815250905090565b6000610528610521611391565b8484611399565b6001905092915050565b60115481565b60006009600a6105489190612899565b66017e9d8602b40061055a91906128e4565b905090565b600061056c848484611562565b61062d84610578611391565b6106288560405180606001604052806028815260200161353e60289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105de611391565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611efa9092919063ffffffff16565b611399565b600190509392505050565b610640611391565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106c490612972565b60405180910390fd5b60008290508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b815260040161072f9291906129f1565b6020604051808303816000875af115801561074e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107729190612a46565b6107b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a890612abf565b60405180910390fd5b505050565b60006009905090565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610800611391565b73ffffffffffffffffffffffffffffffffffffffff161461082057600080fd5b600061082b3061099f565b905060008111156108405761083f81611f5e565b5b6000479050600081111561085857610857816121d7565b5b5050565b610864611391565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e890612972565b60405180910390fd5b60004711610934576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092b90612b2b565b60405180910390fd5b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f1935050505015801561099c573d6000803e3d6000fd5b50565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6109f0611391565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7490612972565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610b43611391565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc790612972565b60405180910390fd5b6009600a610bde9190612899565b66017e9d8602b400610bf091906128e4565b600e819055506009600a610c049190612899565b66017e9d8602b400610c1691906128e4565b600f819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610c4b9190612899565b66017e9d8602b400610c5d91906128e4565b604051610c6a91906125fb565b60405180910390a1565b600e5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600581526020017f56414d5045000000000000000000000000000000000000000000000000000000815250905090565b6000610cfa610cf3611391565b8484611562565b6001905092915050565b60105481565b600560009054906101000a900460ff1681565b610d25611391565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610db2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da990612972565b60405180910390fd5b601360149054906101000a900460ff1615610e02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df990612b97565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610ea330601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610e8c9190612899565b66017e9d8602b400610e9e91906128e4565b611399565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f10573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f349190612bcc565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fbd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fe19190612bcc565b6040518363ffffffff1660e01b8152600401610ffe929190612bf9565b6020604051808303816000875af115801561101d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110419190612bcc565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306110ca3061099f565b6000806110d5610c7a565b426040518863ffffffff1660e01b81526004016110f796959493929190612c5d565b60606040518083038185885af1158015611115573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061113a9190612cd3565b505050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016111dc929190612d26565b6020604051808303816000875af11580156111fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061121f9190612a46565b506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff021916908315150217905550565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6112e7611391565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611374576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136b90612972565b60405180910390fd5b6000600560006101000a81548160ff021916908315150217905550565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611408576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ff90612dc1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611477576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146e90612e53565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161155591906125fb565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c890612ee5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611640576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163790612f77565b60405180910390fd5b60008111611683576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167a90613009565b60405180910390fd5b600061168d610c7a565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156116fb57506116cb610c7a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611c3d5761173c606461172e600a54600d541161171b5760065461171f565b6008545b8561224390919063ffffffff16565b6122bd90919063ffffffff16565b9050600560009054906101000a900460ff16156118cb57601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156117ff5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156118ca5743600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611885576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187c906130c1565b60405180910390fd5b43600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156119765750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156119cc5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611a8757600e54821115611a16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0d9061312d565b60405180910390fd5b600f5482611a238561099f565b611a2d919061314d565b1115611a6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a65906131cd565b60405180910390fd5b600d6000815480929190611a81906131ed565b91905055505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611b1057503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611b5457611b516064611b43600b54600d5411611b3057600754611b34565b6009545b8561224390919063ffffffff16565b6122bd90919063ffffffff16565b90505b6000611b5f3061099f565b9050601360159054906101000a900460ff16158015611bcb5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611be35750601360169054906101000a900460ff165b8015611bf0575060105481115b8015611bff5750600c54600d54115b15611c3b57611c21611c1c84611c1784601154612307565b612307565b611f5e565b60004790506000811115611c3957611c38476121d7565b5b505b505b6000811115611d4157611c9881600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461232090919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611d3891906125fb565b60405180910390a35b611d9382600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461237e90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611e3a611dec828461237e90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461232090919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611edf848661237e90919063ffffffff16565b604051611eec91906125fb565b60405180910390a350505050565b6000838311158290611f42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f3991906124bb565b60405180910390fd5b5060008385611f519190613235565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611f9657611f95613269565b5b604051908082528060200260200182016040528015611fc45781602001602082028036833780820191505090505b5090503081600081518110611fdc57611fdb613298565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612083573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120a79190612bcc565b816001815181106120bb576120ba613298565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061212230601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611399565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612186959493929190613385565b600060405180830381600087803b1580156121a057600080fd5b505af11580156121b4573d6000803e3d6000fd5b50505050506000601360156101000a81548160ff02191690831515021790555050565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561223f573d6000803e3d6000fd5b5050565b600080830361225557600090506122b7565b6000828461226391906128e4565b9050828482612272919061340e565b146122b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122a9906134b1565b60405180910390fd5b809150505b92915050565b60006122ff83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506123c8565b905092915050565b60008183116123165782612318565b815b905092915050565b600080828461232f919061314d565b905083811015612374576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161236b9061351d565b60405180910390fd5b8091505092915050565b60006123c083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611efa565b905092915050565b6000808311829061240f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161240691906124bb565b60405180910390fd5b506000838561241e919061340e565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561246557808201518184015260208101905061244a565b60008484015250505050565b6000601f19601f8301169050919050565b600061248d8261242b565b6124978185612436565b93506124a7818560208601612447565b6124b081612471565b840191505092915050565b600060208201905081810360008301526124d58184612482565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061250d826124e2565b9050919050565b61251d81612502565b811461252857600080fd5b50565b60008135905061253a81612514565b92915050565b6000819050919050565b61255381612540565b811461255e57600080fd5b50565b6000813590506125708161254a565b92915050565b6000806040838503121561258d5761258c6124dd565b5b600061259b8582860161252b565b92505060206125ac85828601612561565b9150509250929050565b60008115159050919050565b6125cb816125b6565b82525050565b60006020820190506125e660008301846125c2565b92915050565b6125f581612540565b82525050565b600060208201905061261060008301846125ec565b92915050565b60008060006060848603121561262f5761262e6124dd565b5b600061263d8682870161252b565b935050602061264e8682870161252b565b925050604061265f86828701612561565b9150509250925092565b600060ff82169050919050565b61267f81612669565b82525050565b600060208201905061269a6000830184612676565b92915050565b6000602082840312156126b6576126b56124dd565b5b60006126c48482850161252b565b91505092915050565b6126d681612502565b82525050565b60006020820190506126f160008301846126cd565b92915050565b6000806040838503121561270e5761270d6124dd565b5b600061271c8582860161252b565b925050602061272d8582860161252b565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156127bd5780860481111561279957612798612737565b5b60018516156127a85780820291505b80810290506127b685612766565b945061277d565b94509492505050565b6000826127d65760019050612892565b816127e45760009050612892565b81600181146127fa576002811461280457612833565b6001915050612892565b60ff84111561281657612815612737565b5b8360020a91508482111561282d5761282c612737565b5b50612892565b5060208310610133831016604e8410600b84101617156128685782820a90508381111561286357612862612737565b5b612892565b6128758484846001612773565b9250905081840481111561288c5761288b612737565b5b81810290505b9392505050565b60006128a482612540565b91506128af83612669565b92506128dc7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846127c6565b905092915050565b60006128ef82612540565b91506128fa83612540565b925082820261290881612540565b9150828204841483151761291f5761291e612737565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061295c602083612436565b915061296782612926565b602082019050919050565b6000602082019050818103600083015261298b8161294f565b9050919050565b6000819050919050565b60006129b76129b26129ad846124e2565b612992565b6124e2565b9050919050565b60006129c98261299c565b9050919050565b60006129db826129be565b9050919050565b6129eb816129d0565b82525050565b6000604082019050612a0660008301856129e2565b612a1360208301846125ec565b9392505050565b612a23816125b6565b8114612a2e57600080fd5b50565b600081519050612a4081612a1a565b92915050565b600060208284031215612a5c57612a5b6124dd565b5b6000612a6a84828501612a31565b91505092915050565b7f546f6b656e207472616e73666572206661696c65640000000000000000000000600082015250565b6000612aa9601583612436565b9150612ab482612a73565b602082019050919050565b60006020820190508181036000830152612ad881612a9c565b9050919050565b7f4e6f2045544820746f207472616e736665720000000000000000000000000000600082015250565b6000612b15601283612436565b9150612b2082612adf565b602082019050919050565b60006020820190508181036000830152612b4481612b08565b9050919050565b7f54726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612b81601783612436565b9150612b8c82612b4b565b602082019050919050565b60006020820190508181036000830152612bb081612b74565b9050919050565b600081519050612bc681612514565b92915050565b600060208284031215612be257612be16124dd565b5b6000612bf084828501612bb7565b91505092915050565b6000604082019050612c0e60008301856126cd565b612c1b60208301846126cd565b9392505050565b6000819050919050565b6000612c47612c42612c3d84612c22565b612992565b612540565b9050919050565b612c5781612c2c565b82525050565b600060c082019050612c7260008301896126cd565b612c7f60208301886125ec565b612c8c6040830187612c4e565b612c996060830186612c4e565b612ca660808301856126cd565b612cb360a08301846125ec565b979650505050505050565b600081519050612ccd8161254a565b92915050565b600080600060608486031215612cec57612ceb6124dd565b5b6000612cfa86828701612cbe565b9350506020612d0b86828701612cbe565b9250506040612d1c86828701612cbe565b9150509250925092565b6000604082019050612d3b60008301856126cd565b612d4860208301846125ec565b9392505050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612dab602483612436565b9150612db682612d4f565b604082019050919050565b60006020820190508181036000830152612dda81612d9e565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612e3d602283612436565b9150612e4882612de1565b604082019050919050565b60006020820190508181036000830152612e6c81612e30565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612ecf602583612436565b9150612eda82612e73565b604082019050919050565b60006020820190508181036000830152612efe81612ec2565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612f61602383612436565b9150612f6c82612f05565b604082019050919050565b60006020820190508181036000830152612f9081612f54565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612ff3602983612436565b9150612ffe82612f97565b604082019050919050565b6000602082019050818103600083015261302281612fe6565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e204f6e6c79206f6e652070757263686173652070657220626c6f636b2060208201527f616c6c6f7765642e000000000000000000000000000000000000000000000000604082015250565b60006130ab604883612436565b91506130b682613029565b606082019050919050565b600060208201905081810360008301526130da8161309e565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000613117601983612436565b9150613122826130e1565b602082019050919050565b600060208201905081810360008301526131468161310a565b9050919050565b600061315882612540565b915061316383612540565b925082820190508082111561317b5761317a612737565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b60006131b7601a83612436565b91506131c282613181565b602082019050919050565b600060208201905081810360008301526131e6816131aa565b9050919050565b60006131f882612540565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361322a57613229612737565b5b600182019050919050565b600061324082612540565b915061324b83612540565b925082820390508181111561326357613262612737565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6132fc81612502565b82525050565b600061330e83836132f3565b60208301905092915050565b6000602082019050919050565b6000613332826132c7565b61333c81856132d2565b9350613347836132e3565b8060005b8381101561337857815161335f8882613302565b975061336a8361331a565b92505060018101905061334b565b5085935050505092915050565b600060a08201905061339a60008301886125ec565b6133a76020830187612c4e565b81810360408301526133b98186613327565b90506133c860608301856126cd565b6133d560808301846125ec565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061341982612540565b915061342483612540565b925082613434576134336133df565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061349b602183612436565b91506134a68261343f565b604082019050919050565b600060208201905081810360008301526134ca8161348e565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613507601b83612436565b9150613512826134d1565b602082019050919050565b60006020820190508181036000830152613536816134fa565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122036d06203e1dbc0162f017fed237c233ab853bf416be34b710820ad7792759ca264736f6c63430008120033