f0VMRgEBAQAAAAAAAAAAAAEACAABAAAAAAAAAAAAAADsYgEABxAAUDQAAAAAACgABQACAHYxOwpwYWNrYWdlIHN5c2NhbGw7CnBrZ3BhdGggc3lzY2FsbDsKcHJpb3JpdHkgMzsKaW1wb3J0IHJ1bnRpbWUgcnVudGltZSAicnVudGltZSI7CmltcG9ydCBzeW5jIHN5bmMgInN5bmMiOwppbXBvcnQgdW5zYWZlIHVuc2FmZSAidW5zYWZlIjsKaW5pdCBzeXNjYWxsIHN5c2NhbGwuLmltcG9ydCAzIHJ1bnRpbWUgcnVudGltZS4uaW1wb3J0IDEgc3luYyBzeW5jLi5pbXBvcnQgMjsKY29uc3QgQUZfQUxHID0gMzggOwpjb25zdCBBRl9BUFBMRVRBTEsgPSA1IDsKY29uc3QgQUZfQVNIID0gMTggOwpjb25zdCBBRl9BVE1QVkMgPSA4IDsKY29uc3QgQUZfQVRNU1ZDID0gMjAgOwpjb25zdCBBRl9BWDI1ID0gMyA7CmNvbnN0IEFGX0JMVUVUT09USCA9IDMxIDsKY29uc3QgQUZfQlJJREdFID0gNyA7CmNvbnN0IEFGX0NBSUYgPSAzNyA7CmNvbnN0IEFGX0NBTiA9IDI5IDsKY29uc3QgQUZfREVDbmV0ID0gMTIgOwpjb25zdCBBRl9FQ09ORVQgPSAxOSA7CmNvbnN0IEFGX0ZJTEUgPSAxIDsKY29uc3QgQUZfSUVFRTgwMjE1NCA9IDM2IDsKY29uc3QgQUZfSU5FVCA9IDIgOwpjb25zdCBBRl9JTkVUNiA9IDEwIDsKY29uc3QgQUZfSVBYID0gNCA7CmNvbnN0IEFGX0lSREEgPSAyMyA7CmNvbnN0IEFGX0lTRE4gPSAzNCA7CmNvbnN0IEFGX0lVQ1YgPSAzMiA7CmNvbnN0IEFGX0tFWSA9IDE1IDsKY29uc3QgQUZfTExDID0gMjYgOwpjb25zdCBBRl9MT0NBTCA9IDEgOwpjb25zdCBBRl9NQVggPSA0MCA7CmNvbnN0IEFGX05FVEJFVUkgPSAxMyA7CmNvbnN0IEFGX05FVExJTksgPSAxNiA7CmNvbnN0IEFGX05FVFJPTSA9IDYgOwpjb25zdCBBRl9ORkMgPSAzOSA7CmNvbnN0IEFGX1BBQ0tFVCA9IDE3IDsKY29uc3QgQUZfUEhPTkVUID0gMzUgOwpjb25zdCBBRl9QUFBPWCA9IDI0IDsKY29uc3QgQUZfUkRTID0gMjEgOwpjb25zdCBBRl9ST1NFID0gMTEgOwpjb25zdCBBRl9ST1VURSA9IDE2IDsKY29uc3QgQUZfUlhSUEMgPSAzMyA7CmNvbnN0IEFGX1NFQ1VSSVRZID0gMTQgOwpjb25zdCBBRl9TTkEgPSAyMiA7CmNvbnN0IEFGX1RJUEMgPSAzMCA7CmNvbnN0IEFGX1VOSVggPSAxIDsKY29uc3QgQUZfVU5TUEVDID0gMCA7CmNvbnN0IEFGX1dBTlBJUEUgPSAyNSA7CmNvbnN0IEFGX1gyNSA9IDkgOwpjb25zdCBBSV9BRERSQ09ORklHID0gMzIgOwpjb25zdCBBSV9BTEwgPSAxNiA7CmNvbnN0IEFJX0NBTk9OTkFNRSA9IDIgOwpjb25zdCBBSV9OVU1FUklDSE9TVCA9IDQgOwpjb25zdCBBSV9OVU1FUklDU0VSViA9IDEwMjQgOwpjb25zdCBBSV9QQVNTSVZFID0gMSA7CmNvbnN0IEFJX1Y0TUFQUEVEID0gOCA7CmNvbnN0IEFSQ0ggPSAibWlwc28zMiI7CmNvbnN0IEFSUEhSRF9BREFQVCA9IDI2NCA7CmNvbnN0IEFSUEhSRF9BUFBMRVRMSyA9IDggOwpjb25zdCBBUlBIUkRfQVJDTkVUID0gNyA7CmNvbnN0IEFSUEhSRF9BU0ggPSA3ODEgOwpjb25zdCBBUlBIUkRfQVRNID0gMTkgOwpjb25zdCBBUlBIUkRfQVgyNSA9IDMgOwpjb25zdCBBUlBIUkRfQklGID0gNzc1IDsKY29uc3QgQVJQSFJEX0NIQU9TID0gNSA7CmNvbnN0IEFSUEhSRF9DSVNDTyA9IDUxMyA7CmNvbnN0IEFSUEhSRF9DU0xJUCA9IDI1NyA7CmNvbnN0IEFSUEhSRF9DU0xJUDYgPSAyNTkgOwpjb25zdCBBUlBIUkRfRERDTVAgPSA1MTcgOwpjb25zdCBBUlBIUkRfRExDSSA9IDE1IDsKY29uc3QgQVJQSFJEX0VDT05FVCA9IDc4MiA7CmNvbnN0IEFSUEhSRF9FRVRIRVIgPSAyIDsKY29uc3QgQVJQSFJEX0VUSEVSID0gMSA7CmNvbnN0IEFSUEhSRF9FVUk2NCA9IDI3IDsKY29uc3QgQVJQSFJEX0ZDQUwgPSA3ODUgOwpjb25zdCBBUlBIUkRfRkNGQUJSSUMgPSA3ODcgOwpjb25zdCBBUlBIUkRfRkNQTCA9IDc4NiA7CmNvbnN0IEFSUEhSRF9GQ1BQID0gNzg0IDsKY29uc3QgQVJQSFJEX0ZEREkgPSA3NzQgOwpjb25zdCBBUlBIUkRfRlJBRCA9IDc3MCA7CmNvbnN0IEFSUEhSRF9IRExDID0gNTEzIDsKY29uc3QgQVJQSFJEX0hJUFBJID0gNzgwIDsKY29uc3QgQVJQSFJEX0hXWDI1ID0gMjcyIDsKY29uc3QgQVJQSFJEX0lFRUUxMzk0ID0gMjQgOwpjb25zdCBBUlBIUkRfSUVFRTgwMiA9IDYgOwpjb25zdCBBUlBIUkRfSUVFRTgwMjExID0gODAxIDsKY29uc3QgQVJQSFJEX0lFRUU4MDIxMV9QUklTTSA9IDgwMiA7CmNvbnN0IEFSUEhSRF9JRUVFODAyMTFfUkFESU9UQVAgPSA4MDMgOwpjb25zdCBBUlBIUkRfSUVFRTgwMjE1NCA9IDgwNCA7CmNvbnN0IEFSUEhSRF9JRUVFODAyMTU0X1BIWSA9IDgwNSA7CmNvbnN0IEFSUEhSRF9JRUVFODAyX1RSID0gODAwIDsKY29uc3QgQVJQSFJEX0lORklOSUJBTkQgPSAzMiA7CmNvbnN0IEFSUEhSRF9JUEREUCA9IDc3NyA7CmNvbnN0IEFSUEhSRF9JUEdSRSA9IDc3OCA7CmNvbnN0IEFSUEhSRF9JUkRBID0gNzgzIDsKY29uc3QgQVJQSFJEX0xBUEIgPSA1MTYgOwpjb25zdCBBUlBIUkRfTE9DQUxUTEsgPSA3NzMgOwpjb25zdCBBUlBIUkRfTE9PUEJBQ0sgPSA3NzIgOwpjb25zdCBBUlBIUkRfTUVUUklDT00gPSAyMyA7CmNvbnN0IEFSUEhSRF9ORVRST00gPSAwIDsKY29uc3QgQVJQSFJEX05PTkUgPSA2NTUzNCA7CmNvbnN0IEFSUEhSRF9QSU1SRUcgPSA3NzkgOwpjb25zdCBBUlBIUkRfUFBQID0gNTEyIDsKY29uc3QgQVJQSFJEX1BST05FVCA9IDQgOwpjb25zdCBBUlBIUkRfUkFXSERMQyA9IDUxOCA7CmNvbnN0IEFSUEhSRF9ST1NFID0gMjcwIDsKY29uc3QgQVJQSFJEX1JTUlZEID0gMjYwIDsKY29uc3QgQVJQSFJEX1NJVCA9IDc3NiA7CmNvbnN0IEFSUEhSRF9TS0lQID0gNzcxIDsKY29uc3QgQVJQSFJEX1NMSVAgPSAyNTYgOwpjb25zdCBBUlBIUkRfU0xJUDYgPSAyNTggOwpjb25zdCBBUlBIUkRfVFVOTkVMID0gNzY4IDsKY29uc3QgQVJQSFJEX1RVTk5FTDYgPSA3NjkgOwpjb25zdCBBUlBIUkRfVk9JRCA9IDY1NTM1IDsKY29uc3QgQVJQSFJEX1gyNSA9IDI3MSA7CmZ1bmMgQWNjZXB0IChmZCA8dHlwZSAtMTE+KSAobmZkIDx0eXBlIC0xMT4sIHNhIDx0eXBlIDEgIlNvY2thZGRyIiA8dHlwZSAyIGludGVyZmFjZSB7IC5zeXNjYWxsLnNvY2thZGRyICgpIChwdHIgPHR5cGUgMyAqPHR5cGUgNCAiUmF3U29ja2FkZHJBbnkiIDx0eXBlIDUgc3RydWN0IHsgQWRkciA8dHlwZSA2ICJSYXdTb2NrYWRkciIgPHR5cGUgNyBzdHJ1Y3QgeyBGYW1pbHkgPHR5cGUgLTY+OyBEYXRhIDx0eXBlIDggWzE0IF0gPHR5cGUgLTE+PjsgfT4+OyBQYWQgPHR5cGUgOSBbOTYgXSA8dHlwZSAtMT4+OyB9Pj4+LCBsZW4gPHR5cGUgMTAgIlNvY2tsZW5fdCIgPHR5cGUgMTEgIi5zeXNjYWxsLl9zb2NrbGVuX3QiIDx0eXBlIC03Pj4+LCBlcnIgPHR5cGUgLTE5Pik7IH0+PiwgZXJyIDx0eXBlIC0xOT4pOwpmdW5jIEFjY2VwdDQgKGZkIDx0eXBlIC0xMT4sIGZsYWdzIDx0eXBlIC0xMT4pIChuZmQgPHR5cGUgLTExPiwgc2EgPHR5cGUgMT4sIGVyciA8dHlwZSAtMTk+KTsKZnVuYyBBY2Nlc3MgKHBhdGggPHR5cGUgLTE2PiwgbW9kZSA8dHlwZSAtNz4pIChlcnIgPHR5cGUgLTE5Pik7CmZ1bmMgQWNjdCAocGF0aCA8dHlwZSAtMTY+KSAoZXJyIDx0eXBlIC0xOT4pOwp0eXBlIDx0eXBlIDEyICJBZGRyaW5mbyIgPHR5cGUgMTMgc3RydWN0IHsgQWlfZmxhZ3MgPHR5cGUgLTM+OyBBaV9mYW1pbHkgPHR5cGUgLTM+OyBBaV9zb2NrdHlwZSA8dHlwZSAtMz47IEFpX3Byb3RvY29sIDx0eXBlIC0zPjsgQWlfYWRkcmxlbiA8dHlwZSAtNz47IEFpX2FkZHIgPHR5cGUgMTQgKjx0eXBlIDE1ICIuc3lzY2FsbC5fc29ja2FkZHIiIDx0eXBlIDE2IHN0cnVjdCB7IC5zeXNjYWxsLnNhX2ZhbWlseSA8dHlwZSAtNj47IC5zeXNjYWxsLnNhX2RhdGEgPHR5cGUgMTcgWzE0IF0gPHR5cGUgLTE+PjsgfT4+PjsgQWlfY2Fub25uYW1lIDx0eXBlIDE4ICo8dHlwZSAtMT4+OyBBaV9uZXh0IDx0eXBlIDE5ICo8dHlwZSAxMj4+OyB9Pj47CmZ1bmMgQWRqdGltZXggKGJ1ZiA8dHlwZSAyMCAqPHR5cGUgMjEgIlRpbWV4IiA8dHlwZSAyMiBzdHJ1Y3QgeyBNb2RlcyA8dHlwZSAtNz47IE9mZnNldCA8dHlwZSAtMz47IEZyZXEgPHR5cGUgLTM+OyBNYXhlcnJvciA8dHlwZSAtMz47IEVzdGVycm9yIDx0eXBlIC0zPjsgU3RhdHVzIDx0eXBlIC0zPjsgQ29uc3RhbnQgPHR5cGUgLTM+OyBQcmVjaXNpb24gPHR5cGUgLTM+OyBUb2xlcmFuY2UgPHR5cGUgLTM+OyBUaW1lIDx0eXBlIDIzICJUaW1ldmFsIiA8dHlwZSAyNCBzdHJ1Y3QgeyBTZWMgPHR5cGUgMjUgIlRpbWV2YWxfc2VjX3QiIDx0eXBlIC0zPj47IFVzZWMgPHR5cGUgMjYgIlRpbWV2YWxfdXNlY190IiA8dHlwZSAtMz4+OyB9PgogZnVuYyAodHYgPHR5cGUgMjcgKjx0eXBlIDIzPj4pIFVuaXggKCkgKHNlYyA8dHlwZSAtND4sIG5zZWMgPHR5cGUgLTQ+KTsKIGZ1bmMgKHR2IDx0eXBlIDI4ICo8dHlwZSAyMz4+KSBOYW5vICgpIDx0eXBlIC00PjsKPjsgVGljayA8dHlwZSAtMz47IFBwc2ZyZXEgPHR5cGUgLTM+OyBKaXR0ZXIgPHR5cGUgLTM+OyBTaGlmdCA8dHlwZSAtMz47IFN0YWJpbCA8dHlwZSAtMz47IEppdGNudCA8dHlwZSAtMz47IENhbGNudCA8dHlwZSAtMz47IEVycmNudCA8dHlwZSAtMz47IFN0YmNudCA8dHlwZSAtMz47IEdvZHVtcF8wIDx0eXBlIC0zPjsgR29kdW1wXzEgPHR5cGUgLTM+OyBHb2R1bXBfMiA8dHlwZSAtMz47IEdvZHVtcF8zIDx0eXBlIC0zPjsgR29kdW1wXzQgPHR5cGUgLTM+OyBHb2R1bXBfNSA8dHlwZSAtMz47IEdvZHVtcF82IDx0eXBlIC0zPjsgR29kdW1wXzcgPHR5cGUgLTM+OyBHb2R1bXBfOCA8dHlwZSAtMz47IEdvZHVtcF85IDx0eXBlIC0zPjsgR29kdW1wXzEwIDx0eXBlIC0zPjsgR29kdW1wXzExIDx0eXBlIC0zPjsgfT4+PikgKHN0YXRlIDx0eXBlIC0xMT4sIGVyciA8dHlwZSAtMTk+KTsKZnVuYyBBdHRhY2hMc2YgKGZkIDx0eXBlIC0xMT4sIGkgPHR5cGUgMjkgW10gPHR5cGUgMzAgIlNvY2tGaWx0ZXIiIDx0eXBlIDMxIHN0cnVjdCB7IENvZGUgPHR5cGUgLTY+OyBKdCA8dHlwZSAtNT47IEpmIDx0eXBlIC01PjsgSyA8dHlwZSAtNz47IH0+Pj4pIDx0eXBlIC0xOT47CmNvbnN0IEIwID0gMCA7CmNvbnN0IEIxMDAwMDAwID0gNDEwNCA7CmNvbnN0IEIxMTAgPSAzIDsKY29uc3QgQjExNTIwMCA9IDQwOTggOwpjb25zdCBCMTE1MjAwMCA9IDQxMDUgOwpjb25zdCBCMTIwMCA9IDkgOwpjb25zdCBCMTM0ID0gNCA7CmNvbnN0IEIxNTAgPSA1IDsKY29uc3QgQjE1MDAwMDAgPSA0MTA2IDsKY29uc3QgQjE4MDAgPSAxMCA7CmNvbnN0IEIxOTIwMCA9IDE0IDsKY29uc3QgQjIwMCA9IDYgOwpjb25zdCBCMjAwMDAwMCA9IDQxMDcgOwpjb25zdCBCMjMwNDAwID0gNDA5OSA7CmNvbnN0IEIyNDAwID0gMTEgOwpjb25zdCBCMjUwMDAwMCA9IDQxMDggOwpjb25zdCBCMzAwID0gNyA7CmNvbnN0IEIzMDAwMDAwID0gNDEwOSA7CmNvbnN0IEIzNTAwMDAwID0gNDExMCA7CmNvbnN0IEIzODQwMCA9IDE1IDsKY29uc3QgQjQwMDAwMDAgPSA0MTExIDsKY29uc3QgQjQ2MDgwMCA9IDQxMDAgOwpjb25zdCBCNDgwMCA9IDEyIDsKY29uc3QgQjUwID0gMSA7CmNvbnN0IEI1MDAwMDAgPSA0MTAxIDsKY29uc3QgQjU3NjAwID0gNDA5NyA7CmNvbnN0IEI1NzYwMDAgPSA0MTAyIDsKY29uc3QgQjYwMCA9IDggOwpjb25zdCBCNzUgPSAyIDsKY29uc3QgQjkyMTYwMCA9IDQxMDMgOwpjb25zdCBCOTYwMCA9IDEzIDsKY29uc3QgQlBGX0EgPSAxNiA7CmNvbnN0IEJQRl9BQlMgPSAzMiA7CmNvbnN0IEJQRl9BREQgPSAwIDsKY29uc3QgQlBGX0FMVSA9IDQgOwpjb25zdCBCUEZfQU5EID0gODAgOwpjb25zdCBCUEZfQiA9IDE2IDsKY29uc3QgQlBGX0RJViA9IDQ4IDsKY29uc3QgQlBGX0ggPSA4IDsKY29uc3QgQlBGX0lNTSA9IDAgOwpjb25zdCBCUEZfSU5EID0gNjQgOwpjb25zdCBCUEZfSkEgPSAwIDsKY29uc3QgQlBGX0pFUSA9IDE2IDsKY29uc3QgQlBGX0pHRSA9IDQ4IDsKY29uc3QgQlBGX0pHVCA9IDMyIDsKY29uc3QgQlBGX0pNUCA9IDUgOwpjb25zdCBCUEZfSlNFVCA9IDY0IDsKY29uc3QgQlBGX0sgPSAwIDsKY29uc3QgQlBGX0xEID0gMCA7CmNvbnN0IEJQRl9MRFggPSAxIDsKY29uc3QgQlBGX0xFTiA9IDEyOCA7CmNvbnN0IEJQRl9MU0ggPSA5NiA7CmNvbnN0IEJQRl9NQUpPUl9WRVJTSU9OID0gMSA7CmNvbnN0IEJQRl9NQVhJTlNOUyA9IDQwOTYgOwpjb25zdCBCUEZfTUVNID0gOTYgOwpjb25zdCBCUEZfTUVNV09SRFMgPSAxNiA7CmNvbnN0IEJQRl9NSU5PUl9WRVJTSU9OID0gMSA7CmNvbnN0IEJQRl9NSVNDID0gNyA7CmNvbnN0IEJQRl9NU0ggPSAxNjAgOwpjb25zdCBCUEZfTVVMID0gMzIgOwpjb25zdCBCUEZfTkVHID0gMTI4IDsKY29uc3QgQlBGX09SID0gNjQgOwpjb25zdCBCUEZfUkVUID0gNiA7CmNvbnN0IEJQRl9SU0ggPSAxMTIgOwpjb25zdCBCUEZfU1QgPSAyIDsKY29uc3QgQlBGX1NUWCA9IDMgOwpjb25zdCBCUEZfU1VCID0gMTYgOwpjb25zdCBCUEZfVEFYID0gMCA7CmNvbnN0IEJQRl9UWEEgPSAxMjggOwpjb25zdCBCUEZfVyA9IDAgOwpjb25zdCBCUEZfWCA9IDggOwpjb25zdCBCUktJTlQgPSAyIDsKY29uc3QgQlNETFkgPSA4MTkyIDsKZnVuYyBCaW5kIChmZCA8dHlwZSAtMTE+LCBzYSA8dHlwZSAxPikgKGVyciA8dHlwZSAtMTk+KTsKZnVuYyBCaW5kVG9EZXZpY2UgKGZkIDx0eXBlIC0xMT4sIGRldmljZSA8dHlwZSAtMTY+KSAoZXJyIDx0eXBlIC0xOT4pOwpmdW5jIEJ5dGVQdHJGcm9tU3RyaW5nIChzIDx0eXBlIC0xNj4pICg/IDx0eXBlIDMyICo8dHlwZSAtMjA+PiwgPyA8dHlwZSAtMTk+KTsKZnVuYyBCeXRlU2xpY2VGcm9tU3RyaW5nIChzIDx0eXBlIC0xNj4pICg/IDx0eXBlIDMzIFtdIDx0eXBlIC0yMD4+LCA/IDx0eXBlIC0xOT4pOwpjb25zdCBDQkFVRCA9IDQxMTEgOwpjb25zdCBDQkFVREVYID0gNDA5NiA7CmNvbnN0IENJQkFVRCA9IDI2OTQxODQ5NiA7CmNvbnN0IENMT0NBTCA9IDIwNDggOwpjb25zdCBDTE9ORV9DSElMRF9DTEVBUlRJRCA9IDIwOTcxNTIgOwpjb25zdCBDTE9ORV9DSElMRF9TRVRUSUQgPSAxNjc3NzIxNiA7CmNvbnN0IENMT05FX0RFVEFDSEVEID0gNDE5NDMwNCA7CmNvbnN0IENMT05FX0ZJTEVTID0gMTAyNCA7CmNvbnN0IENMT05FX0ZTID0gNTEyIDsKY29uc3QgQ0xPTkVfSU8gPSAyMTQ3NDgzNjQ4IDsKY29uc3QgQ0xPTkVfTkVXSVBDID0gMTM0MjE3NzI4IDsKY29uc3QgQ0xPTkVfTkVXTkVUID0gMTA3Mzc0MTgyNCA7CmNvbnN0IENMT05FX05FV05TID0gMTMxMDcyIDsKY29uc3QgQ0xPTkVfTkVXUElEID0gNTM2ODcwOTEyIDsKY29uc3QgQ0xPTkVfTkVXVVNFUiA9IDI2ODQzNTQ1NiA7CmNvbnN0IENMT05FX05FV1VUUyA9IDY3MTA4ODY0IDsKY29uc3QgQ0xPTkVfUEFSRU5UID0gMzI3NjggOwpjb25zdCBDTE9ORV9QQVJFTlRfU0VUVElEID0gMTA0ODU3NiA7CmNvbnN0IENMT05FX1BUUkFDRSA9IDgxOTIgOwpjb25zdCBDTE9ORV9TRVRUTFMgPSA1MjQyODggOwpjb25zdCBDTE9ORV9TSUdIQU5EID0gMjA0OCA7CmNvbnN0IENMT05FX1NZU1ZTRU0gPSAyNjIxNDQgOwpjb25zdCBDTE9ORV9USFJFQUQgPSA2NTUzNiA7CmNvbnN0IENMT05FX1VOVFJBQ0VEID0gODM4ODYwOCA7CmNvbnN0IENMT05FX1ZGT1JLID0gMTYzODQgOwpjb25zdCBDTE9ORV9WTSA9IDI1NiA7CmNvbnN0IENSMCA9IDAgOwpjb25zdCBDUjEgPSA1MTIgOwpjb25zdCBDUjIgPSAxMDI0IDsKY29uc3QgQ1IzID0gMTUzNiA7CmNvbnN0IENSRExZID0gMTUzNiA7CmNvbnN0IENSRUFEID0gMTI4IDsKY29uc3QgQ1JUU0NUUyA9IDIxNDc0ODM2NDggOwpjb25zdCBDUzUgPSAwIDsKY29uc3QgQ1M2ID0gMTYgOwpjb25zdCBDUzcgPSAzMiA7CmNvbnN0IENTOCA9IDQ4IDsKY29uc3QgQ1NJWkUgPSA0OCA7CmNvbnN0IENTVE9QQiA9IDY0IDsKZnVuYyBDZ29jYWxsICgpOwpmdW5jIENnb2NhbGxCYWNrICgpOwpmdW5jIENnb2NhbGxCYWNrRG9uZSAoKTsKZnVuYyBDZ29jYWxsRG9uZSAoKTsKZnVuYyBDaGRpciAocGF0aCA8dHlwZSAtMTY+KSAoZXJyIDx0eXBlIC0xOT4pOwpmdW5jIENobW9kIChwYXRoIDx0eXBlIC0xNj4sIG1vZGUgPHR5cGUgLTc+KSAoZXJyIDx0eXBlIC0xOT4pOwpmdW5jIENob3duIChwYXRoIDx0eXBlIC0xNj4sIHVpZCA8dHlwZSAtMTE+LCBnaWQgPHR5cGUgLTExPikgKGVyciA8dHlwZSAtMTk+KTsKZnVuYyBDaHJvb3QgKHBhdGggPHR5cGUgLTE2PikgKGVyciA8dHlwZSAtMTk+KTsKZnVuYyBDbGVhcmVudiAoKTsKZnVuYyBDbG9zZSAoZmQgPHR5cGUgLTExPikgKGVyciA8dHlwZSAtMTk+KTsKZnVuYyBDbG9zZU9uRXhlYyAoZmQgPHR5cGUgLTExPik7CmZ1bmMgQ21zZ0xlbiAoZGF0YWxlbiA8dHlwZSAtMTE+KSA8dHlwZSAtMTE+OwpmdW5jIENtc2dTcGFjZSAoZGF0YWxlbiA8dHlwZSAtMTE+KSA8dHlwZSAtMTE+Owp0eXBlIDx0eXBlIDM0ICJDbXNnaGRyIiA8dHlwZSAzNSBzdHJ1Y3QgeyBMZW4gPHR5cGUgMzYgIkNtc2doZHJfbGVuX3QiIDx0eXBlIC03Pj47IExldmVsIDx0eXBlIC0zPjsgVHlwZSA8dHlwZSAtMz47IC5zeXNjYWxsLl9fY21zZ19kYXRhIDx0eXBlIDM3IFswIF0gPHR5cGUgLTU+PjsgfT4KIGZ1bmMgKGNtc2cgPHR5cGUgMzggKjx0eXBlIDM0Pj4pIFNldExlbiAobGVuZ3RoIDx0eXBlIC0xMT4pOwo+Owp0eXBlIDx0eXBlIDM2PjsKZnVuYyBDb25uZWN0IChmZCA8dHlwZSAtMTE+LCBzYSA8dHlwZSAxPikgKGVyciA8dHlwZSAtMTk+KTsKZnVuYyBDcmVhdCAocGF0aCA8dHlwZSAtMTY+LCBtb2RlIDx0eXBlIC03PikgKGZkIDx0eXBlIC0xMT4sIGVyciA8dHlwZSAtMTk+KTsKdHlwZSA8dHlwZSAzOSAiQ3JlZGVudGlhbCIgPHR5cGUgNDAgc3RydWN0IHsgVWlkIDx0eXBlIC03PjsgR2lkIDx0eXBlIC03PjsgR3JvdXBzIDx0eXBlIDQxIFtdIDx0eXBlIC03Pj47IH0+PjsKdHlwZSA8dHlwZSA0MiAiRElSIiA8dHlwZSA0MyAiLnN5c2NhbGwuX0RJUiIgPHR5cGUgNDQgc3RydWN0IHsgfT4+PjsKY29uc3QgRFRfQkxLID0gNiA7CmNvbnN0IERUX0NIUiA9IDIgOwpjb25zdCBEVF9ESVIgPSA0IDsKY29uc3QgRFRfRklGTyA9IDEgOwpjb25zdCBEVF9MTksgPSAxMCA7CmNvbnN0IERUX1JFRyA9IDggOwpjb25zdCBEVF9TT0NLID0gMTIgOwpjb25zdCBEVF9VTktOT1dOID0gMCA7CmNvbnN0IERUX1dIVCA9IDE0IDsKZnVuYyBEZXRhY2hMc2YgKGZkIDx0eXBlIC0xMT4pIDx0eXBlIC0xOT47CnR5cGUgPHR5cGUgNDUgIkRpcmVudCIgPHR5cGUgNDYgc3RydWN0IHsgSW5vIDx0eXBlIC04PjsgT2ZmIDx0eXBlIC00PjsgUmVjbGVuIDx0eXBlIC02PjsgVHlwZSA8dHlwZSAtNT47IE5hbWUgPHR5cGUgNDcgWzI1NiBdIDx0eXBlIC0yMD4+OyB9Pj47CmZ1bmMgRHVwIChvbGRmZCA8dHlwZSAtMTE+KSAoZmQgPHR5cGUgLTExPiwgZXJyIDx0eXBlIC0xOT4pOwpmdW5jIER1cDIgKG9sZGZkIDx0eXBlIC0xMT4sIG5ld2ZkIDx0eXBlIC0xMT4pIChlcnIgPHR5cGUgLTE5Pik7CmZ1bmMgRHVwMyAob2xkZmQgPHR5cGUgLTExPiwgbmV3ZmQgPHR5cGUgLTExPiwgZmxhZ3MgPHR5cGUgLTExPikgKGVyciA8dHlwZSAtMTk+KTsKY29uc3QgRTJCSUcgPHR5cGUgNDggIkVycm5vIiA8dHlwZSAtMTM+CiBmdW5jIChlIDx0eXBlIDQ4PikgRXJyb3IgKCkgPHR5cGUgLTE2PjsKIGZ1bmMgKGUgPHR5cGUgNDg+KSBUZW1wb3JhcnkgKCkgPHR5cGUgLTE1PjsKIGZ1bmMgKGUgPHR5cGUgNDg+KSBUaW1lb3V0ICgpIDx0eXBlIC0xNT47Cj4gPSA3IDsKY29uc3QgRUFDQ0VTIDx0eXBlIDQ4PiA9IDEzIDsKY29uc3QgRUFERFJJTlVTRSA8dHlwZSA0OD4gPSAxMjUgOwpjb25zdCBFQUREUk5PVEFWQUlMIDx0eXBlIDQ4PiA9IDEyNiA7CmNvbnN0IEVBRFYgPHR5cGUgNDg+ID0gNjggOwpjb25zdCBFQUZOT1NVUFBPUlQgPHR5cGUgNDg+ID0gMTI0IDsKY29uc3QgRUFHQUlOIDx0eXBlIDQ4PiA9IDExIDsKY29uc3QgRUFJX0FERFJGQU1JTFkgPSAtOSA7CmNvbnN0IEVBSV9BR0FJTiA9IC0zIDsKY29uc3QgRUFJX0FMTERPTkUgPSAtMTAzIDsKY29uc3QgRUFJX0JBREZMQUdTID0gLTEgOwpjb25zdCBFQUlfQ0FOQ0VMRUQgPSAtMTAxIDsKY29uc3QgRUFJX0ZBSUwgPSAtNCA7CmNvbnN0IEVBSV9GQU1JTFkgPSAtNiA7CmNvbnN0IEVBSV9JTlBST0dSRVNTID0gLTEwMCA7CmNvbnN0IEVBSV9JTlRSID0gLTEwNCA7CmNvbnN0IEVBSV9NRU1PUlkgPSAtMTAgOwpjb25zdCBFQUlfTk9EQVRBID0gLTUgOwpjb25zdCBFQUlfTk9OQU1FID0gLTIgOwpjb25zdCBFQUlfTk9UQ0FOQ0VMRUQgPSAtMTAyIDsKY29uc3QgRUFJX09WRVJGTE9XID0gLTEyIDsKY29uc3QgRUFJX1NFUlZJQ0UgPSAtOCA7CmNvbnN0IEVBSV9TT0NLVFlQRSA9IC03IDsKY29uc3QgRUFJX1NZU1RFTSA9IC0xMSA7CmNvbnN0IEVBTFJFQURZIDx0eXBlIDQ4PiA9IDE0OSA7CmNvbnN0IEVCQURFIDx0eXBlIDQ4PiA9IDUwIDsKY29uc3QgRUJBREYgPHR5cGUgNDg+ID0gOSA7CmNvbnN0IEVCQURGRCA8dHlwZSA0OD4gPSA4MSA7CmNvbnN0IEVCQURNU0cgPHR5cGUgNDg+ID0gNzcgOwpjb25zdCBFQkFEUiA8dHlwZSA0OD4gPSA1MSA7CmNvbnN0IEVCQURSUUMgPHR5cGUgNDg+ID0gNTQgOwpjb25zdCBFQkFEU0xUIDx0eXBlIDQ4PiA9IDU1IDsKY29uc3QgRUJGT05UIDx0eXBlIDQ4PiA9IDU5IDsKY29uc3QgRUJVU1kgPHR5cGUgNDg+ID0gMTYgOwpjb25zdCBFQ0FOQ0VMRUQgPHR5cGUgNDg+ID0gMTU4IDsKY29uc3QgRUNISUxEIDx0eXBlIDQ4PiA9IDEwIDsKY29uc3QgRUNITyA9IDggOwpjb25zdCBFQ0hPQ1RMID0gNTEyIDsKY29uc3QgRUNIT0UgPSAxNiA7CmNvbnN0IEVDSE9LID0gMzIgOwpjb25zdCBFQ0hPS0UgPSAyMDQ4IDsKY29uc3QgRUNIT05MID0gNjQgOwpjb25zdCBFQ0hPUFJUID0gMTAyNCA7CmNvbnN0IEVDSFJORyA8dHlwZSA0OD4gPSAzNyA7CmNvbnN0IEVDT01NIDx0eXBlIDQ4PiA9IDcwIDsKY29uc3QgRUNPTk5BQk9SVEVEIDx0eXBlIDQ4PiA9IDEzMCA7CmNvbnN0IEVDT05OUkVGVVNFRCA8dHlwZSA0OD4gPSAxNDYgOwpjb25zdCBFQ09OTlJFU0VUIDx0eXBlIDQ4PiA9IDEzMSA7CmNvbnN0IEVERUFETEsgPHR5cGUgNDg+ID0gNDUgOwpjb25zdCBFREVBRExPQ0sgPHR5cGUgNDg+ID0gNTYgOwpjb25zdCBFREVTVEFERFJSRVEgPHR5cGUgNDg+ID0gOTYgOwpjb25zdCBFRE9NIDx0eXBlIDQ4PiA9IDMzIDsKY29uc3QgRURPVERPVCA8dHlwZSA0OD4gPSA3MyA7CmNvbnN0IEVEUVVPVCA8dHlwZSA0OD4gPSAxMTMzIDsKY29uc3QgRUVYSVNUIDx0eXBlIDQ4PiA9IDE3IDsKY29uc3QgRUZBVUxUIDx0eXBlIDQ4PiA9IDE0IDsKY29uc3QgRUZCSUcgPHR5cGUgNDg+ID0gMjcgOwpjb25zdCBFSE9TVERPV04gPHR5cGUgNDg+ID0gMTQ3IDsKY29uc3QgRUhPU1RVTlJFQUNIIDx0eXBlIDQ4PiA9IDE0OCA7CmNvbnN0IEVIV1BPSVNPTiA8dHlwZSA0OD4gPSAxNjggOwpjb25zdCBFSURSTSA8dHlwZSA0OD4gPSAzNiA7CmNvbnN0IEVJTFNFUSA8dHlwZSA0OD4gPSA4OCA7CmNvbnN0IEVJTklUIDx0eXBlIDQ4PiA9IDE0MSA7CmNvbnN0IEVJTlBST0dSRVNTIDx0eXBlIDQ4PiA9IDE1MCA7CmNvbnN0IEVJTlRSIDx0eXBlIDQ4PiA9IDQgOwpjb25zdCBFSU5WQUwgPHR5cGUgNDg+ID0gMjIgOwpjb25zdCBFSU8gPHR5cGUgNDg+ID0gNSA7CmNvbnN0IEVJU0NPTk4gPHR5cGUgNDg+ID0gMTMzIDsKY29uc3QgRUlTRElSIDx0eXBlIDQ4PiA9IDIxIDsKY29uc3QgRUlTTkFNIDx0eXBlIDQ4PiA9IDEzOSA7CmNvbnN0IEVLRVlFWFBJUkVEIDx0eXBlIDQ4PiA9IDE2MiA7CmNvbnN0IEVLRVlSRUpFQ1RFRCA8dHlwZSA0OD4gPSAxNjQgOwpjb25zdCBFS0VZUkVWT0tFRCA8dHlwZSA0OD4gPSAxNjMgOwpjb25zdCBFTDJITFQgPHR5cGUgNDg+ID0gNDQgOwpjb25zdCBFTDJOU1lOQyA8dHlwZSA0OD4gPSAzOCA7CmNvbnN0IEVMM0hMVCA8dHlwZSA0OD4gPSAzOSA7CmNvbnN0IEVMM1JTVCA8dHlwZSA0OD4gPSA0MCA7CmNvbnN0IEVMSUJBQ0MgPHR5cGUgNDg+ID0gODMgOwpjb25zdCBFTElCQkFEIDx0eXBlIDQ4PiA9IDg0IDsKY29uc3QgRUxJQkVYRUMgPHR5cGUgNDg+ID0gODcgOwpjb25zdCBFTElCTUFYIDx0eXBlIDQ4PiA9IDg2IDsKY29uc3QgRUxJQlNDTiA8dHlwZSA0OD4gPSA4NSA7CmNvbnN0IEVMTlJORyA8dHlwZSA0OD4gPSA0MSA7CmNvbnN0IEVMT09QIDx0eXBlIDQ4PiA9IDkwIDsKY29uc3QgRU1FRElVTVRZUEUgPHR5cGUgNDg+ID0gMTYwIDsKY29uc3QgRU1GSUxFIDx0eXBlIDQ4PiA9IDI0IDsKY29uc3QgRU1MSU5LIDx0eXBlIDQ4PiA9IDMxIDsKY29uc3QgRU1TR1NJWkUgPHR5cGUgNDg+ID0gOTcgOwpjb25zdCBFTVVMVElIT1AgPHR5cGUgNDg+ID0gNzQgOwpjb25zdCBFTkFNRVRPT0xPTkcgPHR5cGUgNDg+ID0gNzggOwpjb25zdCBFTkFWQUlMIDx0eXBlIDQ4PiA9IDEzOCA7CmNvbnN0IEVORVRET1dOIDx0eXBlIDQ4PiA9IDEyNyA7CmNvbnN0IEVORVRSRVNFVCA8dHlwZSA0OD4gPSAxMjkgOwpjb25zdCBFTkVUVU5SRUFDSCA8dHlwZSA0OD4gPSAxMjggOwpjb25zdCBFTkZJTEUgPHR5cGUgNDg+ID0gMjMgOwpjb25zdCBFTk9BTk8gPHR5cGUgNDg+ID0gNTMgOwpjb25zdCBFTk9CVUZTIDx0eXBlIDQ4PiA9IDEzMiA7CmNvbnN0IEVOT0NTSSA8dHlwZSA0OD4gPSA0MyA7CmNvbnN0IEVOT0RBVEEgPHR5cGUgNDg+ID0gNjEgOwpjb25zdCBFTk9ERVYgPHR5cGUgNDg+ID0gMTkgOwpjb25zdCBFTk9FTlQgPHR5cGUgNDg+ID0gMiA7CmNvbnN0IEVOT0VYRUMgPHR5cGUgNDg+ID0gOCA7CmNvbnN0IEVOT0tFWSA8dHlwZSA0OD4gPSAxNjEgOwpjb25zdCBFTk9MQ0sgPHR5cGUgNDg+ID0gNDYgOwpjb25zdCBFTk9MSU5LIDx0eXBlIDQ4PiA9IDY3IDsKY29uc3QgRU5PTUVESVVNIDx0eXBlIDQ4PiA9IDE1OSA7CmNvbnN0IEVOT01FTSA8dHlwZSA0OD4gPSAxMiA7CmNvbnN0IEVOT01TRyA8dHlwZSA0OD4gPSAzNSA7CmNvbnN0IEVOT05FVCA8dHlwZSA0OD4gPSA2NCA7CmNvbnN0IEVOT1BLRyA8dHlwZSA0OD4gPSA2NSA7CmNvbnN0IEVOT1BST1RPT1BUIDx0eXBlIDQ4PiA9IDk5IDsKY29uc3QgRU5PU1BDIDx0eXBlIDQ4PiA9IDI4IDsKY29uc3QgRU5PU1IgPHR5cGUgNDg+ID0gNjMgOwpjb25zdCBFTk9TVFIgPHR5cGUgNDg+ID0gNjAgOwpjb25zdCBFTk9TWVMgPHR5cGUgNDg+ID0gODkgOwpjb25zdCBFTk9UQkxLIDx0eXBlIDQ4PiA9IDE1IDsKY29uc3QgRU5PVENPTk4gPHR5cGUgNDg+ID0gMTM0IDsKY29uc3QgRU5PVERJUiA8dHlwZSA0OD4gPSAyMCA7CmNvbnN0IEVOT1RFTVBUWSA8dHlwZSA0OD4gPSA5MyA7CmNvbnN0IEVOT1ROQU0gPHR5cGUgNDg+ID0gMTM3IDsKY29uc3QgRU5PVFJFQ09WRVJBQkxFIDx0eXBlIDQ4PiA9IDE2NiA7CmNvbnN0IEVOT1RTT0NLIDx0eXBlIDQ4PiA9IDk1IDsKY29uc3QgRU5PVFNVUCA8dHlwZSA0OD4gPSAxMjIgOwpjb25zdCBFTk9UVFkgPHR5cGUgNDg+ID0gMjUgOwpjb25zdCBFTk9UVU5JUSA8dHlwZSA0OD4gPSA4MCA7CmNvbnN0IEVOWElPIDx0eXBlIDQ4PiA9IDYgOwpjb25zdCBFT1BOT1RTVVBQIDx0eXBlIDQ4PiA9IDEyMiA7CmNvbnN0IEVPVkVSRkxPVyA8dHlwZSA0OD4gPSA3OSA7CmNvbnN0IEVPV05FUkRFQUQgPHR5cGUgNDg+ID0gMTY1IDsKY29uc3QgRVBFUk0gPHR5cGUgNDg+ID0gMSA7CmNvbnN0IEVQRk5PU1VQUE9SVCA8dHlwZSA0OD4gPSAxMjMgOwpjb25zdCBFUElQRSA8dHlwZSA0OD4gPSAzMiA7CmNvbnN0IEVQT0xMRVJSID0gOCA7CmNvbnN0IEVQT0xMRVQgPSAyMTQ3NDgzNjQ4IDsKY29uc3QgRVBPTExIVVAgPSAxNiA7CmNvbnN0IEVQT0xMSU4gPSAxIDsKY29uc3QgRVBPTExNU0cgPSAxMDI0IDsKY29uc3QgRVBPTExPTkVTSE9UID0gMTA3Mzc0MTgyNCA7CmNvbnN0IEVQT0xMT1VUID0gNCA7CmNvbnN0IEVQT0xMUFJJID0gMiA7CmNvbnN0IEVQT0xMUkRCQU5EID0gMTI4IDsKY29uc3QgRVBPTExSREhVUCA9IDgxOTIgOwpjb25zdCBFUE9MTFJETk9STSA9IDY0IDsKY29uc3QgRVBPTExXUkJBTkQgPSA1MTIgOwpjb25zdCBFUE9MTFdSTk9STSA9IDI1NiA7CmNvbnN0IEVQT0xMX0NMT0VYRUMgPSA1MjQyODggOwpjb25zdCBFUE9MTF9DVExfQUREID0gMSA7CmNvbnN0IEVQT0xMX0NUTF9ERUwgPSAyIDsKY29uc3QgRVBPTExfQ1RMX01PRCA9IDMgOwpjb25zdCBFUE9MTF9OT05CTE9DSyA9IDEyOCA7CmNvbnN0IEVQUk9UTyA8dHlwZSA0OD4gPSA3MSA7CmNvbnN0IEVQUk9UT05PU1VQUE9SVCA8dHlwZSA0OD4gPSAxMjAgOwpjb25zdCBFUFJPVE9UWVBFIDx0eXBlIDQ4PiA9IDk4IDsKY29uc3QgRVJBTkdFIDx0eXBlIDQ4PiA9IDM0IDsKY29uc3QgRVJFTUNIRyA8dHlwZSA0OD4gPSA4MiA7CmNvbnN0IEVSRU1ERVYgPHR5cGUgNDg+ID0gMTQyIDsKY29uc3QgRVJFTU9URSA8dHlwZSA0OD4gPSA2NiA7CmNvbnN0IEVSRU1PVEVJTyA8dHlwZSA0OD4gPSAxNDAgOwpjb25zdCBFUkVTVEFSVCA8dHlwZSA0OD4gPSA5MSA7CmNvbnN0IEVSRktJTEwgPHR5cGUgNDg+ID0gMTY3IDsKY29uc3QgRVJPRlMgPHR5cGUgNDg+ID0gMzAgOwpjb25zdCBFU0hVVERPV04gPHR5cGUgNDg+ID0gMTQzIDsKY29uc3QgRVNPQ0tUTk9TVVBQT1JUIDx0eXBlIDQ4PiA9IDEyMSA7CmNvbnN0IEVTUElQRSA8dHlwZSA0OD4gPSAyOSA7CmNvbnN0IEVTUkNIIDx0eXBlIDQ4PiA9IDMgOwpjb25zdCBFU1JNTlQgPHR5cGUgNDg+ID0gNjkgOwpjb25zdCBFU1RBTEUgPHR5cGUgNDg+ID0gMTUxIDsKY29uc3QgRVNUUlBJUEUgPHR5cGUgNDg+ID0gOTIgOwpjb25zdCBFVEhfQUxFTiA9IDYgOwpjb25zdCBFVEhfREFUQV9MRU4gPSAxNTAwIDsKY29uc3QgRVRIX0ZDU19MRU4gPSA0IDsKY29uc3QgRVRIX0ZSQU1FX0xFTiA9IDE1MTQgOwpjb25zdCBFVEhfSExFTiA9IDE0IDsKY29uc3QgRVRIX1BfMTU4OCA9IDM1MDYzIDsKY29uc3QgRVRIX1BfODAyMUFEID0gMzQ5ODQgOwpjb25zdCBFVEhfUF84MDIxQUggPSAzNTA0NyA7CmNvbnN0IEVUSF9QXzgwMjFRID0gMzMwMjQgOwpjb25zdCBFVEhfUF84MDJfMiA9IDQgOwpjb25zdCBFVEhfUF84MDJfMyA9IDEgOwpjb25zdCBFVEhfUF9BQVJQID0gMzMwMTEgOwpjb25zdCBFVEhfUF9BRl9JVUNWID0gNjQ1MDcgOwpjb25zdCBFVEhfUF9BTEwgPSAzIDsKY29uc3QgRVRIX1BfQU9FID0gMzQ5NzggOwpjb25zdCBFVEhfUF9BUkNORVQgPSAyNiA7CmNvbnN0IEVUSF9QX0FSUCA9IDIwNTQgOwpjb25zdCBFVEhfUF9BVEFMSyA9IDMyOTIzIDsKY29uc3QgRVRIX1BfQVRNRkFURSA9IDM0OTQ4IDsKY29uc3QgRVRIX1BfQVRNTVBPQSA9IDM0ODkyIDsKY29uc3QgRVRIX1BfQVgyNSA9IDIgOwpjb25zdCBFVEhfUF9CUFEgPSAyMzAzIDsKY29uc3QgRVRIX1BfQ0FJRiA9IDI0NyA7CmNvbnN0IEVUSF9QX0NBTiA9IDEyIDsKY29uc3QgRVRIX1BfQ09OVFJPTCA9IDIyIDsKY29uc3QgRVRIX1BfQ1VTVCA9IDI0NTgyIDsKY29uc3QgRVRIX1BfRERDTVAgPSA2IDsKY29uc3QgRVRIX1BfREVDID0gMjQ1NzYgOwpjb25zdCBFVEhfUF9ESUFHID0gMjQ1ODEgOwpjb25zdCBFVEhfUF9ETkFfREwgPSAyNDU3NyA7CmNvbnN0IEVUSF9QX0ROQV9SQyA9IDI0NTc4IDsKY29uc3QgRVRIX1BfRE5BX1JUID0gMjQ1NzkgOwpjb25zdCBFVEhfUF9EU0EgPSAyNyA7CmNvbnN0IEVUSF9QX0VDT05FVCA9IDI0IDsKY29uc3QgRVRIX1BfRURTQSA9IDU2MDI2IDsKY29uc3QgRVRIX1BfRkNPRSA9IDM1MDc4IDsKY29uc3QgRVRIX1BfRklQID0gMzUwOTIgOwpjb25zdCBFVEhfUF9IRExDID0gMjUgOwpjb25zdCBFVEhfUF9JRUVFODAyMTU0ID0gMjQ2IDsKY29uc3QgRVRIX1BfSUVFRVBVUCA9IDI1NjAgOwpjb25zdCBFVEhfUF9JRUVFUFVQQVQgPSAyNTYxIDsKY29uc3QgRVRIX1BfSVAgPSAyMDQ4IDsKY29uc3QgRVRIX1BfSVBWNiA9IDM0NTI1IDsKY29uc3QgRVRIX1BfSVBYID0gMzMwNzkgOwpjb25zdCBFVEhfUF9JUkRBID0gMjMgOwpjb25zdCBFVEhfUF9MQVQgPSAyNDU4MCA7CmNvbnN0IEVUSF9QX0xJTktfQ1RMID0gMzQ5MjQgOwpjb25zdCBFVEhfUF9MT0NBTFRBTEsgPSA5IDsKY29uc3QgRVRIX1BfTE9PUCA9IDk2IDsKY29uc3QgRVRIX1BfTU9CSVRFWCA9IDIxIDsKY29uc3QgRVRIX1BfTVBMU19NQyA9IDM0ODg4IDsKY29uc3QgRVRIX1BfTVBMU19VQyA9IDM0ODg3IDsKY29uc3QgRVRIX1BfUEFFID0gMzQ5NTggOwpjb25zdCBFVEhfUF9QQVVTRSA9IDM0ODI0IDsKY29uc3QgRVRIX1BfUEhPTkVUID0gMjQ1IDsKY29uc3QgRVRIX1BfUFBQVEFMSyA9IDE2IDsKY29uc3QgRVRIX1BfUFBQX0RJU0MgPSAzNDkxNSA7CmNvbnN0IEVUSF9QX1BQUF9NUCA9IDggOwpjb25zdCBFVEhfUF9QUFBfU0VTID0gMzQ5MTYgOwpjb25zdCBFVEhfUF9QVVAgPSA1MTIgOwpjb25zdCBFVEhfUF9QVVBBVCA9IDUxMyA7CmNvbnN0IEVUSF9QX1FJTlExID0gMzcxMjAgOwpjb25zdCBFVEhfUF9RSU5RMiA9IDM3Mzc2IDsKY29uc3QgRVRIX1BfUUlOUTMgPSAzNzYzMiA7CmNvbnN0IEVUSF9QX1JBUlAgPSAzMjgyMSA7CmNvbnN0IEVUSF9QX1NDQSA9IDI0NTgzIDsKY29uc3QgRVRIX1BfU0xPVyA9IDM0ODI1IDsKY29uc3QgRVRIX1BfU05BUCA9IDUgOwpjb25zdCBFVEhfUF9URExTID0gMzUwODUgOwpjb25zdCBFVEhfUF9URUIgPSAyNTk0NCA7CmNvbnN0IEVUSF9QX1RJUEMgPSAzNTAxOCA7CmNvbnN0IEVUSF9QX1RSQUlMRVIgPSAyOCA7CmNvbnN0IEVUSF9QX1RSXzgwMl8yID0gMTcgOwpjb25zdCBFVEhfUF9XQU5fUFBQID0gNyA7CmNvbnN0IEVUSF9QX1dDQ1AgPSAzNDg3OCA7CmNvbnN0IEVUSF9QX1gyNSA9IDIwNTMgOwpjb25zdCBFVEhfWkxFTiA9IDYwIDsKY29uc3QgRVRJTUUgPHR5cGUgNDg+ID0gNjIgOwpjb25zdCBFVElNRURPVVQgPHR5cGUgNDg+ID0gMTQ1IDsKY29uc3QgRVRPT01BTllSRUZTIDx0eXBlIDQ4PiA9IDE0NCA7CmNvbnN0IEVUWFRCU1kgPHR5cGUgNDg+ID0gMjYgOwpjb25zdCBFVUNMRUFOIDx0eXBlIDQ4PiA9IDEzNSA7CmNvbnN0IEVVTkFUQ0ggPHR5cGUgNDg+ID0gNDIgOwpjb25zdCBFVVNFUlMgPHR5cGUgNDg+ID0gOTQgOwpjb25zdCBFV09VTERCTE9DSyA8dHlwZSA0OD4gPSAxMSA7CmNvbnN0IEVYREVWIDx0eXBlIDQ4PiA9IDE4IDsKY29uc3QgRVhGVUxMIDx0eXBlIDQ4PiA9IDUyIDsKZnVuYyBFbnRlcnN5c2NhbGwgKCk7CmZ1bmMgRW52aXJvbiAoKSA8dHlwZSA0OSBbXSA8dHlwZSAtMTY+PjsKZnVuYyBFcG9sbENyZWF0ZSAoc2l6ZSA8dHlwZSAtMTE+KSAoZmQgPHR5cGUgLTExPiwgZXJyIDx0eXBlIC0xOT4pOwpmdW5jIEVwb2xsQ3JlYXRlMSAoZmxhZ3MgPHR5cGUgLTExPikgKGZkIDx0eXBlIC0xMT4sIGVyciA8dHlwZSAtMTk+KTsKZnVuYyBFcG9sbEN0bCAoZXBmZCA8dHlwZSAtMTE+LCBvcCA8dHlwZSAtMTE+LCBmZCA8dHlwZSAtMTE+LCBldmVudCA8dHlwZSA1MCAqPHR5cGUgNTEgIkVwb2xsRXZlbnQiIDx0eXBlIDUyIHN0cnVjdCB7IEV2ZW50cyA8dHlwZSAtNz47IFBhZCA8dHlwZSA1MyBbNCBdIDx0eXBlIC0yMD4+OyBGZCA8dHlwZSAtMz47IFBhZDIgPHR5cGUgNTQgWzQgXSA8dHlwZSAtMjA+PjsgfT4+PikgKGVyciA8dHlwZSAtMTk+KTsKdHlwZSA8dHlwZSA1MT47CmZ1bmMgRXBvbGxXYWl0IChlcGZkIDx0eXBlIC0xMT4sIGV2ZW50cyA8dHlwZSA1NSBbXSA8dHlwZSA1MT4+LCBtc2VjIDx0eXBlIC0xMT4pIChuIDx0eXBlIC0xMT4sIGVyciA8dHlwZSAtMTk+KTsKdHlwZSA8dHlwZSA0OD47CmZ1bmMgRXJyc3RyIChlcnJudW0gPHR5cGUgLTExPikgPHR5cGUgLTE2PjsKZnVuYyBFeGVjIChhcmd2MCA8dHlwZSAtMTY+LCBhcmd2IDx0eXBlIDU2IFtdIDx0eXBlIC0xNj4+LCBlbnZ2IDx0eXBlIDU3IFtdIDx0eXBlIC0xNj4+KSAoZXJyIDx0eXBlIC0xOT4pOwpmdW5jIEV4aXQgKGNvZGUgPHR5cGUgLTExPik7CmZ1bmMgRXhpdHN5c2NhbGwgKCk7CmNvbnN0IEZBTExPQ19GTF9LRUVQX1NJWkUgPSAxIDsKY29uc3QgRkFMTE9DX0ZMX1BVTkNIX0hPTEUgPSAyIDsKZnVuYyBGRENsciAoZmQgPHR5cGUgLTExPiwgc2V0IDx0eXBlIDU4ICo8dHlwZSA1OSAiRmRTZXQiIDx0eXBlIDYwIHN0cnVjdCB7IEJpdHMgPHR5cGUgNjEgWzMyIF0gPHR5cGUgNjIgIi5zeXNjYWxsLmZkc19iaXRzX3R5cGUiIDx0eXBlIC0zPj4+OyB9Pj4+KTsKZnVuYyBGRElzU2V0IChmZCA8dHlwZSAtMTE+LCBzZXQgPHR5cGUgNTg+KSA8dHlwZSAtMTU+OwpmdW5jIEZEU2V0IChmZCA8dHlwZSAtMTE+LCBzZXQgPHR5cGUgNTg+KTsKZnVuYyBGRFplcm8gKHNldCA8dHlwZSA1OD4pOwpjb25zdCBGRF9DTE9FWEVDID0gMSA7CmNvbnN0IEZEX1NFVFNJWkUgPSAxMDI0IDsKY29uc3QgRkZETFkgPSAzMjc2OCA7CmNvbnN0IEZMVVNITyA9IDgxOTIgOwpjb25zdCBGX0RVUEZEID0gMCA7CmNvbnN0IEZfRFVQRkRfQ0xPRVhFQyA9IDEwMzAgOwpjb25zdCBGX0VYTENLID0gNCA7CmNvbnN0IEZfR0VURkQgPSAxIDsKY29uc3QgRl9HRVRGTCA9IDMgOwpjb25zdCBGX0dFVExFQVNFID0gMTAyNSA7CmNvbnN0IEZfR0VUTEsgPSAzMyA7CmNvbnN0IEZfR0VUTEs2NCA9IDMzIDsKY29uc3QgRl9HRVRPV04gPSAyMyA7CmNvbnN0IEZfR0VUUElQRV9TWiA9IDEwMzIgOwpjb25zdCBGX0dFVFNJRyA9IDExIDsKY29uc3QgRl9MT0NLID0gMSA7CmNvbnN0IEZfTk9USUZZID0gMTAyNiA7CmNvbnN0IEZfT0sgPSAwIDsKY29uc3QgRl9SRExDSyA9IDAgOwpjb25zdCBGX1NFVEZEID0gMiA7CmNvbnN0IEZfU0VURkwgPSA0IDsKY29uc3QgRl9TRVRMRUFTRSA9IDEwMjQgOwpjb25zdCBGX1NFVExLID0gMzQgOwpjb25zdCBGX1NFVExLNjQgPSAzNCA7CmNvbnN0IEZfU0VUTEtXID0gMzUgOwpjb25zdCBGX1NFVExLVzY0ID0gMzUgOwpjb25zdCBGX1NFVE9XTiA9IDI0IDsKY29uc3QgRl9TRVRQSVBFX1NaID0gMTAzMSA7CmNvbnN0IEZfU0VUU0lHID0gMTAgOwpjb25zdCBGX1NITENLID0gOCA7CmNvbnN0IEZfVEVTVCA9IDMgOwpjb25zdCBGX1RMT0NLID0gMiA7CmNvbnN0IEZfVUxPQ0sgPSAwIDsKY29uc3QgRl9VTkxDSyA9IDIgOwpjb25zdCBGX1dSTENLID0gMSA7CmZ1bmMgRmFjY2Vzc2F0IChkaXJmZCA8dHlwZSAtMTE+LCBwYXRoIDx0eXBlIC0xNj4sIG1vZGUgPHR5cGUgLTc+LCBmbGFncyA8dHlwZSAtMTE+KSAoZXJyIDx0eXBlIC0xOT4pOwpmdW5jIEZhbGxvY2F0ZSAoZmQgPHR5cGUgLTExPiwgbW9kZSA8dHlwZSAtNz4sIG9mZiA8dHlwZSAtND4sIGxlbiA8dHlwZSAtND4pIChlcnIgPHR5cGUgLTE5Pik7CmZ1bmMgRmNoZGlyIChmZCA8dHlwZSAtMTE+KSAoZXJyIDx0eXBlIC0xOT4pOwpmdW5jIEZjaG1vZCAoZmQgPHR5cGUgLTExPiwgbW9kZSA8dHlwZSAtNz4pIChlcnIgPHR5cGUgLTE5Pik7CmZ1bmMgRmNobW9kYXQgKGRpcmZkIDx0eXBlIC0xMT4sIHBhdGggPHR5cGUgLTE2PiwgbW9kZSA8dHlwZSAtNz4sIGZsYWdzIDx0eXBlIC0xMT4pIChlcnIgPHR5cGUgLTE5Pik7CmZ1bmMgRmNob3duIChmZCA8dHlwZSAtMTE+LCB1aWQgPHR5cGUgLTExPiwgZ2lkIDx0eXBlIC0xMT4pIChlcnIgPHR5cGUgLTE5Pik7CmZ1bmMgRmNob3duYXQgKGRpcmZkIDx0eXBlIC0xMT4sIHBhdGggPHR5cGUgLTE2PiwgdWlkIDx0eXBlIC0xMT4sIGdpZCA8dHlwZSAtMTE+LCBmbGFncyA8dHlwZSAtMTE+KSAoZXJyIDx0eXBlIC0xOT4pOwpmdW5jIEZjbnRsRmxvY2sgKGZkIDx0eXBlIC0xMz4sIGNtZCA8dHlwZSAtMTE+LCBsayA8dHlwZSA2MyAqPHR5cGUgNjQgIkZsb2NrX3QiIDx0eXBlIDY1IHN0cnVjdCB7IFR5cGUgPHR5cGUgLTI+OyBXaGVuY2UgPHR5cGUgLTI+OyBTdGFydCA8dHlwZSAtND47IExlbiA8dHlwZSAtND47IFBpZCA8dHlwZSAtMz47IH0+Pj4pIChlcnIgPHR5cGUgLTE5Pik7CnR5cGUgPHR5cGUgNTk+OwpmdW5jIEZkYXRhc3luYyAoZmQgPHR5cGUgLTExPikgKGVyciA8dHlwZSAtMTk+KTsKZnVuYyBGbG9jayAoZmQgPHR5cGUgLTExPiwgaG93IDx0eXBlIC0xMT4pIChlcnIgPHR5cGUgLTE5Pik7CnR5cGUgPHR5cGUgNjQ+OwpmdW5jIEZvcmtFeGVjIChhcmd2MCA8dHlwZSAtMTY+LCBhcmd2IDx0eXBlIDY2IFtdIDx0eXBlIC0xNj4+LCBhdHRyIDx0eXBlIDY3ICo8dHlwZSA2OCAiUHJvY0F0dHIiIDx0eXBlIDY5IHN0cnVjdCB7IERpciA8dHlwZSAtMTY+OyBFbnYgPHR5cGUgNzAgW10gPHR5cGUgLTE2Pj47IEZpbGVzIDx0eXBlIDcxIFtdIDx0eXBlIC0xMz4+OyBTeXMgPHR5cGUgNzIgKjx0eXBlIDczICJTeXNQcm9jQXR0ciIgPHR5cGUgNzQgc3RydWN0IHsgQ2hyb290IDx0eXBlIC0xNj47IENyZWRlbnRpYWwgPHR5cGUgNzUgKjx0eXBlIDM5Pj47IFB0cmFjZSA8dHlwZSAtMTU+OyBTZXRzaWQgPHR5cGUgLTE1PjsgU2V0cGdpZCA8dHlwZSAtMTU+OyBTZXRjdHR5IDx0eXBlIC0xNT47IE5vY3R0eSA8dHlwZSAtMTU+OyBDdHR5IDx0eXBlIC0xMT47IFBkZWF0aHNpZyA8dHlwZSA3NiAiU2lnbmFsIiA8dHlwZSAtMTE+CiBmdW5jIChzIDx0eXBlIDc2PikgU2lnbmFsICgpOwogZnVuYyAocyA8dHlwZSA3Nj4pIFN0cmluZyAoKSA8dHlwZSAtMTY+Owo+OyBDbG9uZWZsYWdzIDx0eXBlIC0xMz47IFVpZE1hcHBpbmdzIDx0eXBlIDc3IFtdIDx0eXBlIDc4ICJTeXNQcm9jSURNYXAiIDx0eXBlIDc5IHN0cnVjdCB7IENvbnRhaW5lcklEIDx0eXBlIC0xMT47IEhvc3RJRCA8dHlwZSAtMTE+OyBTaXplIDx0eXBlIC0xMT47IH0+Pj47IEdpZE1hcHBpbmdzIDx0eXBlIDgwIFtdIDx0eXBlIDc4Pj47IH0+Pj47IH0+Pj4pIChwaWQgPHR5cGUgLTExPiwgZXJyIDx0eXBlIC0xOT4pOwp2YXIgRm9ya0xvY2sgPHR5cGUgODEgInN5bmMuUldNdXRleCIgPHR5cGUgODIgc3RydWN0IHsgLnN5bmMudyA8dHlwZSA4MyAic3luYy5NdXRleCIgPHR5cGUgODQgc3RydWN0IHsgLnN5bmMuc3RhdGUgPHR5cGUgLTM+OyAuc3luYy5zZW1hIDx0eXBlIC03PjsgfT4KIGZ1bmMgKG0gPHR5cGUgODUgKjx0eXBlIDgzPj4pIFVubG9jayAoKTsKIGZ1bmMgKG0gPHR5cGUgODU+KSBMb2NrICgpOwo+OyAuc3luYy53cml0ZXJTZW0gPHR5cGUgLTc+OyAuc3luYy5yZWFkZXJTZW0gPHR5cGUgLTc+OyAuc3luYy5yZWFkZXJDb3VudCA8dHlwZSAtMz47IC5zeW5jLnJlYWRlcldhaXQgPHR5cGUgLTM+OyB9PgogZnVuYyAocncgPHR5cGUgODYgKjx0eXBlIDgxPj4pIFJVbmxvY2sgKCk7CiBmdW5jIChydyA8dHlwZSA4Nj4pIFVubG9jayAoKTsKIGZ1bmMgKHJ3IDx0eXBlIDg2PikgUkxvY2tlciAoKSA8dHlwZSA4NyAic3luYy5Mb2NrZXIiIDx0eXBlIDg4IGludGVyZmFjZSB7IExvY2sgKCk7IFVubG9jayAoKTsgfT4+OwogZnVuYyAocncgPHR5cGUgODY+KSBSTG9jayAoKTsKIGZ1bmMgKHJ3IDx0eXBlIDg2PikgTG9jayAoKTsKPjsKZnVuYyBGc3RhdCAoZmQgPHR5cGUgLTExPiwgc3RhdCA8dHlwZSA4OSAqPHR5cGUgOTAgIlN0YXRfdCIgPHR5cGUgOTEgc3RydWN0IHsgRGV2IDx0eXBlIC04PjsgLnN5c2NhbGwuc3RfcGFkMSA8dHlwZSA5MiBbMiBdIDx0eXBlIC0zPj47IElubyA8dHlwZSAtOD47IE1vZGUgPHR5cGUgLTc+OyBObGluayA8dHlwZSAtNz47IFVpZCA8dHlwZSAtNz47IEdpZCA8dHlwZSAtNz47IFJkZXYgPHR5cGUgLTg+OyAuc3lzY2FsbC5zdF9wYWQyIDx0eXBlIDkzIFsyIF0gPHR5cGUgLTM+PjsgU2l6ZSA8dHlwZSAtND47IEF0aW0gPHR5cGUgOTQgIlRpbWVzcGVjIiA8dHlwZSA5NSBzdHJ1Y3QgeyBTZWMgPHR5cGUgOTYgIlRpbWVzcGVjX3NlY190IiA8dHlwZSAtMz4+OyBOc2VjIDx0eXBlIDk3ICJUaW1lc3BlY19uc2VjX3QiIDx0eXBlIC0zPj47IH0+CiBmdW5jICh0cyA8dHlwZSA5OCAqPHR5cGUgOTQ+PikgVW5peCAoKSAoc2VjIDx0eXBlIC00PiwgbnNlYyA8dHlwZSAtND4pOwogZnVuYyAodHMgPHR5cGUgOTkgKjx0eXBlIDk0Pj4pIE5hbm8gKCkgPHR5cGUgLTQ+Owo+OyBNdGltIDx0eXBlIDk0PjsgQ3RpbSA8dHlwZSA5ND47IEJsa3NpemUgPHR5cGUgLTM+OyAuc3lzY2FsbC5zdF9wYWQzIDx0eXBlIC0zPjsgQmxvY2tzIDx0eXBlIC00PjsgLnN5c2NhbGwuc3RfcGFkNCA8dHlwZSAxMDAgWzE0IF0gPHR5cGUgLTM+PjsgfT4+PikgKGVyciA8dHlwZSAtMTk+KTsKZnVuYyBGc3RhdGZzIChmZCA8dHlwZSAtMTE+LCBidWYgPHR5cGUgMTAxICo8dHlwZSAxMDIgIlN0YXRmc190IiA8dHlwZSAxMDMgc3RydWN0IHsgVHlwZSA8dHlwZSAtMz47IEJzaXplIDx0eXBlIC0zPjsgRnJzaXplIDx0eXBlIC0zPjsgQmxvY2tzIDx0eXBlIC04PjsgQmZyZWUgPHR5cGUgLTg+OyBGaWxlcyA8dHlwZSAtOD47IEZmcmVlIDx0eXBlIC04PjsgQmF2YWlsIDx0eXBlIC04PjsgRnNpZCA8dHlwZSAxMDQgIi5zeXNjYWxsLl9fX2ZzaWRfdCIgPHR5cGUgMTA1IHN0cnVjdCB7IC5zeXNjYWxsLl9fdmFsIDx0eXBlIDEwNiBbMiBdIDx0eXBlIC0zPj47IH0+PjsgTmFtZWxlbiA8dHlwZSAtMz47IFNwYXJlIDx0eXBlIDEwNyBbNiBdIDx0eXBlIC0zPj47IH0+Pj4pIChlcnIgPHR5cGUgLTE5Pik7CmZ1bmMgRnN5bmMgKGZkIDx0eXBlIC0xMT4pIChlcnIgPHR5cGUgLTE5Pik7CmZ1bmMgRnRydW5jYXRlIChmZCA8dHlwZSAtMTE+LCBsZW5ndGggPHR5cGUgLTQ+KSAoZXJyIDx0eXBlIC0xOT4pOwpmdW5jIEZ1dGltZXMgKGZkIDx0eXBlIC0xMT4sIHR2IDx0eXBlIDEwOCBbXSA8dHlwZSAyMz4+KSAoZXJyIDx0eXBlIC0xOT4pOwpmdW5jIEZ1dGltZXNhdCAoZGlyZmQgPHR5cGUgLTExPiwgcGF0aCA8dHlwZSAtMTY+LCB0diA8dHlwZSAxMDkgW10gPHR5cGUgMjM+PikgKGVyciA8dHlwZSAtMTk+KTsKZnVuYyBHZXRFcnJubyAoKSA8dHlwZSA0OD47CmZ1bmMgR2V0Y3dkIChidWYgPHR5cGUgMTEwIFtdIDx0eXBlIC0yMD4+KSAobiA8dHlwZSAtMTE+LCBlcnIgPHR5cGUgLTE5Pik7CmZ1bmMgR2V0ZGVudHMgKGZkIDx0eXBlIC0xMT4sIGJ1ZiA8dHlwZSAxMTEgW10gPHR5cGUgLTIwPj4pIChuIDx0eXBlIC0xMT4sIGVyciA8dHlwZSAtMTk+KTsKZnVuYyBHZXRlZ2lkICgpIChlZ2lkIDx0eXBlIC0xMT4pOwpmdW5jIEdldGVudiAoa2V5IDx0eXBlIC0xNj4pICh2YWx1ZSA8dHlwZSAtMTY+LCBmb3VuZCA8dHlwZSAtMTU+KTsKZnVuYyBHZXRldWlkICgpIChldWlkIDx0eXBlIC0xMT4pOwpmdW5jIEdldGdpZCAoKSAoZ2lkIDx0eXBlIC0xMT4pOwpmdW5jIEdldGdyb3VwcyAoKSAoZ2lkcyA8dHlwZSAxMTIgW10gPHR5cGUgLTExPj4sIGVyciA8dHlwZSAtMTk+KTsKZnVuYyBHZXRwYWdlc2l6ZSAoKSAocGFnZXNpemUgPHR5cGUgLTExPik7CmZ1bmMgR2V0cGVlcm5hbWUgKGZkIDx0eXBlIC0xMT4pIChzYSA8dHlwZSAxPiwgZXJyIDx0eXBlIC0xOT4pOwpmdW5jIEdldHBnaWQgKHBpZCA8dHlwZSAtMTE+KSAocGdpZCA8dHlwZSAtMTE+LCBlcnIgPHR5cGUgLTE5Pik7CmZ1bmMgR2V0cGdycCAoKSAocGlkIDx0eXBlIC0xMT4pOwpmdW5jIEdldHBpZCAoKSAocGlkIDx0eXBlIC0xMT4pOwpmdW5jIEdldHBwaWQgKCkgKHBwaWQgPHR5cGUgLTExPik7CmZ1bmMgR2V0cHJpb3JpdHkgKHdoaWNoIDx0eXBlIC0xMT4sIHdobyA8dHlwZSAtMTE+KSAocHJpbyA8dHlwZSAtMTE+LCBlcnIgPHR5cGUgLTE5Pik7CmZ1bmMgR2V0cmxpbWl0IChyZXNvdXJjZSA8dHlwZSAtMTE+LCBybGltIDx0eXBlIDExMyAqPHR5cGUgMTE0ICJSbGltaXQiIDx0eXBlIDExNSBzdHJ1Y3QgeyBDdXIgPHR5cGUgLTg+OyBNYXggPHR5cGUgLTg+OyB9Pj4+KSAoZXJyIDx0eXBlIC0xOT4pOwpmdW5jIEdldHJ1c2FnZSAod2hvIDx0eXBlIC0xMT4sIHJ1c2FnZSA8dHlwZSAxMTYgKjx0eXBlIDExNyAiUnVzYWdlIiA8dHlwZSAxMTggc3RydWN0IHsgVXRpbWUgPHR5cGUgMjM+OyBTdGltZSA8dHlwZSAyMz47IE1heHJzcyA8dHlwZSAtMz47IEl4cnNzIDx0eXBlIC0zPjsgSWRyc3MgPHR5cGUgLTM+OyBJc3JzcyA8dHlwZSAtMz47IE1pbmZsdCA8dHlwZSAtMz47IE1hamZsdCA8dHlwZSAtMz47IE5zd2FwIDx0eXBlIC0zPjsgSW5ibG9jayA8dHlwZSAtMz47IE91YmxvY2sgPHR5cGUgLTM+OyBNc2dzbmQgPHR5cGUgLTM+OyBNc2dyY3YgPHR5cGUgLTM+OyBOc2lnbmFscyA8dHlwZSAtMz47IE52Y3N3IDx0eXBlIC0zPjsgTml2Y3N3IDx0eXBlIC0zPjsgfT4+PikgKGVyciA8dHlwZSAtMTk+KTsKZnVuYyBHZXRzb2NrbmFtZSAoZmQgPHR5cGUgLTExPikgKHNhIDx0eXBlIDE+LCBlcnIgPHR5cGUgLTE5Pik7CmZ1bmMgR2V0c29ja29wdEJ5dGUgKGZkIDx0eXBlIC0xMT4sIGxldmVsIDx0eXBlIC0xMT4sIG9wdCA8dHlwZSAtMTE+KSAodmFsdWUgPHR5cGUgLTIwPiwgZXJyIDx0eXBlIC0xOT4pOwpmdW5jIEdldHNvY2tvcHRJUE1yZXEgKGZkIDx0eXBlIC0xMT4sIGxldmVsIDx0eXBlIC0xMT4sIG9wdCA8dHlwZSAtMTE+KSAoPyA8dHlwZSAxMTkgKjx0eXBlIDEyMCAiSVBNcmVxIiA8dHlwZSAxMjEgc3RydWN0IHsgTXVsdGlhZGRyIDx0eXBlIDEyMiBbNCBdIDx0eXBlIC0yMD4+OyBJbnRlcmZhY2UgPHR5cGUgMTIzIFs0IF0gPHR5cGUgLTIwPj47IH0+Pj4sID8gPHR5cGUgLTE5Pik7CmZ1bmMgR2V0c29ja29wdElQTXJlcW4gKGZkIDx0eXBlIC0xMT4sIGxldmVsIDx0eXBlIC0xMT4sIG9wdCA8dHlwZSAtMTE+KSAoPyA8dHlwZSAxMjQgKjx0eXBlIDEyNSAiSVBNcmVxbiIgPHR5cGUgMTI2IHN0cnVjdCB7IE11bHRpYWRkciA8dHlwZSAxMjcgWzQgXSA8dHlwZSAtMjA+PjsgQWRkcmVzcyA8dHlwZSAxMjggWzQgXSA8dHlwZSAtMjA+PjsgSWZpbmRleCA8dHlwZSAtMz47IH0+Pj4sID8gPHR5cGUgLTE5Pik7CmZ1bmMgR2V0c29ja29wdElQdjZNcmVxIChmZCA8dHlwZSAtMTE+LCBsZXZlbCA8dHlwZSAtMTE+LCBvcHQgPHR5cGUgLTExPikgKD8gPHR5cGUgMTI5ICo8dHlwZSAxMzAgIklQdjZNcmVxIiA8dHlwZSAxMzEgc3RydWN0IHsgTXVsdGlhZGRyIDx0eXBlIDEzMiBbMTYgXSA8dHlwZSAtMjA+PjsgSW50ZXJmYWNlIDx0eXBlIC03PjsgfT4+PiwgPyA8dHlwZSAtMTk+KTsKZnVuYyBHZXRzb2Nrb3B0SW5ldDRBZGRyIChmZCA8dHlwZSAtMTE+LCBsZXZlbCA8dHlwZSAtMTE+LCBvcHQgPHR5cGUgLTExPikgKHZhbHVlIDx0eXBlIDEzMyBbNCBdIDx0eXBlIC0yMD4+LCBlcnIgPHR5cGUgLTE5Pik7CmZ1bmMgR2V0c29ja29wdEludCAoZmQgPHR5cGUgLTExPiwgbGV2ZWwgPHR5cGUgLTExPiwgb3B0IDx0eXBlIC0xMT4pICh2YWx1ZSA8dHlwZSAtMTE+LCBlcnIgPHR5cGUgLTE5Pik7CmZ1bmMgR2V0dGlkICgpICh0aWQgPHR5cGUgLTExPik7CmZ1bmMgR2V0dGltZW9mZGF5ICh0diA8dHlwZSAxMzQgKjx0eXBlIDIzPj4pIChlcnIgPHR5cGUgLTE5Pik7CmZ1bmMgR2V0dWlkICgpICh1aWQgPHR5cGUgLTExPik7CmZ1bmMgR2V0d2QgKCkgKHJldCA8dHlwZSAtMTY+LCBlcnIgPHR5cGUgLTE5Pik7CmZ1bmMgR2V0eGF0dHIgKHBhdGggPHR5cGUgLTE2PiwgYXR0ciA8dHlwZSAtMTY+LCBkZXN0IDx0eXBlIDEzNSBbXSA8dHlwZSAtMjA+PikgKHN6IDx0eXBlIC0xMT4sIGVyciA8dHlwZSAtMTk+KTsKdHlwZSA8dHlwZSAxMzYgIkdpZF90IiA8dHlwZSAxMzcgIi5zeXNjYWxsLl9naWRfdCIgPHR5cGUgLTc+Pj47CmNvbnN0IEhVUENMID0gMTAyNCA7CmNvbnN0IElDQU5PTiA9IDIgOwp0eXBlIDx0eXBlIDEzOCAiSUNNUHY2RmlsdGVyIiA8dHlwZSAxMzkgc3RydWN0IHsgLnN5c2NhbGwuaWNtcDZfRmlsdCA8dHlwZSAxNDAgWzggXSA8dHlwZSAtNz4+OyB9Pj47CmNvbnN0IElDUk5MID0gMjU2IDsKY29uc3QgSUVYVEVOID0gMjU2IDsKY29uc3QgSUZBX0FERFJFU1MgPSAxIDsKY29uc3QgSUZBX0FOWUNBU1QgPSA1IDsKY29uc3QgSUZBX0JST0FEQ0FTVCA9IDQgOwpjb25zdCBJRkFfQ0FDSEVJTkZPID0gNiA7CmNvbnN0IElGQV9GX0RBREZBSUxFRCA9IDggOwpjb25zdCBJRkFfRl9ERVBSRUNBVEVEID0gMzIgOwpjb25zdCBJRkFfRl9IT01FQUREUkVTUyA9IDE2IDsKY29uc3QgSUZBX0ZfTk9EQUQgPSAyIDsKY29uc3QgSUZBX0ZfT1BUSU1JU1RJQyA9IDQgOwpjb25zdCBJRkFfRl9QRVJNQU5FTlQgPSAxMjggOwpjb25zdCBJRkFfRl9TRUNPTkRBUlkgPSAxIDsKY29uc3QgSUZBX0ZfVEVNUE9SQVJZID0gMSA7CmNvbnN0IElGQV9GX1RFTlRBVElWRSA9IDY0IDsKY29uc3QgSUZBX0xBQkVMID0gMyA7CmNvbnN0IElGQV9MT0NBTCA9IDIgOwpjb25zdCBJRkFfTVVMVElDQVNUID0gNyA7CmNvbnN0IElGQV9VTlNQRUMgPSAwIDsKY29uc3QgSUZGX0FMTE1VTFRJID0gNTEyIDsKY29uc3QgSUZGX0FVVE9NRURJQSA9IDE2Mzg0IDsKY29uc3QgSUZGX0JST0FEQ0FTVCA9IDIgOwpjb25zdCBJRkZfREVCVUcgPSA0IDsKY29uc3QgSUZGX0RZTkFNSUMgPSAzMjc2OCA7CmNvbnN0IElGRl9MT09QQkFDSyA9IDggOwpjb25zdCBJRkZfTUFTVEVSID0gMTAyNCA7CmNvbnN0IElGRl9NVUxUSUNBU1QgPSA0MDk2IDsKY29uc3QgSUZGX05PQVJQID0gMTI4IDsKY29uc3QgSUZGX05PVFJBSUxFUlMgPSAzMiA7CmNvbnN0IElGRl9OT19QSSA9IDQwOTYgOwpjb25zdCBJRkZfT05FX1FVRVVFID0gODE5MiA7CmNvbnN0IElGRl9QT0lOVE9QT0lOVCA9IDE2IDsKY29uc3QgSUZGX1BPUlRTRUwgPSA4MTkyIDsKY29uc3QgSUZGX1BST01JU0MgPSAyNTYgOwpjb25zdCBJRkZfUlVOTklORyA9IDY0IDsKY29uc3QgSUZGX1NMQVZFID0gMjA0OCA7CmNvbnN0IElGRl9UQVAgPSAyIDsKY29uc3QgSUZGX1RVTiA9IDEgOwpjb25zdCBJRkZfVFVOX0VYQ0wgPSAzMjc2OCA7CmNvbnN0IElGRl9VUCA9IDEgOwpjb25zdCBJRkZfVk5FVF9IRFIgPSAxNjM4NCA7CmNvbnN0IElGTEFfQUREUkVTUyA9IDEgOwpjb25zdCBJRkxBX0FGX1NQRUMgPSAyNiA7CmNvbnN0IElGTEFfQlJPQURDQVNUID0gMiA7CmNvbnN0IElGTEFfQ09TVCA9IDggOwpjb25zdCBJRkxBX0VYVF9NQVNLID0gMjkgOwpjb25zdCBJRkxBX0dST1VQID0gMjcgOwpjb25zdCBJRkxBX0lGQUxJQVMgPSAyMCA7CmNvbnN0IElGTEFfSUZOQU1FID0gMyA7CmNvbnN0IElGTEFfSU5FVDZfQ0FDSEVJTkZPID0gNSA7CmNvbnN0IElGTEFfSU5FVDZfQ09ORiA9IDIgOwpjb25zdCBJRkxBX0lORVQ2X0ZMQUdTID0gMSA7CmNvbnN0IElGTEFfSU5FVDZfSUNNUDZTVEFUUyA9IDYgOwpjb25zdCBJRkxBX0lORVQ2X01DQVNUID0gNCA7CmNvbnN0IElGTEFfSU5FVDZfU1RBVFMgPSAzIDsKY29uc3QgSUZMQV9JTkVUNl9VTlNQRUMgPSAwIDsKY29uc3QgSUZMQV9JTkVUX0NPTkYgPSAxIDsKY29uc3QgSUZMQV9JTkVUX1VOU1BFQyA9IDAgOwpjb25zdCBJRkxBX0lORk9fREFUQSA9IDIgOwpjb25zdCBJRkxBX0lORk9fS0lORCA9IDEgOwpjb25zdCBJRkxBX0lORk9fVU5TUEVDID0gMCA7CmNvbnN0IElGTEFfSU5GT19YU1RBVFMgPSAzIDsKY29uc3QgSUZMQV9MSU5LID0gNSA7CmNvbnN0IElGTEFfTElOS0lORk8gPSAxOCA7CmNvbnN0IElGTEFfTElOS01PREUgPSAxNyA7CmNvbnN0IElGTEFfTUFDVkxBTl9NT0RFID0gMSA7CmNvbnN0IElGTEFfTUFDVkxBTl9VTlNQRUMgPSAwIDsKY29uc3QgSUZMQV9NQVAgPSAxNCA7CmNvbnN0IElGTEFfTUFTVEVSID0gMTAgOwpjb25zdCBJRkxBX01UVSA9IDQgOwpjb25zdCBJRkxBX05FVF9OU19GRCA9IDI4IDsKY29uc3QgSUZMQV9ORVRfTlNfUElEID0gMTkgOwpjb25zdCBJRkxBX05VTV9WRiA9IDIxIDsKY29uc3QgSUZMQV9PUEVSU1RBVEUgPSAxNiA7CmNvbnN0IElGTEFfUE9SVF9IT1NUX1VVSUQgPSA1IDsKY29uc3QgSUZMQV9QT1JUX0lOU1RBTkNFX1VVSUQgPSA0IDsKY29uc3QgSUZMQV9QT1JUX1BST0ZJTEUgPSAyIDsKY29uc3QgSUZMQV9QT1JUX1JFUVVFU1QgPSA2IDsKY29uc3QgSUZMQV9QT1JUX1JFU1BPTlNFID0gNyA7CmNvbnN0IElGTEFfUE9SVF9TRUxGID0gMjUgOwpjb25zdCBJRkxBX1BPUlRfVU5TUEVDID0gMCA7CmNvbnN0IElGTEFfUE9SVF9WRiA9IDEgOwpjb25zdCBJRkxBX1BPUlRfVlNJX1RZUEUgPSAzIDsKY29uc3QgSUZMQV9QUklPUklUWSA9IDkgOwpjb25zdCBJRkxBX1BST1RJTkZPID0gMTIgOwpjb25zdCBJRkxBX1FESVNDID0gNiA7CmNvbnN0IElGTEFfU1RBVFMgPSA3IDsKY29uc3QgSUZMQV9TVEFUUzY0ID0gMjMgOwpjb25zdCBJRkxBX1RYUUxFTiA9IDEzIDsKY29uc3QgSUZMQV9VTlNQRUMgPSAwIDsKY29uc3QgSUZMQV9WRklORk9fTElTVCA9IDIyIDsKY29uc3QgSUZMQV9WRl9JTkZPID0gMSA7CmNvbnN0IElGTEFfVkZfSU5GT19VTlNQRUMgPSAwIDsKY29uc3QgSUZMQV9WRl9NQUMgPSAxIDsKY29uc3QgSUZMQV9WRl9QT1JUID0gMSA7CmNvbnN0IElGTEFfVkZfUE9SVFMgPSAyNCA7CmNvbnN0IElGTEFfVkZfUE9SVF9VTlNQRUMgPSAwIDsKY29uc3QgSUZMQV9WRl9TUE9PRkNISyA9IDQgOwpjb25zdCBJRkxBX1ZGX1RYX1JBVEUgPSAzIDsKY29uc3QgSUZMQV9WRl9VTlNQRUMgPSAwIDsKY29uc3QgSUZMQV9WRl9WTEFOID0gMiA7CmNvbnN0IElGTEFfVkxBTl9FR1JFU1NfUU9TID0gMyA7CmNvbnN0IElGTEFfVkxBTl9GTEFHUyA9IDIgOwpjb25zdCBJRkxBX1ZMQU5fSUQgPSAxIDsKY29uc3QgSUZMQV9WTEFOX0lOR1JFU1NfUU9TID0gNCA7CmNvbnN0IElGTEFfVkxBTl9RT1NfTUFQUElORyA9IDEgOwpjb25zdCBJRkxBX1ZMQU5fUU9TX1VOU1BFQyA9IDAgOwpjb25zdCBJRkxBX1ZMQU5fVU5TUEVDID0gMCA7CmNvbnN0IElGTEFfV0VJR0hUID0gMTUgOwpjb25zdCBJRkxBX1dJUkVMRVNTID0gMTEgOwpjb25zdCBJRk5BTVNJWiA9IDE2IDsKY29uc3QgSUdOQlJLID0gMSA7CmNvbnN0IElHTkNSID0gMTI4IDsKY29uc3QgSUdOUEFSID0gNCA7CmNvbnN0IElNQVhCRUwgPSA4MTkyIDsKY29uc3QgSU5MQ1IgPSA2NCA7CmNvbnN0IElOUENLID0gMTYgOwpjb25zdCBJTl9BQ0NFU1MgPSAxIDsKY29uc3QgSU5fQUxMX0VWRU5UUyA9IDQwOTUgOwpjb25zdCBJTl9BVFRSSUIgPSA0IDsKY29uc3QgSU5fQ0xBU1NBX0hPU1QgPSAxNjc3NzIxNSA7CmNvbnN0IElOX0NMQVNTQV9NQVggPSAxMjggOwpjb25zdCBJTl9DTEFTU0FfTkVUID0gNDI3ODE5MDA4MCA7CmNvbnN0IElOX0NMQVNTQV9OU0hJRlQgPSAyNCA7CmNvbnN0IElOX0NMQVNTQl9IT1NUID0gNjU1MzUgOwpjb25zdCBJTl9DTEFTU0JfTUFYID0gNjU1MzYgOwpjb25zdCBJTl9DTEFTU0JfTkVUID0gNDI5NDkwMTc2MCA7CmNvbnN0IElOX0NMQVNTQl9OU0hJRlQgPSAxNiA7CmNvbnN0IElOX0NMQVNTQ19IT1NUID0gMjU1IDsKY29uc3QgSU5fQ0xBU1NDX05FVCA9IDQyOTQ5NjcwNDAgOwpjb25zdCBJTl9DTEFTU0NfTlNISUZUID0gOCA7CmNvbnN0IElOX0NMT0VYRUMgPSA1MjQyODggOwpjb25zdCBJTl9DTE9TRSA9IDI0IDsKY29uc3QgSU5fQ0xPU0VfTk9XUklURSA9IDE2IDsKY29uc3QgSU5fQ0xPU0VfV1JJVEUgPSA4IDsKY29uc3QgSU5fQ1JFQVRFID0gMjU2IDsKY29uc3QgSU5fREVMRVRFID0gNTEyIDsKY29uc3QgSU5fREVMRVRFX1NFTEYgPSAxMDI0IDsKY29uc3QgSU5fRE9OVF9GT0xMT1cgPSAzMzU1NDQzMiA7CmNvbnN0IElOX0VYQ0xfVU5MSU5LID0gNjcxMDg4NjQgOwpjb25zdCBJTl9JR05PUkVEID0gMzI3NjggOwpjb25zdCBJTl9JU0RJUiA9IDEwNzM3NDE4MjQgOwpjb25zdCBJTl9MT09QQkFDS05FVCA9IDEyNyA7CmNvbnN0IElOX01BU0tfQUREID0gNTM2ODcwOTEyIDsKY29uc3QgSU5fTU9ESUZZID0gMiA7CmNvbnN0IElOX01PVkUgPSAxOTIgOwpjb25zdCBJTl9NT1ZFRF9GUk9NID0gNjQgOwpjb25zdCBJTl9NT1ZFRF9UTyA9IDEyOCA7CmNvbnN0IElOX01PVkVfU0VMRiA9IDIwNDggOwpjb25zdCBJTl9OT05CTE9DSyA9IDEyOCA7CmNvbnN0IElOX09ORVNIT1QgPSAyMTQ3NDgzNjQ4IDsKY29uc3QgSU5fT05MWURJUiA9IDE2Nzc3MjE2IDsKY29uc3QgSU5fT1BFTiA9IDMyIDsKY29uc3QgSU5fUV9PVkVSRkxPVyA9IDE2Mzg0IDsKY29uc3QgSU5fVU5NT1VOVCA9IDgxOTIgOwp0eXBlIDx0eXBlIDEyMD47CnR5cGUgPHR5cGUgMTI1PjsKY29uc3QgSVBQUk9UT19BSCA9IDUxIDsKY29uc3QgSVBQUk9UT19DT01QID0gMTA4IDsKY29uc3QgSVBQUk9UT19EQ0NQID0gMzMgOwpjb25zdCBJUFBST1RPX0RTVE9QVFMgPSA2MCA7CmNvbnN0IElQUFJPVE9fRUdQID0gOCA7CmNvbnN0IElQUFJPVE9fRU5DQVAgPSA5OCA7CmNvbnN0IElQUFJPVE9fRVNQID0gNTAgOwpjb25zdCBJUFBST1RPX0ZSQUdNRU5UID0gNDQgOwpjb25zdCBJUFBST1RPX0dSRSA9IDQ3IDsKY29uc3QgSVBQUk9UT19IT1BPUFRTID0gMCA7CmNvbnN0IElQUFJPVE9fSUNNUCA9IDEgOwpjb25zdCBJUFBST1RPX0lDTVBWNiA9IDU4IDsKY29uc3QgSVBQUk9UT19JRFAgPSAyMiA7CmNvbnN0IElQUFJPVE9fSUdNUCA9IDIgOwpjb25zdCBJUFBST1RPX0lQID0gMCA7CmNvbnN0IElQUFJPVE9fSVBJUCA9IDQgOwpjb25zdCBJUFBST1RPX0lQVjYgPSA0MSA7CmNvbnN0IElQUFJPVE9fTUFYID0gMjU2IDsKY29uc3QgSVBQUk9UT19NVFAgPSA5MiA7CmNvbnN0IElQUFJPVE9fTk9ORSA9IDU5IDsKY29uc3QgSVBQUk9UT19QSU0gPSAxMDMgOwpjb25zdCBJUFBST1RPX1BVUCA9IDEyIDsKY29uc3QgSVBQUk9UT19SQVcgPSAyNTUgOwpjb25zdCBJUFBST1RPX1JPVVRJTkcgPSA0MyA7CmNvbnN0IElQUFJPVE9fUlNWUCA9IDQ2IDsKY29uc3QgSVBQUk9UT19TQ1RQID0gMTMyIDsKY29uc3QgSVBQUk9UT19UQ1AgPSA2IDsKY29uc3QgSVBQUk9UT19UUCA9IDI5IDsKY29uc3QgSVBQUk9UT19VRFAgPSAxNyA7CmNvbnN0IElQUFJPVE9fVURQTElURSA9IDEzNiA7CmNvbnN0IElQVjZfMjI5MkRTVE9QVFMgPSA0IDsKY29uc3QgSVBWNl8yMjkySE9QTElNSVQgPSA4IDsKY29uc3QgSVBWNl8yMjkySE9QT1BUUyA9IDMgOwpjb25zdCBJUFY2XzIyOTJQS1RJTkZPID0gMiA7CmNvbnN0IElQVjZfMjI5MlBLVE9QVElPTlMgPSA2IDsKY29uc3QgSVBWNl8yMjkyUlRIRFIgPSA1IDsKY29uc3QgSVBWNl9BRERSRk9STSA9IDEgOwpjb25zdCBJUFY2X0FERF9NRU1CRVJTSElQID0gMjAgOwpjb25zdCBJUFY2X0FVVEhIRFIgPSAxMCA7CmNvbnN0IElQVjZfQ0hFQ0tTVU0gPSA3IDsKY29uc3QgSVBWNl9EUk9QX01FTUJFUlNISVAgPSAyMSA7CmNvbnN0IElQVjZfRFNUT1BUUyA9IDU5IDsKY29uc3QgSVBWNl9IT1BMSU1JVCA9IDUyIDsKY29uc3QgSVBWNl9IT1BPUFRTID0gNTQgOwpjb25zdCBJUFY2X0lQU0VDX1BPTElDWSA9IDM0IDsKY29uc3QgSVBWNl9KT0lOX0FOWUNBU1QgPSAyNyA7CmNvbnN0IElQVjZfSk9JTl9HUk9VUCA9IDIwIDsKY29uc3QgSVBWNl9MRUFWRV9BTllDQVNUID0gMjggOwpjb25zdCBJUFY2X0xFQVZFX0dST1VQID0gMjEgOwpjb25zdCBJUFY2X01UVSA9IDI0IDsKY29uc3QgSVBWNl9NVFVfRElTQ09WRVIgPSAyMyA7CmNvbnN0IElQVjZfTVVMVElDQVNUX0hPUFMgPSAxOCA7CmNvbnN0IElQVjZfTVVMVElDQVNUX0lGID0gMTcgOwpjb25zdCBJUFY2X01VTFRJQ0FTVF9MT09QID0gMTkgOwpjb25zdCBJUFY2X05FWFRIT1AgPSA5IDsKY29uc3QgSVBWNl9QS1RJTkZPID0gNTAgOwpjb25zdCBJUFY2X1BNVFVESVNDX0RPID0gMiA7CmNvbnN0IElQVjZfUE1UVURJU0NfRE9OVCA9IDAgOwpjb25zdCBJUFY2X1BNVFVESVNDX1BST0JFID0gMyA7CmNvbnN0IElQVjZfUE1UVURJU0NfV0FOVCA9IDEgOwpjb25zdCBJUFY2X1JFQ1ZEU1RPUFRTID0gNTggOwpjb25zdCBJUFY2X1JFQ1ZFUlIgPSAyNSA7CmNvbnN0IElQVjZfUkVDVkhPUExJTUlUID0gNTEgOwpjb25zdCBJUFY2X1JFQ1ZIT1BPUFRTID0gNTMgOwpjb25zdCBJUFY2X1JFQ1ZQS1RJTkZPID0gNDkgOwpjb25zdCBJUFY2X1JFQ1ZSVEhEUiA9IDU2IDsKY29uc3QgSVBWNl9SRUNWVENMQVNTID0gNjYgOwpjb25zdCBJUFY2X1JPVVRFUl9BTEVSVCA9IDIyIDsKY29uc3QgSVBWNl9SVEhEUiA9IDU3IDsKY29uc3QgSVBWNl9SVEhEUkRTVE9QVFMgPSA1NSA7CmNvbnN0IElQVjZfUlRIRFJfTE9PU0UgPSAwIDsKY29uc3QgSVBWNl9SVEhEUl9TVFJJQ1QgPSAxIDsKY29uc3QgSVBWNl9SVEhEUl9UWVBFXzAgPSAwIDsKY29uc3QgSVBWNl9SWERTVE9QVFMgPSA1OSA7CmNvbnN0IElQVjZfUlhIT1BPUFRTID0gNTQgOwpjb25zdCBJUFY2X1RDTEFTUyA9IDY3IDsKY29uc3QgSVBWNl9VTklDQVNUX0hPUFMgPSAxNiA7CmNvbnN0IElQVjZfVjZPTkxZID0gMjYgOwpjb25zdCBJUFY2X1hGUk1fUE9MSUNZID0gMzUgOwpjb25zdCBJUF9BRERfTUVNQkVSU0hJUCA9IDM1IDsKY29uc3QgSVBfQUREX1NPVVJDRV9NRU1CRVJTSElQID0gMzkgOwpjb25zdCBJUF9CTE9DS19TT1VSQ0UgPSAzOCA7CmNvbnN0IElQX0RFRkFVTFRfTVVMVElDQVNUX0xPT1AgPSAxIDsKY29uc3QgSVBfREVGQVVMVF9NVUxUSUNBU1RfVFRMID0gMSA7CmNvbnN0IElQX0RGID0gMTYzODQgOwpjb25zdCBJUF9EUk9QX01FTUJFUlNISVAgPSAzNiA7CmNvbnN0IElQX0RST1BfU09VUkNFX01FTUJFUlNISVAgPSA0MCA7CmNvbnN0IElQX0ZSRUVCSU5EID0gMTUgOwpjb25zdCBJUF9IRFJJTkNMID0gMyA7CmNvbnN0IElQX0lQU0VDX1BPTElDWSA9IDE2IDsKY29uc3QgSVBfTUFYUEFDS0VUID0gNjU1MzUgOwpjb25zdCBJUF9NQVhfTUVNQkVSU0hJUFMgPSAyMCA7CmNvbnN0IElQX01GID0gODE5MiA7CmNvbnN0IElQX01JTlRUTCA9IDIxIDsKY29uc3QgSVBfTVNGSUxURVIgPSA0MSA7CmNvbnN0IElQX01TUyA9IDU3NiA7CmNvbnN0IElQX01UVSA9IDE0IDsKY29uc3QgSVBfTVRVX0RJU0NPVkVSID0gMTAgOwpjb25zdCBJUF9NVUxUSUNBU1RfQUxMID0gNDkgOwpjb25zdCBJUF9NVUxUSUNBU1RfSUYgPSAzMiA7CmNvbnN0IElQX01VTFRJQ0FTVF9MT09QID0gMzQgOwpjb25zdCBJUF9NVUxUSUNBU1RfVFRMID0gMzMgOwpjb25zdCBJUF9PRkZNQVNLID0gODE5MSA7CmNvbnN0IElQX09QVElPTlMgPSA0IDsKY29uc3QgSVBfT1JJR0RTVEFERFIgPSAyMCA7CmNvbnN0IElQX1BBU1NTRUMgPSAxOCA7CmNvbnN0IElQX1BLVElORk8gPSA4IDsKY29uc3QgSVBfUEtUT1BUSU9OUyA9IDkgOwpjb25zdCBJUF9QTVRVRElTQyA9IDEwIDsKY29uc3QgSVBfUE1UVURJU0NfRE8gPSAyIDsKY29uc3QgSVBfUE1UVURJU0NfRE9OVCA9IDAgOwpjb25zdCBJUF9QTVRVRElTQ19QUk9CRSA9IDMgOwpjb25zdCBJUF9QTVRVRElTQ19XQU5UID0gMSA7CmNvbnN0IElQX1JFQ1ZFUlIgPSAxMSA7CmNvbnN0IElQX1JFQ1ZPUFRTID0gNiA7CmNvbnN0IElQX1JFQ1ZPUklHRFNUQUREUiA9IDIwIDsKY29uc3QgSVBfUkVDVlRPUyA9IDEzIDsKY29uc3QgSVBfUkVDVlRUTCA9IDEyIDsKY29uc3QgSVBfUkVUT1BUUyA9IDcgOwpjb25zdCBJUF9SRiA9IDMyNzY4IDsKY29uc3QgSVBfUk9VVEVSX0FMRVJUID0gNSA7CmNvbnN0IElQX1RPUyA9IDEgOwpjb25zdCBJUF9UUkFOU1BBUkVOVCA9IDE5IDsKY29uc3QgSVBfVFRMID0gMiA7CmNvbnN0IElQX1VOQkxPQ0tfU09VUkNFID0gMzcgOwpjb25zdCBJUF9VTklDQVNUX0lGID0gNTAgOwpjb25zdCBJUF9YRlJNX1BPTElDWSA9IDE3IDsKdHlwZSA8dHlwZSAxMzA+Owpjb25zdCBJU0lHID0gMSA7CmNvbnN0IElTVFJJUCA9IDMyIDsKY29uc3QgSVVDTEMgPSA1MTIgOwpjb25zdCBJVVRGOCA9IDE2Mzg0IDsKY29uc3QgSVhBTlkgPSAyMDQ4IDsKY29uc3QgSVhPRkYgPSA0MDk2IDsKY29uc3QgSVhPTiA9IDEwMjQgOwp0eXBlIDx0eXBlIDE0MSAiSWZBZGRybXNnIiA8dHlwZSAxNDIgc3RydWN0IHsgRmFtaWx5IDx0eXBlIC01PjsgUHJlZml4bGVuIDx0eXBlIC01PjsgRmxhZ3MgPHR5cGUgLTU+OyBTY29wZSA8dHlwZSAtNT47IEluZGV4IDx0eXBlIC03PjsgfT4+Owp0eXBlIDx0eXBlIDE0MyAiSWZJbmZvbXNnIiA8dHlwZSAxNDQgc3RydWN0IHsgRmFtaWx5IDx0eXBlIC01PjsgLnN5c2NhbGwuX19pZmlfcGFkIDx0eXBlIC01PjsgVHlwZSA8dHlwZSAtNj47IEluZGV4IDx0eXBlIC0zPjsgRmxhZ3MgPHR5cGUgLTc+OyBDaGFuZ2UgPHR5cGUgLTc+OyB9Pj47CmNvbnN0IEltcGxlbWVudHNHZXR3ZCA9IHRydWU7CnR5cGUgPHR5cGUgMTQ1ICJJbmV0NFBrdGluZm8iIDx0eXBlIDE0NiBzdHJ1Y3QgeyBJZmluZGV4IDx0eXBlIC0zPjsgU3BlY19kc3QgPHR5cGUgMTQ3IFs0IF0gPHR5cGUgLTIwPj47IEFkZHIgPHR5cGUgMTQ4IFs0IF0gPHR5cGUgLTIwPj47IH0+PjsKdHlwZSA8dHlwZSAxNDkgIkluZXQ2UGt0aW5mbyIgPHR5cGUgMTUwIHN0cnVjdCB7IEFkZHIgPHR5cGUgMTUxIFsxNiBdIDx0eXBlIC0yMD4+OyBJZmluZGV4IDx0eXBlIC03PjsgfT4+OwpmdW5jIElub3RpZnlBZGRXYXRjaCAoZmQgPHR5cGUgLTExPiwgcGF0aG5hbWUgPHR5cGUgLTE2PiwgbWFzayA8dHlwZSAtNz4pICh3YXRjaGRlc2MgPHR5cGUgLTExPiwgZXJyIDx0eXBlIC0xOT4pOwp0eXBlIDx0eXBlIDE1MiAiSW5vdGlmeUV2ZW50IiA8dHlwZSAxNTMgc3RydWN0IHsgV2QgPHR5cGUgLTM+OyBNYXNrIDx0eXBlIC03PjsgQ29va2llIDx0eXBlIC03PjsgTGVuIDx0eXBlIC03PjsgTmFtZSA8dHlwZSAxNTQgWzAgXSA8dHlwZSAtMT4+OyB9Pj47CmZ1bmMgSW5vdGlmeUluaXQgKCkgKGZkIDx0eXBlIC0xMT4sIGVyciA8dHlwZSAtMTk+KTsKZnVuYyBJbm90aWZ5SW5pdDEgKGZsYWdzIDx0eXBlIC0xMT4pIChmZCA8dHlwZSAtMTE+LCBlcnIgPHR5cGUgLTE5Pik7CmZ1bmMgSW5vdGlmeVJtV2F0Y2ggKGZkIDx0eXBlIC0xMT4sIHdhdGNoZGVzYyA8dHlwZSAtNz4pIChzdWNjZXNzIDx0eXBlIC0xMT4sIGVyciA8dHlwZSAtMTk+KTsKdHlwZSA8dHlwZSAxNTUgIklvdmVjIiA8dHlwZSAxNTYgc3RydWN0IHsgQmFzZSA8dHlwZSAxNTcgKjx0eXBlIC0yMD4+OyBMZW4gPHR5cGUgMTU4ICJJb3ZlY19sZW5fdCIgPHR5cGUgLTc+PjsgfT4KIGZ1bmMgKGlvdiA8dHlwZSAxNTkgKjx0eXBlIDE1NT4+KSBTZXRMZW4gKGxlbmd0aCA8dHlwZSAtMTE+KTsKPjsKdHlwZSA8dHlwZSAxNTg+OwpmdW5jIEtpbGwgKHBpZCA8dHlwZSAtMTE+LCBzaWcgPHR5cGUgNzY+KSAoZXJyIDx0eXBlIC0xOT4pOwpmdW5jIEtsb2djdGwgKHR5cCA8dHlwZSAtMTE+LCBidWYgPHR5cGUgMTYwIFtdIDx0eXBlIC0yMD4+KSAobiA8dHlwZSAtMTE+LCBlcnIgPHR5cGUgLTE5Pik7CmNvbnN0IExJTlVYX1JFQk9PVF9DTURfQ0FEX09GRiA9IDAgOwpjb25zdCBMSU5VWF9SRUJPT1RfQ01EX0NBRF9PTiA9IDIzMDk3Mzc5NjcgOwpjb25zdCBMSU5VWF9SRUJPT1RfQ01EX0hBTFQgPSAzNDU0OTkyNjc1IDsKY29uc3QgTElOVVhfUkVCT09UX0NNRF9LRVhFQyA9IDExNjM0MTI4MDMgOwpjb25zdCBMSU5VWF9SRUJPT1RfQ01EX1BPV0VSX09GRiA9IDExMjYzMDE0MDQgOwpjb25zdCBMSU5VWF9SRUJPT1RfQ01EX1JFU1RBUlQgPSAxOTA4ODc0MyA7CmNvbnN0IExJTlVYX1JFQk9PVF9DTURfUkVTVEFSVDIgPSAyNzEyODQ3MzE2IDsKY29uc3QgTElOVVhfUkVCT09UX0NNRF9TV19TVVNQRU5EID0gMzQ4OTcyNTY2NiA7CmNvbnN0IExJTlVYX1JFQk9PVF9NQUdJQzEgPSA0Mjc2MjE1NDY5IDsKY29uc3QgTElOVVhfUkVCT09UX01BR0lDMiA9IDY3MjI3NDc5MyA7CmNvbnN0IExJTlVYX1JFQk9PVF9NQUdJQzJBID0gODUwNzIyNzggOwpjb25zdCBMSU5VWF9SRUJPT1RfTUFHSUMyQiA9IDM2OTM2NzQ0OCA7CmNvbnN0IExJTlVYX1JFQk9PVF9NQUdJQzJDID0gNTM3OTkzMjE2IDsKY29uc3QgTE9DS19FWCA9IDIgOwpjb25zdCBMT0NLX01BTkQgPSAzMiA7CmNvbnN0IExPQ0tfTkIgPSA0IDsKY29uc3QgTE9DS19SRUFEID0gNjQgOwpjb25zdCBMT0NLX1JXID0gMTkyIDsKY29uc3QgTE9DS19TSCA9IDEgOwpjb25zdCBMT0NLX1VOID0gOCA7CmNvbnN0IExPQ0tfV1JJVEUgPSAxMjggOwpmdW5jIExjaG93biAocGF0aCA8dHlwZSAtMTY+LCB1aWQgPHR5cGUgLTExPiwgZ2lkIDx0eXBlIC0xMT4pIChlcnIgPHR5cGUgLTE5Pik7CnR5cGUgPHR5cGUgMTYxICJMaW5nZXIiIDx0eXBlIDE2MiBzdHJ1Y3QgeyBPbm9mZiA8dHlwZSAtMz47IExpbmdlciA8dHlwZSAtMz47IH0+PjsKZnVuYyBMaW5rIChvbGRwYXRoIDx0eXBlIC0xNj4sIG5ld3BhdGggPHR5cGUgLTE2PikgKGVyciA8dHlwZSAtMTk+KTsKZnVuYyBMaXN0ZW4gKGZkIDx0eXBlIC0xMT4sIG4gPHR5cGUgLTExPikgKGVyciA8dHlwZSAtMTk+KTsKZnVuYyBMaXN0eGF0dHIgKHBhdGggPHR5cGUgLTE2PiwgZGVzdCA8dHlwZSAxNjMgW10gPHR5cGUgLTIwPj4pIChzeiA8dHlwZSAtMTE+LCBlcnIgPHR5cGUgLTE5Pik7CmZ1bmMgTHNmSnVtcCAoY29kZSA8dHlwZSAtMTE+LCBrIDx0eXBlIC0xMT4sIGp0IDx0eXBlIC0xMT4sIGpmIDx0eXBlIC0xMT4pIDx0eXBlIDE2NCAqPHR5cGUgMzA+PjsKZnVuYyBMc2ZTb2NrZXQgKGlmaW5kZXggPHR5cGUgLTExPiwgcHJvdG8gPHR5cGUgLTExPikgKD8gPHR5cGUgLTExPiwgPyA8dHlwZSAtMTk+KTsKZnVuYyBMc2ZTdG10IChjb2RlIDx0eXBlIC0xMT4sIGsgPHR5cGUgLTExPikgPHR5cGUgMTY1ICo8dHlwZSAzMD4+OwpmdW5jIExzdGF0IChwYXRoIDx0eXBlIC0xNj4sIHN0YXQgPHR5cGUgMTY2ICo8dHlwZSA5MD4+KSAoZXJyIDx0eXBlIC0xOT4pOwpjb25zdCBNQURWX0RPRk9SSyA9IDExIDsKY29uc3QgTUFEVl9ET05URk9SSyA9IDEwIDsKY29uc3QgTUFEVl9ET05UTkVFRCA9IDQgOwpjb25zdCBNQURWX05PUk1BTCA9IDAgOwpjb25zdCBNQURWX1JBTkRPTSA9IDEgOwpjb25zdCBNQURWX1JFTU9WRSA9IDkgOwpjb25zdCBNQURWX1NFUVVFTlRJQUwgPSAyIDsKY29uc3QgTUFEVl9XSUxMTkVFRCA9IDMgOwpjb25zdCBNQVBfQU5PTiA9IDIwNDggOwpjb25zdCBNQVBfQU5PTllNT1VTID0gMjA0OCA7CmNvbnN0IE1BUF9ERU5ZV1JJVEUgPSA4MTkyIDsKY29uc3QgTUFQX0VYRUNVVEFCTEUgPSAxNjM4NCA7CmNvbnN0IE1BUF9GSUxFID0gMCA7CmNvbnN0IE1BUF9GSVhFRCA9IDE2IDsKY29uc3QgTUFQX0dST1dTRE9XTiA9IDQwOTYgOwpjb25zdCBNQVBfTE9DS0VEID0gMzI3NjggOwpjb25zdCBNQVBfTk9OQkxPQ0sgPSAxMzEwNzIgOwpjb25zdCBNQVBfTk9SRVNFUlZFID0gMTAyNCA7CmNvbnN0IE1BUF9QT1BVTEFURSA9IDY1NTM2IDsKY29uc3QgTUFQX1BSSVZBVEUgPSAyIDsKY29uc3QgTUFQX1JFTkFNRSA9IDIwNDggOwpjb25zdCBNQVBfU0hBUkVEID0gMSA7CmNvbnN0IE1BUF9UWVBFID0gMTUgOwpjb25zdCBNQVBfVU5JTklUSUFMSVpFRCA9IDY3MTA4ODY0IDsKY29uc3QgTUNMX0NVUlJFTlQgPSAxIDsKY29uc3QgTUNMX0ZVVFVSRSA9IDIgOwpjb25zdCBNTlRfREVUQUNIID0gMiA7CmNvbnN0IE1OVF9FWFBJUkUgPSA0IDsKY29uc3QgTU5UX0ZPUkNFID0gMSA7CmNvbnN0IE1TR19DTVNHX0NMT0VYRUMgPSAxMDczNzQxODI0IDsKY29uc3QgTVNHX0NPTkZJUk0gPSAyMDQ4IDsKY29uc3QgTVNHX0NUUlVOQyA9IDggOwpjb25zdCBNU0dfRE9OVFJPVVRFID0gNCA7CmNvbnN0IE1TR19ET05UV0FJVCA9IDY0IDsKY29uc3QgTVNHX0VPUiA9IDEyOCA7CmNvbnN0IE1TR19FUlJRVUVVRSA9IDgxOTIgOwpjb25zdCBNU0dfRklOID0gNTEyIDsKY29uc3QgTVNHX01PUkUgPSAzMjc2OCA7CmNvbnN0IE1TR19OT1NJR05BTCA9IDE2Mzg0IDsKY29uc3QgTVNHX09PQiA9IDEgOwpjb25zdCBNU0dfUEVFSyA9IDIgOwpjb25zdCBNU0dfUFJPWFkgPSAxNiA7CmNvbnN0IE1TR19SU1QgPSA0MDk2IDsKY29uc3QgTVNHX1NZTiA9IDEwMjQgOwpjb25zdCBNU0dfVFJVTkMgPSAzMiA7CmNvbnN0IE1TR19UUllIQVJEID0gNCA7CmNvbnN0IE1TR19XQUlUQUxMID0gMjU2IDsKY29uc3QgTVNHX1dBSVRGT1JPTkUgPSA2NTUzNiA7CmNvbnN0IE1TX0FDVElWRSA9IDEwNzM3NDE4MjQgOwpjb25zdCBNU19BU1lOQyA9IDEgOwpjb25zdCBNU19CSU5EID0gNDA5NiA7CmNvbnN0IE1TX0JPUk4gPSA1MzY4NzA5MTIgOwpjb25zdCBNU19ESVJTWU5DID0gMTI4IDsKY29uc3QgTVNfSU5WQUxJREFURSA9IDIgOwpjb25zdCBNU19JX1ZFUlNJT04gPSA4Mzg4NjA4IDsKY29uc3QgTVNfS0VSTk1PVU5UID0gNDE5NDMwNCA7CmNvbnN0IE1TX01BTkRMT0NLID0gNjQgOwpjb25zdCBNU19NR0NfTVNLID0gNDI5NDkwMTc2MCA7CmNvbnN0IE1TX01HQ19WQUwgPSAzMjM2NzU3NTA0IDsKY29uc3QgTVNfTU9WRSA9IDgxOTIgOwpjb25zdCBNU19OT0FUSU1FID0gMTAyNCA7CmNvbnN0IE1TX05PREVWID0gNCA7CmNvbnN0IE1TX05PRElSQVRJTUUgPSAyMDQ4IDsKY29uc3QgTVNfTk9FWEVDID0gOCA7CmNvbnN0IE1TX05PU0VDID0gMjY4NDM1NDU2IDsKY29uc3QgTVNfTk9TVUlEID0gMiA7CmNvbnN0IE1TX05PVVNFUiA9IC0yMTQ3NDgzNjQ4IDsKY29uc3QgTVNfUE9TSVhBQ0wgPSA2NTUzNiA7CmNvbnN0IE1TX1BSSVZBVEUgPSAyNjIxNDQgOwpjb25zdCBNU19SRE9OTFkgPSAxIDsKY29uc3QgTVNfUkVDID0gMTYzODQgOwpjb25zdCBNU19SRUxBVElNRSA9IDIwOTcxNTIgOwpjb25zdCBNU19SRU1PVU5UID0gMzIgOwpjb25zdCBNU19STVRfTUFTSyA9IDgzODg2ODkgOwpjb25zdCBNU19TSEFSRUQgPSAxMDQ4NTc2IDsKY29uc3QgTVNfU0lMRU5UID0gMzI3NjggOwpjb25zdCBNU19TTEFWRSA9IDUyNDI4OCA7CmNvbnN0IE1TX1NUUklDVEFUSU1FID0gMTY3NzcyMTYgOwpjb25zdCBNU19TWU5DID0gNCA7CmNvbnN0IE1TX1NZTkNIUk9OT1VTID0gMTYgOwpjb25zdCBNU19VTkJJTkRBQkxFID0gMTMxMDcyIDsKY29uc3QgTVNfVkVSQk9TRSA9IDMyNzY4IDsKZnVuYyBNYWR2aXNlIChiIDx0eXBlIDE2NyBbXSA8dHlwZSAtMjA+PiwgYWR2aWNlIDx0eXBlIC0xMT4pIChlcnIgPHR5cGUgLTE5Pik7CmZ1bmMgTWtkaXIgKHBhdGggPHR5cGUgLTE2PiwgbW9kZSA8dHlwZSAtNz4pIChlcnIgPHR5cGUgLTE5Pik7CmZ1bmMgTWtkaXJhdCAoZGlyZmQgPHR5cGUgLTExPiwgcGF0aCA8dHlwZSAtMTY+LCBtb2RlIDx0eXBlIC03PikgKGVyciA8dHlwZSAtMTk+KTsKZnVuYyBNa2ZpZm8gKHBhdGggPHR5cGUgLTE2PiwgbW9kZSA8dHlwZSAtNz4pIChlcnIgPHR5cGUgLTE5Pik7CmZ1bmMgTWtub2QgKHBhdGggPHR5cGUgLTE2PiwgbW9kZSA8dHlwZSAtNz4sIGRldiA8dHlwZSAtMTE+KSAoZXJyIDx0eXBlIC0xOT4pOwpmdW5jIE1rbm9kYXQgKGRpcmZkIDx0eXBlIC0xMT4sIHBhdGggPHR5cGUgLTE2PiwgbW9kZSA8dHlwZSAtNz4sIGRldiA8dHlwZSAtMTE+KSAoZXJyIDx0eXBlIC0xOT4pOwpmdW5jIE1sb2NrIChiIDx0eXBlIDE2OCBbXSA8dHlwZSAtMjA+PikgKGVyciA8dHlwZSAtMTk+KTsKZnVuYyBNbG9ja2FsbCAoZmxhZ3MgPHR5cGUgLTExPikgKGVyciA8dHlwZSAtMTk+KTsKZnVuYyBNbWFwIChmZCA8dHlwZSAtMTE+LCBvZmZzZXQgPHR5cGUgLTQ+LCBsZW5ndGggPHR5cGUgLTExPiwgcHJvdCA8dHlwZSAtMTE+LCBmbGFncyA8dHlwZSAtMTE+KSAoZGF0YSA8dHlwZSAxNjkgW10gPHR5cGUgLTIwPj4sIGVyciA8dHlwZSAtMTk+KTsKdHlwZSA8dHlwZSAxNzAgIk1vZGVfdCIgPHR5cGUgMTcxICIuc3lzY2FsbC5fbW9kZV90IiA8dHlwZSAtNz4+PjsKZnVuYyBNb3VudCAoc291cmNlIDx0eXBlIC0xNj4sIHRhcmdldCA8dHlwZSAtMTY+LCBmc3R5cGUgPHR5cGUgLTE2PiwgZmxhZ3MgPHR5cGUgLTEzPiwgZGF0YSA8dHlwZSAtMTY+KSAoZXJyIDx0eXBlIC0xOT4pOwpmdW5jIE1wcm90ZWN0IChiIDx0eXBlIDE3MiBbXSA8dHlwZSAtMjA+PiwgcHJvdCA8dHlwZSAtMTE+KSAoZXJyIDx0eXBlIC0xOT4pOwp0eXBlIDx0eXBlIDE3MyAiTXNnaGRyIiA8dHlwZSAxNzQgc3RydWN0IHsgTmFtZSA8dHlwZSAxNzUgKjx0eXBlIC0yMD4+OyBOYW1lbGVuIDx0eXBlIC03PjsgSW92IDx0eXBlIDE3NiAqPHR5cGUgMTU1Pj47IElvdmxlbiA8dHlwZSAtMz47IENvbnRyb2wgPHR5cGUgMTc3ICo8dHlwZSAtMjA+PjsgQ29udHJvbGxlbiA8dHlwZSAxNzggIk1zZ2hkcl9jb250cm9sbGVuX3QiIDx0eXBlIC03Pj47IEZsYWdzIDx0eXBlIC0zPjsgfT4KIGZ1bmMgKG1zZ2hkciA8dHlwZSAxNzkgKjx0eXBlIDE3Mz4+KSBTZXRDb250cm9sbGVuIChsZW5ndGggPHR5cGUgLTExPik7Cj47CnR5cGUgPHR5cGUgMTc4PjsKZnVuYyBNdW5sb2NrIChiIDx0eXBlIDE4MCBbXSA8dHlwZSAtMjA+PikgKGVyciA8dHlwZSAtMTk+KTsKZnVuYyBNdW5sb2NrYWxsICgpIChlcnIgPHR5cGUgLTE5Pik7CmZ1bmMgTXVubWFwIChiIDx0eXBlIDE4MSBbXSA8dHlwZSAtMjA+PikgKGVyciA8dHlwZSAtMTk+KTsKY29uc3QgTkVUTElOS19BRERfTUVNQkVSU0hJUCA9IDEgOwpjb25zdCBORVRMSU5LX0FVRElUID0gOSA7CmNvbnN0IE5FVExJTktfQlJPQURDQVNUX0VSUk9SID0gNCA7CmNvbnN0IE5FVExJTktfQ09OTkVDVEVEID0gMSA7CmNvbnN0IE5FVExJTktfQ09OTkVDVE9SID0gMTEgOwpjb25zdCBORVRMSU5LX0NSWVBUTyA9IDIxIDsKY29uc3QgTkVUTElOS19ETlJUTVNHID0gMTQgOwpjb25zdCBORVRMSU5LX0RST1BfTUVNQkVSU0hJUCA9IDIgOwpjb25zdCBORVRMSU5LX0VDUllQVEZTID0gMTkgOwpjb25zdCBORVRMSU5LX0ZJQl9MT09LVVAgPSAxMCA7CmNvbnN0IE5FVExJTktfRklSRVdBTEwgPSAzIDsKY29uc3QgTkVUTElOS19HRU5FUklDID0gMTYgOwpjb25zdCBORVRMSU5LX0lORVRfRElBRyA9IDQgOwpjb25zdCBORVRMSU5LX0lQNl9GVyA9IDEzIDsKY29uc3QgTkVUTElOS19JU0NTSSA9IDggOwpjb25zdCBORVRMSU5LX0tPQkpFQ1RfVUVWRU5UID0gMTUgOwpjb25zdCBORVRMSU5LX05FVEZJTFRFUiA9IDEyIDsKY29uc3QgTkVUTElOS19ORkxPRyA9IDUgOwpjb25zdCBORVRMSU5LX05PX0VOT0JVRlMgPSA1IDsKY29uc3QgTkVUTElOS19QS1RJTkZPID0gMyA7CmNvbnN0IE5FVExJTktfUkRNQSA9IDIwIDsKY29uc3QgTkVUTElOS19ST1VURSA9IDAgOwpjb25zdCBORVRMSU5LX1NDU0lUUkFOU1BPUlQgPSAxOCA7CmNvbnN0IE5FVExJTktfU0VMSU5VWCA9IDcgOwpjb25zdCBORVRMSU5LX1VOQ09OTkVDVEVEID0gMCA7CmNvbnN0IE5FVExJTktfVU5VU0VEID0gMSA7CmNvbnN0IE5FVExJTktfVVNFUlNPQ0sgPSAyIDsKY29uc3QgTkVUTElOS19YRlJNID0gNiA7CmNvbnN0IE5MMCA9IDAgOwpjb25zdCBOTDEgPSAyNTYgOwpjb25zdCBOTEFfQUxJR05UTyA9IDQgOwpjb25zdCBOTEFfRl9ORVNURUQgPSAzMjc2OCA7CmNvbnN0IE5MQV9GX05FVF9CWVRFT1JERVIgPSAxNjM4NCA7CmNvbnN0IE5MQV9UWVBFX01BU0sgPSAtNDkxNTMgOwpjb25zdCBOTERMWSA9IDI1NiA7CmNvbnN0IE5MTVNHX0FMSUdOVE8gPSA0IDsKY29uc3QgTkxNU0dfRE9ORSA9IDMgOwpjb25zdCBOTE1TR19FUlJPUiA9IDIgOwpjb25zdCBOTE1TR19IRFJMRU4gPSAxNiA7CmNvbnN0IE5MTVNHX01JTl9UWVBFID0gMTYgOwpjb25zdCBOTE1TR19OT09QID0gMSA7CmNvbnN0IE5MTVNHX09WRVJSVU4gPSA0IDsKY29uc3QgTkxNX0ZfQUNLID0gNCA7CmNvbnN0IE5MTV9GX0FQUEVORCA9IDIwNDggOwpjb25zdCBOTE1fRl9BVE9NSUMgPSAxMDI0IDsKY29uc3QgTkxNX0ZfQ1JFQVRFID0gMTAyNCA7CmNvbnN0IE5MTV9GX0RVTVAgPSA3NjggOwpjb25zdCBOTE1fRl9EVU1QX0lOVFIgPSAxNiA7CmNvbnN0IE5MTV9GX0VDSE8gPSA4IDsKY29uc3QgTkxNX0ZfRVhDTCA9IDUxMiA7CmNvbnN0IE5MTV9GX01BVENIID0gNTEyIDsKY29uc3QgTkxNX0ZfTVVMVEkgPSAyIDsKY29uc3QgTkxNX0ZfUkVQTEFDRSA9IDI1NiA7CmNvbnN0IE5MTV9GX1JFUVVFU1QgPSAxIDsKY29uc3QgTkxNX0ZfUk9PVCA9IDI1NiA7CmNvbnN0IE5PRkxTSCA9IDEyOCA7CmZ1bmMgTmFub3NsZWVwICh0aW1lIDx0eXBlIDE4MiAqPHR5cGUgOTQ+PiwgbGVmdG92ZXIgPHR5cGUgMTgzICo8dHlwZSA5ND4+KSAoZXJyIDx0eXBlIC0xOT4pOwp0eXBlIDx0eXBlIDE4NCAiTmV0bGlua01lc3NhZ2UiIDx0eXBlIDE4NSBzdHJ1Y3QgeyBIZWFkZXIgPHR5cGUgMTg2ICJObE1zZ2hkciIgPHR5cGUgMTg3IHN0cnVjdCB7IExlbiA8dHlwZSAtNz47IFR5cGUgPHR5cGUgLTY+OyBGbGFncyA8dHlwZSAtNj47IFNlcSA8dHlwZSAtNz47IFBpZCA8dHlwZSAtNz47IH0+PjsgRGF0YSA8dHlwZSAxODggW10gPHR5cGUgLTIwPj47IH0+PjsKZnVuYyBOZXRsaW5rUklCIChwcm90byA8dHlwZSAtMTE+LCBmYW1pbHkgPHR5cGUgLTExPikgKD8gPHR5cGUgMTg5IFtdIDx0eXBlIC0yMD4+LCA/IDx0eXBlIC0xOT4pOwp0eXBlIDx0eXBlIDE5MCAiTmV0bGlua1JvdXRlQXR0ciIgPHR5cGUgMTkxIHN0cnVjdCB7IEF0dHIgPHR5cGUgMTkyICJSdEF0dHIiIDx0eXBlIDE5MyBzdHJ1Y3QgeyBMZW4gPHR5cGUgLTY+OyBUeXBlIDx0eXBlIC02PjsgfT4+OyBWYWx1ZSA8dHlwZSAxOTQgW10gPHR5cGUgLTIwPj47IH0+PjsKdHlwZSA8dHlwZSAxOTUgIk5ldGxpbmtSb3V0ZVJlcXVlc3QiIDx0eXBlIDE5NiBzdHJ1Y3QgeyBIZWFkZXIgPHR5cGUgMTg2PjsgRGF0YSA8dHlwZSAxOTcgIlJ0R2VubXNnIiA8dHlwZSAxOTggc3RydWN0IHsgRmFtaWx5IDx0eXBlIC01PjsgfT4+OyB9PgogZnVuYyAocnIgPHR5cGUgMTk5ICo8dHlwZSAxOTU+PikgLnN5c2NhbGwudG9XaXJlRm9ybWF0ICgpIDx0eXBlIDIwMCBbXSA8dHlwZSAtMjA+PjsKPjsKdHlwZSA8dHlwZSAyMDEgIk5sQXR0ciIgPHR5cGUgMjAyIHN0cnVjdCB7IExlbiA8dHlwZSAtNj47IFR5cGUgPHR5cGUgLTY+OyB9Pj47CnR5cGUgPHR5cGUgMjAzICJObE1zZ2VyciIgPHR5cGUgMjA0IHN0cnVjdCB7IEVycm9yIDx0eXBlIC0zPjsgTXNnIDx0eXBlIDE4Nj47IH0+PjsKdHlwZSA8dHlwZSAxODY+OwpmdW5jIE5zZWNUb1RpbWVzcGVjIChuc2VjIDx0eXBlIC00PikgKHRzIDx0eXBlIDk0Pik7CmZ1bmMgTnNlY1RvVGltZXZhbCAobnNlYyA8dHlwZSAtND4pICh0diA8dHlwZSAyMz4pOwpjb25zdCBPQ1JOTCA9IDggOwpjb25zdCBPRkRFTCA9IDEyOCA7CmNvbnN0IE9GSUxMID0gNjQgOwpjb25zdCBPTENVQyA9IDIgOwpjb25zdCBPTkxDUiA9IDQgOwpjb25zdCBPTkxSRVQgPSAzMiA7CmNvbnN0IE9OT0NSID0gMTYgOwpjb25zdCBPUE9TVCA9IDEgOwpjb25zdCBPUyA9ICJsaW51eCI7CmNvbnN0IE9fQUNDTU9ERSA9IDMgOwpjb25zdCBPX0FQUEVORCA9IDggOwpjb25zdCBPX0FTWU5DID0gNDA5NiA7CmNvbnN0IE9fQ0xPRVhFQyA9IDUyNDI4OCA7CmNvbnN0IE9fQ1JFQVQgPSAyNTYgOwpjb25zdCBPX0RJUkVDVCA9IDMyNzY4IDsKY29uc3QgT19ESVJFQ1RPUlkgPSA2NTUzNiA7CmNvbnN0IE9fRFNZTkMgPSAxNiA7CmNvbnN0IE9fRVhDTCA9IDEwMjQgOwpjb25zdCBPX0ZTWU5DID0gMTYgOwpjb25zdCBPX0xBUkdFRklMRSA9IDgxOTIgOwpjb25zdCBPX05ERUxBWSA9IDEyOCA7CmNvbnN0IE9fTk9BVElNRSA9IDI2MjE0NCA7CmNvbnN0IE9fTk9DVFRZID0gMjA0OCA7CmNvbnN0IE9fTk9GT0xMT1cgPSAxMzEwNzIgOwpjb25zdCBPX05PTkJMT0NLID0gMTI4IDsKY29uc3QgT19QQVRIID0gMjA5NzE1MiA7CmNvbnN0IE9fUkRPTkxZID0gMCA7CmNvbnN0IE9fUkRXUiA9IDIgOwpjb25zdCBPX1JTWU5DID0gMTYgOwpjb25zdCBPX1NZTkMgPSAxNiA7CmNvbnN0IE9fVFJVTkMgPSA1MTIgOwpjb25zdCBPX1dST05MWSA9IDEgOwp0eXBlIDx0eXBlIDIwNSAiT2Zmc2V0X3QiIDx0eXBlIDIwNiAiLnN5c2NhbGwuX29mZjY0X3QiIDx0eXBlIC00Pj4+OwpmdW5jIE9wZW4gKHBhdGggPHR5cGUgLTE2PiwgbW9kZSA8dHlwZSAtMTE+LCBwZXJtIDx0eXBlIC03PikgKGZkIDx0eXBlIC0xMT4sIGVyciA8dHlwZSAtMTk+KTsKZnVuYyBPcGVuYXQgKGRpcmZkIDx0eXBlIC0xMT4sIHBhdGggPHR5cGUgLTE2PiwgZmxhZ3MgPHR5cGUgLTExPiwgbW9kZSA8dHlwZSAtNz4pIChmZCA8dHlwZSAtMTE+LCBlcnIgPHR5cGUgLTE5Pik7CmNvbnN0IFBBQ0tFVF9BRERfTUVNQkVSU0hJUCA9IDEgOwpjb25zdCBQQUNLRVRfQlJPQURDQVNUID0gMSA7CmNvbnN0IFBBQ0tFVF9EUk9QX01FTUJFUlNISVAgPSAyIDsKY29uc3QgUEFDS0VUX0ZBU1RST1VURSA9IDYgOwpjb25zdCBQQUNLRVRfSE9TVCA9IDAgOwpjb25zdCBQQUNLRVRfTE9PUEJBQ0sgPSA1IDsKY29uc3QgUEFDS0VUX01SX0FMTE1VTFRJID0gMiA7CmNvbnN0IFBBQ0tFVF9NUl9NVUxUSUNBU1QgPSAwIDsKY29uc3QgUEFDS0VUX01SX1BST01JU0MgPSAxIDsKY29uc3QgUEFDS0VUX01VTFRJQ0FTVCA9IDIgOwpjb25zdCBQQUNLRVRfT1RIRVJIT1NUID0gMyA7CmNvbnN0IFBBQ0tFVF9PVVRHT0lORyA9IDQgOwpjb25zdCBQQUNLRVRfUkVDVl9PVVRQVVQgPSAzIDsKY29uc3QgUEFDS0VUX1JYX1JJTkcgPSA1IDsKY29uc3QgUEFDS0VUX1NUQVRJU1RJQ1MgPSA2IDsKY29uc3QgUEFSRU5CID0gMjU2IDsKY29uc3QgUEFSTVJLID0gOCA7CmNvbnN0IFBBUk9ERCA9IDUxMiA7CmNvbnN0IFBDXzJfU1lNTElOS1MgPSAyMCA7CmNvbnN0IFBDX0FMTE9DX1NJWkVfTUlOID0gMTggOwpjb25zdCBQQ19BU1lOQ19JTyA9IDEwIDsKY29uc3QgUENfQ0hPV05fUkVTVFJJQ1RFRCA9IDYgOwpjb25zdCBQQ19GSUxFU0laRUJJVFMgPSAxMyA7CmNvbnN0IFBDX0xJTktfTUFYID0gMCA7CmNvbnN0IFBDX01BWF9DQU5PTiA9IDEgOwpjb25zdCBQQ19NQVhfSU5QVVQgPSAyIDsKY29uc3QgUENfTkFNRV9NQVggPSAzIDsKY29uc3QgUENfTk9fVFJVTkMgPSA3IDsKY29uc3QgUENfUEFUSF9NQVggPSA0IDsKY29uc3QgUENfUElQRV9CVUYgPSA1IDsKY29uc3QgUENfUFJJT19JTyA9IDExIDsKY29uc3QgUENfUkVDX0lOQ1JfWEZFUl9TSVpFID0gMTQgOwpjb25zdCBQQ19SRUNfTUFYX1hGRVJfU0laRSA9IDE1IDsKY29uc3QgUENfUkVDX01JTl9YRkVSX1NJWkUgPSAxNiA7CmNvbnN0IFBDX1JFQ19YRkVSX0FMSUdOID0gMTcgOwpjb25zdCBQQ19TT0NLX01BWEJVRiA9IDEyIDsKY29uc3QgUENfU1lNTElOS19NQVggPSAxOSA7CmNvbnN0IFBDX1NZTkNfSU8gPSA5IDsKY29uc3QgUENfVkRJU0FCTEUgPSA4IDsKY29uc3QgUEVORElOID0gMTYzODQgOwpjb25zdCBQUklPX01BWCA9IDIwIDsKY29uc3QgUFJJT19NSU4gPSAtMjAgOwpjb25zdCBQUklPX1BHUlAgPSAxIDsKY29uc3QgUFJJT19QUk9DRVNTID0gMCA7CmNvbnN0IFBSSU9fVVNFUiA9IDIgOwpjb25zdCBQUk9UX0VYRUMgPSA0IDsKY29uc3QgUFJPVF9HUk9XU0RPV04gPSAxNjc3NzIxNiA7CmNvbnN0IFBST1RfR1JPV1NVUCA9IDMzNTU0NDMyIDsKY29uc3QgUFJPVF9OT05FID0gMCA7CmNvbnN0IFBST1RfUkVBRCA9IDEgOwpjb25zdCBQUk9UX1dSSVRFID0gMiA7CmNvbnN0IFBSX0NBUEJTRVRfRFJPUCA9IDI0IDsKY29uc3QgUFJfQ0FQQlNFVF9SRUFEID0gMjMgOwpjb25zdCBQUl9FTkRJQU5fQklHID0gMCA7CmNvbnN0IFBSX0VORElBTl9MSVRUTEUgPSAxIDsKY29uc3QgUFJfRU5ESUFOX1BQQ19MSVRUTEUgPSAyIDsKY29uc3QgUFJfRlBFTVVfTk9QUklOVCA9IDEgOwpjb25zdCBQUl9GUEVNVV9TSUdGUEUgPSAyIDsKY29uc3QgUFJfRlBfRVhDX0FTWU5DID0gMiA7CmNvbnN0IFBSX0ZQX0VYQ19ESVNBQkxFRCA9IDAgOwpjb25zdCBQUl9GUF9FWENfRElWID0gNjU1MzYgOwpjb25zdCBQUl9GUF9FWENfSU5WID0gMTA0ODU3NiA7CmNvbnN0IFBSX0ZQX0VYQ19OT05SRUNPViA9IDEgOwpjb25zdCBQUl9GUF9FWENfT1ZGID0gMTMxMDcyIDsKY29uc3QgUFJfRlBfRVhDX1BSRUNJU0UgPSAzIDsKY29uc3QgUFJfRlBfRVhDX1JFUyA9IDUyNDI4OCA7CmNvbnN0IFBSX0ZQX0VYQ19TV19FTkFCTEUgPSAxMjggOwpjb25zdCBQUl9GUF9FWENfVU5EID0gMjYyMTQ0IDsKY29uc3QgUFJfR0VUX0RVTVBBQkxFID0gMyA7CmNvbnN0IFBSX0dFVF9FTkRJQU4gPSAxOSA7CmNvbnN0IFBSX0dFVF9GUEVNVSA9IDkgOwpjb25zdCBQUl9HRVRfRlBFWEMgPSAxMSA7CmNvbnN0IFBSX0dFVF9LRUVQQ0FQUyA9IDcgOwpjb25zdCBQUl9HRVRfTkFNRSA9IDE2IDsKY29uc3QgUFJfR0VUX1BERUFUSFNJRyA9IDIgOwpjb25zdCBQUl9HRVRfU0VDQ09NUCA9IDIxIDsKY29uc3QgUFJfR0VUX1NFQ1VSRUJJVFMgPSAyNyA7CmNvbnN0IFBSX0dFVF9USU1FUlNMQUNLID0gMzAgOwpjb25zdCBQUl9HRVRfVElNSU5HID0gMTMgOwpjb25zdCBQUl9HRVRfVFNDID0gMjUgOwpjb25zdCBQUl9HRVRfVU5BTElHTiA9IDUgOwpjb25zdCBQUl9NQ0VfS0lMTCA9IDMzIDsKY29uc3QgUFJfTUNFX0tJTExfQ0xFQVIgPSAwIDsKY29uc3QgUFJfTUNFX0tJTExfREVGQVVMVCA9IDIgOwpjb25zdCBQUl9NQ0VfS0lMTF9FQVJMWSA9IDEgOwpjb25zdCBQUl9NQ0VfS0lMTF9HRVQgPSAzNCA7CmNvbnN0IFBSX01DRV9LSUxMX0xBVEUgPSAwIDsKY29uc3QgUFJfTUNFX0tJTExfU0VUID0gMSA7CmNvbnN0IFBSX1NFVF9EVU1QQUJMRSA9IDQgOwpjb25zdCBQUl9TRVRfRU5ESUFOID0gMjAgOwpjb25zdCBQUl9TRVRfRlBFTVUgPSAxMCA7CmNvbnN0IFBSX1NFVF9GUEVYQyA9IDEyIDsKY29uc3QgUFJfU0VUX0tFRVBDQVBTID0gOCA7CmNvbnN0IFBSX1NFVF9OQU1FID0gMTUgOwpjb25zdCBQUl9TRVRfUERFQVRIU0lHID0gMSA7CmNvbnN0IFBSX1NFVF9TRUNDT01QID0gMjIgOwpjb25zdCBQUl9TRVRfU0VDVVJFQklUUyA9IDI4IDsKY29uc3QgUFJfU0VUX1RJTUVSU0xBQ0sgPSAyOSA7CmNvbnN0IFBSX1NFVF9USU1JTkcgPSAxNCA7CmNvbnN0IFBSX1NFVF9UU0MgPSAyNiA7CmNvbnN0IFBSX1NFVF9VTkFMSUdOID0gNiA7CmNvbnN0IFBSX1RBU0tfUEVSRl9FVkVOVFNfRElTQUJMRSA9IDMxIDsKY29uc3QgUFJfVEFTS19QRVJGX0VWRU5UU19FTkFCTEUgPSAzMiA7CmNvbnN0IFBSX1RJTUlOR19TVEFUSVNUSUNBTCA9IDAgOwpjb25zdCBQUl9USU1JTkdfVElNRVNUQU1QID0gMSA7CmNvbnN0IFBSX1RTQ19FTkFCTEUgPSAxIDsKY29uc3QgUFJfVFNDX1NJR1NFR1YgPSAyIDsKY29uc3QgUFJfVU5BTElHTl9OT1BSSU5UID0gMSA7CmNvbnN0IFBSX1VOQUxJR05fU0lHQlVTID0gMiA7CmNvbnN0IFBUUkFDRV9BVFRBQ0ggPSAxNiA7CmNvbnN0IFBUUkFDRV9DT05UID0gNyA7CmNvbnN0IFBUUkFDRV9ERVRBQ0ggPSAxNyA7CmNvbnN0IFBUUkFDRV9FVkVOVF9DTE9ORSA9IDMgOwpjb25zdCBQVFJBQ0VfRVZFTlRfRVhFQyA9IDQgOwpjb25zdCBQVFJBQ0VfRVZFTlRfRVhJVCA9IDYgOwpjb25zdCBQVFJBQ0VfRVZFTlRfRk9SSyA9IDEgOwpjb25zdCBQVFJBQ0VfRVZFTlRfVkZPUksgPSAyIDsKY29uc3QgUFRSQUNFX0VWRU5UX1ZGT1JLX0RPTkUgPSA1IDsKY29uc3QgUFRSQUNFX0dFVEVWRU5UTVNHID0gMTY4OTcgOwpjb25zdCBQVFJBQ0VfR0VURlBSRUdTID0gMTQgOwpjb25zdCBQVFJBQ0VfR0VURlBYUkVHUyA9IDE4IDsKY29uc3QgUFRSQUNFX0dFVFJFR1MgPSAxMiA7CmNvbnN0IFBUUkFDRV9HRVRSRUdTRVQgPSAxNjkwMCA7CmNvbnN0IFBUUkFDRV9HRVRTSUdJTkZPID0gMTY4OTggOwpjb25zdCBQVFJBQ0VfSU5URVJSVVBUID0gMTY5MDMgOwpjb25zdCBQVFJBQ0VfS0lMTCA9IDggOwpjb25zdCBQVFJBQ0VfTElTVEVOID0gMTY5MDQgOwpjb25zdCBQVFJBQ0VfT19NQVNLID0gMjU1IDsKY29uc3QgUFRSQUNFX09fVFJBQ0VDTE9ORSA9IDggOwpjb25zdCBQVFJBQ0VfT19UUkFDRUVYRUMgPSAxNiA7CmNvbnN0IFBUUkFDRV9PX1RSQUNFRVhJVCA9IDY0IDsKY29uc3QgUFRSQUNFX09fVFJBQ0VGT1JLID0gMiA7CmNvbnN0IFBUUkFDRV9PX1RSQUNFU0VDQ09NUCA9IDEyOCA7CmNvbnN0IFBUUkFDRV9PX1RSQUNFU1lTR09PRCA9IDEgOwpjb25zdCBQVFJBQ0VfT19UUkFDRVZGT1JLID0gNCA7CmNvbnN0IFBUUkFDRV9PX1RSQUNFVkZPUktET05FID0gMzIgOwpjb25zdCBQVFJBQ0VfUEVFS0RBVEEgPSAyIDsKY29uc3QgUFRSQUNFX1BFRUtURVhUID0gMSA7CmNvbnN0IFBUUkFDRV9QRUVLVVNFUiA9IDMgOwpjb25zdCBQVFJBQ0VfUE9LRURBVEEgPSA1IDsKY29uc3QgUFRSQUNFX1BPS0VURVhUID0gNCA7CmNvbnN0IFBUUkFDRV9QT0tFVVNFUiA9IDYgOwpjb25zdCBQVFJBQ0VfU0VJWkUgPSAxNjkwMiA7CmNvbnN0IFBUUkFDRV9TRUlaRV9ERVZFTCA9IDIxNDc0ODM2NDggOwpjb25zdCBQVFJBQ0VfU0VURlBSRUdTID0gMTUgOwpjb25zdCBQVFJBQ0VfU0VURlBYUkVHUyA9IDE5IDsKY29uc3QgUFRSQUNFX1NFVE9QVElPTlMgPSAxNjg5NiA7CmNvbnN0IFBUUkFDRV9TRVRSRUdTID0gMTMgOwpjb25zdCBQVFJBQ0VfU0VUUkVHU0VUID0gMTY5MDEgOwpjb25zdCBQVFJBQ0VfU0VUU0lHSU5GTyA9IDE2ODk5IDsKY29uc3QgUFRSQUNFX1NJTkdMRVNURVAgPSA5IDsKY29uc3QgUFRSQUNFX1NZU0NBTEwgPSAyNCA7CmNvbnN0IFBUUkFDRV9UUkFDRU1FID0gMCA7CmZ1bmMgUGFyc2VEaXJlbnQgKGJ1ZiA8dHlwZSAyMDcgW10gPHR5cGUgLTIwPj4sIG1heCA8dHlwZSAtMTE+LCBuYW1lcyA8dHlwZSAyMDggW10gPHR5cGUgLTE2Pj4pIChjb25zdW1lZCA8dHlwZSAtMTE+LCBjb3VudCA8dHlwZSAtMTE+LCBuZXduYW1lcyA8dHlwZSAyMDkgW10gPHR5cGUgLTE2Pj4pOwpmdW5jIFBhcnNlTmV0bGlua01lc3NhZ2UgKGIgPHR5cGUgMjEwIFtdIDx0eXBlIC0yMD4+KSAoPyA8dHlwZSAyMTEgW10gPHR5cGUgMTg0Pj4sID8gPHR5cGUgLTE5Pik7CmZ1bmMgUGFyc2VOZXRsaW5rUm91dGVBdHRyIChtIDx0eXBlIDIxMiAqPHR5cGUgMTg0Pj4pICg/IDx0eXBlIDIxMyBbXSA8dHlwZSAxOTA+PiwgPyA8dHlwZSAtMTk+KTsKZnVuYyBQYXJzZVNvY2tldENvbnRyb2xNZXNzYWdlIChiIDx0eXBlIDIxNCBbXSA8dHlwZSAtMjA+PikgKD8gPHR5cGUgMjE1IFtdIDx0eXBlIDIxNiAiU29ja2V0Q29udHJvbE1lc3NhZ2UiIDx0eXBlIDIxNyBzdHJ1Y3QgeyBIZWFkZXIgPHR5cGUgMzQ+OyBEYXRhIDx0eXBlIDIxOCBbXSA8dHlwZSAtMjA+PjsgfT4+PiwgPyA8dHlwZSAtMTk+KTsKZnVuYyBQYXJzZVVuaXhDcmVkZW50aWFscyAobSA8dHlwZSAyMTkgKjx0eXBlIDIxNj4+KSAoPyA8dHlwZSAyMjAgKjx0eXBlIDIyMSAiVWNyZWQiIDx0eXBlIDIyMiBzdHJ1Y3QgeyBQaWQgPHR5cGUgLTM+OyBVaWQgPHR5cGUgLTc+OyBHaWQgPHR5cGUgLTc+OyB9Pj4+LCA/IDx0eXBlIC0xOT4pOwpmdW5jIFBhcnNlVW5peFJpZ2h0cyAobSA8dHlwZSAyMTk+KSAoPyA8dHlwZSAyMjMgW10gPHR5cGUgLTExPj4sID8gPHR5cGUgLTE5Pik7CnR5cGUgPHR5cGUgMjI0ICJQYXNzd2QiIDx0eXBlIDIyNSBzdHJ1Y3QgeyBQd19uYW1lIDx0eXBlIDIyNiAqPHR5cGUgLTE+PjsgUHdfcGFzc3dkIDx0eXBlIDIyNyAqPHR5cGUgLTE+PjsgUHdfdWlkIDx0eXBlIC03PjsgUHdfZ2lkIDx0eXBlIC03PjsgUHdfZ2Vjb3MgPHR5cGUgMjI4ICo8dHlwZSAtMT4+OyBQd19kaXIgPHR5cGUgMjI5ICo8dHlwZSAtMT4+OyBQd19zaGVsbCA8dHlwZSAyMzAgKjx0eXBlIC0xPj47IH0+PjsKY29uc3QgUGF0aE1heCA9IDQwOTYgOwpmdW5jIFBhdXNlICgpIChlcnIgPHR5cGUgLTE5Pik7CnR5cGUgPHR5cGUgMjMxICJQaWRfdCIgPHR5cGUgMjMyICIuc3lzY2FsbC5fcGlkX3QiIDx0eXBlIC0zPj4+OwpmdW5jIFBpcGUgKHAgPHR5cGUgMjMzIFtdIDx0eXBlIC0xMT4+KSAoZXJyIDx0eXBlIC0xOT4pOwpmdW5jIFBpcGUyIChwIDx0eXBlIDIzNCBbXSA8dHlwZSAtMTE+PiwgZmxhZ3MgPHR5cGUgLTExPikgKGVyciA8dHlwZSAtMTk+KTsKZnVuYyBQaXZvdFJvb3QgKG5ld3Jvb3QgPHR5cGUgLTE2PiwgcHV0b2xkIDx0eXBlIC0xNj4pIChlcnIgPHR5cGUgLTE5Pik7CmZ1bmMgUHJlYWQgKGZkIDx0eXBlIC0xMT4sIHAgPHR5cGUgMjM1IFtdIDx0eXBlIC0yMD4+LCBvZmZzZXQgPHR5cGUgLTQ+KSAobiA8dHlwZSAtMTE+LCBlcnIgPHR5cGUgLTE5Pik7CnR5cGUgPHR5cGUgNjg+OwpmdW5jIFB0cmFjZUF0dGFjaCAocGlkIDx0eXBlIC0xMT4pIChlcnIgPHR5cGUgLTE5Pik7CmZ1bmMgUHRyYWNlQ29udCAocGlkIDx0eXBlIC0xMT4sIHNpZ25hbCA8dHlwZSAtMTE+KSAoZXJyIDx0eXBlIC0xOT4pOwpmdW5jIFB0cmFjZURldGFjaCAocGlkIDx0eXBlIC0xMT4pIChlcnIgPHR5cGUgLTE5Pik7CmZ1bmMgUHRyYWNlR2V0RXZlbnRNc2cgKHBpZCA8dHlwZSAtMTE+KSAobXNnIDx0eXBlIC0xMj4sIGVyciA8dHlwZSAtMTk+KTsKZnVuYyBQdHJhY2VQZWVrRGF0YSAocGlkIDx0eXBlIC0xMT4sIGFkZHIgPHR5cGUgLTEzPiwgb3V0IDx0eXBlIDIzNiBbXSA8dHlwZSAtMjA+PikgKGNvdW50IDx0eXBlIC0xMT4sIGVyciA8dHlwZSAtMTk+KTsKZnVuYyBQdHJhY2VQZWVrVGV4dCAocGlkIDx0eXBlIC0xMT4sIGFkZHIgPHR5cGUgLTEzPiwgb3V0IDx0eXBlIDIzNyBbXSA8dHlwZSAtMjA+PikgKGNvdW50IDx0eXBlIC0xMT4sIGVyciA8dHlwZSAtMTk+KTsKZnVuYyBQdHJhY2VQb2tlRGF0YSAocGlkIDx0eXBlIC0xMT4sIGFkZHIgPHR5cGUgLTEzPiwgZGF0YSA8dHlwZSAyMzggW10gPHR5cGUgLTIwPj4pIChjb3VudCA8dHlwZSAtMTE+LCBlcnIgPHR5cGUgLTE5Pik7CmZ1bmMgUHRyYWNlUG9rZVRleHQgKHBpZCA8dHlwZSAtMTE+LCBhZGRyIDx0eXBlIC0xMz4sIGRhdGEgPHR5cGUgMjM5IFtdIDx0eXBlIC0yMD4+KSAoY291bnQgPHR5cGUgLTExPiwgZXJyIDx0eXBlIC0xOT4pOwpmdW5jIFB0cmFjZVNldE9wdGlvbnMgKHBpZCA8dHlwZSAtMTE+LCBvcHRpb25zIDx0eXBlIC0xMT4pIChlcnIgPHR5cGUgLTE5Pik7CmZ1bmMgUHRyYWNlU2luZ2xlU3RlcCAocGlkIDx0eXBlIC0xMT4pIChlcnIgPHR5cGUgLTE5Pik7CmZ1bmMgUHdyaXRlIChmZCA8dHlwZSAtMTE+LCBwIDx0eXBlIDI0MCBbXSA8dHlwZSAtMjA+Piwgb2Zmc2V0IDx0eXBlIC00PikgKG4gPHR5cGUgLTExPiwgZXJyIDx0eXBlIC0xOT4pOwpjb25zdCBSTElNSVRfQVMgPSA2IDsKY29uc3QgUkxJTUlUX0NPUkUgPSA0IDsKY29uc3QgUkxJTUlUX0NQVSA9IDAgOwpjb25zdCBSTElNSVRfREFUQSA9IDIgOwpjb25zdCBSTElNSVRfRlNJWkUgPSAxIDsKY29uc3QgUkxJTUlUX05PRklMRSA9IDUgOwpjb25zdCBSTElNSVRfU1RBQ0sgPSAzIDsKY29uc3QgUkxJTV9JTkZJTklUWSA9IDkyMjMzNzIwMzY4NTQ3NzU4MDcgOwpjb25zdCBSTElNX1NBVkVEX0NVUiA9IDkyMjMzNzIwMzY4NTQ3NzU4MDcgOwpjb25zdCBSTElNX1NBVkVEX01BWCA9IDkyMjMzNzIwMzY4NTQ3NzU4MDcgOwpjb25zdCBSVEFYX0FEVk1TUyA9IDggOwpjb25zdCBSVEFYX0NXTkQgPSA3IDsKY29uc3QgUlRBWF9GRUFUVVJFUyA9IDEyIDsKY29uc3QgUlRBWF9GRUFUVVJFX0FMTEZSQUcgPSA4IDsKY29uc3QgUlRBWF9GRUFUVVJFX0VDTiA9IDEgOwpjb25zdCBSVEFYX0ZFQVRVUkVfU0FDSyA9IDIgOwpjb25zdCBSVEFYX0ZFQVRVUkVfVElNRVNUQU1QID0gNCA7CmNvbnN0IFJUQVhfSE9QTElNSVQgPSAxMCA7CmNvbnN0IFJUQVhfSU5JVENXTkQgPSAxMSA7CmNvbnN0IFJUQVhfSU5JVFJXTkQgPSAxNCA7CmNvbnN0IFJUQVhfTE9DSyA9IDEgOwpjb25zdCBSVEFYX01UVSA9IDIgOwpjb25zdCBSVEFYX1JFT1JERVJJTkcgPSA5IDsKY29uc3QgUlRBWF9SVE9fTUlOID0gMTMgOwpjb25zdCBSVEFYX1JUVCA9IDQgOwpjb25zdCBSVEFYX1JUVFZBUiA9IDUgOwpjb25zdCBSVEFYX1NTVEhSRVNIID0gNiA7CmNvbnN0IFJUQVhfVU5TUEVDID0gMCA7CmNvbnN0IFJUQVhfV0lORE9XID0gMyA7CmNvbnN0IFJUQV9BTElHTlRPID0gNCA7CmNvbnN0IFJUQV9DQUNIRUlORk8gPSAxMiA7CmNvbnN0IFJUQV9EU1QgPSAxIDsKY29uc3QgUlRBX0ZMT1cgPSAxMSA7CmNvbnN0IFJUQV9HQVRFV0FZID0gNSA7CmNvbnN0IFJUQV9JSUYgPSAzIDsKY29uc3QgUlRBX01BUksgPSAxNiA7CmNvbnN0IFJUQV9NRVRSSUNTID0gOCA7CmNvbnN0IFJUQV9NUF9BTEdPID0gMTQgOwpjb25zdCBSVEFfTVVMVElQQVRIID0gOSA7CmNvbnN0IFJUQV9PSUYgPSA0IDsKY29uc3QgUlRBX1BSRUZTUkMgPSA3IDsKY29uc3QgUlRBX1BSSU9SSVRZID0gNiA7CmNvbnN0IFJUQV9QUk9UT0lORk8gPSAxMCA7CmNvbnN0IFJUQV9TRVNTSU9OID0gMTMgOwpjb25zdCBSVEFfU1JDID0gMiA7CmNvbnN0IFJUQV9UQUJMRSA9IDE1IDsKY29uc3QgUlRBX1VOU1BFQyA9IDAgOwpjb25zdCBSVENGX0RJUkVDVFNSQyA9IDY3MTA4ODY0IDsKY29uc3QgUlRDRl9ET1JFRElSRUNUID0gMTY3NzcyMTYgOwpjb25zdCBSVENGX0xPRyA9IDMzNTU0NDMyIDsKY29uc3QgUlRDRl9NQVNRID0gNDE5NDMwNCA7CmNvbnN0IFJUQ0ZfTkFUID0gODM4ODYwOCA7CmNvbnN0IFJUQ0ZfVkFMVkUgPSAyMDk3MTUyIDsKY29uc3QgUlRGX0FERFJDTEFTU01BU0sgPSA0MTYwNzQ5NTY4IDsKY29uc3QgUlRGX0FERFJDT05GID0gMjYyMTQ0IDsKY29uc3QgUlRGX0FMTE9OTElOSyA9IDEzMTA3MiA7CmNvbnN0IFJURl9CUk9BRENBU1QgPSAyNjg0MzU0NTYgOwpjb25zdCBSVEZfQ0FDSEUgPSAxNjc3NzIxNiA7CmNvbnN0IFJURl9ERUZBVUxUID0gNjU1MzYgOwpjb25zdCBSVEZfRFlOQU1JQyA9IDE2IDsKY29uc3QgUlRGX0ZMT1cgPSAzMzU1NDQzMiA7CmNvbnN0IFJURl9HQVRFV0FZID0gMiA7CmNvbnN0IFJURl9IT1NUID0gNCA7CmNvbnN0IFJURl9JTlRFUkZBQ0UgPSAxMDczNzQxODI0IDsKY29uc3QgUlRGX0lSVFQgPSAyNTYgOwpjb25zdCBSVEZfTElOS1JUID0gMTA0ODU3NiA7CmNvbnN0IFJURl9MT0NBTCA9IDIxNDc0ODM2NDggOwpjb25zdCBSVEZfTU9ESUZJRUQgPSAzMiA7CmNvbnN0IFJURl9NU1MgPSA2NCA7CmNvbnN0IFJURl9NVFUgPSA2NCA7CmNvbnN0IFJURl9NVUxUSUNBU1QgPSA1MzY4NzA5MTIgOwpjb25zdCBSVEZfTkFUID0gMTM0MjE3NzI4IDsKY29uc3QgUlRGX05PRk9SV0FSRCA9IDQwOTYgOwpjb25zdCBSVEZfTk9ORVhUSE9QID0gMjA5NzE1MiA7CmNvbnN0IFJURl9OT1BNVFVESVNDID0gMTYzODQgOwpjb25zdCBSVEZfUE9MSUNZID0gNjcxMDg4NjQgOwpjb25zdCBSVEZfUkVJTlNUQVRFID0gOCA7CmNvbnN0IFJURl9SRUpFQ1QgPSA1MTIgOwpjb25zdCBSVEZfU1RBVElDID0gMTAyNCA7CmNvbnN0IFJURl9USFJPVyA9IDgxOTIgOwpjb25zdCBSVEZfVVAgPSAxIDsKY29uc3QgUlRGX1dJTkRPVyA9IDEyOCA7CmNvbnN0IFJURl9YUkVTT0xWRSA9IDIwNDggOwpjb25zdCBSVE1HUlBfREVDbmV0X0lGQUREUiA9IDQwOTYgOwpjb25zdCBSVE1HUlBfREVDbmV0X1JPVVRFID0gMTYzODQgOwpjb25zdCBSVE1HUlBfSVBWNF9JRkFERFIgPSAxNiA7CmNvbnN0IFJUTUdSUF9JUFY0X01ST1VURSA9IDMyIDsKY29uc3QgUlRNR1JQX0lQVjRfUk9VVEUgPSA2NCA7CmNvbnN0IFJUTUdSUF9JUFY0X1JVTEUgPSAxMjggOwpjb25zdCBSVE1HUlBfSVBWNl9JRkFERFIgPSAyNTYgOwpjb25zdCBSVE1HUlBfSVBWNl9JRklORk8gPSAyMDQ4IDsKY29uc3QgUlRNR1JQX0lQVjZfTVJPVVRFID0gNTEyIDsKY29uc3QgUlRNR1JQX0lQVjZfUFJFRklYID0gMTMxMDcyIDsKY29uc3QgUlRNR1JQX0lQVjZfUk9VVEUgPSAxMDI0IDsKY29uc3QgUlRNR1JQX0xJTksgPSAxIDsKY29uc3QgUlRNR1JQX05FSUdIID0gNCA7CmNvbnN0IFJUTUdSUF9OT1RJRlkgPSAyIDsKY29uc3QgUlRNR1JQX1RDID0gOCA7CmNvbnN0IFJUTVNHX0FSX0ZBSUxFRCA9IDgxIDsKY29uc3QgUlRNU0dfQ09OVFJPTCA9IDY0IDsKY29uc3QgUlRNU0dfREVMREVWSUNFID0gMTggOwpjb25zdCBSVE1TR19ERUxST1VURSA9IDM0IDsKY29uc3QgUlRNU0dfREVMUlVMRSA9IDUwIDsKY29uc3QgUlRNU0dfTkVXREVWSUNFID0gMTcgOwpjb25zdCBSVE1TR19ORVdST1VURSA9IDMzIDsKY29uc3QgUlRNU0dfTkVXUlVMRSA9IDQ5IDsKY29uc3QgUlRNU0dfT1ZFUlJVTiA9IDQgOwpjb25zdCBSVE1fQkFTRSA9IDE2IDsKY29uc3QgUlRNX0RFTEFDVElPTiA9IDQ5IDsKY29uc3QgUlRNX0RFTEFERFIgPSAyMSA7CmNvbnN0IFJUTV9ERUxBRERSTEFCRUwgPSA3MyA7CmNvbnN0IFJUTV9ERUxMSU5LID0gMTcgOwpjb25zdCBSVE1fREVMTkVJR0ggPSAyOSA7CmNvbnN0IFJUTV9ERUxRRElTQyA9IDM3IDsKY29uc3QgUlRNX0RFTFJPVVRFID0gMjUgOwpjb25zdCBSVE1fREVMUlVMRSA9IDMzIDsKY29uc3QgUlRNX0RFTFRDTEFTUyA9IDQxIDsKY29uc3QgUlRNX0RFTFRGSUxURVIgPSA0NSA7CmNvbnN0IFJUTV9GX0NMT05FRCA9IDUxMiA7CmNvbnN0IFJUTV9GX0VRVUFMSVpFID0gMTAyNCA7CmNvbnN0IFJUTV9GX05PVElGWSA9IDI1NiA7CmNvbnN0IFJUTV9GX1BSRUZJWCA9IDIwNDggOwpjb25zdCBSVE1fR0VUQUNUSU9OID0gNTAgOwpjb25zdCBSVE1fR0VUQUREUiA9IDIyIDsKY29uc3QgUlRNX0dFVEFERFJMQUJFTCA9IDc0IDsKY29uc3QgUlRNX0dFVEFOWUNBU1QgPSA2MiA7CmNvbnN0IFJUTV9HRVREQ0IgPSA3OCA7CmNvbnN0IFJUTV9HRVRMSU5LID0gMTggOwpjb25zdCBSVE1fR0VUTVVMVElDQVNUID0gNTggOwpjb25zdCBSVE1fR0VUTkVJR0ggPSAzMCA7CmNvbnN0IFJUTV9HRVRORUlHSFRCTCA9IDY2IDsKY29uc3QgUlRNX0dFVFFESVNDID0gMzggOwpjb25zdCBSVE1fR0VUUk9VVEUgPSAyNiA7CmNvbnN0IFJUTV9HRVRSVUxFID0gMzQgOwpjb25zdCBSVE1fR0VUVENMQVNTID0gNDIgOwpjb25zdCBSVE1fR0VUVEZJTFRFUiA9IDQ2IDsKY29uc3QgUlRNX05FV0FDVElPTiA9IDQ4IDsKY29uc3QgUlRNX05FV0FERFIgPSAyMCA7CmNvbnN0IFJUTV9ORVdBRERSTEFCRUwgPSA3MiA7CmNvbnN0IFJUTV9ORVdMSU5LID0gMTYgOwpjb25zdCBSVE1fTkVXTkRVU0VST1BUID0gNjggOwpjb25zdCBSVE1fTkVXTkVJR0ggPSAyOCA7CmNvbnN0IFJUTV9ORVdORUlHSFRCTCA9IDY0IDsKY29uc3QgUlRNX05FV1BSRUZJWCA9IDUyIDsKY29uc3QgUlRNX05FV1FESVNDID0gMzYgOwpjb25zdCBSVE1fTkVXUk9VVEUgPSAyNCA7CmNvbnN0IFJUTV9ORVdSVUxFID0gMzIgOwpjb25zdCBSVE1fTkVXVENMQVNTID0gNDAgOwpjb25zdCBSVE1fTkVXVEZJTFRFUiA9IDQ0IDsKY29uc3QgUlRNX1NFVERDQiA9IDc5IDsKY29uc3QgUlRNX1NFVExJTksgPSAxOSA7CmNvbnN0IFJUTV9TRVRORUlHSFRCTCA9IDY3IDsKY29uc3QgUlRORVRMSU5LX0hBVkVfUEVFUklORk8gPSAxIDsKY29uc3QgUlROSF9BTElHTlRPID0gNCA7CmNvbnN0IFJUTkhfRl9ERUFEID0gMSA7CmNvbnN0IFJUTkhfRl9PTkxJTksgPSA0IDsKY29uc3QgUlROSF9GX1BFUlZBU0lWRSA9IDIgOwpjb25zdCBSVE5MR1JQX0RDQiA9IDIzIDsKY29uc3QgUlROTEdSUF9ERUNuZXRfSUZBRERSID0gMTMgOwpjb25zdCBSVE5MR1JQX0RFQ25ldF9ST1VURSA9IDE1IDsKY29uc3QgUlROTEdSUF9ERUNuZXRfUlVMRSA9IDE2IDsKY29uc3QgUlROTEdSUF9JUFY0X0lGQUREUiA9IDUgOwpjb25zdCBSVE5MR1JQX0lQVjRfTVJPVVRFID0gNiA7CmNvbnN0IFJUTkxHUlBfSVBWNF9ST1VURSA9IDcgOwpjb25zdCBSVE5MR1JQX0lQVjRfUlVMRSA9IDggOwpjb25zdCBSVE5MR1JQX0lQVjZfSUZBRERSID0gOSA7CmNvbnN0IFJUTkxHUlBfSVBWNl9JRklORk8gPSAxMiA7CmNvbnN0IFJUTkxHUlBfSVBWNl9NUk9VVEUgPSAxMCA7CmNvbnN0IFJUTkxHUlBfSVBWNl9QUkVGSVggPSAxOCA7CmNvbnN0IFJUTkxHUlBfSVBWNl9ST1VURSA9IDExIDsKY29uc3QgUlROTEdSUF9JUFY2X1JVTEUgPSAxOSA7CmNvbnN0IFJUTkxHUlBfTElOSyA9IDEgOwpjb25zdCBSVE5MR1JQX05EX1VTRVJPUFQgPSAyMCA7CmNvbnN0IFJUTkxHUlBfTkVJR0ggPSAzIDsKY29uc3QgUlROTEdSUF9OT05FID0gMCA7CmNvbnN0IFJUTkxHUlBfTk9QMiA9IDE0IDsKY29uc3QgUlROTEdSUF9OT1A0ID0gMTcgOwpjb25zdCBSVE5MR1JQX05PVElGWSA9IDIgOwpjb25zdCBSVE5MR1JQX1BIT05FVF9JRkFERFIgPSAyMSA7CmNvbnN0IFJUTkxHUlBfUEhPTkVUX1JPVVRFID0gMjIgOwpjb25zdCBSVE5MR1JQX1RDID0gNCA7CmNvbnN0IFJUTkxfRkFNSUxZX0lQNk1SID0gMTI5IDsKY29uc3QgUlROTF9GQU1JTFlfSVBNUiA9IDEyOCA7CmNvbnN0IFJUTkxfRkFNSUxZX01BWCA9IDEyOSA7CmNvbnN0IFJUTl9BTllDQVNUID0gNCA7CmNvbnN0IFJUTl9CTEFDS0hPTEUgPSA2IDsKY29uc3QgUlROX0JST0FEQ0FTVCA9IDMgOwpjb25zdCBSVE5fTE9DQUwgPSAyIDsKY29uc3QgUlROX01VTFRJQ0FTVCA9IDUgOwpjb25zdCBSVE5fTkFUID0gMTAgOwpjb25zdCBSVE5fUFJPSElCSVQgPSA4IDsKY29uc3QgUlROX1RIUk9XID0gOSA7CmNvbnN0IFJUTl9VTklDQVNUID0gMSA7CmNvbnN0IFJUTl9VTlJFQUNIQUJMRSA9IDcgOwpjb25zdCBSVE5fVU5TUEVDID0gMCA7CmNvbnN0IFJUTl9YUkVTT0xWRSA9IDExIDsKY29uc3QgUlRQUk9UX0JJUkQgPSAxMiA7CmNvbnN0IFJUUFJPVF9CT09UID0gMyA7CmNvbnN0IFJUUFJPVF9ESENQID0gMTYgOwpjb25zdCBSVFBST1RfRE5ST1VURUQgPSAxMyA7CmNvbnN0IFJUUFJPVF9HQVRFRCA9IDggOwpjb25zdCBSVFBST1RfS0VSTkVMID0gMiA7CmNvbnN0IFJUUFJPVF9NUlQgPSAxMCA7CmNvbnN0IFJUUFJPVF9OVEsgPSAxNSA7CmNvbnN0IFJUUFJPVF9SQSA9IDkgOwpjb25zdCBSVFBST1RfUkVESVJFQ1QgPSAxIDsKY29uc3QgUlRQUk9UX1NUQVRJQyA9IDQgOwpjb25zdCBSVFBST1RfVU5TUEVDID0gMCA7CmNvbnN0IFJUUFJPVF9YT1JQID0gMTQgOwpjb25zdCBSVFBST1RfWkVCUkEgPSAxMSA7CmNvbnN0IFJUX0NMQVNTX0RFRkFVTFQgPSAyNTMgOwpjb25zdCBSVF9DTEFTU19MT0NBTCA9IDI1NSA7CmNvbnN0IFJUX0NMQVNTX01BSU4gPSAyNTQgOwpjb25zdCBSVF9DTEFTU19NQVggPSAyNTUgOwpjb25zdCBSVF9DTEFTU19VTlNQRUMgPSAwIDsKY29uc3QgUlRfU0NPUEVfSE9TVCA9IDI1NCA7CmNvbnN0IFJUX1NDT1BFX0xJTksgPSAyNTMgOwpjb25zdCBSVF9TQ09QRV9OT1dIRVJFID0gMjU1IDsKY29uc3QgUlRfU0NPUEVfU0lURSA9IDIwMCA7CmNvbnN0IFJUX1NDT1BFX1VOSVZFUlNFID0gMCA7CmNvbnN0IFJUX1RBQkxFX0NPTVBBVCA9IDI1MiA7CmNvbnN0IFJUX1RBQkxFX0RFRkFVTFQgPSAyNTMgOwpjb25zdCBSVF9UQUJMRV9MT0NBTCA9IDI1NSA7CmNvbnN0IFJUX1RBQkxFX01BSU4gPSAyNTQgOwpjb25zdCBSVF9UQUJMRV9NQVggPSA0Mjk0OTY3Mjk1IDsKY29uc3QgUlRfVEFCTEVfVU5TUEVDID0gMCA7CmNvbnN0IFJVU0FHRV9DSElMRFJFTiA9IC0xIDsKY29uc3QgUlVTQUdFX1NFTEYgPSAwIDsKdHlwZSA8dHlwZSA2PjsKdHlwZSA8dHlwZSA0PjsKdHlwZSA8dHlwZSAyNDEgIlJhd1NvY2thZGRySW5ldDQiIDx0eXBlIDI0MiBzdHJ1Y3QgeyBGYW1pbHkgPHR5cGUgLTY+OyBQb3J0IDx0eXBlIC02PjsgQWRkciA8dHlwZSAyNDMgWzQgXSA8dHlwZSAtMjA+PjsgWmVybyA8dHlwZSAyNDQgWzggXSA8dHlwZSAtNT4+OyB9PgogZnVuYyAoc2EgPHR5cGUgMjQ1ICo8dHlwZSAyNDE+PikgLnN5c2NhbGwuc2V0TGVuICgpIDx0eXBlIDEwPjsKPjsKdHlwZSA8dHlwZSAyNDYgIlJhd1NvY2thZGRySW5ldDYiIDx0eXBlIDI0NyBzdHJ1Y3QgeyBGYW1pbHkgPHR5cGUgLTY+OyBQb3J0IDx0eXBlIC02PjsgRmxvd2luZm8gPHR5cGUgLTc+OyBBZGRyIDx0eXBlIDI0OCBbMTYgXSA8dHlwZSAtMjA+PjsgU2NvcGVfaWQgPHR5cGUgLTc+OyB9PgogZnVuYyAoc2EgPHR5cGUgMjQ5ICo8dHlwZSAyNDY+PikgLnN5c2NhbGwuc2V0TGVuICgpIDx0eXBlIDEwPjsKPjsKdHlwZSA8dHlwZSAyNTAgIlJhd1NvY2thZGRyTGlua2xheWVyIiA8dHlwZSAyNTEgc3RydWN0IHsgRmFtaWx5IDx0eXBlIC02PjsgUHJvdG9jb2wgPHR5cGUgLTY+OyBJZmluZGV4IDx0eXBlIC0zPjsgSGF0eXBlIDx0eXBlIC02PjsgUGt0dHlwZSA8dHlwZSAtNT47IEhhbGVuIDx0eXBlIC01PjsgQWRkciA8dHlwZSAyNTIgWzggXSA8dHlwZSAtNT4+OyB9Pj47CnR5cGUgPHR5cGUgMjUzICJSYXdTb2NrYWRkck5ldGxpbmsiIDx0eXBlIDI1NCBzdHJ1Y3QgeyBGYW1pbHkgPHR5cGUgLTY+OyBQYWQgPHR5cGUgLTY+OyBQaWQgPHR5cGUgLTc+OyBHcm91cHMgPHR5cGUgLTc+OyB9Pj47CnR5cGUgPHR5cGUgMjU1ICJSYXdTb2NrYWRkclVuaXgiIDx0eXBlIDI1NiBzdHJ1Y3QgeyBGYW1pbHkgPHR5cGUgLTY+OyBQYXRoIDx0eXBlIDI1NyBbMTA4IF0gPHR5cGUgLTE+PjsgfT4KIGZ1bmMgKHNhIDx0eXBlIDI1OCAqPHR5cGUgMjU1Pj4pIC5zeXNjYWxsLnNldExlbiAoPyA8dHlwZSAtMTE+KTsKIGZ1bmMgKHNhIDx0eXBlIDI1OD4pIC5zeXNjYWxsLmdldExlbiAoKSAoPyA8dHlwZSAtMTE+LCA/IDx0eXBlIC0xOT4pOwogZnVuYyAoc2EgPHR5cGUgMjU4PikgLnN5c2NhbGwuYWRqdXN0QWJzdHJhY3QgKHNsIDx0eXBlIDEwPikgPHR5cGUgMTA+Owo+OwpmdW5jIFJhd1N5c2NhbGwgKHRyYXAgPHR5cGUgLTEzPiwgYTEgPHR5cGUgLTEzPiwgYTIgPHR5cGUgLTEzPiwgYTMgPHR5cGUgLTEzPikgKHIxIDx0eXBlIC0xMz4sIHIyIDx0eXBlIC0xMz4sIGVyciA8dHlwZSA0OD4pOwpmdW5jIFJhd1N5c2NhbGw2ICh0cmFwIDx0eXBlIC0xMz4sIGExIDx0eXBlIC0xMz4sIGEyIDx0eXBlIC0xMz4sIGEzIDx0eXBlIC0xMz4sIGE0IDx0eXBlIC0xMz4sIGE1IDx0eXBlIC0xMz4sIGE2IDx0eXBlIC0xMz4pIChyMSA8dHlwZSAtMTM+LCByMiA8dHlwZSAtMTM+LCBlcnIgPHR5cGUgNDg+KTsKZnVuYyBSZWFkIChmZCA8dHlwZSAtMTE+LCBwIDx0eXBlIDI1OSBbXSA8dHlwZSAtMjA+PikgKG4gPHR5cGUgLTExPiwgZXJyIDx0eXBlIC0xOT4pOwpmdW5jIFJlYWREaXJlbnQgKGZkIDx0eXBlIC0xMT4sIGJ1ZiA8dHlwZSAyNjAgW10gPHR5cGUgLTIwPj4pIChuIDx0eXBlIC0xMT4sIGVyciA8dHlwZSAtMTk+KTsKZnVuYyBSZWFkbGluayAocGF0aCA8dHlwZSAtMTY+LCBidWYgPHR5cGUgMjYxIFtdIDx0eXBlIC0yMD4+KSAobiA8dHlwZSAtMTE+LCBlcnIgPHR5cGUgLTE5Pik7CmZ1bmMgUmVib290IChjbWQgPHR5cGUgLTExPikgKGVyciA8dHlwZSAtMTk+KTsKZnVuYyBSZWN2ZnJvbSAoZmQgPHR5cGUgLTExPiwgcCA8dHlwZSAyNjIgW10gPHR5cGUgLTIwPj4sIGZsYWdzIDx0eXBlIC0xMT4pIChuIDx0eXBlIC0xMT4sIGZyb20gPHR5cGUgMT4sIGVyciA8dHlwZSAtMTk+KTsKZnVuYyBSZWN2bXNnIChmZCA8dHlwZSAtMTE+LCBwIDx0eXBlIDI2MyBbXSA8dHlwZSAtMjA+Piwgb29iIDx0eXBlIDI2Mz4sIGZsYWdzIDx0eXBlIC0xMT4pIChuIDx0eXBlIC0xMT4sIG9vYm4gPHR5cGUgLTExPiwgcmVjdmZsYWdzIDx0eXBlIC0xMT4sIGZyb20gPHR5cGUgMT4sIGVyciA8dHlwZSAtMTk+KTsKZnVuYyBSZW1vdmV4YXR0ciAocGF0aCA8dHlwZSAtMTY+LCBhdHRyIDx0eXBlIC0xNj4pIChlcnIgPHR5cGUgLTE5Pik7CmZ1bmMgUmVuYW1lIChvbGRwYXRoIDx0eXBlIC0xNj4sIG5ld3BhdGggPHR5cGUgLTE2PikgKGVyciA8dHlwZSAtMTk+KTsKZnVuYyBSZW5hbWVhdCAob2xkZGlyZmQgPHR5cGUgLTExPiwgb2xkcGF0aCA8dHlwZSAtMTY+LCBuZXdkaXJmZCA8dHlwZSAtMTE+LCBuZXdwYXRoIDx0eXBlIC0xNj4pIChlcnIgPHR5cGUgLTE5Pik7CnR5cGUgPHR5cGUgMTE0PjsKZnVuYyBSbWRpciAocGF0aCA8dHlwZSAtMTY+KSAoZXJyIDx0eXBlIC0xOT4pOwp0eXBlIDx0eXBlIDE5Mj47CnR5cGUgPHR5cGUgMTk3PjsKdHlwZSA8dHlwZSAyNjQgIlJ0TXNnIiA8dHlwZSAyNjUgc3RydWN0IHsgRmFtaWx5IDx0eXBlIC01PjsgRHN0X2xlbiA8dHlwZSAtNT47IFNyY19sZW4gPHR5cGUgLTU+OyBUb3MgPHR5cGUgLTU+OyBUYWJsZSA8dHlwZSAtNT47IFByb3RvY29sIDx0eXBlIC01PjsgU2NvcGUgPHR5cGUgLTU+OyBUeXBlIDx0eXBlIC01PjsgRmxhZ3MgPHR5cGUgLTc+OyB9Pj47CnR5cGUgPHR5cGUgMjY2ICJSdE5leHRob3AiIDx0eXBlIDI2NyBzdHJ1Y3QgeyBMZW4gPHR5cGUgLTY+OyBGbGFncyA8dHlwZSAtNT47IEhvcHMgPHR5cGUgLTU+OyBJZmluZGV4IDx0eXBlIC0zPjsgfT4+Owp0eXBlIDx0eXBlIDExNz47CmNvbnN0IFNDTV9DUkVERU5USUFMUyA9IDIgOwpjb25zdCBTQ01fUklHSFRTID0gMSA7CmNvbnN0IFNDTV9USU1FU1RBTVAgPSAyOSA7CmNvbnN0IFNDTV9USU1FU1RBTVBJTkcgPSAzNyA7CmNvbnN0IFNDTV9USU1FU1RBTVBOUyA9IDM1IDsKY29uc3QgU0hVVF9SRCA9IDAgOwpjb25zdCBTSFVUX1JEV1IgPSAyIDsKY29uc3QgU0hVVF9XUiA9IDEgOwpjb25zdCBTSUdBQlJUIDx0eXBlIDc2PiA9IDYgOwpjb25zdCBTSUdBTFJNIDx0eXBlIDc2PiA9IDE0IDsKY29uc3QgU0lHQlVTIDx0eXBlIDc2PiA9IDEwIDsKY29uc3QgU0lHQ0hMRCA8dHlwZSA3Nj4gPSAxOCA7CmNvbnN0IFNJR0NMRCA8dHlwZSA3Nj4gPSAxOCA7CmNvbnN0IFNJR0NPTlQgPHR5cGUgNzY+ID0gMjUgOwpjb25zdCBTSUdFTVQgPHR5cGUgNzY+ID0gNyA7CmNvbnN0IFNJR0ZQRSA8dHlwZSA3Nj4gPSA4IDsKY29uc3QgU0lHSFVQIDx0eXBlIDc2PiA9IDEgOwpjb25zdCBTSUdJTEwgPHR5cGUgNzY+ID0gNCA7CmNvbnN0IFNJR0lOVCA8dHlwZSA3Nj4gPSAyIDsKY29uc3QgU0lHSU8gPHR5cGUgNzY+ID0gMjIgOwpjb25zdCBTSUdJT1QgPHR5cGUgNzY+ID0gNiA7CmNvbnN0IFNJR0tJTEwgPHR5cGUgNzY+ID0gOSA7CmNvbnN0IFNJR1BJUEUgPHR5cGUgNzY+ID0gMTMgOwpjb25zdCBTSUdQT0xMIDx0eXBlIDc2PiA9IDIyIDsKY29uc3QgU0lHUFJPRiA8dHlwZSA3Nj4gPSAyOSA7CmNvbnN0IFNJR1BXUiA8dHlwZSA3Nj4gPSAxOSA7CmNvbnN0IFNJR1FVSVQgPHR5cGUgNzY+ID0gMyA7CmNvbnN0IFNJR1NFR1YgPHR5cGUgNzY+ID0gMTEgOwpjb25zdCBTSUdTVEtTWiA8dHlwZSA3Nj4gPSA4MTkyIDsKY29uc3QgU0lHU1RPUCA8dHlwZSA3Nj4gPSAyMyA7CmNvbnN0IFNJR1NZUyA8dHlwZSA3Nj4gPSAxMiA7CmNvbnN0IFNJR1RFUk0gPHR5cGUgNzY+ID0gMTUgOwpjb25zdCBTSUdUUkFQIDx0eXBlIDc2PiA9IDUgOwpjb25zdCBTSUdUU1RQIDx0eXBlIDc2PiA9IDI0IDsKY29uc3QgU0lHVFRJTiA8dHlwZSA3Nj4gPSAyNiA7CmNvbnN0IFNJR1RUT1UgPHR5cGUgNzY+ID0gMjcgOwpjb25zdCBTSUdVUkcgPHR5cGUgNzY+ID0gMjEgOwpjb25zdCBTSUdVU1IxIDx0eXBlIDc2PiA9IDE2IDsKY29uc3QgU0lHVVNSMiA8dHlwZSA3Nj4gPSAxNyA7CmNvbnN0IFNJR1ZUQUxSTSA8dHlwZSA3Nj4gPSAyOCA7CmNvbnN0IFNJR1dJTkNIIDx0eXBlIDc2PiA9IDIwIDsKY29uc3QgU0lHWENQVSA8dHlwZSA3Nj4gPSAzMCA7CmNvbnN0IFNJR1hGU1ogPHR5cGUgNzY+ID0gMzEgOwpjb25zdCBTSU9DQURERExDSSA9IDM1MjAwIDsKY29uc3QgU0lPQ0FERE1VTFRJID0gMzUxMjEgOwpjb25zdCBTSU9DQUREUlQgPSAzNTA4MyA7CmNvbnN0IFNJT0NEQVJQID0gMzUxNTUgOwpjb25zdCBTSU9DREVMRExDSSA9IDM1MjAxIDsKY29uc3QgU0lPQ0RFTE1VTFRJID0gMzUxMjIgOwpjb25zdCBTSU9DREVMUlQgPSAzNTA4NCA7CmNvbnN0IFNJT0NERVZQUklWQVRFID0gMzUzMTIgOwpjb25zdCBTSU9DRElGQUREUiA9IDM1MTI2IDsKY29uc3QgU0lPQ0RSQVJQID0gMzUxNjggOwpjb25zdCBTSU9DR0FSUCA9IDM1MTU2IDsKY29uc3QgU0lPQ0dJRkFERFIgPSAzNTA5MyA7CmNvbnN0IFNJT0NHSUZCUiA9IDM1MTM2IDsKY29uc3QgU0lPQ0dJRkJSREFERFIgPSAzNTA5NyA7CmNvbnN0IFNJT0NHSUZDT05GID0gMzUwOTAgOwpjb25zdCBTSU9DR0lGQ09VTlQgPSAzNTEyOCA7CmNvbnN0IFNJT0NHSUZEU1RBRERSID0gMzUwOTUgOwpjb25zdCBTSU9DR0lGRU5DQVAgPSAzNTEwOSA7CmNvbnN0IFNJT0NHSUZGTEFHUyA9IDM1MDkxIDsKY29uc3QgU0lPQ0dJRkhXQUREUiA9IDM1MTExIDsKY29uc3QgU0lPQ0dJRklOREVYID0gMzUxMjMgOwpjb25zdCBTSU9DR0lGTUFQID0gMzUxODQgOwpjb25zdCBTSU9DR0lGTUVNID0gMzUxMDMgOwpjb25zdCBTSU9DR0lGTUVUUklDID0gMzUxMDEgOwpjb25zdCBTSU9DR0lGTVRVID0gMzUxMDUgOwpjb25zdCBTSU9DR0lGTkFNRSA9IDM1MDg4IDsKY29uc3QgU0lPQ0dJRk5FVE1BU0sgPSAzNTA5OSA7CmNvbnN0IFNJT0NHSUZQRkxBR1MgPSAzNTEyNSA7CmNvbnN0IFNJT0NHSUZTTEFWRSA9IDM1MTEzIDsKY29uc3QgU0lPQ0dJRlRYUUxFTiA9IDM1MTM4IDsKY29uc3QgU0lPQ0dSQVJQID0gMzUxNjkgOwpjb25zdCBTSU9DR1NUQU1QID0gMzUwNzggOwpjb25zdCBTSU9DR1NUQU1QTlMgPSAzNTA3OSA7CmNvbnN0IFNJT0NQUk9UT1BSSVZBVEUgPSAzNTI5NiA7CmNvbnN0IFNJT0NSVE1TRyA9IDM1MDg1IDsKY29uc3QgU0lPQ1NBUlAgPSAzNTE1NyA7CmNvbnN0IFNJT0NTSUZBRERSID0gMzUwOTQgOwpjb25zdCBTSU9DU0lGQlIgPSAzNTEzNyA7CmNvbnN0IFNJT0NTSUZCUkRBRERSID0gMzUwOTggOwpjb25zdCBTSU9DU0lGRFNUQUREUiA9IDM1MDk2IDsKY29uc3QgU0lPQ1NJRkVOQ0FQID0gMzUxMTAgOwpjb25zdCBTSU9DU0lGRkxBR1MgPSAzNTA5MiA7CmNvbnN0IFNJT0NTSUZIV0FERFIgPSAzNTEwOCA7CmNvbnN0IFNJT0NTSUZIV0JST0FEQ0FTVCA9IDM1MTI3IDsKY29uc3QgU0lPQ1NJRkxJTksgPSAzNTA4OSA7CmNvbnN0IFNJT0NTSUZNQVAgPSAzNTE4NSA7CmNvbnN0IFNJT0NTSUZNRU0gPSAzNTEwNCA7CmNvbnN0IFNJT0NTSUZNRVRSSUMgPSAzNTEwMiA7CmNvbnN0IFNJT0NTSUZNVFUgPSAzNTEwNiA7CmNvbnN0IFNJT0NTSUZOQU1FID0gMzUxMDcgOwpjb25zdCBTSU9DU0lGTkVUTUFTSyA9IDM1MTAwIDsKY29uc3QgU0lPQ1NJRlBGTEFHUyA9IDM1MTI0IDsKY29uc3QgU0lPQ1NJRlNMQVZFID0gMzUxMjAgOwpjb25zdCBTSU9DU0lGVFhRTEVOID0gMzUxMzkgOwpjb25zdCBTSU9DU1JBUlAgPSAzNTE3MCA7CmNvbnN0IFNPQ0tfQ0xPRVhFQyA9IDUyNDI4OCA7CmNvbnN0IFNPQ0tfRENDUCA9IDYgOwpjb25zdCBTT0NLX0RHUkFNID0gMSA7CmNvbnN0IFNPQ0tfTk9OQkxPQ0sgPSAxMjggOwpjb25zdCBTT0NLX1BBQ0tFVCA9IDEwIDsKY29uc3QgU09DS19SQVcgPSAzIDsKY29uc3QgU09DS19SRE0gPSA0IDsKY29uc3QgU09DS19TRVFQQUNLRVQgPSA1IDsKY29uc3QgU09DS19TVFJFQU0gPSAyIDsKY29uc3QgU09MX0FBTCA9IDI2NSA7CmNvbnN0IFNPTF9BVE0gPSAyNjQgOwpjb25zdCBTT0xfREVDTkVUID0gMjYxIDsKY29uc3QgU09MX0lDTVBWNiA9IDU4IDsKY29uc3QgU09MX0lQID0gMCA7CmNvbnN0IFNPTF9JUFY2ID0gNDEgOwpjb25zdCBTT0xfSVJEQSA9IDI2NiA7CmNvbnN0IFNPTF9QQUNLRVQgPSAyNjMgOwpjb25zdCBTT0xfUkFXID0gMjU1IDsKY29uc3QgU09MX1NPQ0tFVCA9IDY1NTM1IDsKY29uc3QgU09MX1RDUCA9IDYgOwpjb25zdCBTT0xfWDI1ID0gMjYyIDsKY29uc3QgU09NQVhDT05OID0gMTI4IDsKY29uc3QgU09fQUNDRVBUQ09OTiA9IDQxMDUgOwpjb25zdCBTT19BVFRBQ0hfRklMVEVSID0gMjYgOwpjb25zdCBTT19CSU5EVE9ERVZJQ0UgPSAyNSA7CmNvbnN0IFNPX0JST0FEQ0FTVCA9IDMyIDsKY29uc3QgU09fQlNEQ09NUEFUID0gMTQgOwpjb25zdCBTT19ERUJVRyA9IDEgOwpjb25zdCBTT19ERVRBQ0hfRklMVEVSID0gMjcgOwpjb25zdCBTT19ET01BSU4gPSA0MTM3IDsKY29uc3QgU09fRE9OVFJPVVRFID0gMTYgOwpjb25zdCBTT19FUlJPUiA9IDQxMDMgOwpjb25zdCBTT19LRUVQQUxJVkUgPSA4IDsKY29uc3QgU09fTElOR0VSID0gMTI4IDsKY29uc3QgU09fTUFSSyA9IDM2IDsKY29uc3QgU09fTk9fQ0hFQ0sgPSAxMSA7CmNvbnN0IFNPX09PQklOTElORSA9IDI1NiA7CmNvbnN0IFNPX1BBU1NDUkVEID0gMTcgOwpjb25zdCBTT19QQVNTU0VDID0gMzQgOwpjb25zdCBTT19QRUVSQ1JFRCA9IDE4IDsKY29uc3QgU09fUEVFUk5BTUUgPSAyOCA7CmNvbnN0IFNPX1BFRVJTRUMgPSAzMCA7CmNvbnN0IFNPX1BSSU9SSVRZID0gMTIgOwpjb25zdCBTT19QUk9UT0NPTCA9IDQxMzYgOwpjb25zdCBTT19SQ1ZCVUYgPSA0MDk4IDsKY29uc3QgU09fUkNWQlVGRk9SQ0UgPSAzMyA7CmNvbnN0IFNPX1JDVkxPV0FUID0gNDEwMCA7CmNvbnN0IFNPX1JDVlRJTUVPID0gNDEwMiA7CmNvbnN0IFNPX1JFVVNFQUREUiA9IDQgOwpjb25zdCBTT19SRVVTRVBPUlQgPSAwIDsKY29uc3QgU09fUlhRX09WRkwgPSA0MCA7CmNvbnN0IFNPX1NFQ1VSSVRZX0FVVEhFTlRJQ0FUSU9OID0gMjIgOwpjb25zdCBTT19TRUNVUklUWV9FTkNSWVBUSU9OX05FVFdPUksgPSAyNCA7CmNvbnN0IFNPX1NFQ1VSSVRZX0VOQ1JZUFRJT05fVFJBTlNQT1JUID0gMjMgOwpjb25zdCBTT19TTkRCVUYgPSA0MDk3IDsKY29uc3QgU09fU05EQlVGRk9SQ0UgPSAzMSA7CmNvbnN0IFNPX1NORExPV0FUID0gNDA5OSA7CmNvbnN0IFNPX1NORFRJTUVPID0gNDEwMSA7CmNvbnN0IFNPX1NUWUxFID0gNDEwNCA7CmNvbnN0IFNPX1RJTUVTVEFNUCA9IDI5IDsKY29uc3QgU09fVElNRVNUQU1QSU5HID0gMzcgOwpjb25zdCBTT19USU1FU1RBTVBOUyA9IDM1IDsKY29uc3QgU09fVFlQRSA9IDQxMDQgOwpjb25zdCBTWVNfNjRfTElOVVggPSA1MDAwIDsKY29uc3QgU1lTXzY0X0xJTlVYX1NZU0NBTExTID0gMzA1IDsKY29uc3QgU1lTX0FDQ0VQVCA9IDQxNjggOwpjb25zdCBTWVNfQUNDRVBUNCA9IDQzMzQgOwpjb25zdCBTWVNfQUNDRVNTID0gNDAzMyA7CmNvbnN0IFNZU19BQ0NUID0gNDA1MSA7CmNvbnN0IFNZU19BRERfS0VZID0gNDI4MCA7CmNvbnN0IFNZU19BREpUSU1FWCA9IDQxMjQgOwpjb25zdCBTWVNfQUZTX1NZU0NBTEwgPSA0MTM3IDsKY29uc3QgU1lTX0FMQVJNID0gNDAyNyA7CmNvbnN0IFNZU19CREZMVVNIID0gNDEzNCA7CmNvbnN0IFNZU19CSU5EID0gNDE2OSA7CmNvbnN0IFNZU19CUkVBSyA9IDQwMTcgOwpjb25zdCBTWVNfQlJLID0gNDA0NSA7CmNvbnN0IFNZU19DQUNIRUNUTCA9IDQxNDggOwpjb25zdCBTWVNfQ0FDSEVGTFVTSCA9IDQxNDcgOwpjb25zdCBTWVNfQ0FQR0VUID0gNDIwNCA7CmNvbnN0IFNZU19DQVBTRVQgPSA0MjA1IDsKY29uc3QgU1lTX0NIRElSID0gNDAxMiA7CmNvbnN0IFNZU19DSE1PRCA9IDQwMTUgOwpjb25zdCBTWVNfQ0hPV04gPSA0MjAyIDsKY29uc3QgU1lTX0NIUk9PVCA9IDQwNjEgOwpjb25zdCBTWVNfQ0xPQ0tfQURKVElNRSA9IDQzNDEgOwpjb25zdCBTWVNfQ0xPQ0tfR0VUUkVTID0gNDI2NCA7CmNvbnN0IFNZU19DTE9DS19HRVRUSU1FID0gNDI2MyA7CmNvbnN0IFNZU19DTE9DS19OQU5PU0xFRVAgPSA0MjY1IDsKY29uc3QgU1lTX0NMT0NLX1NFVFRJTUUgPSA0MjYyIDsKY29uc3QgU1lTX0NMT05FID0gNDEyMCA7CmNvbnN0IFNZU19DTE9TRSA9IDQwMDYgOwpjb25zdCBTWVNfQ09OTkVDVCA9IDQxNzAgOwpjb25zdCBTWVNfQ1JFQVQgPSA0MDA4IDsKY29uc3QgU1lTX0NSRUFURV9NT0RVTEUgPSA0MTI3IDsKY29uc3QgU1lTX0RFTEVURV9NT0RVTEUgPSA0MTI5IDsKY29uc3QgU1lTX0RVUCA9IDQwNDEgOwpjb25zdCBTWVNfRFVQMiA9IDQwNjMgOwpjb25zdCBTWVNfRFVQMyA9IDQzMjcgOwpjb25zdCBTWVNfRVBPTExfQ1JFQVRFID0gNDI0OCA7CmNvbnN0IFNZU19FUE9MTF9DUkVBVEUxID0gNDMyNiA7CmNvbnN0IFNZU19FUE9MTF9DVEwgPSA0MjQ5IDsKY29uc3QgU1lTX0VQT0xMX1BXQUlUID0gNDMxMyA7CmNvbnN0IFNZU19FUE9MTF9XQUlUID0gNDI1MCA7CmNvbnN0IFNZU19FVkVOVEZEID0gNDMxOSA7CmNvbnN0IFNZU19FVkVOVEZEMiA9IDQzMjUgOwpjb25zdCBTWVNfRVhFQ1ZFID0gNDAxMSA7CmNvbnN0IFNZU19FWElUID0gNDAwMSA7CmNvbnN0IFNZU19FWElUX0dST1VQID0gNDI0NiA7CmNvbnN0IFNZU19GQUNDRVNTQVQgPSA0MzAwIDsKY29uc3QgU1lTX0ZBRFZJU0U2NCA9IDQyNTQgOwpjb25zdCBTWVNfRkFMTE9DQVRFID0gNDMyMCA7CmNvbnN0IFNZU19GQU5PVElGWV9JTklUID0gNDMzNiA7CmNvbnN0IFNZU19GQU5PVElGWV9NQVJLID0gNDMzNyA7CmNvbnN0IFNZU19GQ0hESVIgPSA0MTMzIDsKY29uc3QgU1lTX0ZDSE1PRCA9IDQwOTQgOwpjb25zdCBTWVNfRkNITU9EQVQgPSA0Mjk5IDsKY29uc3QgU1lTX0ZDSE9XTiA9IDQwOTUgOwpjb25zdCBTWVNfRkNIT1dOQVQgPSA0MjkxIDsKY29uc3QgU1lTX0ZDTlRMID0gNDA1NSA7CmNvbnN0IFNZU19GQ05UTDY0ID0gNDIyMCA7CmNvbnN0IFNZU19GREFUQVNZTkMgPSA0MTUyIDsKY29uc3QgU1lTX0ZHRVRYQVRUUiA9IDQyMjkgOwpjb25zdCBTWVNfRkxJU1RYQVRUUiA9IDQyMzIgOwpjb25zdCBTWVNfRkxPQ0sgPSA0MTQzIDsKY29uc3QgU1lTX0ZPUksgPSA0MDAyIDsKY29uc3QgU1lTX0ZSRU1PVkVYQVRUUiA9IDQyMzUgOwpjb25zdCBTWVNfRlNFVFhBVFRSID0gNDIyNiA7CmNvbnN0IFNZU19GU1RBVCA9IDQxMDggOwpjb25zdCBTWVNfRlNUQVQ2NCA9IDQyMTUgOwpjb25zdCBTWVNfRlNUQVRBVDY0ID0gNDI5MyA7CmNvbnN0IFNZU19GU1RBVEZTID0gNDEwMCA7CmNvbnN0IFNZU19GU1RBVEZTNjQgPSA0MjU2IDsKY29uc3QgU1lTX0ZTWU5DID0gNDExOCA7CmNvbnN0IFNZU19GVElNRSA9IDQwMzUgOwpjb25zdCBTWVNfRlRSVU5DQVRFID0gNDA5MyA7CmNvbnN0IFNZU19GVFJVTkNBVEU2NCA9IDQyMTIgOwpjb25zdCBTWVNfRlVURVggPSA0MjM4IDsKY29uc3QgU1lTX0ZVVElNRVNBVCA9IDQyOTIgOwpjb25zdCBTWVNfR0VUQ1BVID0gNDMxMiA7CmNvbnN0IFNZU19HRVRDV0QgPSA0MjAzIDsKY29uc3QgU1lTX0dFVERFTlRTID0gNDE0MSA7CmNvbnN0IFNZU19HRVRERU5UUzY0ID0gNDIxOSA7CmNvbnN0IFNZU19HRVRFR0lEID0gNDA1MCA7CmNvbnN0IFNZU19HRVRFVUlEID0gNDA0OSA7CmNvbnN0IFNZU19HRVRHSUQgPSA0MDQ3IDsKY29uc3QgU1lTX0dFVEdST1VQUyA9IDQwODAgOwpjb25zdCBTWVNfR0VUSVRJTUVSID0gNDEwNSA7CmNvbnN0IFNZU19HRVRQRUVSTkFNRSA9IDQxNzEgOwpjb25zdCBTWVNfR0VUUEdJRCA9IDQxMzIgOwpjb25zdCBTWVNfR0VUUEdSUCA9IDQwNjUgOwpjb25zdCBTWVNfR0VUUElEID0gNDAyMCA7CmNvbnN0IFNZU19HRVRQTVNHID0gNDIwOCA7CmNvbnN0IFNZU19HRVRQUElEID0gNDA2NCA7CmNvbnN0IFNZU19HRVRQUklPUklUWSA9IDQwOTYgOwpjb25zdCBTWVNfR0VUUkVTR0lEID0gNDE5MSA7CmNvbnN0IFNZU19HRVRSRVNVSUQgPSA0MTg2IDsKY29uc3QgU1lTX0dFVFJMSU1JVCA9IDQwNzYgOwpjb25zdCBTWVNfR0VUUlVTQUdFID0gNDA3NyA7CmNvbnN0IFNZU19HRVRTSUQgPSA0MTUxIDsKY29uc3QgU1lTX0dFVFNPQ0tOQU1FID0gNDE3MiA7CmNvbnN0IFNZU19HRVRTT0NLT1BUID0gNDE3MyA7CmNvbnN0IFNZU19HRVRUSUQgPSA0MjIyIDsKY29uc3QgU1lTX0dFVFRJTUVPRkRBWSA9IDQwNzggOwpjb25zdCBTWVNfR0VUVUlEID0gNDAyNCA7CmNvbnN0IFNZU19HRVRYQVRUUiA9IDQyMjcgOwpjb25zdCBTWVNfR0VUX0tFUk5FTF9TWU1TID0gNDEzMCA7CmNvbnN0IFNZU19HRVRfTUVNUE9MSUNZID0gNDI2OSA7CmNvbnN0IFNZU19HRVRfUk9CVVNUX0xJU1QgPSA0MzEwIDsKY29uc3QgU1lTX0dUVFkgPSA0MDMyIDsKY29uc3QgU1lTX0lETEUgPSA0MTEyIDsKY29uc3QgU1lTX0lOSVRfTU9EVUxFID0gNDEyOCA7CmNvbnN0IFNZU19JTk9USUZZX0FERF9XQVRDSCA9IDQyODUgOwpjb25zdCBTWVNfSU5PVElGWV9JTklUID0gNDI4NCA7CmNvbnN0IFNZU19JTk9USUZZX0lOSVQxID0gNDMyOSA7CmNvbnN0IFNZU19JTk9USUZZX1JNX1dBVENIID0gNDI4NiA7CmNvbnN0IFNZU19JT0NUTCA9IDQwNTQgOwpjb25zdCBTWVNfSU9QRVJNID0gNDEwMSA7CmNvbnN0IFNZU19JT1BMID0gNDExMCA7CmNvbnN0IFNZU19JT1BSSU9fR0VUID0gNDMxNSA7CmNvbnN0IFNZU19JT1BSSU9fU0VUID0gNDMxNCA7CmNvbnN0IFNZU19JT19DQU5DRUwgPSA0MjQ1IDsKY29uc3QgU1lTX0lPX0RFU1RST1kgPSA0MjQyIDsKY29uc3QgU1lTX0lPX0dFVEVWRU5UUyA9IDQyNDMgOwpjb25zdCBTWVNfSU9fU0VUVVAgPSA0MjQxIDsKY29uc3QgU1lTX0lPX1NVQk1JVCA9IDQyNDQgOwpjb25zdCBTWVNfSVBDID0gNDExNyA7CmNvbnN0IFNZU19LRVhFQ19MT0FEID0gNDMxMSA7CmNvbnN0IFNZU19LRVlDVEwgPSA0MjgyIDsKY29uc3QgU1lTX0tJTEwgPSA0MDM3IDsKY29uc3QgU1lTX0xDSE9XTiA9IDQwMTYgOwpjb25zdCBTWVNfTEdFVFhBVFRSID0gNDIyOCA7CmNvbnN0IFNZU19MSU5LID0gNDAwOSA7CmNvbnN0IFNZU19MSU5LQVQgPSA0Mjk2IDsKY29uc3QgU1lTX0xJTlVYID0gNDAwMCA7CmNvbnN0IFNZU19MSU5VWF9TWVNDQUxMUyA9IDM0NiA7CmNvbnN0IFNZU19MSVNURU4gPSA0MTc0IDsKY29uc3QgU1lTX0xJU1RYQVRUUiA9IDQyMzAgOwpjb25zdCBTWVNfTExJU1RYQVRUUiA9IDQyMzEgOwpjb25zdCBTWVNfTE9DSyA9IDQwNTMgOwpjb25zdCBTWVNfTE9PS1VQX0RDT09LSUUgPSA0MjQ3IDsKY29uc3QgU1lTX0xSRU1PVkVYQVRUUiA9IDQyMzQgOwpjb25zdCBTWVNfTFNFRUsgPSA0MDE5IDsKY29uc3QgU1lTX0xTRVRYQVRUUiA9IDQyMjUgOwpjb25zdCBTWVNfTFNUQVQgPSA0MTA3IDsKY29uc3QgU1lTX0xTVEFUNjQgPSA0MjE0IDsKY29uc3QgU1lTX01BRFZJU0UgPSA0MjE4IDsKY29uc3QgU1lTX01CSU5EID0gNDI2OCA7CmNvbnN0IFNZU19NSUdSQVRFX1BBR0VTID0gNDI4NyA7CmNvbnN0IFNZU19NSU5DT1JFID0gNDIxNyA7CmNvbnN0IFNZU19NS0RJUiA9IDQwMzkgOwpjb25zdCBTWVNfTUtESVJBVCA9IDQyODkgOwpjb25zdCBTWVNfTUtOT0QgPSA0MDE0IDsKY29uc3QgU1lTX01LTk9EQVQgPSA0MjkwIDsKY29uc3QgU1lTX01MT0NLID0gNDE1NCA7CmNvbnN0IFNZU19NTE9DS0FMTCA9IDQxNTYgOwpjb25zdCBTWVNfTU1BUCA9IDQwOTAgOwpjb25zdCBTWVNfTU1BUDIgPSA0MjEwIDsKY29uc3QgU1lTX01PRElGWV9MRFQgPSA0MTIzIDsKY29uc3QgU1lTX01PVU5UID0gNDAyMSA7CmNvbnN0IFNZU19NT1ZFX1BBR0VTID0gNDMwOCA7CmNvbnN0IFNZU19NUFJPVEVDVCA9IDQxMjUgOwpjb25zdCBTWVNfTVBYID0gNDA1NiA7CmNvbnN0IFNZU19NUV9HRVRTRVRBVFRSID0gNDI3NiA7CmNvbnN0IFNZU19NUV9OT1RJRlkgPSA0Mjc1IDsKY29uc3QgU1lTX01RX09QRU4gPSA0MjcxIDsKY29uc3QgU1lTX01RX1RJTUVEUkVDRUlWRSA9IDQyNzQgOwpjb25zdCBTWVNfTVFfVElNRURTRU5EID0gNDI3MyA7CmNvbnN0IFNZU19NUV9VTkxJTksgPSA0MjcyIDsKY29uc3QgU1lTX01SRU1BUCA9IDQxNjcgOwpjb25zdCBTWVNfTVNZTkMgPSA0MTQ0IDsKY29uc3QgU1lTX01VTkxPQ0sgPSA0MTU1IDsKY29uc3QgU1lTX01VTkxPQ0tBTEwgPSA0MTU3IDsKY29uc3QgU1lTX01VTk1BUCA9IDQwOTEgOwpjb25zdCBTWVNfTjMyX0xJTlVYID0gNjAwMCA7CmNvbnN0IFNZU19OMzJfTElOVVhfU1lTQ0FMTFMgPSAzMTAgOwpjb25zdCBTWVNfTkFNRV9UT19IQU5ETEVfQVQgPSA0MzM5IDsKY29uc3QgU1lTX05BTk9TTEVFUCA9IDQxNjYgOwpjb25zdCBTWVNfTkZTU0VSVkNUTCA9IDQxODkgOwpjb25zdCBTWVNfTklDRSA9IDQwMzQgOwpjb25zdCBTWVNfTk1MTiA9IDY1IDsKY29uc3QgU1lTX08zMl9MSU5VWCA9IDQwMDAgOwpjb25zdCBTWVNfTzMyX0xJTlVYX1NZU0NBTExTID0gMzQ2IDsKY29uc3QgU1lTX09QRU4gPSA0MDA1IDsKY29uc3QgU1lTX09QRU5BVCA9IDQyODggOwpjb25zdCBTWVNfT1BFTl9CWV9IQU5ETEVfQVQgPSA0MzQwIDsKY29uc3QgU1lTX1BBVVNFID0gNDAyOSA7CmNvbnN0IFNZU19QRVJGX0VWRU5UX09QRU4gPSA0MzMzIDsKY29uc3QgU1lTX1BFUlNPTkFMSVRZID0gNDEzNiA7CmNvbnN0IFNZU19QSVBFID0gNDA0MiA7CmNvbnN0IFNZU19QSVBFMiA9IDQzMjggOwpjb25zdCBTWVNfUElWT1RfUk9PVCA9IDQyMTYgOwpjb25zdCBTWVNfUE9MTCA9IDQxODggOwpjb25zdCBTWVNfUFBPTEwgPSA0MzAyIDsKY29uc3QgU1lTX1BSQ1RMID0gNDE5MiA7CmNvbnN0IFNZU19QUkVBRDY0ID0gNDIwMCA7CmNvbnN0IFNZU19QUkVBRFYgPSA0MzMwIDsKY29uc3QgU1lTX1BSTElNSVQ2NCA9IDQzMzggOwpjb25zdCBTWVNfUFJPQ0VTU19WTV9SRUFEViA9IDQzNDUgOwpjb25zdCBTWVNfUFJPQ0VTU19WTV9XUklURVYgPSA0MzQ2IDsKY29uc3QgU1lTX1BST0YgPSA0MDQ0IDsKY29uc3QgU1lTX1BST0ZJTCA9IDQwOTggOwpjb25zdCBTWVNfUFNFTEVDVDYgPSA0MzAxIDsKY29uc3QgU1lTX1BUUkFDRSA9IDQwMjYgOwpjb25zdCBTWVNfUFVUUE1TRyA9IDQyMDkgOwpjb25zdCBTWVNfUFdSSVRFNjQgPSA0MjAxIDsKY29uc3QgU1lTX1BXUklURVYgPSA0MzMxIDsKY29uc3QgU1lTX1FVRVJZX01PRFVMRSA9IDQxODcgOwpjb25zdCBTWVNfUVVPVEFDVEwgPSA0MTMxIDsKY29uc3QgU1lTX1JFQUQgPSA0MDAzIDsKY29uc3QgU1lTX1JFQURBSEVBRCA9IDQyMjMgOwpjb25zdCBTWVNfUkVBRERJUiA9IDQwODkgOwpjb25zdCBTWVNfUkVBRExJTksgPSA0MDg1IDsKY29uc3QgU1lTX1JFQURMSU5LQVQgPSA0Mjk4IDsKY29uc3QgU1lTX1JFQURWID0gNDE0NSA7CmNvbnN0IFNZU19SRUJPT1QgPSA0MDg4IDsKY29uc3QgU1lTX1JFQ1YgPSA0MTc1IDsKY29uc3QgU1lTX1JFQ1ZGUk9NID0gNDE3NiA7CmNvbnN0IFNZU19SRUNWTU1TRyA9IDQzMzUgOwpjb25zdCBTWVNfUkVDVk1TRyA9IDQxNzcgOwpjb25zdCBTWVNfUkVNQVBfRklMRV9QQUdFUyA9IDQyNTEgOwpjb25zdCBTWVNfUkVNT1ZFWEFUVFIgPSA0MjMzIDsKY29uc3QgU1lTX1JFTkFNRSA9IDQwMzggOwpjb25zdCBTWVNfUkVOQU1FQVQgPSA0Mjk1IDsKY29uc3QgU1lTX1JFUVVFU1RfS0VZID0gNDI4MSA7CmNvbnN0IFNZU19SRVNFUlZFRDIyMSA9IDQyMjEgOwpjb25zdCBTWVNfUkVTRVJWRUQ4MiA9IDQwODIgOwpjb25zdCBTWVNfUkVTVEFSVF9TWVNDQUxMID0gNDI1MyA7CmNvbnN0IFNZU19STURJUiA9IDQwNDAgOwpjb25zdCBTWVNfUlRfU0lHQUNUSU9OID0gNDE5NCA7CmNvbnN0IFNZU19SVF9TSUdQRU5ESU5HID0gNDE5NiA7CmNvbnN0IFNZU19SVF9TSUdQUk9DTUFTSyA9IDQxOTUgOwpjb25zdCBTWVNfUlRfU0lHUVVFVUVJTkZPID0gNDE5OCA7CmNvbnN0IFNZU19SVF9TSUdSRVRVUk4gPSA0MTkzIDsKY29uc3QgU1lTX1JUX1NJR1NVU1BFTkQgPSA0MTk5IDsKY29uc3QgU1lTX1JUX1NJR1RJTUVEV0FJVCA9IDQxOTcgOwpjb25zdCBTWVNfUlRfVEdTSUdRVUVVRUlORk8gPSA0MzMyIDsKY29uc3QgU1lTX1NDSEVEX0dFVEFGRklOSVRZID0gNDI0MCA7CmNvbnN0IFNZU19TQ0hFRF9HRVRQQVJBTSA9IDQxNTkgOwpjb25zdCBTWVNfU0NIRURfR0VUU0NIRURVTEVSID0gNDE2MSA7CmNvbnN0IFNZU19TQ0hFRF9HRVRfUFJJT1JJVFlfTUFYID0gNDE2MyA7CmNvbnN0IFNZU19TQ0hFRF9HRVRfUFJJT1JJVFlfTUlOID0gNDE2NCA7CmNvbnN0IFNZU19TQ0hFRF9SUl9HRVRfSU5URVJWQUwgPSA0MTY1IDsKY29uc3QgU1lTX1NDSEVEX1NFVEFGRklOSVRZID0gNDIzOSA7CmNvbnN0IFNZU19TQ0hFRF9TRVRQQVJBTSA9IDQxNTggOwpjb25zdCBTWVNfU0NIRURfU0VUU0NIRURVTEVSID0gNDE2MCA7CmNvbnN0IFNZU19TQ0hFRF9ZSUVMRCA9IDQxNjIgOwpjb25zdCBTWVNfU0VORCA9IDQxNzggOwpjb25zdCBTWVNfU0VOREZJTEUgPSA0MjA3IDsKY29uc3QgU1lTX1NFTkRGSUxFNjQgPSA0MjM3IDsKY29uc3QgU1lTX1NFTkRNTVNHID0gNDM0MyA7CmNvbnN0IFNZU19TRU5ETVNHID0gNDE3OSA7CmNvbnN0IFNZU19TRU5EVE8gPSA0MTgwIDsKY29uc3QgU1lTX1NFVERPTUFJTk5BTUUgPSA0MTIxIDsKY29uc3QgU1lTX1NFVEZTR0lEID0gNDEzOSA7CmNvbnN0IFNZU19TRVRGU1VJRCA9IDQxMzggOwpjb25zdCBTWVNfU0VUR0lEID0gNDA0NiA7CmNvbnN0IFNZU19TRVRHUk9VUFMgPSA0MDgxIDsKY29uc3QgU1lTX1NFVEhPU1ROQU1FID0gNDA3NCA7CmNvbnN0IFNZU19TRVRJVElNRVIgPSA0MTA0IDsKY29uc3QgU1lTX1NFVE5TID0gNDM0NCA7CmNvbnN0IFNZU19TRVRQR0lEID0gNDA1NyA7CmNvbnN0IFNZU19TRVRQUklPUklUWSA9IDQwOTcgOwpjb25zdCBTWVNfU0VUUkVHSUQgPSA0MDcxIDsKY29uc3QgU1lTX1NFVFJFU0dJRCA9IDQxOTAgOwpjb25zdCBTWVNfU0VUUkVTVUlEID0gNDE4NSA7CmNvbnN0IFNZU19TRVRSRVVJRCA9IDQwNzAgOwpjb25zdCBTWVNfU0VUUkxJTUlUID0gNDA3NSA7CmNvbnN0IFNZU19TRVRTSUQgPSA0MDY2IDsKY29uc3QgU1lTX1NFVFNPQ0tPUFQgPSA0MTgxIDsKY29uc3QgU1lTX1NFVFRJTUVPRkRBWSA9IDQwNzkgOwpjb25zdCBTWVNfU0VUVUlEID0gNDAyMyA7CmNvbnN0IFNZU19TRVRYQVRUUiA9IDQyMjQgOwpjb25zdCBTWVNfU0VUX01FTVBPTElDWSA9IDQyNzAgOwpjb25zdCBTWVNfU0VUX1JPQlVTVF9MSVNUID0gNDMwOSA7CmNvbnN0IFNZU19TRVRfVEhSRUFEX0FSRUEgPSA0MjgzIDsKY29uc3QgU1lTX1NFVF9USURfQUREUkVTUyA9IDQyNTIgOwpjb25zdCBTWVNfU0dFVE1BU0sgPSA0MDY4IDsKY29uc3QgU1lTX1NIVVRET1dOID0gNDE4MiA7CmNvbnN0IFNZU19TSUdBQ1RJT04gPSA0MDY3IDsKY29uc3QgU1lTX1NJR0FMVFNUQUNLID0gNDIwNiA7CmNvbnN0IFNZU19TSUdOQUwgPSA0MDQ4IDsKY29uc3QgU1lTX1NJR05BTEZEID0gNDMxNyA7CmNvbnN0IFNZU19TSUdOQUxGRDQgPSA0MzI0IDsKY29uc3QgU1lTX1NJR1BFTkRJTkcgPSA0MDczIDsKY29uc3QgU1lTX1NJR1BST0NNQVNLID0gNDEyNiA7CmNvbnN0IFNZU19TSUdSRVRVUk4gPSA0MTE5IDsKY29uc3QgU1lTX1NJR1NVU1BFTkQgPSA0MDcyIDsKY29uc3QgU1lTX1NPQ0tFVCA9IDQxODMgOwpjb25zdCBTWVNfU09DS0VUQ0FMTCA9IDQxMDIgOwpjb25zdCBTWVNfU09DS0VUUEFJUiA9IDQxODQgOwpjb25zdCBTWVNfU1BMSUNFID0gNDMwNCA7CmNvbnN0IFNZU19TU0VUTUFTSyA9IDQwNjkgOwpjb25zdCBTWVNfU1RBVCA9IDQxMDYgOwpjb25zdCBTWVNfU1RBVDY0ID0gNDIxMyA7CmNvbnN0IFNZU19TVEFURlMgPSA0MDk5IDsKY29uc3QgU1lTX1NUQVRGUzY0ID0gNDI1NSA7CmNvbnN0IFNZU19TVElNRSA9IDQwMjUgOwpjb25zdCBTWVNfU1RUWSA9IDQwMzEgOwpjb25zdCBTWVNfU1dBUE9GRiA9IDQxMTUgOwpjb25zdCBTWVNfU1dBUE9OID0gNDA4NyA7CmNvbnN0IFNZU19TWU1MSU5LID0gNDA4MyA7CmNvbnN0IFNZU19TWU1MSU5LQVQgPSA0Mjk3IDsKY29uc3QgU1lTX1NZTkMgPSA0MDM2IDsKY29uc3QgU1lTX1NZTkNGUyA9IDQzNDIgOwpjb25zdCBTWVNfU1lOQ19GSUxFX1JBTkdFID0gNDMwNSA7CmNvbnN0IFNZU19TWVNDQUxMID0gNDAwMCA7CmNvbnN0IFNZU19TWVNGUyA9IDQxMzUgOwpjb25zdCBTWVNfU1lTSU5GTyA9IDQxMTYgOwpjb25zdCBTWVNfU1lTTE9HID0gNDEwMyA7CmNvbnN0IFNZU19TWVNNSVBTID0gNDE0OSA7CmNvbnN0IFNZU19URUUgPSA0MzA2IDsKY29uc3QgU1lTX1RHS0lMTCA9IDQyNjYgOwpjb25zdCBTWVNfVElNRSA9IDQwMTMgOwpjb25zdCBTWVNfVElNRVJGRCA9IDQzMTggOwpjb25zdCBTWVNfVElNRVJGRF9DUkVBVEUgPSA0MzIxIDsKY29uc3QgU1lTX1RJTUVSRkRfR0VUVElNRSA9IDQzMjIgOwpjb25zdCBTWVNfVElNRVJGRF9TRVRUSU1FID0gNDMyMyA7CmNvbnN0IFNZU19USU1FUl9DUkVBVEUgPSA0MjU3IDsKY29uc3QgU1lTX1RJTUVSX0RFTEVURSA9IDQyNjEgOwpjb25zdCBTWVNfVElNRVJfR0VUT1ZFUlJVTiA9IDQyNjAgOwpjb25zdCBTWVNfVElNRVJfR0VUVElNRSA9IDQyNTkgOwpjb25zdCBTWVNfVElNRVJfU0VUVElNRSA9IDQyNTggOwpjb25zdCBTWVNfVElNRVMgPSA0MDQzIDsKY29uc3QgU1lTX1RLSUxMID0gNDIzNiA7CmNvbnN0IFNZU19UUlVOQ0FURSA9IDQwOTIgOwpjb25zdCBTWVNfVFJVTkNBVEU2NCA9IDQyMTEgOwpjb25zdCBTWVNfVUxJTUlUID0gNDA1OCA7CmNvbnN0IFNZU19VTUFTSyA9IDQwNjAgOwpjb25zdCBTWVNfVU1PVU5UID0gNDAyMiA7CmNvbnN0IFNZU19VTU9VTlQyID0gNDA1MiA7CmNvbnN0IFNZU19VTkFNRSA9IDQxMjIgOwpjb25zdCBTWVNfVU5MSU5LID0gNDAxMCA7CmNvbnN0IFNZU19VTkxJTktBVCA9IDQyOTQgOwpjb25zdCBTWVNfVU5TSEFSRSA9IDQzMDMgOwpjb25zdCBTWVNfVU5VU0VEMTA5ID0gNDEwOSA7CmNvbnN0IFNZU19VTlVTRUQxNTAgPSA0MTUwIDsKY29uc3QgU1lTX1VOVVNFRDE4ID0gNDAxOCA7CmNvbnN0IFNZU19VTlVTRUQyOCA9IDQwMjggOwpjb25zdCBTWVNfVU5VU0VENTkgPSA0MDU5IDsKY29uc3QgU1lTX1VOVVNFRDg0ID0gNDA4NCA7CmNvbnN0IFNZU19VU0VMSUIgPSA0MDg2IDsKY29uc3QgU1lTX1VTVEFUID0gNDA2MiA7CmNvbnN0IFNZU19VVElNRSA9IDQwMzAgOwpjb25zdCBTWVNfVVRJTUVOU0FUID0gNDMxNiA7CmNvbnN0IFNZU19VVElNRVMgPSA0MjY3IDsKY29uc3QgU1lTX1ZIQU5HVVAgPSA0MTExIDsKY29uc3QgU1lTX1ZNODYgPSA0MTEzIDsKY29uc3QgU1lTX1ZNU1BMSUNFID0gNDMwNyA7CmNvbnN0IFNZU19WU0VSVkVSID0gNDI3NyA7CmNvbnN0IFNZU19XQUlUNCA9IDQxMTQgOwpjb25zdCBTWVNfV0FJVElEID0gNDI3OCA7CmNvbnN0IFNZU19XQUlUUElEID0gNDAwNyA7CmNvbnN0IFNZU19XUklURSA9IDQwMDQgOwpjb25zdCBTWVNfV1JJVEVWID0gNDE0NiA7CmNvbnN0IFNZU19fTExTRUVLID0gNDE0MCA7CmNvbnN0IFNZU19fTkVXU0VMRUNUID0gNDE0MiA7CmNvbnN0IFNZU19fU1lTQ1RMID0gNDE1MyA7CmNvbnN0IFNfQVBQRU5EID0gNCA7CmNvbnN0IFNfQVVUT01PVU5UID0gMjA0OCA7CmNvbnN0IFNfQkxLU0laRSA9IDUxMiA7CmNvbnN0IFNfREVBRCA9IDE2IDsKY29uc3QgU19ESVJTWU5DID0gNjQgOwpjb25zdCBTX0lFWEVDID0gNjQgOwpjb25zdCBTX0lGQkxLID0gMjQ1NzYgOwpjb25zdCBTX0lGQ0hSID0gODE5MiA7CmNvbnN0IFNfSUZESVIgPSAxNjM4NCA7CmNvbnN0IFNfSUZJRk8gPSA0MDk2IDsKY29uc3QgU19JRkxOSyA9IDQwOTYwIDsKY29uc3QgU19JRk1UID0gNjE0NDAgOwpjb25zdCBTX0lGUkVHID0gMzI3NjggOwpjb25zdCBTX0lGU09DSyA9IDQ5MTUyIDsKY29uc3QgU19JTUEgPSAxMDI0IDsKY29uc3QgU19JTU1VVEFCTEUgPSA4IDsKY29uc3QgU19JUkVBRCA9IDI1NiA7CmNvbnN0IFNfSVJHUlAgPSAzMiA7CmNvbnN0IFNfSVJPVEggPSA0IDsKY29uc3QgU19JUlVTUiA9IDI1NiA7CmNvbnN0IFNfSVJXWEcgPSA1NiA7CmNvbnN0IFNfSVJXWE8gPSA3IDsKY29uc3QgU19JUldYVSA9IDQ0OCA7CmNvbnN0IFNfSVNHSUQgPSAxMDI0IDsKY29uc3QgU19JU1VJRCA9IDIwNDggOwpjb25zdCBTX0lTVlRYID0gNTEyIDsKY29uc3QgU19JV0dSUCA9IDE2IDsKY29uc3QgU19JV09USCA9IDIgOwpjb25zdCBTX0lXUklURSA9IDEyOCA7CmNvbnN0IFNfSVdVU1IgPSAxMjggOwpjb25zdCBTX0lYR1JQID0gOCA7CmNvbnN0IFNfSVhPVEggPSAxIDsKY29uc3QgU19JWFVTUiA9IDY0IDsKY29uc3QgU19OT0FUSU1FID0gMiA7CmNvbnN0IFNfTk9DTVRJTUUgPSAxMjggOwpjb25zdCBTX05PUVVPVEEgPSAzMiA7CmNvbnN0IFNfTk9TRUMgPSA0MDk2IDsKY29uc3QgU19QUklWQVRFID0gNTEyIDsKY29uc3QgU19TV0FQRklMRSA9IDI1NiA7CmNvbnN0IFNfU1lOQyA9IDEgOwpmdW5jIFNlZWsgKGZkIDx0eXBlIC0xMT4sIG9mZnNldCA8dHlwZSAtND4sIHdoZW5jZSA8dHlwZSAtMTE+KSAob2ZmIDx0eXBlIC00PiwgZXJyIDx0eXBlIC0xOT4pOwpmdW5jIFNlbGVjdCAobmZkIDx0eXBlIC0xMT4sIHIgPHR5cGUgNTg+LCB3IDx0eXBlIDU4PiwgZSA8dHlwZSA1OD4sIHRpbWVvdXQgPHR5cGUgMjY4ICo8dHlwZSAyMz4+KSAobiA8dHlwZSAtMTE+LCBlcnIgPHR5cGUgLTE5Pik7CmZ1bmMgU2VuZGZpbGUgKG91dGZkIDx0eXBlIC0xMT4sIGluZmQgPHR5cGUgLTExPiwgb2Zmc2V0IDx0eXBlIDI2OSAqPHR5cGUgLTQ+PiwgY291bnQgPHR5cGUgLTExPikgKHdyaXR0ZW4gPHR5cGUgLTExPiwgZXJyIDx0eXBlIC0xOT4pOwpmdW5jIFNlbmRtc2cgKGZkIDx0eXBlIC0xMT4sIHAgPHR5cGUgMjcwIFtdIDx0eXBlIC0yMD4+LCBvb2IgPHR5cGUgMjcwPiwgdG8gPHR5cGUgMT4sIGZsYWdzIDx0eXBlIC0xMT4pIChlcnIgPHR5cGUgLTE5Pik7CmZ1bmMgU2VuZG1zZ04gKGZkIDx0eXBlIC0xMT4sIHAgPHR5cGUgMjcxIFtdIDx0eXBlIC0yMD4+LCBvb2IgPHR5cGUgMjcxPiwgdG8gPHR5cGUgMT4sIGZsYWdzIDx0eXBlIC0xMT4pIChuIDx0eXBlIC0xMT4sIGVyciA8dHlwZSAtMTk+KTsKZnVuYyBTZW5kdG8gKGZkIDx0eXBlIC0xMT4sIHAgPHR5cGUgMjcyIFtdIDx0eXBlIC0yMD4+LCBmbGFncyA8dHlwZSAtMTE+LCB0byA8dHlwZSAxPikgKGVyciA8dHlwZSAtMTk+KTsKZnVuYyBTZXRFcnJubyAoPyA8dHlwZSA0OD4pOwpmdW5jIFNldExzZlByb21pc2MgKG5hbWUgPHR5cGUgLTE2PiwgbSA8dHlwZSAtMTU+KSA8dHlwZSAtMTk+OwpmdW5jIFNldE5vbmJsb2NrIChmZCA8dHlwZSAtMTE+LCBub25ibG9ja2luZyA8dHlwZSAtMTU+KSAoZXJyIDx0eXBlIC0xOT4pOwpmdW5jIFNldGRvbWFpbm5hbWUgKHAgPHR5cGUgMjczIFtdIDx0eXBlIC0yMD4+KSAoZXJyIDx0eXBlIC0xOT4pOwpmdW5jIFNldGVudiAoa2V5IDx0eXBlIC0xNj4sIHZhbHVlIDx0eXBlIC0xNj4pIDx0eXBlIC0xOT47CmZ1bmMgU2V0ZnNnaWQgKGdpZCA8dHlwZSAtMTE+KSAoZXJyIDx0eXBlIC0xOT4pOwpmdW5jIFNldGZzdWlkICh1aWQgPHR5cGUgLTExPikgKGVyciA8dHlwZSAtMTk+KTsKZnVuYyBTZXRnaWQgKGdpZCA8dHlwZSAtMTE+KSAoZXJyIDx0eXBlIC0xOT4pOwpmdW5jIFNldGdyb3VwcyAoZ2lkcyA8dHlwZSAyNzQgW10gPHR5cGUgLTExPj4pIChlcnIgPHR5cGUgLTE5Pik7CmZ1bmMgU2V0aG9zdG5hbWUgKHAgPHR5cGUgMjc1IFtdIDx0eXBlIC0yMD4+KSAoZXJyIDx0eXBlIC0xOT4pOwpmdW5jIFNldHBnaWQgKHBpZCA8dHlwZSAtMTE+LCBwZ2lkIDx0eXBlIC0xMT4pIChlcnIgPHR5cGUgLTE5Pik7CmZ1bmMgU2V0cHJpb3JpdHkgKHdoaWNoIDx0eXBlIC0xMT4sIHdobyA8dHlwZSAtMTE+LCBwcmlvIDx0eXBlIC0xMT4pIChlcnIgPHR5cGUgLTE5Pik7CmZ1bmMgU2V0cmVnaWQgKHJnaWQgPHR5cGUgLTExPiwgZWdpZCA8dHlwZSAtMTE+KSAoZXJyIDx0eXBlIC0xOT4pOwpmdW5jIFNldHJlc2dpZCAocmdpZCA8dHlwZSAtMTE+LCBlZ2lkIDx0eXBlIC0xMT4sIHNnaWQgPHR5cGUgLTExPikgKGVyciA8dHlwZSAtMTk+KTsKZnVuYyBTZXRyZXN1aWQgKHJ1aWQgPHR5cGUgLTExPiwgZWd1aWQgPHR5cGUgLTExPiwgc3VpZCA8dHlwZSAtMTE+KSAoZXJyIDx0eXBlIC0xOT4pOwpmdW5jIFNldHJldWlkIChydWlkIDx0eXBlIC0xMT4sIGV1aWQgPHR5cGUgLTExPikgKGVyciA8dHlwZSAtMTk+KTsKZnVuYyBTZXRybGltaXQgKHJlc291cmNlIDx0eXBlIC0xMT4sIHJsaW0gPHR5cGUgMjc2ICo8dHlwZSAxMTQ+PikgKGVyciA8dHlwZSAtMTk+KTsKZnVuYyBTZXRzaWQgKCkgKHBpZCA8dHlwZSAtMTE+LCBlcnIgPHR5cGUgLTE5Pik7CmZ1bmMgU2V0c29ja29wdEJ5dGUgKGZkIDx0eXBlIC0xMT4sIGxldmVsIDx0eXBlIC0xMT4sIG9wdCA8dHlwZSAtMTE+LCB2YWx1ZSA8dHlwZSAtMjA+KSAoZXJyIDx0eXBlIC0xOT4pOwpmdW5jIFNldHNvY2tvcHRJQ01QdjZGaWx0ZXIgKGZkIDx0eXBlIC0xMT4sIGxldmVsIDx0eXBlIC0xMT4sIG9wdCA8dHlwZSAtMTE+LCBmaWx0ZXIgPHR5cGUgMjc3ICo8dHlwZSAxMzg+PikgPHR5cGUgLTE5PjsKZnVuYyBTZXRzb2Nrb3B0SVBNcmVxIChmZCA8dHlwZSAtMTE+LCBsZXZlbCA8dHlwZSAtMTE+LCBvcHQgPHR5cGUgLTExPiwgbXJlcSA8dHlwZSAyNzggKjx0eXBlIDEyMD4+KSAoZXJyIDx0eXBlIC0xOT4pOwpmdW5jIFNldHNvY2tvcHRJUE1yZXFuIChmZCA8dHlwZSAtMTE+LCBsZXZlbCA8dHlwZSAtMTE+LCBvcHQgPHR5cGUgLTExPiwgbXJlcSA8dHlwZSAyNzkgKjx0eXBlIDEyNT4+KSAoZXJyIDx0eXBlIC0xOT4pOwpmdW5jIFNldHNvY2tvcHRJUHY2TXJlcSAoZmQgPHR5cGUgLTExPiwgbGV2ZWwgPHR5cGUgLTExPiwgb3B0IDx0eXBlIC0xMT4sIG1yZXEgPHR5cGUgMjgwICo8dHlwZSAxMzA+PikgKGVyciA8dHlwZSAtMTk+KTsKZnVuYyBTZXRzb2Nrb3B0SW5ldDRBZGRyIChmZCA8dHlwZSAtMTE+LCBsZXZlbCA8dHlwZSAtMTE+LCBvcHQgPHR5cGUgLTExPiwgdmFsdWUgPHR5cGUgMjgxIFs0IF0gPHR5cGUgLTIwPj4pIChlcnIgPHR5cGUgLTE5Pik7CmZ1bmMgU2V0c29ja29wdEludCAoZmQgPHR5cGUgLTExPiwgbGV2ZWwgPHR5cGUgLTExPiwgb3B0IDx0eXBlIC0xMT4sIHZhbHVlIDx0eXBlIC0xMT4pIChlcnIgPHR5cGUgLTE5Pik7CmZ1bmMgU2V0c29ja29wdExpbmdlciAoZmQgPHR5cGUgLTExPiwgbGV2ZWwgPHR5cGUgLTExPiwgb3B0IDx0eXBlIC0xMT4sIGwgPHR5cGUgMjgyICo8dHlwZSAxNjE+PikgKGVyciA8dHlwZSAtMTk+KTsKZnVuYyBTZXRzb2Nrb3B0U3RyaW5nIChmZCA8dHlwZSAtMTE+LCBsZXZlbCA8dHlwZSAtMTE+LCBvcHQgPHR5cGUgLTExPiwgcyA8dHlwZSAtMTY+KSAoZXJyIDx0eXBlIC0xOT4pOwpmdW5jIFNldHNvY2tvcHRUaW1ldmFsIChmZCA8dHlwZSAtMTE+LCBsZXZlbCA8dHlwZSAtMTE+LCBvcHQgPHR5cGUgLTExPiwgdHYgPHR5cGUgMjgzICo8dHlwZSAyMz4+KSAoZXJyIDx0eXBlIC0xOT4pOwpmdW5jIFNldHRpbWVvZmRheSAodHYgPHR5cGUgMjg0ICo8dHlwZSAyMz4+KSAoZXJyIDx0eXBlIC0xOT4pOwpmdW5jIFNldHVpZCAodWlkIDx0eXBlIC0xMT4pIChlcnIgPHR5cGUgLTE5Pik7CmZ1bmMgU2V0eGF0dHIgKHBhdGggPHR5cGUgLTE2PiwgYXR0ciA8dHlwZSAtMTY+LCBkYXRhIDx0eXBlIDI4NSBbXSA8dHlwZSAtMjA+PiwgZmxhZ3MgPHR5cGUgLTExPikgKGVyciA8dHlwZSAtMTk+KTsKZnVuYyBTaHV0ZG93biAoZmQgPHR5cGUgLTExPiwgaG93IDx0eXBlIC0xMT4pIChlcnIgPHR5cGUgLTE5Pik7CnR5cGUgPHR5cGUgNzY+OwpmdW5jIFNpZ25hbWUgKHMgPHR5cGUgNzY+KSA8dHlwZSAtMTY+Owp0eXBlIDx0eXBlIDI4NiAiU2l6ZV90IiA8dHlwZSAyODcgIi5zeXNjYWxsLl9zaXplX3QiIDx0eXBlIC03Pj4+Owpjb25zdCBTaXplb2ZDbXNnaGRyID0gMTIgOwpjb25zdCBTaXplb2ZJQ01QdjZGaWx0ZXIgPSAzMiA7CmNvbnN0IFNpemVvZklQTXJlcSA9IDggOwpjb25zdCBTaXplb2ZJUE1yZXFuID0gMTIgOwpjb25zdCBTaXplb2ZJUHY2TXJlcSA9IDIwIDsKY29uc3QgU2l6ZW9mSWZBZGRybXNnID0gOCA7CmNvbnN0IFNpemVvZklmSW5mb21zZyA9IDE2IDsKY29uc3QgU2l6ZW9mSW5ldDRQa3RpbmZvID0gMTIgOwpjb25zdCBTaXplb2ZJbmV0NlBrdGluZm8gPSAyMCA7CmNvbnN0IFNpemVvZklub3RpZnlFdmVudCA9IDE2IDsKY29uc3QgU2l6ZW9mTGluZ2VyID0gOCA7CmNvbnN0IFNpemVvZk1zZ2hkciA9IDI4IDsKY29uc3QgU2l6ZW9mTmxBdHRyID0gNCA7CmNvbnN0IFNpemVvZk5sTXNnZXJyID0gMjAgOwpjb25zdCBTaXplb2ZObE1zZ2hkciA9IDE2IDsKY29uc3QgU2l6ZW9mUnRBdHRyID0gNCA7CmNvbnN0IFNpemVvZlJ0R2VubXNnID0gMSA7CmNvbnN0IFNpemVvZlJ0TXNnID0gMTIgOwpjb25zdCBTaXplb2ZSdE5leHRob3AgPSA4IDsKY29uc3QgU2l6ZW9mU29ja0ZpbHRlciA9IDggOwpjb25zdCBTaXplb2ZTb2NrRnByb2cgPSA4IDsKY29uc3QgU2l6ZW9mU29ja2FkZHJBbnkgPSAxMDggOwpjb25zdCBTaXplb2ZTb2NrYWRkckluZXQ0ID0gMTYgOwpjb25zdCBTaXplb2ZTb2NrYWRkckluZXQ2ID0gMjggOwpjb25zdCBTaXplb2ZTb2NrYWRkckxpbmtsYXllciA9IDIwIDsKY29uc3QgU2l6ZW9mU29ja2FkZHJOZXRsaW5rID0gMTIgOwpjb25zdCBTaXplb2ZTb2NrYWRkclVuaXggPSAxMTAgOwpjb25zdCBTaXplb2ZVY3JlZCA9IDEyIDsKZnVuYyBTbGVlcCAobnNlYyA8dHlwZSAtND4pIChlcnIgPHR5cGUgLTE5Pik7CmZ1bmMgU2xpY2VQdHJGcm9tU3RyaW5ncyAoc3MgPHR5cGUgMjg4IFtdIDx0eXBlIC0xNj4+KSAoPyA8dHlwZSAyODkgW10gPHR5cGUgMjkwICo8dHlwZSAtMjA+Pj4sID8gPHR5cGUgLTE5Pik7CnR5cGUgPHR5cGUgMzA+Owp0eXBlIDx0eXBlIDI5MSAiU29ja0Zwcm9nIiA8dHlwZSAyOTIgc3RydWN0IHsgTGVuIDx0eXBlIC02PjsgRmlsdGVyIDx0eXBlIDI5MyAqPHR5cGUgMzA+PjsgfT4+Owp0eXBlIDx0eXBlIDE+Owp0eXBlIDx0eXBlIDI5NCAiU29ja2FkZHJJbmV0NCIgPHR5cGUgMjk1IHN0cnVjdCB7IFBvcnQgPHR5cGUgLTExPjsgQWRkciA8dHlwZSAyOTYgWzQgXSA8dHlwZSAtMjA+PjsgLnN5c2NhbGwucmF3IDx0eXBlIDI0MT47IH0+CiBmdW5jIChzYSA8dHlwZSAyOTcgKjx0eXBlIDI5ND4+KSAuc3lzY2FsbC5zb2NrYWRkciAoKSAoPyA8dHlwZSAyOTggKjx0eXBlIDQ+PiwgPyA8dHlwZSAxMD4sID8gPHR5cGUgLTE5Pik7Cj47CnR5cGUgPHR5cGUgMjk5ICJTb2NrYWRkckluZXQ2IiA8dHlwZSAzMDAgc3RydWN0IHsgUG9ydCA8dHlwZSAtMTE+OyBab25lSWQgPHR5cGUgLTc+OyBBZGRyIDx0eXBlIDMwMSBbMTYgXSA8dHlwZSAtMjA+PjsgLnN5c2NhbGwucmF3IDx0eXBlIDI0Nj47IH0+CiBmdW5jIChzYSA8dHlwZSAzMDIgKjx0eXBlIDI5OT4+KSAuc3lzY2FsbC5zb2NrYWRkciAoKSAoPyA8dHlwZSAyOTg+LCA/IDx0eXBlIDEwPiwgPyA8dHlwZSAtMTk+KTsKPjsKdHlwZSA8dHlwZSAzMDMgIlNvY2thZGRyTGlua2xheWVyIiA8dHlwZSAzMDQgc3RydWN0IHsgUHJvdG9jb2wgPHR5cGUgLTY+OyBJZmluZGV4IDx0eXBlIC0xMT47IEhhdHlwZSA8dHlwZSAtNj47IFBrdHR5cGUgPHR5cGUgLTU+OyBIYWxlbiA8dHlwZSAtNT47IEFkZHIgPHR5cGUgMzA1IFs4IF0gPHR5cGUgLTIwPj47IC5zeXNjYWxsLnJhdyA8dHlwZSAyNTA+OyB9PgogZnVuYyAoc2EgPHR5cGUgMzA2ICo8dHlwZSAzMDM+PikgLnN5c2NhbGwuc29ja2FkZHIgKCkgKD8gPHR5cGUgMjk4PiwgPyA8dHlwZSAxMD4sID8gPHR5cGUgLTE5Pik7Cj47CnR5cGUgPHR5cGUgMzA3ICJTb2NrYWRkck5ldGxpbmsiIDx0eXBlIDMwOCBzdHJ1Y3QgeyBGYW1pbHkgPHR5cGUgLTY+OyBQYWQgPHR5cGUgLTY+OyBQaWQgPHR5cGUgLTc+OyBHcm91cHMgPHR5cGUgLTc+OyAuc3lzY2FsbC5yYXcgPHR5cGUgMjUzPjsgfT4KIGZ1bmMgKHNhIDx0eXBlIDMwOSAqPHR5cGUgMzA3Pj4pIC5zeXNjYWxsLnNvY2thZGRyICgpICg/IDx0eXBlIDI5OD4sID8gPHR5cGUgMTA+LCA/IDx0eXBlIC0xOT4pOwo+Owp0eXBlIDx0eXBlIDMxMCAiU29ja2FkZHJVbml4IiA8dHlwZSAzMTEgc3RydWN0IHsgTmFtZSA8dHlwZSAtMTY+OyAuc3lzY2FsbC5yYXcgPHR5cGUgMjU1PjsgfT4KIGZ1bmMgKHNhIDx0eXBlIDMxMiAqPHR5cGUgMzEwPj4pIC5zeXNjYWxsLnNvY2thZGRyICgpICg/IDx0eXBlIDI5OD4sID8gPHR5cGUgMTA+LCA/IDx0eXBlIC0xOT4pOwo+OwpmdW5jIFNvY2tldCAoZG9tYWluIDx0eXBlIC0xMT4sIHR5cCA8dHlwZSAtMTE+LCBwcm90byA8dHlwZSAtMTE+KSAoZmQgPHR5cGUgLTExPiwgZXJyIDx0eXBlIC0xOT4pOwp0eXBlIDx0eXBlIDIxNj47CnZhciBTb2NrZXREaXNhYmxlSVB2NiA8dHlwZSAtMTU+OwpmdW5jIFNvY2tldHBhaXIgKGRvbWFpbiA8dHlwZSAtMTE+LCB0eXAgPHR5cGUgLTExPiwgcHJvdG8gPHR5cGUgLTExPikgKGZkIDx0eXBlIDMxMyBbMiBdIDx0eXBlIC0xMT4+LCBlcnIgPHR5cGUgLTE5Pik7CnR5cGUgPHR5cGUgMTA+OwpmdW5jIFNwbGljZSAocmZkIDx0eXBlIC0xMT4sIHJvZmYgPHR5cGUgMzE0ICo8dHlwZSAtND4+LCB3ZmQgPHR5cGUgLTExPiwgd29mZiA8dHlwZSAzMTUgKjx0eXBlIC00Pj4sIGxlbiA8dHlwZSAtMTE+LCBmbGFncyA8dHlwZSAtMTE+KSAobiA8dHlwZSAtND4sIGVyciA8dHlwZSAtMTk+KTsKdHlwZSA8dHlwZSAzMTYgIlNzaXplX3QiIDx0eXBlIDMxNyAiLnN5c2NhbGwuX3NzaXplX3QiIDx0eXBlIC0zPj4+OwpmdW5jIFN0YXJ0UHJvY2VzcyAoYXJndjAgPHR5cGUgLTE2PiwgYXJndiA8dHlwZSAzMTggW10gPHR5cGUgLTE2Pj4sIGF0dHIgPHR5cGUgNjc+KSAocGlkIDx0eXBlIC0xMT4sIGhhbmRsZSA8dHlwZSAtMTM+LCBlcnIgPHR5cGUgLTE5Pik7CmZ1bmMgU3RhdCAocGF0aCA8dHlwZSAtMTY+LCBzdGF0IDx0eXBlIDMxOSAqPHR5cGUgOTA+PikgKGVyciA8dHlwZSAtMTk+KTsKdHlwZSA8dHlwZSA5MD47CmZ1bmMgU3RhdGZzIChwYXRoIDx0eXBlIC0xNj4sIGJ1ZiA8dHlwZSAzMjAgKjx0eXBlIDEwMj4+KSAoZXJyIDx0eXBlIC0xOT4pOwp0eXBlIDx0eXBlIDEwMj47CnZhciBTdGRlcnIgPHR5cGUgLTExPjsKdmFyIFN0ZGluIDx0eXBlIC0xMT47CnZhciBTdGRvdXQgPHR5cGUgLTExPjsKZnVuYyBTdHJpbmdCeXRlUHRyIChzIDx0eXBlIC0xNj4pIDx0eXBlIDMyMSAqPHR5cGUgLTIwPj47CmZ1bmMgU3RyaW5nQnl0ZVNsaWNlIChzIDx0eXBlIC0xNj4pIDx0eXBlIDMyMiBbXSA8dHlwZSAtMjA+PjsKZnVuYyBTdHJpbmdTbGljZVB0ciAoc3MgPHR5cGUgMzIzIFtdIDx0eXBlIC0xNj4+KSA8dHlwZSAzMjQgW10gPHR5cGUgMzI1ICo8dHlwZSAtMjA+Pj47CmZ1bmMgU3ltbGluayAob2xkcGF0aCA8dHlwZSAtMTY+LCBuZXdwYXRoIDx0eXBlIC0xNj4pIChlcnIgPHR5cGUgLTE5Pik7CmZ1bmMgU3luYyAoKTsKZnVuYyBTeW5jRmlsZVJhbmdlIChmZCA8dHlwZSAtMTE+LCBvZmYgPHR5cGUgLTQ+LCBuIDx0eXBlIC00PiwgZmxhZ3MgPHR5cGUgLTExPikgKGVyciA8dHlwZSAtMTk+KTsKdHlwZSA8dHlwZSA3Mz47CnR5cGUgPHR5cGUgNzg+OwpmdW5jIFN5c2NhbGwgKHRyYXAgPHR5cGUgLTEzPiwgYTEgPHR5cGUgLTEzPiwgYTIgPHR5cGUgLTEzPiwgYTMgPHR5cGUgLTEzPikgKHIxIDx0eXBlIC0xMz4sIHIyIDx0eXBlIC0xMz4sIGVyciA8dHlwZSA0OD4pOwpmdW5jIFN5c2NhbGw2ICh0cmFwIDx0eXBlIC0xMz4sIGExIDx0eXBlIC0xMz4sIGEyIDx0eXBlIC0xMz4sIGEzIDx0eXBlIC0xMz4sIGE0IDx0eXBlIC0xMz4sIGE1IDx0eXBlIC0xMz4sIGE2IDx0eXBlIC0xMz4pIChyMSA8dHlwZSAtMTM+LCByMiA8dHlwZSAtMTM+LCBlcnIgPHR5cGUgNDg+KTsKZnVuYyBTeXNpbmZvIChpbmZvIDx0eXBlIDMyNiAqPHR5cGUgMzI3ICJTeXNpbmZvX3QiIDx0eXBlIDMyOCBzdHJ1Y3QgeyBVcHRpbWUgPHR5cGUgLTM+OyBMb2FkcyA8dHlwZSAzMjkgWzMgXSA8dHlwZSAtNz4+OyBUb3RhbHJhbSA8dHlwZSAtNz47IEZyZWVyYW0gPHR5cGUgLTc+OyBTaGFyZWRyYW0gPHR5cGUgLTc+OyBCdWZmZXJyYW0gPHR5cGUgLTc+OyBUb3RhbHN3YXAgPHR5cGUgLTc+OyBGcmVlc3dhcCA8dHlwZSAtNz47IFByb2NzIDx0eXBlIC02PjsgLnN5c2NhbGwucGFkIDx0eXBlIC02PjsgVG90YWxoaWdoIDx0eXBlIC03PjsgRnJlZWhpZ2ggPHR5cGUgLTc+OyBVbml0IDx0eXBlIC03PjsgLnN5c2NhbGwuX2YgPHR5cGUgMzMwIFs4IF0gPHR5cGUgLTE+PjsgfT4+PikgKGVyciA8dHlwZSAtMTk+KTsKdHlwZSA8dHlwZSAzMjc+Owpjb25zdCBUQUJETFkgPSA2MTQ0IDsKY29uc3QgVENHRVRBID0gMjE1MDUgOwpjb25zdCBUQ0dFVFMgPSAyMTUxNyA7CmNvbnN0IFRDSUZMVVNIID0gMCA7CmNvbnN0IFRDSU9GRiA9IDIgOwpjb25zdCBUQ0lPRkxVU0ggPSAyIDsKY29uc3QgVENJT04gPSAzIDsKY29uc3QgVENPRkxVU0ggPSAxIDsKY29uc3QgVENPT0ZGID0gMCA7CmNvbnN0IFRDT09OID0gMSA7CmNvbnN0IFRDUF9DQV9DV1IgPSAyIDsKY29uc3QgVENQX0NBX0Rpc29yZGVyID0gMSA7CmNvbnN0IFRDUF9DQV9Mb3NzID0gNCA7CmNvbnN0IFRDUF9DQV9PcGVuID0gMCA7CmNvbnN0IFRDUF9DQV9SZWNvdmVyeSA9IDMgOwpjb25zdCBUQ1BfQ0xPU0UgPSA3IDsKY29uc3QgVENQX0NMT1NFX1dBSVQgPSA4IDsKY29uc3QgVENQX0NMT1NJTkcgPSAxMSA7CmNvbnN0IFRDUF9DT05HRVNUSU9OID0gMTMgOwpjb25zdCBUQ1BfQ09PS0lFX1RSQU5TQUNUSU9OUyA9IDE1IDsKY29uc3QgVENQX0NPUksgPSAzIDsKY29uc3QgVENQX0RFRkVSX0FDQ0VQVCA9IDkgOwpjb25zdCBUQ1BfRVNUQUJMSVNIRUQgPSAxIDsKY29uc3QgVENQX0ZBU1RPUEVOID0gMjMgOwpjb25zdCBUQ1BfRklOX1dBSVQxID0gNCA7CmNvbnN0IFRDUF9GSU5fV0FJVDIgPSA1IDsKY29uc3QgVENQX0lORk8gPSAxMSA7CmNvbnN0IFRDUF9LRUVQQ05UID0gNiA7CmNvbnN0IFRDUF9LRUVQSURMRSA9IDQgOwpjb25zdCBUQ1BfS0VFUElOVFZMID0gNSA7CmNvbnN0IFRDUF9MQVNUX0FDSyA9IDkgOwpjb25zdCBUQ1BfTElOR0VSMiA9IDggOwpjb25zdCBUQ1BfTElTVEVOID0gMTAgOwpjb25zdCBUQ1BfTUFYU0VHID0gMiA7CmNvbnN0IFRDUF9NQVhXSU4gPSA2NTUzNSA7CmNvbnN0IFRDUF9NQVhfV0lOU0hJRlQgPSAxNCA7CmNvbnN0IFRDUF9NRDVTSUcgPSAxNCA7CmNvbnN0IFRDUF9NRDVTSUdfTUFYS0VZTEVOID0gODAgOwpjb25zdCBUQ1BfTVNTID0gNTEyIDsKY29uc3QgVENQX05PREVMQVkgPSAxIDsKY29uc3QgVENQX1FVRVVFX1NFUSA9IDIxIDsKY29uc3QgVENQX1FVSUNLQUNLID0gMTIgOwpjb25zdCBUQ1BfUkVQQUlSID0gMTkgOwpjb25zdCBUQ1BfUkVQQUlSX09QVElPTlMgPSAyMiA7CmNvbnN0IFRDUF9SRVBBSVJfUVVFVUUgPSAyMCA7CmNvbnN0IFRDUF9TWU5DTlQgPSA3IDsKY29uc3QgVENQX1NZTl9SRUNWID0gMyA7CmNvbnN0IFRDUF9TWU5fU0VOVCA9IDIgOwpjb25zdCBUQ1BfVEhJTl9EVVBBQ0sgPSAxNyA7CmNvbnN0IFRDUF9USElOX0xJTkVBUl9USU1FT1VUUyA9IDE2IDsKY29uc3QgVENQX1RJTUVTVEFNUCA9IDI0IDsKY29uc3QgVENQX1RJTUVfV0FJVCA9IDYgOwpjb25zdCBUQ1BfVVNFUl9USU1FT1VUID0gMTggOwpjb25zdCBUQ1BfV0lORE9XX0NMQU1QID0gMTAgOwpjb25zdCBUQ1NBRFJBSU4gPSAyMTUxOSA7CmNvbnN0IFRDU0FGTFVTSCA9IDIxNTIwIDsKY29uc3QgVENTQU5PVyA9IDIxNTE4IDsKY29uc3QgVENTRVRBID0gMjE1MDYgOwpjb25zdCBUQ1NFVEFGID0gMjE1MDggOwpjb25zdCBUQ1NFVEFXID0gMjE1MDcgOwpjb25zdCBUQ1NFVFMgPSAyMTUxOCA7CmNvbnN0IFRDU0VUU0YgPSAyMTUyMCA7CmNvbnN0IFRDU0VUU1cgPSAyMTUxOSA7CmNvbnN0IFRJT0NDQlJLID0gMjE1NDQgOwpjb25zdCBUSU9DRVhDTCA9IDI5NzA5IDsKY29uc3QgVElPQ0dERVYgPSAxMDc0MDI1NTIyIDsKY29uc3QgVElPQ0dFVEQgPSAyOTY5NiA7CmNvbnN0IFRJT0NHRVRQID0gMjk3MDQgOwpjb25zdCBUSU9DR0lDT1VOVCA9IDIxNjUwIDsKY29uc3QgVElPQ0dMQ0tUUk1JT1MgPSAyMTY0MyA7CmNvbnN0IFRJT0NHTFRDID0gMjk4MTIgOwpjb25zdCBUSU9DR1BUTiA9IDEwNzQwMjU1MjAgOwpjb25zdCBUSU9DR1NFUklBTCA9IDIxNjM2IDsKY29uc3QgVElPQ0dTSUQgPSAyOTcxOCA7CmNvbnN0IFRJT0NHU09GVENBUiA9IDIxNjMzIDsKY29uc3QgVElPQ0dXSU5TWiA9IDEwNzQyOTU5MTIgOwpjb25zdCBUSU9DSU5RID0gMTgwNDcgOwpjb25zdCBUSU9DTElOVVggPSAyMTYzNSA7CmNvbnN0IFRJT0NNQklDID0gMjk3MjQgOwpjb25zdCBUSU9DTUJJUyA9IDI5NzIzIDsKY29uc3QgVElPQ01HRVQgPSAyOTcyNSA7CmNvbnN0IFRJT0NNSVdBSVQgPSAyMTY0OSA7CmNvbnN0IFRJT0NNU0VUID0gMjk3MjIgOwpjb25zdCBUSU9DTV9DQVIgPSAyNTYgOwpjb25zdCBUSU9DTV9DRCA9IDI1NiA7CmNvbnN0IFRJT0NNX0NUUyA9IDY0IDsKY29uc3QgVElPQ01fRFNSID0gMTAyNCA7CmNvbnN0IFRJT0NNX0RUUiA9IDIgOwpjb25zdCBUSU9DTV9MRSA9IDEgOwpjb25zdCBUSU9DTV9SSSA9IDUxMiA7CmNvbnN0IFRJT0NNX1JORyA9IDUxMiA7CmNvbnN0IFRJT0NNX1JUUyA9IDQgOwpjb25zdCBUSU9DTV9TUiA9IDMyIDsKY29uc3QgVElPQ01fU1QgPSAxNiA7CmNvbnN0IFRJT0NOT1RUWSA9IDIxNjE3IDsKY29uc3QgVElPQ05YQ0wgPSAyOTcxMCA7CmNvbnN0IFRJT0NPVVRRID0gMjk4MTAgOwpjb25zdCBUSU9DUEtUID0gMjE2MTYgOwpjb25zdCBUSU9DUEtUX0RBVEEgPSAwIDsKY29uc3QgVElPQ1BLVF9ET1NUT1AgPSAzMiA7CmNvbnN0IFRJT0NQS1RfRkxVU0hSRUFEID0gMSA7CmNvbnN0IFRJT0NQS1RfRkxVU0hXUklURSA9IDIgOwpjb25zdCBUSU9DUEtUX0lPQ1RMID0gNjQgOwpjb25zdCBUSU9DUEtUX05PU1RPUCA9IDE2IDsKY29uc3QgVElPQ1BLVF9TVEFSVCA9IDggOwpjb25zdCBUSU9DUEtUX1NUT1AgPSA0IDsKY29uc3QgVElPQ1NCUksgPSAyMTU0MyA7CmNvbnN0IFRJT0NTQ1RUWSA9IDIxNjMyIDsKY29uc3QgVElPQ1NFUkNPTkZJRyA9IDIxNjQwIDsKY29uc3QgVElPQ1NFUkdFVExTUiA9IDIxNjQ2IDsKY29uc3QgVElPQ1NFUkdFVE1VTFRJID0gMjE2NDcgOwpjb25zdCBUSU9DU0VSR1NUUlVDVCA9IDIxNjQ1IDsKY29uc3QgVElPQ1NFUkdXSUxEID0gMjE2NDEgOwpjb25zdCBUSU9DU0VSU0VUTVVMVEkgPSAyMTY0OCA7CmNvbnN0IFRJT0NTRVJTV0lMRCA9IDIxNjQyIDsKY29uc3QgVElPQ1NFUl9URU1UID0gMSA7CmNvbnN0IFRJT0NTRVREID0gMjk2OTcgOwpjb25zdCBUSU9DU0VUTiA9IDI5NzA2IDsKY29uc3QgVElPQ1NFVFAgPSAyOTcwNSA7CmNvbnN0IFRJT0NTSUcgPSAyMTQ3NzY3MzUwIDsKY29uc3QgVElPQ1NMQ0tUUk1JT1MgPSAyMTY0NCA7CmNvbnN0IFRJT0NTTFRDID0gMjk4MTMgOwpjb25zdCBUSU9DU1BUTENLID0gMjE0Nzc2NzM0NSA7CmNvbnN0IFRJT0NTU0VSSUFMID0gMjE2MzcgOwpjb25zdCBUSU9DU1NPRlRDQVIgPSAyMTYzNCA7CmNvbnN0IFRJT0NTVEkgPSAyMTYxOCA7CmNvbnN0IFRJT0NTV0lOU1ogPSAyMTQ4MDM3NzM1IDsKY29uc3QgVElPQ1ZIQU5HVVAgPSAyMTU1OSA7CmNvbnN0IFRPU1RPUCA9IDMyNzY4IDsKY29uc3QgVFVOQVRUQUNIRklMVEVSID0gMjE0ODAyOTY1MyA7CmNvbnN0IFRVTkRFVEFDSEZJTFRFUiA9IDIxNDgwMjk2NTQgOwpjb25zdCBUVU5HRVRGRUFUVVJFUyA9IDEwNzQwMjU2NzkgOwpjb25zdCBUVU5HRVRJRkYgPSAxMDc0MDI1NjgyIDsKY29uc3QgVFVOR0VUU05EQlVGID0gMTA3NDAyNTY4MyA7CmNvbnN0IFRVTkdFVFZORVRIRFJTWiA9IDEwNzQwMjU2ODcgOwpjb25zdCBUVU5TRVRERUJVRyA9IDIxNDc3Njc0OTcgOwpjb25zdCBUVU5TRVRHUk9VUCA9IDIxNDc3Njc1MDIgOwpjb25zdCBUVU5TRVRJRkYgPSAyMTQ3NzY3NDk4IDsKY29uc3QgVFVOU0VUTElOSyA9IDIxNDc3Njc1MDEgOwpjb25zdCBUVU5TRVROT0NTVU0gPSAyMTQ3NzY3NDk2IDsKY29uc3QgVFVOU0VUT0ZGTE9BRCA9IDIxNDc3Njc1MDQgOwpjb25zdCBUVU5TRVRPV05FUiA9IDIxNDc3Njc1MDAgOwpjb25zdCBUVU5TRVRQRVJTSVNUID0gMjE0Nzc2NzQ5OSA7CmNvbnN0IFRVTlNFVFNOREJVRiA9IDIxNDc3Njc1MDggOwpjb25zdCBUVU5TRVRUWEZJTFRFUiA9IDIxNDc3Njc1MDUgOwpjb25zdCBUVU5TRVRWTkVUSERSU1ogPSAyMTQ3NzY3NTEyIDsKZnVuYyBUY2dldGF0dHIgKGZkIDx0eXBlIC0xMT4sIHAgPHR5cGUgMzMxICo8dHlwZSAzMzIgIlRlcm1pb3MiIDx0eXBlIDMzMyBzdHJ1Y3QgeyBJZmxhZyA8dHlwZSAtNz47IE9mbGFnIDx0eXBlIC03PjsgQ2ZsYWcgPHR5cGUgLTc+OyBMZmxhZyA8dHlwZSAtNz47IExpbmUgPHR5cGUgLTU+OyBDYyA8dHlwZSAzMzQgWzMyIF0gPHR5cGUgLTU+PjsgfT4+PikgKGVyciA8dHlwZSAtMTk+KTsKZnVuYyBUY3NldGF0dHIgKGZkIDx0eXBlIC0xMT4sIGFjdGlvbnMgPHR5cGUgLTExPiwgcCA8dHlwZSAzMzUgKjx0eXBlIDMzMj4+KSAoZXJyIDx0eXBlIC0xOT4pOwpmdW5jIFRlZSAocmZkIDx0eXBlIC0xMT4sIHdmZCA8dHlwZSAtMTE+LCBsZW4gPHR5cGUgLTExPiwgZmxhZ3MgPHR5cGUgLTExPikgKG4gPHR5cGUgLTQ+LCBlcnIgPHR5cGUgLTE5Pik7CnR5cGUgPHR5cGUgMzMyPjsKZnVuYyBUZ2tpbGwgKHRnaWQgPHR5cGUgLTExPiwgdGlkIDx0eXBlIC0xMT4sIHNpZyA8dHlwZSA3Nj4pIDx0eXBlIC0xOT47CmZ1bmMgVGltZSAodCA8dHlwZSAzMzYgKjx0eXBlIDMzNyAiVGltZV90IiA8dHlwZSAzMzggIi5zeXNjYWxsLl90aW1lX3QiIDx0eXBlIC0zPj4+PikgKHR0IDx0eXBlIDMzNz4sIGVyciA8dHlwZSAtMTk+KTsKdHlwZSA8dHlwZSAzMzc+OwpmdW5jIFRpbWVzICh0bXMgPHR5cGUgMzM5ICo8dHlwZSAzNDAgIlRtcyIgPHR5cGUgMzQxIHN0cnVjdCB7IFV0aW1lIDx0eXBlIC0zPjsgU3RpbWUgPHR5cGUgLTM+OyBDdXRpbWUgPHR5cGUgLTM+OyBDc3RpbWUgPHR5cGUgLTM+OyB9Pj4+KSAodGlja3MgPHR5cGUgLTEzPiwgZXJyIDx0eXBlIC0xOT4pOwp0eXBlIDx0eXBlIDk0PjsKZnVuYyBUaW1lc3BlY1RvTnNlYyAodHMgPHR5cGUgOTQ+KSA8dHlwZSAtND47CnR5cGUgPHR5cGUgOTc+Owp0eXBlIDx0eXBlIDk2PjsKdHlwZSA8dHlwZSAyMz47CmZ1bmMgVGltZXZhbFRvTnNlYyAodHYgPHR5cGUgMjM+KSA8dHlwZSAtND47CnR5cGUgPHR5cGUgMjU+Owp0eXBlIDx0eXBlIDI2PjsKdHlwZSA8dHlwZSAyMT47CnR5cGUgPHR5cGUgMzQwPjsKZnVuYyBUcnVuY2F0ZSAocGF0aCA8dHlwZSAtMTY+LCBsZW5ndGggPHR5cGUgLTQ+KSAoZXJyIDx0eXBlIC0xOT4pOwp0eXBlIDx0eXBlIDIyMT47CnR5cGUgPHR5cGUgMzQyICJVaWRfdCIgPHR5cGUgMzQzICIuc3lzY2FsbC5fdWlkX3QiIDx0eXBlIC03Pj4+OwpmdW5jIFVtYXNrIChtYXNrIDx0eXBlIC0xMT4pIChvbGRtYXNrIDx0eXBlIC0xMT4pOwpmdW5jIFVuYW1lIChidWYgPHR5cGUgMzQ0ICo8dHlwZSAzNDUgIlV0c25hbWUiIDx0eXBlIDM0NiBzdHJ1Y3QgeyBTeXNuYW1lIDx0eXBlIDM0NyBbNjUgXSA8dHlwZSAtMT4+OyBOb2RlbmFtZSA8dHlwZSAzNDggWzY1IF0gPHR5cGUgLTE+PjsgUmVsZWFzZSA8dHlwZSAzNDkgWzY1IF0gPHR5cGUgLTE+PjsgVmVyc2lvbiA8dHlwZSAzNTAgWzY1IF0gPHR5cGUgLTE+PjsgTWFjaGluZSA8dHlwZSAzNTEgWzY1IF0gPHR5cGUgLTE+PjsgRG9tYWlubmFtZSA8dHlwZSAzNTIgWzY1IF0gPHR5cGUgLTE+PjsgfT4+PikgKGVyciA8dHlwZSAtMTk+KTsKZnVuYyBVbml4Q3JlZGVudGlhbHMgKHVjcmVkIDx0eXBlIDM1MyAqPHR5cGUgMjIxPj4pIDx0eXBlIDM1NCBbXSA8dHlwZSAtMjA+PjsKZnVuYyBVbml4UmlnaHRzIChmZHMgLi4uPHR5cGUgLTExPikgPHR5cGUgMzU1IFtdIDx0eXBlIC0yMD4+OwpmdW5jIFVubGluayAocGF0aCA8dHlwZSAtMTY+KSAoZXJyIDx0eXBlIC0xOT4pOwpmdW5jIFVubGlua2F0IChkaXJmZCA8dHlwZSAtMTE+LCBwYXRoIDx0eXBlIC0xNj4pIChlcnIgPHR5cGUgLTE5Pik7CmZ1bmMgVW5tb3VudCAodGFyZ2V0IDx0eXBlIC0xNj4sIGZsYWdzIDx0eXBlIC0xMT4pIChlcnIgPHR5cGUgLTE5Pik7CmZ1bmMgVW5zZXRlbnYgKGtleSA8dHlwZSAtMTY+KSA8dHlwZSAtMTk+OwpmdW5jIFVuc2hhcmUgKGZsYWdzIDx0eXBlIC0xMT4pIChlcnIgPHR5cGUgLTE5Pik7CmZ1bmMgVXN0YXQgKGRldiA8dHlwZSAtMTE+LCB1YnVmIDx0eXBlIDM1NiAqPHR5cGUgMzU3ICJVc3RhdF90IiA8dHlwZSAzNTggc3RydWN0IHsgVGZyZWUgPHR5cGUgLTM+OyBUaW5vZSA8dHlwZSAtNz47IEZuYW1lIDx0eXBlIDM1OSBbNiBdIDx0eXBlIC0xPj47IEZwYWNrIDx0eXBlIDM2MCBbNiBdIDx0eXBlIC0xPj47IH0+Pj4pIChlcnIgPHR5cGUgLTE5Pik7CnR5cGUgPHR5cGUgMzU3PjsKdHlwZSA8dHlwZSAzNjEgIlV0aW1idWYiIDx0eXBlIDM2MiBzdHJ1Y3QgeyBBY3RpbWUgPHR5cGUgLTM+OyBNb2R0aW1lIDx0eXBlIC0zPjsgfT4+OwpmdW5jIFV0aW1lIChwYXRoIDx0eXBlIC0xNj4sIGJ1ZiA8dHlwZSAzNjMgKjx0eXBlIDM2MT4+KSAoZXJyIDx0eXBlIC0xOT4pOwpmdW5jIFV0aW1lcyAocGF0aCA8dHlwZSAtMTY+LCB0diA8dHlwZSAzNjQgW10gPHR5cGUgMjM+PikgKGVyciA8dHlwZSAtMTk+KTsKZnVuYyBVdGltZXNOYW5vIChwYXRoIDx0eXBlIC0xNj4sIHRzIDx0eXBlIDM2NSBbXSA8dHlwZSA5ND4+KSAoZXJyIDx0eXBlIC0xOT4pOwp0eXBlIDx0eXBlIDM0NT47CmNvbnN0IFZESVNDQVJEID0gMTMgOwpjb25zdCBWRU9GID0gMTYgOwpjb25zdCBWRU9MID0gMTcgOwpjb25zdCBWRU9MMiA9IDYgOwpjb25zdCBWRVJBU0UgPSAyIDsKY29uc3QgVklOVFIgPSAwIDsKY29uc3QgVktJTEwgPSAzIDsKY29uc3QgVkxORVhUID0gMTUgOwpjb25zdCBWTUlOID0gNCA7CmNvbnN0IFZRVUlUID0gMSA7CmNvbnN0IFZSRVBSSU5UID0gMTIgOwpjb25zdCBWU1RBUlQgPSA4IDsKY29uc3QgVlNUT1AgPSA5IDsKY29uc3QgVlNVU1AgPSAxMCA7CmNvbnN0IFZTV1RDSCA9IDcgOwpjb25zdCBWVERMWSA9IDE2Mzg0IDsKY29uc3QgVlRJTUUgPSA1IDsKY29uc3QgVldFUkFTRSA9IDE0IDsKY29uc3QgV0FJVF9BTlkgPSAtMSA7CmNvbnN0IFdBSVRfTVlQR1JQID0gMCA7CmNvbnN0IFdBTEwgPSAxMDczNzQxODI0IDsKY29uc3QgV0NIQVJfTUFYID0gMjE0NzQ4MzY0NyA7CmNvbnN0IFdDSEFSX01JTiA9IC0yMTQ3NDgzNjQ4IDsKY29uc3QgV0NPTlRJTlVFRCA9IDggOwpjb25zdCBXQ09SRUZMQUcgPSAxMjggOwpjb25zdCBXRVhJVEVEID0gNCA7CmNvbnN0IFdJTlRfTUFYID0gNDI5NDk2NzI5NSA7CmNvbnN0IFdJTlRfTUlOID0gMCA7CmNvbnN0IFdOT0hBTkcgPSAxIDsKY29uc3QgV05PV0FJVCA9IDE2Nzc3MjE2IDsKY29uc3QgV09SRF9CSVQgPSAzMiA7CmNvbnN0IFdTVE9QUEVEID0gMiA7CmNvbnN0IFdVTlRSQUNFRCA9IDIgOwpjb25zdCBXX09LID0gMiA7CmZ1bmMgV2FpdDQgKHBpZCA8dHlwZSAtMTE+LCB3c3RhdHVzIDx0eXBlIDM2NiAqPHR5cGUgMzY3ICJXYWl0U3RhdHVzIiA8dHlwZSAtNz4KIGZ1bmMgKHcgPHR5cGUgMzY3PikgU3RvcHBlZCAoKSA8dHlwZSAtMTU+OwogZnVuYyAodyA8dHlwZSAzNjc+KSBTdG9wU2lnbmFsICgpIDx0eXBlIDc2PjsKIGZ1bmMgKHcgPHR5cGUgMzY3PikgU2lnbmFsICgpIDx0eXBlIDc2PjsKIGZ1bmMgKHcgPHR5cGUgMzY3PikgRXhpdFN0YXR1cyAoKSA8dHlwZSAtMTE+OwogZnVuYyAodyA8dHlwZSAzNjc+KSBFeGl0ZWQgKCkgPHR5cGUgLTE1PjsKIGZ1bmMgKHcgPHR5cGUgMzY3PikgVHJhcENhdXNlICgpIDx0eXBlIC0xMT47CiBmdW5jICh3IDx0eXBlIDM2Nz4pIENvcmVEdW1wICgpIDx0eXBlIC0xNT47CiBmdW5jICh3IDx0eXBlIDM2Nz4pIENvbnRpbnVlZCAoKSA8dHlwZSAtMTU+OwogZnVuYyAodyA8dHlwZSAzNjc+KSBTaWduYWxlZCAoKSA8dHlwZSAtMTU+Owo+Piwgb3B0aW9ucyA8dHlwZSAtMTE+LCBydXNhZ2UgPHR5cGUgMzY4ICo8dHlwZSAxMTc+PikgKHdwaWQgPHR5cGUgLTExPiwgZXJyIDx0eXBlIC0xOT4pOwp0eXBlIDx0eXBlIDM2Nz47CmZ1bmMgV3JpdGUgKGZkIDx0eXBlIC0xMT4sIHAgPHR5cGUgMzY5IFtdIDx0eXBlIC0yMD4+KSAobiA8dHlwZSAtMTE+LCBlcnIgPHR5cGUgLTE5Pik7CmNvbnN0IFhDQVNFID0gNCA7CmNoZWNrc3VtIEM2OTZDREFCOUI4QUU0MjZEREI1QkZGNTM0RkY2NUJDNjhBRDhGOEY7CgAuc3ltdGFiAC5zdHJ0YWIALnNoc3RydGFiAC5nb19leHBvcnQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGwAAAAEAAAAAAAAAAAAAADQAAABsYgEAAAAAAAAAAAABAAAAAAAAABEAAAADAAAAAAAAAAAAAACgYgEAJgAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAgAAAAAAAAAAAAAAyGIBACAAAAAEAAAAAgAAAAQAAAAQAAAACQAAAAMAAAAAAAAAAAAAAOhiAQABAAAAAAAAAAAAAAABAAAAAAAAAA==