6080604052600a600d556658d15e17628000600e55662386f26fc10000600f556000601060006101000a81548160ff0219169083151502179055503480156200004757600080fd5b506040516200719f3803806200719f83398181016040528101906200006d9190620011a4565b6040518060400160405280601681526020017f436f736d6963204d6574612057617220436869636b73000000000000000000008152506040518060400160405280600481526020017f434d5743000000000000000000000000000000000000000000000000000000008152508160009081620000ea919062001474565b508060019081620000fc919062001474565b5050506000600a60006101000a81548160ff0219169083151502179055506200013a6200012e6200017760201b60201c565b6200017f60201b60201c565b6200014b826200024560201b60201c565b6200015c81620002e960201b60201c565b6200016f3360326200038d60201b60201c565b505062001dbf565b600033905090565b6000600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600a60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b620002556200017760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff166200027b6200058060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614620002d4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002cb90620015bc565b60405180910390fd5b80600b9081620002e5919062001474565b5050565b620002f96200017760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff166200031f6200058060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000378576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200036f90620015bc565b60405180910390fd5b80600c908162000389919062001474565b5050565b60006200039f620005aa60201b60201c565b9050620003b16200058060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614620004e157601060009054906101000a900460ff1662000436576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200042d9062001654565b60405180910390fd5b600082118015620004495750600d548211155b6200048b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200048290620016ec565b60405180910390fd5b81600e546200049b91906200173d565b341015620004e0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004d790620017ee565b60405180910390fd5b5b6108ae8282620004f2919062001810565b111562000536576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200052d906200189b565b60405180910390fd5b6000600190505b8281116200057a576200056484828462000558919062001810565b620005b760201b60201c565b80806200057190620018bd565b9150506200053d565b50505050565b6000600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600880549050905090565b620005d9828260405180602001604052806000815250620005dd60201b60201c565b5050565b620005ef83836200064b60201b60201c565b6200060460008484846200083060201b60201c565b62000646576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200063d9062001980565b60405180910390fd5b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620006bd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006b490620019f2565b60405180910390fd5b620006ce81620009d960201b60201c565b1562000711576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007089062001a64565b60405180910390fd5b620007256000838362000a4560201b60201c565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000777919062001810565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b60006200085e8473ffffffffffffffffffffffffffffffffffffffff1662000ab560201b6200216b1760201c565b15620009cc578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02620008906200017760201b60201c565b8786866040518563ffffffff1660e01b8152600401620008b4949392919062001b39565b6020604051808303816000875af1925050508015620008f357506040513d601f19601f82011682018060405250810190620008f0919062001bea565b60015b6200097b573d806000811462000926576040519150601f19603f3d011682016040523d82523d6000602084013e6200092b565b606091505b50600081510362000973576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200096a9062001980565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050620009d1565b600190505b949350505050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b62000a5562000ac860201b60201c565b1562000a98576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a8f9062001c6c565b60405180910390fd5b62000ab083838362000adf60201b6200217e1760201c565b505050565b600080823b905060008111915050919050565b6000600a60009054906101000a900460ff16905090565b62000af783838362000c2460201b620022901760201c565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000b435762000b3d8162000c2960201b60201c565b62000b8b565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161462000b8a5762000b89838262000c7260201b60201c565b5b5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000bd75762000bd18162000def60201b60201c565b62000c1f565b8273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161462000c1e5762000c1d828262000ecb60201b60201c565b5b5b505050565b505050565b6008805490506009600083815260200190815260200160002081905550600881908060018154018082558091505060019003906000526020600020016000909190919091505550565b6000600162000c8c8462000f5760201b620017961760201c565b62000c98919062001c8e565b905060006007600084815260200190815260200160002054905081811462000d7e576000600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002054905080600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002081905550816007600083815260200190815260200160002081905550505b6007600084815260200190815260200160002060009055600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206000905550505050565b6000600160088054905062000e05919062001c8e565b905060006009600084815260200190815260200160002054905060006008838154811062000e385762000e3762001cc9565b5b90600052602060002001549050806008838154811062000e5d5762000e5c62001cc9565b5b90600052602060002001819055508160096000838152602001908152602001600020819055506009600085815260200190815260200160002060009055600880548062000eaf5762000eae62001cf8565b5b6001900381819060005260206000200160009055905550505050565b600062000ee38362000f5760201b620017961760201c565b905081600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002081905550806007600084815260200190815260200160002081905550505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000fca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000fc19062001d9d565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6200107a826200102f565b810181811067ffffffffffffffff821117156200109c576200109b62001040565b5b80604052505050565b6000620010b162001011565b9050620010bf82826200106f565b919050565b600067ffffffffffffffff821115620010e257620010e162001040565b5b620010ed826200102f565b9050602081019050919050565b60005b838110156200111a578082015181840152602081019050620010fd565b60008484015250505050565b60006200113d6200113784620010c4565b620010a5565b9050828152602081018484840111156200115c576200115b6200102a565b5b62001169848285620010fa565b509392505050565b600082601f83011262001189576200118862001025565b5b81516200119b84826020860162001126565b91505092915050565b60008060408385031215620011be57620011bd6200101b565b5b600083015167ffffffffffffffff811115620011df57620011de62001020565b5b620011ed8582860162001171565b925050602083015167ffffffffffffffff81111562001211576200121062001020565b5b6200121f8582860162001171565b9150509250929050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200127c57607f821691505b60208210810362001292576200129162001234565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620012fc7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620012bd565b620013088683620012bd565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620013556200134f620013498462001320565b6200132a565b62001320565b9050919050565b6000819050919050565b620013718362001334565b6200138962001380826200135c565b848454620012ca565b825550505050565b600090565b620013a062001391565b620013ad81848462001366565b505050565b5b81811015620013d557620013c960008262001396565b600181019050620013b3565b5050565b601f8211156200142457620013ee8162001298565b620013f984620012ad565b8101602085101562001409578190505b620014216200141885620012ad565b830182620013b2565b50505b505050565b600082821c905092915050565b6000620014496000198460080262001429565b1980831691505092915050565b600062001464838362001436565b9150826002028217905092915050565b6200147f8262001229565b67ffffffffffffffff8111156200149b576200149a62001040565b5b620014a7825462001263565b620014b4828285620013d9565b600060209050601f831160018114620014ec5760008415620014d7578287015190505b620014e3858262001456565b86555062001553565b601f198416620014fc8662001298565b60005b828110156200152657848901518255600182019150602085019450602081019050620014ff565b8683101562001546578489015162001542601f89168262001436565b8355505b6001600288020188555050505b505050505050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000620015a46020836200155b565b9150620015b1826200156c565b602082019050919050565b60006020820190508181036000830152620015d78162001595565b9050919050565b7f5468652057617220436869636b73206d61696e2073616c65206973206e6f742060008201527f6f70656e21000000000000000000000000000000000000000000000000000000602082015250565b60006200163c6025836200155b565b91506200164982620015de565b604082019050919050565b600060208201905081810360008301526200166f816200162d565b9050919050565b7f596f752063616e206f6e6c79206d696e74203120746f2032302057617220436860008201527f69636b7321000000000000000000000000000000000000000000000000000000602082015250565b6000620016d46025836200155b565b9150620016e18262001676565b604082019050919050565b600060208201905081810360008301526200170781620016c5565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200174a8262001320565b9150620017578362001320565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156200179357620017926200170e565b5b828202905092915050565b7f45746865722073656e74206973206e6f7420636f727265637421000000000000600082015250565b6000620017d6601a836200155b565b9150620017e3826200179e565b602082019050919050565b600060208201905081810360008301526200180981620017c7565b9050919050565b60006200181d8262001320565b91506200182a8362001320565b92508282019050808211156200184557620018446200170e565b5b92915050565b7f45786365656473206d6178696d756d20737570706c7921000000000000000000600082015250565b6000620018836017836200155b565b915062001890826200184b565b602082019050919050565b60006020820190508181036000830152620018b68162001874565b9050919050565b6000620018ca8262001320565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203620018ff57620018fe6200170e565b5b600182019050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b6000620019686032836200155b565b915062001975826200190a565b604082019050919050565b600060208201905081810360008301526200199b8162001959565b9050919050565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b6000620019da6020836200155b565b9150620019e782620019a2565b602082019050919050565b6000602082019050818103600083015262001a0d81620019cb565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b600062001a4c601c836200155b565b915062001a598262001a14565b602082019050919050565b6000602082019050818103600083015262001a7f8162001a3d565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062001ab38262001a86565b9050919050565b62001ac58162001aa6565b82525050565b62001ad68162001320565b82525050565b600081519050919050565b600082825260208201905092915050565b600062001b058262001adc565b62001b11818562001ae7565b935062001b23818560208601620010fa565b62001b2e816200102f565b840191505092915050565b600060808201905062001b50600083018762001aba565b62001b5f602083018662001aba565b62001b6e604083018562001acb565b818103606083015262001b82818462001af8565b905095945050505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b62001bc48162001b8d565b811462001bd057600080fd5b50565b60008151905062001be48162001bb9565b92915050565b60006020828403121562001c035762001c026200101b565b5b600062001c138482850162001bd3565b91505092915050565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b600062001c546010836200155b565b915062001c618262001c1c565b602082019050919050565b6000602082019050818103600083015262001c878162001c45565b9050919050565b600062001c9b8262001320565b915062001ca88362001320565b925082820390508181111562001cc35762001cc26200170e565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b600062001d85602a836200155b565b915062001d928262001d27565b604082019050919050565b6000602082019050818103600083015262001db88162001d76565b9050919050565b6153d08062001dcf6000396000f3fe6080604052600436106102675760003560e01c806370a0823111610144578063a22cb465116100b6578063d547cfb71161007a578063d547cfb7146108e0578063da6405e11461090b578063e8a3d48514610934578063e985e9c51461095f578063f2fde38b1461099c578063f47c84c5146109c557610267565b8063a22cb46514610811578063b88d4fde1461083a578063be9a655514610863578063c1d7ae311461087a578063c87b56dd146108a357610267565b80638da5cb5b116101085780638da5cb5b1461071357806391b7f5ed1461073e578063938e3d7b1461076757806395d89b4114610790578063a035b1fe146107bb578063a187c89b146107e657610267565b806370a0823114610673578063715018a6146106b05780637501f741146106c75780638456cb59146106f2578063853828b61461070957610267565b80632f994122116101dd5780634f6ccce7116101a15780634f6ccce714610551578063547520fe1461058e57806355f804b3146105b75780635c975abb146105e057806360cfd3591461060b5780636352211e1461063657610267565b80632f9941221461046957806334131cd3146104a657806340c10f19146104cf57806342842e0e146104eb578063438b63001461051457610267565b8063163e1e611161022f578063163e1e611461037757806318160ddd146103a057806323b872dd146103cb578063290c292d146103f45780632e1a7d4d146104105780632f745c591461042c57610267565b806301ffc9a71461026c57806306fdde03146102a9578063081812fc146102d4578063095ea7b3146103115780630f2091861461033a575b600080fd5b34801561027857600080fd5b50610293600480360381019061028e919061361d565b6109f0565b6040516102a09190613665565b60405180910390f35b3480156102b557600080fd5b506102be610a02565b6040516102cb9190613710565b60405180910390f35b3480156102e057600080fd5b506102fb60048036038101906102f69190613768565b610a94565b60405161030891906137d6565b60405180910390f35b34801561031d57600080fd5b506103386004803603810190610333919061381d565b610b19565b005b34801561034657600080fd5b50610361600480360381019061035c919061385d565b610c30565b60405161036e9190613665565b60405180910390f35b34801561038357600080fd5b5061039e600480360381019061039991906138ef565b610c86565b005b3480156103ac57600080fd5b506103b5610dd3565b6040516103c2919061394b565b60405180910390f35b3480156103d757600080fd5b506103f260048036038101906103ed9190613966565b610de0565b005b61040e6004803603810190610409919061381d565b610e40565b005b61042a60048036038101906104259190613768565b611011565b005b34801561043857600080fd5b50610453600480360381019061044e919061381d565b6110ce565b604051610460919061394b565b60405180910390f35b34801561047557600080fd5b50610490600480360381019061048b919061385d565b611173565b60405161049d9190613665565b60405180910390f35b3480156104b257600080fd5b506104cd60048036038101906104c89190613af7565b611193565b005b6104e960048036038101906104e4919061381d565b6112a4565b005b3480156104f757600080fd5b50610512600480360381019061050d9190613966565b611467565b005b34801561052057600080fd5b5061053b6004803603810190610536919061385d565b611487565b6040516105489190613bfe565b60405180910390f35b34801561055d57600080fd5b5061057860048036038101906105739190613768565b611535565b604051610585919061394b565b60405180910390f35b34801561059a57600080fd5b506105b560048036038101906105b09190613768565b6115a6565b005b3480156105c357600080fd5b506105de60048036038101906105d99190613cd5565b61162c565b005b3480156105ec57600080fd5b506105f56116bb565b6040516106029190613665565b60405180910390f35b34801561061757600080fd5b506106206116d2565b60405161062d9190613665565b60405180910390f35b34801561064257600080fd5b5061065d60048036038101906106589190613768565b6116e5565b60405161066a91906137d6565b60405180910390f35b34801561067f57600080fd5b5061069a6004803603810190610695919061385d565b611796565b6040516106a7919061394b565b60405180910390f35b3480156106bc57600080fd5b506106c561184d565b005b3480156106d357600080fd5b506106dc6118d5565b6040516106e9919061394b565b60405180910390f35b3480156106fe57600080fd5b506107076118db565b005b610711611961565b005b34801561071f57600080fd5b50610728611a1d565b60405161073591906137d6565b60405180910390f35b34801561074a57600080fd5b5061076560048036038101906107609190613768565b611a47565b005b34801561077357600080fd5b5061078e60048036038101906107899190613cd5565b611acd565b005b34801561079c57600080fd5b506107a5611b5c565b6040516107b29190613710565b60405180910390f35b3480156107c757600080fd5b506107d0611bee565b6040516107dd919061394b565b60405180910390f35b3480156107f257600080fd5b506107fb611bf4565b604051610808919061394b565b60405180910390f35b34801561081d57600080fd5b5061083860048036038101906108339190613d4a565b611bfa565b005b34801561084657600080fd5b50610861600480360381019061085c9190613e2b565b611c10565b005b34801561086f57600080fd5b50610878611c72565b005b34801561088657600080fd5b506108a1600480360381019061089c9190613eae565b611cf8565b005b3480156108af57600080fd5b506108ca60048036038101906108c59190613768565b611d91565b6040516108d79190613710565b60405180910390f35b3480156108ec57600080fd5b506108f5611e38565b6040516109029190613710565b60405180910390f35b34801561091757600080fd5b50610932600480360381019061092d9190613768565b611ec6565b005b34801561094057600080fd5b50610949611f4c565b6040516109569190613710565b60405180910390f35b34801561096b57600080fd5b5061098660048036038101906109819190613edb565b611fda565b6040516109939190613665565b60405180910390f35b3480156109a857600080fd5b506109c360048036038101906109be919061385d565b61206e565b005b3480156109d157600080fd5b506109da612165565b6040516109e7919061394b565b60405180910390f35b60006109fb82612295565b9050919050565b606060008054610a1190613f4a565b80601f0160208091040260200160405190810160405280929190818152602001828054610a3d90613f4a565b8015610a8a5780601f10610a5f57610100808354040283529160200191610a8a565b820191906000526020600020905b815481529060010190602001808311610a6d57829003601f168201915b5050505050905090565b6000610a9f8261230f565b610ade576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad590613fed565b60405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000610b24826116e5565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610b94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8b9061407f565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610bb361237b565b73ffffffffffffffffffffffffffffffffffffffff161480610be25750610be181610bdc61237b565b611fda565b5b610c21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1890614111565b60405180910390fd5b610c2b8383612383565b505050565b6000601160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b610c8e61237b565b73ffffffffffffffffffffffffffffffffffffffff16610cac611a1d565b73ffffffffffffffffffffffffffffffffffffffff1614610d02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf99061417d565b60405180910390fd5b6000610d0c610dd3565b90506108ae8383905082610d2091906141cc565b1115610d61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d589061424c565b60405180910390fd5b6000600190505b838390508111610dcd57610dba8484600184610d84919061426c565b818110610d9457610d936142a0565b5b9050602002016020810190610da9919061385d565b8284610db591906141cc565b61243c565b8080610dc5906142cf565b915050610d68565b50505050565b6000600880549050905090565b610df1610deb61237b565b8261245a565b610e30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2790614389565b60405180910390fd5b610e3b838383612538565b505050565b6000610e4a610dd3565b9050610e5583610c30565b610e94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8b9061441b565b60405180910390fd5b601060009054906101000a900460ff1615610ee4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610edb906144ad565b60405180910390fd5b600082118015610ef65750600d548211155b610f35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2c9061453f565b60405180910390fd5b81600f54610f43919061455f565b341015610f85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7c90614605565b60405180910390fd5b6108ae8282610f9491906141cc565b1115610fd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fcc9061424c565b60405180910390fd5b6000600190505b82811161100b57610ff8848284610ff391906141cc565b61243c565b8080611003906142cf565b915050610fdc565b50505050565b61101961237b565b73ffffffffffffffffffffffffffffffffffffffff16611037611a1d565b73ffffffffffffffffffffffffffffffffffffffff161461108d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110849061417d565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050506110cb57600080fd5b50565b60006110d983611796565b821061111a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111190614697565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002054905092915050565b60116020528060005260406000206000915054906101000a900460ff1681565b61119b61237b565b73ffffffffffffffffffffffffffffffffffffffff166111b9611a1d565b73ffffffffffffffffffffffffffffffffffffffff161461120f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112069061417d565b60405180910390fd5b60005b81518110156112a057600160116000848481518110611234576112336142a0565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611298906142cf565b915050611212565b5050565b60006112ae610dd3565b90506112b8611a1d565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146113db57601060009054906101000a900460ff16611339576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133090614729565b60405180910390fd5b60008211801561134b5750600d548211155b61138a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611381906147bb565b60405180910390fd5b81600e54611398919061455f565b3410156113da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d190614605565b60405180910390fd5b5b6108ae82826113ea91906141cc565b111561142b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114229061424c565b60405180910390fd5b6000600190505b8281116114615761144e84828461144991906141cc565b61243c565b8080611459906142cf565b915050611432565b50505050565b61148283838360405180602001604052806000815250611c10565b505050565b6060600061149483611796565b905060008167ffffffffffffffff8111156114b2576114b16139b9565b5b6040519080825280602002602001820160405280156114e05781602001602082028036833780820191505090505b50905060005b8281101561152a576114f885826110ce565b82828151811061150b5761150a6142a0565b5b6020026020010181815250508080611522906142cf565b9150506114e6565b508092505050919050565b600061153f610dd3565b8210611580576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115779061484d565b60405180910390fd5b60088281548110611594576115936142a0565b5b90600052602060002001549050919050565b6115ae61237b565b73ffffffffffffffffffffffffffffffffffffffff166115cc611a1d565b73ffffffffffffffffffffffffffffffffffffffff1614611622576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116199061417d565b60405180910390fd5b80600d8190555050565b61163461237b565b73ffffffffffffffffffffffffffffffffffffffff16611652611a1d565b73ffffffffffffffffffffffffffffffffffffffff16146116a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169f9061417d565b60405180910390fd5b80600b90816116b79190614a19565b5050565b6000600a60009054906101000a900460ff16905090565b601060009054906101000a900460ff1681565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361178d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178490614b5d565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611806576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117fd90614bef565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61185561237b565b73ffffffffffffffffffffffffffffffffffffffff16611873611a1d565b73ffffffffffffffffffffffffffffffffffffffff16146118c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118c09061417d565b60405180910390fd5b6118d36000612793565b565b600d5481565b6118e361237b565b73ffffffffffffffffffffffffffffffffffffffff16611901611a1d565b73ffffffffffffffffffffffffffffffffffffffff1614611957576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194e9061417d565b60405180910390fd5b61195f612859565b565b61196961237b565b73ffffffffffffffffffffffffffffffffffffffff16611987611a1d565b73ffffffffffffffffffffffffffffffffffffffff16146119dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d49061417d565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050611a1b57600080fd5b565b6000600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611a4f61237b565b73ffffffffffffffffffffffffffffffffffffffff16611a6d611a1d565b73ffffffffffffffffffffffffffffffffffffffff1614611ac3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aba9061417d565b60405180910390fd5b80600e8190555050565b611ad561237b565b73ffffffffffffffffffffffffffffffffffffffff16611af3611a1d565b73ffffffffffffffffffffffffffffffffffffffff1614611b49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b409061417d565b60405180910390fd5b80600c9081611b589190614a19565b5050565b606060018054611b6b90613f4a565b80601f0160208091040260200160405190810160405280929190818152602001828054611b9790613f4a565b8015611be45780601f10611bb957610100808354040283529160200191611be4565b820191906000526020600020905b815481529060010190602001808311611bc757829003601f168201915b5050505050905090565b600e5481565b600f5481565b611c0c611c0561237b565b83836128fc565b5050565b611c21611c1b61237b565b8361245a565b611c60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5790614389565b60405180910390fd5b611c6c84848484612a68565b50505050565b611c7a61237b565b73ffffffffffffffffffffffffffffffffffffffff16611c98611a1d565b73ffffffffffffffffffffffffffffffffffffffff1614611cee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ce59061417d565b60405180910390fd5b611cf6612ac4565b565b611d0061237b565b73ffffffffffffffffffffffffffffffffffffffff16611d1e611a1d565b73ffffffffffffffffffffffffffffffffffffffff1614611d74576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6b9061417d565b60405180910390fd5b80601060006101000a81548160ff02191690831515021790555050565b6060611d9c8261230f565b611ddb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dd290614c81565b60405180910390fd5b6000611de5612b66565b90506000815111611e055760405180602001604052806000815250611e30565b80611e0f84612bf8565b604051602001611e20929190614cdd565b6040516020818303038152906040525b915050919050565b600b8054611e4590613f4a565b80601f0160208091040260200160405190810160405280929190818152602001828054611e7190613f4a565b8015611ebe5780601f10611e9357610100808354040283529160200191611ebe565b820191906000526020600020905b815481529060010190602001808311611ea157829003601f168201915b505050505081565b611ece61237b565b73ffffffffffffffffffffffffffffffffffffffff16611eec611a1d565b73ffffffffffffffffffffffffffffffffffffffff1614611f42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f399061417d565b60405180910390fd5b80600f8190555050565b600c8054611f5990613f4a565b80601f0160208091040260200160405190810160405280929190818152602001828054611f8590613f4a565b8015611fd25780601f10611fa757610100808354040283529160200191611fd2565b820191906000526020600020905b815481529060010190602001808311611fb557829003601f168201915b505050505081565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b61207661237b565b73ffffffffffffffffffffffffffffffffffffffff16612094611a1d565b73ffffffffffffffffffffffffffffffffffffffff16146120ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120e19061417d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612159576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161215090614d73565b60405180910390fd5b61216281612793565b50565b6108ae81565b600080823b905060008111915050919050565b612189838383612290565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036121cb576121c681612d58565b61220a565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614612209576122088382612da1565b5b5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361224c5761224781612f0e565b61228b565b8273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461228a576122898282612fdf565b5b5b505050565b505050565b60007f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061230857506123078261305e565b5b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff166123f6836116e5565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b612456828260405180602001604052806000815250613140565b5050565b60006124658261230f565b6124a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161249b90614e05565b60405180910390fd5b60006124af836116e5565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061251e57508373ffffffffffffffffffffffffffffffffffffffff1661250684610a94565b73ffffffffffffffffffffffffffffffffffffffff16145b8061252f575061252e8185611fda565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff16612558826116e5565b73ffffffffffffffffffffffffffffffffffffffff16146125ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125a590614e97565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361261d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161261490614f29565b60405180910390fd5b61262883838361319b565b612633600082612383565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612683919061426c565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546126da91906141cc565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b6000600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600a60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6128616116bb565b156128a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161289890614f95565b60405180910390fd5b6001600a60006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586128e561237b565b6040516128f291906137d6565b60405180910390a1565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361296a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161296190615001565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051612a5b9190613665565b60405180910390a3505050565b612a73848484612538565b612a7f848484846131f3565b612abe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ab590615093565b60405180910390fd5b50505050565b612acc6116bb565b612b0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b02906150ff565b60405180910390fd5b6000600a60006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa612b4f61237b565b604051612b5c91906137d6565b60405180910390a1565b6060600b8054612b7590613f4a565b80601f0160208091040260200160405190810160405280929190818152602001828054612ba190613f4a565b8015612bee5780601f10612bc357610100808354040283529160200191612bee565b820191906000526020600020905b815481529060010190602001808311612bd157829003601f168201915b5050505050905090565b606060008203612c3f576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050612d53565b600082905060005b60008214612c71578080612c5a906142cf565b915050600a82612c6a919061514e565b9150612c47565b60008167ffffffffffffffff811115612c8d57612c8c6139b9565b5b6040519080825280601f01601f191660200182016040528015612cbf5781602001600182028036833780820191505090505b5090505b60008514612d4c57600182612cd8919061426c565b9150600a85612ce7919061517f565b6030612cf391906141cc565b60f81b818381518110612d0957612d086142a0565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a85612d45919061514e565b9450612cc3565b8093505050505b919050565b6008805490506009600083815260200190815260200160002081905550600881908060018154018082558091505060019003906000526020600020016000909190919091505550565b60006001612dae84611796565b612db8919061426c565b9050600060076000848152602001908152602001600020549050818114612e9d576000600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002054905080600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002081905550816007600083815260200190815260200160002081905550505b6007600084815260200190815260200160002060009055600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206000905550505050565b60006001600880549050612f22919061426c565b9050600060096000848152602001908152602001600020549050600060088381548110612f5257612f516142a0565b5b906000526020600020015490508060088381548110612f7457612f736142a0565b5b906000526020600020018190555081600960008381526020019081526020016000208190555060096000858152602001908152602001600020600090556008805480612fc357612fc26151b0565b5b6001900381819060005260206000200160009055905550505050565b6000612fea83611796565b905081600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002081905550806007600084815260200190815260200160002081905550505050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061312957507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061313957506131388261337a565b5b9050919050565b61314a83836133e4565b61315760008484846131f3565b613196576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161318d90615093565b60405180910390fd5b505050565b6131a36116bb565b156131e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131da90614f95565b60405180910390fd5b6131ee83838361217e565b505050565b60006132148473ffffffffffffffffffffffffffffffffffffffff1661216b565b1561336d578373ffffffffffffffffffffffffffffffffffffffff1663150b7a0261323d61237b565b8786866040518563ffffffff1660e01b815260040161325f9493929190615234565b6020604051808303816000875af192505050801561329b57506040513d601f19601f820116820180604052508101906132989190615295565b60015b61331d573d80600081146132cb576040519150601f19603f3d011682016040523d82523d6000602084013e6132d0565b606091505b506000815103613315576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161330c90615093565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050613372565b600190505b949350505050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603613453576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161344a9061530e565b60405180910390fd5b61345c8161230f565b1561349c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016134939061537a565b60405180910390fd5b6134a86000838361319b565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546134f891906141cc565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6135fa816135c5565b811461360557600080fd5b50565b600081359050613617816135f1565b92915050565b600060208284031215613633576136326135bb565b5b600061364184828501613608565b91505092915050565b60008115159050919050565b61365f8161364a565b82525050565b600060208201905061367a6000830184613656565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156136ba57808201518184015260208101905061369f565b60008484015250505050565b6000601f19601f8301169050919050565b60006136e282613680565b6136ec818561368b565b93506136fc81856020860161369c565b613705816136c6565b840191505092915050565b6000602082019050818103600083015261372a81846136d7565b905092915050565b6000819050919050565b61374581613732565b811461375057600080fd5b50565b6000813590506137628161373c565b92915050565b60006020828403121561377e5761377d6135bb565b5b600061378c84828501613753565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006137c082613795565b9050919050565b6137d0816137b5565b82525050565b60006020820190506137eb60008301846137c7565b92915050565b6137fa816137b5565b811461380557600080fd5b50565b600081359050613817816137f1565b92915050565b60008060408385031215613834576138336135bb565b5b600061384285828601613808565b925050602061385385828601613753565b9150509250929050565b600060208284031215613873576138726135bb565b5b600061388184828501613808565b91505092915050565b600080fd5b600080fd5b600080fd5b60008083601f8401126138af576138ae61388a565b5b8235905067ffffffffffffffff8111156138cc576138cb61388f565b5b6020830191508360208202830111156138e8576138e7613894565b5b9250929050565b60008060208385031215613906576139056135bb565b5b600083013567ffffffffffffffff811115613924576139236135c0565b5b61393085828601613899565b92509250509250929050565b61394581613732565b82525050565b6000602082019050613960600083018461393c565b92915050565b60008060006060848603121561397f5761397e6135bb565b5b600061398d86828701613808565b935050602061399e86828701613808565b92505060406139af86828701613753565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6139f1826136c6565b810181811067ffffffffffffffff82111715613a1057613a0f6139b9565b5b80604052505050565b6000613a236135b1565b9050613a2f82826139e8565b919050565b600067ffffffffffffffff821115613a4f57613a4e6139b9565b5b602082029050602081019050919050565b6000613a73613a6e84613a34565b613a19565b90508083825260208201905060208402830185811115613a9657613a95613894565b5b835b81811015613abf5780613aab8882613808565b845260208401935050602081019050613a98565b5050509392505050565b600082601f830112613ade57613add61388a565b5b8135613aee848260208601613a60565b91505092915050565b600060208284031215613b0d57613b0c6135bb565b5b600082013567ffffffffffffffff811115613b2b57613b2a6135c0565b5b613b3784828501613ac9565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613b7581613732565b82525050565b6000613b878383613b6c565b60208301905092915050565b6000602082019050919050565b6000613bab82613b40565b613bb58185613b4b565b9350613bc083613b5c565b8060005b83811015613bf1578151613bd88882613b7b565b9750613be383613b93565b925050600181019050613bc4565b5085935050505092915050565b60006020820190508181036000830152613c188184613ba0565b905092915050565b600080fd5b600067ffffffffffffffff821115613c4057613c3f6139b9565b5b613c49826136c6565b9050602081019050919050565b82818337600083830152505050565b6000613c78613c7384613c25565b613a19565b905082815260208101848484011115613c9457613c93613c20565b5b613c9f848285613c56565b509392505050565b600082601f830112613cbc57613cbb61388a565b5b8135613ccc848260208601613c65565b91505092915050565b600060208284031215613ceb57613cea6135bb565b5b600082013567ffffffffffffffff811115613d0957613d086135c0565b5b613d1584828501613ca7565b91505092915050565b613d278161364a565b8114613d3257600080fd5b50565b600081359050613d4481613d1e565b92915050565b60008060408385031215613d6157613d606135bb565b5b6000613d6f85828601613808565b9250506020613d8085828601613d35565b9150509250929050565b600067ffffffffffffffff821115613da557613da46139b9565b5b613dae826136c6565b9050602081019050919050565b6000613dce613dc984613d8a565b613a19565b905082815260208101848484011115613dea57613de9613c20565b5b613df5848285613c56565b509392505050565b600082601f830112613e1257613e1161388a565b5b8135613e22848260208601613dbb565b91505092915050565b60008060008060808587031215613e4557613e446135bb565b5b6000613e5387828801613808565b9450506020613e6487828801613808565b9350506040613e7587828801613753565b925050606085013567ffffffffffffffff811115613e9657613e956135c0565b5b613ea287828801613dfd565b91505092959194509250565b600060208284031215613ec457613ec36135bb565b5b6000613ed284828501613d35565b91505092915050565b60008060408385031215613ef257613ef16135bb565b5b6000613f0085828601613808565b9250506020613f1185828601613808565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613f6257607f821691505b602082108103613f7557613f74613f1b565b5b50919050565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b6000613fd7602c8361368b565b9150613fe282613f7b565b604082019050919050565b6000602082019050818103600083015261400681613fca565b9050919050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b600061406960218361368b565b91506140748261400d565b604082019050919050565b600060208201905081810360008301526140988161405c565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b60006140fb60388361368b565b91506141068261409f565b604082019050919050565b6000602082019050818103600083015261412a816140ee565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061416760208361368b565b915061417282614131565b602082019050919050565b600060208201905081810360008301526141968161415a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006141d782613732565b91506141e283613732565b92508282019050808211156141fa576141f961419d565b5b92915050565b7f45786365656473206d6178696d756d20737570706c7921000000000000000000600082015250565b600061423660178361368b565b915061424182614200565b602082019050919050565b6000602082019050818103600083015261426581614229565b9050919050565b600061427782613732565b915061428283613732565b925082820390508181111561429a5761429961419d565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006142da82613732565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361430c5761430b61419d565b5b600182019050919050565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b600061437360318361368b565b915061437e82614317565b604082019050919050565b600060208201905081810360008301526143a281614366565b9050919050565b7f596f7520617265206e6f742077686974656c697374656420666f72207468652060008201527f57617220436869636b73207072652d73616c6521000000000000000000000000602082015250565b600061440560348361368b565b9150614410826143a9565b604082019050919050565b60006020820190508181036000830152614434816143f8565b9050919050565b7f596f752063616e2774207072652d6d696e742057617220436869636b7320617460008201527f20746865206d6f6d656e74210000000000000000000000000000000000000000602082015250565b6000614497602c8361368b565b91506144a28261443b565b604082019050919050565b600060208201905081810360008301526144c68161448a565b9050919050565b7f596f752063616e206f6e6c79206d696e74203120746f2031302057617220436860008201527f69636b7321000000000000000000000000000000000000000000000000000000602082015250565b600061452960258361368b565b9150614534826144cd565b604082019050919050565b600060208201905081810360008301526145588161451c565b9050919050565b600061456a82613732565b915061457583613732565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156145ae576145ad61419d565b5b828202905092915050565b7f45746865722073656e74206973206e6f7420636f727265637421000000000000600082015250565b60006145ef601a8361368b565b91506145fa826145b9565b602082019050919050565b6000602082019050818103600083015261461e816145e2565b9050919050565b7f455243373231456e756d657261626c653a206f776e657220696e646578206f7560008201527f74206f6620626f756e6473000000000000000000000000000000000000000000602082015250565b6000614681602b8361368b565b915061468c82614625565b604082019050919050565b600060208201905081810360008301526146b081614674565b9050919050565b7f5468652057617220436869636b73206d61696e2073616c65206973206e6f742060008201527f6f70656e21000000000000000000000000000000000000000000000000000000602082015250565b600061471360258361368b565b915061471e826146b7565b604082019050919050565b6000602082019050818103600083015261474281614706565b9050919050565b7f596f752063616e206f6e6c79206d696e74203120746f2032302057617220436860008201527f69636b7321000000000000000000000000000000000000000000000000000000602082015250565b60006147a560258361368b565b91506147b082614749565b604082019050919050565b600060208201905081810360008301526147d481614798565b9050919050565b7f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60008201527f7574206f6620626f756e64730000000000000000000000000000000000000000602082015250565b6000614837602c8361368b565b9150614842826147db565b604082019050919050565b600060208201905081810360008301526148668161482a565b9050919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026148cf7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82614892565b6148d98683614892565b95508019841693508086168417925050509392505050565b6000819050919050565b600061491661491161490c84613732565b6148f1565b613732565b9050919050565b6000819050919050565b614930836148fb565b61494461493c8261491d565b84845461489f565b825550505050565b600090565b61495961494c565b614964818484614927565b505050565b5b818110156149885761497d600082614951565b60018101905061496a565b5050565b601f8211156149cd5761499e8161486d565b6149a784614882565b810160208510156149b6578190505b6149ca6149c285614882565b830182614969565b50505b505050565b600082821c905092915050565b60006149f0600019846008026149d2565b1980831691505092915050565b6000614a0983836149df565b9150826002028217905092915050565b614a2282613680565b67ffffffffffffffff811115614a3b57614a3a6139b9565b5b614a458254613f4a565b614a5082828561498c565b600060209050601f831160018114614a835760008415614a71578287015190505b614a7b85826149fd565b865550614ae3565b601f198416614a918661486d565b60005b82811015614ab957848901518255600182019150602085019450602081019050614a94565b86831015614ad65784890151614ad2601f8916826149df565b8355505b6001600288020188555050505b505050505050565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b6000614b4760298361368b565b9150614b5282614aeb565b604082019050919050565b60006020820190508181036000830152614b7681614b3a565b9050919050565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b6000614bd9602a8361368b565b9150614be482614b7d565b604082019050919050565b60006020820190508181036000830152614c0881614bcc565b9050919050565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b6000614c6b602f8361368b565b9150614c7682614c0f565b604082019050919050565b60006020820190508181036000830152614c9a81614c5e565b9050919050565b600081905092915050565b6000614cb782613680565b614cc18185614ca1565b9350614cd181856020860161369c565b80840191505092915050565b6000614ce98285614cac565b9150614cf58284614cac565b91508190509392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614d5d60268361368b565b9150614d6882614d01565b604082019050919050565b60006020820190508181036000830152614d8c81614d50565b9050919050565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b6000614def602c8361368b565b9150614dfa82614d93565b604082019050919050565b60006020820190508181036000830152614e1e81614de2565b9050919050565b7f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960008201527f73206e6f74206f776e0000000000000000000000000000000000000000000000602082015250565b6000614e8160298361368b565b9150614e8c82614e25565b604082019050919050565b60006020820190508181036000830152614eb081614e74565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000614f1360248361368b565b9150614f1e82614eb7565b604082019050919050565b60006020820190508181036000830152614f4281614f06565b9050919050565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b6000614f7f60108361368b565b9150614f8a82614f49565b602082019050919050565b60006020820190508181036000830152614fae81614f72565b9050919050565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b6000614feb60198361368b565b9150614ff682614fb5565b602082019050919050565b6000602082019050818103600083015261501a81614fde565b9050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b600061507d60328361368b565b915061508882615021565b604082019050919050565b600060208201905081810360008301526150ac81615070565b9050919050565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b60006150e960148361368b565b91506150f4826150b3565b602082019050919050565b60006020820190508181036000830152615118816150dc565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061515982613732565b915061516483613732565b9250826151745761517361511f565b5b828204905092915050565b600061518a82613732565b915061519583613732565b9250826151a5576151a461511f565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000615206826151df565b61521081856151ea565b935061522081856020860161369c565b615229816136c6565b840191505092915050565b600060808201905061524960008301876137c7565b61525660208301866137c7565b615263604083018561393c565b818103606083015261527581846151fb565b905095945050505050565b60008151905061528f816135f1565b92915050565b6000602082840312156152ab576152aa6135bb565b5b60006152b984828501615280565b91505092915050565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b60006152f860208361368b565b9150615303826152c2565b602082019050919050565b60006020820190508181036000830152615327816152eb565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b6000615364601c8361368b565b915061536f8261532e565b602082019050919050565b6000602082019050818103600083015261539381615357565b905091905056fea2646970667358221220f634d637b86e758f64a02dcd02efda0df715a23f314b4da2e85e301543126b3664736f6c63430008100033000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000002568747470733a2f2f6170692e636f736d69636d6574612e696f2f7761722d636869636b732f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003268747470733a2f2f6170692e636f736d69636d6574612e696f2f7761722d636869636b732f636f6e74726163742e6a736f6e0000000000000000000000000000