From 68bdb3787ca5bad7e7981633a69ef021640e17ef Mon Sep 17 00:00:00 2001 From: DiogoAndreBotas Date: Tue, 18 Feb 2025 15:29:34 +0000 Subject: [PATCH] Add tests for downloadNfcFace endpoint Add tests for `/documents/{document_id}/nfc_face` endpoint, added to the OpenAPI spec in [this commit](https://github.com/onfido/onfido-openapi-spec/commit/c479418e1d6673348a4c8c5bd79348d1c0cc502f). --- test/media/nfc_data.json | 11768 +++++++++++++++++++++++++++++ test/resources/documents.test.ts | 30 + test/test-helpers.ts | 5 +- 3 files changed, 11801 insertions(+), 2 deletions(-) create mode 100644 test/media/nfc_data.json diff --git a/test/media/nfc_data.json b/test/media/nfc_data.json new file mode 100644 index 0000000..af94172 --- /dev/null +++ b/test/media/nfc_data.json @@ -0,0 +1,11768 @@ +{ + "sod": [ + 119, + -126, + 5, + 95, + 48, + -126, + 5, + 91, + 6, + 9, + 42, + -122, + 72, + -122, + -9, + 13, + 1, + 7, + 2, + -96, + -126, + 5, + 76, + 48, + -126, + 5, + 72, + 2, + 1, + 3, + 49, + 13, + 48, + 11, + 6, + 9, + 96, + -122, + 72, + 1, + 101, + 3, + 4, + 2, + 1, + 48, + 110, + 6, + 6, + 103, + -127, + 8, + 1, + 1, + 1, + -96, + 100, + 4, + 98, + 48, + 96, + 2, + 1, + 0, + 48, + 11, + 6, + 9, + 96, + -122, + 72, + 1, + 101, + 3, + 4, + 2, + 1, + 48, + 78, + 48, + 37, + 2, + 1, + 1, + 4, + 32, + -93, + -96, + 8, + -26, + -48, + 84, + -14, + -48, + -109, + -121, + 97, + 20, + -6, + -117, + 18, + 29, + 3, + 121, + -15, + 68, + -124, + -110, + -46, + -78, + -70, + -122, + 125, + 43, + -29, + 73, + 22, + 46, + 48, + 37, + 2, + 1, + 2, + 4, + 32, + 29, + -97, + -124, + 17, + 119, + 15, + 98, + 30, + 21, + -106, + -66, + -73, + 46, + 83, + 8, + -31, + 36, + 35, + -63, + -61, + -28, + 113, + 63, + -71, + -12, + 94, + 119, + -119, + 38, + 107, + -84, + -1, + -96, + -126, + 3, + 2, + 48, + -126, + 2, + -2, + 48, + -126, + 1, + -26, + 2, + 20, + 120, + -55, + -23, + 36, + 16, + -105, + 47, + -51, + 123, + -109, + 87, + 100, + -24, + -96, + 114, + -73, + -56, + 61, + -13, + 75, + 48, + 13, + 6, + 9, + 42, + -122, + 72, + -122, + -9, + 13, + 1, + 1, + 11, + 5, + 0, + 48, + 51, + 49, + 11, + 48, + 9, + 6, + 3, + 85, + 4, + 6, + 19, + 2, + 79, + 78, + 49, + 19, + 48, + 17, + 6, + 3, + 85, + 4, + 8, + 12, + 10, + 83, + 111, + 109, + 101, + 45, + 83, + 116, + 97, + 116, + 101, + 49, + 15, + 48, + 13, + 6, + 3, + 85, + 4, + 10, + 12, + 6, + 79, + 110, + 102, + 105, + 100, + 111, + 48, + 32, + 23, + 13, + 50, + 49, + 48, + 57, + 50, + 49, + 50, + 49, + 48, + 57, + 48, + 51, + 90, + 24, + 15, + 50, + 50, + 57, + 53, + 48, + 55, + 48, + 54, + 50, + 49, + 48, + 57, + 48, + 51, + 90, + 48, + 66, + 49, + 11, + 48, + 9, + 6, + 3, + 85, + 4, + 6, + 19, + 2, + 79, + 78, + 49, + 19, + 48, + 17, + 6, + 3, + 85, + 4, + 8, + 12, + 10, + 83, + 111, + 109, + 101, + 45, + 83, + 116, + 97, + 116, + 101, + 49, + 15, + 48, + 13, + 6, + 3, + 85, + 4, + 10, + 12, + 6, + 79, + 110, + 102, + 105, + 100, + 111, + 49, + 13, + 48, + 11, + 6, + 3, + 85, + 4, + 11, + 12, + 4, + 68, + 83, + 67, + 49, + 48, + -126, + 1, + 34, + 48, + 13, + 6, + 9, + 42, + -122, + 72, + -122, + -9, + 13, + 1, + 1, + 1, + 5, + 0, + 3, + -126, + 1, + 15, + 0, + 48, + -126, + 1, + 10, + 2, + -126, + 1, + 1, + 0, + -60, + -22, + 35, + 80, + 115, + -20, + -5, + 127, + 89, + 63, + -113, + 101, + -93, + -13, + 126, + -67, + 81, + -96, + 65, + -25, + -125, + -117, + 126, + 26, + -17, + 122, + 102, + -108, + 111, + -37, + -121, + -86, + 108, + 11, + 2, + 81, + 16, + -4, + -100, + -65, + 6, + -46, + -90, + -38, + 5, + -80, + -63, + 97, + 123, + 69, + 69, + 111, + 101, + -102, + 79, + 121, + -78, + -1, + -36, + 90, + -28, + 15, + -90, + -55, + -52, + -100, + 78, + -30, + -82, + 69, + 99, + -92, + -119, + 31, + -4, + -15, + -31, + -19, + -64, + 115, + 88, + -56, + 46, + 80, + 40, + -124, + -18, + -50, + 47, + -62, + -122, + 17, + 60, + -79, + 16, + -35, + -115, + 122, + 8, + -53, + 87, + 19, + -92, + 124, + 30, + 44, + 82, + -105, + -51, + -91, + -29, + -63, + -106, + 101, + 9, + -70, + 39, + -118, + 121, + -88, + 109, + 71, + 121, + -5, + -104, + 126, + 63, + -92, + -77, + -105, + -1, + -46, + -101, + -24, + 24, + -110, + 98, + -111, + -9, + 45, + 18, + 54, + 97, + 90, + 19, + 33, + -63, + -94, + -23, + -79, + -76, + 121, + 49, + -16, + -109, + 41, + 3, + 20, + 3, + 76, + 90, + 82, + 116, + 81, + -122, + -76, + -29, + 34, + -23, + 70, + 77, + 94, + 30, + 56, + 21, + 24, + 100, + 125, + 98, + 115, + -40, + 82, + -99, + 105, + -70, + -38, + 111, + -128, + -52, + -33, + 69, + -124, + -44, + -76, + 84, + 96, + -43, + -41, + 36, + 34, + -59, + 70, + -119, + 55, + -87, + 56, + -17, + -70, + -13, + -74, + 83, + -53, + 43, + -113, + -86, + -61, + -11, + 95, + 63, + -14, + -30, + 19, + -93, + -97, + -11, + 124, + 23, + -69, + 79, + -84, + 51, + -55, + 125, + 66, + 63, + -46, + 105, + 50, + -118, + -26, + -104, + -31, + -117, + 69, + -113, + -58, + -5, + -7, + 5, + 23, + -31, + 45, + -18, + 64, + -74, + 93, + 2, + 3, + 1, + 0, + 1, + 48, + 13, + 6, + 9, + 42, + -122, + 72, + -122, + -9, + 13, + 1, + 1, + 11, + 5, + 0, + 3, + -126, + 1, + 1, + 0, + -83, + 53, + 38, + 85, + -38, + -18, + -60, + 33, + -97, + 80, + 77, + -76, + -62, + -14, + 91, + -23, + -3, + 47, + -3, + 14, + -87, + -27, + 19, + 94, + 1, + -43, + 51, + -70, + 34, + -88, + 16, + -107, + -54, + -52, + 91, + 18, + 19, + -80, + 47, + -80, + -21, + -65, + -19, + -105, + -43, + 49, + -40, + 117, + 113, + 80, + -8, + -70, + -62, + 38, + 43, + -100, + 120, + -91, + -32, + -93, + -63, + 50, + -96, + -36, + -126, + -35, + 115, + 50, + 70, + -65, + 5, + 50, + 100, + 116, + 76, + -104, + 43, + -90, + 30, + 16, + 74, + 56, + -29, + 51, + 76, + -18, + 34, + 63, + 40, + -90, + 75, + -93, + -44, + -99, + -42, + -46, + 23, + -44, + -126, + 52, + 105, + -1, + -49, + 57, + 27, + -21, + 44, + -27, + 6, + -38, + -108, + 97, + -51, + -98, + 115, + -70, + 72, + 1, + -124, + -35, + -19, + 7, + 71, + -125, + -123, + 53, + 72, + -107, + 103, + -67, + 103, + 15, + 17, + -1, + 67, + -54, + 122, + 71, + -112, + 9, + -50, + 90, + 43, + -72, + -91, + 24, + -77, + 41, + 6, + 120, + 54, + -63, + 41, + -26, + 65, + -101, + -16, + 26, + -40, + -120, + -23, + 95, + 110, + -125, + -98, + 37, + 27, + -113, + 38, + -119, + 30, + -86, + -36, + 80, + 63, + -31, + -109, + -84, + 48, + -83, + 85, + -34, + 114, + 107, + -84, + -72, + -102, + -91, + -66, + -64, + 8, + 11, + -1, + -31, + 108, + 108, + 103, + -20, + -73, + 24, + -111, + 47, + 65, + -26, + 93, + 37, + 58, + -79, + 65, + 117, + -72, + -62, + 31, + 81, + -104, + -51, + -81, + 60, + -90, + -14, + -23, + 48, + 103, + 97, + -12, + 15, + 54, + -43, + -31, + -41, + 47, + -91, + 41, + 34, + -11, + 35, + -96, + -53, + -71, + -38, + -110, + 53, + 32, + 95, + -13, + -84, + 70, + 92, + -47, + 93, + 46, + 72, + -125, + -57, + -18, + -84, + 49, + -126, + 1, + -68, + 48, + -126, + 1, + -72, + 2, + 1, + 1, + 48, + 75, + 48, + 51, + 49, + 11, + 48, + 9, + 6, + 3, + 85, + 4, + 6, + 19, + 2, + 79, + 78, + 49, + 19, + 48, + 17, + 6, + 3, + 85, + 4, + 8, + 12, + 10, + 83, + 111, + 109, + 101, + 45, + 83, + 116, + 97, + 116, + 101, + 49, + 15, + 48, + 13, + 6, + 3, + 85, + 4, + 10, + 12, + 6, + 79, + 110, + 102, + 105, + 100, + 111, + 2, + 20, + 120, + -55, + -23, + 36, + 16, + -105, + 47, + -51, + 123, + -109, + 87, + 100, + -24, + -96, + 114, + -73, + -56, + 61, + -13, + 75, + 48, + 11, + 6, + 9, + 96, + -122, + 72, + 1, + 101, + 3, + 4, + 2, + 1, + -96, + 72, + 48, + 21, + 6, + 9, + 42, + -122, + 72, + -122, + -9, + 13, + 1, + 9, + 3, + 49, + 8, + 6, + 6, + 103, + -127, + 8, + 1, + 1, + 1, + 48, + 47, + 6, + 9, + 42, + -122, + 72, + -122, + -9, + 13, + 1, + 9, + 4, + 49, + 34, + 4, + 32, + -12, + -4, + -61, + -62, + -36, + 11, + -98, + -28, + 89, + -21, + 7, + 108, + -103, + 38, + 3, + 120, + -14, + 88, + 35, + -54, + 72, + -128, + 113, + 19, + -90, + -67, + 31, + -95, + -120, + -29, + -24, + -59, + 48, + 11, + 6, + 9, + 42, + -122, + 72, + -122, + -9, + 13, + 1, + 1, + 11, + 4, + -126, + 1, + 0, + 81, + -28, + -65, + 43, + -116, + 102, + 51, + -82, + 70, + -91, + -100, + 120, + 108, + -45, + -81, + 58, + -6, + 15, + -34, + -70, + -14, + 28, + -82, + 21, + 105, + 73, + 37, + 18, + 84, + 22, + 55, + 118, + -45, + 99, + 88, + -43, + -102, + -86, + -11, + 90, + -46, + 25, + -117, + 31, + 113, + 105, + -71, + 17, + -42, + -87, + -66, + 79, + -70, + -108, + 79, + -117, + 83, + 9, + -34, + -112, + 109, + -83, + 66, + 127, + 43, + -55, + 26, + 100, + 56, + 8, + -81, + 126, + 8, + -105, + -26, + 49, + -106, + 0, + 78, + 43, + -78, + -74, + 95, + -38, + 29, + 104, + 90, + -44, + 36, + 14, + 81, + -102, + -39, + -27, + 8, + -106, + -118, + 125, + 76, + -93, + -34, + -113, + -86, + 51, + 86, + -45, + -116, + -81, + 126, + -38, + 38, + -108, + -78, + -73, + 117, + -126, + 52, + 88, + 37, + -16, + -65, + 100, + -26, + -93, + -38, + 116, + 51, + -5, + 75, + -105, + -73, + -123, + 98, + 17, + -96, + 54, + 78, + 45, + -37, + -17, + 63, + -77, + -13, + -93, + -43, + 54, + 2, + -47, + -55, + -21, + 11, + 18, + 10, + 101, + 71, + 31, + 40, + 68, + 117, + -76, + -13, + -113, + -6, + -102, + -100, + -67, + -39, + 55, + -39, + -62, + 15, + 17, + -50, + 40, + 7, + 74, + 82, + -42, + 53, + 8, + -36, + -61, + 79, + 33, + -82, + -107, + -70, + 13, + 94, + -82, + -10, + 113, + 29, + -66, + 9, + -126, + 125, + 95, + 62, + 115, + 28, + -50, + -23, + 55, + 74, + -28, + 120, + 36, + 61, + 47, + 96, + 34, + 125, + -121, + -108, + -87, + 18, + -26, + 21, + 36, + 103, + 79, + -9, + -30, + -107, + -121, + -18, + 35, + -42, + -5, + 3, + 69, + 35, + 13, + -109, + -11, + -61, + -91, + -90, + -62, + -63, + -117, + -121, + -27, + 15, + -92, + 3, + 67, + 78, + -94, + -127, + 45, + -47, + 26, + 127, + 31 + ], + "dg2": [ + 117, + 130, + 40, + 44, + 127, + 97, + 130, + 40, + 39, + 2, + 1, + 1, + 127, + 96, + 130, + 40, + 31, + 161, + 14, + 129, + 1, + 2, + 130, + 1, + 0, + 135, + 2, + 1, + 1, + 136, + 2, + 0, + 8, + 95, + 46, + 130, + 40, + 10, + 70, + 65, + 67, + 0, + 48, + 49, + 48, + 0, + 0, + 0, + 40, + 10, + 0, + 1, + 0, + 0, + 39, + 252, + 0, + 0, + 1, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 1, + 1, + 2, + 8, + 2, + 165, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 12, + 106, + 80, + 32, + 32, + 13, + 10, + 135, + 10, + 0, + 0, + 0, + 20, + 102, + 116, + 121, + 112, + 106, + 112, + 50, + 32, + 0, + 0, + 0, + 0, + 106, + 112, + 50, + 32, + 0, + 0, + 0, + 45, + 106, + 112, + 50, + 104, + 0, + 0, + 0, + 22, + 105, + 104, + 100, + 114, + 0, + 0, + 2, + 165, + 0, + 0, + 2, + 8, + 0, + 3, + 7, + 7, + 1, + 0, + 0, + 0, + 0, + 15, + 99, + 111, + 108, + 114, + 1, + 0, + 0, + 0, + 0, + 0, + 16, + 0, + 0, + 0, + 0, + 106, + 112, + 50, + 99, + 255, + 79, + 255, + 81, + 0, + 47, + 0, + 0, + 0, + 0, + 2, + 8, + 0, + 0, + 2, + 165, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2, + 8, + 0, + 0, + 2, + 165, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 3, + 7, + 1, + 1, + 7, + 1, + 1, + 7, + 1, + 1, + 255, + 82, + 0, + 12, + 0, + 1, + 0, + 1, + 1, + 5, + 4, + 4, + 0, + 0, + 255, + 92, + 0, + 35, + 66, + 111, + 24, + 110, + 234, + 110, + 234, + 110, + 188, + 103, + 0, + 103, + 0, + 102, + 226, + 95, + 76, + 95, + 76, + 95, + 100, + 72, + 3, + 72, + 3, + 72, + 69, + 79, + 210, + 79, + 210, + 79, + 97, + 255, + 144, + 0, + 10, + 0, + 0, + 0, + 0, + 39, + 31, + 0, + 1, + 255, + 147, + 207, + 203, + 88, + 0, + 20, + 0, + 69, + 240, + 105, + 206, + 185, + 247, + 228, + 122, + 204, + 123, + 106, + 5, + 69, + 34, + 179, + 140, + 147, + 222, + 243, + 108, + 18, + 187, + 167, + 175, + 152, + 253, + 222, + 20, + 17, + 97, + 77, + 59, + 154, + 67, + 148, + 161, + 0, + 71, + 174, + 128, + 124, + 105, + 153, + 244, + 6, + 142, + 189, + 159, + 43, + 143, + 148, + 54, + 36, + 80, + 84, + 194, + 2, + 51, + 84, + 8, + 241, + 97, + 9, + 128, + 133, + 240, + 159, + 181, + 181, + 182, + 243, + 231, + 112, + 0, + 30, + 235, + 104, + 9, + 208, + 39, + 75, + 52, + 241, + 251, + 102, + 79, + 168, + 167, + 130, + 85, + 8, + 223, + 190, + 29, + 38, + 209, + 36, + 209, + 64, + 121, + 162, + 20, + 0, + 165, + 21, + 188, + 231, + 69, + 82, + 235, + 145, + 85, + 124, + 52, + 198, + 125, + 138, + 119, + 120, + 86, + 136, + 231, + 208, + 10, + 251, + 96, + 170, + 186, + 183, + 127, + 18, + 63, + 24, + 47, + 237, + 187, + 209, + 101, + 142, + 137, + 6, + 119, + 217, + 27, + 101, + 232, + 52, + 135, + 178, + 217, + 56, + 59, + 211, + 77, + 145, + 75, + 148, + 124, + 131, + 141, + 214, + 228, + 135, + 187, + 42, + 121, + 174, + 251, + 11, + 139, + 120, + 128, + 140, + 18, + 109, + 62, + 122, + 233, + 98, + 81, + 164, + 152, + 136, + 175, + 141, + 25, + 47, + 52, + 75, + 22, + 47, + 23, + 79, + 87, + 154, + 41, + 79, + 165, + 104, + 33, + 140, + 234, + 222, + 238, + 139, + 45, + 170, + 152, + 126, + 202, + 36, + 181, + 53, + 156, + 140, + 252, + 154, + 48, + 118, + 29, + 232, + 63, + 51, + 99, + 234, + 65, + 120, + 250, + 66, + 206, + 253, + 182, + 224, + 23, + 31, + 54, + 32, + 8, + 26, + 47, + 8, + 173, + 161, + 187, + 203, + 97, + 161, + 77, + 48, + 233, + 3, + 201, + 131, + 73, + 129, + 151, + 238, + 130, + 46, + 188, + 198, + 168, + 169, + 6, + 96, + 5, + 247, + 36, + 58, + 235, + 187, + 61, + 247, + 248, + 208, + 90, + 220, + 38, + 109, + 11, + 100, + 184, + 127, + 78, + 47, + 81, + 164, + 118, + 9, + 114, + 212, + 76, + 139, + 30, + 9, + 121, + 185, + 149, + 189, + 88, + 112, + 202, + 238, + 51, + 252, + 111, + 144, + 155, + 44, + 35, + 13, + 251, + 125, + 157, + 223, + 131, + 139, + 164, + 234, + 154, + 242, + 94, + 2, + 157, + 59, + 106, + 67, + 176, + 253, + 251, + 111, + 21, + 145, + 15, + 252, + 1, + 42, + 67, + 162, + 177, + 5, + 71, + 112, + 175, + 93, + 13, + 34, + 158, + 162, + 248, + 193, + 244, + 235, + 48, + 132, + 129, + 195, + 95, + 161, + 179, + 76, + 93, + 64, + 110, + 58, + 137, + 190, + 179, + 55, + 77, + 18, + 143, + 44, + 68, + 170, + 27, + 157, + 54, + 82, + 245, + 173, + 218, + 93, + 101, + 216, + 117, + 208, + 52, + 53, + 138, + 6, + 231, + 211, + 27, + 3, + 140, + 108, + 30, + 80, + 224, + 147, + 185, + 138, + 74, + 189, + 204, + 191, + 240, + 46, + 232, + 203, + 218, + 232, + 127, + 15, + 168, + 117, + 177, + 254, + 23, + 86, + 107, + 189, + 149, + 153, + 171, + 103, + 50, + 155, + 32, + 92, + 22, + 44, + 102, + 67, + 34, + 141, + 169, + 76, + 139, + 38, + 210, + 107, + 55, + 196, + 113, + 208, + 132, + 232, + 131, + 224, + 65, + 53, + 196, + 177, + 142, + 12, + 2, + 50, + 60, + 247, + 100, + 195, + 21, + 101, + 239, + 237, + 149, + 52, + 111, + 165, + 197, + 80, + 205, + 149, + 89, + 20, + 104, + 241, + 51, + 215, + 231, + 200, + 33, + 183, + 6, + 152, + 92, + 236, + 98, + 222, + 55, + 154, + 49, + 145, + 189, + 144, + 242, + 205, + 79, + 157, + 254, + 46, + 224, + 93, + 182, + 174, + 243, + 91, + 205, + 25, + 138, + 80, + 151, + 63, + 24, + 135, + 136, + 199, + 252, + 84, + 112, + 11, + 211, + 191, + 88, + 36, + 104, + 30, + 173, + 35, + 168, + 150, + 195, + 236, + 177, + 128, + 130, + 71, + 28, + 209, + 129, + 195, + 224, + 2, + 147, + 89, + 249, + 143, + 2, + 220, + 4, + 252, + 80, + 89, + 150, + 206, + 52, + 226, + 99, + 215, + 25, + 7, + 23, + 129, + 247, + 240, + 106, + 201, + 223, + 177, + 3, + 81, + 35, + 77, + 70, + 11, + 203, + 159, + 237, + 105, + 57, + 211, + 102, + 168, + 167, + 197, + 86, + 207, + 220, + 215, + 22, + 172, + 207, + 96, + 125, + 89, + 151, + 75, + 228, + 155, + 125, + 142, + 69, + 66, + 2, + 121, + 23, + 220, + 3, + 19, + 50, + 17, + 156, + 190, + 122, + 59, + 208, + 1, + 252, + 177, + 91, + 171, + 207, + 94, + 139, + 180, + 56, + 171, + 249, + 101, + 108, + 39, + 197, + 2, + 18, + 81, + 104, + 189, + 250, + 63, + 179, + 130, + 160, + 11, + 199, + 58, + 83, + 4, + 165, + 73, + 244, + 101, + 39, + 163, + 245, + 10, + 22, + 118, + 90, + 179, + 154, + 223, + 43, + 71, + 185, + 129, + 165, + 245, + 100, + 240, + 185, + 166, + 0, + 40, + 182, + 118, + 133, + 212, + 229, + 160, + 254, + 43, + 78, + 25, + 206, + 213, + 57, + 223, + 185, + 28, + 253, + 115, + 110, + 165, + 141, + 125, + 151, + 191, + 97, + 244, + 26, + 232, + 156, + 58, + 180, + 131, + 49, + 230, + 174, + 232, + 237, + 130, + 246, + 132, + 237, + 105, + 181, + 206, + 4, + 78, + 234, + 114, + 20, + 220, + 71, + 128, + 67, + 200, + 181, + 151, + 67, + 117, + 122, + 28, + 195, + 238, + 182, + 224, + 250, + 237, + 136, + 62, + 186, + 200, + 136, + 77, + 232, + 86, + 8, + 217, + 58, + 115, + 30, + 7, + 69, + 94, + 112, + 224, + 181, + 243, + 116, + 134, + 102, + 60, + 254, + 231, + 27, + 239, + 68, + 216, + 170, + 111, + 13, + 21, + 132, + 224, + 100, + 106, + 161, + 123, + 133, + 38, + 218, + 255, + 58, + 161, + 207, + 13, + 184, + 38, + 52, + 192, + 143, + 22, + 226, + 39, + 74, + 207, + 45, + 119, + 29, + 225, + 188, + 18, + 97, + 178, + 187, + 80, + 192, + 166, + 178, + 141, + 222, + 58, + 0, + 63, + 240, + 93, + 162, + 228, + 62, + 142, + 140, + 16, + 135, + 18, + 61, + 89, + 102, + 86, + 109, + 203, + 5, + 90, + 129, + 68, + 228, + 108, + 138, + 92, + 195, + 81, + 94, + 42, + 34, + 4, + 192, + 30, + 204, + 203, + 209, + 236, + 220, + 180, + 13, + 20, + 226, + 80, + 95, + 248, + 243, + 30, + 7, + 116, + 165, + 179, + 126, + 219, + 8, + 187, + 117, + 84, + 213, + 175, + 114, + 232, + 98, + 150, + 0, + 238, + 92, + 97, + 216, + 37, + 128, + 167, + 34, + 148, + 150, + 220, + 133, + 11, + 112, + 105, + 10, + 128, + 122, + 215, + 214, + 8, + 152, + 33, + 242, + 222, + 182, + 196, + 204, + 125, + 148, + 227, + 224, + 195, + 179, + 175, + 102, + 72, + 99, + 15, + 183, + 42, + 161, + 99, + 56, + 155, + 117, + 137, + 220, + 69, + 7, + 245, + 167, + 178, + 143, + 188, + 63, + 141, + 73, + 100, + 93, + 81, + 99, + 74, + 32, + 29, + 6, + 112, + 217, + 153, + 84, + 148, + 60, + 136, + 39, + 115, + 230, + 239, + 153, + 41, + 87, + 154, + 172, + 252, + 44, + 40, + 157, + 242, + 176, + 182, + 187, + 61, + 198, + 56, + 153, + 217, + 29, + 194, + 62, + 129, + 36, + 7, + 22, + 165, + 4, + 105, + 135, + 70, + 5, + 99, + 89, + 64, + 105, + 26, + 223, + 92, + 104, + 240, + 208, + 131, + 13, + 129, + 149, + 26, + 237, + 231, + 162, + 166, + 119, + 245, + 108, + 96, + 222, + 9, + 7, + 196, + 9, + 162, + 87, + 72, + 168, + 149, + 151, + 179, + 78, + 74, + 135, + 197, + 66, + 166, + 243, + 171, + 144, + 42, + 214, + 166, + 134, + 155, + 71, + 223, + 126, + 226, + 226, + 86, + 215, + 134, + 119, + 217, + 170, + 120, + 114, + 187, + 113, + 226, + 192, + 223, + 237, + 82, + 42, + 63, + 0, + 64, + 137, + 164, + 170, + 89, + 21, + 130, + 197, + 254, + 200, + 38, + 133, + 134, + 28, + 138, + 155, + 251, + 78, + 52, + 56, + 56, + 197, + 165, + 130, + 100, + 53, + 220, + 127, + 251, + 106, + 112, + 0, + 204, + 159, + 72, + 151, + 168, + 137, + 160, + 240, + 14, + 59, + 55, + 160, + 113, + 193, + 192, + 49, + 20, + 18, + 33, + 132, + 213, + 127, + 252, + 59, + 155, + 138, + 3, + 235, + 245, + 33, + 3, + 139, + 219, + 167, + 112, + 112, + 174, + 68, + 246, + 179, + 181, + 44, + 35, + 155, + 215, + 216, + 241, + 217, + 199, + 142, + 12, + 3, + 38, + 126, + 170, + 105, + 169, + 28, + 33, + 197, + 192, + 193, + 211, + 167, + 214, + 66, + 13, + 114, + 62, + 10, + 15, + 90, + 136, + 226, + 83, + 192, + 232, + 183, + 9, + 140, + 152, + 109, + 11, + 138, + 245, + 11, + 188, + 129, + 36, + 225, + 191, + 95, + 236, + 80, + 247, + 13, + 91, + 15, + 35, + 11, + 174, + 33, + 194, + 8, + 113, + 33, + 58, + 101, + 5, + 116, + 185, + 174, + 5, + 52, + 11, + 201, + 151, + 23, + 39, + 201, + 245, + 68, + 109, + 41, + 13, + 99, + 180, + 10, + 205, + 232, + 117, + 122, + 164, + 87, + 95, + 108, + 73, + 139, + 142, + 231, + 175, + 103, + 225, + 248, + 255, + 21, + 34, + 40, + 118, + 189, + 214, + 125, + 181, + 110, + 152, + 239, + 28, + 60, + 63, + 77, + 248, + 166, + 20, + 105, + 73, + 198, + 130, + 95, + 185, + 231, + 30, + 231, + 137, + 249, + 79, + 59, + 98, + 214, + 239, + 7, + 190, + 192, + 60, + 245, + 59, + 143, + 104, + 84, + 26, + 209, + 182, + 45, + 235, + 90, + 33, + 42, + 247, + 11, + 42, + 36, + 162, + 41, + 130, + 211, + 202, + 164, + 160, + 190, + 238, + 211, + 41, + 208, + 132, + 23, + 149, + 5, + 107, + 134, + 120, + 111, + 135, + 214, + 235, + 27, + 225, + 197, + 223, + 133, + 158, + 238, + 131, + 123, + 108, + 232, + 246, + 198, + 199, + 128, + 129, + 164, + 170, + 246, + 206, + 13, + 60, + 123, + 31, + 105, + 236, + 170, + 94, + 98, + 87, + 200, + 248, + 246, + 157, + 244, + 187, + 210, + 52, + 6, + 220, + 97, + 94, + 244, + 192, + 124, + 183, + 8, + 15, + 146, + 133, + 0, + 248, + 108, + 128, + 135, + 186, + 73, + 242, + 17, + 216, + 29, + 133, + 35, + 215, + 146, + 252, + 240, + 139, + 106, + 10, + 172, + 172, + 14, + 206, + 191, + 188, + 231, + 55, + 94, + 10, + 113, + 148, + 109, + 235, + 98, + 74, + 218, + 240, + 88, + 94, + 21, + 17, + 162, + 75, + 57, + 9, + 219, + 53, + 45, + 191, + 24, + 136, + 71, + 64, + 76, + 167, + 204, + 225, + 14, + 109, + 176, + 180, + 76, + 128, + 161, + 247, + 103, + 186, + 172, + 72, + 74, + 88, + 164, + 237, + 109, + 57, + 107, + 204, + 250, + 21, + 103, + 203, + 218, + 228, + 59, + 143, + 47, + 77, + 57, + 165, + 252, + 4, + 47, + 104, + 95, + 97, + 42, + 206, + 25, + 64, + 9, + 198, + 126, + 17, + 122, + 86, + 79, + 176, + 227, + 223, + 85, + 64, + 242, + 253, + 230, + 219, + 72, + 19, + 30, + 142, + 63, + 238, + 157, + 202, + 100, + 4, + 0, + 234, + 60, + 201, + 12, + 231, + 103, + 60, + 41, + 59, + 162, + 26, + 210, + 103, + 26, + 251, + 56, + 8, + 153, + 208, + 61, + 194, + 192, + 108, + 77, + 177, + 7, + 117, + 143, + 181, + 63, + 17, + 68, + 103, + 89, + 82, + 139, + 56, + 61, + 174, + 227, + 95, + 95, + 77, + 57, + 116, + 119, + 5, + 125, + 104, + 255, + 73, + 178, + 88, + 107, + 115, + 40, + 15, + 166, + 89, + 106, + 38, + 135, + 32, + 165, + 61, + 185, + 59, + 177, + 72, + 198, + 100, + 58, + 252, + 67, + 18, + 34, + 7, + 137, + 209, + 154, + 126, + 75, + 165, + 207, + 128, + 34, + 73, + 191, + 98, + 97, + 243, + 178, + 134, + 40, + 200, + 217, + 166, + 151, + 85, + 231, + 18, + 58, + 135, + 48, + 89, + 192, + 124, + 186, + 2, + 3, + 229, + 183, + 192, + 62, + 27, + 176, + 135, + 217, + 146, + 154, + 135, + 152, + 32, + 166, + 188, + 1, + 121, + 65, + 76, + 234, + 224, + 211, + 123, + 80, + 162, + 180, + 56, + 118, + 217, + 103, + 137, + 60, + 73, + 62, + 130, + 234, + 78, + 186, + 168, + 73, + 128, + 81, + 146, + 150, + 64, + 102, + 234, + 93, + 29, + 226, + 140, + 219, + 3, + 32, + 197, + 226, + 253, + 87, + 29, + 49, + 17, + 235, + 198, + 165, + 233, + 190, + 86, + 192, + 142, + 27, + 79, + 224, + 202, + 11, + 89, + 202, + 167, + 166, + 70, + 226, + 110, + 141, + 114, + 24, + 193, + 198, + 52, + 44, + 236, + 47, + 197, + 14, + 198, + 104, + 241, + 213, + 253, + 22, + 31, + 62, + 122, + 219, + 24, + 153, + 170, + 164, + 219, + 143, + 91, + 15, + 156, + 10, + 246, + 215, + 213, + 244, + 214, + 16, + 190, + 88, + 179, + 97, + 49, + 31, + 189, + 229, + 225, + 65, + 223, + 169, + 140, + 129, + 76, + 23, + 148, + 68, + 197, + 74, + 179, + 56, + 149, + 92, + 43, + 86, + 150, + 20, + 210, + 227, + 90, + 213, + 173, + 156, + 199, + 28, + 118, + 123, + 90, + 126, + 107, + 17, + 125, + 127, + 120, + 32, + 46, + 180, + 88, + 182, + 139, + 140, + 178, + 179, + 149, + 217, + 36, + 187, + 241, + 40, + 232, + 19, + 214, + 217, + 184, + 43, + 243, + 85, + 193, + 203, + 9, + 130, + 220, + 52, + 131, + 92, + 105, + 224, + 91, + 21, + 59, + 131, + 187, + 1, + 18, + 56, + 238, + 248, + 248, + 188, + 130, + 47, + 144, + 154, + 106, + 242, + 131, + 15, + 106, + 104, + 68, + 50, + 239, + 44, + 8, + 26, + 21, + 7, + 117, + 97, + 9, + 120, + 53, + 57, + 195, + 97, + 218, + 50, + 102, + 236, + 140, + 135, + 22, + 104, + 247, + 35, + 74, + 40, + 187, + 165, + 106, + 163, + 234, + 150, + 208, + 166, + 217, + 248, + 118, + 56, + 254, + 91, + 122, + 188, + 147, + 72, + 91, + 237, + 180, + 105, + 29, + 152, + 132, + 14, + 234, + 151, + 223, + 74, + 255, + 88, + 46, + 40, + 50, + 20, + 53, + 202, + 132, + 17, + 119, + 13, + 142, + 106, + 239, + 41, + 124, + 167, + 220, + 9, + 254, + 227, + 214, + 4, + 75, + 99, + 149, + 91, + 195, + 235, + 223, + 248, + 125, + 123, + 221, + 7, + 209, + 217, + 192, + 202, + 193, + 20, + 171, + 145, + 24, + 202, + 13, + 173, + 11, + 195, + 240, + 206, + 135, + 167, + 50, + 13, + 80, + 7, + 245, + 45, + 245, + 179, + 232, + 153, + 127, + 194, + 198, + 50, + 50, + 221, + 47, + 129, + 168, + 124, + 79, + 36, + 36, + 205, + 123, + 71, + 158, + 17, + 168, + 42, + 7, + 65, + 114, + 248, + 216, + 15, + 116, + 61, + 10, + 111, + 139, + 212, + 48, + 157, + 209, + 117, + 248, + 84, + 141, + 195, + 230, + 53, + 88, + 196, + 105, + 4, + 97, + 91, + 210, + 182, + 206, + 6, + 155, + 4, + 176, + 166, + 46, + 70, + 10, + 127, + 200, + 35, + 159, + 53, + 186, + 183, + 55, + 247, + 17, + 34, + 101, + 247, + 218, + 246, + 201, + 200, + 246, + 220, + 226, + 34, + 180, + 76, + 111, + 197, + 119, + 226, + 62, + 144, + 189, + 206, + 21, + 61, + 43, + 93, + 246, + 2, + 87, + 165, + 137, + 37, + 192, + 11, + 127, + 24, + 0, + 104, + 112, + 198, + 246, + 217, + 114, + 96, + 105, + 87, + 87, + 20, + 241, + 124, + 106, + 43, + 204, + 73, + 7, + 185, + 75, + 197, + 128, + 67, + 229, + 241, + 123, + 250, + 97, + 29, + 97, + 236, + 231, + 96, + 49, + 114, + 23, + 43, + 14, + 220, + 86, + 238, + 136, + 53, + 50, + 229, + 139, + 245, + 129, + 153, + 11, + 132, + 32, + 143, + 181, + 118, + 231, + 182, + 215, + 103, + 77, + 227, + 108, + 124, + 56, + 44, + 227, + 232, + 21, + 111, + 211, + 206, + 160, + 64, + 116, + 206, + 150, + 91, + 87, + 13, + 71, + 116, + 173, + 7, + 201, + 172, + 94, + 242, + 78, + 57, + 32, + 250, + 187, + 79, + 142, + 163, + 222, + 113, + 69, + 158, + 203, + 56, + 229, + 48, + 39, + 182, + 79, + 46, + 213, + 129, + 233, + 87, + 179, + 128, + 64, + 231, + 55, + 124, + 161, + 205, + 71, + 104, + 223, + 40, + 50, + 244, + 187, + 227, + 206, + 158, + 19, + 92, + 122, + 226, + 49, + 231, + 60, + 49, + 16, + 97, + 90, + 6, + 201, + 127, + 188, + 139, + 93, + 46, + 223, + 221, + 154, + 216, + 93, + 235, + 42, + 162, + 113, + 250, + 211, + 41, + 246, + 11, + 142, + 160, + 59, + 36, + 74, + 40, + 4, + 102, + 46, + 89, + 180, + 82, + 24, + 43, + 193, + 205, + 117, + 92, + 179, + 71, + 130, + 111, + 211, + 73, + 132, + 43, + 215, + 54, + 207, + 130, + 54, + 63, + 204, + 16, + 106, + 218, + 42, + 184, + 111, + 71, + 204, + 210, + 39, + 124, + 223, + 50, + 179, + 74, + 74, + 88, + 37, + 29, + 242, + 87, + 92, + 59, + 55, + 202, + 140, + 5, + 22, + 188, + 31, + 129, + 163, + 117, + 201, + 17, + 43, + 122, + 29, + 189, + 41, + 208, + 38, + 120, + 219, + 242, + 242, + 145, + 4, + 46, + 145, + 114, + 204, + 166, + 224, + 221, + 167, + 67, + 175, + 56, + 18, + 103, + 233, + 77, + 225, + 155, + 34, + 115, + 136, + 171, + 206, + 65, + 26, + 206, + 37, + 250, + 235, + 84, + 55, + 253, + 165, + 1, + 184, + 204, + 239, + 168, + 83, + 238, + 17, + 33, + 193, + 191, + 157, + 217, + 221, + 25, + 222, + 245, + 235, + 18, + 8, + 243, + 6, + 175, + 80, + 126, + 16, + 205, + 37, + 155, + 181, + 204, + 240, + 43, + 35, + 95, + 120, + 130, + 40, + 187, + 48, + 58, + 78, + 59, + 41, + 7, + 165, + 210, + 12, + 6, + 171, + 56, + 235, + 36, + 253, + 114, + 137, + 2, + 202, + 58, + 46, + 97, + 227, + 194, + 97, + 148, + 208, + 232, + 202, + 187, + 62, + 173, + 46, + 25, + 17, + 58, + 114, + 188, + 23, + 103, + 125, + 80, + 209, + 229, + 62, + 255, + 4, + 120, + 2, + 217, + 91, + 245, + 231, + 137, + 131, + 215, + 155, + 105, + 1, + 58, + 37, + 84, + 156, + 158, + 143, + 127, + 1, + 70, + 208, + 201, + 22, + 88, + 165, + 145, + 104, + 232, + 70, + 31, + 240, + 109, + 224, + 122, + 43, + 95, + 108, + 242, + 222, + 174, + 247, + 68, + 94, + 156, + 170, + 58, + 191, + 247, + 69, + 233, + 37, + 24, + 200, + 242, + 34, + 33, + 110, + 90, + 107, + 186, + 46, + 148, + 174, + 52, + 39, + 96, + 21, + 203, + 241, + 190, + 69, + 107, + 61, + 136, + 217, + 171, + 61, + 57, + 232, + 231, + 164, + 253, + 37, + 146, + 140, + 197, + 174, + 157, + 0, + 194, + 7, + 77, + 168, + 246, + 98, + 130, + 185, + 56, + 204, + 96, + 55, + 167, + 123, + 54, + 83, + 225, + 115, + 37, + 230, + 90, + 230, + 194, + 47, + 68, + 63, + 246, + 215, + 162, + 183, + 220, + 18, + 166, + 79, + 241, + 157, + 30, + 24, + 63, + 25, + 147, + 181, + 8, + 152, + 224, + 69, + 91, + 201, + 144, + 53, + 28, + 198, + 90, + 138, + 115, + 155, + 206, + 119, + 39, + 172, + 132, + 17, + 110, + 182, + 203, + 145, + 3, + 239, + 131, + 149, + 244, + 135, + 221, + 215, + 172, + 136, + 161, + 174, + 131, + 177, + 104, + 188, + 187, + 185, + 157, + 10, + 8, + 102, + 221, + 34, + 74, + 111, + 143, + 143, + 25, + 238, + 6, + 233, + 202, + 154, + 137, + 162, + 57, + 16, + 177, + 59, + 70, + 124, + 169, + 42, + 220, + 238, + 172, + 9, + 199, + 239, + 120, + 6, + 241, + 91, + 221, + 77, + 2, + 234, + 243, + 86, + 109, + 167, + 125, + 147, + 23, + 16, + 97, + 101, + 119, + 252, + 52, + 202, + 32, + 134, + 232, + 110, + 75, + 26, + 67, + 38, + 131, + 250, + 152, + 145, + 147, + 191, + 133, + 150, + 204, + 152, + 230, + 217, + 197, + 250, + 247, + 166, + 104, + 210, + 194, + 173, + 112, + 65, + 20, + 108, + 157, + 76, + 150, + 229, + 213, + 167, + 159, + 228, + 198, + 219, + 224, + 6, + 160, + 131, + 15, + 130, + 86, + 78, + 241, + 44, + 222, + 5, + 185, + 231, + 69, + 222, + 121, + 38, + 39, + 143, + 136, + 155, + 27, + 214, + 56, + 51, + 93, + 229, + 233, + 106, + 165, + 152, + 106, + 143, + 33, + 129, + 229, + 51, + 78, + 136, + 91, + 79, + 29, + 181, + 208, + 65, + 80, + 55, + 112, + 236, + 56, + 181, + 26, + 251, + 144, + 157, + 210, + 199, + 142, + 175, + 51, + 198, + 235, + 115, + 101, + 232, + 233, + 3, + 95, + 133, + 65, + 9, + 238, + 76, + 42, + 230, + 206, + 217, + 90, + 19, + 240, + 157, + 108, + 51, + 65, + 181, + 242, + 31, + 79, + 121, + 3, + 83, + 127, + 191, + 236, + 165, + 175, + 49, + 103, + 201, + 130, + 88, + 32, + 109, + 222, + 35, + 124, + 132, + 81, + 27, + 168, + 46, + 224, + 17, + 78, + 77, + 2, + 45, + 38, + 4, + 0, + 106, + 89, + 35, + 199, + 113, + 96, + 40, + 157, + 135, + 213, + 120, + 202, + 104, + 11, + 25, + 117, + 106, + 88, + 228, + 130, + 63, + 40, + 121, + 86, + 32, + 65, + 194, + 199, + 204, + 211, + 99, + 72, + 93, + 24, + 14, + 129, + 131, + 249, + 152, + 21, + 245, + 236, + 243, + 119, + 178, + 134, + 28, + 113, + 73, + 120, + 178, + 199, + 120, + 90, + 149, + 193, + 155, + 242, + 54, + 59, + 182, + 51, + 2, + 194, + 167, + 169, + 157, + 183, + 83, + 178, + 58, + 213, + 187, + 123, + 146, + 35, + 147, + 45, + 227, + 44, + 37, + 255, + 40, + 241, + 222, + 171, + 3, + 177, + 114, + 246, + 155, + 250, + 102, + 193, + 170, + 161, + 30, + 98, + 216, + 251, + 19, + 174, + 67, + 70, + 223, + 192, + 193, + 16, + 78, + 242, + 189, + 91, + 230, + 5, + 194, + 110, + 230, + 204, + 99, + 131, + 116, + 90, + 34, + 21, + 147, + 54, + 121, + 11, + 163, + 15, + 1, + 111, + 208, + 191, + 202, + 174, + 98, + 144, + 31, + 230, + 17, + 238, + 202, + 96, + 71, + 187, + 18, + 91, + 18, + 8, + 134, + 79, + 132, + 183, + 51, + 43, + 222, + 246, + 120, + 149, + 244, + 48, + 18, + 7, + 25, + 33, + 252, + 193, + 93, + 210, + 47, + 223, + 118, + 142, + 247, + 103, + 206, + 142, + 126, + 140, + 187, + 212, + 43, + 154, + 231, + 11, + 37, + 204, + 31, + 191, + 27, + 109, + 13, + 134, + 184, + 159, + 146, + 198, + 74, + 143, + 206, + 77, + 243, + 104, + 222, + 21, + 70, + 109, + 82, + 244, + 143, + 155, + 105, + 255, + 96, + 6, + 124, + 165, + 229, + 215, + 17, + 207, + 212, + 103, + 236, + 85, + 99, + 12, + 107, + 65, + 170, + 25, + 214, + 212, + 238, + 88, + 152, + 163, + 171, + 15, + 119, + 51, + 76, + 248, + 234, + 117, + 63, + 108, + 204, + 42, + 116, + 107, + 89, + 119, + 79, + 6, + 198, + 249, + 85, + 216, + 249, + 231, + 76, + 11, + 135, + 93, + 101, + 22, + 9, + 109, + 65, + 148, + 117, + 203, + 191, + 125, + 192, + 67, + 101, + 252, + 223, + 98, + 148, + 47, + 150, + 194, + 232, + 97, + 138, + 101, + 162, + 249, + 7, + 237, + 222, + 102, + 253, + 210, + 75, + 199, + 118, + 32, + 230, + 14, + 74, + 7, + 117, + 148, + 118, + 122, + 83, + 217, + 58, + 203, + 51, + 81, + 211, + 230, + 4, + 105, + 212, + 24, + 115, + 232, + 139, + 217, + 74, + 255, + 116, + 99, + 6, + 19, + 233, + 66, + 243, + 210, + 175, + 235, + 238, + 76, + 223, + 217, + 105, + 75, + 153, + 9, + 211, + 17, + 148, + 229, + 133, + 114, + 42, + 209, + 124, + 253, + 39, + 8, + 252, + 111, + 156, + 216, + 110, + 159, + 211, + 13, + 216, + 101, + 232, + 105, + 198, + 13, + 135, + 37, + 144, + 188, + 57, + 199, + 236, + 255, + 13, + 52, + 111, + 31, + 58, + 215, + 137, + 69, + 179, + 152, + 86, + 90, + 126, + 69, + 31, + 156, + 145, + 100, + 74, + 241, + 165, + 246, + 133, + 108, + 106, + 123, + 192, + 72, + 79, + 231, + 179, + 1, + 197, + 103, + 199, + 240, + 19, + 30, + 148, + 175, + 113, + 95, + 29, + 20, + 151, + 140, + 11, + 29, + 28, + 94, + 17, + 70, + 38, + 117, + 176, + 19, + 78, + 208, + 58, + 106, + 30, + 87, + 192, + 86, + 87, + 173, + 93, + 59, + 48, + 64, + 86, + 20, + 249, + 100, + 223, + 164, + 35, + 237, + 77, + 25, + 17, + 194, + 200, + 241, + 41, + 29, + 194, + 208, + 63, + 79, + 120, + 216, + 49, + 122, + 60, + 151, + 9, + 125, + 139, + 35, + 91, + 198, + 84, + 72, + 157, + 94, + 66, + 70, + 121, + 181, + 140, + 153, + 191, + 110, + 77, + 154, + 74, + 63, + 167, + 19, + 225, + 137, + 50, + 64, + 171, + 53, + 81, + 146, + 1, + 44, + 220, + 201, + 233, + 94, + 186, + 190, + 72, + 94, + 137, + 227, + 25, + 161, + 119, + 199, + 235, + 229, + 173, + 85, + 81, + 224, + 41, + 19, + 77, + 11, + 156, + 149, + 192, + 124, + 58, + 244, + 7, + 195, + 165, + 64, + 59, + 72, + 211, + 84, + 81, + 199, + 1, + 230, + 82, + 76, + 79, + 215, + 252, + 204, + 171, + 41, + 181, + 17, + 75, + 158, + 200, + 209, + 206, + 175, + 225, + 234, + 168, + 7, + 200, + 157, + 224, + 212, + 189, + 176, + 167, + 64, + 138, + 138, + 202, + 159, + 13, + 132, + 33, + 79, + 68, + 190, + 121, + 33, + 99, + 172, + 34, + 67, + 227, + 5, + 176, + 71, + 207, + 47, + 178, + 5, + 165, + 198, + 168, + 23, + 135, + 111, + 189, + 103, + 231, + 80, + 52, + 233, + 251, + 147, + 177, + 2, + 115, + 30, + 171, + 69, + 253, + 201, + 143, + 230, + 236, + 225, + 0, + 94, + 233, + 129, + 88, + 137, + 159, + 103, + 55, + 45, + 210, + 162, + 208, + 52, + 31, + 112, + 225, + 62, + 98, + 17, + 35, + 137, + 162, + 210, + 199, + 93, + 13, + 95, + 37, + 134, + 22, + 200, + 243, + 30, + 29, + 246, + 69, + 115, + 238, + 5, + 89, + 163, + 54, + 208, + 238, + 147, + 197, + 23, + 174, + 30, + 38, + 106, + 37, + 41, + 11, + 151, + 192, + 56, + 172, + 135, + 207, + 250, + 80, + 160, + 84, + 89, + 87, + 45, + 183, + 27, + 54, + 40, + 247, + 82, + 237, + 192, + 33, + 160, + 39, + 222, + 52, + 250, + 22, + 203, + 149, + 240, + 111, + 153, + 62, + 58, + 76, + 37, + 224, + 132, + 111, + 18, + 56, + 69, + 167, + 25, + 54, + 239, + 23, + 62, + 164, + 43, + 31, + 81, + 199, + 158, + 224, + 149, + 29, + 1, + 150, + 88, + 134, + 50, + 21, + 81, + 192, + 124, + 59, + 220, + 7, + 195, + 180, + 192, + 59, + 112, + 179, + 224, + 35, + 202, + 208, + 53, + 134, + 210, + 36, + 178, + 183, + 65, + 153, + 67, + 94, + 93, + 78, + 215, + 207, + 74, + 143, + 183, + 201, + 237, + 113, + 153, + 202, + 138, + 14, + 198, + 239, + 12, + 111, + 168, + 217, + 223, + 136, + 165, + 0, + 77, + 175, + 89, + 210, + 204, + 107, + 218, + 99, + 105, + 157, + 47, + 10, + 220, + 206, + 219, + 232, + 162, + 185, + 172, + 14, + 118, + 184, + 1, + 187, + 125, + 34, + 222, + 218, + 67, + 69, + 228, + 110, + 203, + 245, + 82, + 80, + 116, + 205, + 202, + 218, + 3, + 47, + 245, + 212, + 145, + 177, + 250, + 96, + 247, + 93, + 142, + 129, + 179, + 118, + 222, + 141, + 190, + 119, + 141, + 153, + 129, + 157, + 246, + 51, + 115, + 183, + 70, + 87, + 136, + 204, + 162, + 186, + 186, + 162, + 156, + 54, + 99, + 90, + 11, + 152, + 235, + 56, + 96, + 82, + 208, + 117, + 246, + 57, + 7, + 202, + 189, + 0, + 186, + 213, + 0, + 125, + 139, + 46, + 212, + 143, + 219, + 13, + 134, + 37, + 53, + 218, + 232, + 14, + 123, + 114, + 218, + 215, + 197, + 53, + 31, + 30, + 71, + 8, + 219, + 193, + 205, + 158, + 28, + 193, + 158, + 250, + 88, + 56, + 105, + 3, + 36, + 6, + 134, + 32, + 126, + 89, + 124, + 154, + 102, + 106, + 240, + 82, + 126, + 108, + 225, + 166, + 76, + 143, + 44, + 170, + 36, + 136, + 117, + 22, + 82, + 189, + 85, + 39, + 61, + 20, + 97, + 9, + 211, + 233, + 165, + 89, + 131, + 139, + 26, + 171, + 172, + 194, + 118, + 38, + 112, + 212, + 144, + 64, + 83, + 243, + 139, + 188, + 13, + 67, + 87, + 93, + 167, + 105, + 110, + 147, + 111, + 246, + 131, + 179, + 214, + 30, + 255, + 119, + 3, + 0, + 127, + 234, + 208, + 242, + 65, + 189, + 77, + 147, + 104, + 27, + 12, + 106, + 52, + 136, + 37, + 186, + 84, + 164, + 130, + 50, + 173, + 94, + 15, + 50, + 216, + 38, + 150, + 132, + 102, + 201, + 15, + 148, + 93, + 183, + 236, + 69, + 135, + 39, + 184, + 157, + 255, + 120, + 146, + 15, + 163, + 225, + 250, + 61, + 117, + 47, + 151, + 168, + 51, + 226, + 17, + 135, + 232, + 245, + 94, + 190, + 94, + 178, + 79, + 132, + 124, + 31, + 147, + 174, + 11, + 226, + 223, + 113, + 40, + 240, + 248, + 196, + 91, + 68, + 250, + 55, + 104, + 189, + 111, + 201, + 163, + 132, + 128, + 11, + 220, + 125, + 12, + 232, + 160, + 70, + 58, + 155, + 188, + 25, + 188, + 79, + 35, + 82, + 153, + 120, + 136, + 107, + 199, + 103, + 9, + 225, + 78, + 188, + 111, + 48, + 67, + 196, + 234, + 71, + 233, + 156, + 101, + 220, + 36, + 22, + 54, + 132, + 127, + 187, + 55, + 62, + 145, + 236, + 151, + 218, + 137, + 26, + 221, + 207, + 79, + 85, + 131, + 95, + 162, + 221, + 27, + 168, + 86, + 218, + 53, + 11, + 230, + 69, + 237, + 95, + 84, + 160, + 37, + 188, + 151, + 62, + 76, + 86, + 213, + 216, + 30, + 159, + 149, + 185, + 156, + 114, + 221, + 231, + 194, + 174, + 119, + 59, + 13, + 33, + 205, + 122, + 3, + 96, + 54, + 172, + 103, + 52, + 223, + 134, + 64, + 79, + 129, + 168, + 217, + 155, + 182, + 96, + 146, + 41, + 202, + 28, + 208, + 78, + 27, + 10, + 99, + 6, + 134, + 114, + 72, + 111, + 218, + 124, + 221, + 126, + 1, + 108, + 174, + 134, + 207, + 154, + 108, + 67, + 6, + 191, + 84, + 179, + 88, + 136, + 221, + 243, + 63, + 27, + 145, + 102, + 52, + 40, + 6, + 105, + 179, + 25, + 58, + 12, + 187, + 82, + 40, + 150, + 229, + 12, + 156, + 253, + 177, + 147, + 245, + 95, + 235, + 214, + 127, + 82, + 14, + 85, + 83, + 36, + 75, + 49, + 166, + 101, + 248, + 191, + 123, + 158, + 103, + 252, + 24, + 164, + 109, + 32, + 54, + 90, + 123, + 55, + 97, + 191, + 124, + 5, + 31, + 96, + 175, + 54, + 108, + 25, + 128, + 175, + 194, + 49, + 130, + 253, + 3, + 17, + 80, + 127, + 185, + 213, + 244, + 43, + 4, + 56, + 218, + 33, + 217, + 206, + 252, + 8, + 96, + 174, + 11, + 164, + 80, + 166, + 129, + 110, + 48, + 59, + 45, + 60, + 213, + 243, + 239, + 21, + 149, + 20, + 65, + 194, + 237, + 40, + 21, + 228, + 222, + 7, + 11, + 51, + 32, + 162, + 149, + 140, + 185, + 28, + 144, + 120, + 66, + 152, + 33, + 136, + 135, + 146, + 75, + 61, + 0, + 198, + 79, + 44, + 187, + 168, + 98, + 156, + 225, + 126, + 243, + 102, + 252, + 91, + 168, + 180, + 129, + 228, + 236, + 210, + 88, + 189, + 116, + 225, + 198, + 152, + 80, + 186, + 9, + 19, + 191, + 197, + 1, + 87, + 128, + 68, + 74, + 251, + 159, + 34, + 195, + 46, + 226, + 11, + 161, + 6, + 37, + 8, + 227, + 39, + 229, + 99, + 49, + 202, + 84, + 89, + 238, + 51, + 36, + 47, + 200, + 193, + 116, + 229, + 201, + 209, + 205, + 3, + 170, + 76, + 28, + 44, + 103, + 150, + 56, + 208, + 28, + 253, + 78, + 206, + 21, + 115, + 172, + 102, + 39, + 214, + 10, + 129, + 206, + 250, + 108, + 10, + 138, + 82, + 65, + 254, + 48, + 235, + 245, + 153, + 99, + 235, + 37, + 26, + 212, + 66, + 3, + 239, + 100, + 143, + 73, + 161, + 64, + 46, + 82, + 76, + 8, + 96, + 94, + 87, + 42, + 148, + 22, + 10, + 127, + 79, + 221, + 233, + 19, + 212, + 47, + 50, + 167, + 230, + 46, + 246, + 168, + 93, + 37, + 161, + 227, + 154, + 228, + 142, + 243, + 175, + 31, + 104, + 99, + 83, + 70, + 147, + 206, + 36, + 206, + 238, + 164, + 125, + 163, + 20, + 117, + 227, + 87, + 236, + 132, + 153, + 182, + 93, + 132, + 174, + 16, + 233, + 239, + 138, + 102, + 247, + 222, + 218, + 78, + 132, + 237, + 21, + 218, + 100, + 96, + 31, + 176, + 94, + 55, + 53, + 64, + 27, + 78, + 28, + 88, + 220, + 12, + 139, + 63, + 213, + 11, + 9, + 95, + 167, + 12, + 23, + 160, + 22, + 182, + 71, + 24, + 111, + 89, + 102, + 80, + 97, + 137, + 180, + 65, + 86, + 226, + 231, + 159, + 118, + 243, + 43, + 56, + 216, + 112, + 79, + 117, + 50, + 25, + 127, + 177, + 40, + 109, + 119, + 65, + 252, + 50, + 148, + 105, + 181, + 201, + 100, + 232, + 121, + 96, + 18, + 194, + 82, + 232, + 120, + 78, + 122, + 237, + 186, + 8, + 14, + 20, + 235, + 125, + 206, + 109, + 48, + 168, + 251, + 218, + 198, + 212, + 129, + 110, + 81, + 212, + 155, + 203, + 61, + 252, + 186, + 100, + 140, + 208, + 31, + 57, + 178, + 9, + 195, + 202, + 241, + 182, + 124, + 51, + 25, + 165, + 145, + 96, + 174, + 41, + 215, + 161, + 245, + 150, + 34, + 128, + 123, + 252, + 18, + 48, + 44, + 221, + 135, + 36, + 214, + 188, + 182, + 7, + 158, + 254, + 153, + 222, + 150, + 123, + 11, + 197, + 94, + 190, + 191, + 190, + 132, + 135, + 144, + 0, + 162, + 90, + 17, + 138, + 245, + 17, + 230, + 176, + 175, + 170, + 145, + 110, + 46, + 139, + 114, + 1, + 132, + 152, + 100, + 113, + 155, + 10, + 149, + 64, + 13, + 204, + 197, + 223, + 205, + 157, + 19, + 221, + 199, + 158, + 218, + 41, + 251, + 88, + 73, + 136, + 35, + 200, + 98, + 130, + 4, + 18, + 208, + 25, + 187, + 46, + 203, + 8, + 102, + 254, + 199, + 191, + 54, + 98, + 214, + 122, + 60, + 29, + 217, + 124, + 176, + 32, + 116, + 252, + 197, + 8, + 181, + 132, + 202, + 88, + 31, + 112, + 163, + 106, + 200, + 193, + 225, + 232, + 221, + 101, + 144, + 81, + 190, + 62, + 204, + 162, + 32, + 155, + 208, + 142, + 156, + 251, + 126, + 39, + 125, + 180, + 49, + 61, + 60, + 95, + 233, + 177, + 251, + 122, + 46, + 217, + 142, + 85, + 195, + 114, + 74, + 165, + 19, + 17, + 248, + 101, + 26, + 72, + 201, + 139, + 107, + 99, + 10, + 33, + 60, + 18, + 65, + 189, + 153, + 192, + 130, + 202, + 154, + 167, + 67, + 53, + 176, + 28, + 21, + 56, + 22, + 133, + 236, + 11, + 163, + 251, + 160, + 214, + 17, + 80, + 51, + 153, + 215, + 48, + 188, + 182, + 126, + 61, + 217, + 183, + 36, + 53, + 109, + 133, + 19, + 205, + 176, + 164, + 46, + 89, + 107, + 20, + 47, + 52, + 121, + 99, + 175, + 183, + 133, + 93, + 69, + 80, + 218, + 75, + 14, + 122, + 10, + 46, + 44, + 160, + 243, + 190, + 37, + 80, + 255, + 11, + 153, + 123, + 191, + 133, + 149, + 230, + 114, + 74, + 93, + 169, + 82, + 79, + 55, + 121, + 67, + 158, + 124, + 158, + 91, + 232, + 15, + 54, + 153, + 152, + 14, + 47, + 5, + 14, + 252, + 7, + 213, + 73, + 221, + 56, + 26, + 15, + 59, + 237, + 55, + 143, + 31, + 13, + 53, + 63, + 172, + 139, + 26, + 218, + 32, + 167, + 136, + 127, + 138, + 173, + 162, + 69, + 163, + 117, + 208, + 51, + 144, + 255, + 35, + 194, + 154, + 132, + 218, + 235, + 97, + 84, + 98, + 11, + 221, + 111, + 235, + 114, + 198, + 213, + 193, + 230, + 235, + 120, + 13, + 15, + 99, + 23, + 219, + 37, + 146, + 236, + 112, + 133, + 74, + 241, + 144, + 20, + 169, + 220, + 187, + 45, + 150, + 13, + 140, + 174, + 58, + 1, + 127, + 14, + 43, + 142, + 164, + 241, + 43, + 45, + 201, + 226, + 161, + 142, + 230, + 181, + 97, + 113, + 97, + 7, + 85, + 120, + 63, + 156, + 63, + 152, + 35, + 228, + 229, + 130, + 69, + 194, + 4, + 136, + 124, + 221, + 215, + 32, + 24, + 7, + 39, + 23, + 35, + 236, + 246, + 207, + 22, + 50, + 17, + 153, + 32, + 51, + 227, + 117, + 22, + 225, + 252, + 60, + 254, + 252, + 8, + 78, + 55, + 217, + 158, + 98, + 115, + 163, + 187, + 232, + 148, + 78, + 93, + 163, + 228, + 35, + 2, + 145, + 94, + 225, + 2, + 176, + 80, + 49, + 94, + 138, + 127, + 127, + 36, + 35, + 6, + 234, + 147, + 145, + 163, + 27, + 30, + 248, + 163, + 90, + 248, + 113, + 217, + 165, + 195, + 252, + 58, + 142, + 188, + 242, + 49, + 59, + 229, + 251, + 215, + 214, + 237, + 193, + 43, + 101, + 23, + 112, + 72, + 210, + 173, + 123, + 15, + 97, + 238, + 249, + 198, + 44, + 69, + 27, + 224, + 67, + 2, + 172, + 57, + 203, + 7, + 209, + 32, + 174, + 133, + 125, + 59, + 25, + 109, + 0, + 168, + 95, + 71, + 90, + 174, + 242, + 181, + 192, + 104, + 91, + 156, + 214, + 112, + 122, + 71, + 72, + 174, + 219, + 7, + 203, + 252, + 44, + 132, + 164, + 30, + 151, + 163, + 54, + 162, + 234, + 178, + 177, + 78, + 222, + 58, + 126, + 26, + 146, + 103, + 225, + 190, + 133, + 142, + 118, + 18, + 243, + 222, + 13, + 1, + 42, + 175, + 23, + 105, + 60, + 165, + 188, + 225, + 126, + 127, + 18, + 2, + 191, + 225, + 194, + 150, + 24, + 150, + 60, + 155, + 126, + 109, + 203, + 82, + 85, + 106, + 192, + 27, + 104, + 111, + 145, + 44, + 167, + 172, + 152, + 172, + 166, + 229, + 74, + 87, + 27, + 137, + 130, + 239, + 130, + 120, + 184, + 133, + 240, + 253, + 32, + 152, + 41, + 194, + 57, + 145, + 245, + 49, + 40, + 95, + 208, + 95, + 126, + 86, + 210, + 72, + 214, + 139, + 201, + 173, + 52, + 171, + 173, + 167, + 216, + 127, + 79, + 137, + 6, + 103, + 92, + 159, + 99, + 0, + 143, + 185, + 84, + 20, + 160, + 114, + 123, + 41, + 81, + 39, + 53, + 146, + 219, + 252, + 117, + 42, + 49, + 146, + 145, + 108, + 41, + 64, + 71, + 239, + 223, + 240, + 91, + 179, + 208, + 58, + 191, + 33, + 78, + 62, + 215, + 122, + 172, + 91, + 205, + 73, + 184, + 231, + 6, + 232, + 31, + 187, + 100, + 173, + 141, + 255, + 2, + 172, + 76, + 86, + 46, + 54, + 106, + 151, + 158, + 248, + 96, + 57, + 235, + 161, + 169, + 106, + 21, + 110, + 106, + 253, + 167, + 196, + 15, + 93, + 177, + 180, + 238, + 17, + 66, + 199, + 174, + 213, + 94, + 202, + 128, + 49, + 90, + 238, + 118, + 221, + 108, + 217, + 170, + 202, + 95, + 70, + 93, + 173, + 138, + 152, + 26, + 113, + 73, + 45, + 154, + 206, + 181, + 130, + 26, + 58, + 66, + 14, + 154, + 182, + 176, + 246, + 241, + 174, + 247, + 228, + 16, + 159, + 142, + 85, + 27, + 122, + 114, + 64, + 1, + 16, + 109, + 106, + 50, + 146, + 234, + 34, + 35, + 93, + 250, + 222, + 58, + 228, + 27, + 251, + 85, + 14, + 30, + 219, + 20, + 198, + 84, + 141, + 46, + 73, + 105, + 183, + 95, + 96, + 249, + 203, + 129, + 237, + 133, + 4, + 64, + 60, + 103, + 103, + 208, + 177, + 42, + 196, + 28, + 229, + 114, + 14, + 244, + 93, + 111, + 180, + 35, + 170, + 9, + 168, + 162, + 132, + 77, + 158, + 125, + 168, + 102, + 158, + 241, + 235, + 17, + 8, + 235, + 142, + 29, + 188, + 63, + 134, + 253, + 225, + 138, + 242, + 128, + 26, + 173, + 232, + 190, + 41, + 116, + 20, + 83, + 132, + 203, + 198, + 32, + 214, + 216, + 48, + 225, + 100, + 197, + 45, + 186, + 157, + 25, + 201, + 101, + 167, + 109, + 210, + 19, + 41, + 69, + 141, + 195, + 69, + 158, + 125, + 95, + 194, + 94, + 233, + 155, + 186, + 2, + 94, + 149, + 234, + 209, + 109, + 60, + 70, + 106, + 34, + 222, + 24, + 122, + 75, + 26, + 108, + 207, + 72, + 156, + 205, + 67, + 184, + 134, + 88, + 134, + 179, + 81, + 155, + 226, + 33, + 118, + 152, + 227, + 227, + 115, + 116, + 45, + 76, + 59, + 180, + 233, + 238, + 68, + 18, + 121, + 26, + 90, + 107, + 53, + 104, + 16, + 250, + 97, + 29, + 85, + 157, + 230, + 142, + 10, + 17, + 250, + 63, + 215, + 252, + 88, + 222, + 43, + 10, + 216, + 168, + 189, + 18, + 161, + 41, + 15, + 217, + 140, + 50, + 19, + 124, + 105, + 84, + 200, + 49, + 38, + 20, + 251, + 31, + 177, + 95, + 217, + 245, + 11, + 14, + 243, + 58, + 76, + 160, + 250, + 56, + 200, + 43, + 226, + 80, + 137, + 242, + 106, + 190, + 88, + 127, + 139, + 207, + 176, + 32, + 237, + 68, + 174, + 60, + 17, + 188, + 138, + 26, + 77, + 226, + 170, + 203, + 249, + 215, + 93, + 10, + 231, + 224, + 80, + 84, + 142, + 60, + 142, + 37, + 203, + 228, + 153, + 254, + 83, + 55, + 200, + 211, + 246, + 15, + 100, + 182, + 36, + 78, + 206, + 173, + 25, + 81, + 240, + 192, + 120, + 196, + 234, + 125, + 212, + 78, + 116, + 55, + 125, + 132, + 225, + 185, + 72, + 132, + 48, + 237, + 98, + 10, + 81, + 169, + 237, + 119, + 200, + 4, + 164, + 57, + 124, + 158, + 245, + 13, + 160, + 71, + 69, + 251, + 164, + 123, + 5, + 43, + 51, + 103, + 182, + 146, + 155, + 249, + 212, + 54, + 249, + 184, + 137, + 11, + 77, + 112, + 100, + 49, + 216, + 13, + 111, + 14, + 121, + 227, + 68, + 173, + 21, + 71, + 62, + 182, + 158, + 85, + 19, + 189, + 177, + 130, + 204, + 254, + 98, + 30, + 172, + 163, + 159, + 180, + 43, + 122, + 165, + 187, + 112, + 174, + 166, + 15, + 91, + 164, + 124, + 88, + 11, + 163, + 118, + 116, + 166, + 155, + 167, + 85, + 25, + 123, + 185, + 103, + 21, + 37, + 61, + 254, + 38, + 179, + 65, + 93, + 237, + 29, + 149, + 163, + 220, + 215, + 145, + 58, + 217, + 41, + 71, + 152, + 189, + 244, + 42, + 166, + 208, + 105, + 169, + 228, + 115, + 135, + 60, + 245, + 107, + 72, + 137, + 89, + 87, + 247, + 30, + 234, + 61, + 6, + 115, + 196, + 217, + 207, + 240, + 189, + 133, + 74, + 201, + 217, + 151, + 244, + 75, + 200, + 104, + 162, + 224, + 87, + 243, + 209, + 71, + 180, + 119, + 24, + 53, + 51, + 198, + 169, + 238, + 138, + 135, + 222, + 225, + 90, + 47, + 98, + 221, + 25, + 75, + 66, + 223, + 153, + 70, + 137, + 174, + 252, + 165, + 62, + 248, + 88, + 68, + 203, + 21, + 205, + 246, + 206, + 234, + 23, + 170, + 193, + 73, + 185, + 14, + 34, + 112, + 134, + 102, + 86, + 81, + 47, + 45, + 108, + 29, + 83, + 236, + 119, + 180, + 53, + 168, + 141, + 73, + 153, + 97, + 131, + 90, + 173, + 248, + 193, + 109, + 155, + 47, + 37, + 70, + 58, + 119, + 18, + 112, + 173, + 31, + 49, + 254, + 11, + 245, + 203, + 32, + 83, + 49, + 125, + 30, + 194, + 24, + 43, + 148, + 30, + 83, + 217, + 156, + 98, + 38, + 65, + 7, + 222, + 254, + 242, + 9, + 102, + 139, + 223, + 117, + 58, + 119, + 78, + 71, + 215, + 210, + 37, + 25, + 25, + 98, + 243, + 233, + 2, + 48, + 220, + 168, + 175, + 35, + 55, + 111, + 198, + 192, + 92, + 79, + 74, + 169, + 233, + 14, + 9, + 98, + 121, + 222, + 184, + 212, + 83, + 218, + 194, + 32, + 28, + 135, + 102, + 128, + 9, + 160, + 133, + 53, + 237, + 2, + 171, + 170, + 70, + 255, + 0, + 243, + 198, + 56, + 114, + 194, + 197, + 44, + 214, + 14, + 223, + 149, + 231, + 250, + 180, + 70, + 180, + 75, + 172, + 138, + 66, + 176, + 138, + 103, + 121, + 204, + 84, + 89, + 200, + 136, + 102, + 11, + 199, + 17, + 151, + 218, + 147, + 110, + 194, + 31, + 243, + 154, + 181, + 12, + 224, + 93, + 93, + 60, + 0, + 95, + 83, + 10, + 57, + 34, + 41, + 226, + 45, + 109, + 245, + 238, + 90, + 53, + 86, + 13, + 162, + 33, + 42, + 50, + 64, + 190, + 44, + 106, + 74, + 57, + 66, + 226, + 162, + 238, + 217, + 22, + 15, + 172, + 27, + 242, + 167, + 30, + 248, + 3, + 142, + 152, + 193, + 16, + 239, + 44, + 4, + 185, + 217, + 199, + 168, + 94, + 45, + 109, + 167, + 247, + 94, + 93, + 189, + 27, + 5, + 7, + 87, + 133, + 193, + 204, + 12, + 119, + 125, + 135, + 108, + 23, + 87, + 119, + 237, + 12, + 105, + 104, + 190, + 77, + 39, + 4, + 70, + 196, + 90, + 209, + 255, + 90, + 185, + 12, + 247, + 96, + 135, + 44, + 166, + 59, + 222, + 165, + 222, + 63, + 92, + 200, + 38, + 175, + 54, + 205, + 55, + 118, + 9, + 120, + 140, + 54, + 213, + 250, + 218, + 136, + 247, + 240, + 168, + 67, + 22, + 39, + 95, + 123, + 68, + 209, + 115, + 51, + 92, + 29, + 37, + 9, + 126, + 182, + 22, + 151, + 22, + 139, + 178, + 20, + 248, + 138, + 114, + 206, + 129, + 122, + 70, + 227, + 46, + 45, + 83, + 229, + 31, + 244, + 3, + 102, + 244, + 183, + 92, + 166, + 72, + 218, + 146, + 49, + 15, + 90, + 210, + 123, + 185, + 88, + 44, + 145, + 0, + 253, + 0, + 215, + 181, + 208, + 140, + 186, + 42, + 217, + 159, + 180, + 224, + 106, + 10, + 195, + 120, + 241, + 223, + 51, + 192, + 239, + 177, + 7, + 206, + 111, + 125, + 10, + 247, + 77, + 212, + 100, + 146, + 196, + 77, + 224, + 118, + 192, + 244, + 190, + 85, + 199, + 104, + 188, + 89, + 208, + 119, + 32, + 241, + 164, + 96, + 231, + 168, + 179, + 105, + 38, + 159, + 51, + 32, + 4, + 193, + 27, + 15, + 130, + 75, + 221, + 89, + 155, + 24, + 132, + 140, + 177, + 211, + 175, + 216, + 127, + 204, + 70, + 181, + 188, + 244, + 152, + 99, + 229, + 128, + 215, + 106, + 233, + 160, + 210, + 41, + 32, + 128, + 138, + 39, + 159, + 130, + 58, + 60, + 85, + 13, + 66, + 162, + 231, + 208, + 179, + 234, + 232, + 140, + 181, + 137, + 5, + 250, + 115, + 76, + 253, + 185, + 51, + 126, + 205, + 192, + 157, + 234, + 202, + 139, + 221, + 113, + 160, + 130, + 167, + 134, + 216, + 86, + 110, + 85, + 12, + 142, + 10, + 147, + 208, + 18, + 141, + 12, + 140, + 81, + 195, + 227, + 84, + 22, + 243, + 121, + 234, + 119, + 237, + 176, + 134, + 175, + 175, + 215, + 99, + 94, + 86, + 14, + 150, + 178, + 23, + 110, + 12, + 133, + 134, + 145, + 181, + 108, + 12, + 119, + 68, + 109, + 193, + 10, + 122, + 35, + 89, + 205, + 198, + 217, + 197, + 118, + 2, + 241, + 82, + 253, + 96, + 163, + 46, + 54, + 235, + 27, + 49, + 187, + 24, + 31, + 144, + 45, + 219, + 101, + 38, + 33, + 184, + 117, + 186, + 209, + 181, + 32, + 84, + 110, + 18, + 36, + 126, + 160, + 190, + 2, + 190, + 25, + 138, + 241, + 237, + 241, + 235, + 148, + 77, + 103, + 72, + 152, + 120, + 96, + 135, + 187, + 205, + 236, + 20, + 133, + 63, + 238, + 214, + 143, + 55, + 191, + 217, + 231, + 145, + 146, + 109, + 165, + 242, + 30, + 45, + 39, + 67, + 32, + 116, + 54, + 236, + 187, + 221, + 103, + 102, + 152, + 74, + 176, + 240, + 30, + 181, + 145, + 30, + 117, + 45, + 72, + 173, + 215, + 63, + 38, + 251, + 242, + 90, + 181, + 18, + 229, + 131, + 116, + 225, + 68, + 87, + 214, + 114, + 144, + 161, + 110, + 175, + 178, + 182, + 16, + 152, + 187, + 73, + 8, + 127, + 92, + 112, + 22, + 47, + 63, + 131, + 69, + 30, + 8, + 200, + 88, + 219, + 118, + 182, + 224, + 239, + 79, + 169, + 38, + 169, + 246, + 97, + 129, + 73, + 109, + 55, + 145, + 51, + 41, + 119, + 123, + 63, + 37, + 223, + 73, + 52, + 146, + 164, + 48, + 207, + 35, + 227, + 94, + 245, + 197, + 201, + 95, + 59, + 198, + 104, + 108, + 232, + 138, + 172, + 207, + 123, + 215, + 148, + 222, + 209, + 197, + 65, + 17, + 251, + 107, + 107, + 184, + 137, + 143, + 239, + 249, + 232, + 62, + 162, + 201, + 26, + 197, + 222, + 117, + 184, + 66, + 124, + 161, + 105, + 64, + 173, + 60, + 152, + 225, + 47, + 1, + 206, + 223, + 252, + 254, + 209, + 229, + 124, + 152, + 190, + 174, + 182, + 97, + 70, + 229, + 168, + 101, + 8, + 156, + 177, + 53, + 18, + 12, + 255, + 106, + 16, + 94, + 98, + 127, + 229, + 201, + 243, + 30, + 92, + 74, + 163, + 96, + 206, + 132, + 229, + 15, + 171, + 110, + 135, + 8, + 202, + 170, + 136, + 177, + 179, + 218, + 168, + 253, + 14, + 17, + 24, + 239, + 54, + 163, + 175, + 88, + 254, + 237, + 50, + 37, + 250, + 185, + 213, + 196, + 249, + 56, + 108, + 166, + 149, + 47, + 241, + 50, + 85, + 193, + 99, + 122, + 99, + 209, + 197, + 231, + 72, + 248, + 53, + 249, + 1, + 99, + 221, + 61, + 227, + 145, + 157, + 230, + 132, + 232, + 16, + 163, + 46, + 31, + 74, + 12, + 74, + 194, + 68, + 92, + 240, + 162, + 144, + 195, + 253, + 228, + 164, + 188, + 14, + 63, + 84, + 4, + 155, + 5, + 45, + 131, + 9, + 65, + 165, + 191, + 15, + 184, + 211, + 146, + 221, + 161, + 24, + 211, + 22, + 123, + 207, + 102, + 250, + 217, + 136, + 173, + 238, + 153, + 154, + 52, + 204, + 113, + 53, + 95, + 182, + 37, + 164, + 191, + 173, + 8, + 199, + 221, + 187, + 105, + 123, + 133, + 27, + 20, + 61, + 70, + 233, + 46, + 185, + 165, + 134, + 71, + 83, + 121, + 91, + 104, + 74, + 186, + 232, + 25, + 41, + 200, + 189, + 210, + 104, + 254, + 231, + 27, + 10, + 22, + 46, + 230, + 196, + 174, + 224, + 27, + 182, + 117, + 64, + 215, + 238, + 92, + 110, + 186, + 192, + 92, + 181, + 52, + 216, + 102, + 106, + 6, + 120, + 178, + 163, + 129, + 97, + 86, + 111, + 194, + 188, + 142, + 35, + 7, + 150, + 144, + 173, + 175, + 211, + 68, + 24, + 204, + 31, + 180, + 105, + 55, + 22, + 224, + 102, + 62, + 114, + 162, + 223, + 193, + 138, + 54, + 177, + 202, + 112, + 100, + 158, + 120, + 8, + 67, + 168, + 226, + 96, + 110, + 198, + 221, + 117, + 153, + 56, + 236, + 4, + 204, + 171, + 40, + 42, + 184, + 214, + 16, + 98, + 224, + 126, + 29, + 9, + 117, + 150, + 3, + 218, + 133, + 24, + 244, + 95, + 222, + 101, + 77, + 125, + 225, + 46, + 113, + 225, + 193, + 175, + 198, + 223, + 225, + 9, + 231, + 158, + 12, + 108, + 129, + 124, + 135, + 105, + 137, + 41, + 170, + 109, + 167, + 194, + 148, + 228, + 70, + 230, + 102, + 202, + 249, + 2, + 111, + 145, + 239, + 157, + 93, + 228, + 102, + 107, + 138, + 37, + 212, + 228, + 88, + 40, + 98, + 169, + 55, + 214, + 105, + 93, + 29, + 181, + 157, + 10, + 208, + 24, + 252, + 171, + 201, + 66, + 233, + 188, + 46, + 138, + 194, + 136, + 249, + 5, + 174, + 65, + 80, + 90, + 91, + 100, + 71, + 218, + 73, + 53, + 69, + 159, + 114, + 215, + 212, + 248, + 39, + 219, + 216, + 251, + 135, + 41, + 85, + 248, + 8, + 42, + 162, + 85, + 10, + 40, + 62, + 233, + 122, + 147, + 31, + 46, + 183, + 175, + 68, + 248, + 148, + 42, + 29, + 8, + 177, + 238, + 176, + 229, + 159, + 181, + 96, + 156, + 33, + 67, + 109, + 240, + 185, + 109, + 240, + 254, + 29, + 247, + 241, + 111, + 71, + 225, + 232, + 239, + 197, + 208, + 109, + 239, + 70, + 254, + 14, + 251, + 204, + 188, + 111, + 135, + 172, + 239, + 135, + 116, + 95, + 23, + 72, + 255, + 19, + 79, + 239, + 199, + 212, + 187, + 224, + 244, + 223, + 63, + 2, + 188, + 31, + 111, + 190, + 217, + 85, + 208, + 126, + 11, + 125, + 182, + 53, + 128, + 221, + 27, + 233, + 107, + 169, + 188, + 10, + 243, + 248, + 12, + 45, + 39, + 40, + 27, + 20, + 204, + 81, + 228, + 83, + 119, + 136, + 91, + 42, + 3, + 198, + 32, + 120, + 56, + 77, + 30, + 69, + 217, + 205, + 110, + 131, + 177, + 62, + 68, + 167, + 187, + 67, + 200, + 151, + 174, + 20, + 213, + 246, + 123, + 193, + 192, + 120, + 162, + 166, + 223, + 53, + 237, + 140, + 238, + 94, + 122, + 159, + 64, + 161, + 243, + 95, + 130, + 11, + 28, + 72, + 75, + 15, + 118, + 238, + 47, + 155, + 211, + 80, + 217, + 92, + 56, + 145, + 6, + 232, + 19, + 254, + 212, + 28, + 27, + 109, + 59, + 21, + 4, + 210, + 117, + 23, + 129, + 245, + 6, + 247, + 57, + 221, + 229, + 238, + 14, + 164, + 159, + 176, + 202, + 155, + 177, + 107, + 32, + 165, + 155, + 11, + 152, + 174, + 65, + 119, + 96, + 82, + 80, + 134, + 102, + 196, + 233, + 23, + 209, + 97, + 123, + 2, + 186, + 109, + 93, + 157, + 253, + 31, + 39, + 145, + 217, + 245, + 28, + 236, + 230, + 238, + 228, + 44, + 33, + 5, + 24, + 66, + 77, + 250, + 173, + 144, + 54, + 239, + 151, + 177, + 44, + 204, + 104, + 89, + 215, + 41, + 188, + 169, + 11, + 32, + 142, + 160, + 144, + 65, + 144, + 11, + 236, + 207, + 3, + 254, + 184, + 21, + 34, + 98, + 163, + 192, + 67, + 234, + 118, + 70, + 35, + 36, + 20, + 62, + 224, + 246, + 153, + 80, + 223, + 90, + 127, + 100, + 239, + 52, + 85, + 208, + 52, + 42, + 78, + 75, + 254, + 92, + 102, + 148, + 138, + 18, + 59, + 206, + 186, + 58, + 128, + 104, + 131, + 82, + 117, + 67, + 197, + 75, + 150, + 185, + 214, + 53, + 145, + 74, + 198, + 163, + 248, + 44, + 192, + 73, + 84, + 69, + 233, + 79, + 136, + 60, + 65, + 178, + 32, + 150, + 79, + 52, + 133, + 82, + 161, + 4, + 28, + 201, + 111, + 211, + 2, + 146, + 97, + 184, + 174, + 68, + 117, + 31, + 158, + 122, + 31, + 18, + 67, + 209, + 98, + 194, + 52, + 14, + 22, + 232, + 36, + 181, + 6, + 213, + 131, + 159, + 231, + 150, + 111, + 232, + 140, + 221, + 97, + 125, + 77, + 244, + 171, + 124, + 165, + 133, + 50, + 129, + 245, + 136, + 104, + 219, + 106, + 185, + 77, + 135, + 148, + 4, + 101, + 79, + 65, + 226, + 38, + 66, + 251, + 62, + 227, + 14, + 69, + 230, + 47, + 219, + 103, + 124, + 11, + 67, + 135, + 253, + 70, + 224, + 110, + 240, + 249, + 105, + 241, + 169, + 132, + 72, + 216, + 84, + 195, + 112, + 205, + 29, + 204, + 177, + 102, + 244, + 185, + 179, + 212, + 88, + 110, + 96, + 165, + 220, + 252, + 116, + 204, + 60, + 143, + 136, + 151, + 73, + 232, + 208, + 226, + 52, + 240, + 101, + 8, + 87, + 225, + 90, + 223, + 177, + 254, + 123, + 96, + 165, + 98, + 47, + 180, + 65, + 113, + 210, + 166, + 255, + 121, + 157, + 54, + 145, + 83, + 75, + 225, + 74, + 25, + 3, + 236, + 95, + 18, + 130, + 142, + 99, + 111, + 182, + 72, + 171, + 162, + 92, + 217, + 177, + 61, + 226, + 13, + 131, + 96, + 249, + 129, + 22, + 199, + 158, + 158, + 185, + 233, + 121, + 242, + 42, + 28, + 193, + 211, + 187, + 70, + 66, + 142, + 130, + 186, + 92, + 121, + 214, + 17, + 208, + 40, + 204, + 14, + 122, + 42, + 10, + 188, + 245, + 71, + 139, + 35, + 78, + 75, + 247, + 34, + 71, + 150, + 34, + 61, + 234, + 210, + 253, + 118, + 140, + 140, + 231, + 139, + 14, + 179, + 204, + 73, + 23, + 139, + 26, + 150, + 110, + 43, + 89, + 116, + 22, + 68, + 236, + 204, + 228, + 149, + 32, + 233, + 63, + 181, + 252, + 234, + 130, + 240, + 220, + 251, + 159, + 32, + 51, + 24, + 75, + 227, + 232, + 67, + 123, + 12, + 142, + 224, + 23, + 199, + 119, + 103, + 237, + 132, + 242, + 189, + 55, + 57, + 225, + 98, + 243, + 19, + 17, + 214, + 221, + 24, + 90, + 175, + 66, + 164, + 4, + 71, + 242, + 101, + 156, + 236, + 17, + 249, + 202, + 250, + 32, + 32, + 134, + 188, + 129, + 174, + 235, + 88, + 177, + 157, + 250, + 143, + 218, + 116, + 233, + 192, + 246, + 37, + 232, + 205, + 185, + 246, + 131, + 118, + 52, + 134, + 65, + 67, + 22, + 20, + 88, + 128, + 84, + 168, + 10, + 144, + 173, + 146, + 247, + 247, + 252, + 157, + 38, + 212, + 90, + 29, + 70, + 92, + 164, + 77, + 25, + 238, + 2, + 46, + 75, + 195, + 10, + 155, + 50, + 91, + 72, + 149, + 51, + 202, + 96, + 77, + 221, + 237, + 100, + 79, + 58, + 3, + 142, + 87, + 220, + 74, + 252, + 176, + 6, + 113, + 124, + 122, + 170, + 150, + 253, + 142, + 222, + 12, + 51, + 14, + 1, + 165, + 2, + 56, + 211, + 238, + 26, + 58, + 73, + 120, + 152, + 161, + 189, + 214, + 164, + 53, + 140, + 167, + 224, + 228, + 50, + 223, + 117, + 252, + 81, + 189, + 49, + 78, + 101, + 94, + 163, + 127, + 67, + 232, + 193, + 136, + 243, + 80, + 168, + 106, + 128, + 209, + 125, + 149, + 188, + 54, + 225, + 35, + 107, + 100, + 16, + 36, + 121, + 220, + 167, + 115, + 244, + 135, + 99, + 58, + 143, + 87, + 57, + 76, + 109, + 252, + 43, + 163, + 22, + 13, + 70, + 219, + 139, + 200, + 200, + 70, + 64, + 103, + 105, + 44, + 120, + 144, + 105, + 117, + 139, + 109, + 242, + 170, + 68, + 132, + 43, + 191, + 83, + 3, + 56, + 169, + 167, + 71, + 57, + 45, + 82, + 175, + 46, + 173, + 55, + 246, + 149, + 191, + 186, + 11, + 216, + 255, + 109, + 162, + 139, + 51, + 127, + 122, + 51, + 79, + 17, + 94, + 230, + 5, + 240, + 132, + 79, + 42, + 12, + 52, + 79, + 68, + 117, + 6, + 62, + 41, + 78, + 127, + 37, + 112, + 207, + 109, + 192, + 90, + 70, + 36, + 154, + 201, + 240, + 186, + 143, + 190, + 129, + 93, + 172, + 129, + 178, + 3, + 37, + 126, + 171, + 103, + 56, + 58, + 82, + 159, + 91, + 88, + 16, + 11, + 37, + 147, + 41, + 87, + 53, + 144, + 166, + 22, + 91, + 151, + 129, + 94, + 234, + 201, + 5, + 55, + 174, + 71, + 251, + 35, + 186, + 124, + 70, + 91, + 245, + 248, + 99, + 148, + 251, + 195, + 135, + 103, + 44, + 53, + 255, + 20, + 30, + 102, + 47, + 199, + 222, + 19, + 166, + 226, + 210, + 152, + 179, + 65, + 78, + 252, + 115, + 78, + 151, + 188, + 183, + 199, + 14, + 88, + 63, + 67, + 229, + 82, + 237, + 144, + 195, + 88, + 199, + 138, + 5, + 230, + 122, + 62, + 161, + 115, + 175, + 235, + 169, + 112, + 245, + 245, + 201, + 152, + 41, + 14, + 48, + 88, + 85, + 97, + 213, + 7, + 48, + 6, + 196, + 171, + 210, + 66, + 182, + 153, + 68, + 15, + 236, + 226, + 33, + 9, + 133, + 207, + 237, + 15, + 135, + 121, + 181, + 69, + 244, + 101, + 211, + 80, + 49, + 88, + 164, + 230, + 237, + 116, + 4, + 211, + 37, + 169, + 249, + 122, + 250, + 120, + 127, + 13, + 21, + 28, + 184, + 232, + 117, + 75, + 213, + 43, + 203, + 42, + 188, + 42, + 249, + 18, + 252, + 146, + 189, + 70, + 240, + 192, + 210, + 104, + 163, + 203, + 36, + 56, + 237, + 56, + 74, + 202, + 233, + 81, + 113, + 179, + 142, + 165, + 33, + 225, + 138, + 216, + 243, + 16, + 186, + 216, + 140, + 92, + 225, + 217, + 228, + 197, + 206, + 117, + 109, + 42, + 177, + 19, + 153, + 228, + 123, + 72, + 177, + 174, + 86, + 38, + 238, + 44, + 31, + 247, + 227, + 69, + 239, + 120, + 24, + 22, + 68, + 175, + 207, + 18, + 250, + 150, + 77, + 222, + 201, + 87, + 155, + 154, + 170, + 148, + 19, + 252, + 138, + 76, + 65, + 48, + 64, + 35, + 216, + 75, + 226, + 136, + 75, + 232, + 206, + 125, + 236, + 148, + 106, + 84, + 47, + 171, + 192, + 108, + 114, + 188, + 122, + 147, + 221, + 225, + 134, + 176, + 186, + 33, + 227, + 131, + 191, + 44, + 177, + 31, + 253, + 210, + 85, + 216, + 29, + 189, + 145, + 105, + 194, + 77, + 129, + 145, + 42, + 62, + 135, + 91, + 19, + 146, + 59, + 225, + 225, + 63, + 23, + 97, + 228, + 161, + 97, + 65, + 103, + 126, + 185, + 151, + 2, + 86, + 146, + 197, + 157, + 29, + 83, + 90, + 54, + 47, + 137, + 38, + 242, + 218, + 202, + 33, + 192, + 46, + 1, + 12, + 243, + 129, + 145, + 143, + 248, + 28, + 198, + 175, + 201, + 2, + 252, + 239, + 93, + 186, + 14, + 251, + 27, + 113, + 54, + 186, + 112, + 35, + 54, + 145, + 176, + 125, + 238, + 168, + 182, + 162, + 108, + 220, + 114, + 75, + 223, + 168, + 28, + 105, + 115, + 187, + 0, + 60, + 203, + 247, + 123, + 111, + 188, + 92, + 79, + 54, + 78, + 154, + 160, + 206, + 204, + 0, + 151, + 13, + 99, + 236, + 36, + 238, + 121, + 32, + 119, + 187, + 80, + 3, + 138, + 243, + 28, + 219, + 82, + 1, + 217, + 12, + 23, + 238, + 137, + 244, + 214, + 198, + 162, + 20, + 19, + 210, + 206, + 108, + 167, + 214, + 101, + 60, + 246, + 49, + 22, + 32, + 175, + 13, + 215, + 226, + 242, + 144, + 35, + 222, + 164, + 106, + 234, + 131, + 33, + 85, + 230, + 151, + 56, + 43, + 77, + 18, + 103, + 28, + 24, + 38, + 153, + 162, + 19, + 220, + 120, + 67, + 151, + 231, + 3, + 121, + 209, + 87, + 52, + 102, + 216, + 209, + 162, + 101, + 0, + 31, + 109, + 25, + 2, + 171, + 115, + 123, + 172, + 160, + 92, + 59, + 220, + 52, + 113, + 174, + 121, + 203, + 154, + 228, + 77, + 253, + 210, + 26, + 16, + 209, + 82, + 75, + 70, + 146, + 13, + 1, + 91, + 99, + 207, + 200, + 28, + 15, + 182, + 3, + 191, + 231, + 96, + 0, + 176, + 127, + 239, + 33, + 116, + 93, + 250, + 120, + 209, + 231, + 207, + 126, + 66, + 190, + 43, + 6, + 81, + 18, + 217, + 35, + 92, + 78, + 103, + 92, + 118, + 235, + 11, + 97, + 180, + 151, + 183, + 65, + 241, + 102, + 61, + 7, + 158, + 109, + 164, + 254, + 144, + 213, + 42, + 67, + 26, + 67, + 37, + 36, + 59, + 99, + 175, + 224, + 6, + 235, + 146, + 16, + 54, + 192, + 4, + 18, + 55, + 133, + 200, + 108, + 45, + 78, + 44, + 73, + 218, + 171, + 32, + 99, + 30, + 252, + 1, + 16, + 93, + 241, + 253, + 230, + 248, + 169, + 232, + 97, + 162, + 199, + 19, + 120, + 199, + 79, + 7, + 54, + 237, + 46, + 124, + 15, + 250, + 29, + 123, + 235, + 167, + 123, + 173, + 22, + 200, + 157, + 63, + 126, + 46, + 251, + 182, + 29, + 57, + 171, + 80, + 180, + 224, + 188, + 217, + 172, + 131, + 122, + 117, + 54, + 228, + 62, + 112, + 106, + 187, + 36, + 102, + 107, + 208, + 216, + 20, + 150, + 239, + 103, + 225, + 168, + 171, + 126, + 116, + 79, + 163, + 238, + 149, + 97, + 34, + 32, + 47, + 186, + 48, + 232, + 167, + 81, + 44, + 236, + 167, + 78, + 188, + 188, + 21, + 209, + 74, + 86, + 93, + 215, + 240, + 205, + 235, + 24, + 102, + 141, + 228, + 60, + 171, + 91, + 190, + 132, + 180, + 73, + 90, + 225, + 48, + 166, + 100, + 112, + 84, + 50, + 56, + 182, + 77, + 109, + 12, + 150, + 40, + 179, + 226, + 214, + 83, + 186, + 13, + 235, + 228, + 196, + 163, + 222, + 53, + 197, + 171, + 52, + 183, + 31, + 95, + 53, + 30, + 23, + 223, + 85, + 79, + 231, + 57, + 252, + 37, + 51, + 209, + 225, + 185, + 188, + 177, + 223, + 234, + 93, + 127, + 219, + 233, + 105, + 255, + 4, + 190, + 246, + 125, + 81, + 201, + 231, + 1, + 145, + 73, + 121, + 37, + 101, + 114, + 14, + 8, + 92, + 241, + 214, + 133, + 147, + 175, + 235, + 62, + 208, + 219, + 203, + 46, + 183, + 148, + 42, + 206, + 84, + 216, + 239, + 184, + 140, + 173, + 122, + 245, + 8, + 33, + 56, + 96, + 114, + 111, + 4, + 188, + 103, + 248, + 200, + 82, + 184, + 178, + 174, + 253, + 180, + 89, + 123, + 79, + 169, + 106, + 45, + 122, + 193, + 116, + 83, + 158, + 81, + 17, + 142, + 175, + 64, + 2, + 103, + 189, + 38, + 53, + 0, + 173, + 235, + 114, + 137, + 139, + 60, + 150, + 211, + 221, + 99, + 145, + 191, + 153, + 37, + 156, + 36, + 53, + 60, + 102, + 83, + 200, + 60, + 0, + 56, + 188, + 83, + 167, + 244, + 109, + 7, + 76, + 142, + 188, + 56, + 196, + 92, + 218, + 60, + 151, + 142, + 196, + 251, + 37, + 5, + 122, + 93, + 104, + 178, + 179, + 37, + 85, + 205, + 54, + 201, + 108, + 182, + 47, + 171, + 197, + 43, + 240, + 198, + 34, + 77, + 248, + 139, + 71, + 152, + 132, + 8, + 185, + 67, + 162, + 59, + 205, + 49, + 85, + 23, + 206, + 123, + 232, + 180, + 203, + 213, + 102, + 74, + 187, + 13, + 126, + 181, + 4, + 46, + 40, + 27, + 130, + 166, + 108, + 181, + 39, + 187, + 15, + 228, + 69, + 20, + 223, + 18, + 134, + 96, + 96, + 178, + 248, + 223, + 248, + 183, + 30, + 109, + 180, + 133, + 163, + 97, + 231, + 91, + 112, + 212, + 28, + 239, + 96, + 153, + 167, + 142, + 69, + 95, + 245, + 169, + 178, + 57, + 248, + 213, + 1, + 7, + 248, + 110, + 205, + 147, + 8, + 126, + 167, + 217, + 59, + 239, + 230, + 65, + 181, + 139, + 230, + 242, + 151, + 232, + 127, + 161, + 65, + 63, + 16, + 178, + 119, + 173, + 201, + 239, + 123, + 38, + 176, + 137, + 113, + 45, + 89, + 45, + 37, + 15, + 224, + 138, + 36, + 226, + 218, + 70, + 25, + 240, + 94, + 42, + 32, + 53, + 186, + 60, + 161, + 56, + 88, + 86, + 59, + 108, + 188, + 235, + 92, + 206, + 113, + 232, + 52, + 34, + 190, + 184, + 36, + 85, + 58, + 227, + 106, + 33, + 59, + 51, + 231, + 204, + 151, + 215, + 205, + 132, + 110, + 235, + 179, + 31, + 166, + 163, + 97, + 207, + 133, + 50, + 248, + 130, + 206, + 162, + 172, + 46, + 201, + 74, + 116, + 202, + 71, + 174, + 106, + 234, + 63, + 197, + 253, + 7, + 135, + 168, + 192, + 32, + 207, + 47, + 116, + 59, + 208, + 172, + 25, + 14, + 233, + 35, + 32, + 203, + 253, + 192, + 215, + 88, + 172, + 67, + 69, + 232, + 189, + 41, + 44, + 224, + 168, + 70, + 100, + 37, + 115, + 104, + 54, + 187, + 104, + 9, + 236, + 34, + 202, + 190, + 56, + 8, + 183, + 188, + 124, + 225, + 229, + 129, + 174, + 134, + 123, + 86, + 238, + 6, + 6, + 236, + 231, + 250, + 143, + 56, + 181, + 2, + 51, + 230, + 85, + 118, + 90, + 113, + 195, + 195, + 61, + 120, + 93, + 209, + 237, + 108, + 197, + 243, + 74, + 148, + 76, + 117, + 101, + 160, + 150, + 215, + 173, + 102, + 27, + 141, + 247, + 213, + 127, + 86, + 98, + 254, + 50, + 90, + 1, + 2, + 145, + 93, + 52, + 38, + 115, + 47, + 166, + 9, + 201, + 202, + 181, + 64, + 101, + 1, + 10, + 136, + 206, + 15, + 170, + 152, + 220, + 113, + 169, + 28, + 21, + 116, + 13, + 49, + 253, + 49, + 203, + 1, + 75, + 112, + 227, + 72, + 193, + 166, + 32, + 157, + 188, + 5, + 71, + 19, + 24, + 196, + 204, + 72, + 7, + 166, + 13, + 152, + 97, + 152, + 213, + 118, + 236, + 76, + 119, + 220, + 237, + 243, + 21, + 205, + 7, + 131, + 169, + 58, + 232, + 73, + 142, + 83, + 154, + 20, + 167, + 252, + 221, + 88, + 255, + 46, + 149, + 109, + 204, + 149, + 178, + 228, + 134, + 195, + 160, + 195, + 186, + 68, + 100, + 49, + 153, + 243, + 88, + 174, + 48, + 13, + 103, + 144, + 205, + 35, + 251, + 181, + 138, + 44, + 250, + 156, + 204, + 49, + 145, + 23, + 242, + 69, + 220, + 6, + 155, + 222, + 187, + 44, + 194, + 178, + 43, + 54, + 225, + 199, + 177, + 117, + 53, + 136, + 80, + 56, + 200, + 168, + 163, + 20, + 130, + 161, + 111, + 103, + 82, + 171, + 134, + 62, + 20, + 110, + 175, + 120, + 126, + 42, + 212, + 219, + 113, + 25, + 134, + 192, + 103, + 108, + 204, + 188, + 84, + 172, + 32, + 167, + 186, + 255, + 122, + 30, + 147, + 237, + 248, + 199, + 229, + 111, + 164, + 229, + 129, + 41, + 5, + 32, + 118, + 219, + 117, + 46, + 129, + 50, + 222, + 47, + 74, + 57, + 98, + 248, + 139, + 107, + 28, + 240, + 141, + 249, + 133, + 194, + 215, + 127, + 159, + 127, + 56, + 162, + 136, + 48, + 96, + 179, + 226, + 140, + 229, + 238, + 220, + 205, + 143, + 79, + 12, + 28, + 211, + 10, + 233, + 214, + 154, + 92, + 71, + 182, + 140, + 178, + 40, + 225, + 109, + 61, + 104, + 148, + 224, + 149, + 98, + 189, + 103, + 9, + 101, + 32, + 207, + 3, + 78, + 156, + 143, + 203, + 62, + 86, + 116, + 102, + 87, + 196, + 59, + 32, + 185, + 81, + 86, + 161, + 196, + 110, + 61, + 76, + 208, + 253, + 97, + 214, + 189, + 239, + 247, + 124, + 157, + 95, + 141, + 93, + 206, + 190, + 140, + 7, + 113, + 238, + 93, + 112, + 206, + 48, + 61, + 152, + 33, + 226, + 196, + 36, + 36, + 154, + 92, + 208, + 81, + 108, + 229, + 104, + 255, + 17, + 228, + 64, + 25, + 124, + 204, + 42, + 75, + 210, + 164, + 186, + 60, + 82, + 41, + 54, + 217, + 9, + 217, + 205, + 166, + 24, + 26, + 101, + 160, + 73, + 106, + 86, + 200, + 184, + 219, + 184, + 189, + 140, + 97, + 244, + 168, + 183, + 168, + 61, + 102, + 9, + 191, + 91, + 18, + 140, + 177, + 195, + 188, + 110, + 55, + 110, + 114, + 145, + 218, + 26, + 132, + 84, + 147, + 202, + 127, + 38, + 105, + 140, + 93, + 73, + 9, + 224, + 155, + 65, + 102, + 239, + 78, + 201, + 104, + 216, + 113, + 76, + 251, + 200, + 75, + 131, + 16, + 150, + 179, + 142, + 113, + 214, + 199, + 92, + 157, + 96, + 254, + 159, + 236, + 178, + 236, + 203, + 89, + 186, + 178, + 61, + 235, + 199, + 31, + 190, + 227, + 20, + 178, + 77, + 122, + 206, + 249, + 79, + 252, + 101, + 167, + 194, + 9, + 69, + 207, + 38, + 191, + 207, + 157, + 59, + 67, + 24, + 127, + 133, + 93, + 148, + 113, + 120, + 157, + 224, + 106, + 190, + 41, + 197, + 135, + 175, + 56, + 120, + 82, + 136, + 160, + 244, + 193, + 82, + 165, + 248, + 98, + 76, + 76, + 207, + 93, + 116, + 162, + 1, + 91, + 117, + 25, + 214, + 116, + 11, + 31, + 47, + 63, + 114, + 157, + 73, + 135, + 28, + 230, + 93, + 16, + 50, + 113, + 39, + 137, + 49, + 185, + 4, + 206, + 50, + 99, + 140, + 128, + 158, + 52, + 142, + 168, + 108, + 95, + 234, + 123, + 110, + 104, + 189, + 59, + 231, + 147, + 126, + 8, + 45, + 8, + 227, + 47, + 122, + 149, + 214, + 180, + 110, + 197, + 5, + 199, + 200, + 204, + 44, + 152, + 100, + 31, + 150, + 115, + 108, + 158, + 156, + 50, + 107, + 135, + 10, + 207, + 150, + 155, + 116, + 168, + 113, + 69, + 173, + 226, + 241, + 15, + 171, + 234, + 14, + 25, + 113, + 182, + 113, + 130, + 133, + 91, + 52, + 75, + 174, + 169, + 117, + 140, + 175, + 244, + 43, + 128, + 152, + 193, + 53, + 21, + 44, + 102, + 173, + 135, + 251, + 153, + 167, + 248, + 64, + 188, + 210, + 8, + 134, + 91, + 124, + 131, + 193, + 4, + 41, + 241, + 147, + 236, + 208, + 236, + 70, + 152, + 82, + 92, + 132, + 12, + 137, + 59, + 56, + 101, + 153, + 236, + 53, + 22, + 202, + 203, + 172, + 69, + 77, + 102, + 125, + 128, + 119, + 31, + 240, + 17, + 249, + 208, + 47, + 213, + 196, + 247, + 109, + 200, + 221, + 12, + 34, + 0, + 21, + 108, + 124, + 45, + 106, + 141, + 42, + 46, + 63, + 87, + 203, + 22, + 165, + 254, + 148, + 245, + 239, + 14, + 72, + 43, + 233, + 83, + 150, + 69, + 15, + 231, + 126, + 188, + 7, + 109, + 30, + 178, + 30, + 126, + 170, + 122, + 191, + 191, + 93, + 205, + 96, + 111, + 196, + 64, + 120, + 148, + 239, + 209, + 215, + 253, + 75, + 230, + 81, + 31, + 250, + 11, + 243, + 131, + 6, + 126, + 21, + 159, + 171, + 51, + 128, + 120, + 32, + 37, + 198, + 68, + 1, + 134, + 122, + 238, + 160, + 30, + 56, + 89, + 155, + 190, + 160, + 241, + 25, + 6, + 38, + 198, + 7, + 103, + 94, + 226, + 190, + 124, + 117, + 105, + 157, + 12, + 212, + 65, + 182, + 69, + 255, + 68, + 7, + 235, + 68, + 161, + 78, + 40, + 244, + 16, + 121, + 116, + 54, + 146, + 147, + 82, + 193, + 81, + 89, + 139, + 206, + 84, + 142, + 253, + 228, + 142, + 158, + 43, + 187, + 47, + 191, + 109, + 236, + 184, + 138, + 227, + 130, + 196, + 51, + 103, + 192, + 90, + 67, + 4, + 214, + 24, + 49, + 16, + 96, + 133, + 196, + 54, + 146, + 26, + 204, + 103, + 232, + 91, + 50, + 174, + 120, + 11, + 70, + 62, + 228, + 178, + 112, + 245, + 179, + 70, + 245, + 25, + 197, + 119, + 174, + 86, + 118, + 41, + 70, + 115, + 73, + 228, + 118, + 185, + 229, + 122, + 68, + 64, + 191, + 2, + 185, + 135, + 239, + 48, + 189, + 35, + 201, + 56, + 229, + 74, + 113, + 248, + 95, + 95, + 89, + 24, + 252, + 20, + 3, + 17, + 178, + 139, + 4, + 213, + 142, + 78, + 0, + 93, + 48, + 237, + 182, + 249, + 150, + 88, + 55, + 223, + 220, + 117, + 23, + 90, + 69, + 246, + 11, + 82, + 138, + 62, + 241, + 196, + 199, + 26, + 250, + 22, + 161, + 130, + 139, + 159, + 165, + 225, + 133, + 112, + 44, + 173, + 238, + 10, + 214, + 52, + 2, + 36, + 127, + 41, + 69, + 191, + 64, + 0, + 225, + 3, + 168, + 0, + 234, + 12, + 63, + 225, + 154, + 83, + 86, + 185, + 226, + 96, + 220, + 119, + 35, + 203, + 3, + 160, + 222, + 118, + 79, + 240, + 90, + 128, + 151, + 51, + 24, + 237, + 46, + 174, + 170, + 32, + 121, + 119, + 236, + 17, + 142, + 53, + 227, + 64, + 189, + 1, + 215, + 224, + 89, + 40, + 18, + 237, + 231, + 82, + 222, + 203, + 75, + 159, + 65, + 249, + 50, + 211, + 179, + 242, + 120, + 50, + 221, + 2, + 11, + 156, + 38, + 114, + 209, + 101, + 131, + 84, + 128, + 125, + 20, + 48, + 255, + 32, + 208, + 10, + 205, + 112, + 44, + 83, + 48, + 144, + 20, + 166, + 176, + 71, + 45, + 51, + 83, + 103, + 196, + 211, + 64, + 136, + 194, + 51, + 32, + 211, + 78, + 61, + 109, + 2, + 177, + 142, + 176, + 225, + 224, + 113, + 85, + 95, + 90, + 237, + 31, + 178, + 75, + 88, + 207, + 156, + 143, + 52, + 248, + 45, + 37, + 76, + 153, + 185, + 165, + 155, + 232, + 24, + 248, + 185, + 126, + 44, + 228, + 61, + 9, + 163, + 109, + 174, + 170, + 71, + 118, + 142, + 8, + 195, + 214, + 213, + 162, + 30, + 172, + 157, + 203, + 235, + 187, + 186, + 40, + 150, + 240, + 113, + 193, + 235, + 166, + 189, + 4, + 144, + 244, + 246, + 78, + 222, + 74, + 238, + 183, + 59, + 63, + 71, + 251, + 230, + 166, + 157, + 29, + 232, + 96, + 212, + 234, + 218, + 148, + 182, + 126, + 213, + 28, + 228, + 1, + 227, + 212, + 115, + 244, + 25, + 36, + 187, + 230, + 247, + 38, + 131, + 156, + 47, + 240, + 135, + 55, + 204, + 203, + 248, + 64, + 243, + 135, + 78, + 226, + 159, + 154, + 236, + 220, + 243, + 247, + 235, + 164, + 106, + 0, + 0, + 255, + 217 + ], + "dg1": [ + 97, + 91, + 95, + 31, + 88, + 80, + 60, + 66, + 69, + 76, + 68, + 69, + 60, + 67, + 79, + 69, + 78, + 69, + 60, + 60, + 77, + 65, + 65, + 82, + 84, + 69, + 78, + 60, + 77, + 65, + 82, + 67, + 60, + 76, + 60, + 60, + 60, + 60, + 60, + 60, + 60, + 60, + 60, + 60, + 60, + 60, + 60, + 60, + 60, + 69, + 80, + 48, + 57, + 52, + 57, + 54, + 54, + 60, + 55, + 66, + 69, + 76, + 57, + 48, + 49, + 50, + 49, + 49, + 50, + 77, + 50, + 52, + 48, + 56, + 50, + 49, + 57, + 60, + 60, + 60, + 60, + 60, + 60, + 60, + 60, + 60, + 60, + 60, + 60, + 60, + 60, + 48, + 52 + ] +} \ No newline at end of file diff --git a/test/resources/documents.test.ts b/test/resources/documents.test.ts index 5d230ac..4c51d30 100644 --- a/test/resources/documents.test.ts +++ b/test/resources/documents.test.ts @@ -9,6 +9,7 @@ import { sortByDocumentType } from "../test-helpers"; import { exampleDocument } from "../test-examples"; +import { AxiosError } from "axios"; function getExpectedDocument( exampleDocument: Document, @@ -24,6 +25,8 @@ function getExpectedDocument( let applicant: Applicant; let document: Document; +const nonExistingId = "00000000-0000-0000-0000-000000000000"; + beforeEach(async () => { applicant = (await createApplicant()).data; document = (await uploadDocument(applicant)).data; @@ -79,3 +82,30 @@ it("lists documents", async () => { }) ]); }); + +it("downloads an NFC face", async () => { + const nfcFace = ( + await uploadDocument( + applicant, + DocumentTypes.Passport, + {}, + "test/media/nfc_data.json" + ) + ).data; + + const file = await onfido.downloadNfcFace(nfcFace.id); + + expect(file.status).toEqual(200); + expect(file.headers["content-type"]).toEqual("image/png"); + expect(file.data.buffer.slice(1, 4)).toEqual("PNG"); + expect(file.data.filename).toBeTruthy(); +}); + +it("throws an error if the NFC face is not found", async () => { + try { + await onfido.downloadNfcFace(nonExistingId); + } catch (error) { + expect(error).toBeInstanceOf(AxiosError); + expect(error.response.status).toEqual(404); + } +}); diff --git a/test/test-helpers.ts b/test/test-helpers.ts index 009df0d..1e270ce 100644 --- a/test/test-helpers.ts +++ b/test/test-helpers.ts @@ -93,9 +93,10 @@ export async function cleanUpApplicants() { export async function uploadDocument( applicant: Applicant, documentType: DocumentTypes = DocumentTypes.DrivingLicence, - location?: LocationBuilder + location?: LocationBuilder, + filePath: string = "test/media/sample_driving_licence.png" ) { - let fileTransfer = new FileTransfer("test/media/sample_driving_licence.png"); + let fileTransfer = new FileTransfer(filePath); return onfido.uploadDocument( documentType,