608060405234801562000010575f80fd5b5060405162003ee338038062003ee38339818101604052810190620000369190620002e6565b8062000048816200008260201b60201c565b50620000696200005d6200009760201b60201c565b6200009e60201b60201c565b80600790816200007a91906200056c565b505062000650565b80600290816200009391906200056c565b5050565b5f33905090565b5f60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b620001c2826200017a565b810181811067ffffffffffffffff82111715620001e457620001e36200018a565b5b80604052505050565b5f620001f862000161565b9050620002068282620001b7565b919050565b5f67ffffffffffffffff8211156200022857620002276200018a565b5b62000233826200017a565b9050602081019050919050565b5f5b838110156200025f57808201518184015260208101905062000242565b5f8484015250505050565b5f620002806200027a846200020b565b620001ed565b9050828152602081018484840111156200029f576200029e62000176565b5b620002ac84828562000240565b509392505050565b5f82601f830112620002cb57620002ca62000172565b5b8151620002dd8482602086016200026a565b91505092915050565b5f60208284031215620002fe57620002fd6200016a565b5b5f82015167ffffffffffffffff8111156200031e576200031d6200016e565b5b6200032c84828501620002b4565b91505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200038457607f821691505b6020821081036200039a57620003996200033f565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620003fe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620003c1565b6200040a8683620003c1565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620004546200044e620004488462000422565b6200042b565b62000422565b9050919050565b5f819050919050565b6200046f8362000434565b620004876200047e826200045b565b848454620003cd565b825550505050565b5f90565b6200049d6200048f565b620004aa81848462000464565b505050565b5b81811015620004d157620004c55f8262000493565b600181019050620004b0565b5050565b601f8211156200052057620004ea81620003a0565b620004f584620003b2565b8101602085101562000505578190505b6200051d6200051485620003b2565b830182620004af565b50505b505050565b5f82821c905092915050565b5f620005425f198460080262000525565b1980831691505092915050565b5f6200055c838362000531565b9150826002028217905092915050565b620005778262000335565b67ffffffffffffffff8111156200059357620005926200018a565b5b6200059f82546200036c565b620005ac828285620004d5565b5f60209050601f831160018114620005e2575f8415620005cd578287015190505b620005d985826200054f565b86555062000648565b601f198416620005f286620003a0565b5f5b828110156200061b57848901518255600182019150602085019450602081019050620005f4565b868310156200063b578489015162000637601f89168262000531565b8355505b6001600288020188555050505b505050505050565b613885806200065e5f395ff3fe608060405234801561000f575f80fd5b5060043610610155575f3560e01c80636c0360eb116100c1578063ca693a0a1161007a578063ca693a0a146103ad578063cbd49462146103dd578063e985e9c5146103fb578063ef80202d1461042b578063f242432a1461045b578063f2fde38b1461047757610155565b80636c0360eb14610311578063715018a61461032f5780638da5cb5b1461033957806395d89b4114610357578063a22cb46514610375578063c0a398c11461039157610155565b806311fecb4e1161011357806311fecb4e1461023f578063156e29f61461025b57806318160ddd146102775780632eb2c2d614610295578063332acd95146102b15780634e1273f4146102e157610155565b8062fdd58e1461015957806301ffc9a71461018957806302fe5305146101b957806306fdde03146101d557806309a7ea7b146101f35780630e89341c1461020f575b5f80fd5b610173600480360381019061016e9190611fd6565b610493565b6040516101809190612023565b60405180910390f35b6101a3600480360381019061019e9190612091565b6105a5565b6040516101b091906120d6565b60405180910390f35b6101d360048036038101906101ce919061222b565b610686565b005b6101dd610699565b6040516101ea91906122ec565b60405180910390f35b61020d6004803603810190610208919061230c565b610725565b005b610229600480360381019061022491906123e9565b6107e4565b60405161023691906122ec565b60405180910390f35b6102596004803603810190610254919061250e565b610818565b005b61027560048036038101906102709190612568565b61094c565b005b61027f6109e6565b60405161028c9190612023565b60405180910390f35b6102af60048036038101906102aa9190612716565b6109ec565b005b6102cb60048036038101906102c691906123e9565b610a8d565b6040516102d89190612023565b60405180910390f35b6102fb60048036038101906102f691906127e1565b610aa2565b604051610308919061290e565b60405180910390f35b610319610bb9565b60405161032691906122ec565b60405180910390f35b610337610c45565b005b610341610c58565b60405161034e919061293d565b60405180910390f35b61035f610c80565b60405161036c91906122ec565b60405180910390f35b61038f600480360381019061038a9190612980565b610d0c565b005b6103ab60048036038101906103a691906123e9565b610d22565b005b6103c760048036038101906103c291906123e9565b610e10565b6040516103d49190612023565b60405180910390f35b6103e5610e25565b6040516103f2919061293d565b60405180910390f35b610415600480360381019061041091906129be565b610e4a565b60405161042291906120d6565b60405180910390f35b610445600480360381019061044091906123e9565b610ed8565b60405161045291906120d6565b60405180910390f35b610475600480360381019061047091906129fc565b610ef5565b005b610491600480360381019061048c9190612a8f565b610f96565b005b5f60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361050157600a5f8381526020019081526020015f2054905061059f565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361056e57600b5f8381526020019081526020015f2054905061059f565b600c5f8381526020019081526020015f205f9054906101000a900460ff16610596575f610599565b60015b60ff1690505b92915050565b5f7fd9b67a26000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061066f57507f0e89341c000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061067f575061067e82611018565b5b9050919050565b80600790816106959190612cb4565b5050565b600480546106a690612ae7565b80601f01602080910402602001604051908101604052809291908181526020018280546106d290612ae7565b801561071d5780601f106106f45761010080835404028352916020019161071d565b820191905f5260205f20905b81548152906001019060200180831161070057829003601f168201915b505050505081565b85600490816107349190612cb4565b5084600590816107449190612cb4565b5083600681905550826007908161075b9190612cb4565b508160085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050505050565b606060076107f183611081565b604051602001610802929190612e3d565b6040516020818303038152906040529050919050565b6001600c5f8360ff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505f5b825181101561091c5782818151811061086257610861612e60565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1660085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62856001604051610901929190612ef6565b60405180910390a4808061091490612f4a565b915050610846565b508151600a5f8360ff1681526020019081526020015f205f8282546109419190612f91565b925050819055505050565b6001600b5f8481526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6285856040516109d9929190612fc4565b60405180910390a4505050565b60065481565b6109f461114b565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480610a3a5750610a3985610a3461114b565b610e4a565b5b610a79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a709061305b565b60405180910390fd5b610a868585858585611152565b5050505050565b600a602052805f5260405f205f915090505481565b60608151835114610ae8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610adf906130e9565b60405180910390fd5b5f835167ffffffffffffffff811115610b0457610b03612107565b5b604051908082528060200260200182016040528015610b325781602001602082028036833780820191505090505b5090505f5b8451811015610bae57610b7e858281518110610b5657610b55612e60565b5b6020026020010151858381518110610b7157610b70612e60565b5b6020026020010151610493565b828281518110610b9157610b90612e60565b5b60200260200101818152505080610ba790612f4a565b9050610b37565b508091505092915050565b60078054610bc690612ae7565b80601f0160208091040260200160405190810160405280929190818152602001828054610bf290612ae7565b8015610c3d5780601f10610c1457610100808354040283529160200191610c3d565b820191905f5260205f20905b815481529060010190602001808311610c2057829003601f168201915b505050505081565b610c4d611460565b610c565f6114de565b565b5f60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60058054610c8d90612ae7565b80601f0160208091040260200160405190810160405280929190818152602001828054610cb990612ae7565b8015610d045780601f10610cdb57610100808354040283529160200191610d04565b820191905f5260205f20905b815481529060010190602001808311610ce757829003601f168201915b505050505081565b610d1e610d1761114b565b83836115a1565b5050565b5f600190505b818111610e0c57610258600a5f8381526020019081526020015f205f828254610d519190613107565b9250508190555060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6284610258604051610df1929190613173565b60405180910390a48080610e0490612f4a565b915050610d28565b5050565b600b602052805f5260405f205f915090505481565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16905092915050565b600c602052805f5260405f205f915054906101000a900460ff1681565b610efd61114b565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480610f435750610f4285610f3d61114b565b610e4a565b5b610f82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f799061305b565b60405180910390fd5b610f8f8585858585611708565b5050505050565b610f9e611460565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361100c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110039061320a565b60405180910390fd5b611015816114de565b50565b5f7f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60605f600161108f84611991565b0190505f8167ffffffffffffffff8111156110ad576110ac612107565b5b6040519080825280601f01601f1916602001820160405280156110df5781602001600182028036833780820191505090505b5090505f82602001820190505b600115611140578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a858161113557611134613228565b5b0494505f85036110ec575b819350505050919050565b5f33905090565b8151835114611196576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118d906132c5565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611204576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111fb90613353565b60405180910390fd5b5f61120d61114b565b905061121d818787878787611ae2565b5f5b84518110156113bd575f85828151811061123c5761123b612e60565b5b602002602001015190505f85838151811061125a57611259612e60565b5b602002602001015190505f805f8481526020019081526020015f205f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050818110156112f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ed906133e1565b60405180910390fd5b8181035f808581526020019081526020015f205f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808581526020019081526020015f205f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546113a29190613107565b92505081905550505050806113b690612f4a565b905061121f565b508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb87876040516114349291906133ff565b60405180910390a461144a818787878787611aea565b611458818787878787611af2565b505050505050565b61146861114b565b73ffffffffffffffffffffffffffffffffffffffff16611486610c58565b73ffffffffffffffffffffffffffffffffffffffff16146114dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d39061347e565b60405180910390fd5b565b5f60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361160f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116069061350c565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516116fb91906120d6565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611776576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176d90613353565b60405180910390fd5b5f61177f61114b565b90505f61178b85611cc8565b90505f61179785611cc8565b90506117a7838989858589611ae2565b5f805f8881526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905085811015611839576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611830906133e1565b60405180910390fd5b8581035f808981526020019081526020015f205f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550855f808981526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546118e59190613107565b925050819055508773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628a8a604051611962929190612fc4565b60405180910390a4611978848a8a86868a611aea565b611986848a8a8a8a8a611d40565b505050505050505050565b5f805f90507a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083106119ed577a184f03e93ff9f4daa797ed6e38ed64bf6a1f01000000000000000083816119e3576119e2613228565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310611a2a576d04ee2d6d415b85acef81000000008381611a2057611a1f613228565b5b0492506020810190505b662386f26fc100008310611a5957662386f26fc100008381611a4f57611a4e613228565b5b0492506010810190505b6305f5e1008310611a82576305f5e1008381611a7857611a77613228565b5b0492506008810190505b6127108310611aa7576127108381611a9d57611a9c613228565b5b0492506004810190505b60648310611aca5760648381611ac057611abf613228565b5b0492506002810190505b600a8310611ad9576001810190505b80915050919050565b505050505050565b505050505050565b611b118473ffffffffffffffffffffffffffffffffffffffff16611f16565b15611cc0578373ffffffffffffffffffffffffffffffffffffffff1663bc197c8187878686866040518663ffffffff1660e01b8152600401611b5795949392919061357c565b6020604051808303815f875af1925050508015611b9257506040513d601f19601f82011682018060405250810190611b8f91906135f6565b60015b611c3757611b9e61362d565b806308c379a003611bfa5750611bb261364c565b80611bbd5750611bfc565b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bf191906122ec565b60405180910390fd5b505b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2e9061374b565b60405180910390fd5b63bc197c8160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611cbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb5906137d9565b60405180910390fd5b505b505050505050565b60605f600167ffffffffffffffff811115611ce657611ce5612107565b5b604051908082528060200260200182016040528015611d145781602001602082028036833780820191505090505b50905082815f81518110611d2b57611d2a612e60565b5b60200260200101818152505080915050919050565b611d5f8473ffffffffffffffffffffffffffffffffffffffff16611f16565b15611f0e578373ffffffffffffffffffffffffffffffffffffffff1663f23a6e6187878686866040518663ffffffff1660e01b8152600401611da59594939291906137f7565b6020604051808303815f875af1925050508015611de057506040513d601f19601f82011682018060405250810190611ddd91906135f6565b60015b611e8557611dec61362d565b806308c379a003611e485750611e0061364c565b80611e0b5750611e4a565b806040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3f91906122ec565b60405180910390fd5b505b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7c9061374b565b60405180910390fd5b63f23a6e6160e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614611f0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f03906137d9565b60405180910390fd5b505b505050505050565b5f808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611f7282611f49565b9050919050565b611f8281611f68565b8114611f8c575f80fd5b50565b5f81359050611f9d81611f79565b92915050565b5f819050919050565b611fb581611fa3565b8114611fbf575f80fd5b50565b5f81359050611fd081611fac565b92915050565b5f8060408385031215611fec57611feb611f41565b5b5f611ff985828601611f8f565b925050602061200a85828601611fc2565b9150509250929050565b61201d81611fa3565b82525050565b5f6020820190506120365f830184612014565b92915050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6120708161203c565b811461207a575f80fd5b50565b5f8135905061208b81612067565b92915050565b5f602082840312156120a6576120a5611f41565b5b5f6120b38482850161207d565b91505092915050565b5f8115159050919050565b6120d0816120bc565b82525050565b5f6020820190506120e95f8301846120c7565b92915050565b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61213d826120f7565b810181811067ffffffffffffffff8211171561215c5761215b612107565b5b80604052505050565b5f61216e611f38565b905061217a8282612134565b919050565b5f67ffffffffffffffff82111561219957612198612107565b5b6121a2826120f7565b9050602081019050919050565b828183375f83830152505050565b5f6121cf6121ca8461217f565b612165565b9050828152602081018484840111156121eb576121ea6120f3565b5b6121f68482856121af565b509392505050565b5f82601f830112612212576122116120ef565b5b81356122228482602086016121bd565b91505092915050565b5f602082840312156122405761223f611f41565b5b5f82013567ffffffffffffffff81111561225d5761225c611f45565b5b612269848285016121fe565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156122a957808201518184015260208101905061228e565b5f8484015250505050565b5f6122be82612272565b6122c8818561227c565b93506122d881856020860161228c565b6122e1816120f7565b840191505092915050565b5f6020820190508181035f83015261230481846122b4565b905092915050565b5f805f805f8060c0878903121561232657612325611f41565b5b5f87013567ffffffffffffffff81111561234357612342611f45565b5b61234f89828a016121fe565b965050602087013567ffffffffffffffff8111156123705761236f611f45565b5b61237c89828a016121fe565b955050604061238d89828a01611fc2565b945050606087013567ffffffffffffffff8111156123ae576123ad611f45565b5b6123ba89828a016121fe565b93505060806123cb89828a01611f8f565b92505060a06123dc89828a01611f8f565b9150509295509295509295565b5f602082840312156123fe576123fd611f41565b5b5f61240b84828501611fc2565b91505092915050565b5f67ffffffffffffffff82111561242e5761242d612107565b5b602082029050602081019050919050565b5f80fd5b5f61245561245084612414565b612165565b905080838252602082019050602084028301858111156124785761247761243f565b5b835b818110156124a1578061248d8882611f8f565b84526020840193505060208101905061247a565b5050509392505050565b5f82601f8301126124bf576124be6120ef565b5b81356124cf848260208601612443565b91505092915050565b5f60ff82169050919050565b6124ed816124d8565b81146124f7575f80fd5b50565b5f81359050612508816124e4565b92915050565b5f806040838503121561252457612523611f41565b5b5f83013567ffffffffffffffff81111561254157612540611f45565b5b61254d858286016124ab565b925050602061255e858286016124fa565b9150509250929050565b5f805f6060848603121561257f5761257e611f41565b5b5f61258c86828701611f8f565b935050602061259d86828701611fc2565b92505060406125ae86828701611fc2565b9150509250925092565b5f67ffffffffffffffff8211156125d2576125d1612107565b5b602082029050602081019050919050565b5f6125f56125f0846125b8565b612165565b905080838252602082019050602084028301858111156126185761261761243f565b5b835b81811015612641578061262d8882611fc2565b84526020840193505060208101905061261a565b5050509392505050565b5f82601f83011261265f5761265e6120ef565b5b813561266f8482602086016125e3565b91505092915050565b5f67ffffffffffffffff82111561269257612691612107565b5b61269b826120f7565b9050602081019050919050565b5f6126ba6126b584612678565b612165565b9050828152602081018484840111156126d6576126d56120f3565b5b6126e18482856121af565b509392505050565b5f82601f8301126126fd576126fc6120ef565b5b813561270d8482602086016126a8565b91505092915050565b5f805f805f60a0868803121561272f5761272e611f41565b5b5f61273c88828901611f8f565b955050602061274d88828901611f8f565b945050604086013567ffffffffffffffff81111561276e5761276d611f45565b5b61277a8882890161264b565b935050606086013567ffffffffffffffff81111561279b5761279a611f45565b5b6127a78882890161264b565b925050608086013567ffffffffffffffff8111156127c8576127c7611f45565b5b6127d4888289016126e9565b9150509295509295909350565b5f80604083850312156127f7576127f6611f41565b5b5f83013567ffffffffffffffff81111561281457612813611f45565b5b612820858286016124ab565b925050602083013567ffffffffffffffff81111561284157612840611f45565b5b61284d8582860161264b565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61288981611fa3565b82525050565b5f61289a8383612880565b60208301905092915050565b5f602082019050919050565b5f6128bc82612857565b6128c68185612861565b93506128d183612871565b805f5b838110156129015781516128e8888261288f565b97506128f3836128a6565b9250506001810190506128d4565b5085935050505092915050565b5f6020820190508181035f83015261292681846128b2565b905092915050565b61293781611f68565b82525050565b5f6020820190506129505f83018461292e565b92915050565b61295f816120bc565b8114612969575f80fd5b50565b5f8135905061297a81612956565b92915050565b5f806040838503121561299657612995611f41565b5b5f6129a385828601611f8f565b92505060206129b48582860161296c565b9150509250929050565b5f80604083850312156129d4576129d3611f41565b5b5f6129e185828601611f8f565b92505060206129f285828601611f8f565b9150509250929050565b5f805f805f60a08688031215612a1557612a14611f41565b5b5f612a2288828901611f8f565b9550506020612a3388828901611f8f565b9450506040612a4488828901611fc2565b9350506060612a5588828901611fc2565b925050608086013567ffffffffffffffff811115612a7657612a75611f45565b5b612a82888289016126e9565b9150509295509295909350565b5f60208284031215612aa457612aa3611f41565b5b5f612ab184828501611f8f565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612afe57607f821691505b602082108103612b1157612b10612aba565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302612b737fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612b38565b612b7d8683612b38565b95508019841693508086168417925050509392505050565b5f819050919050565b5f612bb8612bb3612bae84611fa3565b612b95565b611fa3565b9050919050565b5f819050919050565b612bd183612b9e565b612be5612bdd82612bbf565b848454612b44565b825550505050565b5f90565b612bf9612bed565b612c04818484612bc8565b505050565b5b81811015612c2757612c1c5f82612bf1565b600181019050612c0a565b5050565b601f821115612c6c57612c3d81612b17565b612c4684612b29565b81016020851015612c55578190505b612c69612c6185612b29565b830182612c09565b50505b505050565b5f82821c905092915050565b5f612c8c5f1984600802612c71565b1980831691505092915050565b5f612ca48383612c7d565b9150826002028217905092915050565b612cbd82612272565b67ffffffffffffffff811115612cd657612cd5612107565b5b612ce08254612ae7565b612ceb828285612c2b565b5f60209050601f831160018114612d1c575f8415612d0a578287015190505b612d148582612c99565b865550612d7b565b601f198416612d2a86612b17565b5f5b82811015612d5157848901518255600182019150602085019450602081019050612d2c565b86831015612d6e5784890151612d6a601f891682612c7d565b8355505b6001600288020188555050505b505050505050565b5f81905092915050565b5f8154612d9981612ae7565b612da38186612d83565b9450600182165f8114612dbd5760018114612dd257612e04565b60ff1983168652811515820286019350612e04565b612ddb85612b17565b5f5b83811015612dfc57815481890152600182019150602081019050612ddd565b838801955050505b50505092915050565b5f612e1782612272565b612e218185612d83565b9350612e3181856020860161228c565b80840191505092915050565b5f612e488285612d8d565b9150612e548284612e0d565b91508190509392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f612ea7612ea2612e9d846124d8565b612b95565b611fa3565b9050919050565b612eb781612e8d565b82525050565b5f819050919050565b5f612ee0612edb612ed684612ebd565b612b95565b611fa3565b9050919050565b612ef081612ec6565b82525050565b5f604082019050612f095f830185612eae565b612f166020830184612ee7565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612f5482611fa3565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612f8657612f85612f1d565b5b600182019050919050565b5f612f9b82611fa3565b9150612fa683611fa3565b9250828203905081811115612fbe57612fbd612f1d565b5b92915050565b5f604082019050612fd75f830185612014565b612fe46020830184612014565b9392505050565b7f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e5f8201527f6572206f7220617070726f766564000000000000000000000000000000000000602082015250565b5f613045602e8361227c565b915061305082612feb565b604082019050919050565b5f6020820190508181035f83015261307281613039565b9050919050565b7f455243313135353a206163636f756e747320616e6420696473206c656e6774685f8201527f206d69736d617463680000000000000000000000000000000000000000000000602082015250565b5f6130d360298361227c565b91506130de82613079565b604082019050919050565b5f6020820190508181035f830152613100816130c7565b9050919050565b5f61311182611fa3565b915061311c83611fa3565b925082820190508082111561313457613133612f1d565b5b92915050565b5f819050919050565b5f61315d6131586131538461313a565b612b95565b611fa3565b9050919050565b61316d81613143565b82525050565b5f6040820190506131865f830185612014565b6131936020830184613164565b9392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6131f460268361227c565b91506131ff8261319a565b604082019050919050565b5f6020820190508181035f830152613221816131e8565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b7f455243313135353a2069647320616e6420616d6f756e7473206c656e677468205f8201527f6d69736d61746368000000000000000000000000000000000000000000000000602082015250565b5f6132af60288361227c565b91506132ba82613255565b604082019050919050565b5f6020820190508181035f8301526132dc816132a3565b9050919050565b7f455243313135353a207472616e7366657220746f20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61333d60258361227c565b9150613348826132e3565b604082019050919050565b5f6020820190508181035f83015261336a81613331565b9050919050565b7f455243313135353a20696e73756666696369656e742062616c616e636520666f5f8201527f72207472616e7366657200000000000000000000000000000000000000000000602082015250565b5f6133cb602a8361227c565b91506133d682613371565b604082019050919050565b5f6020820190508181035f8301526133f8816133bf565b9050919050565b5f6040820190508181035f83015261341781856128b2565b9050818103602083015261342b81846128b2565b90509392505050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61346860208361227c565b915061347382613434565b602082019050919050565b5f6020820190508181035f8301526134958161345c565b9050919050565b7f455243313135353a2073657474696e6720617070726f76616c207374617475735f8201527f20666f722073656c660000000000000000000000000000000000000000000000602082015250565b5f6134f660298361227c565b91506135018261349c565b604082019050919050565b5f6020820190508181035f830152613523816134ea565b9050919050565b5f81519050919050565b5f82825260208201905092915050565b5f61354e8261352a565b6135588185613534565b935061356881856020860161228c565b613571816120f7565b840191505092915050565b5f60a08201905061358f5f83018861292e565b61359c602083018761292e565b81810360408301526135ae81866128b2565b905081810360608301526135c281856128b2565b905081810360808301526135d68184613544565b90509695505050505050565b5f815190506135f081612067565b92915050565b5f6020828403121561360b5761360a611f41565b5b5f613618848285016135e2565b91505092915050565b5f8160e01c9050919050565b5f60033d11156136495760045f803e6136465f51613621565b90505b90565b5f60443d106136d85761365d611f38565b60043d036004823e80513d602482011167ffffffffffffffff821117156136855750506136d8565b808201805167ffffffffffffffff8111156136a357505050506136d8565b80602083010160043d0385018111156136c05750505050506136d8565b6136cf82602001850186612134565b82955050505050505b90565b7f455243313135353a207472616e7366657220746f206e6f6e2d455243313135355f8201527f526563656976657220696d706c656d656e746572000000000000000000000000602082015250565b5f61373560348361227c565b9150613740826136db565b604082019050919050565b5f6020820190508181035f83015261376281613729565b9050919050565b7f455243313135353a204552433131353552656365697665722072656a656374655f8201527f6420746f6b656e73000000000000000000000000000000000000000000000000602082015250565b5f6137c360288361227c565b91506137ce82613769565b604082019050919050565b5f6020820190508181035f8301526137f0816137b7565b9050919050565b5f60a08201905061380a5f83018861292e565b613817602083018761292e565b6138246040830186612014565b6138316060830185612014565b81810360808301526138438184613544565b9050969550505050505056fea2646970667358221220c7c51c8a088fe36882a6229171e0abed20cd035069826fc703dba2376ff445a964736f6c6343000814003300000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000036697066733a2f2f516d4e734143336b75396947524c7473324637767468397269344c577a5570766f6e47456d41465a656e456363332f00000000000000000000