0x60806040523480156200001157600080fd5b506040518060200160405280600081525062000033816200005a60201b60201c565b5062000054620000486200007660201b60201c565b6200007e60201b60201c565b62000259565b80600290805190602001906200007292919062000144565b5050565b600033905090565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b828054620001529062000223565b90600052602060002090601f016020900481019282620001765760008555620001c2565b82601f106200019157805160ff1916838001178555620001c2565b82800160010185558215620001c2579182015b82811115620001c1578251825591602001919060010190620001a4565b5b509050620001d19190620001d5565b5090565b5b80821115620001f0576000816000905550600101620001d6565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200023c57607f821691505b60208210811415620002535762000252620001f4565b5b50919050565b613b1080620002696000396000f3fe608060405234801561001057600080fd5b506004361061010a5760003560e01c8063715018a6116100a2578063bd85b03911610071578063bd85b039146102b3578063e985e9c5146102e3578063f242432a14610313578063f2fde38b1461032f578063f5298aca1461034b5761010a565b8063715018a614610253578063731133e91461025d5780638da5cb5b14610279578063a22cb465146102975761010a565b80632eb2c2d6116100de5780632eb2c2d6146101bb5780634e1273f4146101d75780634f558e79146102075780636b20c454146102375761010a565b8062fdd58e1461010f57806301ffc9a71461013f5780630e89341c1461016f5780631f7fdffa1461019f575b600080fd5b610129600480360381019061012491906123ec565b610367565b604051610136919061243b565b60405180910390f35b610159600480360381019061015491906124ae565b610430565b60405161016691906124f6565b60405180910390f35b61018960048036038101906101849190612511565b610512565b60405161019691906125d7565b60405180910390f35b6101b960048036038101906101b491906127f6565b6105a6565b005b6101d560048036038101906101d091906128b1565b6105c0565b005b6101f160048036038101906101ec9190612a43565b610661565b6040516101fe9190612b79565b60405180910390f35b610221600480360381019061021c9190612511565b61077a565b60405161022e91906124f6565b60405180910390f35b610251600480360381019061024c9190612b9b565b61078e565b005b61025b61082b565b005b61027760048036038101906102729190612c26565b61083f565b005b610281610859565b60405161028e9190612cb8565b60405180910390f35b6102b160048036038101906102ac9190612cff565b610883565b005b6102cd60048036038101906102c89190612511565b610899565b6040516102da919061243b565b60405180910390f35b6102fd60048036038101906102f89190612d3f565b6108b6565b60405161030a91906124f6565b60405180910390f35b61032d60048036038101906103289190612d7f565b61094a565b005b61034960048036038101906103449190612e16565b6109eb565b005b61036560048036038101906103609190612e43565b610a6f565b005b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156103d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103cf90612f08565b60405180910390fd5b60008083815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60007fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806104fb57507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061050b575061050a82610b0c565b5b9050919050565b60606002805461052190612f57565b80601f016020809104026020016040519081016040528092919081815260200182805461054d90612f57565b801561059a5780601f1061056f5761010080835404028352916020019161059a565b820191906000526020600020905b81548152906001019060200180831161057d57829003601f168201915b50505050509050919050565b6105ae610b76565b6105ba84848484610bf4565b50505050565b6105c8610e21565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16148061060e575061060d85610608610e21565b6108b6565b5b61064d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064490612ffb565b60405180910390fd5b61065a8585858585610e29565b5050505050565b606081518351146106a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161069e9061308d565b60405180910390fd5b6000835167ffffffffffffffff8111156106c4576106c36125fe565b5b6040519080825280602002602001820160405280156106f25781602001602082028036833780820191505090505b50905060005b845181101561076f5761073f858281518110610717576107166130ad565b5b6020026020010151858381518110610732576107316130ad565b5b6020026020010151610367565b828281518110610752576107516130ad565b5b602002602001018181525050806107689061310b565b90506106f8565b508091505092915050565b60008061078683610899565b119050919050565b610796610e21565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806107dc57506107db836107d6610e21565b6108b6565b5b61081b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081290612ffb565b60405180910390fd5b61082683838361114b565b505050565b610833610b76565b61083d600061141a565b565b610847610b76565b610853848484846114e0565b50505050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61089561088e610e21565b8383611691565b5050565b600060046000838152602001908152602001600020549050919050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b610952610e21565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480610998575061099785610992610e21565b6108b6565b5b6109d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ce90612ffb565b60405180910390fd5b6109e485858585856117fe565b5050505050565b6109f3610b76565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610a63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5a906131c6565b60405180910390fd5b610a6c8161141a565b50565b610a77610e21565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480610abd5750610abc83610ab7610e21565b6108b6565b5b610afc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af390612ffb565b60405180910390fd5b610b07838383611a9a565b505050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b610b7e610e21565b73ffffffffffffffffffffffffffffffffffffffff16610b9c610859565b73ffffffffffffffffffffffffffffffffffffffff1614610bf2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be990613232565b60405180910390fd5b565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415610c64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5b906132c4565b60405180910390fd5b8151835114610ca8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9f90613356565b60405180910390fd5b6000610cb2610e21565b9050610cc381600087878787611ce1565b60005b8451811015610d7c57838181518110610ce257610ce16130ad565b5b6020026020010151600080878481518110610d0057610cff6130ad565b5b6020026020010151815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610d629190613376565b925050819055508080610d749061310b565b915050610cc6565b508473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051610df49291906133cc565b60405180910390a4610e0b81600087878787611cf7565b610e1a81600087878787611cff565b5050505050565b600033905090565b8151835114610e6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6490613356565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415610edd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed490613475565b60405180910390fd5b6000610ee7610e21565b9050610ef7818787878787611ce1565b60005b84518110156110a8576000858281518110610f1857610f176130ad565b5b602002602001015190506000858381518110610f3757610f366130ad565b5b60200260200101519050600080600084815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015610fd8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fcf90613507565b60405180910390fd5b81810360008085815260200190815260200160002060008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508160008085815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461108d9190613376565b92505081905550505050806110a19061310b565b9050610efa565b508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb878760405161111f9291906133cc565b60405180910390a4611135818787878787611cf7565b611143818787878787611cff565b505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156111bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b290613599565b60405180910390fd5b80518251146111ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f690613356565b60405180910390fd5b6000611209610e21565b905061122981856000868660405180602001604052806000815250611ce1565b60005b835181101561137657600084828151811061124a576112496130ad565b5b602002602001015190506000848381518110611269576112686130ad565b5b60200260200101519050600080600084815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561130a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113019061362b565b60405180910390fd5b81810360008085815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050808061136e9061310b565b91505061122c565b50600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb86866040516113ee9291906133cc565b60405180910390a461141481856000868660405180602001604052806000815250611cf7565b50505050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611550576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611547906132c4565b60405180910390fd5b600061155a610e21565b9050600061156785611ee6565b9050600061157485611ee6565b905061158583600089858589611ce1565b8460008088815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546115e49190613376565b925050819055508673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62898960405161166292919061364b565b60405180910390a461167983600089858589611cf7565b61168883600089898989611f60565b50505050505050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611700576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f7906136e6565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516117f191906124f6565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141561186e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186590613475565b60405180910390fd5b6000611878610e21565b9050600061188585611ee6565b9050600061189285611ee6565b90506118a2838989858589611ce1565b600080600088815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905085811015611939576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193090613507565b60405180910390fd5b85810360008089815260200190815260200160002060008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508560008089815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546119ee9190613376565b925050819055508773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628a8a604051611a6b92919061364b565b60405180910390a4611a81848a8a86868a611cf7565b611a8f848a8a8a8a8a611f60565b505050505050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611b0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b0190613599565b60405180910390fd5b6000611b14610e21565b90506000611b2184611ee6565b90506000611b2e84611ee6565b9050611b4e83876000858560405180602001604052806000815250611ce1565b600080600087815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905084811015611be5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bdc9061362b565b60405180910390fd5b84810360008088815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628989604051611cb292919061364b565b60405180910390a4611cd884886000868660405180602001604052806000815250611cf7565b50505050505050565b611cef868686868686612147565b505050505050565b505050505050565b611d1e8473ffffffffffffffffffffffffffffffffffffffff16612319565b15611ede578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b8152600401611d6495949392919061375b565b602060405180830381600087803b158015611d7e57600080fd5b505af1925050508015611daf57506040513d601f19601f82011682018060405250810190611dac91906137d8565b60015b611e5557611dbb613812565b806308c379a01415611e185750611dd0613834565b80611ddb5750611e1a565b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0f91906125d7565b60405180910390fd5b505b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4c9061393c565b60405180910390fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611edc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ed3906139ce565b60405180910390fd5b505b505050505050565b60606000600167ffffffffffffffff811115611f0557611f046125fe565b5b604051908082528060200260200182016040528015611f335781602001602082028036833780820191505090505b5090508281600081518110611f4b57611f4a6130ad565b5b60200260200101818152505080915050919050565b611f7f8473ffffffffffffffffffffffffffffffffffffffff16612319565b1561213f578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401611fc59594939291906139ee565b602060405180830381600087803b158015611fdf57600080fd5b505af192505050801561201057506040513d601f19601f8201168201806040525081019061200d91906137d8565b60015b6120b65761201c613812565b806308c379a014156120795750612031613834565b8061203c575061207b565b806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161207091906125d7565b60405180910390fd5b505b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ad9061393c565b60405180910390fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161461213d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612134906139ce565b60405180910390fd5b505b505050505050565b61215586868686868661233c565b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614156122075760005b8351811015612205578281815181106121a9576121a86130ad565b5b6020026020010151600460008684815181106121c8576121c76130ad565b5b6020026020010151815260200190815260200160002060008282546121ed9190613376565b92505081905550806121fe9061310b565b905061218d565b505b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156123115760005b835181101561230f57600084828151811061225d5761225c6130ad565b5b60200260200101519050600084838151811061227c5761227b6130ad565b5b60200260200101519050600060046000848152602001908152602001600020549050818110156122e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122d890613aba565b60405180910390fd5b8181036004600085815260200190815260200160002081905550505050806123089061310b565b905061223f565b505b505050505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b505050505050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061238382612358565b9050919050565b61239381612378565b811461239e57600080fd5b50565b6000813590506123b08161238a565b92915050565b6000819050919050565b6123c9816123b6565b81146123d457600080fd5b50565b6000813590506123e6816123c0565b92915050565b600080604083850312156124035761240261234e565b5b6000612411858286016123a1565b9250506020612422858286016123d7565b9150509250929050565b612435816123b6565b82525050565b6000602082019050612450600083018461242c565b92915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61248b81612456565b811461249657600080fd5b50565b6000813590506124a881612482565b92915050565b6000602082840312156124c4576124c361234e565b5b60006124d284828501612499565b91505092915050565b60008115159050919050565b6124f0816124db565b82525050565b600060208201905061250b60008301846124e7565b92915050565b6000602082840312156125275761252661234e565b5b6000612535848285016123d7565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561257857808201518184015260208101905061255d565b83811115612587576000848401525b50505050565b6000601f19601f8301169050919050565b60006125a98261253e565b6125b38185612549565b93506125c381856020860161255a565b6125cc8161258d565b840191505092915050565b600060208201905081810360008301526125f1818461259e565b905092915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6126368261258d565b810181811067ffffffffffffffff82111715612655576126546125fe565b5b80604052505050565b6000612668612344565b9050612674828261262d565b919050565b600067ffffffffffffffff821115612694576126936125fe565b5b602082029050602081019050919050565b600080fd5b60006126bd6126b884612679565b61265e565b905080838252602082019050602084028301858111156126e0576126df6126a5565b5b835b8181101561270957806126f588826123d7565b8452602084019350506020810190506126e2565b5050509392505050565b600082601f830112612728576127276125f9565b5b81356127388482602086016126aa565b91505092915050565b600080fd5b600067ffffffffffffffff821115612761576127606125fe565b5b61276a8261258d565b9050602081019050919050565b82818337600083830152505050565b600061279961279484612746565b61265e565b9050828152602081018484840111156127b5576127b4612741565b5b6127c0848285612777565b509392505050565b600082601f8301126127dd576127dc6125f9565b5b81356127ed848260208601612786565b91505092915050565b600080600080608085870312156128105761280f61234e565b5b600061281e878288016123a1565b945050602085013567ffffffffffffffff81111561283f5761283e612353565b5b61284b87828801612713565b935050604085013567ffffffffffffffff81111561286c5761286b612353565b5b61287887828801612713565b925050606085013567ffffffffffffffff81111561289957612898612353565b5b6128a5878288016127c8565b91505092959194509250565b600080600080600060a086880312156128cd576128cc61234e565b5b60006128db888289016123a1565b95505060206128ec888289016123a1565b945050604086013567ffffffffffffffff81111561290d5761290c612353565b5b61291988828901612713565b935050606086013567ffffffffffffffff81111561293a57612939612353565b5b61294688828901612713565b925050608086013567ffffffffffffffff81111561296757612966612353565b5b612973888289016127c8565b9150509295509295909350565b600067ffffffffffffffff82111561299b5761299a6125fe565b5b602082029050602081019050919050565b60006129bf6129ba84612980565b61265e565b905080838252602082019050602084028301858111156129e2576129e16126a5565b5b835b81811015612a0b57806129f788826123a1565b8452602084019350506020810190506129e4565b5050509392505050565b600082601f830112612a2a57612a296125f9565b5b8135612a3a8482602086016129ac565b91505092915050565b60008060408385031215612a5a57612a5961234e565b5b600083013567ffffffffffffffff811115612a7857612a77612353565b5b612a8485828601612a15565b925050602083013567ffffffffffffffff811115612aa557612aa4612353565b5b612ab185828601612713565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612af0816123b6565b82525050565b6000612b028383612ae7565b60208301905092915050565b6000602082019050919050565b6000612b2682612abb565b612b308185612ac6565b9350612b3b83612ad7565b8060005b83811015612b6c578151612b538882612af6565b9750612b5e83612b0e565b925050600181019050612b3f565b5085935050505092915050565b60006020820190508181036000830152612b938184612b1b565b905092915050565b600080600060608486031215612bb457612bb361234e565b5b6000612bc2868287016123a1565b935050602084013567ffffffffffffffff811115612be357612be2612353565b5b612bef86828701612713565b925050604084013567ffffffffffffffff811115612c1057612c0f612353565b5b612c1c86828701612713565b9150509250925092565b60008060008060808587031215612c4057612c3f61234e565b5b6000612c4e878288016123a1565b9450506020612c5f878288016123d7565b9350506040612c70878288016123d7565b925050606085013567ffffffffffffffff811115612c9157612c90612353565b5b612c9d878288016127c8565b91505092959194509250565b612cb281612378565b82525050565b6000602082019050612ccd6000830184612ca9565b92915050565b612cdc816124db565b8114612ce757600080fd5b50565b600081359050612cf981612cd3565b92915050565b60008060408385031215612d1657612d1561234e565b5b6000612d24858286016123a1565b9250506020612d3585828601612cea565b9150509250929050565b60008060408385031215612d5657612d5561234e565b5b6000612d64858286016123a1565b9250506020612d75858286016123a1565b9150509250929050565b600080600080600060a08688031215612d9b57612d9a61234e565b5b6000612da9888289016123a1565b9550506020612dba888289016123a1565b9450506040612dcb888289016123d7565b9350506060612ddc888289016123d7565b925050608086013567ffffffffffffffff811115612dfd57612dfc612353565b5b612e09888289016127c8565b9150509295509295909350565b600060208284031215612e2c57612e2b61234e565b5b6000612e3a848285016123a1565b91505092915050565b600080600060608486031215612e5c57612e5b61234e565b5b6000612e6a868287016123a1565b9350506020612e7b868287016123d7565b9250506040612e8c868287016123d7565b9150509250925092565b7f455243313135353a2061646472657373207a65726f206973206e6f742061207660008201527f616c6964206f776e657200000000000000000000000000000000000000000000602082015250565b6000612ef2602a83612549565b9150612efd82612e96565b604082019050919050565b60006020820190508181036000830152612f2181612ee5565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612f6f57607f821691505b60208210811415612f8357612f82612f28565b5b50919050565b7f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60008201527f6572206f7220617070726f766564000000000000000000000000000000000000602082015250565b6000612fe5602e83612549565b9150612ff082612f89565b604082019050919050565b6000602082019050818103600083015261301481612fd8565b9050919050565b7f455243313135353a206163636f756e747320616e6420696473206c656e67746860008201527f206d69736d617463680000000000000000000000000000000000000000000000602082015250565b6000613077602983612549565b91506130828261301b565b604082019050919050565b600060208201905081810360008301526130a68161306a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613116826123b6565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613149576131486130dc565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006131b0602683612549565b91506131bb82613154565b604082019050919050565b600060208201905081810360008301526131df816131a3565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061321c602083612549565b9150613227826131e6565b602082019050919050565b6000602082019050818103600083015261324b8161320f565b9050919050565b7f455243313135353a206d696e7420746f20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b60006132ae602183612549565b91506132b982613252565b604082019050919050565b600060208201905081810360008301526132dd816132a1565b9050919050565b7f455243313135353a2069647320616e6420616d6f756e7473206c656e6774682060008201527f6d69736d61746368000000000000000000000000000000000000000000000000602082015250565b6000613340602883612549565b915061334b826132e4565b604082019050919050565b6000602082019050818103600083015261336f81613333565b9050919050565b6000613381826123b6565b915061338c836123b6565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156133c1576133c06130dc565b5b828201905092915050565b600060408201905081810360008301526133e68185612b1b565b905081810360208301526133fa8184612b1b565b90509392505050565b7f455243313135353a207472616e7366657220746f20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061345f602583612549565b915061346a82613403565b604082019050919050565b6000602082019050818103600083015261348e81613452565b9050919050565b7f455243313135353a20696e73756666696369656e742062616c616e636520666f60008201527f72207472616e7366657200000000000000000000000000000000000000000000602082015250565b60006134f1602a83612549565b91506134fc82613495565b604082019050919050565b60006020820190508181036000830152613520816134e4565b9050919050565b7f455243313135353a206275726e2066726f6d20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613583602383612549565b915061358e82613527565b604082019050919050565b600060208201905081810360008301526135b281613576565b9050919050565b7f455243313135353a206275726e20616d6f756e7420657863656564732062616c60008201527f616e636500000000000000000000000000000000000000000000000000000000602082015250565b6000613615602483612549565b9150613620826135b9565b604082019050919050565b6000602082019050818103600083015261364481613608565b9050919050565b6000604082019050613660600083018561242c565b61366d602083018461242c565b9392505050565b7f455243313135353a2073657474696e6720617070726f76616c2073746174757360008201527f20666f722073656c660000000000000000000000000000000000000000000000602082015250565b60006136d0602983612549565b91506136db82613674565b604082019050919050565b600060208201905081810360008301526136ff816136c3565b9050919050565b600081519050919050565b600082825260208201905092915050565b600061372d82613706565b6137378185613711565b935061374781856020860161255a565b6137508161258d565b840191505092915050565b600060a0820190506137706000830188612ca9565b61377d6020830187612ca9565b818103604083015261378f8186612b1b565b905081810360608301526137a38185612b1b565b905081810360808301526137b78184613722565b90509695505050505050565b6000815190506137d281612482565b92915050565b6000602082840312156137ee576137ed61234e565b5b60006137fc848285016137c3565b91505092915050565b60008160e01c9050919050565b600060033d11156138315760046000803e61382e600051613805565b90505b90565b600060443d1015613844576138c7565b61384c612344565b60043d036004823e80513d602482011167ffffffffffffffff821117156138745750506138c7565b808201805167ffffffffffffffff81111561389257505050506138c7565b80602083010160043d0385018111156138af5750505050506138c7565b6138be8260200185018661262d565b82955050505050505b90565b7f455243313135353a207472616e7366657220746f206e6f6e2d4552433131353560008201527f526563656976657220696d706c656d656e746572000000000000000000000000602082015250565b6000613926603483612549565b9150613931826138ca565b604082019050919050565b6000602082019050818103600083015261395581613919565b9050919050565b7f455243313135353a204552433131353552656365697665722072656a6563746560008201527f6420746f6b656e73000000000000000000000000000000000000000000000000602082015250565b60006139b8602883612549565b91506139c38261395c565b604082019050919050565b600060208201905081810360008301526139e7816139ab565b9050919050565b600060a082019050613a036000830188612ca9565b613a106020830187612ca9565b613a1d604083018661242c565b613a2a606083018561242c565b8181036080830152613a3c8184613722565b90509695505050505050565b7f455243313135353a206275726e20616d6f756e74206578636565647320746f7460008201527f616c537570706c79000000000000000000000000000000000000000000000000602082015250565b6000613aa4602883612549565b9150613aaf82613a48565b604082019050919050565b60006020820190508181036000830152613ad381613a97565b905091905056fea264697066735822122082d7e5701f1c062867a12414d7db24512a8129f3e94997f90e81f7e588062d7b64736f6c63430008090033