diff --git a/crypto/util/cruncher.h b/crypto/util/cruncher.h index c314bb1..f200baa 100644 --- a/crypto/util/cruncher.h +++ b/crypto/util/cruncher.h @@ -111,6 +111,75 @@ static vec8u sha256_transform(vec16u data, vec8u state) return state; } +#if defined(__NVCC__) +__forceinline__ __device__ __host__ +#else +inline +#endif +static vec8u sha256_transform_2(vec16u data, vec8u state) +{ + const uint32_t ksha[] = { + 0x428A2F98, 0x71374491, 0xB5C0FBCF, 0xE9B5DBA5, 0x3956C25B, 0x59F111F1, 0x923F82A4, 0xAB1C5ED5, + 0xD807AA98, 0x12835B01, 0x243185BE, 0x550C7DC3, 0x72BE5D74, 0x80DEB1FE, 0x9BDC06A7, 0xC19BF174, + 0xE49B69C1, 0xEFBE4786, 0x0FC19DC6, 0x240CA1CC, 0x2DE92C6F, 0x4A7484AA, 0x5CB0A9DC, 0x76F988DA, + 0x983E5152, 0xA831C66D, 0xB00327C8, 0xBF597FC7, 0xC6E00BF3, 0xD5A79147, 0x06CA6351, 0x14292967, + 0x27B70A85, 0x2E1B2138, 0x4D2C6DFC, 0x53380D13, 0x650A7354, 0x766A0ABB, 0x81C2C92E, 0x92722C85, + 0xA2BFE8A1, 0xA81A664B, 0xC24B8B70, 0xC76C51A3, 0xD192E819, 0xD6990624, 0xF40E3585, 0x106AA070, + 0x19A4C116, 0x1E376C08, 0x2748774C, 0x34B0BCB5, 0x391C0CB3, 0x4ED8AA4A, 0x5B9CCA4F, 0x682E6FF3, + 0x748F82EE, 0x78A5636F, 0x84C87814, 0x8CC70208, 0x90BEFFFA, 0xA4506CEB, 0xBEF9A3F7, 0xC67178F2 + }; + + uint32_t m[64]; + + for (int i = 0; i < 16; i += 1) + m[i] = data.v[i]; + + for (int i = 16; i < 64; i += 1) + m[i] = SIG1(m[i - 2]) + m[i - 7] + SIG0(m[i - 15]) + m[i - 16]; + + uint32_t a = state.v[0], b = state.v[1], c = state.v[2], d = state.v[3]; + uint32_t e = state.v[4], f = state.v[5], g = state.v[6], h = state.v[7]; + +#if defined(__CUDA_ARCH__) || defined(__OPENCL_VERSION__) + #pragma unroll +#endif + for (int i = 0; i < 15; i += 1) + { + uint32_t t1 = h + EP1(e) + CH(e, f, g) + ksha[i]; // + m[i]; + uint32_t t2 = EP0(a) + MAJ(a, b, c); + h = g; + g = f; + f = e; + e = d + t1; + d = c; + c = b; + b = a; + a = t1 + t2; + } + +#if defined(__CUDA_ARCH__) || defined(__OPENCL_VERSION__) + #pragma unroll +#endif + for (int i = 15; i < 64; i += 1) + { + uint32_t t1 = h + EP1(e) + CH(e, f, g) + ksha[i] + m[i]; + uint32_t t2 = EP0(a) + MAJ(a, b, c); + h = g; + g = f; + f = e; + e = d + t1; + d = c; + c = b; + b = a; + a = t1 + t2; + } + + state.v[0] += a, state.v[1] += b, state.v[2] += c, state.v[3] += d; + state.v[4] += e, state.v[5] += f, state.v[6] += g, state.v[7] += h; + + return state; +} + #if !defined(__OPENCL_VERSION__) static const vec8u h256 = { @@ -244,24 +313,10 @@ DevHashResult; const MsgData *msg = &c_msg; const ThreadData *thrdata = &c_msg.thrdata[vcpu]; #endif - - vec8u state = thrdata->state; - + vec16u data; - uint64_t nonce = start_nonce + idx; - - uint32_t rdata6 = thrdata->rdata[0], rdata7 = thrdata->rdata[1], rdata8 = thrdata->rdata[2]; - uint64_t rdata = (((uint64_t)rdata6 << 56) | ((uint64_t)rdata7 << 24) | ((uint64_t)rdata8 >> 8)) + nonce; - - rdata6 = (uint32_t)(rdata >> 56) | (rdata6 & 0xFFFFFF00); - rdata7 = (uint32_t)(rdata >> 24); + vec16u data_2; - uint32_t rdata10 = (uint32_t)(rdata << 8) | 0x80; - rdata8 = (uint32_t)(rdata << 8) | (rdata8 & 0xFF); - - data.v[0x0] = rdata6; - data.v[0x1] = rdata7; - data.v[0x2] = rdata8; data.v[0x3] = msg->pseed[0]; data.v[0x4] = msg->pseed[1]; data.v[0x5] = msg->pseed[2]; @@ -271,69 +326,109 @@ DevHashResult; data.v[0x9] = thrdata->rdata[6]; data.v[0xA] = thrdata->rdata[7]; data.v[0xB] = thrdata->rdata[8]; - data.v[0xC] = rdata6; - data.v[0xD] = rdata7; - data.v[0xE] = rdata10; - data.v[0xF] = 0x00000000; - /*if (vcpu == 0 && idx == 0) - printf( - "%04x %04x %04x %04x %04x %04x %04x %04x\n%04x %04x %04x %04x %04x %04x %04x %04x\n\n", - data.v[0], data.v[1], data.v[2], data.v[3], data.v[4], data.v[5], data.v[6], data.v[7], - data.v[8], data.v[9], data.v[10], data.v[11], data.v[12], data.v[13], data.v[14], data.v[15] - );*/ - - state = sha256_transform(data, state); - - data.v[0x0] = 0x00000000; - data.v[0x1] = 0x00000000; - data.v[0x2] = 0x00000000; - data.v[0x3] = 0x00000000; - data.v[0x4] = 0x00000000; - data.v[0x5] = 0x00000000; - data.v[0x6] = 0x00000000; - data.v[0x7] = 0x00000000; - data.v[0x8] = 0x00000000; - data.v[0x9] = 0x00000000; - data.v[0xA] = 0x00000000; - data.v[0xB] = 0x00000000; - data.v[0xC] = 0x00000000; - data.v[0xD] = 0x00000000; - data.v[0xE] = 0x00000000; - data.v[0xF] = 0x000003d8; - - /*if (vcpu == 0 && idx == 0) - printf( - "%04x %04x %04x %04x %04x %04x %04x %04x\n%04x %04x %04x %04x %04x %04x %04x %04x\n\n", - data.v[0], data.v[1], data.v[2], data.v[3], data.v[4], data.v[5], data.v[6], data.v[7], - data.v[8], data.v[9], data.v[10], data.v[11], data.v[12], data.v[13], data.v[14], data.v[15] - );*/ - - state = sha256_transform(data, state); - - /*if (vcpu == 0 && idx == 0) - printf( - "%04x %04x %04x %04x %04x %04x %04x %04x\n\n", - state.v[0], state.v[1], state.v[2], state.v[3], state.v[4], state.v[5], state.v[6], state.v[7] - );*/ - - for (int i = 0; i < 8; i += 1) - { - if (state.v[i] > msg->target.v[i]) - return; - - if (state.v[i] < msg->target.v[i]) + data.v[0xF] = 0x00000000; + + data_2.v[0x0] = 0x00000000; + data_2.v[0x1] = 0x00000000; + data_2.v[0x2] = 0x00000000; + data_2.v[0x3] = 0x00000000; + data_2.v[0x4] = 0x00000000; + data_2.v[0x5] = 0x00000000; + data_2.v[0x6] = 0x00000000; + data_2.v[0x7] = 0x00000000; + data_2.v[0x8] = 0x00000000; + data_2.v[0x9] = 0x00000000; + data_2.v[0xA] = 0x00000000; + data_2.v[0xB] = 0x00000000; + data_2.v[0xC] = 0x00000000; + data_2.v[0xD] = 0x00000000; + data_2.v[0xE] = 0x00000000; + data_2.v[0xF] = 0x000003d8; + + for( int i = 0; i < HPF; i++ ) { + + vec8u state = thrdata->state; + + uint64_t nonce = start_nonce + idx + i*THROUGHPUT; + + uint32_t rdata6 = thrdata->rdata[0], rdata7 = thrdata->rdata[1], rdata8 = thrdata->rdata[2]; + uint64_t rdata = (((uint64_t)rdata6 << 56) | ((uint64_t)rdata7 << 24) | ((uint64_t)rdata8 >> 8)) + nonce; + + rdata6 = (uint32_t)(rdata >> 56) | (rdata6 & 0xFFFFFF00); + rdata7 = (uint32_t)(rdata >> 24); + + uint32_t rdata10 = (uint32_t)(rdata << 8) | 0x80; + rdata8 = (uint32_t)(rdata << 8) | (rdata8 & 0xFF); + + data.v[0x0] = rdata6; + data.v[0x1] = rdata7; + data.v[0x2] = rdata8; + + data.v[0xC] = rdata6; + data.v[0xD] = rdata7; + data.v[0xE] = rdata10; + + + /*if (vcpu == 0 && idx == 0) + printf( + "%04x %04x %04x %04x %04x %04x %04x %04x\n%04x %04x %04x %04x %04x %04x %04x %04x\n\n", + data.v[0], data.v[1], data.v[2], data.v[3], data.v[4], data.v[5], data.v[6], data.v[7], + data.v[8], data.v[9], data.v[10], data.v[11], data.v[12], data.v[13], data.v[14], data.v[15] + );*/ + + state = sha256_transform(data, state); + + + /*if (vcpu == 0 && idx == 0) + printf( + "%04x %04x %04x %04x %04x %04x %04x %04x\n%04x %04x %04x %04x %04x %04x %04x %04x\n\n", + data.v[0], data.v[1], data.v[2], data.v[3], data.v[4], data.v[5], data.v[6], data.v[7], + data.v[8], data.v[9], data.v[10], data.v[11], data.v[12], data.v[13], data.v[14], data.v[15] + );*/ + + state = sha256_transform_2(data_2, state); + + /* + printf( "%04x %04x %04x %04x %04x %04x %04x %04x\n\n", + state.v[0], state.v[1], state.v[2], state.v[3], state.v[4], state.v[5], state.v[6], state.v[7] ); + //*/ + + /*if (vcpu == 0 && idx == 0) + printf( + "%04x %04x %04x %04x %04x %04x %04x %04x\n\n", + state.v[0], state.v[1], state.v[2], state.v[3], state.v[4], state.v[5], state.v[6], state.v[7] + );*/ + + + for (int i = 0; i < 8; i += 1) { -#if defined(__OPENCL_VERSION__) - if (atomic_add(&result->found, 1) == 0) -#else - if (atomicAdd(&result->found, 1) == 0) -#endif - result->nonce = nonce, result->vcpu = vcpu; - - return; + + if (state.v[i] > msg->target.v[i]) + // return; + goto next_try; + + if (state.v[i] < msg->target.v[i]) + { + + #if defined(__OPENCL_VERSION__) + // if (atomic_add(&result->found, 1) == 0) + result->found++; + #else + if (atomicAdd(&result->found, 1) == 0) + #endif + result->nonce = nonce, result->vcpu = vcpu; + + return; + + } + } + + next_try : ; + } + } #endif diff --git a/crypto/util/cruncher_h.h b/crypto/util/cruncher_h.h index 82e6bff..78ec4de 100644 --- a/crypto/util/cruncher_h.h +++ b/crypto/util/cruncher_h.h @@ -1,2 +1,8 @@ -unsigned char cruncher_h[] = {0x23, 0x69, 0x66, 0x6e, 0x64, 0x65, 0x66, 0x20, 0x5f, 0x5f, 0x43, 0x52, 0x55, 0x4e, 0x43, 0x48, 0x45, 0x52, 0x5f, 0x48, 0x5f, 0x5f, 0xd, 0xa, 0x23, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x20, 0x5f, 0x5f, 0x43, 0x52, 0x55, 0x4e, 0x43, 0x48, 0x45, 0x52, 0x5f, 0x48, 0x5f, 0x5f, 0xd, 0xa, 0xd, 0xa, 0xd, 0xa, 0x23, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x20, 0x4d, 0x41, 0x58, 0x5f, 0x47, 0x50, 0x55, 0x5f, 0x54, 0x48, 0x52, 0x45, 0x41, 0x44, 0x53, 0x20, 0x31, 0x36, 0xd, 0xa, 0xd, 0xa, 0xd, 0xa, 0x23, 0x69, 0x66, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x28, 0x5f, 0x5f, 0x4f, 0x50, 0x45, 0x4e, 0x43, 0x4c, 0x5f, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x5f, 0x29, 0xd, 0xa, 0x9, 0x74, 0x79, 0x70, 0x65, 0x64, 0x65, 0x66, 0x20, 0x75, 0x69, 0x6e, 0x74, 0x20, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x74, 0x3b, 0xd, 0xa, 0x9, 0x74, 0x79, 0x70, 0x65, 0x64, 0x65, 0x66, 0x20, 0x75, 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x74, 0x3b, 0xd, 0xa, 0x23, 0x65, 0x6c, 0x73, 0x65, 0xd, 0xa, 0x9, 0x23, 0x69, 0x66, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x28, 0x5f, 0x5f, 0x4e, 0x56, 0x43, 0x43, 0x5f, 0x5f, 0x29, 0xd, 0xa, 0x9, 0x9, 0x23, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x3c, 0x63, 0x75, 0x64, 0x61, 0x5f, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x68, 0x3e, 0xd, 0xa, 0x9, 0x9, 0x23, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x3c, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x2e, 0x68, 0x3e, 0xd, 0xa, 0x9, 0x23, 0x65, 0x6e, 0x64, 0x69, 0x66, 0xd, 0xa, 0xd, 0xa, 0x9, 0x23, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x3c, 0x73, 0x74, 0x64, 0x69, 0x6e, 0x74, 0x2e, 0x68, 0x3e, 0xd, 0xa, 0x23, 0x65, 0x6e, 0x64, 0x69, 0x66, 0xd, 0xa, 0xd, 0xa, 0xd, 0xa, 0x23, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x20, 0x52, 0x4f, 0x54, 0x52, 0x49, 0x47, 0x48, 0x54, 0x28, 0x61, 0x2c, 0x20, 0x62, 0x29, 0x20, 0x28, 0x28, 0x28, 0x61, 0x29, 0x20, 0x3e, 0x3e, 0x20, 0x28, 0x62, 0x29, 0x29, 0x20, 0x7c, 0x20, 0x28, 0x28, 0x61, 0x29, 0x20, 0x3c, 0x3c, 0x20, 0x28, 0x33, 0x32, 0x20, 0x2d, 0x20, 0x28, 0x62, 0x29, 0x29, 0x29, 0x29, 0xd, 0xa, 0xd, 0xa, 0x23, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x20, 0x43, 0x48, 0x28, 0x78, 0x2c, 0x20, 0x79, 0x2c, 0x20, 0x7a, 0x29, 0x20, 0x28, 0x28, 0x28, 0x78, 0x29, 0x20, 0x26, 0x20, 0x28, 0x79, 0x29, 0x29, 0x20, 0x5e, 0x20, 0x28, 0x7e, 0x28, 0x78, 0x29, 0x20, 0x26, 0x20, 0x28, 0x7a, 0x29, 0x29, 0x29, 0xd, 0xa, 0x23, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x20, 0x4d, 0x41, 0x4a, 0x28, 0x78, 0x2c, 0x20, 0x79, 0x2c, 0x20, 0x7a, 0x29, 0x20, 0x28, 0x28, 0x28, 0x78, 0x29, 0x20, 0x26, 0x20, 0x28, 0x79, 0x29, 0x29, 0x20, 0x5e, 0x20, 0x28, 0x28, 0x78, 0x29, 0x20, 0x26, 0x20, 0x28, 0x7a, 0x29, 0x29, 0x20, 0x5e, 0x20, 0x28, 0x28, 0x79, 0x29, 0x20, 0x26, 0x20, 0x28, 0x7a, 0x29, 0x29, 0x29, 0xd, 0xa, 0x23, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x20, 0x45, 0x50, 0x30, 0x28, 0x78, 0x29, 0x20, 0x28, 0x52, 0x4f, 0x54, 0x52, 0x49, 0x47, 0x48, 0x54, 0x28, 0x78, 0x2c, 0x20, 0x32, 0x29, 0x20, 0x5e, 0x20, 0x52, 0x4f, 0x54, 0x52, 0x49, 0x47, 0x48, 0x54, 0x28, 0x78, 0x2c, 0x20, 0x31, 0x33, 0x29, 0x20, 0x5e, 0x20, 0x52, 0x4f, 0x54, 0x52, 0x49, 0x47, 0x48, 0x54, 0x28, 0x78, 0x2c, 0x20, 0x32, 0x32, 0x29, 0x29, 0xd, 0xa, 0x23, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x20, 0x45, 0x50, 0x31, 0x28, 0x78, 0x29, 0x20, 0x28, 0x52, 0x4f, 0x54, 0x52, 0x49, 0x47, 0x48, 0x54, 0x28, 0x78, 0x2c, 0x20, 0x36, 0x29, 0x20, 0x5e, 0x20, 0x52, 0x4f, 0x54, 0x52, 0x49, 0x47, 0x48, 0x54, 0x28, 0x78, 0x2c, 0x20, 0x31, 0x31, 0x29, 0x20, 0x5e, 0x20, 0x52, 0x4f, 0x54, 0x52, 0x49, 0x47, 0x48, 0x54, 0x28, 0x78, 0x2c, 0x20, 0x32, 0x35, 0x29, 0x29, 0xd, 0xa, 0x23, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x20, 0x53, 0x49, 0x47, 0x30, 0x28, 0x78, 0x29, 0x20, 0x28, 0x52, 0x4f, 0x54, 0x52, 0x49, 0x47, 0x48, 0x54, 0x28, 0x78, 0x2c, 0x20, 0x37, 0x29, 0x20, 0x5e, 0x20, 0x52, 0x4f, 0x54, 0x52, 0x49, 0x47, 0x48, 0x54, 0x28, 0x78, 0x2c, 0x20, 0x31, 0x38, 0x29, 0x20, 0x5e, 0x20, 0x28, 0x28, 0x78, 0x29, 0x20, 0x3e, 0x3e, 0x20, 0x33, 0x29, 0x29, 0xd, 0xa, 0x23, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x20, 0x53, 0x49, 0x47, 0x31, 0x28, 0x78, 0x29, 0x20, 0x28, 0x52, 0x4f, 0x54, 0x52, 0x49, 0x47, 0x48, 0x54, 0x28, 0x78, 0x2c, 0x20, 0x31, 0x37, 0x29, 0x20, 0x5e, 0x20, 0x52, 0x4f, 0x54, 0x52, 0x49, 0x47, 0x48, 0x54, 0x28, 0x78, 0x2c, 0x20, 0x31, 0x39, 0x29, 0x20, 0x5e, 0x20, 0x28, 0x28, 0x78, 0x29, 0x20, 0x3e, 0x3e, 0x20, 0x31, 0x30, 0x29, 0x29, 0xd, 0xa, 0xd, 0xa, 0xd, 0xa, 0x74, 0x79, 0x70, 0x65, 0x64, 0x65, 0x66, 0x20, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x20, 0x76, 0x65, 0x63, 0x38, 0x75, 0xd, 0xa, 0x7b, 0xd, 0xa, 0x9, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x74, 0x20, 0x76, 0x5b, 0x38, 0x5d, 0x3b, 0xd, 0xa, 0x7d, 0xd, 0xa, 0x76, 0x65, 0x63, 0x38, 0x75, 0x3b, 0xd, 0xa, 0xd, 0xa, 0xd, 0xa, 0x74, 0x79, 0x70, 0x65, 0x64, 0x65, 0x66, 0x20, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x20, 0x76, 0x65, 0x63, 0x31, 0x36, 0x75, 0xd, 0xa, 0x7b, 0xd, 0xa, 0x9, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x74, 0x20, 0x76, 0x5b, 0x31, 0x36, 0x5d, 0x3b, 0xd, 0xa, 0x7d, 0xd, 0xa, 0x76, 0x65, 0x63, 0x31, 0x36, 0x75, 0x3b, 0xd, 0xa, 0xd, 0xa, 0xd, 0xa, 0x74, 0x79, 0x70, 0x65, 0x64, 0x65, 0x66, 0x20, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x20, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x44, 0x61, 0x74, 0x61, 0xd, 0xa, 0x7b, 0xd, 0xa, 0x9, 0x76, 0x65, 0x63, 0x38, 0x75, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x3b, 0xd, 0xa, 0x9, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x74, 0x20, 0x72, 0x64, 0x61, 0x74, 0x61, 0x5b, 0x39, 0x5d, 0x3b, 0xd, 0xa, 0x7d, 0xd, 0xa, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x44, 0x61, 0x74, 0x61, 0x3b, 0xd, 0xa, 0xd, 0xa, 0xd, 0xa, 0x74, 0x79, 0x70, 0x65, 0x64, 0x65, 0x66, 0x20, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x20, 0x4d, 0x73, 0x67, 0x44, 0x61, 0x74, 0x61, 0xd, 0xa, 0x7b, 0xd, 0xa, 0x9, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x74, 0x20, 0x70, 0x73, 0x65, 0x65, 0x64, 0x5b, 0x33, 0x5d, 0x3b, 0xd, 0xa, 0x9, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x44, 0x61, 0x74, 0x61, 0x20, 0x74, 0x68, 0x72, 0x64, 0x61, 0x74, 0x61, 0x5b, 0x4d, 0x41, 0x58, 0x5f, 0x47, 0x50, 0x55, 0x5f, 0x54, 0x48, 0x52, 0x45, 0x41, 0x44, 0x53, 0x5d, 0x3b, 0xd, 0xa, 0x9, 0x76, 0x65, 0x63, 0x38, 0x75, 0x20, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x3b, 0xd, 0xa, 0x7d, 0xd, 0xa, 0x4d, 0x73, 0x67, 0x44, 0x61, 0x74, 0x61, 0x3b, 0xd, 0xa, 0xd, 0xa, 0xd, 0xa, 0x23, 0x69, 0x66, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x28, 0x5f, 0x5f, 0x4e, 0x56, 0x43, 0x43, 0x5f, 0x5f, 0x29, 0xd, 0xa, 0x5f, 0x5f, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x5f, 0x20, 0x5f, 0x5f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x5f, 0x20, 0x5f, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x5f, 0xd, 0xa, 0x23, 0x65, 0x6c, 0x73, 0x65, 0xd, 0xa, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0xd, 0xa, 0x23, 0x65, 0x6e, 0x64, 0x69, 0x66, 0xd, 0xa, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x20, 0x76, 0x65, 0x63, 0x38, 0x75, 0x20, 0x73, 0x68, 0x61, 0x32, 0x35, 0x36, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x28, 0x76, 0x65, 0x63, 0x31, 0x36, 0x75, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2c, 0x20, 0x76, 0x65, 0x63, 0x38, 0x75, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x29, 0xd, 0xa, 0x7b, 0xd, 0xa, 0x9, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x20, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x74, 0x20, 0x6b, 0x73, 0x68, 0x61, 0x5b, 0x5d, 0x20, 0x3d, 0x20, 0x7b, 0xd, 0xa, 0x9, 0x9, 0x30, 0x78, 0x34, 0x32, 0x38, 0x41, 0x32, 0x46, 0x39, 0x38, 0x2c, 0x20, 0x30, 0x78, 0x37, 0x31, 0x33, 0x37, 0x34, 0x34, 0x39, 0x31, 0x2c, 0x20, 0x30, 0x78, 0x42, 0x35, 0x43, 0x30, 0x46, 0x42, 0x43, 0x46, 0x2c, 0x20, 0x30, 0x78, 0x45, 0x39, 0x42, 0x35, 0x44, 0x42, 0x41, 0x35, 0x2c, 0x20, 0x30, 0x78, 0x33, 0x39, 0x35, 0x36, 0x43, 0x32, 0x35, 0x42, 0x2c, 0x20, 0x30, 0x78, 0x35, 0x39, 0x46, 0x31, 0x31, 0x31, 0x46, 0x31, 0x2c, 0x20, 0x30, 0x78, 0x39, 0x32, 0x33, 0x46, 0x38, 0x32, 0x41, 0x34, 0x2c, 0x20, 0x30, 0x78, 0x41, 0x42, 0x31, 0x43, 0x35, 0x45, 0x44, 0x35, 0x2c, 0xd, 0xa, 0x9, 0x9, 0x30, 0x78, 0x44, 0x38, 0x30, 0x37, 0x41, 0x41, 0x39, 0x38, 0x2c, 0x20, 0x30, 0x78, 0x31, 0x32, 0x38, 0x33, 0x35, 0x42, 0x30, 0x31, 0x2c, 0x20, 0x30, 0x78, 0x32, 0x34, 0x33, 0x31, 0x38, 0x35, 0x42, 0x45, 0x2c, 0x20, 0x30, 0x78, 0x35, 0x35, 0x30, 0x43, 0x37, 0x44, 0x43, 0x33, 0x2c, 0x20, 0x30, 0x78, 0x37, 0x32, 0x42, 0x45, 0x35, 0x44, 0x37, 0x34, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x30, 0x44, 0x45, 0x42, 0x31, 0x46, 0x45, 0x2c, 0x20, 0x30, 0x78, 0x39, 0x42, 0x44, 0x43, 0x30, 0x36, 0x41, 0x37, 0x2c, 0x20, 0x30, 0x78, 0x43, 0x31, 0x39, 0x42, 0x46, 0x31, 0x37, 0x34, 0x2c, 0xd, 0xa, 0x9, 0x9, 0x30, 0x78, 0x45, 0x34, 0x39, 0x42, 0x36, 0x39, 0x43, 0x31, 0x2c, 0x20, 0x30, 0x78, 0x45, 0x46, 0x42, 0x45, 0x34, 0x37, 0x38, 0x36, 0x2c, 0x20, 0x30, 0x78, 0x30, 0x46, 0x43, 0x31, 0x39, 0x44, 0x43, 0x36, 0x2c, 0x20, 0x30, 0x78, 0x32, 0x34, 0x30, 0x43, 0x41, 0x31, 0x43, 0x43, 0x2c, 0x20, 0x30, 0x78, 0x32, 0x44, 0x45, 0x39, 0x32, 0x43, 0x36, 0x46, 0x2c, 0x20, 0x30, 0x78, 0x34, 0x41, 0x37, 0x34, 0x38, 0x34, 0x41, 0x41, 0x2c, 0x20, 0x30, 0x78, 0x35, 0x43, 0x42, 0x30, 0x41, 0x39, 0x44, 0x43, 0x2c, 0x20, 0x30, 0x78, 0x37, 0x36, 0x46, 0x39, 0x38, 0x38, 0x44, 0x41, 0x2c, 0xd, 0xa, 0x9, 0x9, 0x30, 0x78, 0x39, 0x38, 0x33, 0x45, 0x35, 0x31, 0x35, 0x32, 0x2c, 0x20, 0x30, 0x78, 0x41, 0x38, 0x33, 0x31, 0x43, 0x36, 0x36, 0x44, 0x2c, 0x20, 0x30, 0x78, 0x42, 0x30, 0x30, 0x33, 0x32, 0x37, 0x43, 0x38, 0x2c, 0x20, 0x30, 0x78, 0x42, 0x46, 0x35, 0x39, 0x37, 0x46, 0x43, 0x37, 0x2c, 0x20, 0x30, 0x78, 0x43, 0x36, 0x45, 0x30, 0x30, 0x42, 0x46, 0x33, 0x2c, 0x20, 0x30, 0x78, 0x44, 0x35, 0x41, 0x37, 0x39, 0x31, 0x34, 0x37, 0x2c, 0x20, 0x30, 0x78, 0x30, 0x36, 0x43, 0x41, 0x36, 0x33, 0x35, 0x31, 0x2c, 0x20, 0x30, 0x78, 0x31, 0x34, 0x32, 0x39, 0x32, 0x39, 0x36, 0x37, 0x2c, 0xd, 0xa, 0x9, 0x9, 0x30, 0x78, 0x32, 0x37, 0x42, 0x37, 0x30, 0x41, 0x38, 0x35, 0x2c, 0x20, 0x30, 0x78, 0x32, 0x45, 0x31, 0x42, 0x32, 0x31, 0x33, 0x38, 0x2c, 0x20, 0x30, 0x78, 0x34, 0x44, 0x32, 0x43, 0x36, 0x44, 0x46, 0x43, 0x2c, 0x20, 0x30, 0x78, 0x35, 0x33, 0x33, 0x38, 0x30, 0x44, 0x31, 0x33, 0x2c, 0x20, 0x30, 0x78, 0x36, 0x35, 0x30, 0x41, 0x37, 0x33, 0x35, 0x34, 0x2c, 0x20, 0x30, 0x78, 0x37, 0x36, 0x36, 0x41, 0x30, 0x41, 0x42, 0x42, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x31, 0x43, 0x32, 0x43, 0x39, 0x32, 0x45, 0x2c, 0x20, 0x30, 0x78, 0x39, 0x32, 0x37, 0x32, 0x32, 0x43, 0x38, 0x35, 0x2c, 0xd, 0xa, 0x9, 0x9, 0x30, 0x78, 0x41, 0x32, 0x42, 0x46, 0x45, 0x38, 0x41, 0x31, 0x2c, 0x20, 0x30, 0x78, 0x41, 0x38, 0x31, 0x41, 0x36, 0x36, 0x34, 0x42, 0x2c, 0x20, 0x30, 0x78, 0x43, 0x32, 0x34, 0x42, 0x38, 0x42, 0x37, 0x30, 0x2c, 0x20, 0x30, 0x78, 0x43, 0x37, 0x36, 0x43, 0x35, 0x31, 0x41, 0x33, 0x2c, 0x20, 0x30, 0x78, 0x44, 0x31, 0x39, 0x32, 0x45, 0x38, 0x31, 0x39, 0x2c, 0x20, 0x30, 0x78, 0x44, 0x36, 0x39, 0x39, 0x30, 0x36, 0x32, 0x34, 0x2c, 0x20, 0x30, 0x78, 0x46, 0x34, 0x30, 0x45, 0x33, 0x35, 0x38, 0x35, 0x2c, 0x20, 0x30, 0x78, 0x31, 0x30, 0x36, 0x41, 0x41, 0x30, 0x37, 0x30, 0x2c, 0xd, 0xa, 0x9, 0x9, 0x30, 0x78, 0x31, 0x39, 0x41, 0x34, 0x43, 0x31, 0x31, 0x36, 0x2c, 0x20, 0x30, 0x78, 0x31, 0x45, 0x33, 0x37, 0x36, 0x43, 0x30, 0x38, 0x2c, 0x20, 0x30, 0x78, 0x32, 0x37, 0x34, 0x38, 0x37, 0x37, 0x34, 0x43, 0x2c, 0x20, 0x30, 0x78, 0x33, 0x34, 0x42, 0x30, 0x42, 0x43, 0x42, 0x35, 0x2c, 0x20, 0x30, 0x78, 0x33, 0x39, 0x31, 0x43, 0x30, 0x43, 0x42, 0x33, 0x2c, 0x20, 0x30, 0x78, 0x34, 0x45, 0x44, 0x38, 0x41, 0x41, 0x34, 0x41, 0x2c, 0x20, 0x30, 0x78, 0x35, 0x42, 0x39, 0x43, 0x43, 0x41, 0x34, 0x46, 0x2c, 0x20, 0x30, 0x78, 0x36, 0x38, 0x32, 0x45, 0x36, 0x46, 0x46, 0x33, 0x2c, 0xd, 0xa, 0x9, 0x9, 0x30, 0x78, 0x37, 0x34, 0x38, 0x46, 0x38, 0x32, 0x45, 0x45, 0x2c, 0x20, 0x30, 0x78, 0x37, 0x38, 0x41, 0x35, 0x36, 0x33, 0x36, 0x46, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x34, 0x43, 0x38, 0x37, 0x38, 0x31, 0x34, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x43, 0x43, 0x37, 0x30, 0x32, 0x30, 0x38, 0x2c, 0x20, 0x30, 0x78, 0x39, 0x30, 0x42, 0x45, 0x46, 0x46, 0x46, 0x41, 0x2c, 0x20, 0x30, 0x78, 0x41, 0x34, 0x35, 0x30, 0x36, 0x43, 0x45, 0x42, 0x2c, 0x20, 0x30, 0x78, 0x42, 0x45, 0x46, 0x39, 0x41, 0x33, 0x46, 0x37, 0x2c, 0x20, 0x30, 0x78, 0x43, 0x36, 0x37, 0x31, 0x37, 0x38, 0x46, 0x32, 0xd, 0xa, 0x9, 0x7d, 0x3b, 0xd, 0xa, 0xd, 0xa, 0x9, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x74, 0x20, 0x6d, 0x5b, 0x36, 0x34, 0x5d, 0x3b, 0xd, 0xa, 0xd, 0xa, 0x9, 0x66, 0x6f, 0x72, 0x20, 0x28, 0x69, 0x6e, 0x74, 0x20, 0x69, 0x20, 0x3d, 0x20, 0x30, 0x3b, 0x20, 0x69, 0x20, 0x3c, 0x20, 0x31, 0x36, 0x3b, 0x20, 0x69, 0x20, 0x2b, 0x3d, 0x20, 0x31, 0x29, 0xd, 0xa, 0x9, 0x9, 0x6d, 0x5b, 0x69, 0x5d, 0x20, 0x3d, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x69, 0x5d, 0x3b, 0xd, 0xa, 0xd, 0xa, 0x9, 0x66, 0x6f, 0x72, 0x20, 0x28, 0x69, 0x6e, 0x74, 0x20, 0x69, 0x20, 0x3d, 0x20, 0x31, 0x36, 0x3b, 0x20, 0x69, 0x20, 0x3c, 0x20, 0x36, 0x34, 0x3b, 0x20, 0x69, 0x20, 0x2b, 0x3d, 0x20, 0x31, 0x29, 0xd, 0xa, 0x9, 0x9, 0x6d, 0x5b, 0x69, 0x5d, 0x20, 0x3d, 0x20, 0x53, 0x49, 0x47, 0x31, 0x28, 0x6d, 0x5b, 0x69, 0x20, 0x2d, 0x20, 0x32, 0x5d, 0x29, 0x20, 0x2b, 0x20, 0x6d, 0x5b, 0x69, 0x20, 0x2d, 0x20, 0x37, 0x5d, 0x20, 0x2b, 0x20, 0x53, 0x49, 0x47, 0x30, 0x28, 0x6d, 0x5b, 0x69, 0x20, 0x2d, 0x20, 0x31, 0x35, 0x5d, 0x29, 0x20, 0x2b, 0x20, 0x6d, 0x5b, 0x69, 0x20, 0x2d, 0x20, 0x31, 0x36, 0x5d, 0x3b, 0xd, 0xa, 0xd, 0xa, 0x9, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x74, 0x20, 0x61, 0x20, 0x3d, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x76, 0x5b, 0x30, 0x5d, 0x2c, 0x20, 0x62, 0x20, 0x3d, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x76, 0x5b, 0x31, 0x5d, 0x2c, 0x20, 0x63, 0x20, 0x3d, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x76, 0x5b, 0x32, 0x5d, 0x2c, 0x20, 0x64, 0x20, 0x3d, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x76, 0x5b, 0x33, 0x5d, 0x3b, 0xd, 0xa, 0x9, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x74, 0x20, 0x65, 0x20, 0x3d, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x76, 0x5b, 0x34, 0x5d, 0x2c, 0x20, 0x66, 0x20, 0x3d, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x76, 0x5b, 0x35, 0x5d, 0x2c, 0x20, 0x67, 0x20, 0x3d, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x76, 0x5b, 0x36, 0x5d, 0x2c, 0x20, 0x68, 0x20, 0x3d, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x76, 0x5b, 0x37, 0x5d, 0x3b, 0xd, 0xa, 0xd, 0xa, 0x23, 0x69, 0x66, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x28, 0x5f, 0x5f, 0x43, 0x55, 0x44, 0x41, 0x5f, 0x41, 0x52, 0x43, 0x48, 0x5f, 0x5f, 0x29, 0x20, 0x7c, 0x7c, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x28, 0x5f, 0x5f, 0x4f, 0x50, 0x45, 0x4e, 0x43, 0x4c, 0x5f, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x5f, 0x29, 0xd, 0xa, 0x9, 0x23, 0x70, 0x72, 0x61, 0x67, 0x6d, 0x61, 0x20, 0x75, 0x6e, 0x72, 0x6f, 0x6c, 0x6c, 0xd, 0xa, 0x23, 0x65, 0x6e, 0x64, 0x69, 0x66, 0xd, 0xa, 0x9, 0x66, 0x6f, 0x72, 0x20, 0x28, 0x69, 0x6e, 0x74, 0x20, 0x69, 0x20, 0x3d, 0x20, 0x30, 0x3b, 0x20, 0x69, 0x20, 0x3c, 0x20, 0x36, 0x34, 0x3b, 0x20, 0x69, 0x20, 0x2b, 0x3d, 0x20, 0x31, 0x29, 0xd, 0xa, 0x9, 0x7b, 0xd, 0xa, 0x9, 0x9, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x74, 0x20, 0x74, 0x31, 0x20, 0x3d, 0x20, 0x68, 0x20, 0x2b, 0x20, 0x45, 0x50, 0x31, 0x28, 0x65, 0x29, 0x20, 0x2b, 0x20, 0x43, 0x48, 0x28, 0x65, 0x2c, 0x20, 0x66, 0x2c, 0x20, 0x67, 0x29, 0x20, 0x2b, 0x20, 0x6b, 0x73, 0x68, 0x61, 0x5b, 0x69, 0x5d, 0x20, 0x2b, 0x20, 0x6d, 0x5b, 0x69, 0x5d, 0x3b, 0xd, 0xa, 0x9, 0x9, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x74, 0x20, 0x74, 0x32, 0x20, 0x3d, 0x20, 0x45, 0x50, 0x30, 0x28, 0x61, 0x29, 0x20, 0x2b, 0x20, 0x4d, 0x41, 0x4a, 0x28, 0x61, 0x2c, 0x20, 0x62, 0x2c, 0x20, 0x63, 0x29, 0x3b, 0xd, 0xa, 0x9, 0x9, 0x68, 0x20, 0x3d, 0x20, 0x67, 0x3b, 0xd, 0xa, 0x9, 0x9, 0x67, 0x20, 0x3d, 0x20, 0x66, 0x3b, 0xd, 0xa, 0x9, 0x9, 0x66, 0x20, 0x3d, 0x20, 0x65, 0x3b, 0xd, 0xa, 0x9, 0x9, 0x65, 0x20, 0x3d, 0x20, 0x64, 0x20, 0x2b, 0x20, 0x74, 0x31, 0x3b, 0xd, 0xa, 0x9, 0x9, 0x64, 0x20, 0x3d, 0x20, 0x63, 0x3b, 0xd, 0xa, 0x9, 0x9, 0x63, 0x20, 0x3d, 0x20, 0x62, 0x3b, 0xd, 0xa, 0x9, 0x9, 0x62, 0x20, 0x3d, 0x20, 0x61, 0x3b, 0xd, 0xa, 0x9, 0x9, 0x61, 0x20, 0x3d, 0x20, 0x74, 0x31, 0x20, 0x2b, 0x20, 0x74, 0x32, 0x3b, 0xd, 0xa, 0x9, 0x7d, 0xd, 0xa, 0xd, 0xa, 0x9, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x76, 0x5b, 0x30, 0x5d, 0x20, 0x2b, 0x3d, 0x20, 0x61, 0x2c, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x76, 0x5b, 0x31, 0x5d, 0x20, 0x2b, 0x3d, 0x20, 0x62, 0x2c, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x76, 0x5b, 0x32, 0x5d, 0x20, 0x2b, 0x3d, 0x20, 0x63, 0x2c, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x76, 0x5b, 0x33, 0x5d, 0x20, 0x2b, 0x3d, 0x20, 0x64, 0x3b, 0xd, 0xa, 0x9, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x76, 0x5b, 0x34, 0x5d, 0x20, 0x2b, 0x3d, 0x20, 0x65, 0x2c, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x76, 0x5b, 0x35, 0x5d, 0x20, 0x2b, 0x3d, 0x20, 0x66, 0x2c, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x76, 0x5b, 0x36, 0x5d, 0x20, 0x2b, 0x3d, 0x20, 0x67, 0x2c, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x76, 0x5b, 0x37, 0x5d, 0x20, 0x2b, 0x3d, 0x20, 0x68, 0x3b, 0xd, 0xa, 0xd, 0xa, 0x9, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x3b, 0xd, 0xa, 0x7d, 0xd, 0xa, 0xd, 0xa, 0xd, 0xa, 0x23, 0x69, 0x66, 0x20, 0x21, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x28, 0x5f, 0x5f, 0x4f, 0x50, 0x45, 0x4e, 0x43, 0x4c, 0x5f, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x5f, 0x29, 0xd, 0xa, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x20, 0x76, 0x65, 0x63, 0x38, 0x75, 0x20, 0x68, 0x32, 0x35, 0x36, 0x20, 0x3d, 0x20, 0x7b, 0xd, 0xa, 0x9, 0x30, 0x78, 0x36, 0x41, 0x30, 0x39, 0x45, 0x36, 0x36, 0x37, 0x2c, 0x20, 0x30, 0x78, 0x42, 0x42, 0x36, 0x37, 0x41, 0x45, 0x38, 0x35, 0x2c, 0x20, 0x30, 0x78, 0x33, 0x43, 0x36, 0x45, 0x46, 0x33, 0x37, 0x32, 0x2c, 0x20, 0x30, 0x78, 0x41, 0x35, 0x34, 0x46, 0x46, 0x35, 0x33, 0x41, 0x2c, 0x20, 0x30, 0x78, 0x35, 0x31, 0x30, 0x45, 0x35, 0x32, 0x37, 0x46, 0x2c, 0x20, 0x30, 0x78, 0x39, 0x42, 0x30, 0x35, 0x36, 0x38, 0x38, 0x43, 0x2c, 0x20, 0x30, 0x78, 0x31, 0x46, 0x38, 0x33, 0x44, 0x39, 0x41, 0x42, 0x2c, 0x20, 0x30, 0x78, 0x35, 0x42, 0x45, 0x30, 0x43, 0x44, 0x31, 0x39, 0xd, 0xa, 0x7d, 0x3b, 0xd, 0xa, 0xd, 0xa, 0xd, 0xa, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x20, 0x76, 0x6f, 0x69, 0x64, 0x20, 0x62, 0x69, 0x74, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x62, 0x65, 0x33, 0x32, 0x65, 0x6e, 0x63, 0x28, 0x76, 0x6f, 0x69, 0x64, 0x20, 0x2a, 0x70, 0x70, 0x2c, 0x20, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x74, 0x20, 0x78, 0x29, 0xd, 0xa, 0x7b, 0xd, 0xa, 0x9, 0x75, 0x69, 0x6e, 0x74, 0x38, 0x5f, 0x74, 0x20, 0x2a, 0x70, 0x20, 0x3d, 0x20, 0x28, 0x75, 0x69, 0x6e, 0x74, 0x38, 0x5f, 0x74, 0x20, 0x2a, 0x29, 0x70, 0x70, 0x3b, 0xd, 0xa, 0xd, 0xa, 0x9, 0x70, 0x5b, 0x33, 0x5d, 0x20, 0x3d, 0x20, 0x78, 0x20, 0x26, 0x20, 0x30, 0x78, 0x66, 0x66, 0x3b, 0xd, 0xa, 0x9, 0x70, 0x5b, 0x32, 0x5d, 0x20, 0x3d, 0x20, 0x28, 0x78, 0x20, 0x3e, 0x3e, 0x20, 0x38, 0x29, 0x20, 0x26, 0x20, 0x30, 0x78, 0x66, 0x66, 0x3b, 0xd, 0xa, 0x9, 0x70, 0x5b, 0x31, 0x5d, 0x20, 0x3d, 0x20, 0x28, 0x78, 0x20, 0x3e, 0x3e, 0x20, 0x31, 0x36, 0x29, 0x20, 0x26, 0x20, 0x30, 0x78, 0x66, 0x66, 0x3b, 0xd, 0xa, 0x9, 0x70, 0x5b, 0x30, 0x5d, 0x20, 0x3d, 0x20, 0x28, 0x78, 0x20, 0x3e, 0x3e, 0x20, 0x32, 0x34, 0x29, 0x20, 0x26, 0x20, 0x30, 0x78, 0x66, 0x66, 0x3b, 0xd, 0xa, 0x7d, 0xd, 0xa, 0xd, 0xa, 0xd, 0xa, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x20, 0x4d, 0x73, 0x67, 0x44, 0x61, 0x74, 0x61, 0x20, 0x62, 0x69, 0x74, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x5f, 0x6d, 0x73, 0x67, 0x28, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x74, 0x20, 0x67, 0x70, 0x75, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x2c, 0x20, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x74, 0x20, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x2c, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x20, 0x75, 0x6e, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x63, 0x68, 0x61, 0x72, 0x20, 0x2a, 0x64, 0x61, 0x74, 0x61, 0x2c, 0xd, 0xa, 0x9, 0x9, 0x9, 0x9, 0x9, 0x9, 0x9, 0x9, 0x9, 0x9, 0x9, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x20, 0x76, 0x6f, 0x69, 0x64, 0x20, 0x2a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x2c, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x20, 0x75, 0x6e, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x63, 0x68, 0x61, 0x72, 0x20, 0x2a, 0x72, 0x64, 0x61, 0x74, 0x61, 0x29, 0xd, 0xa, 0x7b, 0xd, 0xa, 0x9, 0x2f, 0x2a, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x66, 0x28, 0x22, 0x67, 0x70, 0x75, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, 0x25, 0x75, 0x2c, 0x20, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x3a, 0x20, 0x25, 0x30, 0x34, 0x78, 0x5c, 0x6e, 0x22, 0x2c, 0x20, 0x28, 0x75, 0x6e, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x29, 0x67, 0x70, 0x75, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x2c, 0x20, 0x28, 0x75, 0x6e, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x29, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x29, 0x3b, 0xd, 0xa, 0x9, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x66, 0x28, 0x22, 0x64, 0x61, 0x74, 0x61, 0x3a, 0x5c, 0x6e, 0x22, 0x29, 0x3b, 0xd, 0xa, 0xd, 0xa, 0x9, 0x75, 0x6e, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x63, 0x68, 0x61, 0x72, 0x20, 0x70, 0x61, 0x64, 0x64, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5b, 0x31, 0x32, 0x38, 0x5d, 0x3b, 0xd, 0xa, 0x9, 0x6d, 0x65, 0x6d, 0x73, 0x65, 0x74, 0x28, 0x70, 0x61, 0x64, 0x64, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x2c, 0x20, 0x30, 0x2c, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x6f, 0x66, 0x28, 0x70, 0x61, 0x64, 0x64, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x29, 0x29, 0x3b, 0xd, 0xa, 0x9, 0x6d, 0x65, 0x6d, 0x63, 0x70, 0x79, 0x28, 0x70, 0x61, 0x64, 0x64, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2c, 0x20, 0x31, 0x32, 0x33, 0x29, 0x3b, 0xd, 0xa, 0xd, 0xa, 0x9, 0x66, 0x6f, 0x72, 0x20, 0x28, 0x69, 0x6e, 0x74, 0x20, 0x69, 0x20, 0x3d, 0x20, 0x30, 0x3b, 0x20, 0x69, 0x20, 0x3c, 0x20, 0x33, 0x32, 0x3b, 0x20, 0x69, 0x20, 0x2b, 0x3d, 0x20, 0x31, 0x29, 0xd, 0xa, 0x9, 0x7b, 0xd, 0xa, 0x9, 0x9, 0x66, 0x6f, 0x72, 0x20, 0x28, 0x69, 0x6e, 0x74, 0x20, 0x6a, 0x20, 0x3d, 0x20, 0x30, 0x3b, 0x20, 0x6a, 0x20, 0x3c, 0x20, 0x34, 0x3b, 0x20, 0x6a, 0x20, 0x2b, 0x3d, 0x20, 0x31, 0x29, 0xd, 0xa, 0x9, 0x9, 0x9, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x66, 0x28, 0x22, 0x25, 0x30, 0x32, 0x68, 0x68, 0x78, 0x20, 0x22, 0x2c, 0x20, 0x70, 0x61, 0x64, 0x64, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5b, 0x69, 0x20, 0x2a, 0x20, 0x34, 0x20, 0x2b, 0x20, 0x6a, 0x5d, 0x29, 0x3b, 0xd, 0xa, 0x9, 0x9, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x66, 0x28, 0x22, 0x5c, 0x6e, 0x22, 0x29, 0x3b, 0xd, 0xa, 0x9, 0x7d, 0xd, 0xa, 0xd, 0xa, 0x9, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x66, 0x28, 0x22, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x3a, 0x5c, 0x6e, 0x22, 0x29, 0x3b, 0xd, 0xa, 0x9, 0x66, 0x6f, 0x72, 0x20, 0x28, 0x69, 0x6e, 0x74, 0x20, 0x69, 0x20, 0x3d, 0x20, 0x30, 0x3b, 0x20, 0x69, 0x20, 0x3c, 0x20, 0x33, 0x32, 0x3b, 0x20, 0x69, 0x20, 0x2b, 0x3d, 0x20, 0x31, 0x29, 0xd, 0xa, 0x9, 0x9, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x66, 0x28, 0x22, 0x25, 0x30, 0x32, 0x68, 0x68, 0x78, 0x20, 0x22, 0x2c, 0x20, 0x28, 0x28, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x20, 0x75, 0x6e, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x63, 0x68, 0x61, 0x72, 0x20, 0x2a, 0x29, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x29, 0x5b, 0x69, 0x5d, 0x29, 0x3b, 0xd, 0xa, 0x9, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x66, 0x28, 0x22, 0x5c, 0x6e, 0x22, 0x29, 0x3b, 0xd, 0xa, 0xd, 0xa, 0x9, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x66, 0x28, 0x22, 0x72, 0x64, 0x61, 0x74, 0x61, 0x3a, 0x5c, 0x6e, 0x22, 0x29, 0x3b, 0xd, 0xa, 0x9, 0x66, 0x6f, 0x72, 0x20, 0x28, 0x75, 0x6e, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x69, 0x20, 0x3d, 0x20, 0x30, 0x3b, 0x20, 0x69, 0x20, 0x3c, 0x20, 0x67, 0x70, 0x75, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3b, 0x20, 0x69, 0x20, 0x2b, 0x3d, 0x20, 0x31, 0x29, 0xd, 0xa, 0x9, 0x7b, 0xd, 0xa, 0x9, 0x9, 0x66, 0x6f, 0x72, 0x20, 0x28, 0x69, 0x6e, 0x74, 0x20, 0x6a, 0x20, 0x3d, 0x20, 0x30, 0x3b, 0x20, 0x6a, 0x20, 0x3c, 0x20, 0x33, 0x32, 0x3b, 0x20, 0x6a, 0x20, 0x2b, 0x3d, 0x20, 0x31, 0x29, 0xd, 0xa, 0x9, 0x9, 0x9, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x66, 0x28, 0x22, 0x25, 0x30, 0x32, 0x68, 0x68, 0x78, 0x20, 0x22, 0x2c, 0x20, 0x72, 0x64, 0x61, 0x74, 0x61, 0x5b, 0x69, 0x20, 0x2a, 0x20, 0x33, 0x32, 0x20, 0x2b, 0x20, 0x6a, 0x5d, 0x29, 0x3b, 0xd, 0xa, 0x9, 0x9, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x66, 0x28, 0x22, 0x5c, 0x6e, 0x22, 0x29, 0x3b, 0xd, 0xa, 0x9, 0x7d, 0x2a, 0x2f, 0xd, 0xa, 0xd, 0xa, 0x9, 0x4d, 0x73, 0x67, 0x44, 0x61, 0x74, 0x61, 0x20, 0x6d, 0x73, 0x67, 0x3b, 0xd, 0xa, 0xd, 0xa, 0x9, 0x66, 0x6f, 0x72, 0x20, 0x28, 0x69, 0x6e, 0x74, 0x20, 0x69, 0x20, 0x3d, 0x20, 0x30, 0x3b, 0x20, 0x69, 0x20, 0x3c, 0x20, 0x33, 0x3b, 0x20, 0x69, 0x20, 0x2b, 0x3d, 0x20, 0x31, 0x29, 0xd, 0xa, 0x9, 0x9, 0x62, 0x69, 0x74, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x62, 0x65, 0x33, 0x32, 0x65, 0x6e, 0x63, 0x28, 0x26, 0x6d, 0x73, 0x67, 0x2e, 0x70, 0x73, 0x65, 0x65, 0x64, 0x5b, 0x69, 0x5d, 0x2c, 0x20, 0x2a, 0x28, 0x28, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x20, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x74, 0x20, 0x2a, 0x29, 0x28, 0x64, 0x61, 0x74, 0x61, 0x20, 0x2b, 0x20, 0x37, 0x36, 0x29, 0x20, 0x2b, 0x20, 0x69, 0x29, 0x29, 0x3b, 0xd, 0xa, 0xd, 0xa, 0x9, 0x66, 0x6f, 0x72, 0x20, 0x28, 0x69, 0x6e, 0x74, 0x20, 0x69, 0x20, 0x3d, 0x20, 0x30, 0x3b, 0x20, 0x69, 0x20, 0x3c, 0x20, 0x38, 0x3b, 0x20, 0x69, 0x20, 0x2b, 0x3d, 0x20, 0x31, 0x29, 0xd, 0xa, 0x9, 0x9, 0x62, 0x69, 0x74, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x62, 0x65, 0x33, 0x32, 0x65, 0x6e, 0x63, 0x28, 0x26, 0x6d, 0x73, 0x67, 0x2e, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x2e, 0x76, 0x5b, 0x69, 0x5d, 0x2c, 0x20, 0x2a, 0x28, 0x28, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x20, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x74, 0x20, 0x2a, 0x29, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x20, 0x2b, 0x20, 0x69, 0x29, 0x29, 0x3b, 0xd, 0xa, 0xd, 0xa, 0x9, 0x66, 0x6f, 0x72, 0x20, 0x28, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x74, 0x20, 0x67, 0x70, 0x75, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x20, 0x3d, 0x20, 0x30, 0x3b, 0x20, 0x67, 0x70, 0x75, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x20, 0x3c, 0x20, 0x67, 0x70, 0x75, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3b, 0x20, 0x67, 0x70, 0x75, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x20, 0x2b, 0x3d, 0x20, 0x31, 0x29, 0xd, 0xa, 0x9, 0x7b, 0xd, 0xa, 0x9, 0x9, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x44, 0x61, 0x74, 0x61, 0x20, 0x2a, 0x74, 0x68, 0x72, 0x64, 0x61, 0x74, 0x61, 0x20, 0x3d, 0x20, 0x26, 0x6d, 0x73, 0x67, 0x2e, 0x74, 0x68, 0x72, 0x64, 0x61, 0x74, 0x61, 0x5b, 0x67, 0x70, 0x75, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x5d, 0x3b, 0xd, 0xa, 0x9, 0x9, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x20, 0x75, 0x6e, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x63, 0x68, 0x61, 0x72, 0x20, 0x2a, 0x74, 0x68, 0x72, 0x5f, 0x72, 0x64, 0x61, 0x74, 0x61, 0x20, 0x3d, 0x20, 0x72, 0x64, 0x61, 0x74, 0x61, 0x20, 0x2b, 0x20, 0x67, 0x70, 0x75, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x20, 0x2a, 0x20, 0x33, 0x32, 0x3b, 0xd, 0xa, 0xd, 0xa, 0x9, 0x9, 0x76, 0x65, 0x63, 0x38, 0x75, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x20, 0x3d, 0x20, 0x68, 0x32, 0x35, 0x36, 0x3b, 0xd, 0xa, 0x9, 0x9, 0x76, 0x65, 0x63, 0x31, 0x36, 0x75, 0x20, 0x73, 0x68, 0x61, 0x64, 0x61, 0x74, 0x61, 0x3b, 0xd, 0xa, 0xd, 0xa, 0x9, 0x9, 0x62, 0x69, 0x74, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x62, 0x65, 0x33, 0x32, 0x65, 0x6e, 0x63, 0x28, 0x26, 0x73, 0x68, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x30, 0x78, 0x30, 0x5d, 0x2c, 0x20, 0x2a, 0x28, 0x28, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x20, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x74, 0x20, 0x2a, 0x29, 0x64, 0x61, 0x74, 0x61, 0x20, 0x2b, 0x20, 0x30, 0x78, 0x30, 0x29, 0x29, 0x3b, 0xd, 0xa, 0xd, 0xa, 0x9, 0x9, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3b, 0xd, 0xa, 0x9, 0x9, 0x62, 0x69, 0x74, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x62, 0x65, 0x33, 0x32, 0x65, 0x6e, 0x63, 0x28, 0x26, 0x77, 0x6f, 0x72, 0x64, 0x2c, 0x20, 0x2a, 0x28, 0x28, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x20, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x74, 0x20, 0x2a, 0x29, 0x64, 0x61, 0x74, 0x61, 0x20, 0x2b, 0x20, 0x30, 0x78, 0x31, 0x29, 0x29, 0x3b, 0xd, 0xa, 0xd, 0xa, 0x9, 0x9, 0x73, 0x68, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x30, 0x78, 0x31, 0x5d, 0x20, 0x3d, 0x20, 0x28, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x30, 0x30, 0x29, 0x20, 0x7c, 0x20, 0x28, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x20, 0x3e, 0x3e, 0x20, 0x32, 0x34, 0x29, 0x3b, 0xd, 0xa, 0x9, 0x9, 0x73, 0x68, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x30, 0x78, 0x32, 0x5d, 0x20, 0x3d, 0x20, 0x28, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x20, 0x3c, 0x3c, 0x20, 0x38, 0x29, 0x20, 0x7c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x5b, 0x31, 0x31, 0x5d, 0x3b, 0xd, 0xa, 0xd, 0xa, 0x9, 0x9, 0x66, 0x6f, 0x72, 0x20, 0x28, 0x69, 0x6e, 0x74, 0x20, 0x69, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x33, 0x3b, 0x20, 0x69, 0x20, 0x3c, 0x3d, 0x20, 0x30, 0x78, 0x39, 0x3b, 0x20, 0x69, 0x20, 0x2b, 0x3d, 0x20, 0x31, 0x29, 0xd, 0xa, 0x9, 0x9, 0x9, 0x62, 0x69, 0x74, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x62, 0x65, 0x33, 0x32, 0x65, 0x6e, 0x63, 0x28, 0x26, 0x73, 0x68, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x69, 0x5d, 0x2c, 0x20, 0x2a, 0x28, 0x28, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x20, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x74, 0x20, 0x2a, 0x29, 0x64, 0x61, 0x74, 0x61, 0x20, 0x2b, 0x20, 0x69, 0x29, 0x29, 0x3b, 0xd, 0xa, 0xd, 0xa, 0x9, 0x9, 0x62, 0x69, 0x74, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x62, 0x65, 0x33, 0x32, 0x65, 0x6e, 0x63, 0x28, 0x26, 0x77, 0x6f, 0x72, 0x64, 0x2c, 0x20, 0x2a, 0x28, 0x28, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x20, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x74, 0x20, 0x2a, 0x29, 0x64, 0x61, 0x74, 0x61, 0x20, 0x2b, 0x20, 0x30, 0x78, 0x41, 0x29, 0x29, 0x3b, 0xd, 0xa, 0x9, 0x9, 0x73, 0x68, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x30, 0x78, 0x41, 0x5d, 0x20, 0x3d, 0x20, 0x28, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x30, 0x30, 0x29, 0x20, 0x7c, 0x20, 0x74, 0x68, 0x72, 0x5f, 0x72, 0x64, 0x61, 0x74, 0x61, 0x5b, 0x30, 0x5d, 0x3b, 0xd, 0xa, 0xd, 0xa, 0x9, 0x9, 0x66, 0x6f, 0x72, 0x20, 0x28, 0x69, 0x6e, 0x74, 0x20, 0x69, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x42, 0x2c, 0x20, 0x6a, 0x20, 0x3d, 0x20, 0x30, 0x3b, 0x20, 0x69, 0x20, 0x3c, 0x3d, 0x20, 0x30, 0x78, 0x46, 0x3b, 0x20, 0x69, 0x20, 0x2b, 0x3d, 0x20, 0x31, 0x2c, 0x20, 0x6a, 0x20, 0x2b, 0x3d, 0x20, 0x31, 0x29, 0xd, 0xa, 0x9, 0x9, 0x9, 0x62, 0x69, 0x74, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x62, 0x65, 0x33, 0x32, 0x65, 0x6e, 0x63, 0x28, 0x26, 0x73, 0x68, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x69, 0x5d, 0x2c, 0x20, 0x2a, 0x28, 0x28, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x20, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x74, 0x20, 0x2a, 0x29, 0x28, 0x74, 0x68, 0x72, 0x5f, 0x72, 0x64, 0x61, 0x74, 0x61, 0x20, 0x2b, 0x20, 0x31, 0x29, 0x20, 0x2b, 0x20, 0x6a, 0x29, 0x29, 0x3b, 0xd, 0xa, 0xd, 0xa, 0x9, 0x9, 0x74, 0x68, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x3e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x20, 0x3d, 0x20, 0x73, 0x68, 0x61, 0x32, 0x35, 0x36, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x28, 0x73, 0x68, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2c, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x29, 0x3b, 0xd, 0xa, 0xd, 0xa, 0x9, 0x9, 0x66, 0x6f, 0x72, 0x20, 0x28, 0x69, 0x6e, 0x74, 0x20, 0x69, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x30, 0x2c, 0x20, 0x6a, 0x20, 0x3d, 0x20, 0x30, 0x3b, 0x20, 0x69, 0x20, 0x3c, 0x3d, 0x20, 0x30, 0x78, 0x31, 0x3b, 0x20, 0x69, 0x20, 0x2b, 0x3d, 0x20, 0x31, 0x2c, 0x20, 0x6a, 0x20, 0x2b, 0x3d, 0x20, 0x31, 0x29, 0xd, 0xa, 0x9, 0x9, 0x9, 0x62, 0x69, 0x74, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x62, 0x65, 0x33, 0x32, 0x65, 0x6e, 0x63, 0x28, 0x26, 0x74, 0x68, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x3e, 0x72, 0x64, 0x61, 0x74, 0x61, 0x5b, 0x69, 0x5d, 0x2c, 0x20, 0x2a, 0x28, 0x28, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x20, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x74, 0x20, 0x2a, 0x29, 0x28, 0x74, 0x68, 0x72, 0x5f, 0x72, 0x64, 0x61, 0x74, 0x61, 0x20, 0x2b, 0x20, 0x32, 0x31, 0x29, 0x20, 0x2b, 0x20, 0x6a, 0x29, 0x29, 0x3b, 0xd, 0xa, 0xd, 0xa, 0x9, 0x9, 0x62, 0x69, 0x74, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x62, 0x65, 0x33, 0x32, 0x65, 0x6e, 0x63, 0x28, 0x26, 0x77, 0x6f, 0x72, 0x64, 0x2c, 0x20, 0x2a, 0x28, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x20, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x74, 0x20, 0x2a, 0x29, 0x28, 0x74, 0x68, 0x72, 0x5f, 0x72, 0x64, 0x61, 0x74, 0x61, 0x20, 0x2b, 0x20, 0x32, 0x38, 0x29, 0x29, 0x3b, 0xd, 0xa, 0x9, 0x9, 0x74, 0x68, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x3e, 0x72, 0x64, 0x61, 0x74, 0x61, 0x5b, 0x30, 0x78, 0x32, 0x5d, 0x20, 0x3d, 0x20, 0x28, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x3c, 0x3c, 0x20, 0x38, 0x29, 0x20, 0x7c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x5b, 0x37, 0x35, 0x5d, 0x3b, 0xd, 0xa, 0xd, 0xa, 0x9, 0x9, 0x62, 0x69, 0x74, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x62, 0x65, 0x33, 0x32, 0x65, 0x6e, 0x63, 0x28, 0x26, 0x77, 0x6f, 0x72, 0x64, 0x2c, 0x20, 0x2a, 0x28, 0x28, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x20, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x74, 0x20, 0x2a, 0x29, 0x64, 0x61, 0x74, 0x61, 0x20, 0x2b, 0x20, 0x30, 0x78, 0x31, 0x36, 0x29, 0x29, 0x3b, 0xd, 0xa, 0x9, 0x9, 0x74, 0x68, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x3e, 0x72, 0x64, 0x61, 0x74, 0x61, 0x5b, 0x30, 0x78, 0x33, 0x5d, 0x20, 0x3d, 0x20, 0x28, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x30, 0x30, 0x29, 0x20, 0x7c, 0x20, 0x74, 0x68, 0x72, 0x5f, 0x72, 0x64, 0x61, 0x74, 0x61, 0x5b, 0x30, 0x5d, 0x3b, 0xd, 0xa, 0xd, 0xa, 0x9, 0x9, 0x66, 0x6f, 0x72, 0x20, 0x28, 0x69, 0x6e, 0x74, 0x20, 0x69, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x34, 0x2c, 0x20, 0x6a, 0x20, 0x3d, 0x20, 0x30, 0x3b, 0x20, 0x69, 0x20, 0x3c, 0x3d, 0x20, 0x30, 0x78, 0x38, 0x3b, 0x20, 0x69, 0x20, 0x2b, 0x3d, 0x20, 0x31, 0x2c, 0x20, 0x6a, 0x20, 0x2b, 0x3d, 0x20, 0x31, 0x29, 0xd, 0xa, 0x9, 0x9, 0x9, 0x62, 0x69, 0x74, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x62, 0x65, 0x33, 0x32, 0x65, 0x6e, 0x63, 0x28, 0x26, 0x74, 0x68, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x3e, 0x72, 0x64, 0x61, 0x74, 0x61, 0x5b, 0x69, 0x5d, 0x2c, 0x20, 0x2a, 0x28, 0x28, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x20, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x74, 0x20, 0x2a, 0x29, 0x28, 0x74, 0x68, 0x72, 0x5f, 0x72, 0x64, 0x61, 0x74, 0x61, 0x20, 0x2b, 0x20, 0x31, 0x29, 0x20, 0x2b, 0x20, 0x6a, 0x29, 0x29, 0x3b, 0xd, 0xa, 0x9, 0x7d, 0xd, 0xa, 0xd, 0xa, 0x9, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6d, 0x73, 0x67, 0x3b, 0xd, 0xa, 0x7d, 0xd, 0xa, 0x23, 0x65, 0x6e, 0x64, 0x69, 0x66, 0xd, 0xa, 0xd, 0xa, 0xd, 0xa, 0x74, 0x79, 0x70, 0x65, 0x64, 0x65, 0x66, 0x20, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x20, 0x44, 0x65, 0x76, 0x48, 0x61, 0x73, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0xd, 0xa, 0x7b, 0xd, 0xa, 0x9, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x74, 0x20, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x3b, 0xd, 0xa, 0x9, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x74, 0x20, 0x76, 0x63, 0x70, 0x75, 0x2c, 0x20, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x3b, 0xd, 0xa, 0x7d, 0xd, 0xa, 0x44, 0x65, 0x76, 0x48, 0x61, 0x73, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x3b, 0xd, 0xa, 0xd, 0xa, 0xd, 0xa, 0x23, 0x69, 0x66, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x28, 0x5f, 0x5f, 0x43, 0x55, 0x44, 0x41, 0x43, 0x43, 0x5f, 0x5f, 0x29, 0x20, 0x7c, 0x7c, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x28, 0x5f, 0x5f, 0x4f, 0x50, 0x45, 0x4e, 0x43, 0x4c, 0x5f, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x5f, 0x29, 0xd, 0xa, 0xd, 0xa, 0x23, 0x69, 0x66, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x28, 0x5f, 0x5f, 0x4f, 0x50, 0x45, 0x4e, 0x43, 0x4c, 0x5f, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x5f, 0x29, 0xd, 0xa, 0x9, 0x5f, 0x5f, 0x6b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x20, 0x76, 0x6f, 0x69, 0x64, 0x20, 0x62, 0x69, 0x74, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x67, 0x70, 0x75, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x28, 0xd, 0xa, 0x9, 0x9, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x74, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x2c, 0x20, 0x5f, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x20, 0x4d, 0x73, 0x67, 0x44, 0x61, 0x74, 0x61, 0x20, 0x2a, 0x63, 0x5f, 0x6d, 0x73, 0x67, 0x2c, 0x20, 0x5f, 0x5f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x20, 0x44, 0x65, 0x76, 0x48, 0x61, 0x73, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x20, 0x2a, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0xd, 0xa, 0x9, 0x29, 0xd, 0xa, 0x23, 0x65, 0x6c, 0x73, 0x65, 0xd, 0xa, 0x9, 0x5f, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x5f, 0x5f, 0x20, 0x4d, 0x73, 0x67, 0x44, 0x61, 0x74, 0x61, 0x20, 0x63, 0x5f, 0x6d, 0x73, 0x67, 0x3b, 0xd, 0xa, 0x9, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x20, 0x22, 0x43, 0x22, 0x20, 0x5f, 0x5f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x5f, 0x20, 0x76, 0x6f, 0x69, 0x64, 0x20, 0x62, 0x69, 0x74, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x67, 0x70, 0x75, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x28, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x74, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x2c, 0x20, 0x44, 0x65, 0x76, 0x48, 0x61, 0x73, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x20, 0x2a, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x29, 0xd, 0xa, 0x23, 0x65, 0x6e, 0x64, 0x69, 0x66, 0xd, 0xa, 0x7b, 0xd, 0xa, 0x23, 0x69, 0x66, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x28, 0x5f, 0x5f, 0x4f, 0x50, 0x45, 0x4e, 0x43, 0x4c, 0x5f, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x5f, 0x29, 0xd, 0xa, 0x9, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x74, 0x20, 0x69, 0x64, 0x78, 0x20, 0x3d, 0x20, 0x67, 0x65, 0x74, 0x5f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x28, 0x30, 0x29, 0x3b, 0xd, 0xa, 0x9, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x74, 0x20, 0x76, 0x63, 0x70, 0x75, 0x20, 0x3d, 0x20, 0x67, 0x65, 0x74, 0x5f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x28, 0x31, 0x29, 0x3b, 0xd, 0xa, 0xd, 0xa, 0x9, 0x5f, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x20, 0x4d, 0x73, 0x67, 0x44, 0x61, 0x74, 0x61, 0x20, 0x2a, 0x6d, 0x73, 0x67, 0x20, 0x3d, 0x20, 0x63, 0x5f, 0x6d, 0x73, 0x67, 0x3b, 0xd, 0xa, 0x9, 0x5f, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x20, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x44, 0x61, 0x74, 0x61, 0x20, 0x2a, 0x74, 0x68, 0x72, 0x64, 0x61, 0x74, 0x61, 0x20, 0x3d, 0x20, 0x26, 0x6d, 0x73, 0x67, 0x2d, 0x3e, 0x74, 0x68, 0x72, 0x64, 0x61, 0x74, 0x61, 0x5b, 0x76, 0x63, 0x70, 0x75, 0x5d, 0x3b, 0xd, 0xa, 0x23, 0x65, 0x6c, 0x73, 0x65, 0xd, 0xa, 0x9, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x74, 0x20, 0x69, 0x64, 0x78, 0x20, 0x3d, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x78, 0x2e, 0x78, 0x20, 0x2a, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x69, 0x6d, 0x2e, 0x78, 0x20, 0x2b, 0x20, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x49, 0x64, 0x78, 0x2e, 0x78, 0x3b, 0xd, 0xa, 0x9, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x74, 0x20, 0x76, 0x63, 0x70, 0x75, 0x20, 0x3d, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x78, 0x2e, 0x79, 0x3b, 0xd, 0xa, 0xd, 0xa, 0x9, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x20, 0x4d, 0x73, 0x67, 0x44, 0x61, 0x74, 0x61, 0x20, 0x2a, 0x6d, 0x73, 0x67, 0x20, 0x3d, 0x20, 0x26, 0x63, 0x5f, 0x6d, 0x73, 0x67, 0x3b, 0xd, 0xa, 0x9, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x20, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x44, 0x61, 0x74, 0x61, 0x20, 0x2a, 0x74, 0x68, 0x72, 0x64, 0x61, 0x74, 0x61, 0x20, 0x3d, 0x20, 0x26, 0x63, 0x5f, 0x6d, 0x73, 0x67, 0x2e, 0x74, 0x68, 0x72, 0x64, 0x61, 0x74, 0x61, 0x5b, 0x76, 0x63, 0x70, 0x75, 0x5d, 0x3b, 0xd, 0xa, 0x23, 0x65, 0x6e, 0x64, 0x69, 0x66, 0xd, 0xa, 0xd, 0xa, 0x9, 0x76, 0x65, 0x63, 0x38, 0x75, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x20, 0x3d, 0x20, 0x74, 0x68, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x3e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x3b, 0xd, 0xa, 0xd, 0xa, 0x9, 0x76, 0x65, 0x63, 0x31, 0x36, 0x75, 0x20, 0x64, 0x61, 0x74, 0x61, 0x3b, 0xd, 0xa, 0x9, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x74, 0x20, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x20, 0x3d, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x20, 0x2b, 0x20, 0x69, 0x64, 0x78, 0x3b, 0xd, 0xa, 0xd, 0xa, 0x9, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x74, 0x20, 0x72, 0x64, 0x61, 0x74, 0x61, 0x36, 0x20, 0x3d, 0x20, 0x74, 0x68, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x3e, 0x72, 0x64, 0x61, 0x74, 0x61, 0x5b, 0x30, 0x5d, 0x2c, 0x20, 0x72, 0x64, 0x61, 0x74, 0x61, 0x37, 0x20, 0x3d, 0x20, 0x74, 0x68, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x3e, 0x72, 0x64, 0x61, 0x74, 0x61, 0x5b, 0x31, 0x5d, 0x2c, 0x20, 0x72, 0x64, 0x61, 0x74, 0x61, 0x38, 0x20, 0x3d, 0x20, 0x74, 0x68, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x3e, 0x72, 0x64, 0x61, 0x74, 0x61, 0x5b, 0x32, 0x5d, 0x3b, 0xd, 0xa, 0x9, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x74, 0x20, 0x72, 0x64, 0x61, 0x74, 0x61, 0x20, 0x3d, 0x20, 0x28, 0x28, 0x28, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x74, 0x29, 0x72, 0x64, 0x61, 0x74, 0x61, 0x36, 0x20, 0x3c, 0x3c, 0x20, 0x35, 0x36, 0x29, 0x20, 0x7c, 0x20, 0x28, 0x28, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x74, 0x29, 0x72, 0x64, 0x61, 0x74, 0x61, 0x37, 0x20, 0x3c, 0x3c, 0x20, 0x32, 0x34, 0x29, 0x20, 0x7c, 0x20, 0x28, 0x28, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x74, 0x29, 0x72, 0x64, 0x61, 0x74, 0x61, 0x38, 0x20, 0x3e, 0x3e, 0x20, 0x38, 0x29, 0x29, 0x20, 0x2b, 0x20, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x3b, 0xd, 0xa, 0xd, 0xa, 0x9, 0x72, 0x64, 0x61, 0x74, 0x61, 0x36, 0x20, 0x3d, 0x20, 0x28, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x74, 0x29, 0x28, 0x72, 0x64, 0x61, 0x74, 0x61, 0x20, 0x3e, 0x3e, 0x20, 0x35, 0x36, 0x29, 0x20, 0x7c, 0x20, 0x28, 0x72, 0x64, 0x61, 0x74, 0x61, 0x36, 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x30, 0x30, 0x29, 0x3b, 0xd, 0xa, 0x9, 0x72, 0x64, 0x61, 0x74, 0x61, 0x37, 0x20, 0x3d, 0x20, 0x28, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x74, 0x29, 0x28, 0x72, 0x64, 0x61, 0x74, 0x61, 0x20, 0x3e, 0x3e, 0x20, 0x32, 0x34, 0x29, 0x3b, 0xd, 0xa, 0xd, 0xa, 0x9, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x74, 0x20, 0x72, 0x64, 0x61, 0x74, 0x61, 0x31, 0x30, 0x20, 0x3d, 0x20, 0x28, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x74, 0x29, 0x28, 0x72, 0x64, 0x61, 0x74, 0x61, 0x20, 0x3c, 0x3c, 0x20, 0x38, 0x29, 0x20, 0x7c, 0x20, 0x30, 0x78, 0x38, 0x30, 0x3b, 0xd, 0xa, 0x9, 0x72, 0x64, 0x61, 0x74, 0x61, 0x38, 0x20, 0x3d, 0x20, 0x28, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x74, 0x29, 0x28, 0x72, 0x64, 0x61, 0x74, 0x61, 0x20, 0x3c, 0x3c, 0x20, 0x38, 0x29, 0x20, 0x7c, 0x20, 0x28, 0x72, 0x64, 0x61, 0x74, 0x61, 0x38, 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, 0x29, 0x3b, 0xd, 0xa, 0xd, 0xa, 0x9, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x30, 0x78, 0x30, 0x5d, 0x20, 0x3d, 0x20, 0x72, 0x64, 0x61, 0x74, 0x61, 0x36, 0x3b, 0xd, 0xa, 0x9, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x30, 0x78, 0x31, 0x5d, 0x20, 0x3d, 0x20, 0x72, 0x64, 0x61, 0x74, 0x61, 0x37, 0x3b, 0xd, 0xa, 0x9, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x30, 0x78, 0x32, 0x5d, 0x20, 0x3d, 0x20, 0x72, 0x64, 0x61, 0x74, 0x61, 0x38, 0x3b, 0xd, 0xa, 0x9, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x30, 0x78, 0x33, 0x5d, 0x20, 0x3d, 0x20, 0x6d, 0x73, 0x67, 0x2d, 0x3e, 0x70, 0x73, 0x65, 0x65, 0x64, 0x5b, 0x30, 0x5d, 0x3b, 0xd, 0xa, 0x9, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x30, 0x78, 0x34, 0x5d, 0x20, 0x3d, 0x20, 0x6d, 0x73, 0x67, 0x2d, 0x3e, 0x70, 0x73, 0x65, 0x65, 0x64, 0x5b, 0x31, 0x5d, 0x3b, 0xd, 0xa, 0x9, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x30, 0x78, 0x35, 0x5d, 0x20, 0x3d, 0x20, 0x6d, 0x73, 0x67, 0x2d, 0x3e, 0x70, 0x73, 0x65, 0x65, 0x64, 0x5b, 0x32, 0x5d, 0x3b, 0xd, 0xa, 0x9, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x30, 0x78, 0x36, 0x5d, 0x20, 0x3d, 0x20, 0x74, 0x68, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x3e, 0x72, 0x64, 0x61, 0x74, 0x61, 0x5b, 0x33, 0x5d, 0x3b, 0xd, 0xa, 0x9, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x30, 0x78, 0x37, 0x5d, 0x20, 0x3d, 0x20, 0x74, 0x68, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x3e, 0x72, 0x64, 0x61, 0x74, 0x61, 0x5b, 0x34, 0x5d, 0x3b, 0xd, 0xa, 0x9, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x30, 0x78, 0x38, 0x5d, 0x20, 0x3d, 0x20, 0x74, 0x68, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x3e, 0x72, 0x64, 0x61, 0x74, 0x61, 0x5b, 0x35, 0x5d, 0x3b, 0xd, 0xa, 0x9, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x30, 0x78, 0x39, 0x5d, 0x20, 0x3d, 0x20, 0x74, 0x68, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x3e, 0x72, 0x64, 0x61, 0x74, 0x61, 0x5b, 0x36, 0x5d, 0x3b, 0xd, 0xa, 0x9, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x30, 0x78, 0x41, 0x5d, 0x20, 0x3d, 0x20, 0x74, 0x68, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x3e, 0x72, 0x64, 0x61, 0x74, 0x61, 0x5b, 0x37, 0x5d, 0x3b, 0xd, 0xa, 0x9, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x30, 0x78, 0x42, 0x5d, 0x20, 0x3d, 0x20, 0x74, 0x68, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x3e, 0x72, 0x64, 0x61, 0x74, 0x61, 0x5b, 0x38, 0x5d, 0x3b, 0xd, 0xa, 0x9, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x30, 0x78, 0x43, 0x5d, 0x20, 0x3d, 0x20, 0x72, 0x64, 0x61, 0x74, 0x61, 0x36, 0x3b, 0xd, 0xa, 0x9, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x30, 0x78, 0x44, 0x5d, 0x20, 0x3d, 0x20, 0x72, 0x64, 0x61, 0x74, 0x61, 0x37, 0x3b, 0xd, 0xa, 0x9, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x30, 0x78, 0x45, 0x5d, 0x20, 0x3d, 0x20, 0x72, 0x64, 0x61, 0x74, 0x61, 0x31, 0x30, 0x3b, 0xd, 0xa, 0x9, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x30, 0x78, 0x46, 0x5d, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3b, 0xd, 0xa, 0xd, 0xa, 0x9, 0x2f, 0x2a, 0x69, 0x66, 0x20, 0x28, 0x76, 0x63, 0x70, 0x75, 0x20, 0x3d, 0x3d, 0x20, 0x30, 0x20, 0x26, 0x26, 0x20, 0x69, 0x64, 0x78, 0x20, 0x3d, 0x3d, 0x20, 0x30, 0x29, 0xd, 0xa, 0x9, 0x9, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x66, 0x28, 0xd, 0xa, 0x9, 0x9, 0x9, 0x22, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x5c, 0x6e, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x5c, 0x6e, 0x5c, 0x6e, 0x22, 0x2c, 0xd, 0xa, 0x9, 0x9, 0x9, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x30, 0x5d, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x31, 0x5d, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x32, 0x5d, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x33, 0x5d, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x34, 0x5d, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x35, 0x5d, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x36, 0x5d, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x37, 0x5d, 0x2c, 0xd, 0xa, 0x9, 0x9, 0x9, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x38, 0x5d, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x39, 0x5d, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x31, 0x30, 0x5d, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x31, 0x31, 0x5d, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x31, 0x32, 0x5d, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x31, 0x33, 0x5d, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x31, 0x34, 0x5d, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x31, 0x35, 0x5d, 0xd, 0xa, 0x9, 0x9, 0x29, 0x3b, 0x2a, 0x2f, 0xd, 0xa, 0xd, 0xa, 0x9, 0x73, 0x74, 0x61, 0x74, 0x65, 0x20, 0x3d, 0x20, 0x73, 0x68, 0x61, 0x32, 0x35, 0x36, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x28, 0x64, 0x61, 0x74, 0x61, 0x2c, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x29, 0x3b, 0xd, 0xa, 0xd, 0xa, 0x9, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x30, 0x78, 0x30, 0x5d, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3b, 0xd, 0xa, 0x9, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x30, 0x78, 0x31, 0x5d, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3b, 0xd, 0xa, 0x9, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x30, 0x78, 0x32, 0x5d, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3b, 0xd, 0xa, 0x9, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x30, 0x78, 0x33, 0x5d, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3b, 0xd, 0xa, 0x9, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x30, 0x78, 0x34, 0x5d, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3b, 0xd, 0xa, 0x9, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x30, 0x78, 0x35, 0x5d, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3b, 0xd, 0xa, 0x9, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x30, 0x78, 0x36, 0x5d, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3b, 0xd, 0xa, 0x9, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x30, 0x78, 0x37, 0x5d, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3b, 0xd, 0xa, 0x9, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x30, 0x78, 0x38, 0x5d, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3b, 0xd, 0xa, 0x9, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x30, 0x78, 0x39, 0x5d, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3b, 0xd, 0xa, 0x9, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x30, 0x78, 0x41, 0x5d, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3b, 0xd, 0xa, 0x9, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x30, 0x78, 0x42, 0x5d, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3b, 0xd, 0xa, 0x9, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x30, 0x78, 0x43, 0x5d, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3b, 0xd, 0xa, 0x9, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x30, 0x78, 0x44, 0x5d, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3b, 0xd, 0xa, 0x9, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x30, 0x78, 0x45, 0x5d, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3b, 0xd, 0xa, 0x9, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x30, 0x78, 0x46, 0x5d, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x30, 0x30, 0x30, 0x30, 0x30, 0x33, 0x64, 0x38, 0x3b, 0xd, 0xa, 0xd, 0xa, 0x9, 0x2f, 0x2a, 0x69, 0x66, 0x20, 0x28, 0x76, 0x63, 0x70, 0x75, 0x20, 0x3d, 0x3d, 0x20, 0x30, 0x20, 0x26, 0x26, 0x20, 0x69, 0x64, 0x78, 0x20, 0x3d, 0x3d, 0x20, 0x30, 0x29, 0xd, 0xa, 0x9, 0x9, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x66, 0x28, 0xd, 0xa, 0x9, 0x9, 0x9, 0x22, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x5c, 0x6e, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x5c, 0x6e, 0x5c, 0x6e, 0x22, 0x2c, 0xd, 0xa, 0x9, 0x9, 0x9, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x30, 0x5d, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x31, 0x5d, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x32, 0x5d, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x33, 0x5d, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x34, 0x5d, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x35, 0x5d, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x36, 0x5d, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x37, 0x5d, 0x2c, 0xd, 0xa, 0x9, 0x9, 0x9, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x38, 0x5d, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x39, 0x5d, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x31, 0x30, 0x5d, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x31, 0x31, 0x5d, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x31, 0x32, 0x5d, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x31, 0x33, 0x5d, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x31, 0x34, 0x5d, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x31, 0x35, 0x5d, 0xd, 0xa, 0x9, 0x9, 0x29, 0x3b, 0x2a, 0x2f, 0xd, 0xa, 0xd, 0xa, 0x9, 0x73, 0x74, 0x61, 0x74, 0x65, 0x20, 0x3d, 0x20, 0x73, 0x68, 0x61, 0x32, 0x35, 0x36, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x28, 0x64, 0x61, 0x74, 0x61, 0x2c, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x29, 0x3b, 0xd, 0xa, 0xd, 0xa, 0x9, 0x2f, 0x2a, 0x69, 0x66, 0x20, 0x28, 0x76, 0x63, 0x70, 0x75, 0x20, 0x3d, 0x3d, 0x20, 0x30, 0x20, 0x26, 0x26, 0x20, 0x69, 0x64, 0x78, 0x20, 0x3d, 0x3d, 0x20, 0x30, 0x29, 0xd, 0xa, 0x9, 0x9, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x66, 0x28, 0xd, 0xa, 0x9, 0x9, 0x9, 0x22, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x5c, 0x6e, 0x5c, 0x6e, 0x22, 0x2c, 0xd, 0xa, 0x9, 0x9, 0x9, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x76, 0x5b, 0x30, 0x5d, 0x2c, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x76, 0x5b, 0x31, 0x5d, 0x2c, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x76, 0x5b, 0x32, 0x5d, 0x2c, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x76, 0x5b, 0x33, 0x5d, 0x2c, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x76, 0x5b, 0x34, 0x5d, 0x2c, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x76, 0x5b, 0x35, 0x5d, 0x2c, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x76, 0x5b, 0x36, 0x5d, 0x2c, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x76, 0x5b, 0x37, 0x5d, 0xd, 0xa, 0x9, 0x9, 0x29, 0x3b, 0x2a, 0x2f, 0xd, 0xa, 0xd, 0xa, 0x9, 0x66, 0x6f, 0x72, 0x20, 0x28, 0x69, 0x6e, 0x74, 0x20, 0x69, 0x20, 0x3d, 0x20, 0x30, 0x3b, 0x20, 0x69, 0x20, 0x3c, 0x20, 0x38, 0x3b, 0x20, 0x69, 0x20, 0x2b, 0x3d, 0x20, 0x31, 0x29, 0xd, 0xa, 0x9, 0x7b, 0xd, 0xa, 0x9, 0x9, 0x69, 0x66, 0x20, 0x28, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x76, 0x5b, 0x69, 0x5d, 0x20, 0x3e, 0x20, 0x6d, 0x73, 0x67, 0x2d, 0x3e, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x2e, 0x76, 0x5b, 0x69, 0x5d, 0x29, 0xd, 0xa, 0x9, 0x9, 0x9, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x3b, 0xd, 0xa, 0xd, 0xa, 0x9, 0x9, 0x69, 0x66, 0x20, 0x28, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x76, 0x5b, 0x69, 0x5d, 0x20, 0x3c, 0x20, 0x6d, 0x73, 0x67, 0x2d, 0x3e, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x2e, 0x76, 0x5b, 0x69, 0x5d, 0x29, 0xd, 0xa, 0x9, 0x9, 0x7b, 0xd, 0xa, 0x23, 0x69, 0x66, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x28, 0x5f, 0x5f, 0x4f, 0x50, 0x45, 0x4e, 0x43, 0x4c, 0x5f, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x5f, 0x29, 0xd, 0xa, 0x9, 0x9, 0x9, 0x69, 0x66, 0x20, 0x28, 0x61, 0x74, 0x6f, 0x6d, 0x69, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x28, 0x26, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2d, 0x3e, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x2c, 0x20, 0x31, 0x29, 0x20, 0x3d, 0x3d, 0x20, 0x30, 0x29, 0xd, 0xa, 0x23, 0x65, 0x6c, 0x73, 0x65, 0xd, 0xa, 0x9, 0x9, 0x9, 0x69, 0x66, 0x20, 0x28, 0x61, 0x74, 0x6f, 0x6d, 0x69, 0x63, 0x41, 0x64, 0x64, 0x28, 0x26, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2d, 0x3e, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x2c, 0x20, 0x31, 0x29, 0x20, 0x3d, 0x3d, 0x20, 0x30, 0x29, 0xd, 0xa, 0x23, 0x65, 0x6e, 0x64, 0x69, 0x66, 0xd, 0xa, 0x9, 0x9, 0x9, 0x9, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2d, 0x3e, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x20, 0x3d, 0x20, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x2c, 0x20, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2d, 0x3e, 0x76, 0x63, 0x70, 0x75, 0x20, 0x3d, 0x20, 0x76, 0x63, 0x70, 0x75, 0x3b, 0xd, 0xa, 0xd, 0xa, 0x9, 0x9, 0x9, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x3b, 0xd, 0xa, 0x9, 0x9, 0x7d, 0xd, 0xa, 0x9, 0x7d, 0xd, 0xa, 0x7d, 0xd, 0xa, 0xd, 0xa, 0x23, 0x65, 0x6e, 0x64, 0x69, 0x66, 0xd, 0xa, 0xd, 0xa, 0xd, 0xa, 0x23, 0x65, 0x6e, 0x64, 0x69, 0x66, 0xd, 0xa}; -unsigned int cruncher_h_len = 9417; +// unsigned char cruncher_h[] = {0x23, 0x69, 0x66, 0x6e, 0x64, 0x65, 0x66, 0x20, 0x5f, 0x5f, 0x43, 0x52, 0x55, 0x4e, 0x43, 0x48, 0x45, 0x52, 0x5f, 0x48, 0x5f, 0x5f, 0xd, 0xa, 0x23, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x20, 0x5f, 0x5f, 0x43, 0x52, 0x55, 0x4e, 0x43, 0x48, 0x45, 0x52, 0x5f, 0x48, 0x5f, 0x5f, 0xd, 0xa, 0xd, 0xa, 0xd, 0xa, 0x23, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x20, 0x4d, 0x41, 0x58, 0x5f, 0x47, 0x50, 0x55, 0x5f, 0x54, 0x48, 0x52, 0x45, 0x41, 0x44, 0x53, 0x20, 0x31, 0x36, 0xd, 0xa, 0xd, 0xa, 0xd, 0xa, 0x23, 0x69, 0x66, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x28, 0x5f, 0x5f, 0x4f, 0x50, 0x45, 0x4e, 0x43, 0x4c, 0x5f, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x5f, 0x29, 0xd, 0xa, 0x9, 0x74, 0x79, 0x70, 0x65, 0x64, 0x65, 0x66, 0x20, 0x75, 0x69, 0x6e, 0x74, 0x20, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x74, 0x3b, 0xd, 0xa, 0x9, 0x74, 0x79, 0x70, 0x65, 0x64, 0x65, 0x66, 0x20, 0x75, 0x6c, 0x6f, 0x6e, 0x67, 0x20, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x74, 0x3b, 0xd, 0xa, 0x23, 0x65, 0x6c, 0x73, 0x65, 0xd, 0xa, 0x9, 0x23, 0x69, 0x66, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x28, 0x5f, 0x5f, 0x4e, 0x56, 0x43, 0x43, 0x5f, 0x5f, 0x29, 0xd, 0xa, 0x9, 0x9, 0x23, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x3c, 0x63, 0x75, 0x64, 0x61, 0x5f, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x68, 0x3e, 0xd, 0xa, 0x9, 0x9, 0x23, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x3c, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6c, 0x61, 0x75, 0x6e, 0x63, 0x68, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x2e, 0x68, 0x3e, 0xd, 0xa, 0x9, 0x23, 0x65, 0x6e, 0x64, 0x69, 0x66, 0xd, 0xa, 0xd, 0xa, 0x9, 0x23, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x3c, 0x73, 0x74, 0x64, 0x69, 0x6e, 0x74, 0x2e, 0x68, 0x3e, 0xd, 0xa, 0x23, 0x65, 0x6e, 0x64, 0x69, 0x66, 0xd, 0xa, 0xd, 0xa, 0xd, 0xa, 0x23, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x20, 0x52, 0x4f, 0x54, 0x52, 0x49, 0x47, 0x48, 0x54, 0x28, 0x61, 0x2c, 0x20, 0x62, 0x29, 0x20, 0x28, 0x28, 0x28, 0x61, 0x29, 0x20, 0x3e, 0x3e, 0x20, 0x28, 0x62, 0x29, 0x29, 0x20, 0x7c, 0x20, 0x28, 0x28, 0x61, 0x29, 0x20, 0x3c, 0x3c, 0x20, 0x28, 0x33, 0x32, 0x20, 0x2d, 0x20, 0x28, 0x62, 0x29, 0x29, 0x29, 0x29, 0xd, 0xa, 0xd, 0xa, 0x23, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x20, 0x43, 0x48, 0x28, 0x78, 0x2c, 0x20, 0x79, 0x2c, 0x20, 0x7a, 0x29, 0x20, 0x28, 0x28, 0x28, 0x78, 0x29, 0x20, 0x26, 0x20, 0x28, 0x79, 0x29, 0x29, 0x20, 0x5e, 0x20, 0x28, 0x7e, 0x28, 0x78, 0x29, 0x20, 0x26, 0x20, 0x28, 0x7a, 0x29, 0x29, 0x29, 0xd, 0xa, 0x23, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x20, 0x4d, 0x41, 0x4a, 0x28, 0x78, 0x2c, 0x20, 0x79, 0x2c, 0x20, 0x7a, 0x29, 0x20, 0x28, 0x28, 0x28, 0x78, 0x29, 0x20, 0x26, 0x20, 0x28, 0x79, 0x29, 0x29, 0x20, 0x5e, 0x20, 0x28, 0x28, 0x78, 0x29, 0x20, 0x26, 0x20, 0x28, 0x7a, 0x29, 0x29, 0x20, 0x5e, 0x20, 0x28, 0x28, 0x79, 0x29, 0x20, 0x26, 0x20, 0x28, 0x7a, 0x29, 0x29, 0x29, 0xd, 0xa, 0x23, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x20, 0x45, 0x50, 0x30, 0x28, 0x78, 0x29, 0x20, 0x28, 0x52, 0x4f, 0x54, 0x52, 0x49, 0x47, 0x48, 0x54, 0x28, 0x78, 0x2c, 0x20, 0x32, 0x29, 0x20, 0x5e, 0x20, 0x52, 0x4f, 0x54, 0x52, 0x49, 0x47, 0x48, 0x54, 0x28, 0x78, 0x2c, 0x20, 0x31, 0x33, 0x29, 0x20, 0x5e, 0x20, 0x52, 0x4f, 0x54, 0x52, 0x49, 0x47, 0x48, 0x54, 0x28, 0x78, 0x2c, 0x20, 0x32, 0x32, 0x29, 0x29, 0xd, 0xa, 0x23, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x20, 0x45, 0x50, 0x31, 0x28, 0x78, 0x29, 0x20, 0x28, 0x52, 0x4f, 0x54, 0x52, 0x49, 0x47, 0x48, 0x54, 0x28, 0x78, 0x2c, 0x20, 0x36, 0x29, 0x20, 0x5e, 0x20, 0x52, 0x4f, 0x54, 0x52, 0x49, 0x47, 0x48, 0x54, 0x28, 0x78, 0x2c, 0x20, 0x31, 0x31, 0x29, 0x20, 0x5e, 0x20, 0x52, 0x4f, 0x54, 0x52, 0x49, 0x47, 0x48, 0x54, 0x28, 0x78, 0x2c, 0x20, 0x32, 0x35, 0x29, 0x29, 0xd, 0xa, 0x23, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x20, 0x53, 0x49, 0x47, 0x30, 0x28, 0x78, 0x29, 0x20, 0x28, 0x52, 0x4f, 0x54, 0x52, 0x49, 0x47, 0x48, 0x54, 0x28, 0x78, 0x2c, 0x20, 0x37, 0x29, 0x20, 0x5e, 0x20, 0x52, 0x4f, 0x54, 0x52, 0x49, 0x47, 0x48, 0x54, 0x28, 0x78, 0x2c, 0x20, 0x31, 0x38, 0x29, 0x20, 0x5e, 0x20, 0x28, 0x28, 0x78, 0x29, 0x20, 0x3e, 0x3e, 0x20, 0x33, 0x29, 0x29, 0xd, 0xa, 0x23, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x20, 0x53, 0x49, 0x47, 0x31, 0x28, 0x78, 0x29, 0x20, 0x28, 0x52, 0x4f, 0x54, 0x52, 0x49, 0x47, 0x48, 0x54, 0x28, 0x78, 0x2c, 0x20, 0x31, 0x37, 0x29, 0x20, 0x5e, 0x20, 0x52, 0x4f, 0x54, 0x52, 0x49, 0x47, 0x48, 0x54, 0x28, 0x78, 0x2c, 0x20, 0x31, 0x39, 0x29, 0x20, 0x5e, 0x20, 0x28, 0x28, 0x78, 0x29, 0x20, 0x3e, 0x3e, 0x20, 0x31, 0x30, 0x29, 0x29, 0xd, 0xa, 0xd, 0xa, 0xd, 0xa, 0x74, 0x79, 0x70, 0x65, 0x64, 0x65, 0x66, 0x20, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x20, 0x76, 0x65, 0x63, 0x38, 0x75, 0xd, 0xa, 0x7b, 0xd, 0xa, 0x9, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x74, 0x20, 0x76, 0x5b, 0x38, 0x5d, 0x3b, 0xd, 0xa, 0x7d, 0xd, 0xa, 0x76, 0x65, 0x63, 0x38, 0x75, 0x3b, 0xd, 0xa, 0xd, 0xa, 0xd, 0xa, 0x74, 0x79, 0x70, 0x65, 0x64, 0x65, 0x66, 0x20, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x20, 0x76, 0x65, 0x63, 0x31, 0x36, 0x75, 0xd, 0xa, 0x7b, 0xd, 0xa, 0x9, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x74, 0x20, 0x76, 0x5b, 0x31, 0x36, 0x5d, 0x3b, 0xd, 0xa, 0x7d, 0xd, 0xa, 0x76, 0x65, 0x63, 0x31, 0x36, 0x75, 0x3b, 0xd, 0xa, 0xd, 0xa, 0xd, 0xa, 0x74, 0x79, 0x70, 0x65, 0x64, 0x65, 0x66, 0x20, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x20, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x44, 0x61, 0x74, 0x61, 0xd, 0xa, 0x7b, 0xd, 0xa, 0x9, 0x76, 0x65, 0x63, 0x38, 0x75, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x3b, 0xd, 0xa, 0x9, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x74, 0x20, 0x72, 0x64, 0x61, 0x74, 0x61, 0x5b, 0x39, 0x5d, 0x3b, 0xd, 0xa, 0x7d, 0xd, 0xa, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x44, 0x61, 0x74, 0x61, 0x3b, 0xd, 0xa, 0xd, 0xa, 0xd, 0xa, 0x74, 0x79, 0x70, 0x65, 0x64, 0x65, 0x66, 0x20, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x20, 0x4d, 0x73, 0x67, 0x44, 0x61, 0x74, 0x61, 0xd, 0xa, 0x7b, 0xd, 0xa, 0x9, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x74, 0x20, 0x70, 0x73, 0x65, 0x65, 0x64, 0x5b, 0x33, 0x5d, 0x3b, 0xd, 0xa, 0x9, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x44, 0x61, 0x74, 0x61, 0x20, 0x74, 0x68, 0x72, 0x64, 0x61, 0x74, 0x61, 0x5b, 0x4d, 0x41, 0x58, 0x5f, 0x47, 0x50, 0x55, 0x5f, 0x54, 0x48, 0x52, 0x45, 0x41, 0x44, 0x53, 0x5d, 0x3b, 0xd, 0xa, 0x9, 0x76, 0x65, 0x63, 0x38, 0x75, 0x20, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x3b, 0xd, 0xa, 0x7d, 0xd, 0xa, 0x4d, 0x73, 0x67, 0x44, 0x61, 0x74, 0x61, 0x3b, 0xd, 0xa, 0xd, 0xa, 0xd, 0xa, 0x23, 0x69, 0x66, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x28, 0x5f, 0x5f, 0x4e, 0x56, 0x43, 0x43, 0x5f, 0x5f, 0x29, 0xd, 0xa, 0x5f, 0x5f, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x5f, 0x20, 0x5f, 0x5f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x5f, 0x20, 0x5f, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x5f, 0x5f, 0xd, 0xa, 0x23, 0x65, 0x6c, 0x73, 0x65, 0xd, 0xa, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0xd, 0xa, 0x23, 0x65, 0x6e, 0x64, 0x69, 0x66, 0xd, 0xa, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x20, 0x76, 0x65, 0x63, 0x38, 0x75, 0x20, 0x73, 0x68, 0x61, 0x32, 0x35, 0x36, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x28, 0x76, 0x65, 0x63, 0x31, 0x36, 0x75, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2c, 0x20, 0x76, 0x65, 0x63, 0x38, 0x75, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x29, 0xd, 0xa, 0x7b, 0xd, 0xa, 0x9, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x20, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x74, 0x20, 0x6b, 0x73, 0x68, 0x61, 0x5b, 0x5d, 0x20, 0x3d, 0x20, 0x7b, 0xd, 0xa, 0x9, 0x9, 0x30, 0x78, 0x34, 0x32, 0x38, 0x41, 0x32, 0x46, 0x39, 0x38, 0x2c, 0x20, 0x30, 0x78, 0x37, 0x31, 0x33, 0x37, 0x34, 0x34, 0x39, 0x31, 0x2c, 0x20, 0x30, 0x78, 0x42, 0x35, 0x43, 0x30, 0x46, 0x42, 0x43, 0x46, 0x2c, 0x20, 0x30, 0x78, 0x45, 0x39, 0x42, 0x35, 0x44, 0x42, 0x41, 0x35, 0x2c, 0x20, 0x30, 0x78, 0x33, 0x39, 0x35, 0x36, 0x43, 0x32, 0x35, 0x42, 0x2c, 0x20, 0x30, 0x78, 0x35, 0x39, 0x46, 0x31, 0x31, 0x31, 0x46, 0x31, 0x2c, 0x20, 0x30, 0x78, 0x39, 0x32, 0x33, 0x46, 0x38, 0x32, 0x41, 0x34, 0x2c, 0x20, 0x30, 0x78, 0x41, 0x42, 0x31, 0x43, 0x35, 0x45, 0x44, 0x35, 0x2c, 0xd, 0xa, 0x9, 0x9, 0x30, 0x78, 0x44, 0x38, 0x30, 0x37, 0x41, 0x41, 0x39, 0x38, 0x2c, 0x20, 0x30, 0x78, 0x31, 0x32, 0x38, 0x33, 0x35, 0x42, 0x30, 0x31, 0x2c, 0x20, 0x30, 0x78, 0x32, 0x34, 0x33, 0x31, 0x38, 0x35, 0x42, 0x45, 0x2c, 0x20, 0x30, 0x78, 0x35, 0x35, 0x30, 0x43, 0x37, 0x44, 0x43, 0x33, 0x2c, 0x20, 0x30, 0x78, 0x37, 0x32, 0x42, 0x45, 0x35, 0x44, 0x37, 0x34, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x30, 0x44, 0x45, 0x42, 0x31, 0x46, 0x45, 0x2c, 0x20, 0x30, 0x78, 0x39, 0x42, 0x44, 0x43, 0x30, 0x36, 0x41, 0x37, 0x2c, 0x20, 0x30, 0x78, 0x43, 0x31, 0x39, 0x42, 0x46, 0x31, 0x37, 0x34, 0x2c, 0xd, 0xa, 0x9, 0x9, 0x30, 0x78, 0x45, 0x34, 0x39, 0x42, 0x36, 0x39, 0x43, 0x31, 0x2c, 0x20, 0x30, 0x78, 0x45, 0x46, 0x42, 0x45, 0x34, 0x37, 0x38, 0x36, 0x2c, 0x20, 0x30, 0x78, 0x30, 0x46, 0x43, 0x31, 0x39, 0x44, 0x43, 0x36, 0x2c, 0x20, 0x30, 0x78, 0x32, 0x34, 0x30, 0x43, 0x41, 0x31, 0x43, 0x43, 0x2c, 0x20, 0x30, 0x78, 0x32, 0x44, 0x45, 0x39, 0x32, 0x43, 0x36, 0x46, 0x2c, 0x20, 0x30, 0x78, 0x34, 0x41, 0x37, 0x34, 0x38, 0x34, 0x41, 0x41, 0x2c, 0x20, 0x30, 0x78, 0x35, 0x43, 0x42, 0x30, 0x41, 0x39, 0x44, 0x43, 0x2c, 0x20, 0x30, 0x78, 0x37, 0x36, 0x46, 0x39, 0x38, 0x38, 0x44, 0x41, 0x2c, 0xd, 0xa, 0x9, 0x9, 0x30, 0x78, 0x39, 0x38, 0x33, 0x45, 0x35, 0x31, 0x35, 0x32, 0x2c, 0x20, 0x30, 0x78, 0x41, 0x38, 0x33, 0x31, 0x43, 0x36, 0x36, 0x44, 0x2c, 0x20, 0x30, 0x78, 0x42, 0x30, 0x30, 0x33, 0x32, 0x37, 0x43, 0x38, 0x2c, 0x20, 0x30, 0x78, 0x42, 0x46, 0x35, 0x39, 0x37, 0x46, 0x43, 0x37, 0x2c, 0x20, 0x30, 0x78, 0x43, 0x36, 0x45, 0x30, 0x30, 0x42, 0x46, 0x33, 0x2c, 0x20, 0x30, 0x78, 0x44, 0x35, 0x41, 0x37, 0x39, 0x31, 0x34, 0x37, 0x2c, 0x20, 0x30, 0x78, 0x30, 0x36, 0x43, 0x41, 0x36, 0x33, 0x35, 0x31, 0x2c, 0x20, 0x30, 0x78, 0x31, 0x34, 0x32, 0x39, 0x32, 0x39, 0x36, 0x37, 0x2c, 0xd, 0xa, 0x9, 0x9, 0x30, 0x78, 0x32, 0x37, 0x42, 0x37, 0x30, 0x41, 0x38, 0x35, 0x2c, 0x20, 0x30, 0x78, 0x32, 0x45, 0x31, 0x42, 0x32, 0x31, 0x33, 0x38, 0x2c, 0x20, 0x30, 0x78, 0x34, 0x44, 0x32, 0x43, 0x36, 0x44, 0x46, 0x43, 0x2c, 0x20, 0x30, 0x78, 0x35, 0x33, 0x33, 0x38, 0x30, 0x44, 0x31, 0x33, 0x2c, 0x20, 0x30, 0x78, 0x36, 0x35, 0x30, 0x41, 0x37, 0x33, 0x35, 0x34, 0x2c, 0x20, 0x30, 0x78, 0x37, 0x36, 0x36, 0x41, 0x30, 0x41, 0x42, 0x42, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x31, 0x43, 0x32, 0x43, 0x39, 0x32, 0x45, 0x2c, 0x20, 0x30, 0x78, 0x39, 0x32, 0x37, 0x32, 0x32, 0x43, 0x38, 0x35, 0x2c, 0xd, 0xa, 0x9, 0x9, 0x30, 0x78, 0x41, 0x32, 0x42, 0x46, 0x45, 0x38, 0x41, 0x31, 0x2c, 0x20, 0x30, 0x78, 0x41, 0x38, 0x31, 0x41, 0x36, 0x36, 0x34, 0x42, 0x2c, 0x20, 0x30, 0x78, 0x43, 0x32, 0x34, 0x42, 0x38, 0x42, 0x37, 0x30, 0x2c, 0x20, 0x30, 0x78, 0x43, 0x37, 0x36, 0x43, 0x35, 0x31, 0x41, 0x33, 0x2c, 0x20, 0x30, 0x78, 0x44, 0x31, 0x39, 0x32, 0x45, 0x38, 0x31, 0x39, 0x2c, 0x20, 0x30, 0x78, 0x44, 0x36, 0x39, 0x39, 0x30, 0x36, 0x32, 0x34, 0x2c, 0x20, 0x30, 0x78, 0x46, 0x34, 0x30, 0x45, 0x33, 0x35, 0x38, 0x35, 0x2c, 0x20, 0x30, 0x78, 0x31, 0x30, 0x36, 0x41, 0x41, 0x30, 0x37, 0x30, 0x2c, 0xd, 0xa, 0x9, 0x9, 0x30, 0x78, 0x31, 0x39, 0x41, 0x34, 0x43, 0x31, 0x31, 0x36, 0x2c, 0x20, 0x30, 0x78, 0x31, 0x45, 0x33, 0x37, 0x36, 0x43, 0x30, 0x38, 0x2c, 0x20, 0x30, 0x78, 0x32, 0x37, 0x34, 0x38, 0x37, 0x37, 0x34, 0x43, 0x2c, 0x20, 0x30, 0x78, 0x33, 0x34, 0x42, 0x30, 0x42, 0x43, 0x42, 0x35, 0x2c, 0x20, 0x30, 0x78, 0x33, 0x39, 0x31, 0x43, 0x30, 0x43, 0x42, 0x33, 0x2c, 0x20, 0x30, 0x78, 0x34, 0x45, 0x44, 0x38, 0x41, 0x41, 0x34, 0x41, 0x2c, 0x20, 0x30, 0x78, 0x35, 0x42, 0x39, 0x43, 0x43, 0x41, 0x34, 0x46, 0x2c, 0x20, 0x30, 0x78, 0x36, 0x38, 0x32, 0x45, 0x36, 0x46, 0x46, 0x33, 0x2c, 0xd, 0xa, 0x9, 0x9, 0x30, 0x78, 0x37, 0x34, 0x38, 0x46, 0x38, 0x32, 0x45, 0x45, 0x2c, 0x20, 0x30, 0x78, 0x37, 0x38, 0x41, 0x35, 0x36, 0x33, 0x36, 0x46, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x34, 0x43, 0x38, 0x37, 0x38, 0x31, 0x34, 0x2c, 0x20, 0x30, 0x78, 0x38, 0x43, 0x43, 0x37, 0x30, 0x32, 0x30, 0x38, 0x2c, 0x20, 0x30, 0x78, 0x39, 0x30, 0x42, 0x45, 0x46, 0x46, 0x46, 0x41, 0x2c, 0x20, 0x30, 0x78, 0x41, 0x34, 0x35, 0x30, 0x36, 0x43, 0x45, 0x42, 0x2c, 0x20, 0x30, 0x78, 0x42, 0x45, 0x46, 0x39, 0x41, 0x33, 0x46, 0x37, 0x2c, 0x20, 0x30, 0x78, 0x43, 0x36, 0x37, 0x31, 0x37, 0x38, 0x46, 0x32, 0xd, 0xa, 0x9, 0x7d, 0x3b, 0xd, 0xa, 0xd, 0xa, 0x9, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x74, 0x20, 0x6d, 0x5b, 0x36, 0x34, 0x5d, 0x3b, 0xd, 0xa, 0xd, 0xa, 0x9, 0x66, 0x6f, 0x72, 0x20, 0x28, 0x69, 0x6e, 0x74, 0x20, 0x69, 0x20, 0x3d, 0x20, 0x30, 0x3b, 0x20, 0x69, 0x20, 0x3c, 0x20, 0x31, 0x36, 0x3b, 0x20, 0x69, 0x20, 0x2b, 0x3d, 0x20, 0x31, 0x29, 0xd, 0xa, 0x9, 0x9, 0x6d, 0x5b, 0x69, 0x5d, 0x20, 0x3d, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x69, 0x5d, 0x3b, 0xd, 0xa, 0xd, 0xa, 0x9, 0x66, 0x6f, 0x72, 0x20, 0x28, 0x69, 0x6e, 0x74, 0x20, 0x69, 0x20, 0x3d, 0x20, 0x31, 0x36, 0x3b, 0x20, 0x69, 0x20, 0x3c, 0x20, 0x36, 0x34, 0x3b, 0x20, 0x69, 0x20, 0x2b, 0x3d, 0x20, 0x31, 0x29, 0xd, 0xa, 0x9, 0x9, 0x6d, 0x5b, 0x69, 0x5d, 0x20, 0x3d, 0x20, 0x53, 0x49, 0x47, 0x31, 0x28, 0x6d, 0x5b, 0x69, 0x20, 0x2d, 0x20, 0x32, 0x5d, 0x29, 0x20, 0x2b, 0x20, 0x6d, 0x5b, 0x69, 0x20, 0x2d, 0x20, 0x37, 0x5d, 0x20, 0x2b, 0x20, 0x53, 0x49, 0x47, 0x30, 0x28, 0x6d, 0x5b, 0x69, 0x20, 0x2d, 0x20, 0x31, 0x35, 0x5d, 0x29, 0x20, 0x2b, 0x20, 0x6d, 0x5b, 0x69, 0x20, 0x2d, 0x20, 0x31, 0x36, 0x5d, 0x3b, 0xd, 0xa, 0xd, 0xa, 0x9, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x74, 0x20, 0x61, 0x20, 0x3d, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x76, 0x5b, 0x30, 0x5d, 0x2c, 0x20, 0x62, 0x20, 0x3d, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x76, 0x5b, 0x31, 0x5d, 0x2c, 0x20, 0x63, 0x20, 0x3d, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x76, 0x5b, 0x32, 0x5d, 0x2c, 0x20, 0x64, 0x20, 0x3d, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x76, 0x5b, 0x33, 0x5d, 0x3b, 0xd, 0xa, 0x9, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x74, 0x20, 0x65, 0x20, 0x3d, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x76, 0x5b, 0x34, 0x5d, 0x2c, 0x20, 0x66, 0x20, 0x3d, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x76, 0x5b, 0x35, 0x5d, 0x2c, 0x20, 0x67, 0x20, 0x3d, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x76, 0x5b, 0x36, 0x5d, 0x2c, 0x20, 0x68, 0x20, 0x3d, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x76, 0x5b, 0x37, 0x5d, 0x3b, 0xd, 0xa, 0xd, 0xa, 0x23, 0x69, 0x66, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x28, 0x5f, 0x5f, 0x43, 0x55, 0x44, 0x41, 0x5f, 0x41, 0x52, 0x43, 0x48, 0x5f, 0x5f, 0x29, 0x20, 0x7c, 0x7c, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x28, 0x5f, 0x5f, 0x4f, 0x50, 0x45, 0x4e, 0x43, 0x4c, 0x5f, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x5f, 0x29, 0xd, 0xa, 0x9, 0x23, 0x70, 0x72, 0x61, 0x67, 0x6d, 0x61, 0x20, 0x75, 0x6e, 0x72, 0x6f, 0x6c, 0x6c, 0xd, 0xa, 0x23, 0x65, 0x6e, 0x64, 0x69, 0x66, 0xd, 0xa, 0x9, 0x66, 0x6f, 0x72, 0x20, 0x28, 0x69, 0x6e, 0x74, 0x20, 0x69, 0x20, 0x3d, 0x20, 0x30, 0x3b, 0x20, 0x69, 0x20, 0x3c, 0x20, 0x36, 0x34, 0x3b, 0x20, 0x69, 0x20, 0x2b, 0x3d, 0x20, 0x31, 0x29, 0xd, 0xa, 0x9, 0x7b, 0xd, 0xa, 0x9, 0x9, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x74, 0x20, 0x74, 0x31, 0x20, 0x3d, 0x20, 0x68, 0x20, 0x2b, 0x20, 0x45, 0x50, 0x31, 0x28, 0x65, 0x29, 0x20, 0x2b, 0x20, 0x43, 0x48, 0x28, 0x65, 0x2c, 0x20, 0x66, 0x2c, 0x20, 0x67, 0x29, 0x20, 0x2b, 0x20, 0x6b, 0x73, 0x68, 0x61, 0x5b, 0x69, 0x5d, 0x20, 0x2b, 0x20, 0x6d, 0x5b, 0x69, 0x5d, 0x3b, 0xd, 0xa, 0x9, 0x9, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x74, 0x20, 0x74, 0x32, 0x20, 0x3d, 0x20, 0x45, 0x50, 0x30, 0x28, 0x61, 0x29, 0x20, 0x2b, 0x20, 0x4d, 0x41, 0x4a, 0x28, 0x61, 0x2c, 0x20, 0x62, 0x2c, 0x20, 0x63, 0x29, 0x3b, 0xd, 0xa, 0x9, 0x9, 0x68, 0x20, 0x3d, 0x20, 0x67, 0x3b, 0xd, 0xa, 0x9, 0x9, 0x67, 0x20, 0x3d, 0x20, 0x66, 0x3b, 0xd, 0xa, 0x9, 0x9, 0x66, 0x20, 0x3d, 0x20, 0x65, 0x3b, 0xd, 0xa, 0x9, 0x9, 0x65, 0x20, 0x3d, 0x20, 0x64, 0x20, 0x2b, 0x20, 0x74, 0x31, 0x3b, 0xd, 0xa, 0x9, 0x9, 0x64, 0x20, 0x3d, 0x20, 0x63, 0x3b, 0xd, 0xa, 0x9, 0x9, 0x63, 0x20, 0x3d, 0x20, 0x62, 0x3b, 0xd, 0xa, 0x9, 0x9, 0x62, 0x20, 0x3d, 0x20, 0x61, 0x3b, 0xd, 0xa, 0x9, 0x9, 0x61, 0x20, 0x3d, 0x20, 0x74, 0x31, 0x20, 0x2b, 0x20, 0x74, 0x32, 0x3b, 0xd, 0xa, 0x9, 0x7d, 0xd, 0xa, 0xd, 0xa, 0x9, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x76, 0x5b, 0x30, 0x5d, 0x20, 0x2b, 0x3d, 0x20, 0x61, 0x2c, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x76, 0x5b, 0x31, 0x5d, 0x20, 0x2b, 0x3d, 0x20, 0x62, 0x2c, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x76, 0x5b, 0x32, 0x5d, 0x20, 0x2b, 0x3d, 0x20, 0x63, 0x2c, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x76, 0x5b, 0x33, 0x5d, 0x20, 0x2b, 0x3d, 0x20, 0x64, 0x3b, 0xd, 0xa, 0x9, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x76, 0x5b, 0x34, 0x5d, 0x20, 0x2b, 0x3d, 0x20, 0x65, 0x2c, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x76, 0x5b, 0x35, 0x5d, 0x20, 0x2b, 0x3d, 0x20, 0x66, 0x2c, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x76, 0x5b, 0x36, 0x5d, 0x20, 0x2b, 0x3d, 0x20, 0x67, 0x2c, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x76, 0x5b, 0x37, 0x5d, 0x20, 0x2b, 0x3d, 0x20, 0x68, 0x3b, 0xd, 0xa, 0xd, 0xa, 0x9, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x3b, 0xd, 0xa, 0x7d, 0xd, 0xa, 0xd, 0xa, 0xd, 0xa, 0x23, 0x69, 0x66, 0x20, 0x21, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x28, 0x5f, 0x5f, 0x4f, 0x50, 0x45, 0x4e, 0x43, 0x4c, 0x5f, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x5f, 0x29, 0xd, 0xa, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x20, 0x76, 0x65, 0x63, 0x38, 0x75, 0x20, 0x68, 0x32, 0x35, 0x36, 0x20, 0x3d, 0x20, 0x7b, 0xd, 0xa, 0x9, 0x30, 0x78, 0x36, 0x41, 0x30, 0x39, 0x45, 0x36, 0x36, 0x37, 0x2c, 0x20, 0x30, 0x78, 0x42, 0x42, 0x36, 0x37, 0x41, 0x45, 0x38, 0x35, 0x2c, 0x20, 0x30, 0x78, 0x33, 0x43, 0x36, 0x45, 0x46, 0x33, 0x37, 0x32, 0x2c, 0x20, 0x30, 0x78, 0x41, 0x35, 0x34, 0x46, 0x46, 0x35, 0x33, 0x41, 0x2c, 0x20, 0x30, 0x78, 0x35, 0x31, 0x30, 0x45, 0x35, 0x32, 0x37, 0x46, 0x2c, 0x20, 0x30, 0x78, 0x39, 0x42, 0x30, 0x35, 0x36, 0x38, 0x38, 0x43, 0x2c, 0x20, 0x30, 0x78, 0x31, 0x46, 0x38, 0x33, 0x44, 0x39, 0x41, 0x42, 0x2c, 0x20, 0x30, 0x78, 0x35, 0x42, 0x45, 0x30, 0x43, 0x44, 0x31, 0x39, 0xd, 0xa, 0x7d, 0x3b, 0xd, 0xa, 0xd, 0xa, 0xd, 0xa, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x20, 0x76, 0x6f, 0x69, 0x64, 0x20, 0x62, 0x69, 0x74, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x62, 0x65, 0x33, 0x32, 0x65, 0x6e, 0x63, 0x28, 0x76, 0x6f, 0x69, 0x64, 0x20, 0x2a, 0x70, 0x70, 0x2c, 0x20, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x74, 0x20, 0x78, 0x29, 0xd, 0xa, 0x7b, 0xd, 0xa, 0x9, 0x75, 0x69, 0x6e, 0x74, 0x38, 0x5f, 0x74, 0x20, 0x2a, 0x70, 0x20, 0x3d, 0x20, 0x28, 0x75, 0x69, 0x6e, 0x74, 0x38, 0x5f, 0x74, 0x20, 0x2a, 0x29, 0x70, 0x70, 0x3b, 0xd, 0xa, 0xd, 0xa, 0x9, 0x70, 0x5b, 0x33, 0x5d, 0x20, 0x3d, 0x20, 0x78, 0x20, 0x26, 0x20, 0x30, 0x78, 0x66, 0x66, 0x3b, 0xd, 0xa, 0x9, 0x70, 0x5b, 0x32, 0x5d, 0x20, 0x3d, 0x20, 0x28, 0x78, 0x20, 0x3e, 0x3e, 0x20, 0x38, 0x29, 0x20, 0x26, 0x20, 0x30, 0x78, 0x66, 0x66, 0x3b, 0xd, 0xa, 0x9, 0x70, 0x5b, 0x31, 0x5d, 0x20, 0x3d, 0x20, 0x28, 0x78, 0x20, 0x3e, 0x3e, 0x20, 0x31, 0x36, 0x29, 0x20, 0x26, 0x20, 0x30, 0x78, 0x66, 0x66, 0x3b, 0xd, 0xa, 0x9, 0x70, 0x5b, 0x30, 0x5d, 0x20, 0x3d, 0x20, 0x28, 0x78, 0x20, 0x3e, 0x3e, 0x20, 0x32, 0x34, 0x29, 0x20, 0x26, 0x20, 0x30, 0x78, 0x66, 0x66, 0x3b, 0xd, 0xa, 0x7d, 0xd, 0xa, 0xd, 0xa, 0xd, 0xa, 0x69, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x20, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x20, 0x4d, 0x73, 0x67, 0x44, 0x61, 0x74, 0x61, 0x20, 0x62, 0x69, 0x74, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x5f, 0x6d, 0x73, 0x67, 0x28, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x74, 0x20, 0x67, 0x70, 0x75, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x2c, 0x20, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x74, 0x20, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x2c, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x20, 0x75, 0x6e, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x63, 0x68, 0x61, 0x72, 0x20, 0x2a, 0x64, 0x61, 0x74, 0x61, 0x2c, 0xd, 0xa, 0x9, 0x9, 0x9, 0x9, 0x9, 0x9, 0x9, 0x9, 0x9, 0x9, 0x9, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x20, 0x76, 0x6f, 0x69, 0x64, 0x20, 0x2a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x2c, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x20, 0x75, 0x6e, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x63, 0x68, 0x61, 0x72, 0x20, 0x2a, 0x72, 0x64, 0x61, 0x74, 0x61, 0x29, 0xd, 0xa, 0x7b, 0xd, 0xa, 0x9, 0x2f, 0x2a, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x66, 0x28, 0x22, 0x67, 0x70, 0x75, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3a, 0x20, 0x25, 0x75, 0x2c, 0x20, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x3a, 0x20, 0x25, 0x30, 0x34, 0x78, 0x5c, 0x6e, 0x22, 0x2c, 0x20, 0x28, 0x75, 0x6e, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x29, 0x67, 0x70, 0x75, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x2c, 0x20, 0x28, 0x75, 0x6e, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x29, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x29, 0x3b, 0xd, 0xa, 0x9, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x66, 0x28, 0x22, 0x64, 0x61, 0x74, 0x61, 0x3a, 0x5c, 0x6e, 0x22, 0x29, 0x3b, 0xd, 0xa, 0xd, 0xa, 0x9, 0x75, 0x6e, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x63, 0x68, 0x61, 0x72, 0x20, 0x70, 0x61, 0x64, 0x64, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5b, 0x31, 0x32, 0x38, 0x5d, 0x3b, 0xd, 0xa, 0x9, 0x6d, 0x65, 0x6d, 0x73, 0x65, 0x74, 0x28, 0x70, 0x61, 0x64, 0x64, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x2c, 0x20, 0x30, 0x2c, 0x20, 0x73, 0x69, 0x7a, 0x65, 0x6f, 0x66, 0x28, 0x70, 0x61, 0x64, 0x64, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x29, 0x29, 0x3b, 0xd, 0xa, 0x9, 0x6d, 0x65, 0x6d, 0x63, 0x70, 0x79, 0x28, 0x70, 0x61, 0x64, 0x64, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2c, 0x20, 0x31, 0x32, 0x33, 0x29, 0x3b, 0xd, 0xa, 0xd, 0xa, 0x9, 0x66, 0x6f, 0x72, 0x20, 0x28, 0x69, 0x6e, 0x74, 0x20, 0x69, 0x20, 0x3d, 0x20, 0x30, 0x3b, 0x20, 0x69, 0x20, 0x3c, 0x20, 0x33, 0x32, 0x3b, 0x20, 0x69, 0x20, 0x2b, 0x3d, 0x20, 0x31, 0x29, 0xd, 0xa, 0x9, 0x7b, 0xd, 0xa, 0x9, 0x9, 0x66, 0x6f, 0x72, 0x20, 0x28, 0x69, 0x6e, 0x74, 0x20, 0x6a, 0x20, 0x3d, 0x20, 0x30, 0x3b, 0x20, 0x6a, 0x20, 0x3c, 0x20, 0x34, 0x3b, 0x20, 0x6a, 0x20, 0x2b, 0x3d, 0x20, 0x31, 0x29, 0xd, 0xa, 0x9, 0x9, 0x9, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x66, 0x28, 0x22, 0x25, 0x30, 0x32, 0x68, 0x68, 0x78, 0x20, 0x22, 0x2c, 0x20, 0x70, 0x61, 0x64, 0x64, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5b, 0x69, 0x20, 0x2a, 0x20, 0x34, 0x20, 0x2b, 0x20, 0x6a, 0x5d, 0x29, 0x3b, 0xd, 0xa, 0x9, 0x9, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x66, 0x28, 0x22, 0x5c, 0x6e, 0x22, 0x29, 0x3b, 0xd, 0xa, 0x9, 0x7d, 0xd, 0xa, 0xd, 0xa, 0x9, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x66, 0x28, 0x22, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x3a, 0x5c, 0x6e, 0x22, 0x29, 0x3b, 0xd, 0xa, 0x9, 0x66, 0x6f, 0x72, 0x20, 0x28, 0x69, 0x6e, 0x74, 0x20, 0x69, 0x20, 0x3d, 0x20, 0x30, 0x3b, 0x20, 0x69, 0x20, 0x3c, 0x20, 0x33, 0x32, 0x3b, 0x20, 0x69, 0x20, 0x2b, 0x3d, 0x20, 0x31, 0x29, 0xd, 0xa, 0x9, 0x9, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x66, 0x28, 0x22, 0x25, 0x30, 0x32, 0x68, 0x68, 0x78, 0x20, 0x22, 0x2c, 0x20, 0x28, 0x28, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x20, 0x75, 0x6e, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x63, 0x68, 0x61, 0x72, 0x20, 0x2a, 0x29, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x29, 0x5b, 0x69, 0x5d, 0x29, 0x3b, 0xd, 0xa, 0x9, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x66, 0x28, 0x22, 0x5c, 0x6e, 0x22, 0x29, 0x3b, 0xd, 0xa, 0xd, 0xa, 0x9, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x66, 0x28, 0x22, 0x72, 0x64, 0x61, 0x74, 0x61, 0x3a, 0x5c, 0x6e, 0x22, 0x29, 0x3b, 0xd, 0xa, 0x9, 0x66, 0x6f, 0x72, 0x20, 0x28, 0x75, 0x6e, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x69, 0x20, 0x3d, 0x20, 0x30, 0x3b, 0x20, 0x69, 0x20, 0x3c, 0x20, 0x67, 0x70, 0x75, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3b, 0x20, 0x69, 0x20, 0x2b, 0x3d, 0x20, 0x31, 0x29, 0xd, 0xa, 0x9, 0x7b, 0xd, 0xa, 0x9, 0x9, 0x66, 0x6f, 0x72, 0x20, 0x28, 0x69, 0x6e, 0x74, 0x20, 0x6a, 0x20, 0x3d, 0x20, 0x30, 0x3b, 0x20, 0x6a, 0x20, 0x3c, 0x20, 0x33, 0x32, 0x3b, 0x20, 0x6a, 0x20, 0x2b, 0x3d, 0x20, 0x31, 0x29, 0xd, 0xa, 0x9, 0x9, 0x9, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x66, 0x28, 0x22, 0x25, 0x30, 0x32, 0x68, 0x68, 0x78, 0x20, 0x22, 0x2c, 0x20, 0x72, 0x64, 0x61, 0x74, 0x61, 0x5b, 0x69, 0x20, 0x2a, 0x20, 0x33, 0x32, 0x20, 0x2b, 0x20, 0x6a, 0x5d, 0x29, 0x3b, 0xd, 0xa, 0x9, 0x9, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x66, 0x28, 0x22, 0x5c, 0x6e, 0x22, 0x29, 0x3b, 0xd, 0xa, 0x9, 0x7d, 0x2a, 0x2f, 0xd, 0xa, 0xd, 0xa, 0x9, 0x4d, 0x73, 0x67, 0x44, 0x61, 0x74, 0x61, 0x20, 0x6d, 0x73, 0x67, 0x3b, 0xd, 0xa, 0xd, 0xa, 0x9, 0x66, 0x6f, 0x72, 0x20, 0x28, 0x69, 0x6e, 0x74, 0x20, 0x69, 0x20, 0x3d, 0x20, 0x30, 0x3b, 0x20, 0x69, 0x20, 0x3c, 0x20, 0x33, 0x3b, 0x20, 0x69, 0x20, 0x2b, 0x3d, 0x20, 0x31, 0x29, 0xd, 0xa, 0x9, 0x9, 0x62, 0x69, 0x74, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x62, 0x65, 0x33, 0x32, 0x65, 0x6e, 0x63, 0x28, 0x26, 0x6d, 0x73, 0x67, 0x2e, 0x70, 0x73, 0x65, 0x65, 0x64, 0x5b, 0x69, 0x5d, 0x2c, 0x20, 0x2a, 0x28, 0x28, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x20, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x74, 0x20, 0x2a, 0x29, 0x28, 0x64, 0x61, 0x74, 0x61, 0x20, 0x2b, 0x20, 0x37, 0x36, 0x29, 0x20, 0x2b, 0x20, 0x69, 0x29, 0x29, 0x3b, 0xd, 0xa, 0xd, 0xa, 0x9, 0x66, 0x6f, 0x72, 0x20, 0x28, 0x69, 0x6e, 0x74, 0x20, 0x69, 0x20, 0x3d, 0x20, 0x30, 0x3b, 0x20, 0x69, 0x20, 0x3c, 0x20, 0x38, 0x3b, 0x20, 0x69, 0x20, 0x2b, 0x3d, 0x20, 0x31, 0x29, 0xd, 0xa, 0x9, 0x9, 0x62, 0x69, 0x74, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x62, 0x65, 0x33, 0x32, 0x65, 0x6e, 0x63, 0x28, 0x26, 0x6d, 0x73, 0x67, 0x2e, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x2e, 0x76, 0x5b, 0x69, 0x5d, 0x2c, 0x20, 0x2a, 0x28, 0x28, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x20, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x74, 0x20, 0x2a, 0x29, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x20, 0x2b, 0x20, 0x69, 0x29, 0x29, 0x3b, 0xd, 0xa, 0xd, 0xa, 0x9, 0x66, 0x6f, 0x72, 0x20, 0x28, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x74, 0x20, 0x67, 0x70, 0x75, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x20, 0x3d, 0x20, 0x30, 0x3b, 0x20, 0x67, 0x70, 0x75, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x20, 0x3c, 0x20, 0x67, 0x70, 0x75, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3b, 0x20, 0x67, 0x70, 0x75, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x20, 0x2b, 0x3d, 0x20, 0x31, 0x29, 0xd, 0xa, 0x9, 0x7b, 0xd, 0xa, 0x9, 0x9, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x44, 0x61, 0x74, 0x61, 0x20, 0x2a, 0x74, 0x68, 0x72, 0x64, 0x61, 0x74, 0x61, 0x20, 0x3d, 0x20, 0x26, 0x6d, 0x73, 0x67, 0x2e, 0x74, 0x68, 0x72, 0x64, 0x61, 0x74, 0x61, 0x5b, 0x67, 0x70, 0x75, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x5d, 0x3b, 0xd, 0xa, 0x9, 0x9, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x20, 0x75, 0x6e, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x20, 0x63, 0x68, 0x61, 0x72, 0x20, 0x2a, 0x74, 0x68, 0x72, 0x5f, 0x72, 0x64, 0x61, 0x74, 0x61, 0x20, 0x3d, 0x20, 0x72, 0x64, 0x61, 0x74, 0x61, 0x20, 0x2b, 0x20, 0x67, 0x70, 0x75, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x20, 0x2a, 0x20, 0x33, 0x32, 0x3b, 0xd, 0xa, 0xd, 0xa, 0x9, 0x9, 0x76, 0x65, 0x63, 0x38, 0x75, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x20, 0x3d, 0x20, 0x68, 0x32, 0x35, 0x36, 0x3b, 0xd, 0xa, 0x9, 0x9, 0x76, 0x65, 0x63, 0x31, 0x36, 0x75, 0x20, 0x73, 0x68, 0x61, 0x64, 0x61, 0x74, 0x61, 0x3b, 0xd, 0xa, 0xd, 0xa, 0x9, 0x9, 0x62, 0x69, 0x74, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x62, 0x65, 0x33, 0x32, 0x65, 0x6e, 0x63, 0x28, 0x26, 0x73, 0x68, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x30, 0x78, 0x30, 0x5d, 0x2c, 0x20, 0x2a, 0x28, 0x28, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x20, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x74, 0x20, 0x2a, 0x29, 0x64, 0x61, 0x74, 0x61, 0x20, 0x2b, 0x20, 0x30, 0x78, 0x30, 0x29, 0x29, 0x3b, 0xd, 0xa, 0xd, 0xa, 0x9, 0x9, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x74, 0x20, 0x77, 0x6f, 0x72, 0x64, 0x3b, 0xd, 0xa, 0x9, 0x9, 0x62, 0x69, 0x74, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x62, 0x65, 0x33, 0x32, 0x65, 0x6e, 0x63, 0x28, 0x26, 0x77, 0x6f, 0x72, 0x64, 0x2c, 0x20, 0x2a, 0x28, 0x28, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x20, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x74, 0x20, 0x2a, 0x29, 0x64, 0x61, 0x74, 0x61, 0x20, 0x2b, 0x20, 0x30, 0x78, 0x31, 0x29, 0x29, 0x3b, 0xd, 0xa, 0xd, 0xa, 0x9, 0x9, 0x73, 0x68, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x30, 0x78, 0x31, 0x5d, 0x20, 0x3d, 0x20, 0x28, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x30, 0x30, 0x29, 0x20, 0x7c, 0x20, 0x28, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x20, 0x3e, 0x3e, 0x20, 0x32, 0x34, 0x29, 0x3b, 0xd, 0xa, 0x9, 0x9, 0x73, 0x68, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x30, 0x78, 0x32, 0x5d, 0x20, 0x3d, 0x20, 0x28, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x20, 0x3c, 0x3c, 0x20, 0x38, 0x29, 0x20, 0x7c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x5b, 0x31, 0x31, 0x5d, 0x3b, 0xd, 0xa, 0xd, 0xa, 0x9, 0x9, 0x66, 0x6f, 0x72, 0x20, 0x28, 0x69, 0x6e, 0x74, 0x20, 0x69, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x33, 0x3b, 0x20, 0x69, 0x20, 0x3c, 0x3d, 0x20, 0x30, 0x78, 0x39, 0x3b, 0x20, 0x69, 0x20, 0x2b, 0x3d, 0x20, 0x31, 0x29, 0xd, 0xa, 0x9, 0x9, 0x9, 0x62, 0x69, 0x74, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x62, 0x65, 0x33, 0x32, 0x65, 0x6e, 0x63, 0x28, 0x26, 0x73, 0x68, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x69, 0x5d, 0x2c, 0x20, 0x2a, 0x28, 0x28, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x20, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x74, 0x20, 0x2a, 0x29, 0x64, 0x61, 0x74, 0x61, 0x20, 0x2b, 0x20, 0x69, 0x29, 0x29, 0x3b, 0xd, 0xa, 0xd, 0xa, 0x9, 0x9, 0x62, 0x69, 0x74, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x62, 0x65, 0x33, 0x32, 0x65, 0x6e, 0x63, 0x28, 0x26, 0x77, 0x6f, 0x72, 0x64, 0x2c, 0x20, 0x2a, 0x28, 0x28, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x20, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x74, 0x20, 0x2a, 0x29, 0x64, 0x61, 0x74, 0x61, 0x20, 0x2b, 0x20, 0x30, 0x78, 0x41, 0x29, 0x29, 0x3b, 0xd, 0xa, 0x9, 0x9, 0x73, 0x68, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x30, 0x78, 0x41, 0x5d, 0x20, 0x3d, 0x20, 0x28, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x30, 0x30, 0x29, 0x20, 0x7c, 0x20, 0x74, 0x68, 0x72, 0x5f, 0x72, 0x64, 0x61, 0x74, 0x61, 0x5b, 0x30, 0x5d, 0x3b, 0xd, 0xa, 0xd, 0xa, 0x9, 0x9, 0x66, 0x6f, 0x72, 0x20, 0x28, 0x69, 0x6e, 0x74, 0x20, 0x69, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x42, 0x2c, 0x20, 0x6a, 0x20, 0x3d, 0x20, 0x30, 0x3b, 0x20, 0x69, 0x20, 0x3c, 0x3d, 0x20, 0x30, 0x78, 0x46, 0x3b, 0x20, 0x69, 0x20, 0x2b, 0x3d, 0x20, 0x31, 0x2c, 0x20, 0x6a, 0x20, 0x2b, 0x3d, 0x20, 0x31, 0x29, 0xd, 0xa, 0x9, 0x9, 0x9, 0x62, 0x69, 0x74, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x62, 0x65, 0x33, 0x32, 0x65, 0x6e, 0x63, 0x28, 0x26, 0x73, 0x68, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x69, 0x5d, 0x2c, 0x20, 0x2a, 0x28, 0x28, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x20, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x74, 0x20, 0x2a, 0x29, 0x28, 0x74, 0x68, 0x72, 0x5f, 0x72, 0x64, 0x61, 0x74, 0x61, 0x20, 0x2b, 0x20, 0x31, 0x29, 0x20, 0x2b, 0x20, 0x6a, 0x29, 0x29, 0x3b, 0xd, 0xa, 0xd, 0xa, 0x9, 0x9, 0x74, 0x68, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x3e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x20, 0x3d, 0x20, 0x73, 0x68, 0x61, 0x32, 0x35, 0x36, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x28, 0x73, 0x68, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2c, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x29, 0x3b, 0xd, 0xa, 0xd, 0xa, 0x9, 0x9, 0x66, 0x6f, 0x72, 0x20, 0x28, 0x69, 0x6e, 0x74, 0x20, 0x69, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x30, 0x2c, 0x20, 0x6a, 0x20, 0x3d, 0x20, 0x30, 0x3b, 0x20, 0x69, 0x20, 0x3c, 0x3d, 0x20, 0x30, 0x78, 0x31, 0x3b, 0x20, 0x69, 0x20, 0x2b, 0x3d, 0x20, 0x31, 0x2c, 0x20, 0x6a, 0x20, 0x2b, 0x3d, 0x20, 0x31, 0x29, 0xd, 0xa, 0x9, 0x9, 0x9, 0x62, 0x69, 0x74, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x62, 0x65, 0x33, 0x32, 0x65, 0x6e, 0x63, 0x28, 0x26, 0x74, 0x68, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x3e, 0x72, 0x64, 0x61, 0x74, 0x61, 0x5b, 0x69, 0x5d, 0x2c, 0x20, 0x2a, 0x28, 0x28, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x20, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x74, 0x20, 0x2a, 0x29, 0x28, 0x74, 0x68, 0x72, 0x5f, 0x72, 0x64, 0x61, 0x74, 0x61, 0x20, 0x2b, 0x20, 0x32, 0x31, 0x29, 0x20, 0x2b, 0x20, 0x6a, 0x29, 0x29, 0x3b, 0xd, 0xa, 0xd, 0xa, 0x9, 0x9, 0x62, 0x69, 0x74, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x62, 0x65, 0x33, 0x32, 0x65, 0x6e, 0x63, 0x28, 0x26, 0x77, 0x6f, 0x72, 0x64, 0x2c, 0x20, 0x2a, 0x28, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x20, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x74, 0x20, 0x2a, 0x29, 0x28, 0x74, 0x68, 0x72, 0x5f, 0x72, 0x64, 0x61, 0x74, 0x61, 0x20, 0x2b, 0x20, 0x32, 0x38, 0x29, 0x29, 0x3b, 0xd, 0xa, 0x9, 0x9, 0x74, 0x68, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x3e, 0x72, 0x64, 0x61, 0x74, 0x61, 0x5b, 0x30, 0x78, 0x32, 0x5d, 0x20, 0x3d, 0x20, 0x28, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x3c, 0x3c, 0x20, 0x38, 0x29, 0x20, 0x7c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x5b, 0x37, 0x35, 0x5d, 0x3b, 0xd, 0xa, 0xd, 0xa, 0x9, 0x9, 0x62, 0x69, 0x74, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x62, 0x65, 0x33, 0x32, 0x65, 0x6e, 0x63, 0x28, 0x26, 0x77, 0x6f, 0x72, 0x64, 0x2c, 0x20, 0x2a, 0x28, 0x28, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x20, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x74, 0x20, 0x2a, 0x29, 0x64, 0x61, 0x74, 0x61, 0x20, 0x2b, 0x20, 0x30, 0x78, 0x31, 0x36, 0x29, 0x29, 0x3b, 0xd, 0xa, 0x9, 0x9, 0x74, 0x68, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x3e, 0x72, 0x64, 0x61, 0x74, 0x61, 0x5b, 0x30, 0x78, 0x33, 0x5d, 0x20, 0x3d, 0x20, 0x28, 0x77, 0x6f, 0x72, 0x64, 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x30, 0x30, 0x29, 0x20, 0x7c, 0x20, 0x74, 0x68, 0x72, 0x5f, 0x72, 0x64, 0x61, 0x74, 0x61, 0x5b, 0x30, 0x5d, 0x3b, 0xd, 0xa, 0xd, 0xa, 0x9, 0x9, 0x66, 0x6f, 0x72, 0x20, 0x28, 0x69, 0x6e, 0x74, 0x20, 0x69, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x34, 0x2c, 0x20, 0x6a, 0x20, 0x3d, 0x20, 0x30, 0x3b, 0x20, 0x69, 0x20, 0x3c, 0x3d, 0x20, 0x30, 0x78, 0x38, 0x3b, 0x20, 0x69, 0x20, 0x2b, 0x3d, 0x20, 0x31, 0x2c, 0x20, 0x6a, 0x20, 0x2b, 0x3d, 0x20, 0x31, 0x29, 0xd, 0xa, 0x9, 0x9, 0x9, 0x62, 0x69, 0x74, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x62, 0x65, 0x33, 0x32, 0x65, 0x6e, 0x63, 0x28, 0x26, 0x74, 0x68, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x3e, 0x72, 0x64, 0x61, 0x74, 0x61, 0x5b, 0x69, 0x5d, 0x2c, 0x20, 0x2a, 0x28, 0x28, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x20, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x74, 0x20, 0x2a, 0x29, 0x28, 0x74, 0x68, 0x72, 0x5f, 0x72, 0x64, 0x61, 0x74, 0x61, 0x20, 0x2b, 0x20, 0x31, 0x29, 0x20, 0x2b, 0x20, 0x6a, 0x29, 0x29, 0x3b, 0xd, 0xa, 0x9, 0x7d, 0xd, 0xa, 0xd, 0xa, 0x9, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x20, 0x6d, 0x73, 0x67, 0x3b, 0xd, 0xa, 0x7d, 0xd, 0xa, 0x23, 0x65, 0x6e, 0x64, 0x69, 0x66, 0xd, 0xa, 0xd, 0xa, 0xd, 0xa, 0x74, 0x79, 0x70, 0x65, 0x64, 0x65, 0x66, 0x20, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x20, 0x44, 0x65, 0x76, 0x48, 0x61, 0x73, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0xd, 0xa, 0x7b, 0xd, 0xa, 0x9, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x74, 0x20, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x3b, 0xd, 0xa, 0x9, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x74, 0x20, 0x76, 0x63, 0x70, 0x75, 0x2c, 0x20, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x3b, 0xd, 0xa, 0x7d, 0xd, 0xa, 0x44, 0x65, 0x76, 0x48, 0x61, 0x73, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x3b, 0xd, 0xa, 0xd, 0xa, 0xd, 0xa, 0x23, 0x69, 0x66, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x28, 0x5f, 0x5f, 0x43, 0x55, 0x44, 0x41, 0x43, 0x43, 0x5f, 0x5f, 0x29, 0x20, 0x7c, 0x7c, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x28, 0x5f, 0x5f, 0x4f, 0x50, 0x45, 0x4e, 0x43, 0x4c, 0x5f, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x5f, 0x29, 0xd, 0xa, 0xd, 0xa, 0x23, 0x69, 0x66, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x28, 0x5f, 0x5f, 0x4f, 0x50, 0x45, 0x4e, 0x43, 0x4c, 0x5f, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x5f, 0x29, 0xd, 0xa, 0x9, 0x5f, 0x5f, 0x6b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x20, 0x76, 0x6f, 0x69, 0x64, 0x20, 0x62, 0x69, 0x74, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x67, 0x70, 0x75, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x28, 0xd, 0xa, 0x9, 0x9, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x74, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x2c, 0x20, 0x5f, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x20, 0x4d, 0x73, 0x67, 0x44, 0x61, 0x74, 0x61, 0x20, 0x2a, 0x63, 0x5f, 0x6d, 0x73, 0x67, 0x2c, 0x20, 0x5f, 0x5f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x20, 0x44, 0x65, 0x76, 0x48, 0x61, 0x73, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x20, 0x2a, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0xd, 0xa, 0x9, 0x29, 0xd, 0xa, 0x23, 0x65, 0x6c, 0x73, 0x65, 0xd, 0xa, 0x9, 0x5f, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x5f, 0x5f, 0x20, 0x4d, 0x73, 0x67, 0x44, 0x61, 0x74, 0x61, 0x20, 0x63, 0x5f, 0x6d, 0x73, 0x67, 0x3b, 0xd, 0xa, 0x9, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x20, 0x22, 0x43, 0x22, 0x20, 0x5f, 0x5f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x5f, 0x20, 0x76, 0x6f, 0x69, 0x64, 0x20, 0x62, 0x69, 0x74, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x67, 0x70, 0x75, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x28, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x74, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x2c, 0x20, 0x44, 0x65, 0x76, 0x48, 0x61, 0x73, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x20, 0x2a, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x29, 0xd, 0xa, 0x23, 0x65, 0x6e, 0x64, 0x69, 0x66, 0xd, 0xa, 0x7b, 0xd, 0xa, 0x23, 0x69, 0x66, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x28, 0x5f, 0x5f, 0x4f, 0x50, 0x45, 0x4e, 0x43, 0x4c, 0x5f, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x5f, 0x29, 0xd, 0xa, 0x9, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x74, 0x20, 0x69, 0x64, 0x78, 0x20, 0x3d, 0x20, 0x67, 0x65, 0x74, 0x5f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x28, 0x30, 0x29, 0x3b, 0xd, 0xa, 0x9, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x74, 0x20, 0x76, 0x63, 0x70, 0x75, 0x20, 0x3d, 0x20, 0x67, 0x65, 0x74, 0x5f, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x28, 0x31, 0x29, 0x3b, 0xd, 0xa, 0xd, 0xa, 0x9, 0x5f, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x20, 0x4d, 0x73, 0x67, 0x44, 0x61, 0x74, 0x61, 0x20, 0x2a, 0x6d, 0x73, 0x67, 0x20, 0x3d, 0x20, 0x63, 0x5f, 0x6d, 0x73, 0x67, 0x3b, 0xd, 0xa, 0x9, 0x5f, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x20, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x20, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x44, 0x61, 0x74, 0x61, 0x20, 0x2a, 0x74, 0x68, 0x72, 0x64, 0x61, 0x74, 0x61, 0x20, 0x3d, 0x20, 0x26, 0x6d, 0x73, 0x67, 0x2d, 0x3e, 0x74, 0x68, 0x72, 0x64, 0x61, 0x74, 0x61, 0x5b, 0x76, 0x63, 0x70, 0x75, 0x5d, 0x3b, 0xd, 0xa, 0x23, 0x65, 0x6c, 0x73, 0x65, 0xd, 0xa, 0x9, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x74, 0x20, 0x69, 0x64, 0x78, 0x20, 0x3d, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x78, 0x2e, 0x78, 0x20, 0x2a, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x44, 0x69, 0x6d, 0x2e, 0x78, 0x20, 0x2b, 0x20, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x49, 0x64, 0x78, 0x2e, 0x78, 0x3b, 0xd, 0xa, 0x9, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x74, 0x20, 0x76, 0x63, 0x70, 0x75, 0x20, 0x3d, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x49, 0x64, 0x78, 0x2e, 0x79, 0x3b, 0xd, 0xa, 0xd, 0xa, 0x9, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x20, 0x4d, 0x73, 0x67, 0x44, 0x61, 0x74, 0x61, 0x20, 0x2a, 0x6d, 0x73, 0x67, 0x20, 0x3d, 0x20, 0x26, 0x63, 0x5f, 0x6d, 0x73, 0x67, 0x3b, 0xd, 0xa, 0x9, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x20, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x44, 0x61, 0x74, 0x61, 0x20, 0x2a, 0x74, 0x68, 0x72, 0x64, 0x61, 0x74, 0x61, 0x20, 0x3d, 0x20, 0x26, 0x63, 0x5f, 0x6d, 0x73, 0x67, 0x2e, 0x74, 0x68, 0x72, 0x64, 0x61, 0x74, 0x61, 0x5b, 0x76, 0x63, 0x70, 0x75, 0x5d, 0x3b, 0xd, 0xa, 0x23, 0x65, 0x6e, 0x64, 0x69, 0x66, 0xd, 0xa, 0xd, 0xa, 0x9, 0x76, 0x65, 0x63, 0x38, 0x75, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x20, 0x3d, 0x20, 0x74, 0x68, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x3e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x3b, 0xd, 0xa, 0xd, 0xa, 0x9, 0x76, 0x65, 0x63, 0x31, 0x36, 0x75, 0x20, 0x64, 0x61, 0x74, 0x61, 0x3b, 0xd, 0xa, 0x9, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x74, 0x20, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x20, 0x3d, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x20, 0x2b, 0x20, 0x69, 0x64, 0x78, 0x3b, 0xd, 0xa, 0xd, 0xa, 0x9, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x74, 0x20, 0x72, 0x64, 0x61, 0x74, 0x61, 0x36, 0x20, 0x3d, 0x20, 0x74, 0x68, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x3e, 0x72, 0x64, 0x61, 0x74, 0x61, 0x5b, 0x30, 0x5d, 0x2c, 0x20, 0x72, 0x64, 0x61, 0x74, 0x61, 0x37, 0x20, 0x3d, 0x20, 0x74, 0x68, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x3e, 0x72, 0x64, 0x61, 0x74, 0x61, 0x5b, 0x31, 0x5d, 0x2c, 0x20, 0x72, 0x64, 0x61, 0x74, 0x61, 0x38, 0x20, 0x3d, 0x20, 0x74, 0x68, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x3e, 0x72, 0x64, 0x61, 0x74, 0x61, 0x5b, 0x32, 0x5d, 0x3b, 0xd, 0xa, 0x9, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x74, 0x20, 0x72, 0x64, 0x61, 0x74, 0x61, 0x20, 0x3d, 0x20, 0x28, 0x28, 0x28, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x74, 0x29, 0x72, 0x64, 0x61, 0x74, 0x61, 0x36, 0x20, 0x3c, 0x3c, 0x20, 0x35, 0x36, 0x29, 0x20, 0x7c, 0x20, 0x28, 0x28, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x74, 0x29, 0x72, 0x64, 0x61, 0x74, 0x61, 0x37, 0x20, 0x3c, 0x3c, 0x20, 0x32, 0x34, 0x29, 0x20, 0x7c, 0x20, 0x28, 0x28, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, 0x74, 0x29, 0x72, 0x64, 0x61, 0x74, 0x61, 0x38, 0x20, 0x3e, 0x3e, 0x20, 0x38, 0x29, 0x29, 0x20, 0x2b, 0x20, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x3b, 0xd, 0xa, 0xd, 0xa, 0x9, 0x72, 0x64, 0x61, 0x74, 0x61, 0x36, 0x20, 0x3d, 0x20, 0x28, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x74, 0x29, 0x28, 0x72, 0x64, 0x61, 0x74, 0x61, 0x20, 0x3e, 0x3e, 0x20, 0x35, 0x36, 0x29, 0x20, 0x7c, 0x20, 0x28, 0x72, 0x64, 0x61, 0x74, 0x61, 0x36, 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x30, 0x30, 0x29, 0x3b, 0xd, 0xa, 0x9, 0x72, 0x64, 0x61, 0x74, 0x61, 0x37, 0x20, 0x3d, 0x20, 0x28, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x74, 0x29, 0x28, 0x72, 0x64, 0x61, 0x74, 0x61, 0x20, 0x3e, 0x3e, 0x20, 0x32, 0x34, 0x29, 0x3b, 0xd, 0xa, 0xd, 0xa, 0x9, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x74, 0x20, 0x72, 0x64, 0x61, 0x74, 0x61, 0x31, 0x30, 0x20, 0x3d, 0x20, 0x28, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x74, 0x29, 0x28, 0x72, 0x64, 0x61, 0x74, 0x61, 0x20, 0x3c, 0x3c, 0x20, 0x38, 0x29, 0x20, 0x7c, 0x20, 0x30, 0x78, 0x38, 0x30, 0x3b, 0xd, 0xa, 0x9, 0x72, 0x64, 0x61, 0x74, 0x61, 0x38, 0x20, 0x3d, 0x20, 0x28, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x74, 0x29, 0x28, 0x72, 0x64, 0x61, 0x74, 0x61, 0x20, 0x3c, 0x3c, 0x20, 0x38, 0x29, 0x20, 0x7c, 0x20, 0x28, 0x72, 0x64, 0x61, 0x74, 0x61, 0x38, 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, 0x29, 0x3b, 0xd, 0xa, 0xd, 0xa, 0x9, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x30, 0x78, 0x30, 0x5d, 0x20, 0x3d, 0x20, 0x72, 0x64, 0x61, 0x74, 0x61, 0x36, 0x3b, 0xd, 0xa, 0x9, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x30, 0x78, 0x31, 0x5d, 0x20, 0x3d, 0x20, 0x72, 0x64, 0x61, 0x74, 0x61, 0x37, 0x3b, 0xd, 0xa, 0x9, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x30, 0x78, 0x32, 0x5d, 0x20, 0x3d, 0x20, 0x72, 0x64, 0x61, 0x74, 0x61, 0x38, 0x3b, 0xd, 0xa, 0x9, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x30, 0x78, 0x33, 0x5d, 0x20, 0x3d, 0x20, 0x6d, 0x73, 0x67, 0x2d, 0x3e, 0x70, 0x73, 0x65, 0x65, 0x64, 0x5b, 0x30, 0x5d, 0x3b, 0xd, 0xa, 0x9, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x30, 0x78, 0x34, 0x5d, 0x20, 0x3d, 0x20, 0x6d, 0x73, 0x67, 0x2d, 0x3e, 0x70, 0x73, 0x65, 0x65, 0x64, 0x5b, 0x31, 0x5d, 0x3b, 0xd, 0xa, 0x9, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x30, 0x78, 0x35, 0x5d, 0x20, 0x3d, 0x20, 0x6d, 0x73, 0x67, 0x2d, 0x3e, 0x70, 0x73, 0x65, 0x65, 0x64, 0x5b, 0x32, 0x5d, 0x3b, 0xd, 0xa, 0x9, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x30, 0x78, 0x36, 0x5d, 0x20, 0x3d, 0x20, 0x74, 0x68, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x3e, 0x72, 0x64, 0x61, 0x74, 0x61, 0x5b, 0x33, 0x5d, 0x3b, 0xd, 0xa, 0x9, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x30, 0x78, 0x37, 0x5d, 0x20, 0x3d, 0x20, 0x74, 0x68, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x3e, 0x72, 0x64, 0x61, 0x74, 0x61, 0x5b, 0x34, 0x5d, 0x3b, 0xd, 0xa, 0x9, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x30, 0x78, 0x38, 0x5d, 0x20, 0x3d, 0x20, 0x74, 0x68, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x3e, 0x72, 0x64, 0x61, 0x74, 0x61, 0x5b, 0x35, 0x5d, 0x3b, 0xd, 0xa, 0x9, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x30, 0x78, 0x39, 0x5d, 0x20, 0x3d, 0x20, 0x74, 0x68, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x3e, 0x72, 0x64, 0x61, 0x74, 0x61, 0x5b, 0x36, 0x5d, 0x3b, 0xd, 0xa, 0x9, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x30, 0x78, 0x41, 0x5d, 0x20, 0x3d, 0x20, 0x74, 0x68, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x3e, 0x72, 0x64, 0x61, 0x74, 0x61, 0x5b, 0x37, 0x5d, 0x3b, 0xd, 0xa, 0x9, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x30, 0x78, 0x42, 0x5d, 0x20, 0x3d, 0x20, 0x74, 0x68, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2d, 0x3e, 0x72, 0x64, 0x61, 0x74, 0x61, 0x5b, 0x38, 0x5d, 0x3b, 0xd, 0xa, 0x9, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x30, 0x78, 0x43, 0x5d, 0x20, 0x3d, 0x20, 0x72, 0x64, 0x61, 0x74, 0x61, 0x36, 0x3b, 0xd, 0xa, 0x9, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x30, 0x78, 0x44, 0x5d, 0x20, 0x3d, 0x20, 0x72, 0x64, 0x61, 0x74, 0x61, 0x37, 0x3b, 0xd, 0xa, 0x9, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x30, 0x78, 0x45, 0x5d, 0x20, 0x3d, 0x20, 0x72, 0x64, 0x61, 0x74, 0x61, 0x31, 0x30, 0x3b, 0xd, 0xa, 0x9, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x30, 0x78, 0x46, 0x5d, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3b, 0xd, 0xa, 0xd, 0xa, 0x9, 0x2f, 0x2a, 0x69, 0x66, 0x20, 0x28, 0x76, 0x63, 0x70, 0x75, 0x20, 0x3d, 0x3d, 0x20, 0x30, 0x20, 0x26, 0x26, 0x20, 0x69, 0x64, 0x78, 0x20, 0x3d, 0x3d, 0x20, 0x30, 0x29, 0xd, 0xa, 0x9, 0x9, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x66, 0x28, 0xd, 0xa, 0x9, 0x9, 0x9, 0x22, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x5c, 0x6e, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x5c, 0x6e, 0x5c, 0x6e, 0x22, 0x2c, 0xd, 0xa, 0x9, 0x9, 0x9, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x30, 0x5d, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x31, 0x5d, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x32, 0x5d, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x33, 0x5d, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x34, 0x5d, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x35, 0x5d, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x36, 0x5d, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x37, 0x5d, 0x2c, 0xd, 0xa, 0x9, 0x9, 0x9, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x38, 0x5d, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x39, 0x5d, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x31, 0x30, 0x5d, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x31, 0x31, 0x5d, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x31, 0x32, 0x5d, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x31, 0x33, 0x5d, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x31, 0x34, 0x5d, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x31, 0x35, 0x5d, 0xd, 0xa, 0x9, 0x9, 0x29, 0x3b, 0x2a, 0x2f, 0xd, 0xa, 0xd, 0xa, 0x9, 0x73, 0x74, 0x61, 0x74, 0x65, 0x20, 0x3d, 0x20, 0x73, 0x68, 0x61, 0x32, 0x35, 0x36, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x28, 0x64, 0x61, 0x74, 0x61, 0x2c, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x29, 0x3b, 0xd, 0xa, 0xd, 0xa, 0x9, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x30, 0x78, 0x30, 0x5d, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3b, 0xd, 0xa, 0x9, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x30, 0x78, 0x31, 0x5d, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3b, 0xd, 0xa, 0x9, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x30, 0x78, 0x32, 0x5d, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3b, 0xd, 0xa, 0x9, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x30, 0x78, 0x33, 0x5d, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3b, 0xd, 0xa, 0x9, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x30, 0x78, 0x34, 0x5d, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3b, 0xd, 0xa, 0x9, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x30, 0x78, 0x35, 0x5d, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3b, 0xd, 0xa, 0x9, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x30, 0x78, 0x36, 0x5d, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3b, 0xd, 0xa, 0x9, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x30, 0x78, 0x37, 0x5d, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3b, 0xd, 0xa, 0x9, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x30, 0x78, 0x38, 0x5d, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3b, 0xd, 0xa, 0x9, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x30, 0x78, 0x39, 0x5d, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3b, 0xd, 0xa, 0x9, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x30, 0x78, 0x41, 0x5d, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3b, 0xd, 0xa, 0x9, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x30, 0x78, 0x42, 0x5d, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3b, 0xd, 0xa, 0x9, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x30, 0x78, 0x43, 0x5d, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3b, 0xd, 0xa, 0x9, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x30, 0x78, 0x44, 0x5d, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3b, 0xd, 0xa, 0x9, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x30, 0x78, 0x45, 0x5d, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3b, 0xd, 0xa, 0x9, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x30, 0x78, 0x46, 0x5d, 0x20, 0x3d, 0x20, 0x30, 0x78, 0x30, 0x30, 0x30, 0x30, 0x30, 0x33, 0x64, 0x38, 0x3b, 0xd, 0xa, 0xd, 0xa, 0x9, 0x2f, 0x2a, 0x69, 0x66, 0x20, 0x28, 0x76, 0x63, 0x70, 0x75, 0x20, 0x3d, 0x3d, 0x20, 0x30, 0x20, 0x26, 0x26, 0x20, 0x69, 0x64, 0x78, 0x20, 0x3d, 0x3d, 0x20, 0x30, 0x29, 0xd, 0xa, 0x9, 0x9, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x66, 0x28, 0xd, 0xa, 0x9, 0x9, 0x9, 0x22, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x5c, 0x6e, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x5c, 0x6e, 0x5c, 0x6e, 0x22, 0x2c, 0xd, 0xa, 0x9, 0x9, 0x9, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x30, 0x5d, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x31, 0x5d, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x32, 0x5d, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x33, 0x5d, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x34, 0x5d, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x35, 0x5d, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x36, 0x5d, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x37, 0x5d, 0x2c, 0xd, 0xa, 0x9, 0x9, 0x9, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x38, 0x5d, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x39, 0x5d, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x31, 0x30, 0x5d, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x31, 0x31, 0x5d, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x31, 0x32, 0x5d, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x31, 0x33, 0x5d, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x31, 0x34, 0x5d, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x5b, 0x31, 0x35, 0x5d, 0xd, 0xa, 0x9, 0x9, 0x29, 0x3b, 0x2a, 0x2f, 0xd, 0xa, 0xd, 0xa, 0x9, 0x73, 0x74, 0x61, 0x74, 0x65, 0x20, 0x3d, 0x20, 0x73, 0x68, 0x61, 0x32, 0x35, 0x36, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x6f, 0x72, 0x6d, 0x28, 0x64, 0x61, 0x74, 0x61, 0x2c, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x29, 0x3b, 0xd, 0xa, 0xd, 0xa, 0x9, 0x2f, 0x2a, 0x69, 0x66, 0x20, 0x28, 0x76, 0x63, 0x70, 0x75, 0x20, 0x3d, 0x3d, 0x20, 0x30, 0x20, 0x26, 0x26, 0x20, 0x69, 0x64, 0x78, 0x20, 0x3d, 0x3d, 0x20, 0x30, 0x29, 0xd, 0xa, 0x9, 0x9, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x66, 0x28, 0xd, 0xa, 0x9, 0x9, 0x9, 0x22, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x5c, 0x6e, 0x5c, 0x6e, 0x22, 0x2c, 0xd, 0xa, 0x9, 0x9, 0x9, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x76, 0x5b, 0x30, 0x5d, 0x2c, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x76, 0x5b, 0x31, 0x5d, 0x2c, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x76, 0x5b, 0x32, 0x5d, 0x2c, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x76, 0x5b, 0x33, 0x5d, 0x2c, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x76, 0x5b, 0x34, 0x5d, 0x2c, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x76, 0x5b, 0x35, 0x5d, 0x2c, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x76, 0x5b, 0x36, 0x5d, 0x2c, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x76, 0x5b, 0x37, 0x5d, 0xd, 0xa, 0x9, 0x9, 0x29, 0x3b, 0x2a, 0x2f, 0xd, 0xa, 0xd, 0xa, 0x9, 0x66, 0x6f, 0x72, 0x20, 0x28, 0x69, 0x6e, 0x74, 0x20, 0x69, 0x20, 0x3d, 0x20, 0x30, 0x3b, 0x20, 0x69, 0x20, 0x3c, 0x20, 0x38, 0x3b, 0x20, 0x69, 0x20, 0x2b, 0x3d, 0x20, 0x31, 0x29, 0xd, 0xa, 0x9, 0x7b, 0xd, 0xa, 0x9, 0x9, 0x69, 0x66, 0x20, 0x28, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x76, 0x5b, 0x69, 0x5d, 0x20, 0x3e, 0x20, 0x6d, 0x73, 0x67, 0x2d, 0x3e, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x2e, 0x76, 0x5b, 0x69, 0x5d, 0x29, 0xd, 0xa, 0x9, 0x9, 0x9, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x3b, 0xd, 0xa, 0xd, 0xa, 0x9, 0x9, 0x69, 0x66, 0x20, 0x28, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x76, 0x5b, 0x69, 0x5d, 0x20, 0x3c, 0x20, 0x6d, 0x73, 0x67, 0x2d, 0x3e, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x2e, 0x76, 0x5b, 0x69, 0x5d, 0x29, 0xd, 0xa, 0x9, 0x9, 0x7b, 0xd, 0xa, 0x23, 0x69, 0x66, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x28, 0x5f, 0x5f, 0x4f, 0x50, 0x45, 0x4e, 0x43, 0x4c, 0x5f, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x5f, 0x29, 0xd, 0xa, 0x9, 0x9, 0x9, 0x69, 0x66, 0x20, 0x28, 0x61, 0x74, 0x6f, 0x6d, 0x69, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x28, 0x26, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2d, 0x3e, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x2c, 0x20, 0x31, 0x29, 0x20, 0x3d, 0x3d, 0x20, 0x30, 0x29, 0xd, 0xa, 0x23, 0x65, 0x6c, 0x73, 0x65, 0xd, 0xa, 0x9, 0x9, 0x9, 0x69, 0x66, 0x20, 0x28, 0x61, 0x74, 0x6f, 0x6d, 0x69, 0x63, 0x41, 0x64, 0x64, 0x28, 0x26, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2d, 0x3e, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x2c, 0x20, 0x31, 0x29, 0x20, 0x3d, 0x3d, 0x20, 0x30, 0x29, 0xd, 0xa, 0x23, 0x65, 0x6e, 0x64, 0x69, 0x66, 0xd, 0xa, 0x9, 0x9, 0x9, 0x9, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2d, 0x3e, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x20, 0x3d, 0x20, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x2c, 0x20, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2d, 0x3e, 0x76, 0x63, 0x70, 0x75, 0x20, 0x3d, 0x20, 0x76, 0x63, 0x70, 0x75, 0x3b, 0xd, 0xa, 0xd, 0xa, 0x9, 0x9, 0x9, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x3b, 0xd, 0xa, 0x9, 0x9, 0x7d, 0xd, 0xa, 0x9, 0x7d, 0xd, 0xa, 0x7d, 0xd, 0xa, 0xd, 0xa, 0x23, 0x65, 0x6e, 0x64, 0x69, 0x66, 0xd, 0xa, 0xd, 0xa, 0xd, 0xa, 0x23, 0x65, 0x6e, 0x64, 0x69, 0x66, 0xd, 0xa}; +// unsigned int cruncher_h_len = 9417; +unsigned char cruncher_h[] = { + // 0x23, 0x69, 0x66, 0x6E, 0x64, 0x65, 0x66, 0x20, 0x5F, 0x5F, 0x43, 0x52, 0x55, 0x4E, 0x43, 0x48, 0x45, 0x52, 0x5F, 0x48, 0x5F, 0x5F, 0x0A, 0x23, 0x64, 0x65, 0x66, 0x69, 0x6E, 0x65, 0x20, 0x5F, 0x5F, 0x43, 0x52, 0x55, 0x4E, 0x43, 0x48, 0x45, 0x52, 0x5F, 0x48, 0x5F, 0x5F, 0x0A, 0x0A, 0x0A, 0x23, 0x64, 0x65, 0x66, 0x69, 0x6E, 0x65, 0x20, 0x4D, 0x41, 0x58, 0x5F, 0x47, 0x50, 0x55, 0x5F, 0x54, 0x48, 0x52, 0x45, 0x41, 0x44, 0x53, 0x20, 0x31, 0x36, 0x0A, 0x0A, 0x0A, 0x23, 0x69, 0x66, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6E, 0x65, 0x64, 0x28, 0x5F, 0x5F, 0x4F, 0x50, 0x45, 0x4E, 0x43, 0x4C, 0x5F, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4F, 0x4E, 0x5F, 0x5F, 0x29, 0x0A, 0x09, 0x74, 0x79, 0x70, 0x65, 0x64, 0x65, 0x66, 0x20, 0x75, 0x69, 0x6E, 0x74, 0x20, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x32, 0x5F, 0x74, 0x3B, 0x0A, 0x09, 0x74, 0x79, 0x70, 0x65, 0x64, 0x65, 0x66, 0x20, 0x75, 0x6C, 0x6F, 0x6E, 0x67, 0x20, 0x75, 0x69, 0x6E, 0x74, 0x36, 0x34, 0x5F, 0x74, 0x3B, 0x0A, 0x23, 0x65, 0x6C, 0x73, 0x65, 0x0A, 0x09, 0x23, 0x69, 0x66, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6E, 0x65, 0x64, 0x28, 0x5F, 0x5F, 0x4E, 0x56, 0x43, 0x43, 0x5F, 0x5F, 0x29, 0x0A, 0x09, 0x09, 0x23, 0x69, 0x6E, 0x63, 0x6C, 0x75, 0x64, 0x65, 0x20, 0x3C, 0x63, 0x75, 0x64, 0x61, 0x5F, 0x72, 0x75, 0x6E, 0x74, 0x69, 0x6D, 0x65, 0x2E, 0x68, 0x3E, 0x0A, 0x09, 0x09, 0x23, 0x69, 0x6E, 0x63, 0x6C, 0x75, 0x64, 0x65, 0x20, 0x3C, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5F, 0x6C, 0x61, 0x75, 0x6E, 0x63, 0x68, 0x5F, 0x70, 0x61, 0x72, 0x61, 0x6D, 0x65, 0x74, 0x65, 0x72, 0x73, 0x2E, 0x68, 0x3E, 0x0A, 0x09, 0x23, 0x65, 0x6E, 0x64, 0x69, 0x66, 0x0A, 0x0A, 0x09, 0x23, 0x69, 0x6E, 0x63, 0x6C, 0x75, 0x64, 0x65, 0x20, 0x3C, 0x73, 0x74, 0x64, 0x69, 0x6E, 0x74, 0x2E, 0x68, 0x3E, 0x0A, 0x23, 0x65, 0x6E, 0x64, 0x69, 0x66, 0x0A, 0x0A, 0x0A, 0x23, 0x64, 0x65, 0x66, 0x69, 0x6E, 0x65, 0x20, 0x52, 0x4F, 0x54, 0x52, 0x49, 0x47, 0x48, 0x54, 0x28, 0x61, 0x2C, 0x20, 0x62, 0x29, 0x20, 0x28, 0x28, 0x28, 0x61, 0x29, 0x20, 0x3E, 0x3E, 0x20, 0x28, 0x62, 0x29, 0x29, 0x20, 0x7C, 0x20, 0x28, 0x28, 0x61, 0x29, 0x20, 0x3C, 0x3C, 0x20, 0x28, 0x33, 0x32, 0x20, 0x2D, 0x20, 0x28, 0x62, 0x29, 0x29, 0x29, 0x29, 0x0A, 0x0A, 0x23, 0x64, 0x65, 0x66, 0x69, 0x6E, 0x65, 0x20, 0x43, 0x48, 0x28, 0x78, 0x2C, 0x20, 0x79, 0x2C, 0x20, 0x7A, 0x29, 0x20, 0x28, 0x28, 0x28, 0x78, 0x29, 0x20, 0x26, 0x20, 0x28, 0x79, 0x29, 0x29, 0x20, 0x5E, 0x20, 0x28, 0x7E, 0x28, 0x78, 0x29, 0x20, 0x26, 0x20, 0x28, 0x7A, 0x29, 0x29, 0x29, 0x0A, 0x23, 0x64, 0x65, 0x66, 0x69, 0x6E, 0x65, 0x20, 0x4D, 0x41, 0x4A, 0x28, 0x78, 0x2C, 0x20, 0x79, 0x2C, 0x20, 0x7A, 0x29, 0x20, 0x28, 0x28, 0x28, 0x78, 0x29, 0x20, 0x26, 0x20, 0x28, 0x79, 0x29, 0x29, 0x20, 0x5E, 0x20, 0x28, 0x28, 0x78, 0x29, 0x20, 0x26, 0x20, 0x28, 0x7A, 0x29, 0x29, 0x20, 0x5E, 0x20, 0x28, 0x28, 0x79, 0x29, 0x20, 0x26, 0x20, 0x28, 0x7A, 0x29, 0x29, 0x29, 0x0A, 0x23, 0x64, 0x65, 0x66, 0x69, 0x6E, 0x65, 0x20, 0x45, 0x50, 0x30, 0x28, 0x78, 0x29, 0x20, 0x28, 0x52, 0x4F, 0x54, 0x52, 0x49, 0x47, 0x48, 0x54, 0x28, 0x78, 0x2C, 0x20, 0x32, 0x29, 0x20, 0x5E, 0x20, 0x52, 0x4F, 0x54, 0x52, 0x49, 0x47, 0x48, 0x54, 0x28, 0x78, 0x2C, 0x20, 0x31, 0x33, 0x29, 0x20, 0x5E, 0x20, 0x52, 0x4F, 0x54, 0x52, 0x49, 0x47, 0x48, 0x54, 0x28, 0x78, 0x2C, 0x20, 0x32, 0x32, 0x29, 0x29, 0x0A, 0x23, 0x64, 0x65, 0x66, 0x69, 0x6E, 0x65, 0x20, 0x45, 0x50, 0x31, 0x28, 0x78, 0x29, 0x20, 0x28, 0x52, 0x4F, 0x54, 0x52, 0x49, 0x47, 0x48, 0x54, 0x28, 0x78, 0x2C, 0x20, 0x36, 0x29, 0x20, 0x5E, 0x20, 0x52, 0x4F, 0x54, 0x52, 0x49, 0x47, 0x48, 0x54, 0x28, 0x78, 0x2C, 0x20, 0x31, 0x31, 0x29, 0x20, 0x5E, 0x20, 0x52, 0x4F, 0x54, 0x52, 0x49, 0x47, 0x48, 0x54, 0x28, 0x78, 0x2C, 0x20, 0x32, 0x35, 0x29, 0x29, 0x0A, 0x23, 0x64, 0x65, 0x66, 0x69, 0x6E, 0x65, 0x20, 0x53, 0x49, 0x47, 0x30, 0x28, 0x78, 0x29, 0x20, 0x28, 0x52, 0x4F, 0x54, 0x52, 0x49, 0x47, 0x48, 0x54, 0x28, 0x78, 0x2C, 0x20, 0x37, 0x29, 0x20, 0x5E, 0x20, 0x52, 0x4F, 0x54, 0x52, 0x49, 0x47, 0x48, 0x54, 0x28, 0x78, 0x2C, 0x20, 0x31, 0x38, 0x29, 0x20, 0x5E, 0x20, 0x28, 0x28, 0x78, 0x29, 0x20, 0x3E, 0x3E, 0x20, 0x33, 0x29, 0x29, 0x0A, 0x23, 0x64, 0x65, 0x66, 0x69, 0x6E, 0x65, 0x20, 0x53, 0x49, 0x47, 0x31, 0x28, 0x78, 0x29, 0x20, 0x28, 0x52, 0x4F, 0x54, 0x52, 0x49, 0x47, 0x48, 0x54, 0x28, 0x78, 0x2C, 0x20, 0x31, 0x37, 0x29, 0x20, 0x5E, 0x20, 0x52, 0x4F, 0x54, 0x52, 0x49, 0x47, 0x48, 0x54, 0x28, 0x78, 0x2C, 0x20, 0x31, 0x39, 0x29, 0x20, 0x5E, 0x20, 0x28, 0x28, 0x78, 0x29, 0x20, 0x3E, 0x3E, 0x20, 0x31, 0x30, 0x29, 0x29, 0x0A, 0x0A, 0x0A, 0x74, 0x79, 0x70, 0x65, 0x64, 0x65, 0x66, 0x20, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x20, 0x76, 0x65, 0x63, 0x38, 0x75, 0x0A, 0x7B, 0x0A, 0x09, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x32, 0x5F, 0x74, 0x20, 0x76, 0x5B, 0x38, 0x5D, 0x3B, 0x0A, 0x7D, 0x0A, 0x76, 0x65, 0x63, 0x38, 0x75, 0x3B, 0x0A, 0x0A, 0x0A, 0x74, 0x79, 0x70, 0x65, 0x64, 0x65, 0x66, 0x20, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x20, 0x76, 0x65, 0x63, 0x31, 0x36, 0x75, 0x0A, 0x7B, 0x0A, 0x09, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x32, 0x5F, 0x74, 0x20, 0x76, 0x5B, 0x31, 0x36, 0x5D, 0x3B, 0x0A, 0x7D, 0x0A, 0x76, 0x65, 0x63, 0x31, 0x36, 0x75, 0x3B, 0x0A, 0x0A, 0x0A, 0x74, 0x79, 0x70, 0x65, 0x64, 0x65, 0x66, 0x20, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x20, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x44, 0x61, 0x74, 0x61, 0x0A, 0x7B, 0x0A, 0x09, 0x76, 0x65, 0x63, 0x38, 0x75, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x3B, 0x0A, 0x09, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x32, 0x5F, 0x74, 0x20, 0x72, 0x64, 0x61, 0x74, 0x61, 0x5B, 0x39, 0x5D, 0x3B, 0x0A, 0x7D, 0x0A, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x44, 0x61, 0x74, 0x61, 0x3B, 0x0A, 0x0A, 0x0A, 0x74, 0x79, 0x70, 0x65, 0x64, 0x65, 0x66, 0x20, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x20, 0x4D, 0x73, 0x67, 0x44, 0x61, 0x74, 0x61, 0x0A, 0x7B, 0x0A, 0x09, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x32, 0x5F, 0x74, 0x20, 0x70, 0x73, 0x65, 0x65, 0x64, 0x5B, 0x33, 0x5D, 0x3B, 0x0A, 0x09, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x44, 0x61, 0x74, 0x61, 0x20, 0x74, 0x68, 0x72, 0x64, 0x61, 0x74, 0x61, 0x5B, 0x4D, 0x41, 0x58, 0x5F, 0x47, 0x50, 0x55, 0x5F, 0x54, 0x48, 0x52, 0x45, 0x41, 0x44, 0x53, 0x5D, 0x3B, 0x0A, 0x09, 0x76, 0x65, 0x63, 0x38, 0x75, 0x20, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x3B, 0x0A, 0x7D, 0x0A, 0x4D, 0x73, 0x67, 0x44, 0x61, 0x74, 0x61, 0x3B, 0x0A, 0x0A, 0x0A, 0x23, 0x69, 0x66, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6E, 0x65, 0x64, 0x28, 0x5F, 0x5F, 0x4E, 0x56, 0x43, 0x43, 0x5F, 0x5F, 0x29, 0x0A, 0x5F, 0x5F, 0x66, 0x6F, 0x72, 0x63, 0x65, 0x69, 0x6E, 0x6C, 0x69, 0x6E, 0x65, 0x5F, 0x5F, 0x20, 0x5F, 0x5F, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5F, 0x5F, 0x20, 0x5F, 0x5F, 0x68, 0x6F, 0x73, 0x74, 0x5F, 0x5F, 0x0A, 0x23, 0x65, 0x6C, 0x73, 0x65, 0x0A, 0x69, 0x6E, 0x6C, 0x69, 0x6E, 0x65, 0x0A, 0x23, 0x65, 0x6E, 0x64, 0x69, 0x66, 0x0A, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x20, 0x76, 0x65, 0x63, 0x38, 0x75, 0x20, 0x73, 0x68, 0x61, 0x32, 0x35, 0x36, 0x5F, 0x74, 0x72, 0x61, 0x6E, 0x73, 0x66, 0x6F, 0x72, 0x6D, 0x28, 0x76, 0x65, 0x63, 0x31, 0x36, 0x75, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2C, 0x20, 0x76, 0x65, 0x63, 0x38, 0x75, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x29, 0x0A, 0x7B, 0x0A, 0x09, 0x63, 0x6F, 0x6E, 0x73, 0x74, 0x20, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x32, 0x5F, 0x74, 0x20, 0x6B, 0x73, 0x68, 0x61, 0x5B, 0x5D, 0x20, 0x3D, 0x20, 0x7B, 0x0A, 0x09, 0x09, 0x30, 0x78, 0x34, 0x32, 0x38, 0x41, 0x32, 0x46, 0x39, 0x38, 0x2C, 0x20, 0x30, 0x78, 0x37, 0x31, 0x33, 0x37, 0x34, 0x34, 0x39, 0x31, 0x2C, 0x20, 0x30, 0x78, 0x42, 0x35, 0x43, 0x30, 0x46, 0x42, 0x43, 0x46, 0x2C, 0x20, 0x30, 0x78, 0x45, 0x39, 0x42, 0x35, 0x44, 0x42, 0x41, 0x35, 0x2C, 0x20, 0x30, 0x78, 0x33, 0x39, 0x35, 0x36, 0x43, 0x32, 0x35, 0x42, 0x2C, 0x20, 0x30, 0x78, 0x35, 0x39, 0x46, 0x31, 0x31, 0x31, 0x46, 0x31, 0x2C, 0x20, 0x30, 0x78, 0x39, 0x32, 0x33, 0x46, 0x38, 0x32, 0x41, 0x34, 0x2C, 0x20, 0x30, 0x78, 0x41, 0x42, 0x31, 0x43, 0x35, 0x45, 0x44, 0x35, 0x2C, 0x0A, 0x09, 0x09, 0x30, 0x78, 0x44, 0x38, 0x30, 0x37, 0x41, 0x41, 0x39, 0x38, 0x2C, 0x20, 0x30, 0x78, 0x31, 0x32, 0x38, 0x33, 0x35, 0x42, 0x30, 0x31, 0x2C, 0x20, 0x30, 0x78, 0x32, 0x34, 0x33, 0x31, 0x38, 0x35, 0x42, 0x45, 0x2C, 0x20, 0x30, 0x78, 0x35, 0x35, 0x30, 0x43, 0x37, 0x44, 0x43, 0x33, 0x2C, 0x20, 0x30, 0x78, 0x37, 0x32, 0x42, 0x45, 0x35, 0x44, 0x37, 0x34, 0x2C, 0x20, 0x30, 0x78, 0x38, 0x30, 0x44, 0x45, 0x42, 0x31, 0x46, 0x45, 0x2C, 0x20, 0x30, 0x78, 0x39, 0x42, 0x44, 0x43, 0x30, 0x36, 0x41, 0x37, 0x2C, 0x20, 0x30, 0x78, 0x43, 0x31, 0x39, 0x42, 0x46, 0x31, 0x37, 0x34, 0x2C, 0x0A, 0x09, 0x09, 0x30, 0x78, 0x45, 0x34, 0x39, 0x42, 0x36, 0x39, 0x43, 0x31, 0x2C, 0x20, 0x30, 0x78, 0x45, 0x46, 0x42, 0x45, 0x34, 0x37, 0x38, 0x36, 0x2C, 0x20, 0x30, 0x78, 0x30, 0x46, 0x43, 0x31, 0x39, 0x44, 0x43, 0x36, 0x2C, 0x20, 0x30, 0x78, 0x32, 0x34, 0x30, 0x43, 0x41, 0x31, 0x43, 0x43, 0x2C, 0x20, 0x30, 0x78, 0x32, 0x44, 0x45, 0x39, 0x32, 0x43, 0x36, 0x46, 0x2C, 0x20, 0x30, 0x78, 0x34, 0x41, 0x37, 0x34, 0x38, 0x34, 0x41, 0x41, 0x2C, 0x20, 0x30, 0x78, 0x35, 0x43, 0x42, 0x30, 0x41, 0x39, 0x44, 0x43, 0x2C, 0x20, 0x30, 0x78, 0x37, 0x36, 0x46, 0x39, 0x38, 0x38, 0x44, 0x41, 0x2C, 0x0A, 0x09, 0x09, 0x30, 0x78, 0x39, 0x38, 0x33, 0x45, 0x35, 0x31, 0x35, 0x32, 0x2C, 0x20, 0x30, 0x78, 0x41, 0x38, 0x33, 0x31, 0x43, 0x36, 0x36, 0x44, 0x2C, 0x20, 0x30, 0x78, 0x42, 0x30, 0x30, 0x33, 0x32, 0x37, 0x43, 0x38, 0x2C, 0x20, 0x30, 0x78, 0x42, 0x46, 0x35, 0x39, 0x37, 0x46, 0x43, 0x37, 0x2C, 0x20, 0x30, 0x78, 0x43, 0x36, 0x45, 0x30, 0x30, 0x42, 0x46, 0x33, 0x2C, 0x20, 0x30, 0x78, 0x44, 0x35, 0x41, 0x37, 0x39, 0x31, 0x34, 0x37, 0x2C, 0x20, 0x30, 0x78, 0x30, 0x36, 0x43, 0x41, 0x36, 0x33, 0x35, 0x31, 0x2C, 0x20, 0x30, 0x78, 0x31, 0x34, 0x32, 0x39, 0x32, 0x39, 0x36, 0x37, 0x2C, 0x0A, 0x09, 0x09, 0x30, 0x78, 0x32, 0x37, 0x42, 0x37, 0x30, 0x41, 0x38, 0x35, 0x2C, 0x20, 0x30, 0x78, 0x32, 0x45, 0x31, 0x42, 0x32, 0x31, 0x33, 0x38, 0x2C, 0x20, 0x30, 0x78, 0x34, 0x44, 0x32, 0x43, 0x36, 0x44, 0x46, 0x43, 0x2C, 0x20, 0x30, 0x78, 0x35, 0x33, 0x33, 0x38, 0x30, 0x44, 0x31, 0x33, 0x2C, 0x20, 0x30, 0x78, 0x36, 0x35, 0x30, 0x41, 0x37, 0x33, 0x35, 0x34, 0x2C, 0x20, 0x30, 0x78, 0x37, 0x36, 0x36, 0x41, 0x30, 0x41, 0x42, 0x42, 0x2C, 0x20, 0x30, 0x78, 0x38, 0x31, 0x43, 0x32, 0x43, 0x39, 0x32, 0x45, 0x2C, 0x20, 0x30, 0x78, 0x39, 0x32, 0x37, 0x32, 0x32, 0x43, 0x38, 0x35, 0x2C, 0x0A, 0x09, 0x09, 0x30, 0x78, 0x41, 0x32, 0x42, 0x46, 0x45, 0x38, 0x41, 0x31, 0x2C, 0x20, 0x30, 0x78, 0x41, 0x38, 0x31, 0x41, 0x36, 0x36, 0x34, 0x42, 0x2C, 0x20, 0x30, 0x78, 0x43, 0x32, 0x34, 0x42, 0x38, 0x42, 0x37, 0x30, 0x2C, 0x20, 0x30, 0x78, 0x43, 0x37, 0x36, 0x43, 0x35, 0x31, 0x41, 0x33, 0x2C, 0x20, 0x30, 0x78, 0x44, 0x31, 0x39, 0x32, 0x45, 0x38, 0x31, 0x39, 0x2C, 0x20, 0x30, 0x78, 0x44, 0x36, 0x39, 0x39, 0x30, 0x36, 0x32, 0x34, 0x2C, 0x20, 0x30, 0x78, 0x46, 0x34, 0x30, 0x45, 0x33, 0x35, 0x38, 0x35, 0x2C, 0x20, 0x30, 0x78, 0x31, 0x30, 0x36, 0x41, 0x41, 0x30, 0x37, 0x30, 0x2C, 0x0A, 0x09, 0x09, 0x30, 0x78, 0x31, 0x39, 0x41, 0x34, 0x43, 0x31, 0x31, 0x36, 0x2C, 0x20, 0x30, 0x78, 0x31, 0x45, 0x33, 0x37, 0x36, 0x43, 0x30, 0x38, 0x2C, 0x20, 0x30, 0x78, 0x32, 0x37, 0x34, 0x38, 0x37, 0x37, 0x34, 0x43, 0x2C, 0x20, 0x30, 0x78, 0x33, 0x34, 0x42, 0x30, 0x42, 0x43, 0x42, 0x35, 0x2C, 0x20, 0x30, 0x78, 0x33, 0x39, 0x31, 0x43, 0x30, 0x43, 0x42, 0x33, 0x2C, 0x20, 0x30, 0x78, 0x34, 0x45, 0x44, 0x38, 0x41, 0x41, 0x34, 0x41, 0x2C, 0x20, 0x30, 0x78, 0x35, 0x42, 0x39, 0x43, 0x43, 0x41, 0x34, 0x46, 0x2C, 0x20, 0x30, 0x78, 0x36, 0x38, 0x32, 0x45, 0x36, 0x46, 0x46, 0x33, 0x2C, 0x0A, 0x09, 0x09, 0x30, 0x78, 0x37, 0x34, 0x38, 0x46, 0x38, 0x32, 0x45, 0x45, 0x2C, 0x20, 0x30, 0x78, 0x37, 0x38, 0x41, 0x35, 0x36, 0x33, 0x36, 0x46, 0x2C, 0x20, 0x30, 0x78, 0x38, 0x34, 0x43, 0x38, 0x37, 0x38, 0x31, 0x34, 0x2C, 0x20, 0x30, 0x78, 0x38, 0x43, 0x43, 0x37, 0x30, 0x32, 0x30, 0x38, 0x2C, 0x20, 0x30, 0x78, 0x39, 0x30, 0x42, 0x45, 0x46, 0x46, 0x46, 0x41, 0x2C, 0x20, 0x30, 0x78, 0x41, 0x34, 0x35, 0x30, 0x36, 0x43, 0x45, 0x42, 0x2C, 0x20, 0x30, 0x78, 0x42, 0x45, 0x46, 0x39, 0x41, 0x33, 0x46, 0x37, 0x2C, 0x20, 0x30, 0x78, 0x43, 0x36, 0x37, 0x31, 0x37, 0x38, 0x46, 0x32, 0x0A, 0x09, 0x7D, 0x3B, 0x0A, 0x0A, 0x09, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x32, 0x5F, 0x74, 0x20, 0x6D, 0x5B, 0x36, 0x34, 0x5D, 0x3B, 0x0A, 0x0A, 0x09, 0x66, 0x6F, 0x72, 0x20, 0x28, 0x69, 0x6E, 0x74, 0x20, 0x69, 0x20, 0x3D, 0x20, 0x30, 0x3B, 0x20, 0x69, 0x20, 0x3C, 0x20, 0x31, 0x36, 0x3B, 0x20, 0x69, 0x20, 0x2B, 0x3D, 0x20, 0x31, 0x29, 0x0A, 0x09, 0x09, 0x6D, 0x5B, 0x69, 0x5D, 0x20, 0x3D, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x69, 0x5D, 0x3B, 0x0A, 0x0A, 0x09, 0x66, 0x6F, 0x72, 0x20, 0x28, 0x69, 0x6E, 0x74, 0x20, 0x69, 0x20, 0x3D, 0x20, 0x31, 0x36, 0x3B, 0x20, 0x69, 0x20, 0x3C, 0x20, 0x36, 0x34, 0x3B, 0x20, 0x69, 0x20, 0x2B, 0x3D, 0x20, 0x31, 0x29, 0x0A, 0x09, 0x09, 0x6D, 0x5B, 0x69, 0x5D, 0x20, 0x3D, 0x20, 0x53, 0x49, 0x47, 0x31, 0x28, 0x6D, 0x5B, 0x69, 0x20, 0x2D, 0x20, 0x32, 0x5D, 0x29, 0x20, 0x2B, 0x20, 0x6D, 0x5B, 0x69, 0x20, 0x2D, 0x20, 0x37, 0x5D, 0x20, 0x2B, 0x20, 0x53, 0x49, 0x47, 0x30, 0x28, 0x6D, 0x5B, 0x69, 0x20, 0x2D, 0x20, 0x31, 0x35, 0x5D, 0x29, 0x20, 0x2B, 0x20, 0x6D, 0x5B, 0x69, 0x20, 0x2D, 0x20, 0x31, 0x36, 0x5D, 0x3B, 0x0A, 0x0A, 0x09, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x32, 0x5F, 0x74, 0x20, 0x61, 0x20, 0x3D, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x30, 0x5D, 0x2C, 0x20, 0x62, 0x20, 0x3D, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x31, 0x5D, 0x2C, 0x20, 0x63, 0x20, 0x3D, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x32, 0x5D, 0x2C, 0x20, 0x64, 0x20, 0x3D, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x33, 0x5D, 0x3B, 0x0A, 0x09, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x32, 0x5F, 0x74, 0x20, 0x65, 0x20, 0x3D, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x34, 0x5D, 0x2C, 0x20, 0x66, 0x20, 0x3D, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x35, 0x5D, 0x2C, 0x20, 0x67, 0x20, 0x3D, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x36, 0x5D, 0x2C, 0x20, 0x68, 0x20, 0x3D, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x37, 0x5D, 0x3B, 0x0A, 0x0A, 0x23, 0x69, 0x66, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6E, 0x65, 0x64, 0x28, 0x5F, 0x5F, 0x43, 0x55, 0x44, 0x41, 0x5F, 0x41, 0x52, 0x43, 0x48, 0x5F, 0x5F, 0x29, 0x20, 0x7C, 0x7C, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6E, 0x65, 0x64, 0x28, 0x5F, 0x5F, 0x4F, 0x50, 0x45, 0x4E, 0x43, 0x4C, 0x5F, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4F, 0x4E, 0x5F, 0x5F, 0x29, 0x0A, 0x09, 0x23, 0x70, 0x72, 0x61, 0x67, 0x6D, 0x61, 0x20, 0x75, 0x6E, 0x72, 0x6F, 0x6C, 0x6C, 0x0A, 0x23, 0x65, 0x6E, 0x64, 0x69, 0x66, 0x0A, 0x09, 0x66, 0x6F, 0x72, 0x20, 0x28, 0x69, 0x6E, 0x74, 0x20, 0x69, 0x20, 0x3D, 0x20, 0x30, 0x3B, 0x20, 0x69, 0x20, 0x3C, 0x20, 0x36, 0x34, 0x3B, 0x20, 0x69, 0x20, 0x2B, 0x3D, 0x20, 0x31, 0x29, 0x0A, 0x09, 0x7B, 0x0A, 0x09, 0x09, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x32, 0x5F, 0x74, 0x20, 0x74, 0x31, 0x20, 0x3D, 0x20, 0x68, 0x20, 0x2B, 0x20, 0x45, 0x50, 0x31, 0x28, 0x65, 0x29, 0x20, 0x2B, 0x20, 0x43, 0x48, 0x28, 0x65, 0x2C, 0x20, 0x66, 0x2C, 0x20, 0x67, 0x29, 0x20, 0x2B, 0x20, 0x6B, 0x73, 0x68, 0x61, 0x5B, 0x69, 0x5D, 0x20, 0x2B, 0x20, 0x6D, 0x5B, 0x69, 0x5D, 0x3B, 0x0A, 0x09, 0x09, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x32, 0x5F, 0x74, 0x20, 0x74, 0x32, 0x20, 0x3D, 0x20, 0x45, 0x50, 0x30, 0x28, 0x61, 0x29, 0x20, 0x2B, 0x20, 0x4D, 0x41, 0x4A, 0x28, 0x61, 0x2C, 0x20, 0x62, 0x2C, 0x20, 0x63, 0x29, 0x3B, 0x0A, 0x09, 0x09, 0x68, 0x20, 0x3D, 0x20, 0x67, 0x3B, 0x0A, 0x09, 0x09, 0x67, 0x20, 0x3D, 0x20, 0x66, 0x3B, 0x0A, 0x09, 0x09, 0x66, 0x20, 0x3D, 0x20, 0x65, 0x3B, 0x0A, 0x09, 0x09, 0x65, 0x20, 0x3D, 0x20, 0x64, 0x20, 0x2B, 0x20, 0x74, 0x31, 0x3B, 0x0A, 0x09, 0x09, 0x64, 0x20, 0x3D, 0x20, 0x63, 0x3B, 0x0A, 0x09, 0x09, 0x63, 0x20, 0x3D, 0x20, 0x62, 0x3B, 0x0A, 0x09, 0x09, 0x62, 0x20, 0x3D, 0x20, 0x61, 0x3B, 0x0A, 0x09, 0x09, 0x61, 0x20, 0x3D, 0x20, 0x74, 0x31, 0x20, 0x2B, 0x20, 0x74, 0x32, 0x3B, 0x0A, 0x09, 0x7D, 0x0A, 0x0A, 0x09, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x30, 0x5D, 0x20, 0x2B, 0x3D, 0x20, 0x61, 0x2C, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x31, 0x5D, 0x20, 0x2B, 0x3D, 0x20, 0x62, 0x2C, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x32, 0x5D, 0x20, 0x2B, 0x3D, 0x20, 0x63, 0x2C, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x33, 0x5D, 0x20, 0x2B, 0x3D, 0x20, 0x64, 0x3B, 0x0A, 0x09, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x34, 0x5D, 0x20, 0x2B, 0x3D, 0x20, 0x65, 0x2C, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x35, 0x5D, 0x20, 0x2B, 0x3D, 0x20, 0x66, 0x2C, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x36, 0x5D, 0x20, 0x2B, 0x3D, 0x20, 0x67, 0x2C, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x37, 0x5D, 0x20, 0x2B, 0x3D, 0x20, 0x68, 0x3B, 0x0A, 0x0A, 0x09, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6E, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x3B, 0x0A, 0x7D, 0x0A, 0x0A, 0x23, 0x69, 0x66, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6E, 0x65, 0x64, 0x28, 0x5F, 0x5F, 0x4E, 0x56, 0x43, 0x43, 0x5F, 0x5F, 0x29, 0x0A, 0x5F, 0x5F, 0x66, 0x6F, 0x72, 0x63, 0x65, 0x69, 0x6E, 0x6C, 0x69, 0x6E, 0x65, 0x5F, 0x5F, 0x20, 0x5F, 0x5F, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5F, 0x5F, 0x20, 0x5F, 0x5F, 0x68, 0x6F, 0x73, 0x74, 0x5F, 0x5F, 0x0A, 0x23, 0x65, 0x6C, 0x73, 0x65, 0x0A, 0x69, 0x6E, 0x6C, 0x69, 0x6E, 0x65, 0x0A, 0x23, 0x65, 0x6E, 0x64, 0x69, 0x66, 0x0A, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x20, 0x76, 0x65, 0x63, 0x38, 0x75, 0x20, 0x73, 0x68, 0x61, 0x32, 0x35, 0x36, 0x5F, 0x74, 0x72, 0x61, 0x6E, 0x73, 0x66, 0x6F, 0x72, 0x6D, 0x5F, 0x32, 0x28, 0x76, 0x65, 0x63, 0x31, 0x36, 0x75, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2C, 0x20, 0x76, 0x65, 0x63, 0x38, 0x75, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x29, 0x0A, 0x7B, 0x0A, 0x09, 0x63, 0x6F, 0x6E, 0x73, 0x74, 0x20, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x32, 0x5F, 0x74, 0x20, 0x6B, 0x73, 0x68, 0x61, 0x5B, 0x5D, 0x20, 0x3D, 0x20, 0x7B, 0x0A, 0x09, 0x09, 0x30, 0x78, 0x34, 0x32, 0x38, 0x41, 0x32, 0x46, 0x39, 0x38, 0x2C, 0x20, 0x30, 0x78, 0x37, 0x31, 0x33, 0x37, 0x34, 0x34, 0x39, 0x31, 0x2C, 0x20, 0x30, 0x78, 0x42, 0x35, 0x43, 0x30, 0x46, 0x42, 0x43, 0x46, 0x2C, 0x20, 0x30, 0x78, 0x45, 0x39, 0x42, 0x35, 0x44, 0x42, 0x41, 0x35, 0x2C, 0x20, 0x30, 0x78, 0x33, 0x39, 0x35, 0x36, 0x43, 0x32, 0x35, 0x42, 0x2C, 0x20, 0x30, 0x78, 0x35, 0x39, 0x46, 0x31, 0x31, 0x31, 0x46, 0x31, 0x2C, 0x20, 0x30, 0x78, 0x39, 0x32, 0x33, 0x46, 0x38, 0x32, 0x41, 0x34, 0x2C, 0x20, 0x30, 0x78, 0x41, 0x42, 0x31, 0x43, 0x35, 0x45, 0x44, 0x35, 0x2C, 0x0A, 0x09, 0x09, 0x30, 0x78, 0x44, 0x38, 0x30, 0x37, 0x41, 0x41, 0x39, 0x38, 0x2C, 0x20, 0x30, 0x78, 0x31, 0x32, 0x38, 0x33, 0x35, 0x42, 0x30, 0x31, 0x2C, 0x20, 0x30, 0x78, 0x32, 0x34, 0x33, 0x31, 0x38, 0x35, 0x42, 0x45, 0x2C, 0x20, 0x30, 0x78, 0x35, 0x35, 0x30, 0x43, 0x37, 0x44, 0x43, 0x33, 0x2C, 0x20, 0x30, 0x78, 0x37, 0x32, 0x42, 0x45, 0x35, 0x44, 0x37, 0x34, 0x2C, 0x20, 0x30, 0x78, 0x38, 0x30, 0x44, 0x45, 0x42, 0x31, 0x46, 0x45, 0x2C, 0x20, 0x30, 0x78, 0x39, 0x42, 0x44, 0x43, 0x30, 0x36, 0x41, 0x37, 0x2C, 0x20, 0x30, 0x78, 0x43, 0x31, 0x39, 0x42, 0x46, 0x31, 0x37, 0x34, 0x2C, 0x0A, 0x09, 0x09, 0x30, 0x78, 0x45, 0x34, 0x39, 0x42, 0x36, 0x39, 0x43, 0x31, 0x2C, 0x20, 0x30, 0x78, 0x45, 0x46, 0x42, 0x45, 0x34, 0x37, 0x38, 0x36, 0x2C, 0x20, 0x30, 0x78, 0x30, 0x46, 0x43, 0x31, 0x39, 0x44, 0x43, 0x36, 0x2C, 0x20, 0x30, 0x78, 0x32, 0x34, 0x30, 0x43, 0x41, 0x31, 0x43, 0x43, 0x2C, 0x20, 0x30, 0x78, 0x32, 0x44, 0x45, 0x39, 0x32, 0x43, 0x36, 0x46, 0x2C, 0x20, 0x30, 0x78, 0x34, 0x41, 0x37, 0x34, 0x38, 0x34, 0x41, 0x41, 0x2C, 0x20, 0x30, 0x78, 0x35, 0x43, 0x42, 0x30, 0x41, 0x39, 0x44, 0x43, 0x2C, 0x20, 0x30, 0x78, 0x37, 0x36, 0x46, 0x39, 0x38, 0x38, 0x44, 0x41, 0x2C, 0x0A, 0x09, 0x09, 0x30, 0x78, 0x39, 0x38, 0x33, 0x45, 0x35, 0x31, 0x35, 0x32, 0x2C, 0x20, 0x30, 0x78, 0x41, 0x38, 0x33, 0x31, 0x43, 0x36, 0x36, 0x44, 0x2C, 0x20, 0x30, 0x78, 0x42, 0x30, 0x30, 0x33, 0x32, 0x37, 0x43, 0x38, 0x2C, 0x20, 0x30, 0x78, 0x42, 0x46, 0x35, 0x39, 0x37, 0x46, 0x43, 0x37, 0x2C, 0x20, 0x30, 0x78, 0x43, 0x36, 0x45, 0x30, 0x30, 0x42, 0x46, 0x33, 0x2C, 0x20, 0x30, 0x78, 0x44, 0x35, 0x41, 0x37, 0x39, 0x31, 0x34, 0x37, 0x2C, 0x20, 0x30, 0x78, 0x30, 0x36, 0x43, 0x41, 0x36, 0x33, 0x35, 0x31, 0x2C, 0x20, 0x30, 0x78, 0x31, 0x34, 0x32, 0x39, 0x32, 0x39, 0x36, 0x37, 0x2C, 0x0A, 0x09, 0x09, 0x30, 0x78, 0x32, 0x37, 0x42, 0x37, 0x30, 0x41, 0x38, 0x35, 0x2C, 0x20, 0x30, 0x78, 0x32, 0x45, 0x31, 0x42, 0x32, 0x31, 0x33, 0x38, 0x2C, 0x20, 0x30, 0x78, 0x34, 0x44, 0x32, 0x43, 0x36, 0x44, 0x46, 0x43, 0x2C, 0x20, 0x30, 0x78, 0x35, 0x33, 0x33, 0x38, 0x30, 0x44, 0x31, 0x33, 0x2C, 0x20, 0x30, 0x78, 0x36, 0x35, 0x30, 0x41, 0x37, 0x33, 0x35, 0x34, 0x2C, 0x20, 0x30, 0x78, 0x37, 0x36, 0x36, 0x41, 0x30, 0x41, 0x42, 0x42, 0x2C, 0x20, 0x30, 0x78, 0x38, 0x31, 0x43, 0x32, 0x43, 0x39, 0x32, 0x45, 0x2C, 0x20, 0x30, 0x78, 0x39, 0x32, 0x37, 0x32, 0x32, 0x43, 0x38, 0x35, 0x2C, 0x0A, 0x09, 0x09, 0x30, 0x78, 0x41, 0x32, 0x42, 0x46, 0x45, 0x38, 0x41, 0x31, 0x2C, 0x20, 0x30, 0x78, 0x41, 0x38, 0x31, 0x41, 0x36, 0x36, 0x34, 0x42, 0x2C, 0x20, 0x30, 0x78, 0x43, 0x32, 0x34, 0x42, 0x38, 0x42, 0x37, 0x30, 0x2C, 0x20, 0x30, 0x78, 0x43, 0x37, 0x36, 0x43, 0x35, 0x31, 0x41, 0x33, 0x2C, 0x20, 0x30, 0x78, 0x44, 0x31, 0x39, 0x32, 0x45, 0x38, 0x31, 0x39, 0x2C, 0x20, 0x30, 0x78, 0x44, 0x36, 0x39, 0x39, 0x30, 0x36, 0x32, 0x34, 0x2C, 0x20, 0x30, 0x78, 0x46, 0x34, 0x30, 0x45, 0x33, 0x35, 0x38, 0x35, 0x2C, 0x20, 0x30, 0x78, 0x31, 0x30, 0x36, 0x41, 0x41, 0x30, 0x37, 0x30, 0x2C, 0x0A, 0x09, 0x09, 0x30, 0x78, 0x31, 0x39, 0x41, 0x34, 0x43, 0x31, 0x31, 0x36, 0x2C, 0x20, 0x30, 0x78, 0x31, 0x45, 0x33, 0x37, 0x36, 0x43, 0x30, 0x38, 0x2C, 0x20, 0x30, 0x78, 0x32, 0x37, 0x34, 0x38, 0x37, 0x37, 0x34, 0x43, 0x2C, 0x20, 0x30, 0x78, 0x33, 0x34, 0x42, 0x30, 0x42, 0x43, 0x42, 0x35, 0x2C, 0x20, 0x30, 0x78, 0x33, 0x39, 0x31, 0x43, 0x30, 0x43, 0x42, 0x33, 0x2C, 0x20, 0x30, 0x78, 0x34, 0x45, 0x44, 0x38, 0x41, 0x41, 0x34, 0x41, 0x2C, 0x20, 0x30, 0x78, 0x35, 0x42, 0x39, 0x43, 0x43, 0x41, 0x34, 0x46, 0x2C, 0x20, 0x30, 0x78, 0x36, 0x38, 0x32, 0x45, 0x36, 0x46, 0x46, 0x33, 0x2C, 0x0A, 0x09, 0x09, 0x30, 0x78, 0x37, 0x34, 0x38, 0x46, 0x38, 0x32, 0x45, 0x45, 0x2C, 0x20, 0x30, 0x78, 0x37, 0x38, 0x41, 0x35, 0x36, 0x33, 0x36, 0x46, 0x2C, 0x20, 0x30, 0x78, 0x38, 0x34, 0x43, 0x38, 0x37, 0x38, 0x31, 0x34, 0x2C, 0x20, 0x30, 0x78, 0x38, 0x43, 0x43, 0x37, 0x30, 0x32, 0x30, 0x38, 0x2C, 0x20, 0x30, 0x78, 0x39, 0x30, 0x42, 0x45, 0x46, 0x46, 0x46, 0x41, 0x2C, 0x20, 0x30, 0x78, 0x41, 0x34, 0x35, 0x30, 0x36, 0x43, 0x45, 0x42, 0x2C, 0x20, 0x30, 0x78, 0x42, 0x45, 0x46, 0x39, 0x41, 0x33, 0x46, 0x37, 0x2C, 0x20, 0x30, 0x78, 0x43, 0x36, 0x37, 0x31, 0x37, 0x38, 0x46, 0x32, 0x0A, 0x09, 0x7D, 0x3B, 0x0A, 0x0A, 0x09, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x32, 0x5F, 0x74, 0x20, 0x6D, 0x5B, 0x36, 0x34, 0x5D, 0x3B, 0x0A, 0x0A, 0x09, 0x66, 0x6F, 0x72, 0x20, 0x28, 0x69, 0x6E, 0x74, 0x20, 0x69, 0x20, 0x3D, 0x20, 0x30, 0x3B, 0x20, 0x69, 0x20, 0x3C, 0x20, 0x31, 0x36, 0x3B, 0x20, 0x69, 0x20, 0x2B, 0x3D, 0x20, 0x31, 0x29, 0x0A, 0x09, 0x09, 0x6D, 0x5B, 0x69, 0x5D, 0x20, 0x3D, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x69, 0x5D, 0x3B, 0x0A, 0x0A, 0x09, 0x66, 0x6F, 0x72, 0x20, 0x28, 0x69, 0x6E, 0x74, 0x20, 0x69, 0x20, 0x3D, 0x20, 0x31, 0x36, 0x3B, 0x20, 0x69, 0x20, 0x3C, 0x20, 0x36, 0x34, 0x3B, 0x20, 0x69, 0x20, 0x2B, 0x3D, 0x20, 0x31, 0x29, 0x0A, 0x09, 0x09, 0x6D, 0x5B, 0x69, 0x5D, 0x20, 0x3D, 0x20, 0x53, 0x49, 0x47, 0x31, 0x28, 0x6D, 0x5B, 0x69, 0x20, 0x2D, 0x20, 0x32, 0x5D, 0x29, 0x20, 0x2B, 0x20, 0x6D, 0x5B, 0x69, 0x20, 0x2D, 0x20, 0x37, 0x5D, 0x20, 0x2B, 0x20, 0x53, 0x49, 0x47, 0x30, 0x28, 0x6D, 0x5B, 0x69, 0x20, 0x2D, 0x20, 0x31, 0x35, 0x5D, 0x29, 0x20, 0x2B, 0x20, 0x6D, 0x5B, 0x69, 0x20, 0x2D, 0x20, 0x31, 0x36, 0x5D, 0x3B, 0x0A, 0x0A, 0x09, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x32, 0x5F, 0x74, 0x20, 0x61, 0x20, 0x3D, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x30, 0x5D, 0x2C, 0x20, 0x62, 0x20, 0x3D, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x31, 0x5D, 0x2C, 0x20, 0x63, 0x20, 0x3D, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x32, 0x5D, 0x2C, 0x20, 0x64, 0x20, 0x3D, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x33, 0x5D, 0x3B, 0x0A, 0x09, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x32, 0x5F, 0x74, 0x20, 0x65, 0x20, 0x3D, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x34, 0x5D, 0x2C, 0x20, 0x66, 0x20, 0x3D, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x35, 0x5D, 0x2C, 0x20, 0x67, 0x20, 0x3D, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x36, 0x5D, 0x2C, 0x20, 0x68, 0x20, 0x3D, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x37, 0x5D, 0x3B, 0x0A, 0x0A, 0x23, 0x69, 0x66, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6E, 0x65, 0x64, 0x28, 0x5F, 0x5F, 0x43, 0x55, 0x44, 0x41, 0x5F, 0x41, 0x52, 0x43, 0x48, 0x5F, 0x5F, 0x29, 0x20, 0x7C, 0x7C, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6E, 0x65, 0x64, 0x28, 0x5F, 0x5F, 0x4F, 0x50, 0x45, 0x4E, 0x43, 0x4C, 0x5F, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4F, 0x4E, 0x5F, 0x5F, 0x29, 0x0A, 0x09, 0x23, 0x70, 0x72, 0x61, 0x67, 0x6D, 0x61, 0x20, 0x75, 0x6E, 0x72, 0x6F, 0x6C, 0x6C, 0x0A, 0x23, 0x65, 0x6E, 0x64, 0x69, 0x66, 0x0A, 0x09, 0x66, 0x6F, 0x72, 0x20, 0x28, 0x69, 0x6E, 0x74, 0x20, 0x69, 0x20, 0x3D, 0x20, 0x30, 0x3B, 0x20, 0x69, 0x20, 0x3C, 0x20, 0x31, 0x35, 0x3B, 0x20, 0x69, 0x20, 0x2B, 0x3D, 0x20, 0x31, 0x29, 0x0A, 0x09, 0x7B, 0x0A, 0x09, 0x09, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x32, 0x5F, 0x74, 0x20, 0x74, 0x31, 0x20, 0x3D, 0x20, 0x68, 0x20, 0x2B, 0x20, 0x45, 0x50, 0x31, 0x28, 0x65, 0x29, 0x20, 0x2B, 0x20, 0x43, 0x48, 0x28, 0x65, 0x2C, 0x20, 0x66, 0x2C, 0x20, 0x67, 0x29, 0x20, 0x2B, 0x20, 0x6B, 0x73, 0x68, 0x61, 0x5B, 0x69, 0x5D, 0x3B, 0x20, 0x2F, 0x2F, 0x20, 0x2B, 0x20, 0x6D, 0x5B, 0x69, 0x5D, 0x3B, 0x0A, 0x09, 0x09, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x32, 0x5F, 0x74, 0x20, 0x74, 0x32, 0x20, 0x3D, 0x20, 0x45, 0x50, 0x30, 0x28, 0x61, 0x29, 0x20, 0x2B, 0x20, 0x4D, 0x41, 0x4A, 0x28, 0x61, 0x2C, 0x20, 0x62, 0x2C, 0x20, 0x63, 0x29, 0x3B, 0x0A, 0x09, 0x09, 0x68, 0x20, 0x3D, 0x20, 0x67, 0x3B, 0x0A, 0x09, 0x09, 0x67, 0x20, 0x3D, 0x20, 0x66, 0x3B, 0x0A, 0x09, 0x09, 0x66, 0x20, 0x3D, 0x20, 0x65, 0x3B, 0x0A, 0x09, 0x09, 0x65, 0x20, 0x3D, 0x20, 0x64, 0x20, 0x2B, 0x20, 0x74, 0x31, 0x3B, 0x0A, 0x09, 0x09, 0x64, 0x20, 0x3D, 0x20, 0x63, 0x3B, 0x0A, 0x09, 0x09, 0x63, 0x20, 0x3D, 0x20, 0x62, 0x3B, 0x0A, 0x09, 0x09, 0x62, 0x20, 0x3D, 0x20, 0x61, 0x3B, 0x0A, 0x09, 0x09, 0x61, 0x20, 0x3D, 0x20, 0x74, 0x31, 0x20, 0x2B, 0x20, 0x74, 0x32, 0x3B, 0x0A, 0x09, 0x7D, 0x0A, 0x0A, 0x23, 0x69, 0x66, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6E, 0x65, 0x64, 0x28, 0x5F, 0x5F, 0x43, 0x55, 0x44, 0x41, 0x5F, 0x41, 0x52, 0x43, 0x48, 0x5F, 0x5F, 0x29, 0x20, 0x7C, 0x7C, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6E, 0x65, 0x64, 0x28, 0x5F, 0x5F, 0x4F, 0x50, 0x45, 0x4E, 0x43, 0x4C, 0x5F, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4F, 0x4E, 0x5F, 0x5F, 0x29, 0x0A, 0x09, 0x23, 0x70, 0x72, 0x61, 0x67, 0x6D, 0x61, 0x20, 0x75, 0x6E, 0x72, 0x6F, 0x6C, 0x6C, 0x0A, 0x23, 0x65, 0x6E, 0x64, 0x69, 0x66, 0x0A, 0x09, 0x66, 0x6F, 0x72, 0x20, 0x28, 0x69, 0x6E, 0x74, 0x20, 0x69, 0x20, 0x3D, 0x20, 0x31, 0x35, 0x3B, 0x20, 0x69, 0x20, 0x3C, 0x20, 0x36, 0x34, 0x3B, 0x20, 0x69, 0x20, 0x2B, 0x3D, 0x20, 0x31, 0x29, 0x0A, 0x09, 0x7B, 0x0A, 0x09, 0x09, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x32, 0x5F, 0x74, 0x20, 0x74, 0x31, 0x20, 0x3D, 0x20, 0x68, 0x20, 0x2B, 0x20, 0x45, 0x50, 0x31, 0x28, 0x65, 0x29, 0x20, 0x2B, 0x20, 0x43, 0x48, 0x28, 0x65, 0x2C, 0x20, 0x66, 0x2C, 0x20, 0x67, 0x29, 0x20, 0x2B, 0x20, 0x6B, 0x73, 0x68, 0x61, 0x5B, 0x69, 0x5D, 0x20, 0x2B, 0x20, 0x6D, 0x5B, 0x69, 0x5D, 0x3B, 0x0A, 0x09, 0x09, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x32, 0x5F, 0x74, 0x20, 0x74, 0x32, 0x20, 0x3D, 0x20, 0x45, 0x50, 0x30, 0x28, 0x61, 0x29, 0x20, 0x2B, 0x20, 0x4D, 0x41, 0x4A, 0x28, 0x61, 0x2C, 0x20, 0x62, 0x2C, 0x20, 0x63, 0x29, 0x3B, 0x0A, 0x09, 0x09, 0x68, 0x20, 0x3D, 0x20, 0x67, 0x3B, 0x0A, 0x09, 0x09, 0x67, 0x20, 0x3D, 0x20, 0x66, 0x3B, 0x0A, 0x09, 0x09, 0x66, 0x20, 0x3D, 0x20, 0x65, 0x3B, 0x0A, 0x09, 0x09, 0x65, 0x20, 0x3D, 0x20, 0x64, 0x20, 0x2B, 0x20, 0x74, 0x31, 0x3B, 0x0A, 0x09, 0x09, 0x64, 0x20, 0x3D, 0x20, 0x63, 0x3B, 0x0A, 0x09, 0x09, 0x63, 0x20, 0x3D, 0x20, 0x62, 0x3B, 0x0A, 0x09, 0x09, 0x62, 0x20, 0x3D, 0x20, 0x61, 0x3B, 0x0A, 0x09, 0x09, 0x61, 0x20, 0x3D, 0x20, 0x74, 0x31, 0x20, 0x2B, 0x20, 0x74, 0x32, 0x3B, 0x0A, 0x09, 0x7D, 0x0A, 0x0A, 0x09, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x30, 0x5D, 0x20, 0x2B, 0x3D, 0x20, 0x61, 0x2C, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x31, 0x5D, 0x20, 0x2B, 0x3D, 0x20, 0x62, 0x2C, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x32, 0x5D, 0x20, 0x2B, 0x3D, 0x20, 0x63, 0x2C, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x33, 0x5D, 0x20, 0x2B, 0x3D, 0x20, 0x64, 0x3B, 0x0A, 0x09, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x34, 0x5D, 0x20, 0x2B, 0x3D, 0x20, 0x65, 0x2C, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x35, 0x5D, 0x20, 0x2B, 0x3D, 0x20, 0x66, 0x2C, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x36, 0x5D, 0x20, 0x2B, 0x3D, 0x20, 0x67, 0x2C, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x37, 0x5D, 0x20, 0x2B, 0x3D, 0x20, 0x68, 0x3B, 0x0A, 0x0A, 0x09, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6E, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x3B, 0x0A, 0x7D, 0x0A, 0x0A, 0x0A, 0x23, 0x69, 0x66, 0x20, 0x21, 0x64, 0x65, 0x66, 0x69, 0x6E, 0x65, 0x64, 0x28, 0x5F, 0x5F, 0x4F, 0x50, 0x45, 0x4E, 0x43, 0x4C, 0x5F, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4F, 0x4E, 0x5F, 0x5F, 0x29, 0x0A, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x20, 0x63, 0x6F, 0x6E, 0x73, 0x74, 0x20, 0x76, 0x65, 0x63, 0x38, 0x75, 0x20, 0x68, 0x32, 0x35, 0x36, 0x20, 0x3D, 0x20, 0x7B, 0x0A, 0x09, 0x30, 0x78, 0x36, 0x41, 0x30, 0x39, 0x45, 0x36, 0x36, 0x37, 0x2C, 0x20, 0x30, 0x78, 0x42, 0x42, 0x36, 0x37, 0x41, 0x45, 0x38, 0x35, 0x2C, 0x20, 0x30, 0x78, 0x33, 0x43, 0x36, 0x45, 0x46, 0x33, 0x37, 0x32, 0x2C, 0x20, 0x30, 0x78, 0x41, 0x35, 0x34, 0x46, 0x46, 0x35, 0x33, 0x41, 0x2C, 0x20, 0x30, 0x78, 0x35, 0x31, 0x30, 0x45, 0x35, 0x32, 0x37, 0x46, 0x2C, 0x20, 0x30, 0x78, 0x39, 0x42, 0x30, 0x35, 0x36, 0x38, 0x38, 0x43, 0x2C, 0x20, 0x30, 0x78, 0x31, 0x46, 0x38, 0x33, 0x44, 0x39, 0x41, 0x42, 0x2C, 0x20, 0x30, 0x78, 0x35, 0x42, 0x45, 0x30, 0x43, 0x44, 0x31, 0x39, 0x0A, 0x7D, 0x3B, 0x0A, 0x0A, 0x0A, 0x69, 0x6E, 0x6C, 0x69, 0x6E, 0x65, 0x20, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x20, 0x76, 0x6F, 0x69, 0x64, 0x20, 0x62, 0x69, 0x74, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5F, 0x62, 0x65, 0x33, 0x32, 0x65, 0x6E, 0x63, 0x28, 0x76, 0x6F, 0x69, 0x64, 0x20, 0x2A, 0x70, 0x70, 0x2C, 0x20, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x32, 0x5F, 0x74, 0x20, 0x78, 0x29, 0x0A, 0x7B, 0x0A, 0x09, 0x75, 0x69, 0x6E, 0x74, 0x38, 0x5F, 0x74, 0x20, 0x2A, 0x70, 0x20, 0x3D, 0x20, 0x28, 0x75, 0x69, 0x6E, 0x74, 0x38, 0x5F, 0x74, 0x20, 0x2A, 0x29, 0x70, 0x70, 0x3B, 0x0A, 0x0A, 0x09, 0x70, 0x5B, 0x33, 0x5D, 0x20, 0x3D, 0x20, 0x78, 0x20, 0x26, 0x20, 0x30, 0x78, 0x66, 0x66, 0x3B, 0x0A, 0x09, 0x70, 0x5B, 0x32, 0x5D, 0x20, 0x3D, 0x20, 0x28, 0x78, 0x20, 0x3E, 0x3E, 0x20, 0x38, 0x29, 0x20, 0x26, 0x20, 0x30, 0x78, 0x66, 0x66, 0x3B, 0x0A, 0x09, 0x70, 0x5B, 0x31, 0x5D, 0x20, 0x3D, 0x20, 0x28, 0x78, 0x20, 0x3E, 0x3E, 0x20, 0x31, 0x36, 0x29, 0x20, 0x26, 0x20, 0x30, 0x78, 0x66, 0x66, 0x3B, 0x0A, 0x09, 0x70, 0x5B, 0x30, 0x5D, 0x20, 0x3D, 0x20, 0x28, 0x78, 0x20, 0x3E, 0x3E, 0x20, 0x32, 0x34, 0x29, 0x20, 0x26, 0x20, 0x30, 0x78, 0x66, 0x66, 0x3B, 0x0A, 0x7D, 0x0A, 0x0A, 0x0A, 0x69, 0x6E, 0x6C, 0x69, 0x6E, 0x65, 0x20, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x20, 0x4D, 0x73, 0x67, 0x44, 0x61, 0x74, 0x61, 0x20, 0x62, 0x69, 0x74, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5F, 0x70, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x5F, 0x6D, 0x73, 0x67, 0x28, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x32, 0x5F, 0x74, 0x20, 0x67, 0x70, 0x75, 0x5F, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x2C, 0x20, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x32, 0x5F, 0x74, 0x20, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x2C, 0x20, 0x63, 0x6F, 0x6E, 0x73, 0x74, 0x20, 0x75, 0x6E, 0x73, 0x69, 0x67, 0x6E, 0x65, 0x64, 0x20, 0x63, 0x68, 0x61, 0x72, 0x20, 0x2A, 0x64, 0x61, 0x74, 0x61, 0x2C, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x63, 0x6F, 0x6E, 0x73, 0x74, 0x20, 0x76, 0x6F, 0x69, 0x64, 0x20, 0x2A, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x2C, 0x20, 0x63, 0x6F, 0x6E, 0x73, 0x74, 0x20, 0x75, 0x6E, 0x73, 0x69, 0x67, 0x6E, 0x65, 0x64, 0x20, 0x63, 0x68, 0x61, 0x72, 0x20, 0x2A, 0x72, 0x64, 0x61, 0x74, 0x61, 0x29, 0x0A, 0x7B, 0x0A, 0x09, 0x2F, 0x2A, 0x70, 0x72, 0x69, 0x6E, 0x74, 0x66, 0x28, 0x22, 0x67, 0x70, 0x75, 0x5F, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3A, 0x20, 0x25, 0x75, 0x2C, 0x20, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x3A, 0x20, 0x25, 0x30, 0x34, 0x78, 0x5C, 0x6E, 0x22, 0x2C, 0x20, 0x28, 0x75, 0x6E, 0x73, 0x69, 0x67, 0x6E, 0x65, 0x64, 0x29, 0x67, 0x70, 0x75, 0x5F, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x2C, 0x20, 0x28, 0x75, 0x6E, 0x73, 0x69, 0x67, 0x6E, 0x65, 0x64, 0x29, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x29, 0x3B, 0x0A, 0x09, 0x70, 0x72, 0x69, 0x6E, 0x74, 0x66, 0x28, 0x22, 0x64, 0x61, 0x74, 0x61, 0x3A, 0x5C, 0x6E, 0x22, 0x29, 0x3B, 0x0A, 0x0A, 0x09, 0x75, 0x6E, 0x73, 0x69, 0x67, 0x6E, 0x65, 0x64, 0x20, 0x63, 0x68, 0x61, 0x72, 0x20, 0x70, 0x61, 0x64, 0x64, 0x65, 0x64, 0x5F, 0x64, 0x61, 0x74, 0x61, 0x5B, 0x31, 0x32, 0x38, 0x5D, 0x3B, 0x0A, 0x09, 0x6D, 0x65, 0x6D, 0x73, 0x65, 0x74, 0x28, 0x70, 0x61, 0x64, 0x64, 0x65, 0x64, 0x5F, 0x64, 0x61, 0x74, 0x61, 0x2C, 0x20, 0x30, 0x2C, 0x20, 0x73, 0x69, 0x7A, 0x65, 0x6F, 0x66, 0x28, 0x70, 0x61, 0x64, 0x64, 0x65, 0x64, 0x5F, 0x64, 0x61, 0x74, 0x61, 0x29, 0x29, 0x3B, 0x0A, 0x09, 0x6D, 0x65, 0x6D, 0x63, 0x70, 0x79, 0x28, 0x70, 0x61, 0x64, 0x64, 0x65, 0x64, 0x5F, 0x64, 0x61, 0x74, 0x61, 0x2C, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2C, 0x20, 0x31, 0x32, 0x33, 0x29, 0x3B, 0x0A, 0x0A, 0x09, 0x66, 0x6F, 0x72, 0x20, 0x28, 0x69, 0x6E, 0x74, 0x20, 0x69, 0x20, 0x3D, 0x20, 0x30, 0x3B, 0x20, 0x69, 0x20, 0x3C, 0x20, 0x33, 0x32, 0x3B, 0x20, 0x69, 0x20, 0x2B, 0x3D, 0x20, 0x31, 0x29, 0x0A, 0x09, 0x7B, 0x0A, 0x09, 0x09, 0x66, 0x6F, 0x72, 0x20, 0x28, 0x69, 0x6E, 0x74, 0x20, 0x6A, 0x20, 0x3D, 0x20, 0x30, 0x3B, 0x20, 0x6A, 0x20, 0x3C, 0x20, 0x34, 0x3B, 0x20, 0x6A, 0x20, 0x2B, 0x3D, 0x20, 0x31, 0x29, 0x0A, 0x09, 0x09, 0x09, 0x70, 0x72, 0x69, 0x6E, 0x74, 0x66, 0x28, 0x22, 0x25, 0x30, 0x32, 0x68, 0x68, 0x78, 0x20, 0x22, 0x2C, 0x20, 0x70, 0x61, 0x64, 0x64, 0x65, 0x64, 0x5F, 0x64, 0x61, 0x74, 0x61, 0x5B, 0x69, 0x20, 0x2A, 0x20, 0x34, 0x20, 0x2B, 0x20, 0x6A, 0x5D, 0x29, 0x3B, 0x0A, 0x09, 0x09, 0x70, 0x72, 0x69, 0x6E, 0x74, 0x66, 0x28, 0x22, 0x5C, 0x6E, 0x22, 0x29, 0x3B, 0x0A, 0x09, 0x7D, 0x0A, 0x0A, 0x09, 0x70, 0x72, 0x69, 0x6E, 0x74, 0x66, 0x28, 0x22, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x3A, 0x5C, 0x6E, 0x22, 0x29, 0x3B, 0x0A, 0x09, 0x66, 0x6F, 0x72, 0x20, 0x28, 0x69, 0x6E, 0x74, 0x20, 0x69, 0x20, 0x3D, 0x20, 0x30, 0x3B, 0x20, 0x69, 0x20, 0x3C, 0x20, 0x33, 0x32, 0x3B, 0x20, 0x69, 0x20, 0x2B, 0x3D, 0x20, 0x31, 0x29, 0x0A, 0x09, 0x09, 0x70, 0x72, 0x69, 0x6E, 0x74, 0x66, 0x28, 0x22, 0x25, 0x30, 0x32, 0x68, 0x68, 0x78, 0x20, 0x22, 0x2C, 0x20, 0x28, 0x28, 0x63, 0x6F, 0x6E, 0x73, 0x74, 0x20, 0x75, 0x6E, 0x73, 0x69, 0x67, 0x6E, 0x65, 0x64, 0x20, 0x63, 0x68, 0x61, 0x72, 0x20, 0x2A, 0x29, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x29, 0x5B, 0x69, 0x5D, 0x29, 0x3B, 0x0A, 0x09, 0x70, 0x72, 0x69, 0x6E, 0x74, 0x66, 0x28, 0x22, 0x5C, 0x6E, 0x22, 0x29, 0x3B, 0x0A, 0x0A, 0x09, 0x70, 0x72, 0x69, 0x6E, 0x74, 0x66, 0x28, 0x22, 0x72, 0x64, 0x61, 0x74, 0x61, 0x3A, 0x5C, 0x6E, 0x22, 0x29, 0x3B, 0x0A, 0x09, 0x66, 0x6F, 0x72, 0x20, 0x28, 0x75, 0x6E, 0x73, 0x69, 0x67, 0x6E, 0x65, 0x64, 0x20, 0x69, 0x20, 0x3D, 0x20, 0x30, 0x3B, 0x20, 0x69, 0x20, 0x3C, 0x20, 0x67, 0x70, 0x75, 0x5F, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3B, 0x20, 0x69, 0x20, 0x2B, 0x3D, 0x20, 0x31, 0x29, 0x0A, 0x09, 0x7B, 0x0A, 0x09, 0x09, 0x66, 0x6F, 0x72, 0x20, 0x28, 0x69, 0x6E, 0x74, 0x20, 0x6A, 0x20, 0x3D, 0x20, 0x30, 0x3B, 0x20, 0x6A, 0x20, 0x3C, 0x20, 0x33, 0x32, 0x3B, 0x20, 0x6A, 0x20, 0x2B, 0x3D, 0x20, 0x31, 0x29, 0x0A, 0x09, 0x09, 0x09, 0x70, 0x72, 0x69, 0x6E, 0x74, 0x66, 0x28, 0x22, 0x25, 0x30, 0x32, 0x68, 0x68, 0x78, 0x20, 0x22, 0x2C, 0x20, 0x72, 0x64, 0x61, 0x74, 0x61, 0x5B, 0x69, 0x20, 0x2A, 0x20, 0x33, 0x32, 0x20, 0x2B, 0x20, 0x6A, 0x5D, 0x29, 0x3B, 0x0A, 0x09, 0x09, 0x70, 0x72, 0x69, 0x6E, 0x74, 0x66, 0x28, 0x22, 0x5C, 0x6E, 0x22, 0x29, 0x3B, 0x0A, 0x09, 0x7D, 0x2A, 0x2F, 0x0A, 0x0A, 0x09, 0x4D, 0x73, 0x67, 0x44, 0x61, 0x74, 0x61, 0x20, 0x6D, 0x73, 0x67, 0x3B, 0x0A, 0x0A, 0x09, 0x66, 0x6F, 0x72, 0x20, 0x28, 0x69, 0x6E, 0x74, 0x20, 0x69, 0x20, 0x3D, 0x20, 0x30, 0x3B, 0x20, 0x69, 0x20, 0x3C, 0x20, 0x33, 0x3B, 0x20, 0x69, 0x20, 0x2B, 0x3D, 0x20, 0x31, 0x29, 0x0A, 0x09, 0x09, 0x62, 0x69, 0x74, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5F, 0x62, 0x65, 0x33, 0x32, 0x65, 0x6E, 0x63, 0x28, 0x26, 0x6D, 0x73, 0x67, 0x2E, 0x70, 0x73, 0x65, 0x65, 0x64, 0x5B, 0x69, 0x5D, 0x2C, 0x20, 0x2A, 0x28, 0x28, 0x63, 0x6F, 0x6E, 0x73, 0x74, 0x20, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x32, 0x5F, 0x74, 0x20, 0x2A, 0x29, 0x28, 0x64, 0x61, 0x74, 0x61, 0x20, 0x2B, 0x20, 0x37, 0x36, 0x29, 0x20, 0x2B, 0x20, 0x69, 0x29, 0x29, 0x3B, 0x0A, 0x0A, 0x09, 0x66, 0x6F, 0x72, 0x20, 0x28, 0x69, 0x6E, 0x74, 0x20, 0x69, 0x20, 0x3D, 0x20, 0x30, 0x3B, 0x20, 0x69, 0x20, 0x3C, 0x20, 0x38, 0x3B, 0x20, 0x69, 0x20, 0x2B, 0x3D, 0x20, 0x31, 0x29, 0x0A, 0x09, 0x09, 0x62, 0x69, 0x74, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5F, 0x62, 0x65, 0x33, 0x32, 0x65, 0x6E, 0x63, 0x28, 0x26, 0x6D, 0x73, 0x67, 0x2E, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x2E, 0x76, 0x5B, 0x69, 0x5D, 0x2C, 0x20, 0x2A, 0x28, 0x28, 0x63, 0x6F, 0x6E, 0x73, 0x74, 0x20, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x32, 0x5F, 0x74, 0x20, 0x2A, 0x29, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x20, 0x2B, 0x20, 0x69, 0x29, 0x29, 0x3B, 0x0A, 0x0A, 0x09, 0x66, 0x6F, 0x72, 0x20, 0x28, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x32, 0x5F, 0x74, 0x20, 0x67, 0x70, 0x75, 0x5F, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x20, 0x3D, 0x20, 0x30, 0x3B, 0x20, 0x67, 0x70, 0x75, 0x5F, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x20, 0x3C, 0x20, 0x67, 0x70, 0x75, 0x5F, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3B, 0x20, 0x67, 0x70, 0x75, 0x5F, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x20, 0x2B, 0x3D, 0x20, 0x31, 0x29, 0x0A, 0x09, 0x7B, 0x0A, 0x09, 0x09, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x44, 0x61, 0x74, 0x61, 0x20, 0x2A, 0x74, 0x68, 0x72, 0x64, 0x61, 0x74, 0x61, 0x20, 0x3D, 0x20, 0x26, 0x6D, 0x73, 0x67, 0x2E, 0x74, 0x68, 0x72, 0x64, 0x61, 0x74, 0x61, 0x5B, 0x67, 0x70, 0x75, 0x5F, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x5D, 0x3B, 0x0A, 0x09, 0x09, 0x63, 0x6F, 0x6E, 0x73, 0x74, 0x20, 0x75, 0x6E, 0x73, 0x69, 0x67, 0x6E, 0x65, 0x64, 0x20, 0x63, 0x68, 0x61, 0x72, 0x20, 0x2A, 0x74, 0x68, 0x72, 0x5F, 0x72, 0x64, 0x61, 0x74, 0x61, 0x20, 0x3D, 0x20, 0x72, 0x64, 0x61, 0x74, 0x61, 0x20, 0x2B, 0x20, 0x67, 0x70, 0x75, 0x5F, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x20, 0x2A, 0x20, 0x33, 0x32, 0x3B, 0x0A, 0x0A, 0x09, 0x09, 0x76, 0x65, 0x63, 0x38, 0x75, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x20, 0x3D, 0x20, 0x68, 0x32, 0x35, 0x36, 0x3B, 0x0A, 0x09, 0x09, 0x76, 0x65, 0x63, 0x31, 0x36, 0x75, 0x20, 0x73, 0x68, 0x61, 0x64, 0x61, 0x74, 0x61, 0x3B, 0x0A, 0x0A, 0x09, 0x09, 0x62, 0x69, 0x74, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5F, 0x62, 0x65, 0x33, 0x32, 0x65, 0x6E, 0x63, 0x28, 0x26, 0x73, 0x68, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x30, 0x78, 0x30, 0x5D, 0x2C, 0x20, 0x2A, 0x28, 0x28, 0x63, 0x6F, 0x6E, 0x73, 0x74, 0x20, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x32, 0x5F, 0x74, 0x20, 0x2A, 0x29, 0x64, 0x61, 0x74, 0x61, 0x20, 0x2B, 0x20, 0x30, 0x78, 0x30, 0x29, 0x29, 0x3B, 0x0A, 0x0A, 0x09, 0x09, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x32, 0x5F, 0x74, 0x20, 0x77, 0x6F, 0x72, 0x64, 0x3B, 0x0A, 0x09, 0x09, 0x62, 0x69, 0x74, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5F, 0x62, 0x65, 0x33, 0x32, 0x65, 0x6E, 0x63, 0x28, 0x26, 0x77, 0x6F, 0x72, 0x64, 0x2C, 0x20, 0x2A, 0x28, 0x28, 0x63, 0x6F, 0x6E, 0x73, 0x74, 0x20, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x32, 0x5F, 0x74, 0x20, 0x2A, 0x29, 0x64, 0x61, 0x74, 0x61, 0x20, 0x2B, 0x20, 0x30, 0x78, 0x31, 0x29, 0x29, 0x3B, 0x0A, 0x0A, 0x09, 0x09, 0x73, 0x68, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x30, 0x78, 0x31, 0x5D, 0x20, 0x3D, 0x20, 0x28, 0x77, 0x6F, 0x72, 0x64, 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x30, 0x30, 0x29, 0x20, 0x7C, 0x20, 0x28, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x20, 0x3E, 0x3E, 0x20, 0x32, 0x34, 0x29, 0x3B, 0x0A, 0x09, 0x09, 0x73, 0x68, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x30, 0x78, 0x32, 0x5D, 0x20, 0x3D, 0x20, 0x28, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x20, 0x3C, 0x3C, 0x20, 0x38, 0x29, 0x20, 0x7C, 0x20, 0x64, 0x61, 0x74, 0x61, 0x5B, 0x31, 0x31, 0x5D, 0x3B, 0x0A, 0x0A, 0x09, 0x09, 0x66, 0x6F, 0x72, 0x20, 0x28, 0x69, 0x6E, 0x74, 0x20, 0x69, 0x20, 0x3D, 0x20, 0x30, 0x78, 0x33, 0x3B, 0x20, 0x69, 0x20, 0x3C, 0x3D, 0x20, 0x30, 0x78, 0x39, 0x3B, 0x20, 0x69, 0x20, 0x2B, 0x3D, 0x20, 0x31, 0x29, 0x0A, 0x09, 0x09, 0x09, 0x62, 0x69, 0x74, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5F, 0x62, 0x65, 0x33, 0x32, 0x65, 0x6E, 0x63, 0x28, 0x26, 0x73, 0x68, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x69, 0x5D, 0x2C, 0x20, 0x2A, 0x28, 0x28, 0x63, 0x6F, 0x6E, 0x73, 0x74, 0x20, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x32, 0x5F, 0x74, 0x20, 0x2A, 0x29, 0x64, 0x61, 0x74, 0x61, 0x20, 0x2B, 0x20, 0x69, 0x29, 0x29, 0x3B, 0x0A, 0x0A, 0x09, 0x09, 0x62, 0x69, 0x74, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5F, 0x62, 0x65, 0x33, 0x32, 0x65, 0x6E, 0x63, 0x28, 0x26, 0x77, 0x6F, 0x72, 0x64, 0x2C, 0x20, 0x2A, 0x28, 0x28, 0x63, 0x6F, 0x6E, 0x73, 0x74, 0x20, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x32, 0x5F, 0x74, 0x20, 0x2A, 0x29, 0x64, 0x61, 0x74, 0x61, 0x20, 0x2B, 0x20, 0x30, 0x78, 0x41, 0x29, 0x29, 0x3B, 0x0A, 0x09, 0x09, 0x73, 0x68, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x30, 0x78, 0x41, 0x5D, 0x20, 0x3D, 0x20, 0x28, 0x77, 0x6F, 0x72, 0x64, 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x30, 0x30, 0x29, 0x20, 0x7C, 0x20, 0x74, 0x68, 0x72, 0x5F, 0x72, 0x64, 0x61, 0x74, 0x61, 0x5B, 0x30, 0x5D, 0x3B, 0x0A, 0x0A, 0x09, 0x09, 0x66, 0x6F, 0x72, 0x20, 0x28, 0x69, 0x6E, 0x74, 0x20, 0x69, 0x20, 0x3D, 0x20, 0x30, 0x78, 0x42, 0x2C, 0x20, 0x6A, 0x20, 0x3D, 0x20, 0x30, 0x3B, 0x20, 0x69, 0x20, 0x3C, 0x3D, 0x20, 0x30, 0x78, 0x46, 0x3B, 0x20, 0x69, 0x20, 0x2B, 0x3D, 0x20, 0x31, 0x2C, 0x20, 0x6A, 0x20, 0x2B, 0x3D, 0x20, 0x31, 0x29, 0x0A, 0x09, 0x09, 0x09, 0x62, 0x69, 0x74, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5F, 0x62, 0x65, 0x33, 0x32, 0x65, 0x6E, 0x63, 0x28, 0x26, 0x73, 0x68, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x69, 0x5D, 0x2C, 0x20, 0x2A, 0x28, 0x28, 0x63, 0x6F, 0x6E, 0x73, 0x74, 0x20, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x32, 0x5F, 0x74, 0x20, 0x2A, 0x29, 0x28, 0x74, 0x68, 0x72, 0x5F, 0x72, 0x64, 0x61, 0x74, 0x61, 0x20, 0x2B, 0x20, 0x31, 0x29, 0x20, 0x2B, 0x20, 0x6A, 0x29, 0x29, 0x3B, 0x0A, 0x0A, 0x09, 0x09, 0x74, 0x68, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2D, 0x3E, 0x73, 0x74, 0x61, 0x74, 0x65, 0x20, 0x3D, 0x20, 0x73, 0x68, 0x61, 0x32, 0x35, 0x36, 0x5F, 0x74, 0x72, 0x61, 0x6E, 0x73, 0x66, 0x6F, 0x72, 0x6D, 0x28, 0x73, 0x68, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2C, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x29, 0x3B, 0x0A, 0x0A, 0x09, 0x09, 0x66, 0x6F, 0x72, 0x20, 0x28, 0x69, 0x6E, 0x74, 0x20, 0x69, 0x20, 0x3D, 0x20, 0x30, 0x78, 0x30, 0x2C, 0x20, 0x6A, 0x20, 0x3D, 0x20, 0x30, 0x3B, 0x20, 0x69, 0x20, 0x3C, 0x3D, 0x20, 0x30, 0x78, 0x31, 0x3B, 0x20, 0x69, 0x20, 0x2B, 0x3D, 0x20, 0x31, 0x2C, 0x20, 0x6A, 0x20, 0x2B, 0x3D, 0x20, 0x31, 0x29, 0x0A, 0x09, 0x09, 0x09, 0x62, 0x69, 0x74, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5F, 0x62, 0x65, 0x33, 0x32, 0x65, 0x6E, 0x63, 0x28, 0x26, 0x74, 0x68, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2D, 0x3E, 0x72, 0x64, 0x61, 0x74, 0x61, 0x5B, 0x69, 0x5D, 0x2C, 0x20, 0x2A, 0x28, 0x28, 0x63, 0x6F, 0x6E, 0x73, 0x74, 0x20, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x32, 0x5F, 0x74, 0x20, 0x2A, 0x29, 0x28, 0x74, 0x68, 0x72, 0x5F, 0x72, 0x64, 0x61, 0x74, 0x61, 0x20, 0x2B, 0x20, 0x32, 0x31, 0x29, 0x20, 0x2B, 0x20, 0x6A, 0x29, 0x29, 0x3B, 0x0A, 0x0A, 0x09, 0x09, 0x62, 0x69, 0x74, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5F, 0x62, 0x65, 0x33, 0x32, 0x65, 0x6E, 0x63, 0x28, 0x26, 0x77, 0x6F, 0x72, 0x64, 0x2C, 0x20, 0x2A, 0x28, 0x63, 0x6F, 0x6E, 0x73, 0x74, 0x20, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x32, 0x5F, 0x74, 0x20, 0x2A, 0x29, 0x28, 0x74, 0x68, 0x72, 0x5F, 0x72, 0x64, 0x61, 0x74, 0x61, 0x20, 0x2B, 0x20, 0x32, 0x38, 0x29, 0x29, 0x3B, 0x0A, 0x09, 0x09, 0x74, 0x68, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2D, 0x3E, 0x72, 0x64, 0x61, 0x74, 0x61, 0x5B, 0x30, 0x78, 0x32, 0x5D, 0x20, 0x3D, 0x20, 0x28, 0x77, 0x6F, 0x72, 0x64, 0x20, 0x3C, 0x3C, 0x20, 0x38, 0x29, 0x20, 0x7C, 0x20, 0x64, 0x61, 0x74, 0x61, 0x5B, 0x37, 0x35, 0x5D, 0x3B, 0x0A, 0x0A, 0x09, 0x09, 0x62, 0x69, 0x74, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5F, 0x62, 0x65, 0x33, 0x32, 0x65, 0x6E, 0x63, 0x28, 0x26, 0x77, 0x6F, 0x72, 0x64, 0x2C, 0x20, 0x2A, 0x28, 0x28, 0x63, 0x6F, 0x6E, 0x73, 0x74, 0x20, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x32, 0x5F, 0x74, 0x20, 0x2A, 0x29, 0x64, 0x61, 0x74, 0x61, 0x20, 0x2B, 0x20, 0x30, 0x78, 0x31, 0x36, 0x29, 0x29, 0x3B, 0x0A, 0x09, 0x09, 0x74, 0x68, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2D, 0x3E, 0x72, 0x64, 0x61, 0x74, 0x61, 0x5B, 0x30, 0x78, 0x33, 0x5D, 0x20, 0x3D, 0x20, 0x28, 0x77, 0x6F, 0x72, 0x64, 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x30, 0x30, 0x29, 0x20, 0x7C, 0x20, 0x74, 0x68, 0x72, 0x5F, 0x72, 0x64, 0x61, 0x74, 0x61, 0x5B, 0x30, 0x5D, 0x3B, 0x0A, 0x0A, 0x09, 0x09, 0x66, 0x6F, 0x72, 0x20, 0x28, 0x69, 0x6E, 0x74, 0x20, 0x69, 0x20, 0x3D, 0x20, 0x30, 0x78, 0x34, 0x2C, 0x20, 0x6A, 0x20, 0x3D, 0x20, 0x30, 0x3B, 0x20, 0x69, 0x20, 0x3C, 0x3D, 0x20, 0x30, 0x78, 0x38, 0x3B, 0x20, 0x69, 0x20, 0x2B, 0x3D, 0x20, 0x31, 0x2C, 0x20, 0x6A, 0x20, 0x2B, 0x3D, 0x20, 0x31, 0x29, 0x0A, 0x09, 0x09, 0x09, 0x62, 0x69, 0x74, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5F, 0x62, 0x65, 0x33, 0x32, 0x65, 0x6E, 0x63, 0x28, 0x26, 0x74, 0x68, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2D, 0x3E, 0x72, 0x64, 0x61, 0x74, 0x61, 0x5B, 0x69, 0x5D, 0x2C, 0x20, 0x2A, 0x28, 0x28, 0x63, 0x6F, 0x6E, 0x73, 0x74, 0x20, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x32, 0x5F, 0x74, 0x20, 0x2A, 0x29, 0x28, 0x74, 0x68, 0x72, 0x5F, 0x72, 0x64, 0x61, 0x74, 0x61, 0x20, 0x2B, 0x20, 0x31, 0x29, 0x20, 0x2B, 0x20, 0x6A, 0x29, 0x29, 0x3B, 0x0A, 0x09, 0x7D, 0x0A, 0x0A, 0x09, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6E, 0x20, 0x6D, 0x73, 0x67, 0x3B, 0x0A, 0x7D, 0x0A, 0x23, 0x65, 0x6E, 0x64, 0x69, 0x66, 0x0A, 0x0A, 0x0A, 0x74, 0x79, 0x70, 0x65, 0x64, 0x65, 0x66, 0x20, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x20, 0x44, 0x65, 0x76, 0x48, 0x61, 0x73, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6C, 0x74, 0x0A, 0x7B, 0x0A, 0x09, 0x75, 0x69, 0x6E, 0x74, 0x36, 0x34, 0x5F, 0x74, 0x20, 0x6E, 0x6F, 0x6E, 0x63, 0x65, 0x3B, 0x0A, 0x09, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x32, 0x5F, 0x74, 0x20, 0x76, 0x63, 0x70, 0x75, 0x2C, 0x20, 0x66, 0x6F, 0x75, 0x6E, 0x64, 0x3B, 0x0A, 0x7D, 0x0A, 0x44, 0x65, 0x76, 0x48, 0x61, 0x73, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6C, 0x74, 0x3B, 0x0A, 0x0A, 0x0A, 0x23, 0x69, 0x66, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6E, 0x65, 0x64, 0x28, 0x5F, 0x5F, 0x43, 0x55, 0x44, 0x41, 0x43, 0x43, 0x5F, 0x5F, 0x29, 0x20, 0x7C, 0x7C, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6E, 0x65, 0x64, 0x28, 0x5F, 0x5F, 0x4F, 0x50, 0x45, 0x4E, 0x43, 0x4C, 0x5F, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4F, 0x4E, 0x5F, 0x5F, 0x29, 0x0A, 0x0A, 0x23, 0x69, 0x66, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6E, 0x65, 0x64, 0x28, 0x5F, 0x5F, 0x4F, 0x50, 0x45, 0x4E, 0x43, 0x4C, 0x5F, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4F, 0x4E, 0x5F, 0x5F, 0x29, 0x0A, 0x09, 0x5F, 0x5F, 0x6B, 0x65, 0x72, 0x6E, 0x65, 0x6C, 0x20, 0x76, 0x6F, 0x69, 0x64, 0x20, 0x62, 0x69, 0x74, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5F, 0x67, 0x70, 0x75, 0x5F, 0x68, 0x61, 0x73, 0x68, 0x28, 0x0A, 0x09, 0x09, 0x75, 0x69, 0x6E, 0x74, 0x36, 0x34, 0x5F, 0x74, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5F, 0x6E, 0x6F, 0x6E, 0x63, 0x65, 0x2C, 0x20, 0x5F, 0x5F, 0x63, 0x6F, 0x6E, 0x73, 0x74, 0x61, 0x6E, 0x74, 0x20, 0x63, 0x6F, 0x6E, 0x73, 0x74, 0x20, 0x4D, 0x73, 0x67, 0x44, 0x61, 0x74, 0x61, 0x20, 0x2A, 0x63, 0x5F, 0x6D, 0x73, 0x67, 0x2C, 0x20, 0x5F, 0x5F, 0x67, 0x6C, 0x6F, 0x62, 0x61, 0x6C, 0x20, 0x44, 0x65, 0x76, 0x48, 0x61, 0x73, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6C, 0x74, 0x20, 0x2A, 0x72, 0x65, 0x73, 0x75, 0x6C, 0x74, 0x0A, 0x09, 0x29, 0x0A, 0x23, 0x65, 0x6C, 0x73, 0x65, 0x0A, 0x09, 0x5F, 0x5F, 0x63, 0x6F, 0x6E, 0x73, 0x74, 0x61, 0x6E, 0x74, 0x5F, 0x5F, 0x20, 0x4D, 0x73, 0x67, 0x44, 0x61, 0x74, 0x61, 0x20, 0x63, 0x5F, 0x6D, 0x73, 0x67, 0x3B, 0x0A, 0x09, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6E, 0x20, 0x22, 0x43, 0x22, 0x20, 0x5F, 0x5F, 0x67, 0x6C, 0x6F, 0x62, 0x61, 0x6C, 0x5F, 0x5F, 0x20, 0x76, 0x6F, 0x69, 0x64, 0x20, 0x62, 0x69, 0x74, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5F, 0x67, 0x70, 0x75, 0x5F, 0x68, 0x61, 0x73, 0x68, 0x28, 0x75, 0x69, 0x6E, 0x74, 0x36, 0x34, 0x5F, 0x74, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5F, 0x6E, 0x6F, 0x6E, 0x63, 0x65, 0x2C, 0x20, 0x44, 0x65, 0x76, 0x48, 0x61, 0x73, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6C, 0x74, 0x20, 0x2A, 0x72, 0x65, 0x73, 0x75, 0x6C, 0x74, 0x29, 0x0A, 0x23, 0x65, 0x6E, 0x64, 0x69, 0x66, 0x0A, 0x7B, 0x0A, 0x23, 0x69, 0x66, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6E, 0x65, 0x64, 0x28, 0x5F, 0x5F, 0x4F, 0x50, 0x45, 0x4E, 0x43, 0x4C, 0x5F, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4F, 0x4E, 0x5F, 0x5F, 0x29, 0x0A, 0x09, 0x75, 0x69, 0x6E, 0x74, 0x36, 0x34, 0x5F, 0x74, 0x20, 0x69, 0x64, 0x78, 0x20, 0x3D, 0x20, 0x67, 0x65, 0x74, 0x5F, 0x67, 0x6C, 0x6F, 0x62, 0x61, 0x6C, 0x5F, 0x69, 0x64, 0x28, 0x30, 0x29, 0x3B, 0x0A, 0x09, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x32, 0x5F, 0x74, 0x20, 0x76, 0x63, 0x70, 0x75, 0x20, 0x3D, 0x20, 0x67, 0x65, 0x74, 0x5F, 0x67, 0x6C, 0x6F, 0x62, 0x61, 0x6C, 0x5F, 0x69, 0x64, 0x28, 0x31, 0x29, 0x3B, 0x0A, 0x0A, 0x09, 0x5F, 0x5F, 0x63, 0x6F, 0x6E, 0x73, 0x74, 0x61, 0x6E, 0x74, 0x20, 0x63, 0x6F, 0x6E, 0x73, 0x74, 0x20, 0x4D, 0x73, 0x67, 0x44, 0x61, 0x74, 0x61, 0x20, 0x2A, 0x6D, 0x73, 0x67, 0x20, 0x3D, 0x20, 0x63, 0x5F, 0x6D, 0x73, 0x67, 0x3B, 0x0A, 0x09, 0x5F, 0x5F, 0x63, 0x6F, 0x6E, 0x73, 0x74, 0x61, 0x6E, 0x74, 0x20, 0x63, 0x6F, 0x6E, 0x73, 0x74, 0x20, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x44, 0x61, 0x74, 0x61, 0x20, 0x2A, 0x74, 0x68, 0x72, 0x64, 0x61, 0x74, 0x61, 0x20, 0x3D, 0x20, 0x26, 0x6D, 0x73, 0x67, 0x2D, 0x3E, 0x74, 0x68, 0x72, 0x64, 0x61, 0x74, 0x61, 0x5B, 0x76, 0x63, 0x70, 0x75, 0x5D, 0x3B, 0x0A, 0x23, 0x65, 0x6C, 0x73, 0x65, 0x0A, 0x09, 0x75, 0x69, 0x6E, 0x74, 0x36, 0x34, 0x5F, 0x74, 0x20, 0x69, 0x64, 0x78, 0x20, 0x3D, 0x20, 0x62, 0x6C, 0x6F, 0x63, 0x6B, 0x49, 0x64, 0x78, 0x2E, 0x78, 0x20, 0x2A, 0x20, 0x62, 0x6C, 0x6F, 0x63, 0x6B, 0x44, 0x69, 0x6D, 0x2E, 0x78, 0x20, 0x2B, 0x20, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x49, 0x64, 0x78, 0x2E, 0x78, 0x3B, 0x0A, 0x09, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x32, 0x5F, 0x74, 0x20, 0x76, 0x63, 0x70, 0x75, 0x20, 0x3D, 0x20, 0x62, 0x6C, 0x6F, 0x63, 0x6B, 0x49, 0x64, 0x78, 0x2E, 0x79, 0x3B, 0x0A, 0x0A, 0x09, 0x63, 0x6F, 0x6E, 0x73, 0x74, 0x20, 0x4D, 0x73, 0x67, 0x44, 0x61, 0x74, 0x61, 0x20, 0x2A, 0x6D, 0x73, 0x67, 0x20, 0x3D, 0x20, 0x26, 0x63, 0x5F, 0x6D, 0x73, 0x67, 0x3B, 0x0A, 0x09, 0x63, 0x6F, 0x6E, 0x73, 0x74, 0x20, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x44, 0x61, 0x74, 0x61, 0x20, 0x2A, 0x74, 0x68, 0x72, 0x64, 0x61, 0x74, 0x61, 0x20, 0x3D, 0x20, 0x26, 0x63, 0x5F, 0x6D, 0x73, 0x67, 0x2E, 0x74, 0x68, 0x72, 0x64, 0x61, 0x74, 0x61, 0x5B, 0x76, 0x63, 0x70, 0x75, 0x5D, 0x3B, 0x0A, 0x23, 0x65, 0x6E, 0x64, 0x69, 0x66, 0x0A, 0x09, 0x0A, 0x09, 0x76, 0x65, 0x63, 0x31, 0x36, 0x75, 0x20, 0x64, 0x61, 0x74, 0x61, 0x3B, 0x0A, 0x09, 0x76, 0x65, 0x63, 0x31, 0x36, 0x75, 0x20, 0x64, 0x61, 0x74, 0x61, 0x5F, 0x32, 0x3B, 0x0A, 0x0A, 0x09, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x30, 0x78, 0x33, 0x5D, 0x20, 0x3D, 0x20, 0x6D, 0x73, 0x67, 0x2D, 0x3E, 0x70, 0x73, 0x65, 0x65, 0x64, 0x5B, 0x30, 0x5D, 0x3B, 0x0A, 0x09, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x30, 0x78, 0x34, 0x5D, 0x20, 0x3D, 0x20, 0x6D, 0x73, 0x67, 0x2D, 0x3E, 0x70, 0x73, 0x65, 0x65, 0x64, 0x5B, 0x31, 0x5D, 0x3B, 0x0A, 0x09, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x30, 0x78, 0x35, 0x5D, 0x20, 0x3D, 0x20, 0x6D, 0x73, 0x67, 0x2D, 0x3E, 0x70, 0x73, 0x65, 0x65, 0x64, 0x5B, 0x32, 0x5D, 0x3B, 0x0A, 0x09, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x30, 0x78, 0x36, 0x5D, 0x20, 0x3D, 0x20, 0x74, 0x68, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2D, 0x3E, 0x72, 0x64, 0x61, 0x74, 0x61, 0x5B, 0x33, 0x5D, 0x3B, 0x0A, 0x09, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x30, 0x78, 0x37, 0x5D, 0x20, 0x3D, 0x20, 0x74, 0x68, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2D, 0x3E, 0x72, 0x64, 0x61, 0x74, 0x61, 0x5B, 0x34, 0x5D, 0x3B, 0x0A, 0x09, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x30, 0x78, 0x38, 0x5D, 0x20, 0x3D, 0x20, 0x74, 0x68, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2D, 0x3E, 0x72, 0x64, 0x61, 0x74, 0x61, 0x5B, 0x35, 0x5D, 0x3B, 0x0A, 0x09, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x30, 0x78, 0x39, 0x5D, 0x20, 0x3D, 0x20, 0x74, 0x68, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2D, 0x3E, 0x72, 0x64, 0x61, 0x74, 0x61, 0x5B, 0x36, 0x5D, 0x3B, 0x0A, 0x09, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x30, 0x78, 0x41, 0x5D, 0x20, 0x3D, 0x20, 0x74, 0x68, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2D, 0x3E, 0x72, 0x64, 0x61, 0x74, 0x61, 0x5B, 0x37, 0x5D, 0x3B, 0x0A, 0x09, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x30, 0x78, 0x42, 0x5D, 0x20, 0x3D, 0x20, 0x74, 0x68, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2D, 0x3E, 0x72, 0x64, 0x61, 0x74, 0x61, 0x5B, 0x38, 0x5D, 0x3B, 0x0A, 0x0A, 0x09, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x30, 0x78, 0x46, 0x5D, 0x20, 0x3D, 0x20, 0x30, 0x78, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3B, 0x0A, 0x09, 0x0A, 0x09, 0x2F, 0x2F, 0x2A, 0x0A, 0x09, 0x64, 0x61, 0x74, 0x61, 0x5F, 0x32, 0x2E, 0x76, 0x5B, 0x30, 0x78, 0x30, 0x5D, 0x20, 0x3D, 0x20, 0x30, 0x78, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3B, 0x0A, 0x09, 0x64, 0x61, 0x74, 0x61, 0x5F, 0x32, 0x2E, 0x76, 0x5B, 0x30, 0x78, 0x31, 0x5D, 0x20, 0x3D, 0x20, 0x30, 0x78, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3B, 0x0A, 0x09, 0x64, 0x61, 0x74, 0x61, 0x5F, 0x32, 0x2E, 0x76, 0x5B, 0x30, 0x78, 0x32, 0x5D, 0x20, 0x3D, 0x20, 0x30, 0x78, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3B, 0x0A, 0x09, 0x64, 0x61, 0x74, 0x61, 0x5F, 0x32, 0x2E, 0x76, 0x5B, 0x30, 0x78, 0x33, 0x5D, 0x20, 0x3D, 0x20, 0x30, 0x78, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3B, 0x0A, 0x09, 0x64, 0x61, 0x74, 0x61, 0x5F, 0x32, 0x2E, 0x76, 0x5B, 0x30, 0x78, 0x34, 0x5D, 0x20, 0x3D, 0x20, 0x30, 0x78, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3B, 0x0A, 0x09, 0x64, 0x61, 0x74, 0x61, 0x5F, 0x32, 0x2E, 0x76, 0x5B, 0x30, 0x78, 0x35, 0x5D, 0x20, 0x3D, 0x20, 0x30, 0x78, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3B, 0x0A, 0x09, 0x64, 0x61, 0x74, 0x61, 0x5F, 0x32, 0x2E, 0x76, 0x5B, 0x30, 0x78, 0x36, 0x5D, 0x20, 0x3D, 0x20, 0x30, 0x78, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3B, 0x0A, 0x09, 0x64, 0x61, 0x74, 0x61, 0x5F, 0x32, 0x2E, 0x76, 0x5B, 0x30, 0x78, 0x37, 0x5D, 0x20, 0x3D, 0x20, 0x30, 0x78, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3B, 0x0A, 0x09, 0x64, 0x61, 0x74, 0x61, 0x5F, 0x32, 0x2E, 0x76, 0x5B, 0x30, 0x78, 0x38, 0x5D, 0x20, 0x3D, 0x20, 0x30, 0x78, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3B, 0x0A, 0x09, 0x64, 0x61, 0x74, 0x61, 0x5F, 0x32, 0x2E, 0x76, 0x5B, 0x30, 0x78, 0x39, 0x5D, 0x20, 0x3D, 0x20, 0x30, 0x78, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3B, 0x0A, 0x09, 0x64, 0x61, 0x74, 0x61, 0x5F, 0x32, 0x2E, 0x76, 0x5B, 0x30, 0x78, 0x41, 0x5D, 0x20, 0x3D, 0x20, 0x30, 0x78, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3B, 0x0A, 0x09, 0x64, 0x61, 0x74, 0x61, 0x5F, 0x32, 0x2E, 0x76, 0x5B, 0x30, 0x78, 0x42, 0x5D, 0x20, 0x3D, 0x20, 0x30, 0x78, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3B, 0x0A, 0x09, 0x64, 0x61, 0x74, 0x61, 0x5F, 0x32, 0x2E, 0x76, 0x5B, 0x30, 0x78, 0x43, 0x5D, 0x20, 0x3D, 0x20, 0x30, 0x78, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3B, 0x0A, 0x09, 0x64, 0x61, 0x74, 0x61, 0x5F, 0x32, 0x2E, 0x76, 0x5B, 0x30, 0x78, 0x44, 0x5D, 0x20, 0x3D, 0x20, 0x30, 0x78, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3B, 0x0A, 0x09, 0x64, 0x61, 0x74, 0x61, 0x5F, 0x32, 0x2E, 0x76, 0x5B, 0x30, 0x78, 0x45, 0x5D, 0x20, 0x3D, 0x20, 0x30, 0x78, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3B, 0x0A, 0x09, 0x64, 0x61, 0x74, 0x61, 0x5F, 0x32, 0x2E, 0x76, 0x5B, 0x30, 0x78, 0x46, 0x5D, 0x20, 0x3D, 0x20, 0x30, 0x78, 0x30, 0x30, 0x30, 0x30, 0x30, 0x33, 0x64, 0x38, 0x3B, 0x0A, 0x09, 0x2F, 0x2F, 0x2A, 0x2F, 0x0A, 0x09, 0x0A, 0x09, 0x2F, 0x2F, 0x20, 0x70, 0x72, 0x69, 0x6E, 0x74, 0x66, 0x28, 0x22, 0x48, 0x50, 0x46, 0x3D, 0x25, 0x64, 0x20, 0x54, 0x48, 0x52, 0x4F, 0x55, 0x47, 0x48, 0x50, 0x55, 0x54, 0x3D, 0x25, 0x64, 0x5C, 0x6E, 0x22, 0x2C, 0x20, 0x48, 0x50, 0x46, 0x2C, 0x20, 0x54, 0x48, 0x52, 0x4F, 0x55, 0x47, 0x48, 0x50, 0x55, 0x54, 0x29, 0x3B, 0x0A, 0x09, 0x09, 0x09, 0x0A, 0x09, 0x75, 0x69, 0x6E, 0x74, 0x36, 0x34, 0x5F, 0x74, 0x20, 0x6E, 0x6F, 0x6E, 0x63, 0x65, 0x20, 0x3D, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5F, 0x6E, 0x6F, 0x6E, 0x63, 0x65, 0x20, 0x2B, 0x20, 0x69, 0x64, 0x78, 0x3B, 0x0A, 0x09, 0x0A, 0x09, 0x66, 0x6F, 0x72, 0x28, 0x20, 0x69, 0x6E, 0x74, 0x20, 0x69, 0x20, 0x3D, 0x20, 0x30, 0x3B, 0x20, 0x69, 0x20, 0x3C, 0x20, 0x48, 0x50, 0x46, 0x3B, 0x20, 0x69, 0x2B, 0x2B, 0x20, 0x29, 0x20, 0x7B, 0x0A, 0x09, 0x0A, 0x09, 0x09, 0x76, 0x65, 0x63, 0x38, 0x75, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x20, 0x3D, 0x20, 0x74, 0x68, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2D, 0x3E, 0x73, 0x74, 0x61, 0x74, 0x65, 0x3B, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x0A, 0x09, 0x09, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x32, 0x5F, 0x74, 0x20, 0x72, 0x64, 0x61, 0x74, 0x61, 0x36, 0x20, 0x3D, 0x20, 0x74, 0x68, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2D, 0x3E, 0x72, 0x64, 0x61, 0x74, 0x61, 0x5B, 0x30, 0x5D, 0x2C, 0x20, 0x72, 0x64, 0x61, 0x74, 0x61, 0x37, 0x20, 0x3D, 0x20, 0x74, 0x68, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2D, 0x3E, 0x72, 0x64, 0x61, 0x74, 0x61, 0x5B, 0x31, 0x5D, 0x2C, 0x20, 0x72, 0x64, 0x61, 0x74, 0x61, 0x38, 0x20, 0x3D, 0x20, 0x74, 0x68, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2D, 0x3E, 0x72, 0x64, 0x61, 0x74, 0x61, 0x5B, 0x32, 0x5D, 0x3B, 0x0A, 0x09, 0x09, 0x75, 0x69, 0x6E, 0x74, 0x36, 0x34, 0x5F, 0x74, 0x20, 0x72, 0x64, 0x61, 0x74, 0x61, 0x20, 0x3D, 0x20, 0x28, 0x28, 0x28, 0x75, 0x69, 0x6E, 0x74, 0x36, 0x34, 0x5F, 0x74, 0x29, 0x72, 0x64, 0x61, 0x74, 0x61, 0x36, 0x20, 0x3C, 0x3C, 0x20, 0x35, 0x36, 0x29, 0x20, 0x7C, 0x20, 0x28, 0x28, 0x75, 0x69, 0x6E, 0x74, 0x36, 0x34, 0x5F, 0x74, 0x29, 0x72, 0x64, 0x61, 0x74, 0x61, 0x37, 0x20, 0x3C, 0x3C, 0x20, 0x32, 0x34, 0x29, 0x20, 0x7C, 0x20, 0x28, 0x28, 0x75, 0x69, 0x6E, 0x74, 0x36, 0x34, 0x5F, 0x74, 0x29, 0x72, 0x64, 0x61, 0x74, 0x61, 0x38, 0x20, 0x3E, 0x3E, 0x20, 0x38, 0x29, 0x29, 0x20, 0x2B, 0x20, 0x6E, 0x6F, 0x6E, 0x63, 0x65, 0x3B, 0x0A, 0x0A, 0x09, 0x09, 0x72, 0x64, 0x61, 0x74, 0x61, 0x36, 0x20, 0x3D, 0x20, 0x28, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x32, 0x5F, 0x74, 0x29, 0x28, 0x72, 0x64, 0x61, 0x74, 0x61, 0x20, 0x3E, 0x3E, 0x20, 0x35, 0x36, 0x29, 0x20, 0x7C, 0x20, 0x28, 0x72, 0x64, 0x61, 0x74, 0x61, 0x36, 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x30, 0x30, 0x29, 0x3B, 0x0A, 0x09, 0x09, 0x72, 0x64, 0x61, 0x74, 0x61, 0x37, 0x20, 0x3D, 0x20, 0x28, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x32, 0x5F, 0x74, 0x29, 0x28, 0x72, 0x64, 0x61, 0x74, 0x61, 0x20, 0x3E, 0x3E, 0x20, 0x32, 0x34, 0x29, 0x3B, 0x0A, 0x0A, 0x09, 0x09, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x32, 0x5F, 0x74, 0x20, 0x72, 0x64, 0x61, 0x74, 0x61, 0x31, 0x30, 0x20, 0x3D, 0x20, 0x28, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x32, 0x5F, 0x74, 0x29, 0x28, 0x72, 0x64, 0x61, 0x74, 0x61, 0x20, 0x3C, 0x3C, 0x20, 0x38, 0x29, 0x20, 0x7C, 0x20, 0x30, 0x78, 0x38, 0x30, 0x3B, 0x0A, 0x09, 0x09, 0x72, 0x64, 0x61, 0x74, 0x61, 0x38, 0x20, 0x3D, 0x20, 0x28, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x32, 0x5F, 0x74, 0x29, 0x28, 0x72, 0x64, 0x61, 0x74, 0x61, 0x20, 0x3C, 0x3C, 0x20, 0x38, 0x29, 0x20, 0x7C, 0x20, 0x28, 0x72, 0x64, 0x61, 0x74, 0x61, 0x38, 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, 0x29, 0x3B, 0x0A, 0x0A, 0x09, 0x09, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x30, 0x78, 0x30, 0x5D, 0x20, 0x3D, 0x20, 0x72, 0x64, 0x61, 0x74, 0x61, 0x36, 0x3B, 0x0A, 0x09, 0x09, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x30, 0x78, 0x31, 0x5D, 0x20, 0x3D, 0x20, 0x72, 0x64, 0x61, 0x74, 0x61, 0x37, 0x3B, 0x0A, 0x09, 0x09, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x30, 0x78, 0x32, 0x5D, 0x20, 0x3D, 0x20, 0x72, 0x64, 0x61, 0x74, 0x61, 0x38, 0x3B, 0x0A, 0x0A, 0x09, 0x09, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x30, 0x78, 0x43, 0x5D, 0x20, 0x3D, 0x20, 0x72, 0x64, 0x61, 0x74, 0x61, 0x36, 0x3B, 0x0A, 0x09, 0x09, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x30, 0x78, 0x44, 0x5D, 0x20, 0x3D, 0x20, 0x72, 0x64, 0x61, 0x74, 0x61, 0x37, 0x3B, 0x0A, 0x09, 0x09, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x30, 0x78, 0x45, 0x5D, 0x20, 0x3D, 0x20, 0x72, 0x64, 0x61, 0x74, 0x61, 0x31, 0x30, 0x3B, 0x0A, 0x09, 0x09, 0x0A, 0x0A, 0x09, 0x09, 0x2F, 0x2A, 0x69, 0x66, 0x20, 0x28, 0x76, 0x63, 0x70, 0x75, 0x20, 0x3D, 0x3D, 0x20, 0x30, 0x20, 0x26, 0x26, 0x20, 0x69, 0x64, 0x78, 0x20, 0x3D, 0x3D, 0x20, 0x30, 0x29, 0x0A, 0x09, 0x09, 0x09, 0x70, 0x72, 0x69, 0x6E, 0x74, 0x66, 0x28, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x22, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x5C, 0x6E, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x5C, 0x6E, 0x5C, 0x6E, 0x22, 0x2C, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x30, 0x5D, 0x2C, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x31, 0x5D, 0x2C, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x32, 0x5D, 0x2C, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x33, 0x5D, 0x2C, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x34, 0x5D, 0x2C, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x35, 0x5D, 0x2C, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x36, 0x5D, 0x2C, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x37, 0x5D, 0x2C, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x38, 0x5D, 0x2C, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x39, 0x5D, 0x2C, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x31, 0x30, 0x5D, 0x2C, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x31, 0x31, 0x5D, 0x2C, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x31, 0x32, 0x5D, 0x2C, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x31, 0x33, 0x5D, 0x2C, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x31, 0x34, 0x5D, 0x2C, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x31, 0x35, 0x5D, 0x0A, 0x09, 0x09, 0x09, 0x29, 0x3B, 0x2A, 0x2F, 0x0A, 0x0A, 0x09, 0x09, 0x73, 0x74, 0x61, 0x74, 0x65, 0x20, 0x3D, 0x20, 0x73, 0x68, 0x61, 0x32, 0x35, 0x36, 0x5F, 0x74, 0x72, 0x61, 0x6E, 0x73, 0x66, 0x6F, 0x72, 0x6D, 0x28, 0x64, 0x61, 0x74, 0x61, 0x2C, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x29, 0x3B, 0x0A, 0x0A, 0x09, 0x09, 0x0A, 0x09, 0x09, 0x2F, 0x2A, 0x69, 0x66, 0x20, 0x28, 0x76, 0x63, 0x70, 0x75, 0x20, 0x3D, 0x3D, 0x20, 0x30, 0x20, 0x26, 0x26, 0x20, 0x69, 0x64, 0x78, 0x20, 0x3D, 0x3D, 0x20, 0x30, 0x29, 0x0A, 0x09, 0x09, 0x09, 0x70, 0x72, 0x69, 0x6E, 0x74, 0x66, 0x28, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x22, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x5C, 0x6E, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x5C, 0x6E, 0x5C, 0x6E, 0x22, 0x2C, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x30, 0x5D, 0x2C, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x31, 0x5D, 0x2C, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x32, 0x5D, 0x2C, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x33, 0x5D, 0x2C, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x34, 0x5D, 0x2C, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x35, 0x5D, 0x2C, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x36, 0x5D, 0x2C, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x37, 0x5D, 0x2C, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x38, 0x5D, 0x2C, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x39, 0x5D, 0x2C, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x31, 0x30, 0x5D, 0x2C, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x31, 0x31, 0x5D, 0x2C, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x31, 0x32, 0x5D, 0x2C, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x31, 0x33, 0x5D, 0x2C, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x31, 0x34, 0x5D, 0x2C, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x31, 0x35, 0x5D, 0x0A, 0x09, 0x09, 0x09, 0x29, 0x3B, 0x2A, 0x2F, 0x0A, 0x0A, 0x09, 0x09, 0x73, 0x74, 0x61, 0x74, 0x65, 0x20, 0x3D, 0x20, 0x73, 0x68, 0x61, 0x32, 0x35, 0x36, 0x5F, 0x74, 0x72, 0x61, 0x6E, 0x73, 0x66, 0x6F, 0x72, 0x6D, 0x5F, 0x32, 0x28, 0x64, 0x61, 0x74, 0x61, 0x5F, 0x32, 0x2C, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x29, 0x3B, 0x0A, 0x0A, 0x09, 0x09, 0x2F, 0x2A, 0x0A, 0x09, 0x09, 0x70, 0x72, 0x69, 0x6E, 0x74, 0x66, 0x28, 0x20, 0x22, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x5C, 0x6E, 0x5C, 0x6E, 0x22, 0x2C, 0x0A, 0x09, 0x09, 0x09, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x30, 0x5D, 0x2C, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x31, 0x5D, 0x2C, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x32, 0x5D, 0x2C, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x33, 0x5D, 0x2C, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x34, 0x5D, 0x2C, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x35, 0x5D, 0x2C, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x36, 0x5D, 0x2C, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x37, 0x5D, 0x20, 0x29, 0x3B, 0x0A, 0x09, 0x09, 0x2F, 0x2F, 0x2A, 0x2F, 0x0A, 0x09, 0x09, 0x0A, 0x09, 0x09, 0x2F, 0x2A, 0x69, 0x66, 0x20, 0x28, 0x76, 0x63, 0x70, 0x75, 0x20, 0x3D, 0x3D, 0x20, 0x30, 0x20, 0x26, 0x26, 0x20, 0x69, 0x64, 0x78, 0x20, 0x3D, 0x3D, 0x20, 0x30, 0x29, 0x0A, 0x09, 0x09, 0x09, 0x70, 0x72, 0x69, 0x6E, 0x74, 0x66, 0x28, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x22, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x5C, 0x6E, 0x5C, 0x6E, 0x22, 0x2C, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x30, 0x5D, 0x2C, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x31, 0x5D, 0x2C, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x32, 0x5D, 0x2C, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x33, 0x5D, 0x2C, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x34, 0x5D, 0x2C, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x35, 0x5D, 0x2C, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x36, 0x5D, 0x2C, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x37, 0x5D, 0x0A, 0x09, 0x09, 0x09, 0x29, 0x3B, 0x2A, 0x2F, 0x0A, 0x0A, 0x0A, 0x09, 0x09, 0x66, 0x6F, 0x72, 0x20, 0x28, 0x69, 0x6E, 0x74, 0x20, 0x69, 0x20, 0x3D, 0x20, 0x30, 0x3B, 0x20, 0x69, 0x20, 0x3C, 0x20, 0x38, 0x3B, 0x20, 0x69, 0x20, 0x2B, 0x3D, 0x20, 0x31, 0x29, 0x0A, 0x09, 0x09, 0x7B, 0x0A, 0x09, 0x09, 0x09, 0x0A, 0x09, 0x09, 0x09, 0x69, 0x66, 0x20, 0x28, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x69, 0x5D, 0x20, 0x3E, 0x20, 0x6D, 0x73, 0x67, 0x2D, 0x3E, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x2E, 0x76, 0x5B, 0x69, 0x5D, 0x29, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x2F, 0x2F, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6E, 0x3B, 0x0A, 0x09, 0x09, 0x09, 0x20, 0x20, 0x20, 0x20, 0x67, 0x6F, 0x74, 0x6F, 0x20, 0x6E, 0x65, 0x78, 0x74, 0x5F, 0x74, 0x72, 0x79, 0x3B, 0x0A, 0x09, 0x0A, 0x09, 0x09, 0x09, 0x69, 0x66, 0x20, 0x28, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x69, 0x5D, 0x20, 0x3C, 0x20, 0x6D, 0x73, 0x67, 0x2D, 0x3E, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x2E, 0x76, 0x5B, 0x69, 0x5D, 0x29, 0x0A, 0x09, 0x09, 0x09, 0x7B, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x0A, 0x09, 0x23, 0x69, 0x66, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6E, 0x65, 0x64, 0x28, 0x5F, 0x5F, 0x4F, 0x50, 0x45, 0x4E, 0x43, 0x4C, 0x5F, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4F, 0x4E, 0x5F, 0x5F, 0x29, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x69, 0x66, 0x20, 0x28, 0x61, 0x74, 0x6F, 0x6D, 0x69, 0x63, 0x5F, 0x61, 0x64, 0x64, 0x28, 0x26, 0x72, 0x65, 0x73, 0x75, 0x6C, 0x74, 0x2D, 0x3E, 0x66, 0x6F, 0x75, 0x6E, 0x64, 0x2C, 0x20, 0x31, 0x29, 0x20, 0x3D, 0x3D, 0x20, 0x30, 0x29, 0x0A, 0x09, 0x23, 0x65, 0x6C, 0x73, 0x65, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x69, 0x66, 0x20, 0x28, 0x61, 0x74, 0x6F, 0x6D, 0x69, 0x63, 0x41, 0x64, 0x64, 0x28, 0x26, 0x72, 0x65, 0x73, 0x75, 0x6C, 0x74, 0x2D, 0x3E, 0x66, 0x6F, 0x75, 0x6E, 0x64, 0x2C, 0x20, 0x31, 0x29, 0x20, 0x3D, 0x3D, 0x20, 0x30, 0x29, 0x0A, 0x09, 0x23, 0x65, 0x6E, 0x64, 0x69, 0x66, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x09, 0x72, 0x65, 0x73, 0x75, 0x6C, 0x74, 0x2D, 0x3E, 0x6E, 0x6F, 0x6E, 0x63, 0x65, 0x20, 0x3D, 0x20, 0x6E, 0x6F, 0x6E, 0x63, 0x65, 0x2C, 0x20, 0x72, 0x65, 0x73, 0x75, 0x6C, 0x74, 0x2D, 0x3E, 0x76, 0x63, 0x70, 0x75, 0x20, 0x3D, 0x20, 0x76, 0x63, 0x70, 0x75, 0x3B, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x09, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6E, 0x3B, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x0A, 0x09, 0x09, 0x09, 0x7D, 0x0A, 0x09, 0x09, 0x09, 0x0A, 0x09, 0x09, 0x7D, 0x0A, 0x09, 0x09, 0x0A, 0x09, 0x09, 0x6E, 0x65, 0x78, 0x74, 0x5F, 0x74, 0x72, 0x79, 0x20, 0x3A, 0x20, 0x3B, 0x0A, 0x09, 0x09, 0x0A, 0x09, 0x09, 0x6E, 0x6F, 0x6E, 0x63, 0x65, 0x20, 0x2B, 0x3D, 0x20, 0x54, 0x48, 0x52, 0x4F, 0x55, 0x47, 0x48, 0x50, 0x55, 0x54, 0x3B, 0x3B, 0x0A, 0x09, 0x09, 0x0A, 0x09, 0x7D, 0x0A, 0x09, 0x0A, 0x7D, 0x0A, 0x0A, 0x23, 0x65, 0x6E, 0x64, 0x69, 0x66, 0x0A, 0x0A, 0x0A, 0x23, 0x65, 0x6E, 0x64, 0x69, 0x66, 0x0A + 0x23, 0x69, 0x66, 0x6E, 0x64, 0x65, 0x66, 0x20, 0x5F, 0x5F, 0x43, 0x52, 0x55, 0x4E, 0x43, 0x48, 0x45, 0x52, 0x5F, 0x48, 0x5F, 0x5F, 0x0A, 0x23, 0x64, 0x65, 0x66, 0x69, 0x6E, 0x65, 0x20, 0x5F, 0x5F, 0x43, 0x52, 0x55, 0x4E, 0x43, 0x48, 0x45, 0x52, 0x5F, 0x48, 0x5F, 0x5F, 0x0A, 0x0A, 0x0A, 0x23, 0x64, 0x65, 0x66, 0x69, 0x6E, 0x65, 0x20, 0x4D, 0x41, 0x58, 0x5F, 0x47, 0x50, 0x55, 0x5F, 0x54, 0x48, 0x52, 0x45, 0x41, 0x44, 0x53, 0x20, 0x31, 0x36, 0x0A, 0x0A, 0x0A, 0x23, 0x69, 0x66, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6E, 0x65, 0x64, 0x28, 0x5F, 0x5F, 0x4F, 0x50, 0x45, 0x4E, 0x43, 0x4C, 0x5F, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4F, 0x4E, 0x5F, 0x5F, 0x29, 0x0A, 0x09, 0x74, 0x79, 0x70, 0x65, 0x64, 0x65, 0x66, 0x20, 0x75, 0x69, 0x6E, 0x74, 0x20, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x32, 0x5F, 0x74, 0x3B, 0x0A, 0x09, 0x74, 0x79, 0x70, 0x65, 0x64, 0x65, 0x66, 0x20, 0x75, 0x6C, 0x6F, 0x6E, 0x67, 0x20, 0x75, 0x69, 0x6E, 0x74, 0x36, 0x34, 0x5F, 0x74, 0x3B, 0x0A, 0x23, 0x65, 0x6C, 0x73, 0x65, 0x0A, 0x09, 0x23, 0x69, 0x66, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6E, 0x65, 0x64, 0x28, 0x5F, 0x5F, 0x4E, 0x56, 0x43, 0x43, 0x5F, 0x5F, 0x29, 0x0A, 0x09, 0x09, 0x23, 0x69, 0x6E, 0x63, 0x6C, 0x75, 0x64, 0x65, 0x20, 0x3C, 0x63, 0x75, 0x64, 0x61, 0x5F, 0x72, 0x75, 0x6E, 0x74, 0x69, 0x6D, 0x65, 0x2E, 0x68, 0x3E, 0x0A, 0x09, 0x09, 0x23, 0x69, 0x6E, 0x63, 0x6C, 0x75, 0x64, 0x65, 0x20, 0x3C, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5F, 0x6C, 0x61, 0x75, 0x6E, 0x63, 0x68, 0x5F, 0x70, 0x61, 0x72, 0x61, 0x6D, 0x65, 0x74, 0x65, 0x72, 0x73, 0x2E, 0x68, 0x3E, 0x0A, 0x09, 0x23, 0x65, 0x6E, 0x64, 0x69, 0x66, 0x0A, 0x0A, 0x09, 0x23, 0x69, 0x6E, 0x63, 0x6C, 0x75, 0x64, 0x65, 0x20, 0x3C, 0x73, 0x74, 0x64, 0x69, 0x6E, 0x74, 0x2E, 0x68, 0x3E, 0x0A, 0x23, 0x65, 0x6E, 0x64, 0x69, 0x66, 0x0A, 0x0A, 0x0A, 0x23, 0x64, 0x65, 0x66, 0x69, 0x6E, 0x65, 0x20, 0x52, 0x4F, 0x54, 0x52, 0x49, 0x47, 0x48, 0x54, 0x28, 0x61, 0x2C, 0x20, 0x62, 0x29, 0x20, 0x28, 0x28, 0x28, 0x61, 0x29, 0x20, 0x3E, 0x3E, 0x20, 0x28, 0x62, 0x29, 0x29, 0x20, 0x7C, 0x20, 0x28, 0x28, 0x61, 0x29, 0x20, 0x3C, 0x3C, 0x20, 0x28, 0x33, 0x32, 0x20, 0x2D, 0x20, 0x28, 0x62, 0x29, 0x29, 0x29, 0x29, 0x0A, 0x0A, 0x23, 0x64, 0x65, 0x66, 0x69, 0x6E, 0x65, 0x20, 0x43, 0x48, 0x28, 0x78, 0x2C, 0x20, 0x79, 0x2C, 0x20, 0x7A, 0x29, 0x20, 0x28, 0x28, 0x28, 0x78, 0x29, 0x20, 0x26, 0x20, 0x28, 0x79, 0x29, 0x29, 0x20, 0x5E, 0x20, 0x28, 0x7E, 0x28, 0x78, 0x29, 0x20, 0x26, 0x20, 0x28, 0x7A, 0x29, 0x29, 0x29, 0x0A, 0x23, 0x64, 0x65, 0x66, 0x69, 0x6E, 0x65, 0x20, 0x4D, 0x41, 0x4A, 0x28, 0x78, 0x2C, 0x20, 0x79, 0x2C, 0x20, 0x7A, 0x29, 0x20, 0x28, 0x28, 0x28, 0x78, 0x29, 0x20, 0x26, 0x20, 0x28, 0x79, 0x29, 0x29, 0x20, 0x5E, 0x20, 0x28, 0x28, 0x78, 0x29, 0x20, 0x26, 0x20, 0x28, 0x7A, 0x29, 0x29, 0x20, 0x5E, 0x20, 0x28, 0x28, 0x79, 0x29, 0x20, 0x26, 0x20, 0x28, 0x7A, 0x29, 0x29, 0x29, 0x0A, 0x23, 0x64, 0x65, 0x66, 0x69, 0x6E, 0x65, 0x20, 0x45, 0x50, 0x30, 0x28, 0x78, 0x29, 0x20, 0x28, 0x52, 0x4F, 0x54, 0x52, 0x49, 0x47, 0x48, 0x54, 0x28, 0x78, 0x2C, 0x20, 0x32, 0x29, 0x20, 0x5E, 0x20, 0x52, 0x4F, 0x54, 0x52, 0x49, 0x47, 0x48, 0x54, 0x28, 0x78, 0x2C, 0x20, 0x31, 0x33, 0x29, 0x20, 0x5E, 0x20, 0x52, 0x4F, 0x54, 0x52, 0x49, 0x47, 0x48, 0x54, 0x28, 0x78, 0x2C, 0x20, 0x32, 0x32, 0x29, 0x29, 0x0A, 0x23, 0x64, 0x65, 0x66, 0x69, 0x6E, 0x65, 0x20, 0x45, 0x50, 0x31, 0x28, 0x78, 0x29, 0x20, 0x28, 0x52, 0x4F, 0x54, 0x52, 0x49, 0x47, 0x48, 0x54, 0x28, 0x78, 0x2C, 0x20, 0x36, 0x29, 0x20, 0x5E, 0x20, 0x52, 0x4F, 0x54, 0x52, 0x49, 0x47, 0x48, 0x54, 0x28, 0x78, 0x2C, 0x20, 0x31, 0x31, 0x29, 0x20, 0x5E, 0x20, 0x52, 0x4F, 0x54, 0x52, 0x49, 0x47, 0x48, 0x54, 0x28, 0x78, 0x2C, 0x20, 0x32, 0x35, 0x29, 0x29, 0x0A, 0x23, 0x64, 0x65, 0x66, 0x69, 0x6E, 0x65, 0x20, 0x53, 0x49, 0x47, 0x30, 0x28, 0x78, 0x29, 0x20, 0x28, 0x52, 0x4F, 0x54, 0x52, 0x49, 0x47, 0x48, 0x54, 0x28, 0x78, 0x2C, 0x20, 0x37, 0x29, 0x20, 0x5E, 0x20, 0x52, 0x4F, 0x54, 0x52, 0x49, 0x47, 0x48, 0x54, 0x28, 0x78, 0x2C, 0x20, 0x31, 0x38, 0x29, 0x20, 0x5E, 0x20, 0x28, 0x28, 0x78, 0x29, 0x20, 0x3E, 0x3E, 0x20, 0x33, 0x29, 0x29, 0x0A, 0x23, 0x64, 0x65, 0x66, 0x69, 0x6E, 0x65, 0x20, 0x53, 0x49, 0x47, 0x31, 0x28, 0x78, 0x29, 0x20, 0x28, 0x52, 0x4F, 0x54, 0x52, 0x49, 0x47, 0x48, 0x54, 0x28, 0x78, 0x2C, 0x20, 0x31, 0x37, 0x29, 0x20, 0x5E, 0x20, 0x52, 0x4F, 0x54, 0x52, 0x49, 0x47, 0x48, 0x54, 0x28, 0x78, 0x2C, 0x20, 0x31, 0x39, 0x29, 0x20, 0x5E, 0x20, 0x28, 0x28, 0x78, 0x29, 0x20, 0x3E, 0x3E, 0x20, 0x31, 0x30, 0x29, 0x29, 0x0A, 0x0A, 0x0A, 0x74, 0x79, 0x70, 0x65, 0x64, 0x65, 0x66, 0x20, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x20, 0x76, 0x65, 0x63, 0x38, 0x75, 0x0A, 0x7B, 0x0A, 0x09, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x32, 0x5F, 0x74, 0x20, 0x76, 0x5B, 0x38, 0x5D, 0x3B, 0x0A, 0x7D, 0x0A, 0x76, 0x65, 0x63, 0x38, 0x75, 0x3B, 0x0A, 0x0A, 0x0A, 0x74, 0x79, 0x70, 0x65, 0x64, 0x65, 0x66, 0x20, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x20, 0x76, 0x65, 0x63, 0x31, 0x36, 0x75, 0x0A, 0x7B, 0x0A, 0x09, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x32, 0x5F, 0x74, 0x20, 0x76, 0x5B, 0x31, 0x36, 0x5D, 0x3B, 0x0A, 0x7D, 0x0A, 0x76, 0x65, 0x63, 0x31, 0x36, 0x75, 0x3B, 0x0A, 0x0A, 0x0A, 0x74, 0x79, 0x70, 0x65, 0x64, 0x65, 0x66, 0x20, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x20, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x44, 0x61, 0x74, 0x61, 0x0A, 0x7B, 0x0A, 0x09, 0x76, 0x65, 0x63, 0x38, 0x75, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x3B, 0x0A, 0x09, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x32, 0x5F, 0x74, 0x20, 0x72, 0x64, 0x61, 0x74, 0x61, 0x5B, 0x39, 0x5D, 0x3B, 0x0A, 0x7D, 0x0A, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x44, 0x61, 0x74, 0x61, 0x3B, 0x0A, 0x0A, 0x0A, 0x74, 0x79, 0x70, 0x65, 0x64, 0x65, 0x66, 0x20, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x20, 0x4D, 0x73, 0x67, 0x44, 0x61, 0x74, 0x61, 0x0A, 0x7B, 0x0A, 0x09, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x32, 0x5F, 0x74, 0x20, 0x70, 0x73, 0x65, 0x65, 0x64, 0x5B, 0x33, 0x5D, 0x3B, 0x0A, 0x09, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x44, 0x61, 0x74, 0x61, 0x20, 0x74, 0x68, 0x72, 0x64, 0x61, 0x74, 0x61, 0x5B, 0x4D, 0x41, 0x58, 0x5F, 0x47, 0x50, 0x55, 0x5F, 0x54, 0x48, 0x52, 0x45, 0x41, 0x44, 0x53, 0x5D, 0x3B, 0x0A, 0x09, 0x76, 0x65, 0x63, 0x38, 0x75, 0x20, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x3B, 0x0A, 0x7D, 0x0A, 0x4D, 0x73, 0x67, 0x44, 0x61, 0x74, 0x61, 0x3B, 0x0A, 0x0A, 0x0A, 0x23, 0x69, 0x66, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6E, 0x65, 0x64, 0x28, 0x5F, 0x5F, 0x4E, 0x56, 0x43, 0x43, 0x5F, 0x5F, 0x29, 0x0A, 0x5F, 0x5F, 0x66, 0x6F, 0x72, 0x63, 0x65, 0x69, 0x6E, 0x6C, 0x69, 0x6E, 0x65, 0x5F, 0x5F, 0x20, 0x5F, 0x5F, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5F, 0x5F, 0x20, 0x5F, 0x5F, 0x68, 0x6F, 0x73, 0x74, 0x5F, 0x5F, 0x0A, 0x23, 0x65, 0x6C, 0x73, 0x65, 0x0A, 0x69, 0x6E, 0x6C, 0x69, 0x6E, 0x65, 0x0A, 0x23, 0x65, 0x6E, 0x64, 0x69, 0x66, 0x0A, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x20, 0x76, 0x65, 0x63, 0x38, 0x75, 0x20, 0x73, 0x68, 0x61, 0x32, 0x35, 0x36, 0x5F, 0x74, 0x72, 0x61, 0x6E, 0x73, 0x66, 0x6F, 0x72, 0x6D, 0x28, 0x76, 0x65, 0x63, 0x31, 0x36, 0x75, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2C, 0x20, 0x76, 0x65, 0x63, 0x38, 0x75, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x29, 0x0A, 0x7B, 0x0A, 0x09, 0x63, 0x6F, 0x6E, 0x73, 0x74, 0x20, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x32, 0x5F, 0x74, 0x20, 0x6B, 0x73, 0x68, 0x61, 0x5B, 0x5D, 0x20, 0x3D, 0x20, 0x7B, 0x0A, 0x09, 0x09, 0x30, 0x78, 0x34, 0x32, 0x38, 0x41, 0x32, 0x46, 0x39, 0x38, 0x2C, 0x20, 0x30, 0x78, 0x37, 0x31, 0x33, 0x37, 0x34, 0x34, 0x39, 0x31, 0x2C, 0x20, 0x30, 0x78, 0x42, 0x35, 0x43, 0x30, 0x46, 0x42, 0x43, 0x46, 0x2C, 0x20, 0x30, 0x78, 0x45, 0x39, 0x42, 0x35, 0x44, 0x42, 0x41, 0x35, 0x2C, 0x20, 0x30, 0x78, 0x33, 0x39, 0x35, 0x36, 0x43, 0x32, 0x35, 0x42, 0x2C, 0x20, 0x30, 0x78, 0x35, 0x39, 0x46, 0x31, 0x31, 0x31, 0x46, 0x31, 0x2C, 0x20, 0x30, 0x78, 0x39, 0x32, 0x33, 0x46, 0x38, 0x32, 0x41, 0x34, 0x2C, 0x20, 0x30, 0x78, 0x41, 0x42, 0x31, 0x43, 0x35, 0x45, 0x44, 0x35, 0x2C, 0x0A, 0x09, 0x09, 0x30, 0x78, 0x44, 0x38, 0x30, 0x37, 0x41, 0x41, 0x39, 0x38, 0x2C, 0x20, 0x30, 0x78, 0x31, 0x32, 0x38, 0x33, 0x35, 0x42, 0x30, 0x31, 0x2C, 0x20, 0x30, 0x78, 0x32, 0x34, 0x33, 0x31, 0x38, 0x35, 0x42, 0x45, 0x2C, 0x20, 0x30, 0x78, 0x35, 0x35, 0x30, 0x43, 0x37, 0x44, 0x43, 0x33, 0x2C, 0x20, 0x30, 0x78, 0x37, 0x32, 0x42, 0x45, 0x35, 0x44, 0x37, 0x34, 0x2C, 0x20, 0x30, 0x78, 0x38, 0x30, 0x44, 0x45, 0x42, 0x31, 0x46, 0x45, 0x2C, 0x20, 0x30, 0x78, 0x39, 0x42, 0x44, 0x43, 0x30, 0x36, 0x41, 0x37, 0x2C, 0x20, 0x30, 0x78, 0x43, 0x31, 0x39, 0x42, 0x46, 0x31, 0x37, 0x34, 0x2C, 0x0A, 0x09, 0x09, 0x30, 0x78, 0x45, 0x34, 0x39, 0x42, 0x36, 0x39, 0x43, 0x31, 0x2C, 0x20, 0x30, 0x78, 0x45, 0x46, 0x42, 0x45, 0x34, 0x37, 0x38, 0x36, 0x2C, 0x20, 0x30, 0x78, 0x30, 0x46, 0x43, 0x31, 0x39, 0x44, 0x43, 0x36, 0x2C, 0x20, 0x30, 0x78, 0x32, 0x34, 0x30, 0x43, 0x41, 0x31, 0x43, 0x43, 0x2C, 0x20, 0x30, 0x78, 0x32, 0x44, 0x45, 0x39, 0x32, 0x43, 0x36, 0x46, 0x2C, 0x20, 0x30, 0x78, 0x34, 0x41, 0x37, 0x34, 0x38, 0x34, 0x41, 0x41, 0x2C, 0x20, 0x30, 0x78, 0x35, 0x43, 0x42, 0x30, 0x41, 0x39, 0x44, 0x43, 0x2C, 0x20, 0x30, 0x78, 0x37, 0x36, 0x46, 0x39, 0x38, 0x38, 0x44, 0x41, 0x2C, 0x0A, 0x09, 0x09, 0x30, 0x78, 0x39, 0x38, 0x33, 0x45, 0x35, 0x31, 0x35, 0x32, 0x2C, 0x20, 0x30, 0x78, 0x41, 0x38, 0x33, 0x31, 0x43, 0x36, 0x36, 0x44, 0x2C, 0x20, 0x30, 0x78, 0x42, 0x30, 0x30, 0x33, 0x32, 0x37, 0x43, 0x38, 0x2C, 0x20, 0x30, 0x78, 0x42, 0x46, 0x35, 0x39, 0x37, 0x46, 0x43, 0x37, 0x2C, 0x20, 0x30, 0x78, 0x43, 0x36, 0x45, 0x30, 0x30, 0x42, 0x46, 0x33, 0x2C, 0x20, 0x30, 0x78, 0x44, 0x35, 0x41, 0x37, 0x39, 0x31, 0x34, 0x37, 0x2C, 0x20, 0x30, 0x78, 0x30, 0x36, 0x43, 0x41, 0x36, 0x33, 0x35, 0x31, 0x2C, 0x20, 0x30, 0x78, 0x31, 0x34, 0x32, 0x39, 0x32, 0x39, 0x36, 0x37, 0x2C, 0x0A, 0x09, 0x09, 0x30, 0x78, 0x32, 0x37, 0x42, 0x37, 0x30, 0x41, 0x38, 0x35, 0x2C, 0x20, 0x30, 0x78, 0x32, 0x45, 0x31, 0x42, 0x32, 0x31, 0x33, 0x38, 0x2C, 0x20, 0x30, 0x78, 0x34, 0x44, 0x32, 0x43, 0x36, 0x44, 0x46, 0x43, 0x2C, 0x20, 0x30, 0x78, 0x35, 0x33, 0x33, 0x38, 0x30, 0x44, 0x31, 0x33, 0x2C, 0x20, 0x30, 0x78, 0x36, 0x35, 0x30, 0x41, 0x37, 0x33, 0x35, 0x34, 0x2C, 0x20, 0x30, 0x78, 0x37, 0x36, 0x36, 0x41, 0x30, 0x41, 0x42, 0x42, 0x2C, 0x20, 0x30, 0x78, 0x38, 0x31, 0x43, 0x32, 0x43, 0x39, 0x32, 0x45, 0x2C, 0x20, 0x30, 0x78, 0x39, 0x32, 0x37, 0x32, 0x32, 0x43, 0x38, 0x35, 0x2C, 0x0A, 0x09, 0x09, 0x30, 0x78, 0x41, 0x32, 0x42, 0x46, 0x45, 0x38, 0x41, 0x31, 0x2C, 0x20, 0x30, 0x78, 0x41, 0x38, 0x31, 0x41, 0x36, 0x36, 0x34, 0x42, 0x2C, 0x20, 0x30, 0x78, 0x43, 0x32, 0x34, 0x42, 0x38, 0x42, 0x37, 0x30, 0x2C, 0x20, 0x30, 0x78, 0x43, 0x37, 0x36, 0x43, 0x35, 0x31, 0x41, 0x33, 0x2C, 0x20, 0x30, 0x78, 0x44, 0x31, 0x39, 0x32, 0x45, 0x38, 0x31, 0x39, 0x2C, 0x20, 0x30, 0x78, 0x44, 0x36, 0x39, 0x39, 0x30, 0x36, 0x32, 0x34, 0x2C, 0x20, 0x30, 0x78, 0x46, 0x34, 0x30, 0x45, 0x33, 0x35, 0x38, 0x35, 0x2C, 0x20, 0x30, 0x78, 0x31, 0x30, 0x36, 0x41, 0x41, 0x30, 0x37, 0x30, 0x2C, 0x0A, 0x09, 0x09, 0x30, 0x78, 0x31, 0x39, 0x41, 0x34, 0x43, 0x31, 0x31, 0x36, 0x2C, 0x20, 0x30, 0x78, 0x31, 0x45, 0x33, 0x37, 0x36, 0x43, 0x30, 0x38, 0x2C, 0x20, 0x30, 0x78, 0x32, 0x37, 0x34, 0x38, 0x37, 0x37, 0x34, 0x43, 0x2C, 0x20, 0x30, 0x78, 0x33, 0x34, 0x42, 0x30, 0x42, 0x43, 0x42, 0x35, 0x2C, 0x20, 0x30, 0x78, 0x33, 0x39, 0x31, 0x43, 0x30, 0x43, 0x42, 0x33, 0x2C, 0x20, 0x30, 0x78, 0x34, 0x45, 0x44, 0x38, 0x41, 0x41, 0x34, 0x41, 0x2C, 0x20, 0x30, 0x78, 0x35, 0x42, 0x39, 0x43, 0x43, 0x41, 0x34, 0x46, 0x2C, 0x20, 0x30, 0x78, 0x36, 0x38, 0x32, 0x45, 0x36, 0x46, 0x46, 0x33, 0x2C, 0x0A, 0x09, 0x09, 0x30, 0x78, 0x37, 0x34, 0x38, 0x46, 0x38, 0x32, 0x45, 0x45, 0x2C, 0x20, 0x30, 0x78, 0x37, 0x38, 0x41, 0x35, 0x36, 0x33, 0x36, 0x46, 0x2C, 0x20, 0x30, 0x78, 0x38, 0x34, 0x43, 0x38, 0x37, 0x38, 0x31, 0x34, 0x2C, 0x20, 0x30, 0x78, 0x38, 0x43, 0x43, 0x37, 0x30, 0x32, 0x30, 0x38, 0x2C, 0x20, 0x30, 0x78, 0x39, 0x30, 0x42, 0x45, 0x46, 0x46, 0x46, 0x41, 0x2C, 0x20, 0x30, 0x78, 0x41, 0x34, 0x35, 0x30, 0x36, 0x43, 0x45, 0x42, 0x2C, 0x20, 0x30, 0x78, 0x42, 0x45, 0x46, 0x39, 0x41, 0x33, 0x46, 0x37, 0x2C, 0x20, 0x30, 0x78, 0x43, 0x36, 0x37, 0x31, 0x37, 0x38, 0x46, 0x32, 0x0A, 0x09, 0x7D, 0x3B, 0x0A, 0x0A, 0x09, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x32, 0x5F, 0x74, 0x20, 0x6D, 0x5B, 0x36, 0x34, 0x5D, 0x3B, 0x0A, 0x0A, 0x09, 0x66, 0x6F, 0x72, 0x20, 0x28, 0x69, 0x6E, 0x74, 0x20, 0x69, 0x20, 0x3D, 0x20, 0x30, 0x3B, 0x20, 0x69, 0x20, 0x3C, 0x20, 0x31, 0x36, 0x3B, 0x20, 0x69, 0x20, 0x2B, 0x3D, 0x20, 0x31, 0x29, 0x0A, 0x09, 0x09, 0x6D, 0x5B, 0x69, 0x5D, 0x20, 0x3D, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x69, 0x5D, 0x3B, 0x0A, 0x0A, 0x09, 0x66, 0x6F, 0x72, 0x20, 0x28, 0x69, 0x6E, 0x74, 0x20, 0x69, 0x20, 0x3D, 0x20, 0x31, 0x36, 0x3B, 0x20, 0x69, 0x20, 0x3C, 0x20, 0x36, 0x34, 0x3B, 0x20, 0x69, 0x20, 0x2B, 0x3D, 0x20, 0x31, 0x29, 0x0A, 0x09, 0x09, 0x6D, 0x5B, 0x69, 0x5D, 0x20, 0x3D, 0x20, 0x53, 0x49, 0x47, 0x31, 0x28, 0x6D, 0x5B, 0x69, 0x20, 0x2D, 0x20, 0x32, 0x5D, 0x29, 0x20, 0x2B, 0x20, 0x6D, 0x5B, 0x69, 0x20, 0x2D, 0x20, 0x37, 0x5D, 0x20, 0x2B, 0x20, 0x53, 0x49, 0x47, 0x30, 0x28, 0x6D, 0x5B, 0x69, 0x20, 0x2D, 0x20, 0x31, 0x35, 0x5D, 0x29, 0x20, 0x2B, 0x20, 0x6D, 0x5B, 0x69, 0x20, 0x2D, 0x20, 0x31, 0x36, 0x5D, 0x3B, 0x0A, 0x0A, 0x09, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x32, 0x5F, 0x74, 0x20, 0x61, 0x20, 0x3D, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x30, 0x5D, 0x2C, 0x20, 0x62, 0x20, 0x3D, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x31, 0x5D, 0x2C, 0x20, 0x63, 0x20, 0x3D, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x32, 0x5D, 0x2C, 0x20, 0x64, 0x20, 0x3D, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x33, 0x5D, 0x3B, 0x0A, 0x09, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x32, 0x5F, 0x74, 0x20, 0x65, 0x20, 0x3D, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x34, 0x5D, 0x2C, 0x20, 0x66, 0x20, 0x3D, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x35, 0x5D, 0x2C, 0x20, 0x67, 0x20, 0x3D, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x36, 0x5D, 0x2C, 0x20, 0x68, 0x20, 0x3D, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x37, 0x5D, 0x3B, 0x0A, 0x0A, 0x23, 0x69, 0x66, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6E, 0x65, 0x64, 0x28, 0x5F, 0x5F, 0x43, 0x55, 0x44, 0x41, 0x5F, 0x41, 0x52, 0x43, 0x48, 0x5F, 0x5F, 0x29, 0x20, 0x7C, 0x7C, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6E, 0x65, 0x64, 0x28, 0x5F, 0x5F, 0x4F, 0x50, 0x45, 0x4E, 0x43, 0x4C, 0x5F, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4F, 0x4E, 0x5F, 0x5F, 0x29, 0x0A, 0x09, 0x23, 0x70, 0x72, 0x61, 0x67, 0x6D, 0x61, 0x20, 0x75, 0x6E, 0x72, 0x6F, 0x6C, 0x6C, 0x0A, 0x23, 0x65, 0x6E, 0x64, 0x69, 0x66, 0x0A, 0x09, 0x66, 0x6F, 0x72, 0x20, 0x28, 0x69, 0x6E, 0x74, 0x20, 0x69, 0x20, 0x3D, 0x20, 0x30, 0x3B, 0x20, 0x69, 0x20, 0x3C, 0x20, 0x36, 0x34, 0x3B, 0x20, 0x69, 0x20, 0x2B, 0x3D, 0x20, 0x31, 0x29, 0x0A, 0x09, 0x7B, 0x0A, 0x09, 0x09, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x32, 0x5F, 0x74, 0x20, 0x74, 0x31, 0x20, 0x3D, 0x20, 0x68, 0x20, 0x2B, 0x20, 0x45, 0x50, 0x31, 0x28, 0x65, 0x29, 0x20, 0x2B, 0x20, 0x43, 0x48, 0x28, 0x65, 0x2C, 0x20, 0x66, 0x2C, 0x20, 0x67, 0x29, 0x20, 0x2B, 0x20, 0x6B, 0x73, 0x68, 0x61, 0x5B, 0x69, 0x5D, 0x20, 0x2B, 0x20, 0x6D, 0x5B, 0x69, 0x5D, 0x3B, 0x0A, 0x09, 0x09, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x32, 0x5F, 0x74, 0x20, 0x74, 0x32, 0x20, 0x3D, 0x20, 0x45, 0x50, 0x30, 0x28, 0x61, 0x29, 0x20, 0x2B, 0x20, 0x4D, 0x41, 0x4A, 0x28, 0x61, 0x2C, 0x20, 0x62, 0x2C, 0x20, 0x63, 0x29, 0x3B, 0x0A, 0x09, 0x09, 0x68, 0x20, 0x3D, 0x20, 0x67, 0x3B, 0x0A, 0x09, 0x09, 0x67, 0x20, 0x3D, 0x20, 0x66, 0x3B, 0x0A, 0x09, 0x09, 0x66, 0x20, 0x3D, 0x20, 0x65, 0x3B, 0x0A, 0x09, 0x09, 0x65, 0x20, 0x3D, 0x20, 0x64, 0x20, 0x2B, 0x20, 0x74, 0x31, 0x3B, 0x0A, 0x09, 0x09, 0x64, 0x20, 0x3D, 0x20, 0x63, 0x3B, 0x0A, 0x09, 0x09, 0x63, 0x20, 0x3D, 0x20, 0x62, 0x3B, 0x0A, 0x09, 0x09, 0x62, 0x20, 0x3D, 0x20, 0x61, 0x3B, 0x0A, 0x09, 0x09, 0x61, 0x20, 0x3D, 0x20, 0x74, 0x31, 0x20, 0x2B, 0x20, 0x74, 0x32, 0x3B, 0x0A, 0x09, 0x7D, 0x0A, 0x0A, 0x09, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x30, 0x5D, 0x20, 0x2B, 0x3D, 0x20, 0x61, 0x2C, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x31, 0x5D, 0x20, 0x2B, 0x3D, 0x20, 0x62, 0x2C, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x32, 0x5D, 0x20, 0x2B, 0x3D, 0x20, 0x63, 0x2C, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x33, 0x5D, 0x20, 0x2B, 0x3D, 0x20, 0x64, 0x3B, 0x0A, 0x09, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x34, 0x5D, 0x20, 0x2B, 0x3D, 0x20, 0x65, 0x2C, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x35, 0x5D, 0x20, 0x2B, 0x3D, 0x20, 0x66, 0x2C, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x36, 0x5D, 0x20, 0x2B, 0x3D, 0x20, 0x67, 0x2C, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x37, 0x5D, 0x20, 0x2B, 0x3D, 0x20, 0x68, 0x3B, 0x0A, 0x0A, 0x09, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6E, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x3B, 0x0A, 0x7D, 0x0A, 0x0A, 0x23, 0x69, 0x66, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6E, 0x65, 0x64, 0x28, 0x5F, 0x5F, 0x4E, 0x56, 0x43, 0x43, 0x5F, 0x5F, 0x29, 0x0A, 0x5F, 0x5F, 0x66, 0x6F, 0x72, 0x63, 0x65, 0x69, 0x6E, 0x6C, 0x69, 0x6E, 0x65, 0x5F, 0x5F, 0x20, 0x5F, 0x5F, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5F, 0x5F, 0x20, 0x5F, 0x5F, 0x68, 0x6F, 0x73, 0x74, 0x5F, 0x5F, 0x0A, 0x23, 0x65, 0x6C, 0x73, 0x65, 0x0A, 0x69, 0x6E, 0x6C, 0x69, 0x6E, 0x65, 0x0A, 0x23, 0x65, 0x6E, 0x64, 0x69, 0x66, 0x0A, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x20, 0x76, 0x65, 0x63, 0x38, 0x75, 0x20, 0x73, 0x68, 0x61, 0x32, 0x35, 0x36, 0x5F, 0x74, 0x72, 0x61, 0x6E, 0x73, 0x66, 0x6F, 0x72, 0x6D, 0x5F, 0x32, 0x28, 0x76, 0x65, 0x63, 0x31, 0x36, 0x75, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2C, 0x20, 0x76, 0x65, 0x63, 0x38, 0x75, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x29, 0x0A, 0x7B, 0x0A, 0x09, 0x63, 0x6F, 0x6E, 0x73, 0x74, 0x20, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x32, 0x5F, 0x74, 0x20, 0x6B, 0x73, 0x68, 0x61, 0x5B, 0x5D, 0x20, 0x3D, 0x20, 0x7B, 0x0A, 0x09, 0x09, 0x30, 0x78, 0x34, 0x32, 0x38, 0x41, 0x32, 0x46, 0x39, 0x38, 0x2C, 0x20, 0x30, 0x78, 0x37, 0x31, 0x33, 0x37, 0x34, 0x34, 0x39, 0x31, 0x2C, 0x20, 0x30, 0x78, 0x42, 0x35, 0x43, 0x30, 0x46, 0x42, 0x43, 0x46, 0x2C, 0x20, 0x30, 0x78, 0x45, 0x39, 0x42, 0x35, 0x44, 0x42, 0x41, 0x35, 0x2C, 0x20, 0x30, 0x78, 0x33, 0x39, 0x35, 0x36, 0x43, 0x32, 0x35, 0x42, 0x2C, 0x20, 0x30, 0x78, 0x35, 0x39, 0x46, 0x31, 0x31, 0x31, 0x46, 0x31, 0x2C, 0x20, 0x30, 0x78, 0x39, 0x32, 0x33, 0x46, 0x38, 0x32, 0x41, 0x34, 0x2C, 0x20, 0x30, 0x78, 0x41, 0x42, 0x31, 0x43, 0x35, 0x45, 0x44, 0x35, 0x2C, 0x0A, 0x09, 0x09, 0x30, 0x78, 0x44, 0x38, 0x30, 0x37, 0x41, 0x41, 0x39, 0x38, 0x2C, 0x20, 0x30, 0x78, 0x31, 0x32, 0x38, 0x33, 0x35, 0x42, 0x30, 0x31, 0x2C, 0x20, 0x30, 0x78, 0x32, 0x34, 0x33, 0x31, 0x38, 0x35, 0x42, 0x45, 0x2C, 0x20, 0x30, 0x78, 0x35, 0x35, 0x30, 0x43, 0x37, 0x44, 0x43, 0x33, 0x2C, 0x20, 0x30, 0x78, 0x37, 0x32, 0x42, 0x45, 0x35, 0x44, 0x37, 0x34, 0x2C, 0x20, 0x30, 0x78, 0x38, 0x30, 0x44, 0x45, 0x42, 0x31, 0x46, 0x45, 0x2C, 0x20, 0x30, 0x78, 0x39, 0x42, 0x44, 0x43, 0x30, 0x36, 0x41, 0x37, 0x2C, 0x20, 0x30, 0x78, 0x43, 0x31, 0x39, 0x42, 0x46, 0x31, 0x37, 0x34, 0x2C, 0x0A, 0x09, 0x09, 0x30, 0x78, 0x45, 0x34, 0x39, 0x42, 0x36, 0x39, 0x43, 0x31, 0x2C, 0x20, 0x30, 0x78, 0x45, 0x46, 0x42, 0x45, 0x34, 0x37, 0x38, 0x36, 0x2C, 0x20, 0x30, 0x78, 0x30, 0x46, 0x43, 0x31, 0x39, 0x44, 0x43, 0x36, 0x2C, 0x20, 0x30, 0x78, 0x32, 0x34, 0x30, 0x43, 0x41, 0x31, 0x43, 0x43, 0x2C, 0x20, 0x30, 0x78, 0x32, 0x44, 0x45, 0x39, 0x32, 0x43, 0x36, 0x46, 0x2C, 0x20, 0x30, 0x78, 0x34, 0x41, 0x37, 0x34, 0x38, 0x34, 0x41, 0x41, 0x2C, 0x20, 0x30, 0x78, 0x35, 0x43, 0x42, 0x30, 0x41, 0x39, 0x44, 0x43, 0x2C, 0x20, 0x30, 0x78, 0x37, 0x36, 0x46, 0x39, 0x38, 0x38, 0x44, 0x41, 0x2C, 0x0A, 0x09, 0x09, 0x30, 0x78, 0x39, 0x38, 0x33, 0x45, 0x35, 0x31, 0x35, 0x32, 0x2C, 0x20, 0x30, 0x78, 0x41, 0x38, 0x33, 0x31, 0x43, 0x36, 0x36, 0x44, 0x2C, 0x20, 0x30, 0x78, 0x42, 0x30, 0x30, 0x33, 0x32, 0x37, 0x43, 0x38, 0x2C, 0x20, 0x30, 0x78, 0x42, 0x46, 0x35, 0x39, 0x37, 0x46, 0x43, 0x37, 0x2C, 0x20, 0x30, 0x78, 0x43, 0x36, 0x45, 0x30, 0x30, 0x42, 0x46, 0x33, 0x2C, 0x20, 0x30, 0x78, 0x44, 0x35, 0x41, 0x37, 0x39, 0x31, 0x34, 0x37, 0x2C, 0x20, 0x30, 0x78, 0x30, 0x36, 0x43, 0x41, 0x36, 0x33, 0x35, 0x31, 0x2C, 0x20, 0x30, 0x78, 0x31, 0x34, 0x32, 0x39, 0x32, 0x39, 0x36, 0x37, 0x2C, 0x0A, 0x09, 0x09, 0x30, 0x78, 0x32, 0x37, 0x42, 0x37, 0x30, 0x41, 0x38, 0x35, 0x2C, 0x20, 0x30, 0x78, 0x32, 0x45, 0x31, 0x42, 0x32, 0x31, 0x33, 0x38, 0x2C, 0x20, 0x30, 0x78, 0x34, 0x44, 0x32, 0x43, 0x36, 0x44, 0x46, 0x43, 0x2C, 0x20, 0x30, 0x78, 0x35, 0x33, 0x33, 0x38, 0x30, 0x44, 0x31, 0x33, 0x2C, 0x20, 0x30, 0x78, 0x36, 0x35, 0x30, 0x41, 0x37, 0x33, 0x35, 0x34, 0x2C, 0x20, 0x30, 0x78, 0x37, 0x36, 0x36, 0x41, 0x30, 0x41, 0x42, 0x42, 0x2C, 0x20, 0x30, 0x78, 0x38, 0x31, 0x43, 0x32, 0x43, 0x39, 0x32, 0x45, 0x2C, 0x20, 0x30, 0x78, 0x39, 0x32, 0x37, 0x32, 0x32, 0x43, 0x38, 0x35, 0x2C, 0x0A, 0x09, 0x09, 0x30, 0x78, 0x41, 0x32, 0x42, 0x46, 0x45, 0x38, 0x41, 0x31, 0x2C, 0x20, 0x30, 0x78, 0x41, 0x38, 0x31, 0x41, 0x36, 0x36, 0x34, 0x42, 0x2C, 0x20, 0x30, 0x78, 0x43, 0x32, 0x34, 0x42, 0x38, 0x42, 0x37, 0x30, 0x2C, 0x20, 0x30, 0x78, 0x43, 0x37, 0x36, 0x43, 0x35, 0x31, 0x41, 0x33, 0x2C, 0x20, 0x30, 0x78, 0x44, 0x31, 0x39, 0x32, 0x45, 0x38, 0x31, 0x39, 0x2C, 0x20, 0x30, 0x78, 0x44, 0x36, 0x39, 0x39, 0x30, 0x36, 0x32, 0x34, 0x2C, 0x20, 0x30, 0x78, 0x46, 0x34, 0x30, 0x45, 0x33, 0x35, 0x38, 0x35, 0x2C, 0x20, 0x30, 0x78, 0x31, 0x30, 0x36, 0x41, 0x41, 0x30, 0x37, 0x30, 0x2C, 0x0A, 0x09, 0x09, 0x30, 0x78, 0x31, 0x39, 0x41, 0x34, 0x43, 0x31, 0x31, 0x36, 0x2C, 0x20, 0x30, 0x78, 0x31, 0x45, 0x33, 0x37, 0x36, 0x43, 0x30, 0x38, 0x2C, 0x20, 0x30, 0x78, 0x32, 0x37, 0x34, 0x38, 0x37, 0x37, 0x34, 0x43, 0x2C, 0x20, 0x30, 0x78, 0x33, 0x34, 0x42, 0x30, 0x42, 0x43, 0x42, 0x35, 0x2C, 0x20, 0x30, 0x78, 0x33, 0x39, 0x31, 0x43, 0x30, 0x43, 0x42, 0x33, 0x2C, 0x20, 0x30, 0x78, 0x34, 0x45, 0x44, 0x38, 0x41, 0x41, 0x34, 0x41, 0x2C, 0x20, 0x30, 0x78, 0x35, 0x42, 0x39, 0x43, 0x43, 0x41, 0x34, 0x46, 0x2C, 0x20, 0x30, 0x78, 0x36, 0x38, 0x32, 0x45, 0x36, 0x46, 0x46, 0x33, 0x2C, 0x0A, 0x09, 0x09, 0x30, 0x78, 0x37, 0x34, 0x38, 0x46, 0x38, 0x32, 0x45, 0x45, 0x2C, 0x20, 0x30, 0x78, 0x37, 0x38, 0x41, 0x35, 0x36, 0x33, 0x36, 0x46, 0x2C, 0x20, 0x30, 0x78, 0x38, 0x34, 0x43, 0x38, 0x37, 0x38, 0x31, 0x34, 0x2C, 0x20, 0x30, 0x78, 0x38, 0x43, 0x43, 0x37, 0x30, 0x32, 0x30, 0x38, 0x2C, 0x20, 0x30, 0x78, 0x39, 0x30, 0x42, 0x45, 0x46, 0x46, 0x46, 0x41, 0x2C, 0x20, 0x30, 0x78, 0x41, 0x34, 0x35, 0x30, 0x36, 0x43, 0x45, 0x42, 0x2C, 0x20, 0x30, 0x78, 0x42, 0x45, 0x46, 0x39, 0x41, 0x33, 0x46, 0x37, 0x2C, 0x20, 0x30, 0x78, 0x43, 0x36, 0x37, 0x31, 0x37, 0x38, 0x46, 0x32, 0x0A, 0x09, 0x7D, 0x3B, 0x0A, 0x0A, 0x09, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x32, 0x5F, 0x74, 0x20, 0x6D, 0x5B, 0x36, 0x34, 0x5D, 0x3B, 0x0A, 0x0A, 0x09, 0x66, 0x6F, 0x72, 0x20, 0x28, 0x69, 0x6E, 0x74, 0x20, 0x69, 0x20, 0x3D, 0x20, 0x30, 0x3B, 0x20, 0x69, 0x20, 0x3C, 0x20, 0x31, 0x36, 0x3B, 0x20, 0x69, 0x20, 0x2B, 0x3D, 0x20, 0x31, 0x29, 0x0A, 0x09, 0x09, 0x6D, 0x5B, 0x69, 0x5D, 0x20, 0x3D, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x69, 0x5D, 0x3B, 0x0A, 0x0A, 0x09, 0x66, 0x6F, 0x72, 0x20, 0x28, 0x69, 0x6E, 0x74, 0x20, 0x69, 0x20, 0x3D, 0x20, 0x31, 0x36, 0x3B, 0x20, 0x69, 0x20, 0x3C, 0x20, 0x36, 0x34, 0x3B, 0x20, 0x69, 0x20, 0x2B, 0x3D, 0x20, 0x31, 0x29, 0x0A, 0x09, 0x09, 0x6D, 0x5B, 0x69, 0x5D, 0x20, 0x3D, 0x20, 0x53, 0x49, 0x47, 0x31, 0x28, 0x6D, 0x5B, 0x69, 0x20, 0x2D, 0x20, 0x32, 0x5D, 0x29, 0x20, 0x2B, 0x20, 0x6D, 0x5B, 0x69, 0x20, 0x2D, 0x20, 0x37, 0x5D, 0x20, 0x2B, 0x20, 0x53, 0x49, 0x47, 0x30, 0x28, 0x6D, 0x5B, 0x69, 0x20, 0x2D, 0x20, 0x31, 0x35, 0x5D, 0x29, 0x20, 0x2B, 0x20, 0x6D, 0x5B, 0x69, 0x20, 0x2D, 0x20, 0x31, 0x36, 0x5D, 0x3B, 0x0A, 0x0A, 0x09, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x32, 0x5F, 0x74, 0x20, 0x61, 0x20, 0x3D, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x30, 0x5D, 0x2C, 0x20, 0x62, 0x20, 0x3D, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x31, 0x5D, 0x2C, 0x20, 0x63, 0x20, 0x3D, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x32, 0x5D, 0x2C, 0x20, 0x64, 0x20, 0x3D, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x33, 0x5D, 0x3B, 0x0A, 0x09, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x32, 0x5F, 0x74, 0x20, 0x65, 0x20, 0x3D, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x34, 0x5D, 0x2C, 0x20, 0x66, 0x20, 0x3D, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x35, 0x5D, 0x2C, 0x20, 0x67, 0x20, 0x3D, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x36, 0x5D, 0x2C, 0x20, 0x68, 0x20, 0x3D, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x37, 0x5D, 0x3B, 0x0A, 0x0A, 0x23, 0x69, 0x66, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6E, 0x65, 0x64, 0x28, 0x5F, 0x5F, 0x43, 0x55, 0x44, 0x41, 0x5F, 0x41, 0x52, 0x43, 0x48, 0x5F, 0x5F, 0x29, 0x20, 0x7C, 0x7C, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6E, 0x65, 0x64, 0x28, 0x5F, 0x5F, 0x4F, 0x50, 0x45, 0x4E, 0x43, 0x4C, 0x5F, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4F, 0x4E, 0x5F, 0x5F, 0x29, 0x0A, 0x09, 0x23, 0x70, 0x72, 0x61, 0x67, 0x6D, 0x61, 0x20, 0x75, 0x6E, 0x72, 0x6F, 0x6C, 0x6C, 0x0A, 0x23, 0x65, 0x6E, 0x64, 0x69, 0x66, 0x0A, 0x09, 0x66, 0x6F, 0x72, 0x20, 0x28, 0x69, 0x6E, 0x74, 0x20, 0x69, 0x20, 0x3D, 0x20, 0x30, 0x3B, 0x20, 0x69, 0x20, 0x3C, 0x20, 0x31, 0x35, 0x3B, 0x20, 0x69, 0x20, 0x2B, 0x3D, 0x20, 0x31, 0x29, 0x0A, 0x09, 0x7B, 0x0A, 0x09, 0x09, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x32, 0x5F, 0x74, 0x20, 0x74, 0x31, 0x20, 0x3D, 0x20, 0x68, 0x20, 0x2B, 0x20, 0x45, 0x50, 0x31, 0x28, 0x65, 0x29, 0x20, 0x2B, 0x20, 0x43, 0x48, 0x28, 0x65, 0x2C, 0x20, 0x66, 0x2C, 0x20, 0x67, 0x29, 0x20, 0x2B, 0x20, 0x6B, 0x73, 0x68, 0x61, 0x5B, 0x69, 0x5D, 0x3B, 0x20, 0x2F, 0x2F, 0x20, 0x2B, 0x20, 0x6D, 0x5B, 0x69, 0x5D, 0x3B, 0x0A, 0x09, 0x09, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x32, 0x5F, 0x74, 0x20, 0x74, 0x32, 0x20, 0x3D, 0x20, 0x45, 0x50, 0x30, 0x28, 0x61, 0x29, 0x20, 0x2B, 0x20, 0x4D, 0x41, 0x4A, 0x28, 0x61, 0x2C, 0x20, 0x62, 0x2C, 0x20, 0x63, 0x29, 0x3B, 0x0A, 0x09, 0x09, 0x68, 0x20, 0x3D, 0x20, 0x67, 0x3B, 0x0A, 0x09, 0x09, 0x67, 0x20, 0x3D, 0x20, 0x66, 0x3B, 0x0A, 0x09, 0x09, 0x66, 0x20, 0x3D, 0x20, 0x65, 0x3B, 0x0A, 0x09, 0x09, 0x65, 0x20, 0x3D, 0x20, 0x64, 0x20, 0x2B, 0x20, 0x74, 0x31, 0x3B, 0x0A, 0x09, 0x09, 0x64, 0x20, 0x3D, 0x20, 0x63, 0x3B, 0x0A, 0x09, 0x09, 0x63, 0x20, 0x3D, 0x20, 0x62, 0x3B, 0x0A, 0x09, 0x09, 0x62, 0x20, 0x3D, 0x20, 0x61, 0x3B, 0x0A, 0x09, 0x09, 0x61, 0x20, 0x3D, 0x20, 0x74, 0x31, 0x20, 0x2B, 0x20, 0x74, 0x32, 0x3B, 0x0A, 0x09, 0x7D, 0x0A, 0x0A, 0x23, 0x69, 0x66, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6E, 0x65, 0x64, 0x28, 0x5F, 0x5F, 0x43, 0x55, 0x44, 0x41, 0x5F, 0x41, 0x52, 0x43, 0x48, 0x5F, 0x5F, 0x29, 0x20, 0x7C, 0x7C, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6E, 0x65, 0x64, 0x28, 0x5F, 0x5F, 0x4F, 0x50, 0x45, 0x4E, 0x43, 0x4C, 0x5F, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4F, 0x4E, 0x5F, 0x5F, 0x29, 0x0A, 0x09, 0x23, 0x70, 0x72, 0x61, 0x67, 0x6D, 0x61, 0x20, 0x75, 0x6E, 0x72, 0x6F, 0x6C, 0x6C, 0x0A, 0x23, 0x65, 0x6E, 0x64, 0x69, 0x66, 0x0A, 0x09, 0x66, 0x6F, 0x72, 0x20, 0x28, 0x69, 0x6E, 0x74, 0x20, 0x69, 0x20, 0x3D, 0x20, 0x31, 0x35, 0x3B, 0x20, 0x69, 0x20, 0x3C, 0x20, 0x36, 0x34, 0x3B, 0x20, 0x69, 0x20, 0x2B, 0x3D, 0x20, 0x31, 0x29, 0x0A, 0x09, 0x7B, 0x0A, 0x09, 0x09, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x32, 0x5F, 0x74, 0x20, 0x74, 0x31, 0x20, 0x3D, 0x20, 0x68, 0x20, 0x2B, 0x20, 0x45, 0x50, 0x31, 0x28, 0x65, 0x29, 0x20, 0x2B, 0x20, 0x43, 0x48, 0x28, 0x65, 0x2C, 0x20, 0x66, 0x2C, 0x20, 0x67, 0x29, 0x20, 0x2B, 0x20, 0x6B, 0x73, 0x68, 0x61, 0x5B, 0x69, 0x5D, 0x20, 0x2B, 0x20, 0x6D, 0x5B, 0x69, 0x5D, 0x3B, 0x0A, 0x09, 0x09, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x32, 0x5F, 0x74, 0x20, 0x74, 0x32, 0x20, 0x3D, 0x20, 0x45, 0x50, 0x30, 0x28, 0x61, 0x29, 0x20, 0x2B, 0x20, 0x4D, 0x41, 0x4A, 0x28, 0x61, 0x2C, 0x20, 0x62, 0x2C, 0x20, 0x63, 0x29, 0x3B, 0x0A, 0x09, 0x09, 0x68, 0x20, 0x3D, 0x20, 0x67, 0x3B, 0x0A, 0x09, 0x09, 0x67, 0x20, 0x3D, 0x20, 0x66, 0x3B, 0x0A, 0x09, 0x09, 0x66, 0x20, 0x3D, 0x20, 0x65, 0x3B, 0x0A, 0x09, 0x09, 0x65, 0x20, 0x3D, 0x20, 0x64, 0x20, 0x2B, 0x20, 0x74, 0x31, 0x3B, 0x0A, 0x09, 0x09, 0x64, 0x20, 0x3D, 0x20, 0x63, 0x3B, 0x0A, 0x09, 0x09, 0x63, 0x20, 0x3D, 0x20, 0x62, 0x3B, 0x0A, 0x09, 0x09, 0x62, 0x20, 0x3D, 0x20, 0x61, 0x3B, 0x0A, 0x09, 0x09, 0x61, 0x20, 0x3D, 0x20, 0x74, 0x31, 0x20, 0x2B, 0x20, 0x74, 0x32, 0x3B, 0x0A, 0x09, 0x7D, 0x0A, 0x0A, 0x09, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x30, 0x5D, 0x20, 0x2B, 0x3D, 0x20, 0x61, 0x2C, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x31, 0x5D, 0x20, 0x2B, 0x3D, 0x20, 0x62, 0x2C, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x32, 0x5D, 0x20, 0x2B, 0x3D, 0x20, 0x63, 0x2C, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x33, 0x5D, 0x20, 0x2B, 0x3D, 0x20, 0x64, 0x3B, 0x0A, 0x09, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x34, 0x5D, 0x20, 0x2B, 0x3D, 0x20, 0x65, 0x2C, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x35, 0x5D, 0x20, 0x2B, 0x3D, 0x20, 0x66, 0x2C, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x36, 0x5D, 0x20, 0x2B, 0x3D, 0x20, 0x67, 0x2C, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x37, 0x5D, 0x20, 0x2B, 0x3D, 0x20, 0x68, 0x3B, 0x0A, 0x0A, 0x09, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6E, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x3B, 0x0A, 0x7D, 0x0A, 0x0A, 0x0A, 0x23, 0x69, 0x66, 0x20, 0x21, 0x64, 0x65, 0x66, 0x69, 0x6E, 0x65, 0x64, 0x28, 0x5F, 0x5F, 0x4F, 0x50, 0x45, 0x4E, 0x43, 0x4C, 0x5F, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4F, 0x4E, 0x5F, 0x5F, 0x29, 0x0A, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x20, 0x63, 0x6F, 0x6E, 0x73, 0x74, 0x20, 0x76, 0x65, 0x63, 0x38, 0x75, 0x20, 0x68, 0x32, 0x35, 0x36, 0x20, 0x3D, 0x20, 0x7B, 0x0A, 0x09, 0x30, 0x78, 0x36, 0x41, 0x30, 0x39, 0x45, 0x36, 0x36, 0x37, 0x2C, 0x20, 0x30, 0x78, 0x42, 0x42, 0x36, 0x37, 0x41, 0x45, 0x38, 0x35, 0x2C, 0x20, 0x30, 0x78, 0x33, 0x43, 0x36, 0x45, 0x46, 0x33, 0x37, 0x32, 0x2C, 0x20, 0x30, 0x78, 0x41, 0x35, 0x34, 0x46, 0x46, 0x35, 0x33, 0x41, 0x2C, 0x20, 0x30, 0x78, 0x35, 0x31, 0x30, 0x45, 0x35, 0x32, 0x37, 0x46, 0x2C, 0x20, 0x30, 0x78, 0x39, 0x42, 0x30, 0x35, 0x36, 0x38, 0x38, 0x43, 0x2C, 0x20, 0x30, 0x78, 0x31, 0x46, 0x38, 0x33, 0x44, 0x39, 0x41, 0x42, 0x2C, 0x20, 0x30, 0x78, 0x35, 0x42, 0x45, 0x30, 0x43, 0x44, 0x31, 0x39, 0x0A, 0x7D, 0x3B, 0x0A, 0x0A, 0x0A, 0x69, 0x6E, 0x6C, 0x69, 0x6E, 0x65, 0x20, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x20, 0x76, 0x6F, 0x69, 0x64, 0x20, 0x62, 0x69, 0x74, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5F, 0x62, 0x65, 0x33, 0x32, 0x65, 0x6E, 0x63, 0x28, 0x76, 0x6F, 0x69, 0x64, 0x20, 0x2A, 0x70, 0x70, 0x2C, 0x20, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x32, 0x5F, 0x74, 0x20, 0x78, 0x29, 0x0A, 0x7B, 0x0A, 0x09, 0x75, 0x69, 0x6E, 0x74, 0x38, 0x5F, 0x74, 0x20, 0x2A, 0x70, 0x20, 0x3D, 0x20, 0x28, 0x75, 0x69, 0x6E, 0x74, 0x38, 0x5F, 0x74, 0x20, 0x2A, 0x29, 0x70, 0x70, 0x3B, 0x0A, 0x0A, 0x09, 0x70, 0x5B, 0x33, 0x5D, 0x20, 0x3D, 0x20, 0x78, 0x20, 0x26, 0x20, 0x30, 0x78, 0x66, 0x66, 0x3B, 0x0A, 0x09, 0x70, 0x5B, 0x32, 0x5D, 0x20, 0x3D, 0x20, 0x28, 0x78, 0x20, 0x3E, 0x3E, 0x20, 0x38, 0x29, 0x20, 0x26, 0x20, 0x30, 0x78, 0x66, 0x66, 0x3B, 0x0A, 0x09, 0x70, 0x5B, 0x31, 0x5D, 0x20, 0x3D, 0x20, 0x28, 0x78, 0x20, 0x3E, 0x3E, 0x20, 0x31, 0x36, 0x29, 0x20, 0x26, 0x20, 0x30, 0x78, 0x66, 0x66, 0x3B, 0x0A, 0x09, 0x70, 0x5B, 0x30, 0x5D, 0x20, 0x3D, 0x20, 0x28, 0x78, 0x20, 0x3E, 0x3E, 0x20, 0x32, 0x34, 0x29, 0x20, 0x26, 0x20, 0x30, 0x78, 0x66, 0x66, 0x3B, 0x0A, 0x7D, 0x0A, 0x0A, 0x0A, 0x69, 0x6E, 0x6C, 0x69, 0x6E, 0x65, 0x20, 0x73, 0x74, 0x61, 0x74, 0x69, 0x63, 0x20, 0x4D, 0x73, 0x67, 0x44, 0x61, 0x74, 0x61, 0x20, 0x62, 0x69, 0x74, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5F, 0x70, 0x72, 0x65, 0x70, 0x61, 0x72, 0x65, 0x5F, 0x6D, 0x73, 0x67, 0x28, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x32, 0x5F, 0x74, 0x20, 0x67, 0x70, 0x75, 0x5F, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x2C, 0x20, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x32, 0x5F, 0x74, 0x20, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x2C, 0x20, 0x63, 0x6F, 0x6E, 0x73, 0x74, 0x20, 0x75, 0x6E, 0x73, 0x69, 0x67, 0x6E, 0x65, 0x64, 0x20, 0x63, 0x68, 0x61, 0x72, 0x20, 0x2A, 0x64, 0x61, 0x74, 0x61, 0x2C, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x63, 0x6F, 0x6E, 0x73, 0x74, 0x20, 0x76, 0x6F, 0x69, 0x64, 0x20, 0x2A, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x2C, 0x20, 0x63, 0x6F, 0x6E, 0x73, 0x74, 0x20, 0x75, 0x6E, 0x73, 0x69, 0x67, 0x6E, 0x65, 0x64, 0x20, 0x63, 0x68, 0x61, 0x72, 0x20, 0x2A, 0x72, 0x64, 0x61, 0x74, 0x61, 0x29, 0x0A, 0x7B, 0x0A, 0x09, 0x2F, 0x2A, 0x70, 0x72, 0x69, 0x6E, 0x74, 0x66, 0x28, 0x22, 0x67, 0x70, 0x75, 0x5F, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3A, 0x20, 0x25, 0x75, 0x2C, 0x20, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x3A, 0x20, 0x25, 0x30, 0x34, 0x78, 0x5C, 0x6E, 0x22, 0x2C, 0x20, 0x28, 0x75, 0x6E, 0x73, 0x69, 0x67, 0x6E, 0x65, 0x64, 0x29, 0x67, 0x70, 0x75, 0x5F, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x2C, 0x20, 0x28, 0x75, 0x6E, 0x73, 0x69, 0x67, 0x6E, 0x65, 0x64, 0x29, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x29, 0x3B, 0x0A, 0x09, 0x70, 0x72, 0x69, 0x6E, 0x74, 0x66, 0x28, 0x22, 0x64, 0x61, 0x74, 0x61, 0x3A, 0x5C, 0x6E, 0x22, 0x29, 0x3B, 0x0A, 0x0A, 0x09, 0x75, 0x6E, 0x73, 0x69, 0x67, 0x6E, 0x65, 0x64, 0x20, 0x63, 0x68, 0x61, 0x72, 0x20, 0x70, 0x61, 0x64, 0x64, 0x65, 0x64, 0x5F, 0x64, 0x61, 0x74, 0x61, 0x5B, 0x31, 0x32, 0x38, 0x5D, 0x3B, 0x0A, 0x09, 0x6D, 0x65, 0x6D, 0x73, 0x65, 0x74, 0x28, 0x70, 0x61, 0x64, 0x64, 0x65, 0x64, 0x5F, 0x64, 0x61, 0x74, 0x61, 0x2C, 0x20, 0x30, 0x2C, 0x20, 0x73, 0x69, 0x7A, 0x65, 0x6F, 0x66, 0x28, 0x70, 0x61, 0x64, 0x64, 0x65, 0x64, 0x5F, 0x64, 0x61, 0x74, 0x61, 0x29, 0x29, 0x3B, 0x0A, 0x09, 0x6D, 0x65, 0x6D, 0x63, 0x70, 0x79, 0x28, 0x70, 0x61, 0x64, 0x64, 0x65, 0x64, 0x5F, 0x64, 0x61, 0x74, 0x61, 0x2C, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2C, 0x20, 0x31, 0x32, 0x33, 0x29, 0x3B, 0x0A, 0x0A, 0x09, 0x66, 0x6F, 0x72, 0x20, 0x28, 0x69, 0x6E, 0x74, 0x20, 0x69, 0x20, 0x3D, 0x20, 0x30, 0x3B, 0x20, 0x69, 0x20, 0x3C, 0x20, 0x33, 0x32, 0x3B, 0x20, 0x69, 0x20, 0x2B, 0x3D, 0x20, 0x31, 0x29, 0x0A, 0x09, 0x7B, 0x0A, 0x09, 0x09, 0x66, 0x6F, 0x72, 0x20, 0x28, 0x69, 0x6E, 0x74, 0x20, 0x6A, 0x20, 0x3D, 0x20, 0x30, 0x3B, 0x20, 0x6A, 0x20, 0x3C, 0x20, 0x34, 0x3B, 0x20, 0x6A, 0x20, 0x2B, 0x3D, 0x20, 0x31, 0x29, 0x0A, 0x09, 0x09, 0x09, 0x70, 0x72, 0x69, 0x6E, 0x74, 0x66, 0x28, 0x22, 0x25, 0x30, 0x32, 0x68, 0x68, 0x78, 0x20, 0x22, 0x2C, 0x20, 0x70, 0x61, 0x64, 0x64, 0x65, 0x64, 0x5F, 0x64, 0x61, 0x74, 0x61, 0x5B, 0x69, 0x20, 0x2A, 0x20, 0x34, 0x20, 0x2B, 0x20, 0x6A, 0x5D, 0x29, 0x3B, 0x0A, 0x09, 0x09, 0x70, 0x72, 0x69, 0x6E, 0x74, 0x66, 0x28, 0x22, 0x5C, 0x6E, 0x22, 0x29, 0x3B, 0x0A, 0x09, 0x7D, 0x0A, 0x0A, 0x09, 0x70, 0x72, 0x69, 0x6E, 0x74, 0x66, 0x28, 0x22, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x3A, 0x5C, 0x6E, 0x22, 0x29, 0x3B, 0x0A, 0x09, 0x66, 0x6F, 0x72, 0x20, 0x28, 0x69, 0x6E, 0x74, 0x20, 0x69, 0x20, 0x3D, 0x20, 0x30, 0x3B, 0x20, 0x69, 0x20, 0x3C, 0x20, 0x33, 0x32, 0x3B, 0x20, 0x69, 0x20, 0x2B, 0x3D, 0x20, 0x31, 0x29, 0x0A, 0x09, 0x09, 0x70, 0x72, 0x69, 0x6E, 0x74, 0x66, 0x28, 0x22, 0x25, 0x30, 0x32, 0x68, 0x68, 0x78, 0x20, 0x22, 0x2C, 0x20, 0x28, 0x28, 0x63, 0x6F, 0x6E, 0x73, 0x74, 0x20, 0x75, 0x6E, 0x73, 0x69, 0x67, 0x6E, 0x65, 0x64, 0x20, 0x63, 0x68, 0x61, 0x72, 0x20, 0x2A, 0x29, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x29, 0x5B, 0x69, 0x5D, 0x29, 0x3B, 0x0A, 0x09, 0x70, 0x72, 0x69, 0x6E, 0x74, 0x66, 0x28, 0x22, 0x5C, 0x6E, 0x22, 0x29, 0x3B, 0x0A, 0x0A, 0x09, 0x70, 0x72, 0x69, 0x6E, 0x74, 0x66, 0x28, 0x22, 0x72, 0x64, 0x61, 0x74, 0x61, 0x3A, 0x5C, 0x6E, 0x22, 0x29, 0x3B, 0x0A, 0x09, 0x66, 0x6F, 0x72, 0x20, 0x28, 0x75, 0x6E, 0x73, 0x69, 0x67, 0x6E, 0x65, 0x64, 0x20, 0x69, 0x20, 0x3D, 0x20, 0x30, 0x3B, 0x20, 0x69, 0x20, 0x3C, 0x20, 0x67, 0x70, 0x75, 0x5F, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3B, 0x20, 0x69, 0x20, 0x2B, 0x3D, 0x20, 0x31, 0x29, 0x0A, 0x09, 0x7B, 0x0A, 0x09, 0x09, 0x66, 0x6F, 0x72, 0x20, 0x28, 0x69, 0x6E, 0x74, 0x20, 0x6A, 0x20, 0x3D, 0x20, 0x30, 0x3B, 0x20, 0x6A, 0x20, 0x3C, 0x20, 0x33, 0x32, 0x3B, 0x20, 0x6A, 0x20, 0x2B, 0x3D, 0x20, 0x31, 0x29, 0x0A, 0x09, 0x09, 0x09, 0x70, 0x72, 0x69, 0x6E, 0x74, 0x66, 0x28, 0x22, 0x25, 0x30, 0x32, 0x68, 0x68, 0x78, 0x20, 0x22, 0x2C, 0x20, 0x72, 0x64, 0x61, 0x74, 0x61, 0x5B, 0x69, 0x20, 0x2A, 0x20, 0x33, 0x32, 0x20, 0x2B, 0x20, 0x6A, 0x5D, 0x29, 0x3B, 0x0A, 0x09, 0x09, 0x70, 0x72, 0x69, 0x6E, 0x74, 0x66, 0x28, 0x22, 0x5C, 0x6E, 0x22, 0x29, 0x3B, 0x0A, 0x09, 0x7D, 0x2A, 0x2F, 0x0A, 0x0A, 0x09, 0x4D, 0x73, 0x67, 0x44, 0x61, 0x74, 0x61, 0x20, 0x6D, 0x73, 0x67, 0x3B, 0x0A, 0x0A, 0x09, 0x66, 0x6F, 0x72, 0x20, 0x28, 0x69, 0x6E, 0x74, 0x20, 0x69, 0x20, 0x3D, 0x20, 0x30, 0x3B, 0x20, 0x69, 0x20, 0x3C, 0x20, 0x33, 0x3B, 0x20, 0x69, 0x20, 0x2B, 0x3D, 0x20, 0x31, 0x29, 0x0A, 0x09, 0x09, 0x62, 0x69, 0x74, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5F, 0x62, 0x65, 0x33, 0x32, 0x65, 0x6E, 0x63, 0x28, 0x26, 0x6D, 0x73, 0x67, 0x2E, 0x70, 0x73, 0x65, 0x65, 0x64, 0x5B, 0x69, 0x5D, 0x2C, 0x20, 0x2A, 0x28, 0x28, 0x63, 0x6F, 0x6E, 0x73, 0x74, 0x20, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x32, 0x5F, 0x74, 0x20, 0x2A, 0x29, 0x28, 0x64, 0x61, 0x74, 0x61, 0x20, 0x2B, 0x20, 0x37, 0x36, 0x29, 0x20, 0x2B, 0x20, 0x69, 0x29, 0x29, 0x3B, 0x0A, 0x0A, 0x09, 0x66, 0x6F, 0x72, 0x20, 0x28, 0x69, 0x6E, 0x74, 0x20, 0x69, 0x20, 0x3D, 0x20, 0x30, 0x3B, 0x20, 0x69, 0x20, 0x3C, 0x20, 0x38, 0x3B, 0x20, 0x69, 0x20, 0x2B, 0x3D, 0x20, 0x31, 0x29, 0x0A, 0x09, 0x09, 0x62, 0x69, 0x74, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5F, 0x62, 0x65, 0x33, 0x32, 0x65, 0x6E, 0x63, 0x28, 0x26, 0x6D, 0x73, 0x67, 0x2E, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x2E, 0x76, 0x5B, 0x69, 0x5D, 0x2C, 0x20, 0x2A, 0x28, 0x28, 0x63, 0x6F, 0x6E, 0x73, 0x74, 0x20, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x32, 0x5F, 0x74, 0x20, 0x2A, 0x29, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x20, 0x2B, 0x20, 0x69, 0x29, 0x29, 0x3B, 0x0A, 0x0A, 0x09, 0x66, 0x6F, 0x72, 0x20, 0x28, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x32, 0x5F, 0x74, 0x20, 0x67, 0x70, 0x75, 0x5F, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x20, 0x3D, 0x20, 0x30, 0x3B, 0x20, 0x67, 0x70, 0x75, 0x5F, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x20, 0x3C, 0x20, 0x67, 0x70, 0x75, 0x5F, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x3B, 0x20, 0x67, 0x70, 0x75, 0x5F, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x20, 0x2B, 0x3D, 0x20, 0x31, 0x29, 0x0A, 0x09, 0x7B, 0x0A, 0x09, 0x09, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x44, 0x61, 0x74, 0x61, 0x20, 0x2A, 0x74, 0x68, 0x72, 0x64, 0x61, 0x74, 0x61, 0x20, 0x3D, 0x20, 0x26, 0x6D, 0x73, 0x67, 0x2E, 0x74, 0x68, 0x72, 0x64, 0x61, 0x74, 0x61, 0x5B, 0x67, 0x70, 0x75, 0x5F, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x5D, 0x3B, 0x0A, 0x09, 0x09, 0x63, 0x6F, 0x6E, 0x73, 0x74, 0x20, 0x75, 0x6E, 0x73, 0x69, 0x67, 0x6E, 0x65, 0x64, 0x20, 0x63, 0x68, 0x61, 0x72, 0x20, 0x2A, 0x74, 0x68, 0x72, 0x5F, 0x72, 0x64, 0x61, 0x74, 0x61, 0x20, 0x3D, 0x20, 0x72, 0x64, 0x61, 0x74, 0x61, 0x20, 0x2B, 0x20, 0x67, 0x70, 0x75, 0x5F, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x20, 0x2A, 0x20, 0x33, 0x32, 0x3B, 0x0A, 0x0A, 0x09, 0x09, 0x76, 0x65, 0x63, 0x38, 0x75, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x20, 0x3D, 0x20, 0x68, 0x32, 0x35, 0x36, 0x3B, 0x0A, 0x09, 0x09, 0x76, 0x65, 0x63, 0x31, 0x36, 0x75, 0x20, 0x73, 0x68, 0x61, 0x64, 0x61, 0x74, 0x61, 0x3B, 0x0A, 0x0A, 0x09, 0x09, 0x62, 0x69, 0x74, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5F, 0x62, 0x65, 0x33, 0x32, 0x65, 0x6E, 0x63, 0x28, 0x26, 0x73, 0x68, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x30, 0x78, 0x30, 0x5D, 0x2C, 0x20, 0x2A, 0x28, 0x28, 0x63, 0x6F, 0x6E, 0x73, 0x74, 0x20, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x32, 0x5F, 0x74, 0x20, 0x2A, 0x29, 0x64, 0x61, 0x74, 0x61, 0x20, 0x2B, 0x20, 0x30, 0x78, 0x30, 0x29, 0x29, 0x3B, 0x0A, 0x0A, 0x09, 0x09, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x32, 0x5F, 0x74, 0x20, 0x77, 0x6F, 0x72, 0x64, 0x3B, 0x0A, 0x09, 0x09, 0x62, 0x69, 0x74, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5F, 0x62, 0x65, 0x33, 0x32, 0x65, 0x6E, 0x63, 0x28, 0x26, 0x77, 0x6F, 0x72, 0x64, 0x2C, 0x20, 0x2A, 0x28, 0x28, 0x63, 0x6F, 0x6E, 0x73, 0x74, 0x20, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x32, 0x5F, 0x74, 0x20, 0x2A, 0x29, 0x64, 0x61, 0x74, 0x61, 0x20, 0x2B, 0x20, 0x30, 0x78, 0x31, 0x29, 0x29, 0x3B, 0x0A, 0x0A, 0x09, 0x09, 0x73, 0x68, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x30, 0x78, 0x31, 0x5D, 0x20, 0x3D, 0x20, 0x28, 0x77, 0x6F, 0x72, 0x64, 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x30, 0x30, 0x29, 0x20, 0x7C, 0x20, 0x28, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x20, 0x3E, 0x3E, 0x20, 0x32, 0x34, 0x29, 0x3B, 0x0A, 0x09, 0x09, 0x73, 0x68, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x30, 0x78, 0x32, 0x5D, 0x20, 0x3D, 0x20, 0x28, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x20, 0x3C, 0x3C, 0x20, 0x38, 0x29, 0x20, 0x7C, 0x20, 0x64, 0x61, 0x74, 0x61, 0x5B, 0x31, 0x31, 0x5D, 0x3B, 0x0A, 0x0A, 0x09, 0x09, 0x66, 0x6F, 0x72, 0x20, 0x28, 0x69, 0x6E, 0x74, 0x20, 0x69, 0x20, 0x3D, 0x20, 0x30, 0x78, 0x33, 0x3B, 0x20, 0x69, 0x20, 0x3C, 0x3D, 0x20, 0x30, 0x78, 0x39, 0x3B, 0x20, 0x69, 0x20, 0x2B, 0x3D, 0x20, 0x31, 0x29, 0x0A, 0x09, 0x09, 0x09, 0x62, 0x69, 0x74, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5F, 0x62, 0x65, 0x33, 0x32, 0x65, 0x6E, 0x63, 0x28, 0x26, 0x73, 0x68, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x69, 0x5D, 0x2C, 0x20, 0x2A, 0x28, 0x28, 0x63, 0x6F, 0x6E, 0x73, 0x74, 0x20, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x32, 0x5F, 0x74, 0x20, 0x2A, 0x29, 0x64, 0x61, 0x74, 0x61, 0x20, 0x2B, 0x20, 0x69, 0x29, 0x29, 0x3B, 0x0A, 0x0A, 0x09, 0x09, 0x62, 0x69, 0x74, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5F, 0x62, 0x65, 0x33, 0x32, 0x65, 0x6E, 0x63, 0x28, 0x26, 0x77, 0x6F, 0x72, 0x64, 0x2C, 0x20, 0x2A, 0x28, 0x28, 0x63, 0x6F, 0x6E, 0x73, 0x74, 0x20, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x32, 0x5F, 0x74, 0x20, 0x2A, 0x29, 0x64, 0x61, 0x74, 0x61, 0x20, 0x2B, 0x20, 0x30, 0x78, 0x41, 0x29, 0x29, 0x3B, 0x0A, 0x09, 0x09, 0x73, 0x68, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x30, 0x78, 0x41, 0x5D, 0x20, 0x3D, 0x20, 0x28, 0x77, 0x6F, 0x72, 0x64, 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x30, 0x30, 0x29, 0x20, 0x7C, 0x20, 0x74, 0x68, 0x72, 0x5F, 0x72, 0x64, 0x61, 0x74, 0x61, 0x5B, 0x30, 0x5D, 0x3B, 0x0A, 0x0A, 0x09, 0x09, 0x66, 0x6F, 0x72, 0x20, 0x28, 0x69, 0x6E, 0x74, 0x20, 0x69, 0x20, 0x3D, 0x20, 0x30, 0x78, 0x42, 0x2C, 0x20, 0x6A, 0x20, 0x3D, 0x20, 0x30, 0x3B, 0x20, 0x69, 0x20, 0x3C, 0x3D, 0x20, 0x30, 0x78, 0x46, 0x3B, 0x20, 0x69, 0x20, 0x2B, 0x3D, 0x20, 0x31, 0x2C, 0x20, 0x6A, 0x20, 0x2B, 0x3D, 0x20, 0x31, 0x29, 0x0A, 0x09, 0x09, 0x09, 0x62, 0x69, 0x74, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5F, 0x62, 0x65, 0x33, 0x32, 0x65, 0x6E, 0x63, 0x28, 0x26, 0x73, 0x68, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x69, 0x5D, 0x2C, 0x20, 0x2A, 0x28, 0x28, 0x63, 0x6F, 0x6E, 0x73, 0x74, 0x20, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x32, 0x5F, 0x74, 0x20, 0x2A, 0x29, 0x28, 0x74, 0x68, 0x72, 0x5F, 0x72, 0x64, 0x61, 0x74, 0x61, 0x20, 0x2B, 0x20, 0x31, 0x29, 0x20, 0x2B, 0x20, 0x6A, 0x29, 0x29, 0x3B, 0x0A, 0x0A, 0x09, 0x09, 0x74, 0x68, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2D, 0x3E, 0x73, 0x74, 0x61, 0x74, 0x65, 0x20, 0x3D, 0x20, 0x73, 0x68, 0x61, 0x32, 0x35, 0x36, 0x5F, 0x74, 0x72, 0x61, 0x6E, 0x73, 0x66, 0x6F, 0x72, 0x6D, 0x28, 0x73, 0x68, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2C, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x29, 0x3B, 0x0A, 0x0A, 0x09, 0x09, 0x66, 0x6F, 0x72, 0x20, 0x28, 0x69, 0x6E, 0x74, 0x20, 0x69, 0x20, 0x3D, 0x20, 0x30, 0x78, 0x30, 0x2C, 0x20, 0x6A, 0x20, 0x3D, 0x20, 0x30, 0x3B, 0x20, 0x69, 0x20, 0x3C, 0x3D, 0x20, 0x30, 0x78, 0x31, 0x3B, 0x20, 0x69, 0x20, 0x2B, 0x3D, 0x20, 0x31, 0x2C, 0x20, 0x6A, 0x20, 0x2B, 0x3D, 0x20, 0x31, 0x29, 0x0A, 0x09, 0x09, 0x09, 0x62, 0x69, 0x74, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5F, 0x62, 0x65, 0x33, 0x32, 0x65, 0x6E, 0x63, 0x28, 0x26, 0x74, 0x68, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2D, 0x3E, 0x72, 0x64, 0x61, 0x74, 0x61, 0x5B, 0x69, 0x5D, 0x2C, 0x20, 0x2A, 0x28, 0x28, 0x63, 0x6F, 0x6E, 0x73, 0x74, 0x20, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x32, 0x5F, 0x74, 0x20, 0x2A, 0x29, 0x28, 0x74, 0x68, 0x72, 0x5F, 0x72, 0x64, 0x61, 0x74, 0x61, 0x20, 0x2B, 0x20, 0x32, 0x31, 0x29, 0x20, 0x2B, 0x20, 0x6A, 0x29, 0x29, 0x3B, 0x0A, 0x0A, 0x09, 0x09, 0x62, 0x69, 0x74, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5F, 0x62, 0x65, 0x33, 0x32, 0x65, 0x6E, 0x63, 0x28, 0x26, 0x77, 0x6F, 0x72, 0x64, 0x2C, 0x20, 0x2A, 0x28, 0x63, 0x6F, 0x6E, 0x73, 0x74, 0x20, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x32, 0x5F, 0x74, 0x20, 0x2A, 0x29, 0x28, 0x74, 0x68, 0x72, 0x5F, 0x72, 0x64, 0x61, 0x74, 0x61, 0x20, 0x2B, 0x20, 0x32, 0x38, 0x29, 0x29, 0x3B, 0x0A, 0x09, 0x09, 0x74, 0x68, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2D, 0x3E, 0x72, 0x64, 0x61, 0x74, 0x61, 0x5B, 0x30, 0x78, 0x32, 0x5D, 0x20, 0x3D, 0x20, 0x28, 0x77, 0x6F, 0x72, 0x64, 0x20, 0x3C, 0x3C, 0x20, 0x38, 0x29, 0x20, 0x7C, 0x20, 0x64, 0x61, 0x74, 0x61, 0x5B, 0x37, 0x35, 0x5D, 0x3B, 0x0A, 0x0A, 0x09, 0x09, 0x62, 0x69, 0x74, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5F, 0x62, 0x65, 0x33, 0x32, 0x65, 0x6E, 0x63, 0x28, 0x26, 0x77, 0x6F, 0x72, 0x64, 0x2C, 0x20, 0x2A, 0x28, 0x28, 0x63, 0x6F, 0x6E, 0x73, 0x74, 0x20, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x32, 0x5F, 0x74, 0x20, 0x2A, 0x29, 0x64, 0x61, 0x74, 0x61, 0x20, 0x2B, 0x20, 0x30, 0x78, 0x31, 0x36, 0x29, 0x29, 0x3B, 0x0A, 0x09, 0x09, 0x74, 0x68, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2D, 0x3E, 0x72, 0x64, 0x61, 0x74, 0x61, 0x5B, 0x30, 0x78, 0x33, 0x5D, 0x20, 0x3D, 0x20, 0x28, 0x77, 0x6F, 0x72, 0x64, 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x30, 0x30, 0x29, 0x20, 0x7C, 0x20, 0x74, 0x68, 0x72, 0x5F, 0x72, 0x64, 0x61, 0x74, 0x61, 0x5B, 0x30, 0x5D, 0x3B, 0x0A, 0x0A, 0x09, 0x09, 0x66, 0x6F, 0x72, 0x20, 0x28, 0x69, 0x6E, 0x74, 0x20, 0x69, 0x20, 0x3D, 0x20, 0x30, 0x78, 0x34, 0x2C, 0x20, 0x6A, 0x20, 0x3D, 0x20, 0x30, 0x3B, 0x20, 0x69, 0x20, 0x3C, 0x3D, 0x20, 0x30, 0x78, 0x38, 0x3B, 0x20, 0x69, 0x20, 0x2B, 0x3D, 0x20, 0x31, 0x2C, 0x20, 0x6A, 0x20, 0x2B, 0x3D, 0x20, 0x31, 0x29, 0x0A, 0x09, 0x09, 0x09, 0x62, 0x69, 0x74, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5F, 0x62, 0x65, 0x33, 0x32, 0x65, 0x6E, 0x63, 0x28, 0x26, 0x74, 0x68, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2D, 0x3E, 0x72, 0x64, 0x61, 0x74, 0x61, 0x5B, 0x69, 0x5D, 0x2C, 0x20, 0x2A, 0x28, 0x28, 0x63, 0x6F, 0x6E, 0x73, 0x74, 0x20, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x32, 0x5F, 0x74, 0x20, 0x2A, 0x29, 0x28, 0x74, 0x68, 0x72, 0x5F, 0x72, 0x64, 0x61, 0x74, 0x61, 0x20, 0x2B, 0x20, 0x31, 0x29, 0x20, 0x2B, 0x20, 0x6A, 0x29, 0x29, 0x3B, 0x0A, 0x09, 0x7D, 0x0A, 0x0A, 0x09, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6E, 0x20, 0x6D, 0x73, 0x67, 0x3B, 0x0A, 0x7D, 0x0A, 0x23, 0x65, 0x6E, 0x64, 0x69, 0x66, 0x0A, 0x0A, 0x0A, 0x74, 0x79, 0x70, 0x65, 0x64, 0x65, 0x66, 0x20, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x20, 0x44, 0x65, 0x76, 0x48, 0x61, 0x73, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6C, 0x74, 0x0A, 0x7B, 0x0A, 0x09, 0x75, 0x69, 0x6E, 0x74, 0x36, 0x34, 0x5F, 0x74, 0x20, 0x6E, 0x6F, 0x6E, 0x63, 0x65, 0x3B, 0x0A, 0x09, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x32, 0x5F, 0x74, 0x20, 0x76, 0x63, 0x70, 0x75, 0x2C, 0x20, 0x66, 0x6F, 0x75, 0x6E, 0x64, 0x3B, 0x0A, 0x7D, 0x0A, 0x44, 0x65, 0x76, 0x48, 0x61, 0x73, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6C, 0x74, 0x3B, 0x0A, 0x0A, 0x0A, 0x23, 0x69, 0x66, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6E, 0x65, 0x64, 0x28, 0x5F, 0x5F, 0x43, 0x55, 0x44, 0x41, 0x43, 0x43, 0x5F, 0x5F, 0x29, 0x20, 0x7C, 0x7C, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6E, 0x65, 0x64, 0x28, 0x5F, 0x5F, 0x4F, 0x50, 0x45, 0x4E, 0x43, 0x4C, 0x5F, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4F, 0x4E, 0x5F, 0x5F, 0x29, 0x0A, 0x0A, 0x23, 0x69, 0x66, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6E, 0x65, 0x64, 0x28, 0x5F, 0x5F, 0x4F, 0x50, 0x45, 0x4E, 0x43, 0x4C, 0x5F, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4F, 0x4E, 0x5F, 0x5F, 0x29, 0x0A, 0x09, 0x5F, 0x5F, 0x6B, 0x65, 0x72, 0x6E, 0x65, 0x6C, 0x20, 0x76, 0x6F, 0x69, 0x64, 0x20, 0x62, 0x69, 0x74, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5F, 0x67, 0x70, 0x75, 0x5F, 0x68, 0x61, 0x73, 0x68, 0x28, 0x0A, 0x09, 0x09, 0x75, 0x69, 0x6E, 0x74, 0x36, 0x34, 0x5F, 0x74, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5F, 0x6E, 0x6F, 0x6E, 0x63, 0x65, 0x2C, 0x20, 0x5F, 0x5F, 0x63, 0x6F, 0x6E, 0x73, 0x74, 0x61, 0x6E, 0x74, 0x20, 0x63, 0x6F, 0x6E, 0x73, 0x74, 0x20, 0x4D, 0x73, 0x67, 0x44, 0x61, 0x74, 0x61, 0x20, 0x2A, 0x63, 0x5F, 0x6D, 0x73, 0x67, 0x2C, 0x20, 0x5F, 0x5F, 0x67, 0x6C, 0x6F, 0x62, 0x61, 0x6C, 0x20, 0x44, 0x65, 0x76, 0x48, 0x61, 0x73, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6C, 0x74, 0x20, 0x2A, 0x72, 0x65, 0x73, 0x75, 0x6C, 0x74, 0x0A, 0x09, 0x29, 0x0A, 0x23, 0x65, 0x6C, 0x73, 0x65, 0x0A, 0x09, 0x5F, 0x5F, 0x63, 0x6F, 0x6E, 0x73, 0x74, 0x61, 0x6E, 0x74, 0x5F, 0x5F, 0x20, 0x4D, 0x73, 0x67, 0x44, 0x61, 0x74, 0x61, 0x20, 0x63, 0x5F, 0x6D, 0x73, 0x67, 0x3B, 0x0A, 0x09, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6E, 0x20, 0x22, 0x43, 0x22, 0x20, 0x5F, 0x5F, 0x67, 0x6C, 0x6F, 0x62, 0x61, 0x6C, 0x5F, 0x5F, 0x20, 0x76, 0x6F, 0x69, 0x64, 0x20, 0x62, 0x69, 0x74, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5F, 0x67, 0x70, 0x75, 0x5F, 0x68, 0x61, 0x73, 0x68, 0x28, 0x75, 0x69, 0x6E, 0x74, 0x36, 0x34, 0x5F, 0x74, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5F, 0x6E, 0x6F, 0x6E, 0x63, 0x65, 0x2C, 0x20, 0x44, 0x65, 0x76, 0x48, 0x61, 0x73, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6C, 0x74, 0x20, 0x2A, 0x72, 0x65, 0x73, 0x75, 0x6C, 0x74, 0x29, 0x0A, 0x23, 0x65, 0x6E, 0x64, 0x69, 0x66, 0x0A, 0x7B, 0x0A, 0x23, 0x69, 0x66, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6E, 0x65, 0x64, 0x28, 0x5F, 0x5F, 0x4F, 0x50, 0x45, 0x4E, 0x43, 0x4C, 0x5F, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4F, 0x4E, 0x5F, 0x5F, 0x29, 0x0A, 0x09, 0x75, 0x69, 0x6E, 0x74, 0x36, 0x34, 0x5F, 0x74, 0x20, 0x69, 0x64, 0x78, 0x20, 0x3D, 0x20, 0x67, 0x65, 0x74, 0x5F, 0x67, 0x6C, 0x6F, 0x62, 0x61, 0x6C, 0x5F, 0x69, 0x64, 0x28, 0x30, 0x29, 0x3B, 0x0A, 0x09, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x32, 0x5F, 0x74, 0x20, 0x76, 0x63, 0x70, 0x75, 0x20, 0x3D, 0x20, 0x67, 0x65, 0x74, 0x5F, 0x67, 0x6C, 0x6F, 0x62, 0x61, 0x6C, 0x5F, 0x69, 0x64, 0x28, 0x31, 0x29, 0x3B, 0x0A, 0x0A, 0x09, 0x5F, 0x5F, 0x63, 0x6F, 0x6E, 0x73, 0x74, 0x61, 0x6E, 0x74, 0x20, 0x63, 0x6F, 0x6E, 0x73, 0x74, 0x20, 0x4D, 0x73, 0x67, 0x44, 0x61, 0x74, 0x61, 0x20, 0x2A, 0x6D, 0x73, 0x67, 0x20, 0x3D, 0x20, 0x63, 0x5F, 0x6D, 0x73, 0x67, 0x3B, 0x0A, 0x09, 0x5F, 0x5F, 0x63, 0x6F, 0x6E, 0x73, 0x74, 0x61, 0x6E, 0x74, 0x20, 0x63, 0x6F, 0x6E, 0x73, 0x74, 0x20, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x44, 0x61, 0x74, 0x61, 0x20, 0x2A, 0x74, 0x68, 0x72, 0x64, 0x61, 0x74, 0x61, 0x20, 0x3D, 0x20, 0x26, 0x6D, 0x73, 0x67, 0x2D, 0x3E, 0x74, 0x68, 0x72, 0x64, 0x61, 0x74, 0x61, 0x5B, 0x76, 0x63, 0x70, 0x75, 0x5D, 0x3B, 0x0A, 0x23, 0x65, 0x6C, 0x73, 0x65, 0x0A, 0x09, 0x75, 0x69, 0x6E, 0x74, 0x36, 0x34, 0x5F, 0x74, 0x20, 0x69, 0x64, 0x78, 0x20, 0x3D, 0x20, 0x62, 0x6C, 0x6F, 0x63, 0x6B, 0x49, 0x64, 0x78, 0x2E, 0x78, 0x20, 0x2A, 0x20, 0x62, 0x6C, 0x6F, 0x63, 0x6B, 0x44, 0x69, 0x6D, 0x2E, 0x78, 0x20, 0x2B, 0x20, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x49, 0x64, 0x78, 0x2E, 0x78, 0x3B, 0x0A, 0x09, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x32, 0x5F, 0x74, 0x20, 0x76, 0x63, 0x70, 0x75, 0x20, 0x3D, 0x20, 0x62, 0x6C, 0x6F, 0x63, 0x6B, 0x49, 0x64, 0x78, 0x2E, 0x79, 0x3B, 0x0A, 0x0A, 0x09, 0x63, 0x6F, 0x6E, 0x73, 0x74, 0x20, 0x4D, 0x73, 0x67, 0x44, 0x61, 0x74, 0x61, 0x20, 0x2A, 0x6D, 0x73, 0x67, 0x20, 0x3D, 0x20, 0x26, 0x63, 0x5F, 0x6D, 0x73, 0x67, 0x3B, 0x0A, 0x09, 0x63, 0x6F, 0x6E, 0x73, 0x74, 0x20, 0x54, 0x68, 0x72, 0x65, 0x61, 0x64, 0x44, 0x61, 0x74, 0x61, 0x20, 0x2A, 0x74, 0x68, 0x72, 0x64, 0x61, 0x74, 0x61, 0x20, 0x3D, 0x20, 0x26, 0x63, 0x5F, 0x6D, 0x73, 0x67, 0x2E, 0x74, 0x68, 0x72, 0x64, 0x61, 0x74, 0x61, 0x5B, 0x76, 0x63, 0x70, 0x75, 0x5D, 0x3B, 0x0A, 0x23, 0x65, 0x6E, 0x64, 0x69, 0x66, 0x0A, 0x09, 0x0A, 0x09, 0x76, 0x65, 0x63, 0x31, 0x36, 0x75, 0x20, 0x64, 0x61, 0x74, 0x61, 0x3B, 0x0A, 0x09, 0x76, 0x65, 0x63, 0x31, 0x36, 0x75, 0x20, 0x64, 0x61, 0x74, 0x61, 0x5F, 0x32, 0x3B, 0x0A, 0x0A, 0x09, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x30, 0x78, 0x33, 0x5D, 0x20, 0x3D, 0x20, 0x6D, 0x73, 0x67, 0x2D, 0x3E, 0x70, 0x73, 0x65, 0x65, 0x64, 0x5B, 0x30, 0x5D, 0x3B, 0x0A, 0x09, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x30, 0x78, 0x34, 0x5D, 0x20, 0x3D, 0x20, 0x6D, 0x73, 0x67, 0x2D, 0x3E, 0x70, 0x73, 0x65, 0x65, 0x64, 0x5B, 0x31, 0x5D, 0x3B, 0x0A, 0x09, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x30, 0x78, 0x35, 0x5D, 0x20, 0x3D, 0x20, 0x6D, 0x73, 0x67, 0x2D, 0x3E, 0x70, 0x73, 0x65, 0x65, 0x64, 0x5B, 0x32, 0x5D, 0x3B, 0x0A, 0x09, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x30, 0x78, 0x36, 0x5D, 0x20, 0x3D, 0x20, 0x74, 0x68, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2D, 0x3E, 0x72, 0x64, 0x61, 0x74, 0x61, 0x5B, 0x33, 0x5D, 0x3B, 0x0A, 0x09, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x30, 0x78, 0x37, 0x5D, 0x20, 0x3D, 0x20, 0x74, 0x68, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2D, 0x3E, 0x72, 0x64, 0x61, 0x74, 0x61, 0x5B, 0x34, 0x5D, 0x3B, 0x0A, 0x09, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x30, 0x78, 0x38, 0x5D, 0x20, 0x3D, 0x20, 0x74, 0x68, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2D, 0x3E, 0x72, 0x64, 0x61, 0x74, 0x61, 0x5B, 0x35, 0x5D, 0x3B, 0x0A, 0x09, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x30, 0x78, 0x39, 0x5D, 0x20, 0x3D, 0x20, 0x74, 0x68, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2D, 0x3E, 0x72, 0x64, 0x61, 0x74, 0x61, 0x5B, 0x36, 0x5D, 0x3B, 0x0A, 0x09, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x30, 0x78, 0x41, 0x5D, 0x20, 0x3D, 0x20, 0x74, 0x68, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2D, 0x3E, 0x72, 0x64, 0x61, 0x74, 0x61, 0x5B, 0x37, 0x5D, 0x3B, 0x0A, 0x09, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x30, 0x78, 0x42, 0x5D, 0x20, 0x3D, 0x20, 0x74, 0x68, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2D, 0x3E, 0x72, 0x64, 0x61, 0x74, 0x61, 0x5B, 0x38, 0x5D, 0x3B, 0x0A, 0x0A, 0x09, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x30, 0x78, 0x46, 0x5D, 0x20, 0x3D, 0x20, 0x30, 0x78, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3B, 0x0A, 0x09, 0x0A, 0x09, 0x64, 0x61, 0x74, 0x61, 0x5F, 0x32, 0x2E, 0x76, 0x5B, 0x30, 0x78, 0x30, 0x5D, 0x20, 0x3D, 0x20, 0x30, 0x78, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3B, 0x0A, 0x09, 0x64, 0x61, 0x74, 0x61, 0x5F, 0x32, 0x2E, 0x76, 0x5B, 0x30, 0x78, 0x31, 0x5D, 0x20, 0x3D, 0x20, 0x30, 0x78, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3B, 0x0A, 0x09, 0x64, 0x61, 0x74, 0x61, 0x5F, 0x32, 0x2E, 0x76, 0x5B, 0x30, 0x78, 0x32, 0x5D, 0x20, 0x3D, 0x20, 0x30, 0x78, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3B, 0x0A, 0x09, 0x64, 0x61, 0x74, 0x61, 0x5F, 0x32, 0x2E, 0x76, 0x5B, 0x30, 0x78, 0x33, 0x5D, 0x20, 0x3D, 0x20, 0x30, 0x78, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3B, 0x0A, 0x09, 0x64, 0x61, 0x74, 0x61, 0x5F, 0x32, 0x2E, 0x76, 0x5B, 0x30, 0x78, 0x34, 0x5D, 0x20, 0x3D, 0x20, 0x30, 0x78, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3B, 0x0A, 0x09, 0x64, 0x61, 0x74, 0x61, 0x5F, 0x32, 0x2E, 0x76, 0x5B, 0x30, 0x78, 0x35, 0x5D, 0x20, 0x3D, 0x20, 0x30, 0x78, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3B, 0x0A, 0x09, 0x64, 0x61, 0x74, 0x61, 0x5F, 0x32, 0x2E, 0x76, 0x5B, 0x30, 0x78, 0x36, 0x5D, 0x20, 0x3D, 0x20, 0x30, 0x78, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3B, 0x0A, 0x09, 0x64, 0x61, 0x74, 0x61, 0x5F, 0x32, 0x2E, 0x76, 0x5B, 0x30, 0x78, 0x37, 0x5D, 0x20, 0x3D, 0x20, 0x30, 0x78, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3B, 0x0A, 0x09, 0x64, 0x61, 0x74, 0x61, 0x5F, 0x32, 0x2E, 0x76, 0x5B, 0x30, 0x78, 0x38, 0x5D, 0x20, 0x3D, 0x20, 0x30, 0x78, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3B, 0x0A, 0x09, 0x64, 0x61, 0x74, 0x61, 0x5F, 0x32, 0x2E, 0x76, 0x5B, 0x30, 0x78, 0x39, 0x5D, 0x20, 0x3D, 0x20, 0x30, 0x78, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3B, 0x0A, 0x09, 0x64, 0x61, 0x74, 0x61, 0x5F, 0x32, 0x2E, 0x76, 0x5B, 0x30, 0x78, 0x41, 0x5D, 0x20, 0x3D, 0x20, 0x30, 0x78, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3B, 0x0A, 0x09, 0x64, 0x61, 0x74, 0x61, 0x5F, 0x32, 0x2E, 0x76, 0x5B, 0x30, 0x78, 0x42, 0x5D, 0x20, 0x3D, 0x20, 0x30, 0x78, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3B, 0x0A, 0x09, 0x64, 0x61, 0x74, 0x61, 0x5F, 0x32, 0x2E, 0x76, 0x5B, 0x30, 0x78, 0x43, 0x5D, 0x20, 0x3D, 0x20, 0x30, 0x78, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3B, 0x0A, 0x09, 0x64, 0x61, 0x74, 0x61, 0x5F, 0x32, 0x2E, 0x76, 0x5B, 0x30, 0x78, 0x44, 0x5D, 0x20, 0x3D, 0x20, 0x30, 0x78, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3B, 0x0A, 0x09, 0x64, 0x61, 0x74, 0x61, 0x5F, 0x32, 0x2E, 0x76, 0x5B, 0x30, 0x78, 0x45, 0x5D, 0x20, 0x3D, 0x20, 0x30, 0x78, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3B, 0x0A, 0x09, 0x64, 0x61, 0x74, 0x61, 0x5F, 0x32, 0x2E, 0x76, 0x5B, 0x30, 0x78, 0x46, 0x5D, 0x20, 0x3D, 0x20, 0x30, 0x78, 0x30, 0x30, 0x30, 0x30, 0x30, 0x33, 0x64, 0x38, 0x3B, 0x0A, 0x09, 0x09, 0x09, 0x0A, 0x09, 0x66, 0x6F, 0x72, 0x28, 0x20, 0x69, 0x6E, 0x74, 0x20, 0x69, 0x20, 0x3D, 0x20, 0x30, 0x3B, 0x20, 0x69, 0x20, 0x3C, 0x20, 0x48, 0x50, 0x46, 0x3B, 0x20, 0x69, 0x2B, 0x2B, 0x20, 0x29, 0x20, 0x7B, 0x0A, 0x09, 0x0A, 0x09, 0x09, 0x76, 0x65, 0x63, 0x38, 0x75, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x20, 0x3D, 0x20, 0x74, 0x68, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2D, 0x3E, 0x73, 0x74, 0x61, 0x74, 0x65, 0x3B, 0x0A, 0x09, 0x09, 0x0A, 0x09, 0x09, 0x75, 0x69, 0x6E, 0x74, 0x36, 0x34, 0x5F, 0x74, 0x20, 0x6E, 0x6F, 0x6E, 0x63, 0x65, 0x20, 0x3D, 0x20, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5F, 0x6E, 0x6F, 0x6E, 0x63, 0x65, 0x20, 0x2B, 0x20, 0x69, 0x64, 0x78, 0x20, 0x2B, 0x20, 0x69, 0x2A, 0x54, 0x48, 0x52, 0x4F, 0x55, 0x47, 0x48, 0x50, 0x55, 0x54, 0x3B, 0x0A, 0x0A, 0x09, 0x09, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x32, 0x5F, 0x74, 0x20, 0x72, 0x64, 0x61, 0x74, 0x61, 0x36, 0x20, 0x3D, 0x20, 0x74, 0x68, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2D, 0x3E, 0x72, 0x64, 0x61, 0x74, 0x61, 0x5B, 0x30, 0x5D, 0x2C, 0x20, 0x72, 0x64, 0x61, 0x74, 0x61, 0x37, 0x20, 0x3D, 0x20, 0x74, 0x68, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2D, 0x3E, 0x72, 0x64, 0x61, 0x74, 0x61, 0x5B, 0x31, 0x5D, 0x2C, 0x20, 0x72, 0x64, 0x61, 0x74, 0x61, 0x38, 0x20, 0x3D, 0x20, 0x74, 0x68, 0x72, 0x64, 0x61, 0x74, 0x61, 0x2D, 0x3E, 0x72, 0x64, 0x61, 0x74, 0x61, 0x5B, 0x32, 0x5D, 0x3B, 0x0A, 0x09, 0x09, 0x75, 0x69, 0x6E, 0x74, 0x36, 0x34, 0x5F, 0x74, 0x20, 0x72, 0x64, 0x61, 0x74, 0x61, 0x20, 0x3D, 0x20, 0x28, 0x28, 0x28, 0x75, 0x69, 0x6E, 0x74, 0x36, 0x34, 0x5F, 0x74, 0x29, 0x72, 0x64, 0x61, 0x74, 0x61, 0x36, 0x20, 0x3C, 0x3C, 0x20, 0x35, 0x36, 0x29, 0x20, 0x7C, 0x20, 0x28, 0x28, 0x75, 0x69, 0x6E, 0x74, 0x36, 0x34, 0x5F, 0x74, 0x29, 0x72, 0x64, 0x61, 0x74, 0x61, 0x37, 0x20, 0x3C, 0x3C, 0x20, 0x32, 0x34, 0x29, 0x20, 0x7C, 0x20, 0x28, 0x28, 0x75, 0x69, 0x6E, 0x74, 0x36, 0x34, 0x5F, 0x74, 0x29, 0x72, 0x64, 0x61, 0x74, 0x61, 0x38, 0x20, 0x3E, 0x3E, 0x20, 0x38, 0x29, 0x29, 0x20, 0x2B, 0x20, 0x6E, 0x6F, 0x6E, 0x63, 0x65, 0x3B, 0x0A, 0x0A, 0x09, 0x09, 0x72, 0x64, 0x61, 0x74, 0x61, 0x36, 0x20, 0x3D, 0x20, 0x28, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x32, 0x5F, 0x74, 0x29, 0x28, 0x72, 0x64, 0x61, 0x74, 0x61, 0x20, 0x3E, 0x3E, 0x20, 0x35, 0x36, 0x29, 0x20, 0x7C, 0x20, 0x28, 0x72, 0x64, 0x61, 0x74, 0x61, 0x36, 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, 0x46, 0x46, 0x46, 0x46, 0x30, 0x30, 0x29, 0x3B, 0x0A, 0x09, 0x09, 0x72, 0x64, 0x61, 0x74, 0x61, 0x37, 0x20, 0x3D, 0x20, 0x28, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x32, 0x5F, 0x74, 0x29, 0x28, 0x72, 0x64, 0x61, 0x74, 0x61, 0x20, 0x3E, 0x3E, 0x20, 0x32, 0x34, 0x29, 0x3B, 0x0A, 0x0A, 0x09, 0x09, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x32, 0x5F, 0x74, 0x20, 0x72, 0x64, 0x61, 0x74, 0x61, 0x31, 0x30, 0x20, 0x3D, 0x20, 0x28, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x32, 0x5F, 0x74, 0x29, 0x28, 0x72, 0x64, 0x61, 0x74, 0x61, 0x20, 0x3C, 0x3C, 0x20, 0x38, 0x29, 0x20, 0x7C, 0x20, 0x30, 0x78, 0x38, 0x30, 0x3B, 0x0A, 0x09, 0x09, 0x72, 0x64, 0x61, 0x74, 0x61, 0x38, 0x20, 0x3D, 0x20, 0x28, 0x75, 0x69, 0x6E, 0x74, 0x33, 0x32, 0x5F, 0x74, 0x29, 0x28, 0x72, 0x64, 0x61, 0x74, 0x61, 0x20, 0x3C, 0x3C, 0x20, 0x38, 0x29, 0x20, 0x7C, 0x20, 0x28, 0x72, 0x64, 0x61, 0x74, 0x61, 0x38, 0x20, 0x26, 0x20, 0x30, 0x78, 0x46, 0x46, 0x29, 0x3B, 0x0A, 0x0A, 0x09, 0x09, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x30, 0x78, 0x30, 0x5D, 0x20, 0x3D, 0x20, 0x72, 0x64, 0x61, 0x74, 0x61, 0x36, 0x3B, 0x0A, 0x09, 0x09, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x30, 0x78, 0x31, 0x5D, 0x20, 0x3D, 0x20, 0x72, 0x64, 0x61, 0x74, 0x61, 0x37, 0x3B, 0x0A, 0x09, 0x09, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x30, 0x78, 0x32, 0x5D, 0x20, 0x3D, 0x20, 0x72, 0x64, 0x61, 0x74, 0x61, 0x38, 0x3B, 0x0A, 0x0A, 0x09, 0x09, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x30, 0x78, 0x43, 0x5D, 0x20, 0x3D, 0x20, 0x72, 0x64, 0x61, 0x74, 0x61, 0x36, 0x3B, 0x0A, 0x09, 0x09, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x30, 0x78, 0x44, 0x5D, 0x20, 0x3D, 0x20, 0x72, 0x64, 0x61, 0x74, 0x61, 0x37, 0x3B, 0x0A, 0x09, 0x09, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x30, 0x78, 0x45, 0x5D, 0x20, 0x3D, 0x20, 0x72, 0x64, 0x61, 0x74, 0x61, 0x31, 0x30, 0x3B, 0x0A, 0x09, 0x09, 0x0A, 0x0A, 0x09, 0x09, 0x2F, 0x2A, 0x69, 0x66, 0x20, 0x28, 0x76, 0x63, 0x70, 0x75, 0x20, 0x3D, 0x3D, 0x20, 0x30, 0x20, 0x26, 0x26, 0x20, 0x69, 0x64, 0x78, 0x20, 0x3D, 0x3D, 0x20, 0x30, 0x29, 0x0A, 0x09, 0x09, 0x09, 0x70, 0x72, 0x69, 0x6E, 0x74, 0x66, 0x28, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x22, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x5C, 0x6E, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x5C, 0x6E, 0x5C, 0x6E, 0x22, 0x2C, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x30, 0x5D, 0x2C, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x31, 0x5D, 0x2C, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x32, 0x5D, 0x2C, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x33, 0x5D, 0x2C, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x34, 0x5D, 0x2C, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x35, 0x5D, 0x2C, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x36, 0x5D, 0x2C, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x37, 0x5D, 0x2C, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x38, 0x5D, 0x2C, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x39, 0x5D, 0x2C, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x31, 0x30, 0x5D, 0x2C, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x31, 0x31, 0x5D, 0x2C, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x31, 0x32, 0x5D, 0x2C, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x31, 0x33, 0x5D, 0x2C, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x31, 0x34, 0x5D, 0x2C, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x31, 0x35, 0x5D, 0x0A, 0x09, 0x09, 0x09, 0x29, 0x3B, 0x2A, 0x2F, 0x0A, 0x0A, 0x09, 0x09, 0x73, 0x74, 0x61, 0x74, 0x65, 0x20, 0x3D, 0x20, 0x73, 0x68, 0x61, 0x32, 0x35, 0x36, 0x5F, 0x74, 0x72, 0x61, 0x6E, 0x73, 0x66, 0x6F, 0x72, 0x6D, 0x28, 0x64, 0x61, 0x74, 0x61, 0x2C, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x29, 0x3B, 0x0A, 0x0A, 0x09, 0x09, 0x0A, 0x09, 0x09, 0x2F, 0x2A, 0x69, 0x66, 0x20, 0x28, 0x76, 0x63, 0x70, 0x75, 0x20, 0x3D, 0x3D, 0x20, 0x30, 0x20, 0x26, 0x26, 0x20, 0x69, 0x64, 0x78, 0x20, 0x3D, 0x3D, 0x20, 0x30, 0x29, 0x0A, 0x09, 0x09, 0x09, 0x70, 0x72, 0x69, 0x6E, 0x74, 0x66, 0x28, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x22, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x5C, 0x6E, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x5C, 0x6E, 0x5C, 0x6E, 0x22, 0x2C, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x30, 0x5D, 0x2C, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x31, 0x5D, 0x2C, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x32, 0x5D, 0x2C, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x33, 0x5D, 0x2C, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x34, 0x5D, 0x2C, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x35, 0x5D, 0x2C, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x36, 0x5D, 0x2C, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x37, 0x5D, 0x2C, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x38, 0x5D, 0x2C, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x39, 0x5D, 0x2C, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x31, 0x30, 0x5D, 0x2C, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x31, 0x31, 0x5D, 0x2C, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x31, 0x32, 0x5D, 0x2C, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x31, 0x33, 0x5D, 0x2C, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x31, 0x34, 0x5D, 0x2C, 0x20, 0x64, 0x61, 0x74, 0x61, 0x2E, 0x76, 0x5B, 0x31, 0x35, 0x5D, 0x0A, 0x09, 0x09, 0x09, 0x29, 0x3B, 0x2A, 0x2F, 0x0A, 0x0A, 0x09, 0x09, 0x73, 0x74, 0x61, 0x74, 0x65, 0x20, 0x3D, 0x20, 0x73, 0x68, 0x61, 0x32, 0x35, 0x36, 0x5F, 0x74, 0x72, 0x61, 0x6E, 0x73, 0x66, 0x6F, 0x72, 0x6D, 0x5F, 0x32, 0x28, 0x64, 0x61, 0x74, 0x61, 0x5F, 0x32, 0x2C, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x29, 0x3B, 0x0A, 0x0A, 0x09, 0x09, 0x2F, 0x2A, 0x0A, 0x09, 0x09, 0x70, 0x72, 0x69, 0x6E, 0x74, 0x66, 0x28, 0x20, 0x22, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x5C, 0x6E, 0x5C, 0x6E, 0x22, 0x2C, 0x0A, 0x09, 0x09, 0x09, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x30, 0x5D, 0x2C, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x31, 0x5D, 0x2C, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x32, 0x5D, 0x2C, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x33, 0x5D, 0x2C, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x34, 0x5D, 0x2C, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x35, 0x5D, 0x2C, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x36, 0x5D, 0x2C, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x37, 0x5D, 0x20, 0x29, 0x3B, 0x0A, 0x09, 0x09, 0x2F, 0x2F, 0x2A, 0x2F, 0x0A, 0x09, 0x09, 0x0A, 0x09, 0x09, 0x2F, 0x2A, 0x69, 0x66, 0x20, 0x28, 0x76, 0x63, 0x70, 0x75, 0x20, 0x3D, 0x3D, 0x20, 0x30, 0x20, 0x26, 0x26, 0x20, 0x69, 0x64, 0x78, 0x20, 0x3D, 0x3D, 0x20, 0x30, 0x29, 0x0A, 0x09, 0x09, 0x09, 0x70, 0x72, 0x69, 0x6E, 0x74, 0x66, 0x28, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x22, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x20, 0x25, 0x30, 0x34, 0x78, 0x5C, 0x6E, 0x5C, 0x6E, 0x22, 0x2C, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x30, 0x5D, 0x2C, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x31, 0x5D, 0x2C, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x32, 0x5D, 0x2C, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x33, 0x5D, 0x2C, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x34, 0x5D, 0x2C, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x35, 0x5D, 0x2C, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x36, 0x5D, 0x2C, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x37, 0x5D, 0x0A, 0x09, 0x09, 0x09, 0x29, 0x3B, 0x2A, 0x2F, 0x0A, 0x0A, 0x0A, 0x09, 0x09, 0x66, 0x6F, 0x72, 0x20, 0x28, 0x69, 0x6E, 0x74, 0x20, 0x69, 0x20, 0x3D, 0x20, 0x30, 0x3B, 0x20, 0x69, 0x20, 0x3C, 0x20, 0x38, 0x3B, 0x20, 0x69, 0x20, 0x2B, 0x3D, 0x20, 0x31, 0x29, 0x0A, 0x09, 0x09, 0x7B, 0x0A, 0x09, 0x09, 0x09, 0x0A, 0x09, 0x09, 0x09, 0x69, 0x66, 0x20, 0x28, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x69, 0x5D, 0x20, 0x3E, 0x20, 0x6D, 0x73, 0x67, 0x2D, 0x3E, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x2E, 0x76, 0x5B, 0x69, 0x5D, 0x29, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x2F, 0x2F, 0x20, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6E, 0x3B, 0x0A, 0x09, 0x09, 0x09, 0x20, 0x20, 0x20, 0x20, 0x67, 0x6F, 0x74, 0x6F, 0x20, 0x6E, 0x65, 0x78, 0x74, 0x5F, 0x74, 0x72, 0x79, 0x3B, 0x0A, 0x09, 0x0A, 0x09, 0x09, 0x09, 0x69, 0x66, 0x20, 0x28, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2E, 0x76, 0x5B, 0x69, 0x5D, 0x20, 0x3C, 0x20, 0x6D, 0x73, 0x67, 0x2D, 0x3E, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x2E, 0x76, 0x5B, 0x69, 0x5D, 0x29, 0x0A, 0x09, 0x09, 0x09, 0x7B, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x0A, 0x09, 0x23, 0x69, 0x66, 0x20, 0x64, 0x65, 0x66, 0x69, 0x6E, 0x65, 0x64, 0x28, 0x5F, 0x5F, 0x4F, 0x50, 0x45, 0x4E, 0x43, 0x4C, 0x5F, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4F, 0x4E, 0x5F, 0x5F, 0x29, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x2F, 0x2F, 0x20, 0x69, 0x66, 0x20, 0x28, 0x61, 0x74, 0x6F, 0x6D, 0x69, 0x63, 0x5F, 0x61, 0x64, 0x64, 0x28, 0x26, 0x72, 0x65, 0x73, 0x75, 0x6C, 0x74, 0x2D, 0x3E, 0x66, 0x6F, 0x75, 0x6E, 0x64, 0x2C, 0x20, 0x31, 0x29, 0x20, 0x3D, 0x3D, 0x20, 0x30, 0x29, 0x0A, 0x09, 0x09, 0x09, 0x20, 0x20, 0x20, 0x20, 0x72, 0x65, 0x73, 0x75, 0x6C, 0x74, 0x2D, 0x3E, 0x66, 0x6F, 0x75, 0x6E, 0x64, 0x2B, 0x2B, 0x3B, 0x0A, 0x09, 0x23, 0x65, 0x6C, 0x73, 0x65, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x69, 0x66, 0x20, 0x28, 0x61, 0x74, 0x6F, 0x6D, 0x69, 0x63, 0x41, 0x64, 0x64, 0x28, 0x26, 0x72, 0x65, 0x73, 0x75, 0x6C, 0x74, 0x2D, 0x3E, 0x66, 0x6F, 0x75, 0x6E, 0x64, 0x2C, 0x20, 0x31, 0x29, 0x20, 0x3D, 0x3D, 0x20, 0x30, 0x29, 0x0A, 0x09, 0x23, 0x65, 0x6E, 0x64, 0x69, 0x66, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x09, 0x72, 0x65, 0x73, 0x75, 0x6C, 0x74, 0x2D, 0x3E, 0x6E, 0x6F, 0x6E, 0x63, 0x65, 0x20, 0x3D, 0x20, 0x6E, 0x6F, 0x6E, 0x63, 0x65, 0x2C, 0x20, 0x72, 0x65, 0x73, 0x75, 0x6C, 0x74, 0x2D, 0x3E, 0x76, 0x63, 0x70, 0x75, 0x20, 0x3D, 0x20, 0x76, 0x63, 0x70, 0x75, 0x3B, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x09, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6E, 0x3B, 0x0A, 0x09, 0x09, 0x09, 0x09, 0x0A, 0x09, 0x09, 0x09, 0x7D, 0x0A, 0x09, 0x09, 0x09, 0x0A, 0x09, 0x09, 0x7D, 0x0A, 0x09, 0x09, 0x0A, 0x09, 0x09, 0x6E, 0x65, 0x78, 0x74, 0x5F, 0x74, 0x72, 0x79, 0x20, 0x3A, 0x20, 0x3B, 0x0A, 0x09, 0x09, 0x0A, 0x09, 0x7D, 0x0A, 0x09, 0x0A, 0x7D, 0x0A, 0x0A, 0x23, 0x65, 0x6E, 0x64, 0x69, 0x66, 0x0A, 0x0A, 0x0A, 0x23, 0x65, 0x6E, 0x64, 0x69, 0x66, 0x0A, 0x0A, +}; +//unsigned int cruncher_h_len = 11615; +unsigned int cruncher_h_len = 11560; \ No newline at end of file diff --git a/crypto/util/opencl/opencl.cpp b/crypto/util/opencl/opencl.cpp index 69a6d47..726ba72 100644 --- a/crypto/util/opencl/opencl.cpp +++ b/crypto/util/opencl/opencl.cpp @@ -104,13 +104,18 @@ void OpenCL::create_context(cl_uint platform_idx, cl_uint device_idx) { platform_idx_ = platform_idx; } -void OpenCL::create_kernel() { +void OpenCL::create_kernel(uint64_t ocl_throughput, uint64_t ocl_hpf) { +// void OpenCL::create_kernel() { // printf("[ OpenCL: create kernel ]\n"); cl_int ret; + char additional_build_args[256] = {"\0"}; + + sprintf(additional_build_args, "-D THROUGHPUT=%d -D HPF=%d", ocl_throughput, ocl_hpf); + program_ = clCreateProgramWithSource(context_, 1, (const char **)&source_str_, (const size_t *)&source_size_, &ret); CL_WRAPPER(ret); - ret = clBuildProgram(program_, 1, &devices_[device_idx_], NULL, NULL, NULL); + ret = clBuildProgram(program_, 1, &devices_[device_idx_], additional_build_args, NULL, NULL); if (ret != CL_SUCCESS) { size_t blen = 0; CL_WRAPPER(clGetProgramBuildInfo(program_, devices_[device_idx_], CL_PROGRAM_BUILD_LOG, 0, NULL, &blen)); diff --git a/crypto/util/opencl/opencl.h b/crypto/util/opencl/opencl.h index f619c4c..00e73bd 100644 --- a/crypto/util/opencl/opencl.h +++ b/crypto/util/opencl/opencl.h @@ -32,7 +32,8 @@ class OpenCL { void print_devices(); int get_num_devices(); void create_context(cl_uint platform_idx, cl_uint device_idx); - void create_kernel(); + void create_kernel(uint64_t ocl_throughput, uint64_t ocl_hpf); + // void create_kernel(); void load_objects(uint32_t gpu_id, uint32_t cpu_id, uint32_t expired, const unsigned char *data, const uint8_t *target, const unsigned char *rdata, uint32_t gpu_threads); HashResult scan_hash(uint cpu_id, uint32_t gpu_threads, uint64_t threads, uint64_t start_nonce, uint expired); diff --git a/crypto/util/opencl/sha256.cpp b/crypto/util/opencl/sha256.cpp index 107232f..6fc461d 100644 --- a/crypto/util/opencl/sha256.cpp +++ b/crypto/util/opencl/sha256.cpp @@ -7,22 +7,32 @@ #include "crypto/util/Miner.h" +// HPF - Hashes per one flight or call OpenCL kernel +#define HPF 3 + namespace opencl { td::optional SHA256::run(ton::HDataEnv H, unsigned char *rdata, const ton::Miner::Options &options, int cpu_id) { // opencl auto opencl = OpenCL(); - //opencl.load_source("cruncher.h"); + + uint64_t ocl_throughput; + uint64_t ocl_hpf; + + ocl_throughput = (uint64_t) ((1U << 19) * options.factor); + ocl_hpf = HPF; + + // opencl.load_source("cruncher.h"); opencl.set_source(cruncher_h, cruncher_h_len); opencl.print_devices(); opencl.create_context(options.platform_id, options.gpu_id); - opencl.create_kernel(); + opencl.create_kernel(ocl_throughput,ocl_hpf); // data td::Slice data = H.as_slice(); - td::uint64 throughput = (td::uint64)((1U << 19) * options.factor); // 256*256*64*8*factor/64 + td::uint64 throughput = (td::uint64)((1U << 19) * options.factor * HPF); // 256*256*64*8*factor/64 if (options.max_iterations < throughput) { throughput = options.max_iterations; } @@ -44,7 +54,7 @@ td::optional SHA256::run(ton::HDataEnv H, unsigned char *rdata, con td::int64 i = 0; for (; i < options.max_iterations;) { td::Timestamp instant_start_at = td::Timestamp::now(); - HashResult foundNonce = opencl.scan_hash(cpu_id, options.gpu_threads, throughput, i, expired); + HashResult foundNonce = opencl.scan_hash(cpu_id, options.gpu_threads, throughput/HPF, i, expired); *options.instant_passed = td::Timestamp::now().at() - instant_start_at.at(); if (foundNonce.nonce != UINT64_MAX && foundNonce.vcpu != UINT64_MAX) { if (options.hashes_computed) {