60806040526001600f553480156200001657600080fd5b5060405162006440380380620064408339810160408190526200003991620004fb565b8383838381848483733cc6cdda760b79bafa08df41ecfa224f810dceb660018484818160026200006a8382620006a1565b506003620000798282620006a1565b50506001600055506200008b6200029c565b50506daaeb6d7670e522a718067333cd4e3b15620001d25780156200012057604051633e9f1edf60e11b81523060048201526001600160a01b03831660248201526daaeb6d7670e522a718067333cd4e90637d3e3dbe906044015b600060405180830381600087803b1580156200010157600080fd5b505af115801562000116573d6000803e3d6000fd5b50505050620001d2565b6001600160a01b03821615620001715760405163a0af290360e01b81523060048201526001600160a01b03831660248201526daaeb6d7670e522a718067333cd4e9063a0af290390604401620000e6565b604051632210724360e11b81523060048201526daaeb6d7670e522a718067333cd4e90634420e48690602401600060405180830381600087803b158015620001b857600080fd5b505af1158015620001cd573d6000803e3d6000fd5b505050505b5050805160005b818110156200023857600160106000858481518110620001fd57620001fd6200076d565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055600101620001d9565b5081516200024e90601190602085019062000387565b506040517fd7aca75208b9be5ffc04c6a01922020ffd62b55e68e502e317f5344960279af890600090a1505050506200028d81620002c960201b60201c565b50505050505050505062000783565b303b15620002bc5760405162dc149f60e41b815260040160405180910390fd5b620002c73362000335565b565b303b15620002e95760405162dc149f60e41b815260040160405180910390fd5b601280546001600160a01b0319166001600160a01b0383169081179091556040516000907f222c8e95a03c7aa95fc5d110485e0d38e767f07ab1ec878a6eac644ef1d83122908290a350565b600880546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b828054828255906000526020600020908101928215620003df579160200282015b82811115620003df57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190620003a8565b50620003ed929150620003f1565b5090565b5b80821115620003ed5760008155600101620003f2565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171562000449576200044962000408565b604052919050565b600082601f8301126200046357600080fd5b81516001600160401b038111156200047f576200047f62000408565b602062000495601f8301601f191682016200041e565b8281528582848701011115620004aa57600080fd5b60005b83811015620004ca578581018301518282018401528201620004ad565b506000928101909101919091529392505050565b80516001600160a01b0381168114620004f657600080fd5b919050565b600080600080608085870312156200051257600080fd5b84516001600160401b03808211156200052a57600080fd5b620005388883890162000451565b95506020915081870151818111156200055057600080fd5b6200055e89828a0162000451565b9550506200056f60408801620004de565b93506060870151818111156200058457600080fd5b8701601f810189136200059657600080fd5b805182811115620005ab57620005ab62000408565b8060051b9250620005be8484016200041e565b818152928201840192848101908b851115620005d957600080fd5b928501925b848410156200060257620005f284620004de565b82529285019290850190620005de565b989b979a50959850505050505050565b600181811c908216806200062757607f821691505b6020821081036200064857634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200069c57600081815260208120601f850160051c81016020861015620006775750805b601f850160051c820191505b81811015620006985782815560010162000683565b5050505b505050565b81516001600160401b03811115620006bd57620006bd62000408565b620006d581620006ce845462000612565b846200064e565b602080601f8311600181146200070d5760008415620006f45750858301515b600019600386901b1c1916600185901b17855562000698565b600085815260208120601f198616915b828110156200073e578886015182559484019460019091019084016200071d565b50858210156200075d5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052603260045260246000fd5b615cad80620007936000396000f3fe60806040526004361061033f5760003560e01c8063715018a6116101b0578063ad2f852a116100ec578063d5abeb0111610095578063e985e9c51161006f578063e985e9c5146109b3578063f0025d9614610a09578063f2fde38b14610a1e578063f53d0a8e14610a3e57600080fd5b8063d5abeb011461095c578063d5e7feb814610971578063e8a3d4851461099e57600080fd5b8063c780b63d116100c6578063c780b63d14610907578063c87b56dd1461091c578063cb743ba81461093c57600080fd5b8063ad2f852a146108a7578063b88d4fde146108d2578063c6ab67a3146108f257600080fd5b8063911f456b1161015957806395d89b411161013357806395d89b411461083d5780639794ed4014610852578063a22cb46514610867578063a48301141461088757600080fd5b8063911f456b146107dd578063913ee93d146107fd578063938e3d7b1461081d57600080fd5b80637bc2be761161018a5780637bc2be7614610757578063840e15d4146107775780638da5cb5b146107b257600080fd5b8063715018a61461070d57806379ba5097146107225780637a05bc821461073757600080fd5b806342842e0e1161027f57806360c308b61161022857806366251b691161020257806366251b69146106985780636c0360eb146106b85780636f8b44b0146106cd57806370a08231146106ed57600080fd5b806360c308b6146106455780636352211e1461066557806364869dad1461068557600080fd5b806348a4c1011161025957806348a4c101146105e5578063511aa6441461060557806355f804b31461062557600080fd5b806342842e0e1461058557806342966c68146105a557806344dae42c146105c557600080fd5b80631b73593c116102ec5780632a55205a116102c65780632a55205a146104bc5780633680620d1461050857806341f434341461052857806342260b5d1461054a57600080fd5b80631b73593c1461046757806323452b9c1461048757806323b872dd1461049c57600080fd5b8063095ea7b31161031d578063095ea7b3146103e0578063099b6bfa1461040257806318160ddd1461042257600080fd5b806301ffc9a71461034457806306fdde0314610379578063081812fc1461039b575b600080fd5b34801561035057600080fd5b5061036461035f366004614393565b610a6b565b60405190151581526020015b60405180910390f35b34801561038557600080fd5b5061038e610b13565b604051610370919061441e565b3480156103a757600080fd5b506103bb6103b6366004614431565b610ba5565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610370565b3480156103ec57600080fd5b506104006103fb36600461446c565b610c0f565b005b34801561040e57600080fd5b5061040061041d366004614431565b610c28565b34801561042e57600080fd5b50600154600054037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff015b604051908152602001610370565b34801561047357600080fd5b50610400610482366004614498565b610cd2565b34801561049357600080fd5b50610400610f81565b3480156104a857600080fd5b506104006104b73660046144f7565b610fe8565b3480156104c857600080fd5b506104dc6104d7366004614538565b611020565b6040805173ffffffffffffffffffffffffffffffffffffffff9093168352602083019190915201610370565b34801561051457600080fd5b5061040061052336600461455a565b611089565b34801561053457600080fd5b506103bb6daaeb6d7670e522a718067333cd4e81565b34801561055657600080fd5b50600e547401000000000000000000000000000000000000000090046bffffffffffffffffffffffff16610459565b34801561059157600080fd5b506104006105a03660046144f7565b61118a565b3480156105b157600080fd5b506104006105c0366004614431565b6111bc565b3480156105d157600080fd5b506104006105e03660046145b1565b6111ca565b3480156105f157600080fd5b506104006106003660046145e7565b61133b565b34801561061157600080fd5b50610400610620366004614782565b611424565b34801561063157600080fd5b506104006106403660046148c0565b611693565b34801561065157600080fd5b50610400610660366004614902565b6116f5565b34801561067157600080fd5b506103bb610680366004614431565b611773565b61040061069336600461446c565b61177e565b3480156106a457600080fd5b506104006106b3366004614977565b611844565b3480156106c457600080fd5b5061038e6118a9565b3480156106d957600080fd5b506104006106e8366004614431565b6118b8565b3480156106f957600080fd5b506104596107083660046149a5565b61193a565b34801561071957600080fd5b506104006119bc565b34801561072e57600080fd5b506104006119d0565b34801561074357600080fd5b506104006107523660046149c2565b611a87565b34801561076357600080fd5b50610400610772366004614a17565b611b54565b34801561078357600080fd5b506107976107923660046149a5565b611d87565b60408051938452602084019290925290820152606001610370565b3480156107be57600080fd5b5060085473ffffffffffffffffffffffffffffffffffffffff166103bb565b3480156107e957600080fd5b506104006107f8366004614a8a565b611df4565b34801561080957600080fd5b506104006108183660046149a5565b612b8f565b34801561082957600080fd5b506104006108383660046148c0565b612ca0565b34801561084957600080fd5b5061038e612ce7565b34801561085e57600080fd5b50610400612cf6565b34801561087357600080fd5b50610400610882366004614ac6565b612da0565b34801561089357600080fd5b506104006108a2366004614538565b612db4565b3480156108b357600080fd5b50600e5473ffffffffffffffffffffffffffffffffffffffff166103bb565b3480156108de57600080fd5b506104006108ed366004614af4565b612df2565b3480156108fe57600080fd5b50600d54610459565b34801561091357600080fd5b50610400612e2c565b34801561092857600080fd5b5061038e610937366004614431565b612ed4565b34801561094857600080fd5b506104006109573660046145e7565b612f71565b34801561096857600080fd5b50600a54610459565b34801561097d57600080fd5b506013546103bb9073ffffffffffffffffffffffffffffffffffffffff1681565b3480156109aa57600080fd5b5061038e613046565b3480156109bf57600080fd5b506103646109ce366004614977565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260076020908152604080832093909416825291909152205460ff1690565b348015610a1557600080fd5b50610400613055565b348015610a2a57600080fd5b50610400610a393660046149a5565b6130db565b348015610a4a57600080fd5b506012546103bb9073ffffffffffffffffffffffffffffffffffffffff1681565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f1890fe8e000000000000000000000000000000000000000000000000000000001480610afe57507fffffffff0000000000000000000000000000000000000000000000000000000082167f9c15441500000000000000000000000000000000000000000000000000000000145b80610b0d5750610b0d826131a3565b92915050565b606060028054610b2290614bd6565b80601f0160208091040260200160405190810160405280929190818152602001828054610b4e90614bd6565b8015610b9b5780601f10610b7057610100808354040283529160200191610b9b565b820191906000526020600020905b815481529060010190602001808311610b7e57829003601f168201915b5050505050905090565b6000610bb082613245565b610be6576040517fcf4700e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5060009081526006602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b81610c1981613293565b610c238383613398565b505050565b610c306134ad565b6000547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0115610c8c576040517fe03264af00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600d80549082905560408051828152602081018490527f7c22004198bf87da0f0dab623c72e66ca1200f4454aa3b9ca30f436275428b7c91015b60405180910390a15050565b60085473ffffffffffffffffffffffffffffffffffffffff163314610d425760125473ffffffffffffffffffffffffffffffffffffffff163314610d42576040517f59d9793700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d4b8261353d565b6040517fbc6a629c00000000000000000000000000000000000000000000000000000000815230600482015260009073ffffffffffffffffffffffffffffffffffffffff84169063bc6a629c9060240160c060405180830381865afa158015610db8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ddc9190614c58565b90506000610def36849003840184614cf0565b60125490915073ffffffffffffffffffffffffffffffffffffffff163314610e6d57816060015161ffff16600003610e53576040517f9e99507a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60808083015161ffff1690820152600160a0820152610ea7565b606082015161ffff8116610e82576001610e84565b805b61ffff9081166060850152608092830151169183019190915250600160a0820152805b604080517f01308e65000000000000000000000000000000000000000000000000000000008152825169ffffffffffffffffffff166004820152602083015165ffffffffffff9081166024830152918301519091166044820152606082015161ffff9081166064830152608083015116608482015260a0820151151560a482015273ffffffffffffffffffffffffffffffffffffffff8516906301308e659060c401600060405180830381600087803b158015610f6357600080fd5b505af1158015610f77573d6000803e3d6000fd5b5050505050505050565b610f896135a1565b600980547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055604051600081527f11a3cf439fb225bfe74225716b6774765670ec1060e3796802e62139d69974da906020015b60405180910390a1565b8273ffffffffffffffffffffffffffffffffffffffff8116331461100f5761100f33613293565b61101a8484846135f2565b50505050565b600e805460009182916127109061105d907401000000000000000000000000000000000000000090046bffffffffffffffffffffffff1686614da0565b6110679190614db7565b905473ffffffffffffffffffffffffffffffffffffffff169590945092505050565b60085473ffffffffffffffffffffffffffffffffffffffff1633146110f95760125473ffffffffffffffffffffffffffffffffffffffff1633146110f9576040517f59d9793700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6111028261353d565b6040517febb4a55f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83169063ebb4a55f90611154908490600401614faf565b600060405180830381600087803b15801561116e57600080fd5b505af1158015611182573d6000803e3d6000fd5b505050505050565b8273ffffffffffffffffffffffffffffffffffffffff811633146111b1576111b133613293565b61101a8484846138b2565b6111c78160016138cd565b50565b6111d26134ad565b60006111e160208301836149a5565b73ffffffffffffffffffffffffffffffffffffffff160361122e576040517f1cc0baef00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6127106112416040830160208401614fdc565b6bffffffffffffffffffffffff1611156112ad576112656040820160208301614fdc565b6040517f3cadbafb0000000000000000000000000000000000000000000000000000000081526bffffffffffffffffffffffff90911660048201526024015b60405180910390fd5b80600e6112ba8282614ff9565b507ff21fccf4d64d86d532c4e4eb86c007b6ad57a460c27d724188625e755ec6cf6d90506112eb60208301836149a5565b6112fb6040840160208501614fdc565b6040805173ffffffffffffffffffffffffffffffffffffffff90931683526bffffffffffffffffffffffff9091166020830152015b60405180910390a150565b60125473ffffffffffffffffffffffffffffffffffffffff16331461138c576040517fff512cd000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6113958361353d565b6040517f8e7d1e4300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301528215156024830152841690638e7d1e43906044015b600060405180830381600087803b15801561140757600080fd5b505af115801561141b573d6000803e3d6000fd5b50505050505050565b60085473ffffffffffffffffffffffffffffffffffffffff1633146114945760125473ffffffffffffffffffffffffffffffffffffffff163314611494576040517f59d9793700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61149d8361353d565b6040517f81bf9af300000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff8381166024830152600091908516906381bf9af39060440160e060405180830381865afa158015611513573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115379190615069565b601254909150829073ffffffffffffffffffffffffffffffffffffffff1633146115c357816020015162ffffff1660000361159e576040517f9e99507a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60a08083015161ffff9081169183019190915260c08084015190911690820152611606565b602082015162ffffff81166115d95760016115db565b805b62ffffff1660208401525060a08082015161ffff9081169184019190915260c0918201511690820152805b6040517f4d38017800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff861690634d3801789061165a9087908590600401615121565b600060405180830381600087803b15801561167457600080fd5b505af1158015611688573d6000803e3d6000fd5b505050505050505050565b61169b6134ad565b600b6116a88284836151fb565b507f6bd5c950a8d8df17f772f5af37cb3655737899cbf903264b9795592da439661c6001806116d660005490565b6116e09190615315565b60408051928352602083019190915201610cc6565b60085473ffffffffffffffffffffffffffffffffffffffff1633146117655760125473ffffffffffffffffffffffffffffffffffffffff163314611765576040517f59d9793700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61176f8282613aa6565b5050565b6000610b0d82613c16565b6117873361353d565b600a54816117b66000547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b6117c09190615328565b111561183a57806117f26000547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b6117fc9190615328565b600a546040517fe12d2314000000000000000000000000000000000000000000000000000000008152600481019290925260248201526044016112a4565b61176f8282613cd5565b61184c6134ad565b6118558261353d565b6040517f12738db800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301528316906312738db890602401611154565b60606118b3613e13565b905090565b6118c06134ad565b67ffffffffffffffff811115611905576040517fb43e9137000000000000000000000000000000000000000000000000000000008152600481018290526024016112a4565b600a8190556040518181527f7810bd47de260c3e9ee10061cf438099dd12256c79485f12f94dbccc981e806c90602001611330565b600073ffffffffffffffffffffffffffffffffffffffff8216611989576040517f8f4eb60400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5073ffffffffffffffffffffffffffffffffffffffff1660009081526005602052604090205467ffffffffffffffff1690565b6119c46135a1565b6119ce6000613e22565b565b60095473ffffffffffffffffffffffffffffffffffffffff16338114611a22576040517fd6eb09ce00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600980547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055604051600081527f11a3cf439fb225bfe74225716b6774765670ec1060e3796802e62139d69974da9060200160405180910390a16111c781613e22565b60085473ffffffffffffffffffffffffffffffffffffffff163314611af75760125473ffffffffffffffffffffffffffffffffffffffff163314611af7576040517f59d9793700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611b008361353d565b6040517fb957d0cb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84169063b957d0cb906113ed908590859060040161533b565b60085473ffffffffffffffffffffffffffffffffffffffff163314611bc45760125473ffffffffffffffffffffffffffffffffffffffff163314611bc4576040517f59d9793700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611bcd8361353d565b6040517f0b0e8a6e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff838116602483015260009190851690630b0e8a6e9060440161010060405180830381865afa158015611c44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c689190615386565b90506000611c7b36849003840184615444565b60125490915073ffffffffffffffffffffffffffffffffffffffff163314611cf957816020015161ffff16600003611cdf576040517f9e99507a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60c08083015161ffff1690820152600160e0820152611d33565b602082015161ffff8116611d0e576001611d10565b805b61ffff908116602085015260c092830151169183019190915250600160e0820152805b6040517ffd9ab22a00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff86169063fd9ab22a9061165a908790859060040161556e565b73ffffffffffffffffffffffffffffffffffffffff811660009081526005602052604080822054901c67ffffffffffffffff169080611de76000547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b600a549395909450915050565b611dfc6135a1565b803515611e6e576040517f6f8b44b0000000000000000000000000000000000000000000000000000000008152813560048201523090636f8b44b090602401600060405180830381600087803b158015611e5557600080fd5b505af1158015611e69573d6000803e3d6000fd5b505050505b611e7b6020820182615599565b159050611ee557306355f804b3611e956020840184615599565b6040518363ffffffff1660e01b8152600401611eb292919061533b565b600060405180830381600087803b158015611ecc57600080fd5b505af1158015611ee0573d6000803e3d6000fd5b505050505b611ef26040820182615599565b159050611f5c573063938e3d7b611f0c6040840184615599565b6040518363ffffffff1660e01b8152600401611f2992919061533b565b600060405180830381600087803b158015611f4357600080fd5b505af1158015611f57573d6000803e3d6000fd5b505050505b611f7c611f6f60e0830160c084016155fe565b65ffffffffffff16151590565b611f8f611f6f60c0840160a085016155fe565b176001036120015730631b73593c611fad60808401606085016149a5565b836080016040518363ffffffff1660e01b8152600401611fce92919061561b565b600060405180830381600087803b158015611fe857600080fd5b505af1158015611ffc573d6000803e3d6000fd5b505050505b61200f610140820182615599565b15905061208b5730637a05bc8261202c60808401606085016149a5565b61203a610140850185615599565b6040518463ffffffff1660e01b8152600401612058939291906156d9565b600060405180830381600087803b15801561207257600080fd5b505af1158015612086573d6000803e3d6000fd5b505050505b600061209b610160830183615712565b35146121155730633680620d6120b760808401606085016149a5565b6120c5610160850185615712565b6040518363ffffffff1660e01b81526004016120e2929190615750565b600060405180830381600087803b1580156120fc57600080fd5b505af1158015612110573d6000803e3d6000fd5b505050505b60006121296101a0830161018084016149a5565b73ffffffffffffffffffffffffffffffffffffffff16146121f257306366251b6961215a60808401606085016149a5565b61216c6101a0850161018086016149a5565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815273ffffffffffffffffffffffffffffffffffffffff928316600482015291166024820152604401600060405180830381600087803b1580156121d957600080fd5b505af11580156121ed573d6000803e3d6000fd5b505050505b6101a08101351561226c576040517f099b6bfa0000000000000000000000000000000000000000000000000000000081526101a08201356004820152309063099b6bfa90602401600060405180830381600087803b15801561225357600080fd5b505af1158015612267573d6000803e3d6000fd5b505050505b600061227c6101c083018361577f565b905011156123805760005b6122956101c083018361577f565b905081101561237e57306348a4c1016122b460808501606086016149a5565b6122c26101c086018661577f565b858181106122d2576122d26157e7565b90506020020160208101906122e791906149a5565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815273ffffffffffffffffffffffffffffffffffffffff92831660048201529116602482015260016044820152606401600060405180830381600087803b15801561235b57600080fd5b505af115801561236f573d6000803e3d6000fd5b50505050806001019050612287565b505b60006123906101e083018361577f565b905011156124945760005b6123a96101e083018361577f565b905081101561249257306348a4c1016123c860808501606086016149a5565b6123d66101e086018661577f565b858181106123e6576123e66157e7565b90506020020160208101906123fb91906149a5565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815273ffffffffffffffffffffffffffffffffffffffff92831660048201529116602482015260006044820152606401600060405180830381600087803b15801561246f57600080fd5b505af1158015612483573d6000803e3d6000fd5b5050505080600101905061239b565b505b60006124a461020083018361577f565b905011156125a85760005b6124bd61020083018361577f565b90508110156125a6573063cb743ba86124dc60808501606086016149a5565b6124ea61020086018661577f565b858181106124fa576124fa6157e7565b905060200201602081019061250f91906149a5565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815273ffffffffffffffffffffffffffffffffffffffff92831660048201529116602482015260016044820152606401600060405180830381600087803b15801561258357600080fd5b505af1158015612597573d6000803e3d6000fd5b505050508060010190506124af565b505b60006125b861022083018361577f565b905011156126bc5760005b6125d161022083018361577f565b90508110156126ba573063cb743ba86125f060808501606086016149a5565b6125fe61022086018661577f565b8581811061260e5761260e6157e7565b905060200201602081019061262391906149a5565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815273ffffffffffffffffffffffffffffffffffffffff92831660048201529116602482015260006044820152606401600060405180830381600087803b15801561269757600080fd5b505af11580156126ab573d6000803e3d6000fd5b505050508060010190506125c3565b505b60006126cc610260830183615816565b90501115612810576126e261024082018261577f565b90506126f2610260830183615816565b90501461272b576040517fb81aa63900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b61273c610260830183615816565b905081101561280e5730637bc2be7661275b60808501606086016149a5565b61276961024086018661577f565b85818110612779576127796157e7565b905060200201602081019061278e91906149a5565b61279c610260870187615816565b868181106127ac576127ac6157e7565b905061010002016040518463ffffffff1660e01b81526004016127d19392919061587e565b600060405180830381600087803b1580156127eb57600080fd5b505af11580156127ff573d6000803e3d6000fd5b5050505080600101905061272e565b505b600061282061028083018361577f565b9050111561292b5760005b61283961028083018361577f565b9050811015612929576040805161010081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081019190915230637bc2be7661289960808601606087016149a5565b6128a761028087018761577f565b868181106128b7576128b76157e7565b90506020020160208101906128cc91906149a5565b846040518463ffffffff1660e01b81526004016128eb93929190615969565b600060405180830381600087803b15801561290557600080fd5b505af1158015612919573d6000803e3d6000fd5b505050508160010191505061282b565b505b600061293b6102c083018361599c565b90501115612a7e576129516102a082018261577f565b90506129616102c083018361599c565b90501461299a576040517f74ef6df700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b6129ab6102c083018361599c565b9050811015612a7c573063511aa6446129ca60808501606086016149a5565b6129d86102a086018661577f565b858181106129e8576129e86157e7565b90506020020160208101906129fd91906149a5565b612a0b6102c087018761599c565b86818110612a1b57612a1b6157e7565b905060e002016040518463ffffffff1660e01b8152600401612a3f93929190615a03565b600060405180830381600087803b158015612a5957600080fd5b505af1158015612a6d573d6000803e3d6000fd5b5050505080600101905061299d565b505b6000612a8e6102e083018361577f565b905011156111c75760005b612aa76102e083018361577f565b905081101561176f576040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c08101919091523063511aa644612aff60808601606087016149a5565b612b0d6102e087018761577f565b86818110612b1d57612b1d6157e7565b9050602002016020810190612b3291906149a5565b846040518463ffffffff1660e01b8152600401612b5193929190615ad8565b600060405180830381600087803b158015612b6b57600080fd5b505af1158015612b7f573d6000803e3d6000fd5b5050505081600101915050612a99565b60125473ffffffffffffffffffffffffffffffffffffffff163314612be0576040517fff512cd000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8116612c2d576040517fd4daf9fc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b601380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527fffa60f32d5278b35b1a3350ca92518fb5fe53e54ad07ac6355a17f54c5296b1f90602001611330565b612ca86134ad565b600c612cb58284836151fb565b507f905d981207a7d0b6c62cc46ab0be2a076d0298e4a86d0ab79882dbd01ac373788282604051610cc692919061533b565b606060038054610b2290614bd6565b60125473ffffffffffffffffffffffffffffffffffffffff163314612d47576040517fff512cd000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b601380547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055604051600081527fffa60f32d5278b35b1a3350ca92518fb5fe53e54ad07ac6355a17f54c5296b1f90602001610fde565b81612daa81613293565b610c238383613e99565b612dbc6134ad565b60408051838152602081018390527f6bd5c950a8d8df17f772f5af37cb3655737899cbf903264b9795592da439661c9101610cc6565b8373ffffffffffffffffffffffffffffffffffffffff81163314612e1957612e1933613293565b612e2585858585613f30565b5050505050565b60125473ffffffffffffffffffffffffffffffffffffffff163314612e7d576040517fff512cd000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b601280547fffffffffffffffffffffffff000000000000000000000000000000000000000016905560405160009033907f222c8e95a03c7aa95fc5d110485e0d38e767f07ab1ec878a6eac644ef1d83122908390a3565b6060612edf82613245565b612f15576040517fa14c4b5000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000612f1f613e13565b90508051600003612f3f5760405180602001604052806000815250612f6a565b80612f4984613f9a565b604051602001612f5a929190615b74565b6040516020818303038152906040525b9392505050565b60085473ffffffffffffffffffffffffffffffffffffffff163314612fe15760125473ffffffffffffffffffffffffffffffffffffffff163314612fe1576040517f59d9793700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612fea8361353d565b6040517f7f2a5cca00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff83811660048301528215156024830152841690637f2a5cca906044016113ed565b6060600c8054610b2290614bd6565b60135473ffffffffffffffffffffffffffffffffffffffff163381146130a7576040517f53bb059b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6130b081613ffc565b50601380547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b6130e36135a1565b73ffffffffffffffffffffffffffffffffffffffff8116613130576040517f7448fbae00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600980547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527f11a3cf439fb225bfe74225716b6774765670ec1060e3796802e62139d69974da90602001611330565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f2a55205a00000000000000000000000000000000000000000000000000000000148061323657507f49064906000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b80610b0d5750610b0d8261406d565b600081600111158015613259575060005482105b8015610b0d5750506000908152600460205260409020547c0100000000000000000000000000000000000000000000000000000000161590565b6daaeb6d7670e522a718067333cd4e3b156111c7576040517fc617113400000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff821660248201526daaeb6d7670e522a718067333cd4e9063c617113490604401602060405180830381865afa158015613326573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061334a9190615ba3565b6111c7576040517fede71dcc00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff821660048201526024016112a4565b60006133a382611773565b90503373ffffffffffffffffffffffffffffffffffffffff82161461342c5773ffffffffffffffffffffffffffffffffffffffff8116600090815260076020908152604080832033845290915290205460ff1661342c576040517fcfb3b94200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008281526006602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff87811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b3033146135036134d260085473ffffffffffffffffffffffffffffffffffffffff1690565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161490565b176000036119ce576040517f5fc483c500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff811660009081526010602052604090205460ff1615156001146111c7576040517f15e26ff300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60085473ffffffffffffffffffffffffffffffffffffffff1633146119ce576040517f5fc483c500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006135fd82613c16565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614613664576040517fa114810000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000828152600660205260409020805461369d8187335b73ffffffffffffffffffffffffffffffffffffffff9081169116811491141790565b61370b5773ffffffffffffffffffffffffffffffffffffffff8616600090815260076020908152604080832033845290915290205460ff1661370b576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8516613758576040517fea553b3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b801561376357600082555b73ffffffffffffffffffffffffffffffffffffffff86811660009081526005602052604080822080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff019055918716808252919020805460010190554260a01b177c0200000000000000000000000000000000000000000000000000000000176000858152600460205260408120919091557c020000000000000000000000000000000000000000000000000000000084169003613852576001840160008181526004602052604081205490036138505760005481146138505760008181526004602052604090208490555b505b838573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611182565b610c2383838360405180602001604052806000815250612df2565b60006138d883613c16565b9050806000806138f686600090815260066020526040902080549091565b9150915084156139795761390b81843361367b565b6139795773ffffffffffffffffffffffffffffffffffffffff8316600090815260076020908152604080832033845290915290205460ff16613979576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b801561398457600082555b73ffffffffffffffffffffffffffffffffffffffff8316600081815260056020526040902080546fffffffffffffffffffffffffffffffff0190554260a01b177c0300000000000000000000000000000000000000000000000000000000176000878152600460205260408120919091557c020000000000000000000000000000000000000000000000000000000085169003613a5157600186016000818152600460205260408120549003613a4f576000548114613a4f5760008181526004602052604090208590555b505b604051869060009073ffffffffffffffffffffffffffffffffffffffff8616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050600180548101905550505050565b6011548160005b82811015613b355760006010600060118481548110613ace57613ace6157e7565b60009182526020808320919091015473ffffffffffffffffffffffffffffffffffffffff168352820192909252604001902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055600101613aad565b5060005b81811015613bc957600160106000878785818110613b5957613b596157e7565b9050602002016020810190613b6e91906149a5565b73ffffffffffffffffffffffffffffffffffffffff168152602081019190915260400160002080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055600101613b39565b50613bd6601185856142c8565b507fbbd3b69c138de4d317d0bc4290282c4e1cbd1e58b579a5b4f114b598c237454d8484604051613c08929190615bc0565b60405180910390a150505050565b60008180600111613ca357600054811015613ca357600081815260046020526040812054907c010000000000000000000000000000000000000000000000000000000082169003613ca1575b80600003612f6a57507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01600081815260046020526040902054613c62565b505b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000805490829003613d13576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff831660008181526005602090815260408083208054680100000000000000018802019055848352600490915281206001851460e11b4260a01b178317905582840190839083907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a4600183015b818114613dcf57808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600101613d97565b5081600003613e0a576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005550505050565b6060600b8054610b2290614bd6565b6008805473ffffffffffffffffffffffffffffffffffffffff8381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b33600081815260076020908152604080832073ffffffffffffffffffffffffffffffffffffffff87168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b613f3b848484610fe8565b73ffffffffffffffffffffffffffffffffffffffff83163b1561101a57613f648484848461414e565b61101a576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b606060a06040510180604052602081039150506000815280825b600183039250600a81066030018353600a900480613fb457508190037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0909101908152919050565b601280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff831690811790915560405133907f222c8e95a03c7aa95fc5d110485e0d38e767f07ab1ec878a6eac644ef1d8312290600090a350565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316148061410057507f80ac58cd000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b80610b0d5750507fffffffff00000000000000000000000000000000000000000000000000000000167f5b5e139f000000000000000000000000000000000000000000000000000000001490565b6040517f150b7a0200000000000000000000000000000000000000000000000000000000815260009073ffffffffffffffffffffffffffffffffffffffff85169063150b7a02906141a9903390899088908890600401615c1b565b6020604051808303816000875af1925050508015614202575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01682019092526141ff91810190615c5a565b60015b614279573d808015614230576040519150601f19603f3d011682016040523d82523d6000602084013e614235565b606091505b508051600003614271576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b7fffffffff00000000000000000000000000000000000000000000000000000000167f150b7a02000000000000000000000000000000000000000000000000000000001490505b949350505050565b828054828255906000526020600020908101928215614340579160200282015b828111156143405781547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8435161782556020909201916001909101906142e8565b5061434c929150614350565b5090565b5b8082111561434c5760008155600101614351565b7fffffffff00000000000000000000000000000000000000000000000000000000811681146111c757600080fd5b6000602082840312156143a557600080fd5b8135612f6a81614365565b60005b838110156143cb5781810151838201526020016143b3565b50506000910152565b600081518084526143ec8160208601602086016143b0565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000612f6a60208301846143d4565b60006020828403121561444357600080fd5b5035919050565b73ffffffffffffffffffffffffffffffffffffffff811681146111c757600080fd5b6000806040838503121561447f57600080fd5b823561448a8161444a565b946020939093013593505050565b60008082840360e08112156144ac57600080fd5b83356144b78161444a565b925060c07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0820112156144e957600080fd5b506020830190509250929050565b60008060006060848603121561450c57600080fd5b83356145178161444a565b925060208401356145278161444a565b929592945050506040919091013590565b6000806040838503121561454b57600080fd5b50508035926020909101359150565b6000806040838503121561456d57600080fd5b82356145788161444a565b9150602083013567ffffffffffffffff81111561459457600080fd5b8301606081860312156145a657600080fd5b809150509250929050565b6000604082840312156145c357600080fd5b50919050565b80151581146111c757600080fd5b80356145e2816145c9565b919050565b6000806000606084860312156145fc57600080fd5b83356146078161444a565b925060208401356146178161444a565b91506040840135614627816145c9565b809150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405160e0810167ffffffffffffffff8111828210171561468457614684614632565b60405290565b60405160c0810167ffffffffffffffff8111828210171561468457614684614632565b604051610100810167ffffffffffffffff8111828210171561468457614684614632565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561471857614718614632565b604052919050565b69ffffffffffffffffffff811681146111c757600080fd5b62ffffff811681146111c757600080fd5b64ffffffffff811681146111c757600080fd5b80356145e281614749565b61ffff811681146111c757600080fd5b80356145e281614767565b600080600083850361012081121561479957600080fd5b84356147a48161444a565b935060208501356147b48161444a565b925060e07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0820112156147e657600080fd5b506147ef614661565b60408501356147fd81614720565b8152606085013561480d81614738565b6020820152608085013561482081614749565b604082015260a085013561483381614749565b606082015261484460c0860161475c565b608082015261485560e08601614777565b60a08201526148676101008601614777565b60c0820152809150509250925092565b60008083601f84011261488957600080fd5b50813567ffffffffffffffff8111156148a157600080fd5b6020830191508360208285010111156148b957600080fd5b9250929050565b600080602083850312156148d357600080fd5b823567ffffffffffffffff8111156148ea57600080fd5b6148f685828601614877565b90969095509350505050565b6000806020838503121561491557600080fd5b823567ffffffffffffffff8082111561492d57600080fd5b818501915085601f83011261494157600080fd5b81358181111561495057600080fd5b8660208260051b850101111561496557600080fd5b60209290920196919550909350505050565b6000806040838503121561498a57600080fd5b82356149958161444a565b915060208301356145a68161444a565b6000602082840312156149b757600080fd5b8135612f6a8161444a565b6000806000604084860312156149d757600080fd5b83356149e28161444a565b9250602084013567ffffffffffffffff8111156149fe57600080fd5b614a0a86828701614877565b9497909650939450505050565b6000806000838503610140811215614a2e57600080fd5b8435614a398161444a565b93506020850135614a498161444a565b92506101007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc082011215614a7c57600080fd5b506040840190509250925092565b600060208284031215614a9c57600080fd5b813567ffffffffffffffff811115614ab357600080fd5b82016103008185031215612f6a57600080fd5b60008060408385031215614ad957600080fd5b8235614ae48161444a565b915060208301356145a6816145c9565b60008060008060808587031215614b0a57600080fd5b8435614b158161444a565b9350602085810135614b268161444a565b935060408601359250606086013567ffffffffffffffff80821115614b4a57600080fd5b818801915088601f830112614b5e57600080fd5b813581811115614b7057614b70614632565b614ba0847fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116016146d1565b91508082528984828501011115614bb657600080fd5b808484018584013760008482840101525080935050505092959194509250565b600181811c90821680614bea57607f821691505b6020821081036145c3577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b65ffffffffffff811681146111c757600080fd5b80516145e281614c23565b80516145e281614767565b80516145e2816145c9565b600060c08284031215614c6a57600080fd5b614c7261468a565b8251614c7d81614720565b81526020830151614c8d81614c23565b60208201526040830151614ca081614c23565b60408201526060830151614cb381614767565b60608201526080830151614cc681614767565b608082015260a0830151614cd9816145c9565b60a08201529392505050565b80356145e281614c23565b600060c08284031215614d0257600080fd5b614d0a61468a565b8235614d1581614720565b81526020830135614d2581614c23565b60208201526040830135614d3881614c23565b60408201526060830135614d4b81614767565b60608201526080830135614d5e81614767565b608082015260a0830135614cd9816145c9565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8082028115828204841417610b0d57610b0d614d71565b600082614ded577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112614e7057600080fd5b830160208101925035905067ffffffffffffffff811115614e9057600080fd5b8036038213156148b957600080fd5b600060608301823584526020808401357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1853603018112614edf57600080fd5b8401818101903567ffffffffffffffff811115614efb57600080fd5b8060051b803603831315614f0e57600080fd5b6060848901529381905260809387018401938290880160005b83811015614f7f577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff808a8803018252614f608386614e3b565b614f6b898284614df2565b985050509185019190850190600101614f27565b505050505050614f926040840184614e3b565b8583036040870152614fa5838284614df2565b9695505050505050565b602081526000612f6a6020830184614e9f565b6bffffffffffffffffffffffff811681146111c757600080fd5b600060208284031215614fee57600080fd5b8135612f6a81614fc2565b81356150048161444a565b73ffffffffffffffffffffffffffffffffffffffff811690507fffffffffffffffffffffffff00000000000000000000000000000000000000008181845416178355602084013561505481614fc2565b60a01b1617905550565b80516145e281614749565b600060e0828403121561507b57600080fd5b60405160e0810181811067ffffffffffffffff8211171561509e5761509e614632565b60405282516150ac81614720565b815260208301516150bc81614738565b602082015260408301516150cf81614749565b604082015260608301516150e281614749565b60608201526150f36080840161505e565b608082015261510460a08401614c42565b60a082015261511560c08401614c42565b60c08201529392505050565b73ffffffffffffffffffffffffffffffffffffffff831681526101008101612f6a602083018469ffffffffffffffffffff815116825262ffffff6020820151166020830152604081015164ffffffffff8082166040850152806060840151166060850152806080840151166080850152505060a081015161ffff80821660a08501528060c08401511660c085015250505050565b601f821115610c2357600081815260208120601f850160051c810160208610156151dc5750805b601f850160051c820191505b81811015611182578281556001016151e8565b67ffffffffffffffff83111561521357615213614632565b615227836152218354614bd6565b836151b5565b6000601f84116001811461527957600085156152435750838201355b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600387901b1c1916600186901b178355612e25565b6000838152602090207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0861690835b828110156152c857868501358255602094850194600190920191016152a8565b5086821015615303577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88860031b161c19848701351681555b505060018560011b0183555050505050565b81810381811115610b0d57610b0d614d71565b80820180821115610b0d57610b0d614d71565b6020815260006142c0602083018486614df2565b60ff811681146111c757600080fd5b80516145e28161534f565b63ffffffff811681146111c757600080fd5b80516145e281615369565b6000610100828403121561539957600080fd5b6153a16146ad565b82516153ac81614720565b815260208301516153bc81614767565b60208201526153cd60408401614c37565b60408201526153de60608401614c37565b60608201526153ef6080840161535e565b608082015261540060a0840161537b565b60a082015261541160c08401614c42565b60c082015261542260e08401614c4d565b60e08201529392505050565b80356145e28161534f565b80356145e281615369565b6000610100828403121561545757600080fd5b61545f6146ad565b823561546a81614720565b8152602083013561547a81614767565b602082015261548b60408401614ce5565b604082015261549c60608401614ce5565b60608201526154ad6080840161542e565b60808201526154be60a08401615439565b60a08201526154cf60c08401614777565b60c082015261542260e084016145d7565b69ffffffffffffffffffff815116825261ffff6020820151166020830152604081015165ffffffffffff8082166040850152806060840151166060850152505060ff608082015116608083015260a081015161554460a084018263ffffffff169052565b5060c081015161555a60c084018261ffff169052565b5060e0810151610c2360e084018215159052565b73ffffffffffffffffffffffffffffffffffffffff831681526101208101612f6a60208301846154e0565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126155ce57600080fd5b83018035915067ffffffffffffffff8211156155e957600080fd5b6020019150368190038213156148b957600080fd5b60006020828403121561561057600080fd5b8135612f6a81614c23565b73ffffffffffffffffffffffffffffffffffffffff8316815260e08101823561564381614720565b69ffffffffffffffffffff8116602084015250602083013561566481614c23565b65ffffffffffff80821660408501526040850135915061568382614c23565b1660608381019190915283013561569981614767565b61ffff811660808401525060808301356156b281614767565b61ffff811660a0840152506156c960a084016145d7565b80151560c0840152509392505050565b73ffffffffffffffffffffffffffffffffffffffff84168152604060208201526000615709604083018486614df2565b95945050505050565b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa183360301811261574657600080fd5b9190910192915050565b73ffffffffffffffffffffffffffffffffffffffff831681526040602082015260006142c06040830184614e9f565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126157b457600080fd5b83018035915067ffffffffffffffff8211156157cf57600080fd5b6020019150600581901b36038213156148b957600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261584b57600080fd5b83018035915067ffffffffffffffff82111561586657600080fd5b6020019150600881901b36038213156148b957600080fd5b73ffffffffffffffffffffffffffffffffffffffff848116825283166020820152610140810182356158af81614720565b69ffffffffffffffffffff16604083015260208301356158ce81614767565b61ffff1660608301526158e360408401614ce5565b65ffffffffffff1660808301526158fc60608401614ce5565b65ffffffffffff1660a08301526159156080840161542e565b60ff1660c083015261592960a08401615439565b63ffffffff1660e083015261594060c08401614777565b61ffff1661010083015261595660e084016145d7565b8015156101208401525b50949350505050565b73ffffffffffffffffffffffffffffffffffffffff84811682528316602082015261014081016142c060408301846154e0565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe18436030181126159d157600080fd5b83018035915067ffffffffffffffff8211156159ec57600080fd5b602001915060e0810236038213156148b957600080fd5b73ffffffffffffffffffffffffffffffffffffffff84811682528316602082015261012081018235615a3481614720565b69ffffffffffffffffffff1660408301526020830135615a5381614738565b62ffffff1660608301526040830135615a6b81614749565b64ffffffffff166080830152615a836060840161475c565b64ffffffffff1660a0830152615a9b6080840161475c565b64ffffffffff1660c0830152615ab360a08401614777565b61ffff1660e0830152615ac860c08401614777565b61ffff8116610100840152615960565b73ffffffffffffffffffffffffffffffffffffffff84811682528316602082015261012081016142c0604083018469ffffffffffffffffffff815116825262ffffff6020820151166020830152604081015164ffffffffff8082166040850152806060840151166060850152806080840151166080850152505060a081015161ffff80821660a08501528060c08401511660c085015250505050565b60008351615b868184602088016143b0565b835190830190615b9a8183602088016143b0565b01949350505050565b600060208284031215615bb557600080fd5b8151612f6a816145c9565b60208082528181018390526000908460408401835b86811015615c10578235615be88161444a565b73ffffffffffffffffffffffffffffffffffffffff1682529183019190830190600101615bd5565b509695505050505050565b600073ffffffffffffffffffffffffffffffffffffffff808716835280861660208401525083604083015260806060830152614fa560808301846143d4565b600060208284031215615c6c57600080fd5b8151612f6a8161436556fea2646970667358221220f6574da90e88b7f4c34dd119caee2088088854b8bcd7112ee8e8a8b41fe92fc864736f6c63430008110033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000004468a5b725e2c63056131121cd33b66848e1dd87000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000164772756d6269657320457465726e616c20456e7472790000000000000000000000000000000000000000000000000000000000000000000000000000000000084752554d42494553000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000005ea00ac477b1030ce78506496e8c2de24bf5