FileDocCategorySizeDatePackage
Data.javaAPI DocphoneME MR2 API (J2ME)37744Wed May 02 18:00:40 BST 2007com.sun.satsa.pkiapplet

Data.java

/*
 *   
 *
 * Copyright  1990-2007 Sun Microsystems, Inc. All Rights Reserved.
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER
 * 
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License version
 * 2 only, as published by the Free Software Foundation.
 * 
 * This program is distributed in the hope that it will be useful, but
 * WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 * General Public License version 2 for more details (a copy is
 * included at /legal/license.txt).
 * 
 * You should have received a copy of the GNU General Public License
 * version 2 along with this work; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
 * 02110-1301 USA
 * 
 * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
 * Clara, CA 95054 or visit www.sun.com if you need additional
 * information or have any questions.
 */

package com.sun.satsa.pkiapplet;

/**
 * This class contains WIM PINs, private keys and file system.
 */
public class Data {

    /** Identifier for RSA generic SE. */
    static final byte WIM_GENERIC_RSA_ID = 68;

    /** The number of keys that can be generated. */
    static short freeKeySlots = 10;
    /** Identifier of file for new key. */
    static short newFileID = (short) 21504;
    /** Identifier for new key. */
    static byte newKeyID = 40;
    /** The number of PINs that can be added. */
    static short freePINSlots = 10;
    /** Identifier of new PIN. */
    static byte newPINID = (byte) 80;
    /** Reference of new PIN. */
    static byte newPINRef = (byte) 60;
    /** Identifier of PIN-G. */
    static final byte PIN_G_ID = (byte) 2;
    /** PIN record size. */
    static final short PINRecordSize = 76;
    /** PIN label offset. */
    static final short PINLabelOffset = 6;
    /** New PIN offset in AODF. */
    static short newPINOffset = 228;

    /** PINs. */
    static byte[] PINs = { 3, 11, 8, 49, 50, 51, 52, -1, -1, -1, -1, 22, 8, 
        50, 51, 52, 53, -1, -1, -1, -1, 33, 8, 51, 52, 53, 54, -1, -1, -1, 
        -1};

    /** Offset from start of the first empty entry in PrKDF. */
    static short newPrivKeyOffset = 752;
    /** The size of record in PrKDF. */
    static final short privKeyRecordSize = 94;
    /** Offset of PIN identifier data in PrKDF record. */
    static final short privPINIDOffset = 44;
    /** Offset of key identifier data in PrKDF record. */
    static final short privHashOffset = 49;
    /** Offset of usage field data in PrKDF record. */
    static final short privUsageOffset = 71;
    /** Offset of key length in PrKDF record. */
    static final short privKeyLengthOffset = 89;

    /** Offset from start of the first empty entry in PrKDF. */
    static short newPubKeyOffset = 392;
    /** The size of record in PuKDF. */
    static final short pubKeyRecordSize = 49;
    /** Offset of key identifier data in PuKDF record. */
    static final short pubHashOffset = 8;
    /** Offset of key length in PuKDF record. */
    static final short pubKeyLengthOffset = 47;

    /** Private keys. */
    static byte[] PrivateKeys = { 8, 5, 1, 0, 4, 0, 0, -128, -99, -69, 71, 
        -17, -113, -16, 79, 102, 93, -13, -116, 28, -67, 75, -61, -96, 40, 
        -21, 45, -9, -14, -77, -116, 16, -126, -125, -49, 24, 6, 1, 75, -33, 
        -70, 14, 123, -23, 92, -81, 67, -125, -24, -112, 111, -27, -15, -35, 
        -65, 34, 17, -9, 106, 35, 91, -6, 76, 78, 58, 54, -115, 96, 99, 39, 
        25, 111, -127, -68, -7, 63, -35, 27, 32, 90, -72, -88, -113, -6, 16, 
        84, -55, -53, 89, 1, 115, 1, -46, 60, -12, 83, 58, -77, -119, -44, 
        -3, -48, -127, -24, -100, 85, -111, 72, -113, -107, -1, 38, -114, 
        122, 46, -52, 43, 125, -37, 29, -70, -66, 70, 40, 11, -25, -43, -49, 
        69, -27, -87, -9, 15, -59, -116, 83, 0, -128, 125, 102, -48, 34, 94, 
        69, -88, 90, -78, -121, 86, -11, -30, 105, -63, -10, 43, -110, 14, 
        -47, -6, 91, 85, 24, 43, 43, -80, 18, 97, 115, -42, 102, -32, -3, 
        114, -10, 109, -127, -54, 35, -83, 90, 104, 28, 96, -42, -13, -122, 
        -102, -46, 33, -56, 74, -16, 12, -118, -123, 45, -87, -24, -33, -21, 
        -50, 3, -32, 23, -81, -43, 93, -12, 48, -108, 99, 106, 60, -13, -58, 
        48, -106, 24, 42, -2, 25, -125, 33, -70, -53, 79, 22, 21, -8, -60, 
        11, 116, -37, 94, -21, 80, -50, -2, 57, 66, 121, -21, 61, 105, -25, 
        -57, 5, -81, -11, 29, 28, 30, -20, -72, -34, -42, -94, 115, 34, -89, 
        110, 81, 83, -84, -122, 1, 7, 2, 0, 4, 0, 0, -128, -38, -96, 5, -72, 
        -41, 81, -40, 61, 103, -87, 23, 92, 18, 120, 32, -86, -35, -33, -11, 
        -85, -128, 24, -124, -42, 18, 82, -30, 12, -91, 87, 5, -87, 65, -44, 
        72, -29, 55, 93, 102, 50, 28, 48, -37, 101, -97, -98, -91, 71, -29, 
        87, 35, 101, -14, 73, -105, -31, 108, -111, -120, 86, 124, -99, -48, 
        15, 74, 12, 44, 34, 20, -39, 51, -26, 48, -24, 107, -87, 6, -46, -16, 
        38, 120, -113, 21, -9, -16, -100, -12, 101, -94, 60, -78, -98, 55, 
        -89, 7, 94, -19, -57, -104, 102, -86, -12, -51, 0, -117, -33, 113, 
        34, -77, -86, -73, 43, 22, -72, 9, 25, 0, 110, 40, 57, 5, 71, -17, 
        -85, -120, -36, -106, 37, 0, -128, 65, -16, -40, 40, -5, 80, -27, 79, 
        8, 16, 25, 74, -99, 11, 124, -106, -20, -37, 27, 39, 66, 56, -93, 0, 
        74, -128, -109, 75, -53, 38, -25, 63, 56, -22, -59, -99, 58, -38, 
        -63, -13, 69, 75, 123, 49, 56, -90, -54, 37, 87, -83, -75, -80, -113, 
        22, -95, 103, -51, -82, 75, -104, 2, 120, 59, 3, -126, -66, -87, 43, 
        85, 24, 63, 0, -47, -1, 104, 19, 40, -41, -126, -87, -6, -19, 104, 
        -73, -122, 67, -66, -81, 57, 16, -84, 117, -15, -110, -30, -99, -71, 
        29, 119, 39, 58, 77, -92, -31, -95, 80, 64, -71, 8, 19, 29, 83, 101, 
        15, -48, 68, 17, 2, -21, 102, 103, 6, 97, 89, 60, -38, 58, 21, 8, 0, 
        1, 4, 0, 0, -128, -79, 21, -73, -66, 87, -20, 85, -32, -97, 89, -68, 
        -67, -67, -43, 116, -57, -22, 123, -15, 44, -101, 51, -44, -75, -33, 
        -26, 53, 1, -61, -44, 17, -76, -97, -48, -107, 46, 109, 19, -69, 
        -123, 4, 118, 122, -106, 85, 72, -96, -122, -13, 49, -30, 78, 55, 8, 
        -89, 43, 43, -82, -9, -99, -28, -121, -74, 48, -111, 21, 34, -113, 
        90, 112, 103, -34, -71, 116, 86, -117, 91, 74, -14, 102, -128, -103, 
        0, -80, -64, -44, -43, -75, -39, 36, 116, -13, 38, 71, -16, -37, 108, 
        38, 69, -5, 106, -111, 93, 80, 28, 91, 75, 77, 36, -89, -9, -80, 88, 
        -6, -103, -92, -20, -119, -54, 24, -128, -37, -56, 25, -85, 91, 107, 
        -101, 0, -128, 85, -85, 53, 5, -1, -111, 21, 6, -94, -16, -115, -49, 
        -103, 59, -33, -48, 43, 79, 36, -96, -72, -64, -67, 97, -13, 92, 114, 
        62, 85, 87, -115, -19, 60, -9, 114, -124, 80, 62, -96, -108, 60, 81, 
        121, 2, -85, 101, -124, 75, 100, -15, -72, 18, -80, -85, 29, -4, 83, 
        -104, -60, -81, -4, -13, -18, -98, 6, 35, -25, -103, -19, 126, -71, 
        11, -104, -110, -38, -119, -15, 37, -48, -43, 22, 122, 59, 110, -117, 
        8, -87, 22, -64, -57, -111, 119, -84, 85, 94, 70, -91, 12, -116, 6, 
        -55, 36, -124, 49, 58, -100, -26, -67, 34, 42, -78, -55, -69, -66, 
        -121, 64, 60, -85, -24, 17, 18, -5, -57, -13, -48, -75, 65, 1, 20, 0, 
        1, 4, 0, 0, -128, -124, 57, -92, -84, 43, -41, 100, -77, 74, 86, 32, 
        59, 66, 19, 106, -35, 77, -3, 127, -30, 125, 23, 69, 69, 114, -9, 
        -63, 109, 15, -42, -17, -40, -11, -118, -11, 26, -76, 39, 92, 25, 
        -97, 14, -94, -53, -15, -103, -120, 121, -63, -123, -94, -109, 42, 
        77, -16, 45, -22, -106, -65, -70, 6, -125, 67, 46, 28, -35, -73, -54, 
        -122, 57, 101, 45, -99, -59, 25, -11, 15, -120, 48, 105, -125, -62, 
        -75, -31, -31, 56, 72, -116, -75, 90, -74, -89, -99, -47, -89, 48, 
        100, -37, -44, -52, 51, -17, 24, 117, 74, -99, -32, 29, 78, -98, 13, 
        111, 41, -126, 29, 60, 100, -95, -24, 12, 36, -48, -45, 98, 87, 121, 
        -123, -93, 0, -128, 20, 38, -60, -42, 8, -120, 119, 44, 107, -13, 
        -36, 77, -85, -80, 81, -27, 16, 113, -59, -1, -70, -104, -59, 81, 
        -28, 71, -90, 14, -3, 15, 0, -42, -53, -11, 53, -115, -80, 79, 31, 
        86, 56, 75, 126, -68, 30, 66, 11, -18, -94, 115, -65, 103, 54, 87, 
        82, 119, 108, -3, 52, -109, 33, 82, -9, -11, -30, 83, 12, -43, 50, 4, 
        -60, -94, 58, 51, -85, 65, 36, 97, 119, -55, -81, 54, 36, -12, 67, 
        66, 46, -79, -116, -78, 79, -83, -44, -15, 40, -41, 22, 39, 32, 93, 
        -32, -40, -103, 62, -79, -70, 64, -83, -68, -101, -107, -111, -42, 
        -2, 81, -95, 124, -64, -50, 127, 112, -71, 68, -33, 24, -3, -63, 65, 
        15, 1, 0, 2, 0, 0, 64, -114, 82, 76, -125, 46, 48, 32, 59, -128, 79, 
        25, -26, 101, -103, 27, -79, 90, 120, -115, -97, 89, -18, 83, -85, 
        -78, 4, 58, -54, 99, -96, 64, -33, -76, -72, 65, 53, 61, -87, 43, 26, 
        110, 49, -53, 88, 119, 121, 59, 76, 100, -106, -119, 8, -13, -57, 
        -111, 29, -25, -35, -20, -28, 59, 98, -27, 55, 0, 64, 81, 79, -35, 
        -36, -8, -49, -112, 42, -50, -108, -30, -28, 74, 89, -98, -125, -58, 
        127, -89, -46, 74, 44, 42, -21, -90, -118, 90, 24, 117, -79, 2, 62, 
        -79, 124, -4, -32, -27, 36, 57, -88, -125, 105, 90, 102, -54, 125, 
        87, 103, -31, -56, 8, 9, -77, -112, 37, 48, 29, -80, -20, -52, 91, 
        113, -77, -79, 17, 2, 0, 2, 0, 0, 64, -113, 92, 112, -30, -121, 53, 
        100, 124, -62, -64, -66, 34, 36, 4, 95, -3, -3, -69, 108, -81, -70, 
        -118, -107, 8, 75, 90, 40, 51, 32, -70, 45, 53, 31, -115, 73, 98, 
        -61, 62, -126, 26, -24, -7, -77, -107, 5, -54, -95, -54, 126, 75, 
        -112, -102, 85, -20, 97, -109, -2, 9, 31, -30, 21, -32, 91, -109, 0, 
        64, 19, 75, -72, -15, -12, -118, -18, 52, -112, -82, 10, -87, 99, 
        -71, -89, 5, -13, -63, -25, 86, 27, -64, -115, 96, -87, 107, -64, 31, 
        105, -105, 69, -128, 62, 87, 69, 115, -110, -35, -6, -38, -117, 46, 
        -73, 44, -119, -5, -40, -2, 100, 7, 26, 125, -73, 72, 97, 23, 38, 
        -119, -5, -2, -29, -51, -119, -23, 18, 0, 1, 2, 0, 0, 64, -77, 116, 
        14, -83, 127, 19, 83, -32, -69, 119, 103, 14, 48, 4, 57, 33, -95, 35, 
        119, -32, 101, 65, 39, 10, 127, -87, 20, -99, -87, -78, -59, -68, 63, 
        -102, 107, 124, -31, 103, 40, 15, -90, -108, -38, -121, 67, -10, -86, 
        118, -114, -60, 124, -66, -63, -120, -9, 72, -42, 105, 77, 113, -32, 
        61, -109, -127, 0, 64, 105, -37, -40, -100, -72, 13, -86, -71, 51, 
        93, 40, 73, -46, 65, 107, -126, 79, 16, 33, 51, 26, 7, -23, 3, -28, 
        114, -43, 90, 124, 52, -99, 55, -124, 6, -95, -104, -26, -18, 118, 
        -83, -45, -56, -104, -16, -115, -114, -74, 126, 36, 0, -5, 75, 97, 
        -86, -87, 18, -118, -97, -24, 116, 37, -101, 127, 1, 30, 0, 1, 2, 0, 
        0, 64, -94, 97, -55, 69, -118, -2, 101, 65, -124, 94, -69, -107, 
        -110, -3, -45, -54, -91, -50, 4, 33, 24, -128, 88, 93, -35, -35, -30, 
        93, 69, 82, 115, 104, 106, -26, -24, -108, -120, 11, -89, -28, 97, 9, 
        19, -25, -35, 90, 65, -5, -4, -4, 41, 56, -16, 5, 24, -104, 91, -96, 
        -72, 6, 15, -126, -123, 69, 0, 64, 106, 75, -30, -22, -96, 59, 57, 
        -29, 114, -104, 100, -23, 92, 8, -58, -36, -80, 63, 53, 90, -56, -28, 
        51, 116, 118, -23, 105, -26, 46, -101, -13, -87, 70, 50, 33, -115, 
        12, -45, -59, 94, -5, -80, 88, -58, -98, -116, -107, -92, 97, -22, 
        -50, -33, -115, -38, 122, -97, -56, 68, -120, 19, 59, -63, 52, 29};

    /** AODF data offset. */
    static final short AODFOffset = (short) 1169;
    /** PrKDF data offset. */
    static final short PrKDFOffset = (short) 3216;
    /** PuKDF data offset. */
    static final short PuKDFOffset = (short) 4913;

    /** Files. */
    static byte[] Files = { 63, 0, 1, 0, 1, 80, 21, 9, 0, 48, 83, 0, 3, 0, 0, 
        80, 49, 16, 0, 74, -96, 6, 48, 4, 4, 2, 82, 0, -95, 6, 48, 4, 4, 2, 
        82, 1, -91, 6, 48, 4, 4, 2, 82, 2, -90, 6, 48, 4, 4, 2, 82, 3, -92, 
        6, 48, 4, 4, 2, 82, 7, -88, 6, 48, 4, 4, 2, 82, 4, -89, 24, -96, 22, 
        48, 20, 48, 18, 48, 0, 48, 6, 6, 4, 103, 43, 1, 3, -95, 6, 4, 4, 63, 
        0, 80, 21, 80, 50, 16, 0, 78, 48, 76, 2, 1, 0, 4, 9, 21, -105, 82, 
        34, 37, 21, 64, 18, 64, 12, 8, 83, 65, 84, 83, 65, 32, 82, 73, -128, 
        17, 87, 73, 77, 32, 49, 46, 48, 49, 32, 83, 65, 84, 83, 65, 32, 82, 
        73, 3, 1, 0, 48, 12, 48, 10, 2, 1, 68, 6, 5, 103, 43, 1, 1, 2, -94, 
        14, 48, 12, 2, 1, 85, 2, 1, 0, 5, 0, 3, 2, 6, 64, 80, 51, 112, 1, 29, 
        0, 23, 48, 17, 48, 12, 4, 2, 82, 6, 2, 2, 0, 0, -128, 2, 32, 0, 4, 1, 
        2, 0, -126, 1, 6, 82, 5, 16, 3, 65, 48, -126, 3, 61, 48, -126, 2, 37, 
        2, 4, 61, 62, -50, -118, 48, 13, 6, 9, 42, -122, 72, -122, -9, 13, 1, 
        1, 4, 5, 0, 48, 99, 49, 16, 48, 14, 6, 3, 85, 4, 3, 19, 7, 116, 104, 
        101, 104, 111, 115, 116, 49, 12, 48, 10, 6, 3, 85, 4, 11, 19, 3, 74, 
        67, 84, 49, 17, 48, 15, 6, 3, 85, 4, 10, 19, 8, 100, 117, 109, 109, 
        121, 32, 67, 65, 49, 20, 48, 18, 6, 3, 85, 4, 7, 19, 11, 83, 97, 110, 
        116, 97, 32, 67, 108, 97, 114, 97, 49, 11, 48, 9, 6, 3, 85, 4, 8, 19, 
        2, 67, 65, 49, 11, 48, 9, 6, 3, 85, 4, 6, 19, 2, 85, 83, 48, 30, 23, 
        13, 48, 50, 48, 55, 50, 52, 49, 53, 53, 56, 48, 50, 90, 23, 13, 49, 
        50, 48, 55, 50, 49, 49, 53, 53, 56, 48, 50, 90, 48, 99, 49, 16, 48, 
        14, 6, 3, 85, 4, 3, 19, 7, 116, 104, 101, 104, 111, 115, 116, 49, 12, 
        48, 10, 6, 3, 85, 4, 11, 19, 3, 74, 67, 84, 49, 17, 48, 15, 6, 3, 85, 
        4, 10, 19, 8, 100, 117, 109, 109, 121, 32, 67, 65, 49, 20, 48, 18, 6, 
        3, 85, 4, 7, 19, 11, 83, 97, 110, 116, 97, 32, 67, 108, 97, 114, 97, 
        49, 11, 48, 9, 6, 3, 85, 4, 8, 19, 2, 67, 65, 49, 11, 48, 9, 6, 3, 
        85, 4, 6, 19, 2, 85, 83, 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, -32, -30, -97, -62, 117, 76, 16, 83, -69, 72, -53, 84, 
        35, -28, -111, 23, -94, -20, 89, -97, 111, 87, 127, -101, 106, 31, 
        -109, 94, 105, -15, -44, 86, -71, 101, -98, 20, 39, -72, -79, -75, 
        -99, -22, -42, -17, -62, 3, 78, -101, 40, 30, 27, 8, 26, 5, 77, -9, 
        -75, -25, -110, -51, 58, 89, -40, -74, -74, 32, -13, -56, 43, -8, 30, 
        56, -39, -76, -12, 35, -64, 3, -55, 2, 113, 122, -84, 64, 37, 103, 
        -2, -62, 106, -46, 59, 37, 20, 41, -11, -103, -116, -17, 81, 37, -92, 
        55, -38, -79, 101, -74, 73, -9, -99, 30, 90, 52, 14, 23, -14, 80, 
        -110, -123, -69, 28, 108, -82, 106, -28, -32, 41, -27, -3, -51, 16, 
        26, -85, 7, -57, -92, 50, -41, -67, 112, 36, -58, 83, 115, 51, -107, 
        98, -124, -103, -75, 59, -125, -112, 14, -68, -111, 88, -16, -107, 
        -106, 21, 15, -19, 104, -70, 70, 5, 34, -103, 85, 30, 57, -66, -11, 
        52, -51, -71, 67, -34, 28, -21, -16, 121, -18, -99, 96, -91, 80, 120, 
        -32, 56, -7, 40, -106, -81, 7, -103, -42, -50, 124, -68, 59, 4, -3, 
        13, 9, 112, -79, -83, -49, -91, 70, -56, 65, 92, 7, -40, -101, -53, 
        -41, -53, 92, -60, -106, 14, 65, -124, 59, 40, -111, 7, -59, -36, 
        -98, 113, 120, 16, 65, -115, 5, 61, 54, 63, 120, -95, -100, -77, 55, 
        -127, 42, -91, -48, 37, -83, -2, 113, 7, 2, 3, 1, 0, 1, 48, 13, 6, 9, 
        42, -122, 72, -122, -9, 13, 1, 1, 4, 5, 0, 3, -126, 1, 1, 0, 19, 
        -115, 51, 67, 74, -32, -104, -44, -31, 73, -70, -60, -128, -106, -88, 
        -95, -33, -2, -100, -48, -98, -43, -110, 43, 4, 77, -63, -11, 119, 
        -60, 121, 91, -42, -28, -61, -116, 104, 58, 120, -88, -28, 12, 64, 
        -82, -94, 36, 27, -38, -4, 108, -20, 96, -94, 96, 82, 40, -114, -80, 
        -65, 31, -96, -53, -90, -55, 37, 102, -79, -12, 125, 91, 102, -8, 10, 
        -95, 26, -82, -11, 83, -31, 102, -96, -114, -40, 0, 99, -9, -34, 112, 
        21, 54, 105, -92, 121, 101, 5, 90, 76, -10, -119, 117, -87, 65, -54, 
        17, -6, 62, -36, -60, 78, -78, 45, 9, 27, -40, -78, -91, 74, -113, 
        80, -118, -21, 71, 88, 24, 39, -74, -40, 86, -23, -79, 68, -3, 99, 
        36, 122, 26, -72, 91, 55, 113, -39, -29, 84, -79, 85, 100, -93, 118, 
        26, 46, -86, -35, -99, 100, 113, -97, -65, -94, 47, 115, -43, 81, 16, 
        -23, -52, 52, 88, -54, -120, 123, -25, 33, 114, 81, 24, 67, 113, 41, 
        105, -126, 100, 75, -90, -57, -69, 75, 96, 111, 88, 113, -18, -94, 
        63, 62, -105, 5, 57, -22, -34, -81, 57, -84, -121, -39, 65, 122, 100, 
        -75, -22, -69, -92, -61, 14, -36, 126, 86, -41, 115, -25, 64, 44, 31, 
        -124, -7, -12, -117, 83, 109, -125, -86, -46, 79, 114, -37, 107, 96, 
        -14, -83, 101, 53, 120, 27, 52, 46, -84, -96, -21, 93, 44, 2, 33, 21, 
        89, -93, -128, -31, 82, 2, 16, 0, 87, 48, 85, 48, 38, 12, 32, 67, 65, 
        32, 67, 69, 82, 84, 73, 70, 73, 67, 65, 84, 69, 32, 32, 32, 32, 32, 
        32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 3, 2, 0, 0, 48, 
        25, 4, 20, 42, -46, 26, -76, -116, 49, 41, 2, -19, 41, -1, -87, 105, 
        17, 74, -57, 96, -108, 112, 7, 1, 1, -1, -95, 16, 48, 14, 48, 12, 4, 
        2, 82, 5, 2, 2, 0, 0, -128, 2, 3, 65, 82, 3, 112, 8, 4, 0, 3, 0, 
        -126, 8, 82, 7, 112, 8, 4, 0, 3, 0, -126, 8, 82, 6, 112, 32, 0, 0, 0, 
        82, 4, 16, 3, -36, 48, 74, 48, 38, 12, 32, 80, 73, 78, 32, 49, 32, 
        32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 
        32, 32, 32, 32, 32, 32, 32, 32, 32, 3, 2, 7, -128, 48, 3, 4, 1, 2, 
        -95, 27, 48, 25, 3, 2, 2, 44, 10, 1, 1, 2, 1, 4, 2, 1, 8, -128, 1, 
        11, 4, 1, -1, 48, 4, 4, 2, 83, 0, 48, 74, 48, 38, 12, 32, 78, 111, 
        110, 32, 114, 101, 112, 117, 100, 105, 97, 116, 105, 111, 110, 32, 
        107, 101, 121, 32, 49, 32, 80, 73, 78, 32, 32, 32, 32, 32, 32, 32, 3, 
        2, 7, -128, 48, 3, 4, 1, 6, -95, 27, 48, 25, 3, 2, 2, 44, 10, 1, 1, 
        2, 1, 4, 2, 1, 8, -128, 1, 22, 4, 1, -1, 48, 4, 4, 2, 83, 0, 48, 74, 
        48, 38, 12, 32, 78, 111, 110, 32, 114, 101, 112, 117, 100, 105, 97, 
        116, 105, 111, 110, 32, 107, 101, 121, 32, 50, 32, 80, 73, 78, 32, 
        32, 32, 32, 32, 32, 32, 3, 2, 7, -128, 48, 3, 4, 1, 7, -95, 27, 48, 
        25, 3, 2, 2, 44, 10, 1, 1, 2, 1, 4, 2, 1, 8, -128, 1, 33, 4, 1, -1, 
        48, 4, 4, 2, 83, 0, 0, 74, 48, 38, 12, 32, 32, 32, 32, 32, 32, 32, 
        32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 
        32, 32, 32, 32, 32, 32, 32, 32, 32, 3, 2, 7, -128, 48, 3, 4, 1, 80, 
        -95, 27, 48, 25, 3, 2, 2, 44, 10, 1, 1, 2, 1, 4, 2, 1, 8, -128, 1, 
        60, 4, 1, -1, 48, 4, 4, 2, 83, 0, 0, 74, 48, 38, 12, 32, 32, 32, 32, 
        32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 
        32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 3, 2, 7, -128, 48, 3, 
        4, 1, 81, -95, 27, 48, 25, 3, 2, 2, 44, 10, 1, 1, 2, 1, 4, 2, 1, 8, 
        -128, 1, 61, 4, 1, -1, 48, 4, 4, 2, 83, 0, 0, 74, 48, 38, 12, 32, 32, 
        32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 
        32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 3, 2, 7, 
        -128, 48, 3, 4, 1, 82, -95, 27, 48, 25, 3, 2, 2, 44, 10, 1, 1, 2, 1, 
        4, 2, 1, 8, -128, 1, 62, 4, 1, -1, 48, 4, 4, 2, 83, 0, 0, 74, 48, 38, 
        12, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 
        32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 
        3, 2, 7, -128, 48, 3, 4, 1, 83, -95, 27, 48, 25, 3, 2, 2, 44, 10, 1, 
        1, 2, 1, 4, 2, 1, 8, -128, 1, 63, 4, 1, -1, 48, 4, 4, 2, 83, 0, 0, 
        74, 48, 38, 12, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 
        32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 
        32, 32, 32, 3, 2, 7, -128, 48, 3, 4, 1, 84, -95, 27, 48, 25, 3, 2, 2, 
        44, 10, 1, 1, 2, 1, 4, 2, 1, 8, -128, 1, 64, 4, 1, -1, 48, 4, 4, 2, 
        83, 0, 0, 74, 48, 38, 12, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 
        32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 
        32, 32, 32, 32, 32, 3, 2, 7, -128, 48, 3, 4, 1, 85, -95, 27, 48, 25, 
        3, 2, 2, 44, 10, 1, 1, 2, 1, 4, 2, 1, 8, -128, 1, 65, 4, 1, -1, 48, 
        4, 4, 2, 83, 0, 0, 74, 48, 38, 12, 32, 32, 32, 32, 32, 32, 32, 32, 
        32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 
        32, 32, 32, 32, 32, 32, 32, 32, 3, 2, 7, -128, 48, 3, 4, 1, 86, -95, 
        27, 48, 25, 3, 2, 2, 44, 10, 1, 1, 2, 1, 4, 2, 1, 8, -128, 1, 66, 4, 
        1, -1, 48, 4, 4, 2, 83, 0, 0, 74, 48, 38, 12, 32, 32, 32, 32, 32, 32, 
        32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 
        32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 3, 2, 7, -128, 48, 3, 4, 1, 
        87, -95, 27, 48, 25, 3, 2, 2, 44, 10, 1, 1, 2, 1, 4, 2, 1, 8, -128, 
        1, 67, 4, 1, -1, 48, 4, 4, 2, 83, 0, 0, 74, 48, 38, 12, 32, 32, 32, 
        32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 
        32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 3, 2, 7, -128, 
        48, 3, 4, 1, 88, -95, 27, 48, 25, 3, 2, 2, 44, 10, 1, 1, 2, 1, 4, 2, 
        1, 8, -128, 1, 68, 4, 1, -1, 48, 4, 4, 2, 83, 0, 0, 74, 48, 38, 12, 
        32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 
        32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 3, 2, 
        7, -128, 48, 3, 4, 1, 89, -95, 27, 48, 25, 3, 2, 2, 44, 10, 1, 1, 2, 
        1, 4, 2, 1, 8, -128, 1, 69, 4, 1, -1, 48, 4, 4, 2, 83, 0, 83, 1, 16, 
        0, -116, 48, -127, -119, 2, -127, -127, 0, -99, -69, 71, -17, -113, 
        -16, 79, 102, 93, -13, -116, 28, -67, 75, -61, -96, 40, -21, 45, -9, 
        -14, -77, -116, 16, -126, -125, -49, 24, 6, 1, 75, -33, -70, 14, 123, 
        -23, 92, -81, 67, -125, -24, -112, 111, -27, -15, -35, -65, 34, 17, 
        -9, 106, 35, 91, -6, 76, 78, 58, 54, -115, 96, 99, 39, 25, 111, -127, 
        -68, -7, 63, -35, 27, 32, 90, -72, -88, -113, -6, 16, 84, -55, -53, 
        89, 1, 115, 1, -46, 60, -12, 83, 58, -77, -119, -44, -3, -48, -127, 
        -24, -100, 85, -111, 72, -113, -107, -1, 38, -114, 122, 46, -52, 43, 
        125, -37, 29, -70, -66, 70, 40, 11, -25, -43, -49, 69, -27, -87, -9, 
        15, -59, -116, 83, 2, 3, 1, 0, 1, 82, -127, 4, 0, 1, 5, 83, 2, 16, 0, 
        -116, 48, -127, -119, 2, -127, -127, 0, -38, -96, 5, -72, -41, 81, 
        -40, 61, 103, -87, 23, 92, 18, 120, 32, -86, -35, -33, -11, -85, 
        -128, 24, -124, -42, 18, 82, -30, 12, -91, 87, 5, -87, 65, -44, 72, 
        -29, 55, 93, 102, 50, 28, 48, -37, 101, -97, -98, -91, 71, -29, 87, 
        35, 101, -14, 73, -105, -31, 108, -111, -120, 86, 124, -99, -48, 15, 
        74, 12, 44, 34, 20, -39, 51, -26, 48, -24, 107, -87, 6, -46, -16, 38, 
        120, -113, 21, -9, -16, -100, -12, 101, -94, 60, -78, -98, 55, -89, 
        7, 94, -19, -57, -104, 102, -86, -12, -51, 0, -117, -33, 113, 34, 
        -77, -86, -73, 43, 22, -72, 9, 25, 0, 110, 40, 57, 5, 71, -17, -85, 
        -120, -36, -106, 37, 2, 3, 1, 0, 1, 82, -126, 4, 0, 1, 7, 83, 3, 16, 
        0, -116, 48, -127, -119, 2, -127, -127, 0, -79, 21, -73, -66, 87, 
        -20, 85, -32, -97, 89, -68, -67, -67, -43, 116, -57, -22, 123, -15, 
        44, -101, 51, -44, -75, -33, -26, 53, 1, -61, -44, 17, -76, -97, -48, 
        -107, 46, 109, 19, -69, -123, 4, 118, 122, -106, 85, 72, -96, -122, 
        -13, 49, -30, 78, 55, 8, -89, 43, 43, -82, -9, -99, -28, -121, -74, 
        48, -111, 21, 34, -113, 90, 112, 103, -34, -71, 116, 86, -117, 91, 
        74, -14, 102, -128, -103, 0, -80, -64, -44, -43, -75, -39, 36, 116, 
        -13, 38, 71, -16, -37, 108, 38, 69, -5, 106, -111, 93, 80, 28, 91, 
        75, 77, 36, -89, -9, -80, 88, -6, -103, -92, -20, -119, -54, 24, 
        -128, -37, -56, 25, -85, 91, 107, -101, 2, 3, 1, 0, 1, 82, -125, 4, 
        0, 1, 8, 83, 4, 16, 0, -116, 48, -127, -119, 2, -127, -127, 0, -124, 
        57, -92, -84, 43, -41, 100, -77, 74, 86, 32, 59, 66, 19, 106, -35, 
        77, -3, 127, -30, 125, 23, 69, 69, 114, -9, -63, 109, 15, -42, -17, 
        -40, -11, -118, -11, 26, -76, 39, 92, 25, -97, 14, -94, -53, -15, 
        -103, -120, 121, -63, -123, -94, -109, 42, 77, -16, 45, -22, -106, 
        -65, -70, 6, -125, 67, 46, 28, -35, -73, -54, -122, 57, 101, 45, -99, 
        -59, 25, -11, 15, -120, 48, 105, -125, -62, -75, -31, -31, 56, 72, 
        -116, -75, 90, -74, -89, -99, -47, -89, 48, 100, -37, -44, -52, 51, 
        -17, 24, 117, 74, -99, -32, 29, 78, -98, 13, 111, 41, -126, 29, 60, 
        100, -95, -24, 12, 36, -48, -45, 98, 87, 121, -123, -93, 2, 3, 1, 0, 
        1, 82, -124, 4, 0, 1, 20, 83, 5, 16, 0, 74, 48, 72, 2, 65, 0, -114, 
        82, 76, -125, 46, 48, 32, 59, -128, 79, 25, -26, 101, -103, 27, -79, 
        90, 120, -115, -97, 89, -18, 83, -85, -78, 4, 58, -54, 99, -96, 64, 
        -33, -76, -72, 65, 53, 61, -87, 43, 26, 110, 49, -53, 88, 119, 121, 
        59, 76, 100, -106, -119, 8, -13, -57, -111, 29, -25, -35, -20, -28, 
        59, 98, -27, 55, 2, 3, 1, 0, 1, 82, -123, 4, 0, 1, 15, 83, 6, 16, 0, 
        74, 48, 72, 2, 65, 0, -113, 92, 112, -30, -121, 53, 100, 124, -62, 
        -64, -66, 34, 36, 4, 95, -3, -3, -69, 108, -81, -70, -118, -107, 8, 
        75, 90, 40, 51, 32, -70, 45, 53, 31, -115, 73, 98, -61, 62, -126, 26, 
        -24, -7, -77, -107, 5, -54, -95, -54, 126, 75, -112, -102, 85, -20, 
        97, -109, -2, 9, 31, -30, 21, -32, 91, -109, 2, 3, 1, 0, 1, 82, -122, 
        4, 0, 1, 17, 83, 7, 16, 0, 74, 48, 72, 2, 65, 0, -77, 116, 14, -83, 
        127, 19, 83, -32, -69, 119, 103, 14, 48, 4, 57, 33, -95, 35, 119, 
        -32, 101, 65, 39, 10, 127, -87, 20, -99, -87, -78, -59, -68, 63, 
        -102, 107, 124, -31, 103, 40, 15, -90, -108, -38, -121, 67, -10, -86, 
        118, -114, -60, 124, -66, -63, -120, -9, 72, -42, 105, 77, 113, -32, 
        61, -109, -127, 2, 3, 1, 0, 1, 82, -121, 4, 0, 1, 18, 83, 8, 16, 0, 
        74, 48, 72, 2, 65, 0, -94, 97, -55, 69, -118, -2, 101, 65, -124, 94, 
        -69, -107, -110, -3, -45, -54, -91, -50, 4, 33, 24, -128, 88, 93, 
        -35, -35, -30, 93, 69, 82, 115, 104, 106, -26, -24, -108, -120, 11, 
        -89, -28, 97, 9, 19, -25, -35, 90, 65, -5, -4, -4, 41, 56, -16, 5, 
        24, -104, 91, -96, -72, 6, 15, -126, -123, 69, 2, 3, 1, 0, 1, 82, 
        -120, 4, 0, 1, 30, 84, 0, 16, 0, 0, 84, 1, 4, 0, 1, 40, 84, 2, 16, 0, 
        0, 84, 3, 4, 0, 1, 41, 84, 4, 16, 0, 0, 84, 5, 4, 0, 1, 42, 84, 6, 
        16, 0, 0, 84, 7, 4, 0, 1, 43, 84, 8, 16, 0, 0, 84, 9, 4, 0, 1, 44, 
        84, 10, 16, 0, 0, 84, 11, 4, 0, 1, 45, 84, 12, 16, 0, 0, 84, 13, 4, 
        0, 1, 46, 84, 14, 16, 0, 0, 84, 15, 4, 0, 1, 47, 84, 16, 16, 0, 0, 
        84, 17, 4, 0, 1, 48, 84, 18, 16, 0, 0, 84, 19, 4, 0, 1, 49, 82, 0, 
        16, 6, -100, 48, 92, 48, 41, 12, 32, 78, 82, 32, 107, 101, 121, 32, 
        49, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 
        32, 32, 32, 32, 32, 32, 32, 32, 3, 2, 7, -128, 4, 1, 6, 48, 30, 4, 
        20, -114, 55, 127, 89, 2, 71, 43, -58, 11, -118, 125, -121, -54, 112, 
        17, 73, -49, 41, 75, 43, 3, 3, 6, 0, 64, 2, 1, 5, -95, 15, 48, 13, 
        48, 4, 4, 2, 82, -127, 2, 2, 4, 0, 2, 1, 85, 48, 92, 48, 41, 12, 32, 
        78, 82, 32, 107, 101, 121, 32, 50, 32, 32, 32, 32, 32, 32, 32, 32, 
        32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 3, 2, 
        7, -128, 4, 1, 7, 48, 30, 4, 20, -13, 104, -4, 29, 86, -85, -90, -65, 
        117, -89, 49, 25, 37, 27, 64, -18, 32, -86, 124, -9, 3, 3, 6, 0, 64, 
        2, 1, 7, -95, 15, 48, 13, 48, 4, 4, 2, 82, -126, 2, 2, 4, 0, 2, 1, 
        85, 48, 92, 48, 41, 12, 32, 65, 117, 116, 104, 101, 110, 116, 105, 
        99, 97, 116, 105, 111, 110, 32, 107, 101, 121, 32, 49, 32, 32, 32, 
        32, 32, 32, 32, 32, 32, 32, 32, 32, 3, 2, 7, -128, 4, 1, 2, 48, 30, 
        4, 20, -53, 66, 38, 115, 124, 43, 1, -8, 56, -48, -63, -24, -34, 4, 
        -34, 103, 49, 39, 68, 44, 3, 3, 6, 32, 0, 2, 1, 8, -95, 15, 48, 13, 
        48, 4, 4, 2, 82, -125, 2, 2, 4, 0, 2, 1, 85, 48, 92, 48, 41, 12, 32, 
        65, 117, 116, 104, 101, 110, 116, 105, 99, 97, 116, 105, 111, 110, 
        32, 107, 101, 121, 32, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 
        32, 32, 3, 2, 7, -128, 4, 1, 2, 48, 30, 4, 20, -97, -109, -46, 108, 
        -101, 5, -15, -11, 52, -42, 3, -51, -86, -22, -30, -51, 32, -31, 5, 
        66, 3, 3, 6, 32, 0, 2, 1, 20, -95, 15, 48, 13, 48, 4, 4, 2, 82, -124, 
        2, 2, 4, 0, 2, 1, 85, 48, 92, 48, 41, 12, 32, 78, 82, 32, 107, 101, 
        121, 32, 51, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 
        32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 3, 2, 7, -128, 4, 1, 6, 48, 
        30, 4, 20, -122, -5, -47, -22, -113, -121, 67, -100, 36, -127, 98, 
        -24, 54, 20, -88, 8, 77, -61, -56, -39, 3, 3, 6, 0, 64, 2, 1, 15, 
        -95, 15, 48, 13, 48, 4, 4, 2, 82, -123, 2, 2, 2, 0, 2, 1, 85, 48, 92, 
        48, 41, 12, 32, 78, 82, 32, 107, 101, 121, 32, 52, 32, 32, 32, 32, 
        32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 
        32, 32, 32, 3, 2, 7, -128, 4, 1, 7, 48, 30, 4, 20, -115, 80, -52, 31, 
        -18, 37, -117, -76, -91, 95, 66, 56, -54, -35, -105, -81, 98, 67, -2, 
        39, 3, 3, 6, 0, 64, 2, 1, 17, -95, 15, 48, 13, 48, 4, 4, 2, 82, -122, 
        2, 2, 2, 0, 2, 1, 85, 48, 92, 48, 41, 12, 32, 65, 117, 116, 104, 101, 
        110, 116, 105, 99, 97, 116, 105, 111, 110, 32, 107, 101, 121, 32, 51, 
        32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 3, 2, 7, -128, 4, 1, 
        2, 48, 30, 4, 20, -57, -42, 53, -77, -59, -112, -113, -78, 32, -72, 
        -106, -96, 89, 118, 6, 20, -55, 85, -98, 67, 3, 3, 6, 32, 0, 2, 1, 
        18, -95, 15, 48, 13, 48, 4, 4, 2, 82, -121, 2, 2, 2, 0, 2, 1, 85, 48, 
        92, 48, 41, 12, 32, 65, 117, 116, 104, 101, 110, 116, 105, 99, 97, 
        116, 105, 111, 110, 32, 107, 101, 121, 32, 52, 32, 32, 32, 32, 32, 
        32, 32, 32, 32, 32, 32, 32, 3, 2, 7, -128, 4, 1, 2, 48, 30, 4, 20, 
        -8, -48, 50, -10, 55, 108, 5, 59, -86, 99, -47, 14, -102, 50, 43, 37, 
        2, -25, -84, -90, 3, 3, 6, 32, 0, 2, 1, 30, -95, 15, 48, 13, 48, 4, 
        4, 2, 82, -120, 2, 2, 2, 0, 2, 1, 85, 0, 92, 48, 41, 12, 32, 78, 101, 
        119, 32, 107, 101, 121, 32, 49, 32, 32, 32, 32, 32, 32, 32, 32, 32, 
        32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 3, 2, 7, 
        -128, 4, 1, 2, 48, 30, 4, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
        0, 0, 0, 0, 0, 0, 0, 3, 3, 6, 0, 64, 2, 1, 40, -95, 15, 48, 13, 48, 
        4, 4, 2, 84, 1, 2, 2, 4, 0, 2, 1, 85, 0, 92, 48, 41, 12, 32, 78, 101, 
        119, 32, 107, 101, 121, 32, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 
        32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 3, 2, 7, 
        -128, 4, 1, 2, 48, 30, 4, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
        0, 0, 0, 0, 0, 0, 0, 3, 3, 6, 0, 64, 2, 1, 41, -95, 15, 48, 13, 48, 
        4, 4, 2, 84, 3, 2, 2, 4, 0, 2, 1, 85, 0, 92, 48, 41, 12, 32, 78, 101, 
        119, 32, 107, 101, 121, 32, 51, 32, 32, 32, 32, 32, 32, 32, 32, 32, 
        32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 3, 2, 7, 
        -128, 4, 1, 2, 48, 30, 4, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
        0, 0, 0, 0, 0, 0, 0, 3, 3, 6, 0, 64, 2, 1, 42, -95, 15, 48, 13, 48, 
        4, 4, 2, 84, 5, 2, 2, 4, 0, 2, 1, 85, 0, 92, 48, 41, 12, 32, 78, 101, 
        119, 32, 107, 101, 121, 32, 52, 32, 32, 32, 32, 32, 32, 32, 32, 32, 
        32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 3, 2, 7, 
        -128, 4, 1, 2, 48, 30, 4, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
        0, 0, 0, 0, 0, 0, 0, 3, 3, 6, 0, 64, 2, 1, 43, -95, 15, 48, 13, 48, 
        4, 4, 2, 84, 7, 2, 2, 4, 0, 2, 1, 85, 0, 92, 48, 41, 12, 32, 78, 101, 
        119, 32, 107, 101, 121, 32, 53, 32, 32, 32, 32, 32, 32, 32, 32, 32, 
        32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 3, 2, 7, 
        -128, 4, 1, 2, 48, 30, 4, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
        0, 0, 0, 0, 0, 0, 0, 3, 3, 6, 0, 64, 2, 1, 44, -95, 15, 48, 13, 48, 
        4, 4, 2, 84, 9, 2, 2, 4, 0, 2, 1, 85, 0, 92, 48, 41, 12, 32, 78, 101, 
        119, 32, 107, 101, 121, 32, 54, 32, 32, 32, 32, 32, 32, 32, 32, 32, 
        32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 3, 2, 7, 
        -128, 4, 1, 2, 48, 30, 4, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
        0, 0, 0, 0, 0, 0, 0, 3, 3, 6, 0, 64, 2, 1, 45, -95, 15, 48, 13, 48, 
        4, 4, 2, 84, 11, 2, 2, 4, 0, 2, 1, 85, 0, 92, 48, 41, 12, 32, 78, 
        101, 119, 32, 107, 101, 121, 32, 55, 32, 32, 32, 32, 32, 32, 32, 32, 
        32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 3, 2, 7, 
        -128, 4, 1, 2, 48, 30, 4, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
        0, 0, 0, 0, 0, 0, 0, 3, 3, 6, 0, 64, 2, 1, 46, -95, 15, 48, 13, 48, 
        4, 4, 2, 84, 13, 2, 2, 4, 0, 2, 1, 85, 0, 92, 48, 41, 12, 32, 78, 
        101, 119, 32, 107, 101, 121, 32, 56, 32, 32, 32, 32, 32, 32, 32, 32, 
        32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 3, 2, 7, 
        -128, 4, 1, 2, 48, 30, 4, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
        0, 0, 0, 0, 0, 0, 0, 3, 3, 6, 0, 64, 2, 1, 47, -95, 15, 48, 13, 48, 
        4, 4, 2, 84, 15, 2, 2, 4, 0, 2, 1, 85, 0, 92, 48, 41, 12, 32, 78, 
        101, 119, 32, 107, 101, 121, 32, 57, 32, 32, 32, 32, 32, 32, 32, 32, 
        32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 3, 2, 7, 
        -128, 4, 1, 2, 48, 30, 4, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
        0, 0, 0, 0, 0, 0, 0, 3, 3, 6, 0, 64, 2, 1, 48, -95, 15, 48, 13, 48, 
        4, 4, 2, 84, 17, 2, 2, 4, 0, 2, 1, 85, 0, 92, 48, 41, 12, 32, 78, 
        101, 119, 32, 107, 101, 121, 32, 49, 48, 32, 32, 32, 32, 32, 32, 32, 
        32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 3, 2, 7, 
        -128, 4, 1, 2, 48, 30, 4, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
        0, 0, 0, 0, 0, 0, 0, 3, 3, 6, 0, 64, 2, 1, 49, -95, 15, 48, 13, 48, 
        4, 4, 2, 84, 19, 2, 2, 4, 0, 2, 1, 85, 82, 1, 16, 3, 114, 48, 47, 48, 
        0, 48, 29, 4, 20, -114, 55, 127, 89, 2, 71, 43, -58, 11, -118, 125, 
        -121, -54, 112, 17, 73, -49, 41, 75, 43, 3, 2, 1, 2, 1, 1, 0, -95, 
        12, 48, 10, 48, 4, 4, 2, 83, 1, 2, 2, 4, 0, 48, 47, 48, 0, 48, 29, 4, 
        20, -13, 104, -4, 29, 86, -85, -90, -65, 117, -89, 49, 25, 37, 27, 
        64, -18, 32, -86, 124, -9, 3, 2, 1, 2, 1, 1, 0, -95, 12, 48, 10, 48, 
        4, 4, 2, 83, 2, 2, 2, 4, 0, 48, 47, 48, 0, 48, 29, 4, 20, -53, 66, 
        38, 115, 124, 43, 1, -8, 56, -48, -63, -24, -34, 4, -34, 103, 49, 39, 
        68, 44, 3, 2, 1, 2, 1, 1, 0, -95, 12, 48, 10, 48, 4, 4, 2, 83, 3, 2, 
        2, 4, 0, 48, 47, 48, 0, 48, 29, 4, 20, -97, -109, -46, 108, -101, 5, 
        -15, -11, 52, -42, 3, -51, -86, -22, -30, -51, 32, -31, 5, 66, 3, 2, 
        1, 2, 1, 1, 0, -95, 12, 48, 10, 48, 4, 4, 2, 83, 4, 2, 2, 4, 0, 48, 
        47, 48, 0, 48, 29, 4, 20, -122, -5, -47, -22, -113, -121, 67, -100, 
        36, -127, 98, -24, 54, 20, -88, 8, 77, -61, -56, -39, 3, 2, 1, 2, 1, 
        1, 0, -95, 12, 48, 10, 48, 4, 4, 2, 83, 5, 2, 2, 2, 0, 48, 47, 48, 0, 
        48, 29, 4, 20, -115, 80, -52, 31, -18, 37, -117, -76, -91, 95, 66, 
        56, -54, -35, -105, -81, 98, 67, -2, 39, 3, 2, 1, 2, 1, 1, 0, -95, 
        12, 48, 10, 48, 4, 4, 2, 83, 6, 2, 2, 2, 0, 48, 47, 48, 0, 48, 29, 4, 
        20, -57, -42, 53, -77, -59, -112, -113, -78, 32, -72, -106, -96, 89, 
        118, 6, 20, -55, 85, -98, 67, 3, 2, 1, 2, 1, 1, 0, -95, 12, 48, 10, 
        48, 4, 4, 2, 83, 7, 2, 2, 2, 0, 48, 47, 48, 0, 48, 29, 4, 20, -8, 
        -48, 50, -10, 55, 108, 5, 59, -86, 99, -47, 14, -102, 50, 43, 37, 2, 
        -25, -84, -90, 3, 2, 1, 2, 1, 1, 0, -95, 12, 48, 10, 48, 4, 4, 2, 83, 
        8, 2, 2, 2, 0, 0, 47, 48, 0, 48, 29, 4, 20, 0, 0, 0, 0, 0, 0, 0, 0, 
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 1, 2, 1, 1, 0, -95, 12, 48, 
        10, 48, 4, 4, 2, 84, 0, 2, 2, 4, 0, 0, 47, 48, 0, 48, 29, 4, 20, 0, 
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 1, 2, 
        1, 1, 0, -95, 12, 48, 10, 48, 4, 4, 2, 84, 2, 2, 2, 4, 0, 0, 47, 48, 
        0, 48, 29, 4, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
        0, 0, 0, 3, 2, 1, 2, 1, 1, 0, -95, 12, 48, 10, 48, 4, 4, 2, 84, 4, 2, 
        2, 4, 0, 0, 47, 48, 0, 48, 29, 4, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 1, 2, 1, 1, 0, -95, 12, 48, 10, 
        48, 4, 4, 2, 84, 6, 2, 2, 4, 0, 0, 47, 48, 0, 48, 29, 4, 20, 0, 0, 0, 
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 1, 2, 1, 1, 
        0, -95, 12, 48, 10, 48, 4, 4, 2, 84, 8, 2, 2, 4, 0, 0, 47, 48, 0, 48, 
        29, 4, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
        0, 3, 2, 1, 2, 1, 1, 0, -95, 12, 48, 10, 48, 4, 4, 2, 84, 10, 2, 2, 
        4, 0, 0, 47, 48, 0, 48, 29, 4, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
        0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 1, 2, 1, 1, 0, -95, 12, 48, 10, 48, 
        4, 4, 2, 84, 12, 2, 2, 4, 0, 0, 47, 48, 0, 48, 29, 4, 20, 0, 0, 0, 0, 
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 1, 2, 1, 1, 0, 
        -95, 12, 48, 10, 48, 4, 4, 2, 84, 14, 2, 2, 4, 0, 0, 47, 48, 0, 48, 
        29, 4, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
        0, 3, 2, 1, 2, 1, 1, 0, -95, 12, 48, 10, 48, 4, 4, 2, 84, 16, 2, 2, 
        4, 0, 0, 47, 48, 0, 48, 29, 4, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
        0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 1, 2, 1, 1, 0, -95, 12, 48, 10, 48, 
        4, 4, 2, 84, 18, 2, 2, 4, 0};

}