0x608060405260405180602001604052806000815250600890805190602001906200002b9291906200036c565b506040518060400160405280600581526020017f2e6a736f6e00000000000000000000000000000000000000000000000000000081525060099080519060200190620000799291906200036c565b50662386f26fc10000600a556064600b55600a600c55600a600d556001600e60006101000a81548160ff021916908315150217905550348015620000bc57600080fd5b506040518060400160405280601781526020017f44656164204172636869746563747320536f63696574790000000000000000008152506040518060400160405280600381526020017f44415300000000000000000000000000000000000000000000000000000000008152508160009080519060200190620001419291906200036c565b5080600190805190602001906200015a9291906200036c565b5050506200017d62000171620001c960201b60201c565b620001d160201b60201c565b620001c36040518060400160405280600581526020017f2e6a736f6e0000000000000000000000000000000000000000000000000000008152506200029760201b60201c565b62000504565b600033905090565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b620002a7620001c960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620002cd6200034260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000326576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200031d9062000443565b60405180910390fd5b80600990805190602001906200033e9291906200036c565b5050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b8280546200037a9062000476565b90600052602060002090601f0160209004810192826200039e5760008555620003ea565b82601f10620003b957805160ff1916838001178555620003ea565b82800160010185558215620003ea579182015b82811115620003e9578251825591602001919060010190620003cc565b5b509050620003f99190620003fd565b5090565b5b8082111562000418576000816000905550600101620003fe565b5090565b60006200042b60208362000465565b91506200043882620004db565b602082019050919050565b600060208201905081810360008301526200045e816200041c565b9050919050565b600082825260208201905092915050565b600060028204905060018216806200048f57607f821691505b60208210811415620004a657620004a5620004ac565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b613f6880620005146000396000f3fe6080604052600436106101ee5760003560e01c80636f8b44b01161010d578063a22cb465116100a0578063c87b56dd1161006f578063c87b56dd146106b2578063d5abeb01146106ef578063e985e9c51461071a578063efbd73f414610757578063f2fde38b14610780576101ee565b8063a22cb4651461060c578063b071401b14610635578063b88d4fde1461065e578063bc951b9114610687576101ee565b80638da5cb5b116100dc5780638da5cb5b1461056f57806394354fd01461059a57806395d89b41146105c5578063a0712d68146105f0576101ee565b80636f8b44b0146104c957806370a08231146104f2578063715018a61461052f5780637ec4a65914610546576101ee565b806323b872dd11610185578063438b630011610154578063438b6300146103fb57806344a0d68a146104385780635c975abb146104615780636352211e1461048c576101ee565b806323b872dd14610369578063314d4d1b146103925780633ccfd60b146103bb57806342842e0e146103d2576101ee565b806313faede6116101c157806313faede6146102c157806316ba10e0146102ec57806316c38b3c1461031557806318160ddd1461033e576101ee565b806301ffc9a7146101f357806306fdde0314610230578063081812fc1461025b578063095ea7b314610298575b600080fd5b3480156101ff57600080fd5b5061021a60048036038101906102159190612b26565b6107a9565b60405161022791906131db565b60405180910390f35b34801561023c57600080fd5b5061024561088b565b60405161025291906131f6565b60405180910390f35b34801561026757600080fd5b50610282600480360381019061027d9190612bc9565b61091d565b60405161028f9190613152565b60405180910390f35b3480156102a457600080fd5b506102bf60048036038101906102ba9190612ab9565b6109a2565b005b3480156102cd57600080fd5b506102d6610aba565b6040516102e391906134b8565b60405180910390f35b3480156102f857600080fd5b50610313600480360381019061030e9190612b80565b610ac0565b005b34801561032157600080fd5b5061033c60048036038101906103379190612af9565b610b56565b005b34801561034a57600080fd5b50610353610bef565b60405161036091906134b8565b60405180910390f35b34801561037557600080fd5b50610390600480360381019061038b91906129a3565b610c00565b005b34801561039e57600080fd5b506103b960048036038101906103b49190612bc9565b610c60565b005b3480156103c757600080fd5b506103d0610ce6565b005b3480156103de57600080fd5b506103f960048036038101906103f491906129a3565b610de2565b005b34801561040757600080fd5b50610422600480360381019061041d9190612936565b610e02565b60405161042f91906131b9565b60405180910390f35b34801561044457600080fd5b5061045f600480360381019061045a9190612bc9565b610f0d565b005b34801561046d57600080fd5b50610476610f93565b60405161048391906131db565b60405180910390f35b34801561049857600080fd5b506104b360048036038101906104ae9190612bc9565b610fa6565b6040516104c09190613152565b60405180910390f35b3480156104d557600080fd5b506104f060048036038101906104eb9190612bc9565b611058565b005b3480156104fe57600080fd5b5061051960048036038101906105149190612936565b6110de565b60405161052691906134b8565b60405180910390f35b34801561053b57600080fd5b50610544611196565b005b34801561055257600080fd5b5061056d60048036038101906105689190612b80565b61121e565b005b34801561057b57600080fd5b506105846112b4565b6040516105919190613152565b60405180910390f35b3480156105a657600080fd5b506105af6112de565b6040516105bc91906134b8565b60405180910390f35b3480156105d157600080fd5b506105da6112e4565b6040516105e791906131f6565b60405180910390f35b61060a60048036038101906106059190612bc9565b611376565b005b34801561061857600080fd5b50610633600480360381019061062e9190612a79565b611527565b005b34801561064157600080fd5b5061065c60048036038101906106579190612bc9565b61153d565b005b34801561066a57600080fd5b50610685600480360381019061068091906129f6565b6115c3565b005b34801561069357600080fd5b5061069c611625565b6040516106a991906134b8565b60405180910390f35b3480156106be57600080fd5b506106d960048036038101906106d49190612bc9565b61162b565b6040516106e691906131f6565b60405180910390f35b3480156106fb57600080fd5b506107046116d5565b60405161071191906134b8565b60405180910390f35b34801561072657600080fd5b50610741600480360381019061073c9190612963565b6116db565b60405161074e91906131db565b60405180910390f35b34801561076357600080fd5b5061077e60048036038101906107799190612bf6565b61176f565b005b34801561078c57600080fd5b506107a760048036038101906107a29190612936565b6118a5565b005b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061087457507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061088457506108838261199d565b5b9050919050565b60606000805461089a906137c1565b80601f01602080910402602001604051908101604052809291908181526020018280546108c6906137c1565b80156109135780601f106108e857610100808354040283529160200191610913565b820191906000526020600020905b8154815290600101906020018083116108f657829003601f168201915b5050505050905090565b600061092882611a07565b610967576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095e90613398565b60405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006109ad82610fa6565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610a1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1590613438565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610a3d611a73565b73ffffffffffffffffffffffffffffffffffffffff161480610a6c5750610a6b81610a66611a73565b6116db565b5b610aab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa290613318565b60405180910390fd5b610ab58383611a7b565b505050565b600a5481565b610ac8611a73565b73ffffffffffffffffffffffffffffffffffffffff16610ae66112b4565b73ffffffffffffffffffffffffffffffffffffffff1614610b3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b33906133b8565b60405180910390fd5b8060099080519060200190610b5292919061274a565b5050565b610b5e611a73565b73ffffffffffffffffffffffffffffffffffffffff16610b7c6112b4565b73ffffffffffffffffffffffffffffffffffffffff1614610bd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc9906133b8565b60405180910390fd5b80600e60006101000a81548160ff02191690831515021790555050565b6000610bfb6007611b34565b905090565b610c11610c0b611a73565b82611b42565b610c50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4790613478565b60405180910390fd5b610c5b838383611c20565b505050565b610c68611a73565b73ffffffffffffffffffffffffffffffffffffffff16610c866112b4565b73ffffffffffffffffffffffffffffffffffffffff1614610cdc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd3906133b8565b60405180910390fd5b80600d8190555050565b610cee611a73565b73ffffffffffffffffffffffffffffffffffffffff16610d0c6112b4565b73ffffffffffffffffffffffffffffffffffffffff1614610d62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d59906133b8565b60405180910390fd5b6000610d6c6112b4565b73ffffffffffffffffffffffffffffffffffffffff1647604051610d8f9061313d565b60006040518083038185875af1925050503d8060008114610dcc576040519150601f19603f3d011682016040523d82523d6000602084013e610dd1565b606091505b5050905080610ddf57600080fd5b50565b610dfd838383604051806020016040528060008152506115c3565b505050565b60606000610e0f836110de565b905060008167ffffffffffffffff811115610e2d57610e2c61395a565b5b604051908082528060200260200182016040528015610e5b5781602001602082028036833780820191505090505b50905060006001905060005b8381108015610e785750600b548211155b15610f01576000610e8883610fa6565b90508673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610eed5782848381518110610ed257610ed161392b565b5b6020026020010181815250508180610ee990613824565b9250505b8280610ef890613824565b93505050610e67565b82945050505050919050565b610f15611a73565b73ffffffffffffffffffffffffffffffffffffffff16610f336112b4565b73ffffffffffffffffffffffffffffffffffffffff1614610f89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f80906133b8565b60405180910390fd5b80600a8190555050565b600e60009054906101000a900460ff1681565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561104f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104690613358565b60405180910390fd5b80915050919050565b611060611a73565b73ffffffffffffffffffffffffffffffffffffffff1661107e6112b4565b73ffffffffffffffffffffffffffffffffffffffff16146110d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110cb906133b8565b60405180910390fd5b80600b8190555050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561114f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114690613338565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61119e611a73565b73ffffffffffffffffffffffffffffffffffffffff166111bc6112b4565b73ffffffffffffffffffffffffffffffffffffffff1614611212576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611209906133b8565b60405180910390fd5b61121c6000611e7c565b565b611226611a73565b73ffffffffffffffffffffffffffffffffffffffff166112446112b4565b73ffffffffffffffffffffffffffffffffffffffff161461129a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611291906133b8565b60405180910390fd5b80600890805190602001906112b092919061274a565b5050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600c5481565b6060600180546112f3906137c1565b80601f016020809104026020016040519081016040528092919081815260200182805461131f906137c1565b801561136c5780601f106113415761010080835404028352916020019161136c565b820191906000526020600020905b81548152906001019060200180831161134f57829003601f168201915b5050505050905090565b806000811180156113895750600c548111155b6113c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113bf90613278565b60405180910390fd5b600b54816113d66007611b34565b6113e091906135f6565b1115611421576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141890613458565b60405180910390fd5b600e60009054906101000a900460ff1615611471576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611468906133d8565b60405180910390fd5b81600a5461147f919061367d565b3410156114c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b890613498565b60405180910390fd5b600d54826114ce336110de565b6114d891906135f6565b1115611519576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611510906132f8565b60405180910390fd5b6115233383611f42565b5050565b611539611532611a73565b8383611f82565b5050565b611545611a73565b73ffffffffffffffffffffffffffffffffffffffff166115636112b4565b73ffffffffffffffffffffffffffffffffffffffff16146115b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b0906133b8565b60405180910390fd5b80600c8190555050565b6115d46115ce611a73565b83611b42565b611613576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160a90613478565b60405180910390fd5b61161f848484846120ef565b50505050565b600d5481565b606061163682611a07565b611675576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166c90613418565b60405180910390fd5b600061167f61214b565b9050600081511161169f57604051806020016040528060008152506116cd565b806116a9846121dd565b60096040516020016116bd9392919061310c565b6040516020818303038152906040525b915050919050565b600b5481565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b816000811180156117825750600c548111155b6117c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b890613278565b60405180910390fd5b600b54816117cf6007611b34565b6117d991906135f6565b111561181a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181190613458565b60405180910390fd5b611822611a73565b73ffffffffffffffffffffffffffffffffffffffff166118406112b4565b73ffffffffffffffffffffffffffffffffffffffff1614611896576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188d906133b8565b60405180910390fd5b6118a08284611f42565b505050565b6118ad611a73565b73ffffffffffffffffffffffffffffffffffffffff166118cb6112b4565b73ffffffffffffffffffffffffffffffffffffffff1614611921576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611918906133b8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611991576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198890613238565b60405180910390fd5b61199a81611e7c565b50565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16611aee83610fa6565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600081600001549050919050565b6000611b4d82611a07565b611b8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b83906132d8565b60405180910390fd5b6000611b9783610fa6565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611c0657508373ffffffffffffffffffffffffffffffffffffffff16611bee8461091d565b73ffffffffffffffffffffffffffffffffffffffff16145b80611c175750611c1681856116db565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff16611c4082610fa6565b73ffffffffffffffffffffffffffffffffffffffff1614611c96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c8d906133f8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611d06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cfd90613298565b60405180910390fd5b611d1183838361233e565b611d1c600082611a7b565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611d6c91906136d7565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611dc391906135f6565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60005b81811015611f7d57611f576007612343565b611f6a83611f656007611b34565b612359565b8080611f7590613824565b915050611f45565b505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611ff1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fe8906132b8565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516120e291906131db565b60405180910390a3505050565b6120fa848484611c20565b61210684848484612377565b612145576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213c90613218565b60405180910390fd5b50505050565b60606008805461215a906137c1565b80601f0160208091040260200160405190810160405280929190818152602001828054612186906137c1565b80156121d35780601f106121a8576101008083540402835291602001916121d3565b820191906000526020600020905b8154815290600101906020018083116121b657829003601f168201915b5050505050905090565b60606000821415612225576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050612339565b600082905060005b6000821461225757808061224090613824565b915050600a82612250919061364c565b915061222d565b60008167ffffffffffffffff8111156122735761227261395a565b5b6040519080825280601f01601f1916602001820160405280156122a55781602001600182028036833780820191505090505b5090505b60008514612332576001826122be91906136d7565b9150600a856122cd919061386d565b60306122d991906135f6565b60f81b8183815181106122ef576122ee61392b565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a8561232b919061364c565b94506122a9565b8093505050505b919050565b505050565b6001816000016000828254019250508190555050565b61237382826040518060200160405280600081525061250e565b5050565b60006123988473ffffffffffffffffffffffffffffffffffffffff16612569565b15612501578373ffffffffffffffffffffffffffffffffffffffff1663150b7a026123c1611a73565b8786866040518563ffffffff1660e01b81526004016123e3949392919061316d565b602060405180830381600087803b1580156123fd57600080fd5b505af192505050801561242e57506040513d601f19601f8201168201806040525081019061242b9190612b53565b60015b6124b1573d806000811461245e576040519150601f19603f3d011682016040523d82523d6000602084013e612463565b606091505b506000815114156124a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124a090613218565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050612506565b600190505b949350505050565b612518838361257c565b6125256000848484612377565b612564576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161255b90613218565b60405180910390fd5b505050565b600080823b905060008111915050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156125ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125e390613378565b60405180910390fd5b6125f581611a07565b15612635576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161262c90613258565b60405180910390fd5b6126416000838361233e565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461269191906135f6565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b828054612756906137c1565b90600052602060002090601f01602090048101928261277857600085556127bf565b82601f1061279157805160ff19168380011785556127bf565b828001600101855582156127bf579182015b828111156127be5782518255916020019190600101906127a3565b5b5090506127cc91906127d0565b5090565b5b808211156127e95760008160009055506001016127d1565b5090565b60006128006127fb846134f8565b6134d3565b90508281526020810184848401111561281c5761281b61398e565b5b61282784828561377f565b509392505050565b600061284261283d84613529565b6134d3565b90508281526020810184848401111561285e5761285d61398e565b5b61286984828561377f565b509392505050565b60008135905061288081613ed6565b92915050565b60008135905061289581613eed565b92915050565b6000813590506128aa81613f04565b92915050565b6000815190506128bf81613f04565b92915050565b600082601f8301126128da576128d9613989565b5b81356128ea8482602086016127ed565b91505092915050565b600082601f83011261290857612907613989565b5b813561291884826020860161282f565b91505092915050565b60008135905061293081613f1b565b92915050565b60006020828403121561294c5761294b613998565b5b600061295a84828501612871565b91505092915050565b6000806040838503121561297a57612979613998565b5b600061298885828601612871565b925050602061299985828601612871565b9150509250929050565b6000806000606084860312156129bc576129bb613998565b5b60006129ca86828701612871565b93505060206129db86828701612871565b92505060406129ec86828701612921565b9150509250925092565b60008060008060808587031215612a1057612a0f613998565b5b6000612a1e87828801612871565b9450506020612a2f87828801612871565b9350506040612a4087828801612921565b925050606085013567ffffffffffffffff811115612a6157612a60613993565b5b612a6d878288016128c5565b91505092959194509250565b60008060408385031215612a9057612a8f613998565b5b6000612a9e85828601612871565b9250506020612aaf85828601612886565b9150509250929050565b60008060408385031215612ad057612acf613998565b5b6000612ade85828601612871565b9250506020612aef85828601612921565b9150509250929050565b600060208284031215612b0f57612b0e613998565b5b6000612b1d84828501612886565b91505092915050565b600060208284031215612b3c57612b3b613998565b5b6000612b4a8482850161289b565b91505092915050565b600060208284031215612b6957612b68613998565b5b6000612b77848285016128b0565b91505092915050565b600060208284031215612b9657612b95613998565b5b600082013567ffffffffffffffff811115612bb457612bb3613993565b5b612bc0848285016128f3565b91505092915050565b600060208284031215612bdf57612bde613998565b5b6000612bed84828501612921565b91505092915050565b60008060408385031215612c0d57612c0c613998565b5b6000612c1b85828601612921565b9250506020612c2c85828601612871565b9150509250929050565b6000612c4283836130ee565b60208301905092915050565b612c578161370b565b82525050565b6000612c688261357f565b612c7281856135ad565b9350612c7d8361355a565b8060005b83811015612cae578151612c958882612c36565b9750612ca0836135a0565b925050600181019050612c81565b5085935050505092915050565b612cc48161371d565b82525050565b6000612cd58261358a565b612cdf81856135be565b9350612cef81856020860161378e565b612cf88161399d565b840191505092915050565b6000612d0e82613595565b612d1881856135da565b9350612d2881856020860161378e565b612d318161399d565b840191505092915050565b6000612d4782613595565b612d5181856135eb565b9350612d6181856020860161378e565b80840191505092915050565b60008154612d7a816137c1565b612d8481866135eb565b94506001821660008114612d9f5760018114612db057612de3565b60ff19831686528186019350612de3565b612db98561356a565b60005b83811015612ddb57815481890152600182019150602081019050612dbc565b838801955050505b50505092915050565b6000612df96032836135da565b9150612e04826139ae565b604082019050919050565b6000612e1c6026836135da565b9150612e27826139fd565b604082019050919050565b6000612e3f601c836135da565b9150612e4a82613a4c565b602082019050919050565b6000612e626014836135da565b9150612e6d82613a75565b602082019050919050565b6000612e856024836135da565b9150612e9082613a9e565b604082019050919050565b6000612ea86019836135da565b9150612eb382613aed565b602082019050919050565b6000612ecb602c836135da565b9150612ed682613b16565b604082019050919050565b6000612eee601d836135da565b9150612ef982613b65565b602082019050919050565b6000612f116038836135da565b9150612f1c82613b8e565b604082019050919050565b6000612f34602a836135da565b9150612f3f82613bdd565b604082019050919050565b6000612f576029836135da565b9150612f6282613c2c565b604082019050919050565b6000612f7a6020836135da565b9150612f8582613c7b565b602082019050919050565b6000612f9d602c836135da565b9150612fa882613ca4565b604082019050919050565b6000612fc06020836135da565b9150612fcb82613cf3565b602082019050919050565b6000612fe36017836135da565b9150612fee82613d1c565b602082019050919050565b60006130066029836135da565b915061301182613d45565b604082019050919050565b6000613029602f836135da565b915061303482613d94565b604082019050919050565b600061304c6021836135da565b915061305782613de3565b604082019050919050565b600061306f6000836135cf565b915061307a82613e32565b600082019050919050565b60006130926014836135da565b915061309d82613e35565b602082019050919050565b60006130b56031836135da565b91506130c082613e5e565b604082019050919050565b60006130d86013836135da565b91506130e382613ead565b602082019050919050565b6130f781613775565b82525050565b61310681613775565b82525050565b60006131188286612d3c565b91506131248285612d3c565b91506131308284612d6d565b9150819050949350505050565b600061314882613062565b9150819050919050565b60006020820190506131676000830184612c4e565b92915050565b60006080820190506131826000830187612c4e565b61318f6020830186612c4e565b61319c60408301856130fd565b81810360608301526131ae8184612cca565b905095945050505050565b600060208201905081810360008301526131d38184612c5d565b905092915050565b60006020820190506131f06000830184612cbb565b92915050565b600060208201905081810360008301526132108184612d03565b905092915050565b6000602082019050818103600083015261323181612dec565b9050919050565b6000602082019050818103600083015261325181612e0f565b9050919050565b6000602082019050818103600083015261327181612e32565b9050919050565b6000602082019050818103600083015261329181612e55565b9050919050565b600060208201905081810360008301526132b181612e78565b9050919050565b600060208201905081810360008301526132d181612e9b565b9050919050565b600060208201905081810360008301526132f181612ebe565b9050919050565b6000602082019050818103600083015261331181612ee1565b9050919050565b6000602082019050818103600083015261333181612f04565b9050919050565b6000602082019050818103600083015261335181612f27565b9050919050565b6000602082019050818103600083015261337181612f4a565b9050919050565b6000602082019050818103600083015261339181612f6d565b9050919050565b600060208201905081810360008301526133b181612f90565b9050919050565b600060208201905081810360008301526133d181612fb3565b9050919050565b600060208201905081810360008301526133f181612fd6565b9050919050565b6000602082019050818103600083015261341181612ff9565b9050919050565b600060208201905081810360008301526134318161301c565b9050919050565b600060208201905081810360008301526134518161303f565b9050919050565b6000602082019050818103600083015261347181613085565b9050919050565b60006020820190508181036000830152613491816130a8565b9050919050565b600060208201905081810360008301526134b1816130cb565b9050919050565b60006020820190506134cd60008301846130fd565b92915050565b60006134dd6134ee565b90506134e982826137f3565b919050565b6000604051905090565b600067ffffffffffffffff8211156135135761351261395a565b5b61351c8261399d565b9050602081019050919050565b600067ffffffffffffffff8211156135445761354361395a565b5b61354d8261399d565b9050602081019050919050565b6000819050602082019050919050565b60008190508160005260206000209050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b600061360182613775565b915061360c83613775565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156136415761364061389e565b5b828201905092915050565b600061365782613775565b915061366283613775565b925082613672576136716138cd565b5b828204905092915050565b600061368882613775565b915061369383613775565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156136cc576136cb61389e565b5b828202905092915050565b60006136e282613775565b91506136ed83613775565b925082821015613700576136ff61389e565b5b828203905092915050565b600061371682613755565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b838110156137ac578082015181840152602081019050613791565b838111156137bb576000848401525b50505050565b600060028204905060018216806137d957607f821691505b602082108114156137ed576137ec6138fc565b5b50919050565b6137fc8261399d565b810181811067ffffffffffffffff8211171561381b5761381a61395a565b5b80604052505050565b600061382f82613775565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156138625761386161389e565b5b600182019050919050565b600061387882613775565b915061388383613775565b925082613893576138926138cd565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f496e76616c6964206d696e7420616d6f756e7421000000000000000000000000600082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4d6178206d696e74207065722077616c6c657420657863656564656421000000600082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f54686520636f6e74726163742069732070617573656421000000000000000000600082015250565b7f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960008201527f73206e6f74206f776e0000000000000000000000000000000000000000000000602082015250565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b50565b7f4d617820737570706c7920657863656564656421000000000000000000000000600082015250565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b7f496e73756666696369656e742066756e64732100000000000000000000000000600082015250565b613edf8161370b565b8114613eea57600080fd5b50565b613ef68161371d565b8114613f0157600080fd5b50565b613f0d81613729565b8114613f1857600080fd5b50565b613f2481613775565b8114613f2f57600080fd5b5056fea264697066735822122028cead204ff09a0eafcf948a839d2e43a09a36e1eba8ecdc9a01e32834bb92ff64736f6c63430008070033