blob: 858f7f3ac4459ed92cf8bd972e0644c6dc08d764 [file] [log] [blame]
/******************************************************************************
* *
* Copyright (C) 2018 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at:
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*****************************************************************************
* Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore
*/
#include <math.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <assert.h>
#include <ixheaacd_type_def.h>
#include "ixheaacd_bitbuffer.h"
#include "ixheaacd_config.h"
#include "ixheaacd_mps_polyphase.h"
#include "ixheaacd_mps_dec.h"
#include "ixheaacd_mps_interface.h"
#include "ixheaacd_mps_nlc_dec.h"
#include "ixheaacd_mps_huff_tab.h"
ia_huff_cld_nodes_struct ixheaacd_huff_cld_nodes = {
{{{{-1, 1}, {-2, 2}, {-3, 3}, {-4, 4}, {-5, 5}, {-6, 6},
{-7, 7}, {-8, 8}, {-9, 9}, {-10, 10}, {-11, 11}, {-12, 12},
{-13, 13}, {15, 14}, {-14, 16}, {-15, 17}, {-16, 18}, {-17, 19},
{-18, 20}, {-19, 21}, {-20, -21}, {-23, 22}, {-22, 23}, {-24, 24},
{-25, 25}, {27, 26}, {29, 28}, {-30, -31}, {-28, -29}, {-26, -27}}},
{{{-1, 1}, {-2, 2}, {-3, 3}, {-4, 4}, {-5, 5}, {-6, 6},
{-7, 7}, {9, 8}, {-8, 10}, {-9, 11}, {-10, 12}, {-11, 13},
{-12, 14}, {-13, 15}, {-14, 16}, {-15, 17}, {-16, 18}, {-17, 19},
{-18, 20}, {-19, -20}, {-21, 21}, {-22, 22}, {-23, 23}, {25, 24},
{-24, 26}, {-25, 27}, {29, 28}, {-26, -31}, {-29, -30}, {-27, -28}}},
{{{-1, 1}, {-2, 2}, {-3, 3}, {-4, 4}, {-5, 5}, {-6, 6},
{-7, 7}, {9, 8}, {-8, 10}, {-9, 11}, {-10, 12}, {-11, 13},
{-12, 14}, {-13, 15}, {-14, 16}, {-15, 17}, {-16, 18}, {-17, 19},
{-18, 20}, {-19, -20}, {-21, 21}, {-22, 22}, {-23, 23}, {25, 24},
{-24, 26}, {-25, 27}, {29, 28}, {-26, -31}, {-29, -30}, {-27, -28}}}},
{{{{{2, 1},
{-1, -52},
{4, 3},
{-2, 5},
{-51, 6},
{-17, -18},
{8, 7},
{10, 9},
{-3, -36},
{-19, 11},
{-35, -50},
{-34, 12},
{-4, 13},
{-33, 14},
{-20, -49}},
{{2, 1}, {4, 3}, {-86, 5}, {7, 6}, {9, 8}, {-1, -2},
{-85, 10}, {-18, 11}, {-17, 12}, {14, 13}, {-70, 15}, {17, 16},
{-19, -69}, {-84, 18}, {-3, 19}, {21, 20}, {-34, -68}, {-20, 22},
{-35, 23}, {-83, 24}, {-33, 25}, {-4, 26}, {-53, 27}, {-54, -67},
{-36, 28}, {-21, -52}, {-82, 29}, {-5, -50}, {-51, 30}, {-38, 31},
{-37, -49}, {-6, 32}, {-66, 33}, {-65, 34}, {-22, -81}},
{{2, 1}, {4, 3}, {-120, 5}, {7, 6}, {9, 8},
{11, 10}, {-1, 12}, {-18, -119}, {-2, 13}, {15, 14},
{-17, 16}, {-104, 17}, {19, 18}, {-19, 20}, {-103, 21},
{-118, 22}, {24, 23}, {-3, 25}, {27, 26}, {-34, 28},
{-102, 29}, {-20, 30}, {-35, 31}, {33, 32}, {-117, 34},
{-33, 35}, {-88, 36}, {-4, 37}, {-87, 38}, {40, 39},
{-36, -101}, {-86, 41}, {-21, -37}, {-85, -100}, {-52, 42},
{-22, 43}, {-116, 44}, {-50, 45}, {47, 46}, {-5, -51},
{-115, 48}, {-70, 49}, {-84, 50}, {-38, -49}, {-72, -99},
{-53, 51}, {-69, -71}, {-23, 52}, {-6, -67}, {-114, 53},
{-7, 54}, {-66, -68}, {-55, 55}, {57, 56}, {-54, -65},
{-8, -56}, {-82, -83}, {59, 58}, {-39, -40}, {-81, 60},
{-98, 61}, {-97, 62}, {-24, -113}},
{{2, 1}, {4, 3}, {6, 5}, {-154, 7}, {9, 8},
{11, 10}, {13, 12}, {15, 14}, {-18, 16}, {-153, 17},
{-1, -2}, {19, 18}, {-138, 20}, {-17, 21}, {23, 22},
{25, 24}, {-19, -137}, {27, 26}, {-152, 28}, {30, 29},
{-3, -34}, {32, 31}, {34, 33}, {36, 35}, {-136, 37},
{-35, 38}, {-20, 39}, {-122, 40}, {-151, 41}, {-33, 42},
{-121, 43}, {45, 44}, {47, 46}, {-4, 48}, {-36, -120},
{-135, 49}, {51, 50}, {-21, 52}, {54, 53}, {56, 55},
{-50, -150}, {58, 57}, {-51, 59}, {61, 60}, {-119, 62},
{-52, 63}, {-5, 64}, {-37, 65}, {-117, -134}, {-39, -54},
{-22, 66}, {-106, 67}, {-69, -102}, {-132, 68}, {-105, 69},
{-49, 70}, {-149, 71}, {-24, -104}, {73, 72}, {-53, 74},
{-38, -118}, {-103, 75}, {-6, 76}, {-66, -87}, {-133, -147},
{-23, 77}, {-67, 78}, {-68, -86}, {-70, -101}, {-40, -148},
{-116, 79}, {-55, 80}, {-84, -131}, {82, 81}, {-89, -90},
{-7, -25}, {-85, -88}, {-65, 83}, {-72, -146}, {85, 84},
{-9, -71}, {-83, 86}, {-82, 87}, {-8, 88}, {-100, 89},
{-74, -99}, {-73, 90}, {-10, -81}, {-56, 91}, {-57, -98},
{93, 92}, {-58, -114}, {-97, -115}, {95, 94}, {-41, 96},
{-42, 97}, {-26, -129}, {-113, 98}, {-130, -145}}},
{{{-1, 1},
{-52, 2},
{-17, 3},
{5, 4},
{-36, 6},
{-33, 7},
{-2, -18},
{-20, 8},
{10, 9},
{-34, -49},
{-51, 11},
{-35, 12},
{-19, 13},
{-3, 14},
{-4, -50}},
{{2, 1}, {4, 3}, {-86, 5}, {-1, 6}, {-17, 7}, {-70, 8},
{10, 9}, {-18, 11}, {-33, 12}, {-54, 13}, {-2, 14}, {-34, 15},
{-38, 16}, {-49, 17}, {-85, 18}, {-50, 19}, {-69, 20}, {-53, -65},
{-22, 21}, {-66, 22}, {-19, 23}, {-37, 24}, {-35, -81}, {-3, 25},
{-51, 26}, {-68, -84}, {-52, 27}, {29, 28}, {-20, 30}, {-4, -36},
{-83, 31}, {-67, 32}, {-21, 33}, {-5, 34}, {-6, -82}},
{{2, 1}, {4, 3}, {6, 5}, {-120, 7}, {-17, 8},
{-1, -104}, {10, 9}, {12, 11}, {-18, 13}, {-33, -88},
{15, 14}, {17, 16}, {-2, 18}, {-34, 19}, {-72, 20},
{-49, 21}, {-119, 22}, {-50, 23}, {-103, 24}, {-56, 25},
{-65, 26}, {28, 27}, {-40, -87}, {-66, 29}, {-82, 30},
{32, 31}, {-19, -81}, {-71, 33}, {-97, 34}, {-35, -55},
{-24, 35}, {37, 36}, {-3, -98}, {-51, 38}, {-67, 39},
{-39, -118}, {-113, 40}, {-102, 41}, {-86, 42}, {-70, -83},
{44, 43}, {-20, -54}, {-52, 45}, {-36, 46}, {-4, 47},
{-68, 48}, {-85, 49}, {-101, -117}, {-69, 50}, {52, 51},
{-21, -37}, {-53, 53}, {55, 54}, {-5, -100}, {-116, 56},
{-84, 57}, {-38, 58}, {-22, -99}, {-115, 59}, {-6, 60},
{-23, 61}, {-7, 62}, {-114, 0}},
{{2, 1}, {4, 3}, {6, 5}, {-154, 7}, {9, 8},
{-17, 10}, {-138, 11}, {-1, 12}, {14, 13}, {16, 15},
{-33, -122}, {-18, 17}, {19, 18}, {-34, 20}, {-2, 21},
{-106, 22}, {-49, 23}, {25, 24}, {-50, 26}, {-153, 27},
{-90, 28}, {-137, 29}, {-65, 30}, {32, 31}, {-66, 33},
{-121, 34}, {-74, 35}, {-81, 36}, {38, 37}, {-42, 39},
{-82, 40}, {-105, 41}, {-19, -114}, {-58, 42}, {-35, 43},
{-97, 44}, {46, 45}, {-129, 47}, {-26, -89}, {-57, -98},
{-51, 48}, {-3, 49}, {-113, 50}, {-130, 51}, {-152, 52},
{-67, -73}, {-99, -136}, {-145, 53}, {-120, 54}, {-41, 55},
{-83, 56}, {-72, 57}, {-104, 58}, {-115, 59}, {-20, 60},
{62, 61}, {-36, -88}, {-84, 63}, {-52, -56}, {65, 64},
{-4, -87}, {-68, 66}, {-151, 67}, {-100, -135}, {69, 68},
{-69, -119}, {-103, 70}, {-71, 71}, {73, 72}, {-21, 74},
{-85, 75}, {-37, -53}, {-86, 76}, {78, 77}, {-102, -150},
{-5, 79}, {-134, 80}, {-118, 81}, {-54, -117}, {83, 82},
{-38, -70}, {-22, 84}, {-6, 85}, {87, 86}, {-55, 88},
{-101, 89}, {-133, -149}, {-24, -39}, {91, 90}, {-132, 92},
{-23, 93}, {-7, 94}, {-147, -148}, {-116, -131}, {-25, 95},
{-40, 0}, {0, 0}, {0, 0}, {0, 0}}}},
{{{{-1, 1},
{-52, 2},
{-17, 3},
{5, 4},
{-2, -36},
{-18, 6},
{8, 7},
{-51, 9},
{-33, 10},
{-34, 11},
{-20, -35},
{-19, 12},
{-3, 13},
{-49, 14},
{-4, -50}},
{{2, 1}, {-86, 3}, {-1, 4}, {-17, 5}, {7, 6}, {-70, 8},
{-2, -18}, {10, 9}, {12, 11}, {-85, 13}, {-33, 14}, {-34, -54},
{16, 15}, {-69, 17}, {19, 18}, {-50, -53}, {-19, 20}, {-38, 21},
{-35, -49}, {-3, 22}, {24, 23}, {-68, 25}, {-84, 26}, {-65, 27},
{-51, -66}, {-22, -37}, {-52, 28}, {-20, 29}, {-36, 30}, {-81, 31},
{-4, -83}, {-67, 32}, {-21, 33}, {-5, 34}, {-6, -82}},
{{2, 1}, {-120, 3}, {-1, 4}, {6, 5}, {-17, 7},
{-104, 8}, {-18, 9}, {-2, 10}, {12, 11}, {14, 13},
{-119, 15}, {-33, 16}, {-34, -88}, {-103, 17}, {19, 18},
{21, 20}, {23, 22}, {25, 24}, {-19, -72}, {-50, 26},
{-49, 27}, {-87, 28}, {30, 29}, {32, 31}, {-3, -35},
{34, 33}, {-56, 35}, {-65, -66}, {-40, 36}, {-82, -118},
{-71, 37}, {-55, 38}, {-67, -102}, {-51, 39}, {-70, 40},
{42, 41}, {-81, 43}, {-86, 44}, {-52, -97}, {-98, 45},
{-24, -39}, {-20, 46}, {-54, -83}, {-36, 47}, {-85, 48},
{-68, 49}, {-4, 50}, {-69, -113}, {-117, 51}, {-37, -101},
{-53, 52}, {-21, 53}, {55, 54}, {-84, -100}, {-5, 56},
{-116, 57}, {-22, 58}, {-38, -115}, {60, 59}, {-6, -99},
{-23, 61}, {-114, 62}, {-7, -8}},
{{2, 1}, {-154, 3}, {5, 4}, {-1, 6}, {8, 7},
{-17, 9}, {-138, 10}, {-18, 11}, {-2, 12}, {14, 13},
{16, 15}, {-153, 17}, {-34, 18}, {-33, -122}, {20, 19},
{22, 21}, {-137, 23}, {25, 24}, {27, 26}, {-106, 28},
{30, 29}, {-50, 31}, {-19, 32}, {-49, -121}, {34, 33},
{36, 35}, {-35, 37}, {-90, 38}, {-66, 39}, {-3, 40},
{42, 41}, {-65, 43}, {-105, 44}, {46, 45}, {-74, 47},
{-51, 48}, {-82, -152}, {-136, 49}, {-81, 50}, {-42, -89},
{-114, 51}, {53, 52}, {-57, -58}, {-120, 54}, {-98, 55},
{-67, 56}, {-97, 57}, {59, 58}, {-99, 60}, {-73, -104},
{-72, 61}, {-113, 62}, {-20, -83}, {-84, -130}, {-36, 63},
{-26, 64}, {-41, 65}, {-52, -129}, {-87, -88}, {67, 66},
{-115, 68}, {-68, 69}, {-56, -69}, {-4, -100}, {-151, 70},
{-135, 71}, {-103, -119}, {73, 72}, {-71, -145}, {-102, 74},
{76, 75}, {-53, -85}, {-37, 77}, {-21, -86}, {79, 78},
{-5, 80}, {-54, -134}, {-150, 81}, {-118, 82}, {-70, 83},
{-117, 84}, {-22, -38}, {-101, 85}, {-55, 86}, {-149, 87},
{-39, 88}, {-133, 89}, {-6, 90}, {-116, 91}, {-24, 92},
{-7, -132}, {-23, 93}, {-40, 94}, {-131, -148}, {-25, 95},
{-147, 96}, {-146, 97}, {-8, 0}, {0, 0}}},
{{{-1, 1},
{-52, 2},
{4, 3},
{-2, 5},
{-17, 6},
{-18, 7},
{-36, -51},
{9, 8},
{-35, 10},
{-34, 11},
{-19, -33},
{-3, 12},
{-20, 13},
{-50, 14},
{-4, -49}},
{{2, 1}, {-86, 3}, {5, 4}, {-1, 6}, {8, 7}, {-17, -18},
{-2, 9}, {-70, 10}, {-85, 11}, {13, 12}, {-69, 14}, {-34, 15},
{17, 16}, {-19, 18}, {-33, -35}, {-54, 19}, {-53, 20}, {-3, 21},
{-68, 22}, {-84, 23}, {-50, 24}, {-52, 25}, {-51, 26}, {-20, -36},
{-49, 27}, {-38, 28}, {-37, 29}, {-4, -83}, {-67, 30}, {-66, 31},
{-21, 32}, {-22, -65}, {-5, 33}, {-82, 34}, {-6, -81}},
{{2, 1}, {4, 3}, {-120, 5}, {7, 6}, {9, 8},
{-1, 10}, {-18, 11}, {-17, 12}, {-2, -104}, {-119, 13},
{15, 14}, {-103, 16}, {18, 17}, {-34, 19}, {-19, 20},
{22, 21}, {-35, 23}, {-33, 24}, {-88, 25}, {-87, 26},
{28, 27}, {-3, -102}, {-86, 29}, {-52, -118}, {31, 30},
{-50, 32}, {-51, 33}, {-70, 34}, {-36, 35}, {-85, 36},
{-20, 37}, {39, 38}, {-69, -71}, {-72, 40}, {-49, -67},
{42, 41}, {-68, 43}, {-4, -101}, {-53, -117}, {-37, 44},
{-66, 45}, {-55, 46}, {48, 47}, {-54, 49}, {-21, 50},
{-84, -100}, {-56, -65}, {52, 51}, {-82, -83}, {54, 53},
{-5, -116}, {-22, 55}, {-38, 56}, {-39, -40}, {58, 57},
{-81, -115}, {-98, -99}, {-6, 59}, {-23, 60}, {-24, 61},
{-7, -97}, {-114, 62}, {-8, -113}},
{{2, 1}, {4, 3}, {-154, 5}, {7, 6}, {9, 8},
{11, 10}, {-1, 12}, {-18, 13}, {-17, 14}, {-2, -138},
{16, 15}, {-153, 17}, {-137, 18}, {20, 19}, {22, 21},
{-34, 23}, {-19, 24}, {-35, 25}, {27, 26}, {29, 28},
{-121, 30}, {-120, 31}, {-136, 32}, {-33, -122}, {34, 33},
{-152, 35}, {-3, 36}, {-51, 37}, {-52, 38}, {-69, 39},
{-36, 40}, {-50, 41}, {43, 42}, {-20, 44}, {-104, 45},
{-103, 46}, {-87, 47}, {-119, 48}, {-105, 49}, {-86, 50},
{-102, 51}, {-106, 52}, {-49, -135}, {-68, 53}, {55, 54},
{-53, 56}, {-67, -151}, {-4, 57}, {-84, 58}, {-85, 59},
{-66, 60}, {-37, 61}, {-70, 62}, {-54, -88}, {-21, 63},
{65, 64}, {-89, 66}, {-118, 67}, {-72, 68}, {-90, 69},
{-71, 70}, {-65, -134}, {-150, 71}, {-83, 72}, {-5, 73},
{-101, -117}, {-82, 74}, {76, 75}, {-99, 77}, {-38, 78},
{-100, 79}, {-22, 80}, {-73, 81}, {-39, -74}, {83, 82},
{-55, -81}, {-57, 84}, {-133, -149}, {-56, 85}, {-6, 86},
{-98, 87}, {-132, 88}, {-23, 89}, {-114, 90}, {-116, 91},
{-58, -115}, {-24, 92}, {-97, -148}, {-40, -41}, {-7, -42},
{-147, 93}, {95, 94}, {-131, 96}, {-8, -130}, {-25, -113},
{-9, 97}, {-26, -129}, {-146, 98}, {-10, -145}}}},
{{{{-1, 1},
{-52, 2},
{-17, 3},
{5, 4},
{-36, 6},
{-33, 7},
{-2, -18},
{-20, 8},
{10, 9},
{-34, -49},
{-51, 11},
{-35, 12},
{-19, 13},
{-3, 14},
{-4, -50}},
{{2, 1}, {4, 3}, {-86, 5}, {-1, 6}, {-17, 7}, {-70, 8},
{10, 9}, {-18, 11}, {-33, 12}, {-54, 13}, {-2, 14}, {-34, 15},
{-38, 16}, {-49, 17}, {-85, 18}, {-50, 19}, {-69, 20}, {-53, -65},
{-22, 21}, {-66, 22}, {-19, 23}, {-37, 24}, {-35, -81}, {-3, 25},
{-51, 26}, {-68, -84}, {-52, 27}, {29, 28}, {-20, 30}, {-4, -36},
{-83, 31}, {-67, 32}, {-21, 33}, {-5, 34}, {-6, -82}},
{{2, 1}, {4, 3}, {6, 5}, {-120, 7}, {-17, 8},
{-1, -104}, {10, 9}, {12, 11}, {-18, 13}, {-33, -88},
{15, 14}, {17, 16}, {-2, 18}, {-34, 19}, {-72, 20},
{-49, 21}, {-119, 22}, {-50, 23}, {-103, 24}, {-56, 25},
{-65, 26}, {28, 27}, {-40, -87}, {-66, 29}, {-82, 30},
{32, 31}, {-19, -81}, {-71, 33}, {-97, 34}, {-35, -55},
{-24, 35}, {37, 36}, {-3, -98}, {-51, 38}, {-67, 39},
{-39, -118}, {-113, 40}, {-102, 41}, {-86, 42}, {-70, -83},
{44, 43}, {-20, -54}, {-52, 45}, {-36, 46}, {-4, 47},
{-68, 48}, {-85, 49}, {-101, -117}, {-69, 50}, {52, 51},
{-21, -37}, {-53, 53}, {55, 54}, {-5, -100}, {-116, 56},
{-84, 57}, {-38, 58}, {-22, -99}, {-115, 59}, {-6, 60},
{-23, 61}, {-7, 62}, {-114, 0}},
{{2, 1}, {4, 3}, {6, 5}, {-154, 7}, {9, 8},
{-17, 10}, {-138, 11}, {-1, 12}, {14, 13}, {16, 15},
{-33, -122}, {-18, 17}, {19, 18}, {-34, 20}, {-2, 21},
{-106, 22}, {-49, 23}, {25, 24}, {-50, 26}, {-153, 27},
{-90, 28}, {-137, 29}, {-65, 30}, {32, 31}, {-66, 33},
{-121, 34}, {-74, 35}, {-81, 36}, {38, 37}, {-42, 39},
{-82, 40}, {-105, 41}, {-19, -114}, {-58, 42}, {-35, 43},
{-97, 44}, {46, 45}, {-129, 47}, {-26, -89}, {-57, -98},
{-51, 48}, {-3, 49}, {-113, 50}, {-130, 51}, {-152, 52},
{-67, -73}, {-99, -136}, {-145, 53}, {-120, 54}, {-41, 55},
{-83, 56}, {-72, 57}, {-104, 58}, {-115, 59}, {-20, 60},
{62, 61}, {-36, -88}, {-84, 63}, {-52, -56}, {65, 64},
{-4, -87}, {-68, 66}, {-151, 67}, {-100, -135}, {69, 68},
{-69, -119}, {-103, 70}, {-71, 71}, {73, 72}, {-21, 74},
{-85, 75}, {-37, -53}, {-86, 76}, {78, 77}, {-102, -150},
{-5, 79}, {-134, 80}, {-118, 81}, {-54, -117}, {83, 82},
{-38, -70}, {-22, 84}, {-6, 85}, {87, 86}, {-55, 88},
{-101, 89}, {-133, -149}, {-24, -39}, {91, 90}, {-132, 92},
{-23, 93}, {-7, 94}, {-147, -148}, {-116, -131}, {-25, 95},
{-40, 0}, {0, 0}, {0, 0}, {0, 0}}},
{{{-1, 1},
{-52, 2},
{-17, 3},
{5, 4},
{-36, 6},
{-33, 7},
{-2, -18},
{-20, 8},
{10, 9},
{-34, -49},
{-51, 11},
{-35, 12},
{-19, 13},
{-3, 14},
{-4, -50}},
{{2, 1}, {4, 3}, {-86, 5}, {-1, 6}, {-17, 7}, {-70, 8},
{10, 9}, {-18, 11}, {-33, 12}, {-54, 13}, {-2, 14}, {-34, 15},
{-38, 16}, {-49, 17}, {-85, 18}, {-50, 19}, {-69, 20}, {-53, -65},
{-22, 21}, {-66, 22}, {-19, 23}, {-37, 24}, {-35, -81}, {-3, 25},
{-51, 26}, {-68, -84}, {-52, 27}, {29, 28}, {-20, 30}, {-4, -36},
{-83, 31}, {-67, 32}, {-21, 33}, {-5, 34}, {-6, -82}},
{{2, 1}, {4, 3}, {6, 5}, {-120, 7}, {-17, 8},
{-1, -104}, {10, 9}, {12, 11}, {-18, 13}, {-33, -88},
{15, 14}, {17, 16}, {-2, 18}, {-34, 19}, {-72, 20},
{-49, 21}, {-119, 22}, {-50, 23}, {-103, 24}, {-56, 25},
{-65, 26}, {28, 27}, {-40, -87}, {-66, 29}, {-82, 30},
{32, 31}, {-19, -81}, {-71, 33}, {-97, 34}, {-35, -55},
{-24, 35}, {37, 36}, {-3, -98}, {-51, 38}, {-67, 39},
{-39, -118}, {-113, 40}, {-102, 41}, {-86, 42}, {-70, -83},
{44, 43}, {-20, -54}, {-52, 45}, {-36, 46}, {-4, 47},
{-68, 48}, {-85, 49}, {-101, -117}, {-69, 50}, {52, 51},
{-21, -37}, {-53, 53}, {55, 54}, {-5, -100}, {-116, 56},
{-84, 57}, {-38, 58}, {-22, -99}, {-115, 59}, {-6, 60},
{-23, 61}, {-7, 62}, {-114, 0}},
{{2, 1}, {4, 3}, {6, 5}, {-154, 7}, {9, 8},
{-17, 10}, {-138, 11}, {-1, 12}, {14, 13}, {16, 15},
{-33, -122}, {-18, 17}, {19, 18}, {-34, 20}, {-2, 21},
{-106, 22}, {-49, 23}, {25, 24}, {-50, 26}, {-153, 27},
{-90, 28}, {-137, 29}, {-65, 30}, {32, 31}, {-66, 33},
{-121, 34}, {-74, 35}, {-81, 36}, {38, 37}, {-42, 39},
{-82, 40}, {-105, 41}, {-19, -114}, {-58, 42}, {-35, 43},
{-97, 44}, {46, 45}, {-129, 47}, {-26, -89}, {-57, -98},
{-51, 48}, {-3, 49}, {-113, 50}, {-130, 51}, {-152, 52},
{-67, -73}, {-99, -136}, {-145, 53}, {-120, 54}, {-41, 55},
{-83, 56}, {-72, 57}, {-104, 58}, {-115, 59}, {-20, 60},
{62, 61}, {-36, -88}, {-84, 63}, {-52, -56}, {65, 64},
{-4, -87}, {-68, 66}, {-151, 67}, {-100, -135}, {69, 68},
{-69, -119}, {-103, 70}, {-71, 71}, {73, 72}, {-21, 74},
{-85, 75}, {-37, -53}, {-86, 76}, {78, 77}, {-102, -150},
{-5, 79}, {-134, 80}, {-118, 81}, {-54, -117}, {83, 82},
{-38, -70}, {-22, 84}, {-6, 85}, {87, 86}, {-55, 88},
{-101, 89}, {-133, -149}, {-24, -39}, {91, 90}, {-132, 92},
{-23, 93}, {-7, 94}, {-147, -148}, {-116, -131}, {-25, 95},
{-40, 0}, {0, 0}, {0, 0}, {0, 0}}}}}};
ia_huff_icc_nodes_struct ixheaacd_huff_icc_nodes = {
{{{{-1, 1}, {-2, 2}, {-3, 3}, {-4, 4}, {-5, 5}, {-6, 6}, {-7, -8}}},
{{{-1, 1}, {-2, 2}, {-3, 3}, {-4, 4}, {-5, 5}, {-6, 6}, {-7, -8}}},
{{{-1, 1}, {-2, 2}, {-3, 3}, {-4, 4}, {-5, 5}, {-6, 6}, {-7, -8}}}},
{{{{{-1, 1}, {-18, 2}, {-2, -17}},
{{2, 1},
{-1, -52},
{-2, 3},
{5, 4},
{-51, 6},
{-18, 7},
{-17, 8},
{-3, 9},
{-36, 10},
{-19, -50},
{-35, 11},
{-4, 12},
{-34, 13},
{-33, 14},
{-20, -49}},
{{2, 1}, {-86, 3}, {-1, 4}, {6, 5}, {-2, 7}, {-85, 8},
{-18, 9}, {11, 10}, {-17, 12}, {14, 13}, {-70, 15}, {-3, -19},
{-69, 16}, {-84, 17}, {-68, 18}, {-20, -35}, {-34, -83}, {20, 19},
{-4, 21}, {-33, 22}, {-5, 23}, {-53, 24}, {-36, -52}, {-67, 25},
{-21, -82}, {-54, 26}, {-6, 27}, {-51, 28}, {-50, 29}, {-49, 30},
{-37, 31}, {-38, 0}, {0, 0}, {0, 0}, {0, 0}},
{{2, 1}, {4, 3}, {-1, -120}, {6, 5}, {8, 7}, {-18, 9},
{-2, 10}, {12, 11}, {14, 13}, {-17, -119}, {16, 15}, {-103, 17},
{-104, 18}, {-52, 19}, {21, 20}, {-69, 22}, {24, 23}, {-3, -35},
{-19, 25}, {-34, -85}, {27, 26}, {-86, 28}, {-118, 29}, {-37, 30},
{32, 31}, {-102, 33}, {-20, -22}, {-4, -117}, {-87, 34}, {-100, 35},
{-33, -36}, {37, 36}, {-70, -88}, {-101, 38}, {-5, 39}, {-51, -53},
{-50, 40}, {-115, 41}, {-21, 42}, {-116, 43}, {-38, 44}, {-23, -84},
{-49, -99}, {46, 45}, {-6, -114}, {-7, -72}, {-71, 47}, {-8, 0},
{0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0},
{0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0},
{0, 0}, {0, 0}, {0, 0}}},
{{{-1, 1}, {-18, 2}, {-2, -17}},
{{2, 1},
{-1, -52},
{-17, 3},
{5, 4},
{-36, 6},
{-2, 7},
{-18, -33},
{9, 8},
{-20, 10},
{-34, -51},
{-49, 11},
{-35, 12},
{-19, 13},
{-3, 14},
{-4, -50}},
{{2, 1}, {-86, 3}, {-1, 4}, {-17, 5}, {7, 6}, {-70, 8},
{-33, 9}, {-18, 10}, {-2, 11}, {-54, 12}, {-49, 13}, {-38, 14},
{-34, -65}, {-85, 15}, {-50, 16}, {-69, 17}, {-22, 18}, {-53, 19},
{21, 20}, {-19, -81}, {-66, 22}, {-3, -35}, {24, 23}, {-37, 25},
{-68, -84}, {-51, 26}, {28, 27}, {-20, -52}, {30, 29}, {-4, -36},
{-83, 31}, {-67, 32}, {-82, 33}, {-21, 34}, {-5, -6}},
{{2, 1}, {-1, 3}, {-120, 4}, {-17, 5}, {7, 6},
{-104, 8}, {-33, 9}, {11, 10}, {13, 12}, {-49, 14},
{-88, 15}, {-18, -97}, {-65, 16}, {-40, 17}, {-2, -72},
{19, 18}, {-113, 20}, {-34, 21}, {-56, -81}, {23, 22},
{-50, 24}, {-82, -119}, {-24, -103}, {26, 25}, {28, 27},
{30, 29}, {-55, -87}, {-66, 31}, {33, 32}, {-98, 34},
{-35, -67}, {-19, 35}, {-70, 36}, {-71, 37}, {-51, -52},
{-3, 38}, {40, 39}, {-86, -118}, {42, 41}, {-39, -69},
{-54, -83}, {44, 43}, {-102, 45}, {-101, 46}, {-68, -85},
{-36, -53}, {-5, 0}, {0, 0}, {0, 0}, {0, 0},
{0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0},
{0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0},
{0, 0}, {0, 0}, {0, 0}}}},
{{{{-1, 1}, {-18, 2}, {-2, -17}},
{{-52, 1},
{-1, 2},
{4, 3},
{-2, -17},
{-18, 5},
{-36, 6},
{-51, 7},
{9, 8},
{-33, 10},
{-34, 11},
{-35, 12},
{-19, -20},
{-3, 13},
{-49, 14},
{-4, -50}},
{{-1, 1}, {-86, 2}, {4, 3}, {-17, 5}, {-2, 6}, {-18, 7},
{-70, 8}, {-85, 9}, {11, 10}, {13, 12}, {-33, 14}, {16, 15},
{-34, -54}, {-69, 17}, {-38, 18}, {-50, 19}, {-35, -53}, {-49, 20},
{-19, 21}, {-3, 22}, {-65, 23}, {-68, 24}, {-22, 25}, {-81, -84},
{-66, 26}, {-37, 27}, {-20, -51}, {29, 28}, {-52, 30}, {-4, -83},
{-36, 31}, {-67, 32}, {-5, 33}, {-82, 34}, {-21, 0}},
{{-1, 1}, {-120, 2}, {4, 3}, {-17, 5}, {-2, 6},
{8, 7}, {-18, 9}, {-104, 10}, {12, 11}, {14, 13},
{16, 15}, {-119, 17}, {-81, 18}, {20, 19}, {-33, 21},
{-88, 22}, {-103, 23}, {-34, 24}, {-56, 25}, {-72, 26},
{-49, 27}, {-82, 28}, {-50, 29}, {-65, 30}, {-55, -87},
{-19, 31}, {-67, 32}, {-35, -40}, {34, 33}, {-52, -71},
{-66, 35}, {-70, 36}, {38, 37}, {-51, -97}, {-86, -102},
{-3, 39}, {-118, 40}, {42, 41}, {-24, -85}, {-54, 43},
{-39, 44}, {-98, -113}, {-36, -37}, {-20, -69}, {-4, 45},
{-5, 46}, {-21, 0}, {0, 0}, {0, 0}, {0, 0},
{0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0},
{0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0},
{0, 0}, {0, 0}, {0, 0}}},
{{{-1, 1}, {-18, 2}, {-2, -17}},
{{-52, 1},
{-1, 2},
{4, 3},
{-2, 5},
{-17, -18},
{-51, 6},
{-36, 7},
{9, 8},
{-35, 10},
{-3, 11},
{-19, -34},
{-33, 12},
{-50, 13},
{-20, 14},
{-4, -49}},
{{2, 1}, {-86, 3}, {-1, 4}, {6, 5}, {-18, 7}, {-2, -17},
{9, 8}, {-70, 10}, {-69, -85}, {-35, 11}, {13, 12}, {-34, 14},
{-19, 15}, {-53, 16}, {-68, 17}, {-33, 18}, {-3, -52}, {20, 19},
{-54, 21}, {-84, 22}, {-50, 23}, {-20, -51}, {-36, 24}, {26, 25},
{-83, 27}, {-4, -38}, {-49, 28}, {-37, 29}, {-67, 30}, {-5, 31},
{-21, 32}, {-65, -66}, {-82, 33}, {-22, 34}, {-6, -81}},
{{2, 1}, {-1, -120}, {4, 3}, {6, 5}, {-18, 7}, {9, 8},
{-17, 10}, {-2, 11}, {-103, 12}, {-52, 13}, {-35, -104}, {-119, 14},
{16, 15}, {-69, -86}, {18, 17}, {-34, 19}, {-19, 20}, {22, 21},
{-70, 23}, {-87, 24}, {-102, 25}, {-85, 26}, {-33, 27}, {-36, 28},
{-3, 29}, {-88, 30}, {-51, 31}, {-118, 32}, {34, 33}, {-68, 35},
{-53, 36}, {-67, 37}, {-20, 38}, {-101, 39}, {-50, 40}, {42, 41},
{-37, 43}, {-116, 44}, {-117, 45}, {-49, 46}, {-21, -100}, {48, 47},
{-55, -71}, {-4, 49}, {-22, -84}, {-115, 50}, {-66, -82}, {-72, 51},
{-5, -6}, {-54, 52}, {-38, 53}, {-83, 54}, {-40, 55}, {-39, 56},
{-99, 57}, {-23, -56}, {-7, 58}, {-65, -97}, {-8, 0}, {0, 0},
{0, 0}, {0, 0}, {0, 0}}}},
{{{{-1, 1}, {-18, 2}, {-2, -17}},
{{2, 1},
{-1, -52},
{-17, 3},
{5, 4},
{-36, 6},
{-2, 7},
{-18, -33},
{9, 8},
{-20, 10},
{-34, -51},
{-49, 11},
{-35, 12},
{-19, 13},
{-3, 14},
{-4, -50}},
{{2, 1}, {-86, 3}, {-1, 4}, {-17, 5}, {7, 6}, {-70, 8},
{-33, 9}, {-18, 10}, {-2, 11}, {-54, 12}, {-49, 13}, {-38, 14},
{-34, -65}, {-85, 15}, {-50, 16}, {-69, 17}, {-22, 18}, {-53, 19},
{21, 20}, {-19, -81}, {-66, 22}, {-3, -35}, {24, 23}, {-37, 25},
{-68, -84}, {-51, 26}, {28, 27}, {-20, -52}, {30, 29}, {-4, -36},
{-83, 31}, {-67, 32}, {-82, 33}, {-21, 34}, {-5, -6}},
{{2, 1}, {-1, 3}, {-120, 4}, {-17, 5}, {7, 6},
{-104, 8}, {-33, 9}, {11, 10}, {13, 12}, {-49, 14},
{-88, 15}, {-18, -97}, {-65, 16}, {-40, 17}, {-2, -72},
{19, 18}, {-113, 20}, {-34, 21}, {-56, -81}, {23, 22},
{-50, 24}, {-82, -119}, {-24, -103}, {26, 25}, {28, 27},
{30, 29}, {-55, -87}, {-66, 31}, {33, 32}, {-98, 34},
{-35, -67}, {-19, 35}, {-70, 36}, {-71, 37}, {-51, -52},
{-3, 38}, {40, 39}, {-86, -118}, {42, 41}, {-39, -69},
{-54, -83}, {44, 43}, {-102, 45}, {-101, 46}, {-68, -85},
{-36, -53}, {-5, 0}, {0, 0}, {0, 0}, {0, 0},
{0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0},
{0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0},
{0, 0}, {0, 0}, {0, 0}}},
{{{-1, 1}, {-18, 2}, {-2, -17}},
{{2, 1},
{-1, -52},
{-17, 3},
{5, 4},
{-36, 6},
{-2, 7},
{-18, -33},
{9, 8},
{-20, 10},
{-34, -51},
{-49, 11},
{-35, 12},
{-19, 13},
{-3, 14},
{-4, -50}},
{{2, 1}, {-86, 3}, {-1, 4}, {-17, 5}, {7, 6}, {-70, 8},
{-33, 9}, {-18, 10}, {-2, 11}, {-54, 12}, {-49, 13}, {-38, 14},
{-34, -65}, {-85, 15}, {-50, 16}, {-69, 17}, {-22, 18}, {-53, 19},
{21, 20}, {-19, -81}, {-66, 22}, {-3, -35}, {24, 23}, {-37, 25},
{-68, -84}, {-51, 26}, {28, 27}, {-20, -52}, {30, 29}, {-4, -36},
{-83, 31}, {-67, 32}, {-82, 33}, {-21, 34}, {-5, -6}},
{{2, 1}, {-1, 3}, {-120, 4}, {-17, 5}, {7, 6},
{-104, 8}, {-33, 9}, {11, 10}, {13, 12}, {-49, 14},
{-88, 15}, {-18, -97}, {-65, 16}, {-40, 17}, {-2, -72},
{19, 18}, {-113, 20}, {-34, 21}, {-56, -81}, {23, 22},
{-50, 24}, {-82, -119}, {-24, -103}, {26, 25}, {28, 27},
{30, 29}, {-55, -87}, {-66, 31}, {33, 32}, {-98, 34},
{-35, -67}, {-19, 35}, {-70, 36}, {-71, 37}, {-51, -52},
{-3, 38}, {40, 39}, {-86, -118}, {42, 41}, {-39, -69},
{-54, -83}, {44, 43}, {-102, 45}, {-101, 46}, {-68, -85},
{-36, -53}, {-5, 0}, {0, 0}, {0, 0}, {0, 0},
{0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0},
{0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0},
{0, 0}, {0, 0}, {0, 0}}}}}};
ia_huff_ipd_nodes_struct ixheaacd_huff_ipd_nodes = {
{{{-1, 1}, {-8, 2}, {-2, 3}, {5, 4}, {-7, 6}, {-3, -5}, {-4, -6}}},
{{{{-1, 1}, {-8, 2}, {-2, 3}, {5, 4}, {-3, -7}, {-6, 6}, {-4, -5}}},
{{{-1, 1}, {-2, 2}, {-8, 3}, {-3, 4}, {-7, 5}, {-4, 6}, {-5, -6}}},
{{{-1, 1}, {-8, 2}, {-2, 3}, {5, 4}, {-3, -7}, {-6, 6}, {-4, -5}}}},
{{{{{-1, 1}, {-18, 2}, {-17, 0}},
{{-1, 1},
{-36, 2},
{-18, 3},
{-35, 4},
{-52, 5},
{7, 6},
{-34, 8},
{-33, -49},
{-20, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0}},
{{-1, 1}, {3, 2}, {5, 4}, {-86, 6}, {-66, 7}, {9, 8},
{11, 10}, {-18, 12}, {-51, 13}, {-37, -52}, {-69, 14}, {-38, 15},
{-53, 16}, {-35, 17}, {-50, -70}, {-22, -49}, {-33, 18}, {-17, 19},
{-34, -65}, {-81, 20}, {-54, 0}, {0, 0}, {0, 0}, {0, 0},
{0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0},
{0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}},
{{2, 1}, {4, 3}, {-1, 5}, {-69, 6}, {-120, 7}, {-68, 8},
{10, 9}, {12, 11}, {14, 13}, {-52, -54}, {-18, 15}, {-70, 16},
{-67, 17}, {19, 18}, {-17, 20}, {-113, 21}, {23, 22}, {-83, 24},
{-24, 25}, {-103, -104}, {-51, -55}, {27, 26}, {-71, 28}, {-86, 29},
{-35, 30}, {-66, 31}, {-39, -50}, {-82, -98}, {-72, 32}, {-56, -87},
{-34, 33}, {-33, -88}, {-40, -97}, {-65, 34}, {-49, 35}, {-81, 0},
{0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0},
{0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0},
{0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0},
{0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0},
{0, 0}, {0, 0}, {0, 0}}},
{{{-1, 1}, {-18, 2}, {-17, 0}},
{{-1, 1},
{-36, 2},
{-18, 3},
{-35, 4},
{-52, 5},
{7, 6},
{-34, 8},
{-33, -49},
{-20, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0}},
{{-1, 1}, {3, 2}, {5, 4}, {-86, 6}, {-66, 7}, {9, 8},
{11, 10}, {-18, 12}, {-51, 13}, {-37, -52}, {-69, 14}, {-38, 15},
{-53, 16}, {-35, 17}, {-50, -70}, {-22, -49}, {-33, 18}, {-17, 19},
{-34, -65}, {-81, 20}, {-54, 0}, {0, 0}, {0, 0}, {0, 0},
{0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0},
{0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}},
{{2, 1}, {4, 3}, {-1, 5}, {-69, 6}, {-120, 7}, {-68, 8},
{10, 9}, {12, 11}, {14, 13}, {-52, -54}, {-18, 15}, {-70, 16},
{-67, 17}, {19, 18}, {-17, 20}, {-113, 21}, {23, 22}, {-83, 24},
{-24, 25}, {-103, -104}, {-51, -55}, {27, 26}, {-71, 28}, {-86, 29},
{-35, 30}, {-66, 31}, {-39, -50}, {-82, -98}, {-72, 32}, {-56, -87},
{-34, 33}, {-33, -88}, {-40, -97}, {-65, 34}, {-49, 35}, {-81, 0},
{0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0},
{0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0},
{0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0},
{0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0},
{0, 0}, {0, 0}, {0, 0}}}},
{{{{-1, 1}, {-18, 2}, {-17, 0}},
{{-1, 1},
{3, 2},
{-18, 4},
{-52, 5},
{-34, -36},
{-35, 6},
{-17, 7},
{-33, 8},
{-20, 9},
{-49, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0}},
{{-1, 1}, {3, 2}, {-52, 4}, {-86, 5}, {-35, 6}, {-53, 7},
{-70, 8}, {-17, 9}, {-37, 10}, {12, 11}, {-38, -66}, {-18, 13},
{-51, 14}, {16, 15}, {-34, -69}, {18, 17}, {-54, -65}, {-50, 19},
{-33, -49}, {-22, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0},
{0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0},
{0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}},
{{-1, 1}, {-69, 2}, {4, 3}, {-120, 5}, {7, 6}, {-113, 8},
{-68, 9}, {11, 10}, {-17, 12}, {-52, 13}, {-24, 14}, {-18, 15},
{17, 16}, {-104, 18}, {20, 19}, {-54, -70}, {22, 21}, {24, 23},
{-86, -97}, {-103, 25}, {-83, 26}, {-35, 27}, {-34, -98}, {-40, 28},
{-39, -67}, {30, 29}, {-33, -51}, {-87, 31}, {-88, 32}, {-82, 33},
{-55, -81}, {-56, -71}, {-72, 34}, {-50, -66}, {-65, 35}, {-49, 0},
{0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0},
{0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0},
{0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0},
{0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0},
{0, 0}, {0, 0}, {0, 0}}},
{{{-1, 1}, {-18, 2}, {-17, 0}},
{{-1, 1},
{3, 2},
{-18, 4},
{-52, 5},
{-34, -36},
{-35, 6},
{-17, 7},
{-33, 8},
{-20, 9},
{-49, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0}},
{{-1, 1}, {3, 2}, {-52, 4}, {-86, 5}, {-35, 6}, {-53, 7},
{-70, 8}, {-17, 9}, {-37, 10}, {12, 11}, {-38, -66}, {-18, 13},
{-51, 14}, {16, 15}, {-34, -69}, {18, 17}, {-54, -65}, {-50, 19},
{-33, -49}, {-22, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0},
{0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0},
{0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}},
{{-1, 1}, {-69, 2}, {4, 3}, {-120, 5}, {7, 6}, {-113, 8},
{-68, 9}, {11, 10}, {-17, 12}, {-52, 13}, {-24, 14}, {-18, 15},
{17, 16}, {-104, 18}, {20, 19}, {-54, -70}, {22, 21}, {24, 23},
{-86, -97}, {-103, 25}, {-83, 26}, {-35, 27}, {-34, -98}, {-40, 28},
{-39, -67}, {30, 29}, {-33, -51}, {-87, 31}, {-88, 32}, {-82, 33},
{-55, -81}, {-56, -71}, {-72, 34}, {-50, -66}, {-65, 35}, {-49, 0},
{0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0},
{0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0},
{0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0},
{0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0},
{0, 0}, {0, 0}, {0, 0}}}},
{{{{-1, 1}, {-18, 2}, {-17, 0}},
{{-1, 1},
{-36, 2},
{-18, 3},
{-35, 4},
{-52, 5},
{7, 6},
{-34, 8},
{-33, -49},
{-20, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0}},
{{-1, 1}, {3, 2}, {5, 4}, {-86, 6}, {-66, 7}, {9, 8},
{11, 10}, {-18, 12}, {-51, 13}, {-37, -52}, {-69, 14}, {-38, 15},
{-53, 16}, {-35, 17}, {-50, -70}, {-22, -49}, {-33, 18}, {-17, 19},
{-34, -65}, {-81, 20}, {-54, 0}, {0, 0}, {0, 0}, {0, 0},
{0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0},
{0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}},
{{2, 1}, {4, 3}, {-1, 5}, {-69, 6}, {-120, 7}, {-68, 8},
{10, 9}, {12, 11}, {14, 13}, {-52, -54}, {-18, 15}, {-70, 16},
{-67, 17}, {19, 18}, {-17, 20}, {-113, 21}, {23, 22}, {-83, 24},
{-24, 25}, {-103, -104}, {-51, -55}, {27, 26}, {-71, 28}, {-86, 29},
{-35, 30}, {-66, 31}, {-39, -50}, {-82, -98}, {-72, 32}, {-56, -87},
{-34, 33}, {-33, -88}, {-40, -97}, {-65, 34}, {-49, 35}, {-81, 0},
{0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0},
{0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0},
{0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0},
{0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0},
{0, 0}, {0, 0}, {0, 0}}},
{{{-1, 1}, {-18, 2}, {-17, 0}},
{{-1, 1},
{-36, 2},
{-18, 3},
{-35, 4},
{-52, 5},
{7, 6},
{-34, 8},
{-33, -49},
{-20, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0},
{0, 0}},
{{-1, 1}, {3, 2}, {5, 4}, {-86, 6}, {-66, 7}, {9, 8},
{11, 10}, {-18, 12}, {-51, 13}, {-37, -52}, {-69, 14}, {-38, 15},
{-53, 16}, {-35, 17}, {-50, -70}, {-22, -49}, {-33, 18}, {-17, 19},
{-34, -65}, {-81, 20}, {-54, 0}, {0, 0}, {0, 0}, {0, 0},
{0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0},
{0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}},
{{2, 1}, {4, 3}, {-1, 5}, {-69, 6}, {-120, 7}, {-68, 8},
{10, 9}, {12, 11}, {14, 13}, {-52, -54}, {-18, 15}, {-70, 16},
{-67, 17}, {19, 18}, {-17, 20}, {-113, 21}, {23, 22}, {-83, 24},
{-24, 25}, {-103, -104}, {-51, -55}, {27, 26}, {-71, 28}, {-86, 29},
{-35, 30}, {-66, 31}, {-39, -50}, {-82, -98}, {-72, 32}, {-56, -87},
{-34, 33}, {-33, -88}, {-40, -97}, {-65, 34}, {-49, 35}, {-81, 0},
{0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0},
{0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0},
{0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0},
{0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0}, {0, 0},
{0, 0}, {0, 0}, {0, 0}}}}}};
ia_huff_pt0_nodes_struct ixheaacd_huff_part0_nodes = {
{{2, 1}, {4, 3}, {6, 5}, {8, 7}, {10, 9}, {12, 11},
{14, 13}, {-8, 15}, {-9, 16}, {-10, 17}, {-18, 18}, {-17, -19},
{-16, 19}, {-11, -20}, {-15, -21}, {-7, 20}, {-22, 21}, {-12, -14},
{-13, -23}, {23, 22}, {-24, -31}, {-6, 24}, {-25, -26}, {26, 25},
{-5, -27}, {-28, 27}, {-4, 28}, {-29, 29}, {-1, -30}, {-2, -3}},
{{2, 1}, {-5, 3}, {-4, -6}, {-3, 4}, {-2, 5}, {-1, 6}, {-7, -8}},
{{2, 1}, {4, 3}, {6, 5}, {-15, 7}, {-14, -16},
{-13, 8}, {-12, 9}, {-11, 10}, {-10, 11}, {-8, -9},
{-17, 12}, {14, 13}, {-7, 15}, {-18, 16}, {-6, 17},
{-5, 18}, {-4, -19}, {-3, 19}, {-1, 20}, {-2, -20},
{22, 21}, {-21, 23}, {-22, -26}, {-23, 24}, {-24, -25}}};
ia_huff_pt0_nodes_struct ixheaacd_huff_pilot_nodes = {
{{2, 1}, {4, 3}, {6, 5}, {8, 7}, {10, 9}, {12, 11},
{14, 13}, {-8, 15}, {-9, 16}, {-10, 17}, {-18, 18}, {-17, -19},
{-16, 19}, {-11, -20}, {-15, -21}, {-7, 20}, {-22, 21}, {-12, -14},
{-13, -23}, {23, 22}, {-24, -31}, {-6, 24}, {-25, -26}, {26, 25},
{-5, -27}, {-28, 27}, {-4, 28}, {-29, 29}, {-1, -30}, {-2, -3}},
{{2, 1}, {-5, 3}, {-4, -6}, {-3, 4}, {-2, 5}, {-1, 6}, {-7, -8}},
{{2, 1}, {4, 3}, {6, 5}, {-15, 7}, {-14, -16},
{-13, 8}, {-12, 9}, {-11, 10}, {-10, 11}, {-8, -9},
{-17, 12}, {14, 13}, {-7, 15}, {-18, 16}, {-6, 17},
{-5, 18}, {-4, -19}, {-3, 19}, {-1, 20}, {-2, -20},
{22, 21}, {-21, 23}, {-22, -26}, {-23, 24}, {-24, -25}}};
ia_huff_lav_nodes_struct ixheaacd_huff_lav_idx_nodes = {
{{-1, 1}, {-2, 2}, {-3, -4}}};
ia_huff_res_nodes_struct ixheaacd_huff_reshape_nodes = {
{{2, 1}, {4, 3}, {6, 5}, {-33, 7}, {-17, 8}, {-49, 9},
{-34, 10}, {12, 11}, {-18, -35}, {-50, 13}, {15, 14}, {-40, 16},
{-36, 17}, {-19, 18}, {-1, -37}, {-51, 19}, {21, 20}, {-38, -65},
{-2, -39}, {-20, 22}, {-52, 23}, {25, 24}, {-21, 26}, {-66, 27},
{-53, 28}, {-3, 29}, {31, 30}, {-22, 32}, {-54, 33}, {-4, 34},
{-56, 35}, {-24, -67}, {-23, -55}, {-8, -72}, {-5, 36}, {-68, 37},
{-6, 38}, {-7, -69}, {-70, -71}}};
const WORD32 ixheaacd_im_weight_Q28[16][8][31] = {
{
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
},
{
{-3, -574674, -1017796, -1796901, -3154468, -5481590,
-7575016, -10370478, -14006830, -18549081, -23865573, -27607851,
-31193408, -34233661, -36296902, -37030589, -36296902, -34233661,
-31193411, -27607851, -23865573, -18549082, -14006829, -10370478,
-7575017, -5481590, -3154468, -1796901, -1017796, -574674,
-3},
{-3, -538644, -954220, -1685385, -2960885, -5151503,
-7126422, -9769580, -13217236, -17537304, -22610489, -26190951,
-29627877, -32546501, -34529291, -35234746, -34529291, -32546501,
-29627879, -26190951, -22610489, -17537304, -13217236, -9769579,
-7126423, -5151503, -2960885, -1685385, -954220, -538644,
-3},
{-3, -483799, -857386, -1515349, -2665174, -4645760,
-6437353, -8843606, -11995831, -15965514, -20652239, -23974316,
-27173122, -29896409, -31749795, -32409817, -31749798, -29896409,
-27173122, -23974316, -20652241, -15965512, -11995831, -8843606,
-6437353, -4645760, -2665174, -1515349, -857386, -483799,
-3},
{-2, -346044, -613840, -1086712, -1916795, -3357478,
-4672194, -6454555, -8816980, -11833773, -15450674, -18047554,
-20571857, -22737959, -24220523, -24750059, -24220526, -22737954,
-20571860, -18047555, -15450674, -11833774, -8816980, -6454555,
-4672195, -3357477, -1916795, -1086712, -613840, -346044,
-2},
{-1, -211963, -376347, -667357, -1180477, -2077857,
-2904213, -4035616, -5554462, -7524805, -9930552, -11685604,
-13412726, -14910621, -15943947, -16314578, -15943948, -14910621,
-13412728, -11685605, -9930552, -7524805, -5554462, -4035615,
-2904213, -2077857, -1180477, -667357, -376347, -211963,
-1},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{2, 341283, 608313, 1086175, 1945172, 3500199, 4995375,
7149357, 10257166, 14719094, 21095209, 27678683, 35807499, 44718702,
52254129, 55306472, 52254135, 44718696, 35807506, 27678683, 21095208,
14719092, 10257166, 7149356, 4995375, 3500199, 1945172, 1086175,
608313, 341283, 2},
{3, 574839, 1026313, 1838046, 3309837, 6017789,
8678530, 12620302, 18566315, 29617673, 51387069, 78419391,
127027624, 219233261, 378389618, 496423988, 378389858, 219233221,
127027637, 78419391, 51387075, 29617673, 18566315, 12620301,
8678531, 6017788, 3309837, 1838046, 1026313, 574839,
3},
},
{
{-6, -1063142, -1884657, -3332697, -5866780, -10242061,
-14210618, -19556015, -26583487, -35470365, -46010122, -53508848,
-60748872, -66926406, -71137302, -72638110, -71137307, -66926401,
-60748877, -53508853, -46010127, -35470363, -26583487, -19556013,
-14210619, -10242061, -5866781, -3332697, -1884657, -1063142,
-6},
{-6, -996411, -1766700, -3125152, -5504594, -9619093,
-13357671, -18402686, -25050704, -33480939, -43509452, -50662425,
-57581404, -63494074, -67528860, -68967732, -67528865, -63494073,
-57581409, -50662430, -43509452, -33480939, -25050704, -18402684,
-13357672, -9619093, -5504594, -3125152, -1766700, -996411,
-6},
{-5, -894854, -1587094, -2808873, -4951863, -8666114,
-12050168, -16630008, -22687068, -30401449, -39622947, -46227133,
-52634601, -58124037, -61876858, -63216462, -61876863, -58124037,
-52634607, -46227138, -39622951, -30401449, -22687068, -16630007,
-12050168, -8666115, -4951864, -2808873, -1587094, -894854,
-5},
{-4, -639871, -1135692, -2012557, -3555941, -6246900,
-8715879, -12082768, -16579119, -22374143, -29395763, -34483541,
-39463815, -43763084, -46718677, -47776809, -46718677, -43763084,
-39463820, -34483541, -29395763, -22374143, -16579119, -12082768,
-8715880, -6246900, -3555941, -2012557, -1135692, -639871,
-4},
{-2, -391832, -695950, -1234845, -2186633, -3856009,
-5398614, -7518849, -10379694, -14115081, -18711418, -22088179,
-25429852, -28342454, -30359291, -31084156, -30359294, -28342454,
-25429854, -22088179, -18711418, -14115079, -10379693, -7518848,
-5398615, -3856009, -2186633, -1234845, -695950, -391832,
-2},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{4, 630153, 1122569, 2002361, 3579289, 6418784, 9130132,
13002758, 18518363, 26281774, 36854214, 45475090, 56006939, 67371285,
76348185, 79832098, 76348185, 67371278, 56006945, 45475094, 36854219,
26281774, 18518363, 13002756, 9130133, 6418784, 3579289, 2002361,
1122569, 630153, 4},
{6, 1060871, 1892248, 3382951, 6072244, 10973302,
15727473, 22653420, 32821245, 47830061, 75342938, 103710864,
142829663, 191958022, 239742154, 261023300, 239742208, 191958009,
142829663, 103710864, 75342952, 47830061, 32821243, 22653418,
15727475, 10973302, 6072245, 3382952, 1892248, 1060871,
6},
},
{
{-8, -1391582, -2470337, -4379084, -7741644, -13613250,
-19010161, -26384297, -36257343, -49022548, -64547243, -75833181,
-86908862, -96491301, -103089782, -105454184, -103089782, -96491301,
-86908862, -75833172, -64547240, -49022548, -36257343, -26384295,
-19010165, -13613251, -7741645, -4379084, -2470337, -1391582,
-8},
{-7, -1304089, -2315260, -4104938, -7259321, -12772177,
-17844573, -24783192, -34086929, -46138449, -60827308, -71526414,
-82042251, -91152504, -97432108, -99683455, -97432108, -91152495,
-82042260, -71526418, -60827312, -46138449, -34086931, -24783188,
-17844578, -12772178, -7259321, -4104938, -2315260, -1304089,
-7},
{-7, -1170970, -2079253, -3687531, -6524359, -11488788,
-16063810, -22333022, -30758491, -41703962, -55090554, -64871119,
-74507479, -82873672, -88649676, -90722278, -88649676, -82873672,
-74507487, -64871119, -55090554, -41703962, -30758489, -22333018,
-16063811, -11488789, -6524359, -3687531, -2079253, -1170970,
-7},
{-5, -836946, -1486730, -2638556, -4674179, -8248466,
-11555711, -16108121, -22262876, -30319528, -40263731, -47590055,
-54856837, -61203595, -65605308, -67188665, -65605308, -61203586,
-54856842, -47590059, -40263731, -30319526, -22262874, -16108120,
-11555711, -8248465, -4674180, -2638556, -1486730, -836946,
-5},
{-3, -512296, -910384, -1616803, -2867623, -5071172,
-7118298, -9948960, -13799297, -18879453, -25211247, -29918728,
-34622928, -38759529, -41643508, -42683912, -41643508, -38759525,
-34622930, -29918732, -25211249, -18879451, -13799296, -9948958,
-7118299, -5071172, -2867624, -1616803, -910384, -512296,
-3},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{5, 822447, 1463889, 2607236, 4647839, 8293870, 11741041,
16605976, 23414447, 32754663, 45010872, 54604473, 64638836, 73862135,
80529788, 82985438, 80529795, 73862128, 64638850, 54604473, 45010872,
32754663, 23414449, 16605974, 11741042, 8293870, 4647839, 2607237,
1463889, 822447, 5},
{8, 1383579, 2464328, 4394383, 7850862, 14065144,
19987153, 28424960, 40399126, 57162281, 79807987, 98105864,
117845260, 140317143, 157927636, 164697609, 157927650, 140317143,
117845274, 98105858, 79807994, 57162273, 40399123, 28424958,
19987155, 14065143, 7850864, 4394383, 2464328, 1383579,
8},
},
{
{-8, -1509476, -2684086, -4772023, -8480193, -15047650,
-21188892, -29744494, -41501680, -57227068, -77169768, -92246064,
-107526888, -121143312, -130736632, -134217744, -130736624, -121143312,
-107526896, -92246064, -77169768, -57227064, -41501676, -29744492,
-21188894, -15047650, -8480194, -4772023, -2684086, -1509476,
-8},
{-8, -1414379, -2514988, -4471386, -7945941, -14099648,
-19853990, -27870592, -38887072, -53621760, -72308072, -86434552,
-100752688, -113511272, -122500224, -125762016, -122500216, -113511280,
-100752696, -86434560, -72308072, -53621760, -38887072, -27870588,
-19853994, -14099649, -7945942, -4471386, -2514989, -1414379,
-8},
{-7, -1269741, -2257800, -4014131, -7133369, -12657783,
-17823674, -25020474, -34910384, -48138264, -64913664, -77595552,
-90449464, -101903328, -109973032, -112901280, -109973040, -101903328,
-90449472, -77595544, -64913668, -48138264, -34910384, -25020472,
-17823674, -12657783, -7133369, -4014131, -2257800, -1269741,
-7},
{-5, -907074, -1612921, -2867604, -5095918, -9042434,
-12732830, -17874062, -24939188, -34388892, -46372856, -55432508,
-64615056, -72797440, -78562256, -80654120, -78562256, -72797432,
-64615064, -55432508, -46372860, -34388892, -24939190, -17874060,
-12732831, -9042434, -5095918, -2867604, -1612921, -907074,
-5},
{-3, -554944, -986777, -1754386, -3117658, -5532118,
-7789884, -10935266, -15257677, -21038960, -28370692, -33913340,
-39531184, -44537124, -48064012, -49343804, -48064012, -44537124,
-39531188, -33913344, -28370694, -21038958, -15257676, -10935264,
-7789885, -5532117, -3117658, -1754387, -986777, -554944,
-3},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{5, 889081, 1580927, 2810722, 4994834, 8863066, 12480257,
17519508, 24444488, 33706744, 45452992, 54332928, 63333332, 71353408,
77003864, 79054240, 77003872, 71353400, 63333336, 54332932, 45452992,
33706744, 24444488, 17519506, 12480258, 8863066, 4994834, 2810722,
1580927, 889081, 5},
{8, 1494381, 2657245, 4724303, 8395391, 14897174,
20977002, 29447048, 41086664, 56654796, 76398072, 91323608,
106451616, 119931880, 129429263, 132875552, 129429264, 119931878,
106451624, 91323608, 76398072, 56654796, 41086660, 29447048,
20977004, 14897174, 8395392, 4724304, 2657245, 1494381,
8},
},
{
{-8, -1397585, -2489316, -4439078, -7931147, -14210401,
-20195533, -28725381, -40834574, -57795944, -80727760, -99273505,
-119386757, -142482370, -160470890, -167392516, -160470890, -142482357,
-119386757, -99273512, -80727756, -57795944, -40834574, -28725377,
-20195535, -14210400, -7931148, -4439078, -2489316, -1397585,
-8},
{-7, -1309358, -2331922, -4157610, -7425692, -13296383,
-18885003, -26837459, -38101253, -53825212, -74978577, -91990894,
-110257644, -129210650, -144934890, -150951436, -144934903, -129210650,
-110257650, -91990901, -74978584, -53825215, -38101253, -26837455,
-18885005, -13296384, -7425692, -4157610, -2331922, -1309358,
-7},
{-7, -1175217, -2092682, -3729980, -6658434, -11911179,
-16901999, -23987347, -33988896, -47881077, -66434665, -81236418,
-97003508, -111774388, -123343304, -128186650, -123343317, -111774382,
-97003515, -81236418, -66434665, -47881077, -33988892, -23987347,
-16902001, -11911179, -6658434, -3729980, -2092681, -1175217,
-7},
{-5, -839113, -1493583, -2660218, -4742594, -8463942,
-11983129, -16951064, -23906436, -33453557, -45991133, -55813174,
-66094542, -75552455, -82394424, -84915283, -82394417, -75552441,
-66094540, -55813171, -45991139, -33453554, -23906434, -16951065,
-11983130, -8463941, -4742595, -2660218, -1493583, -839113,
-5},
{-3, -513107, -912949, -1624911, -2893228, -5151802,
-7278196, -10264146, -14413252, -20048070, -27340204, -32966174,
-38772409, -44037899, -47801354, -49178242, -47801358, -44037903,
-38772413, -32966178, -27340208, -20048068, -14413250, -10264145,
-7278196, -5151802, -2893229, -1624911, -912949, -513107,
-3},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{5, 820365, 1457305, 2586425, 4582113, 8086863, 11330426,
15796198, 21835646, 29744456, 39510836, 46709319, 53851835, 60092071,
64420974, 65978354, 64420974, 60092067, 53851844, 46709315, 39510836,
29744457, 21835644, 15796195, 11330427, 8086863, 4582113, 2586425,
1457305, 820365, 5},
{8, 1377696, 2445727, 4335584, 7665133, 13479892,
18825424, 26130668, 35913779, 48566398, 63959479, 75153138,
86140901, 95649257, 102197733, 104544436, 102197742, 95649257,
86140901, 75153138, 63959483, 48566398, 35913779, 26130668,
18825426, 13479892, 7665134, 4335585, 2445727, 1377696,
8},
},
{
{-6, -1071630, -1911499, -3417563, -6135014, -11088915,
-15896315, -22903493, -33199122, -48417346, -76625352, -105748897,
-146157663, -197317649, -247522927, -270025194, -247522954, -197317609,
-146157677, -105748904, -76625358, -48417346, -33199122, -22903491,
-15896315, -11088915, -6135014, -3417563, -1911499, -1071630,
-6},
{-6, -1003864, -1790265, -3199659, -5740059, -10362247,
-14836237, -21336047, -30836947, -44762533, -68827345, -93516451,
-126532850, -166393343, -203549915, -219611661, -203549928, -166393329,
-126532890, -93516458, -68827352, -44762536, -30836951, -21336046,
-14836239, -10362246, -5740059, -3199659, -1790265, -1003864,
-6},
{-5, -900861, -1606086, -2868917, -5141593, -9264643,
-13240198, -18987808, -27325830, -39399654, -58130792, -77340471,
-101814498, -129653024, -154062530, -164186529, -154062570, -129653010,
-101814518, -77340471, -58130799, -39399654, -27325828, -18987806,
-13240198, -9264643, -5141593, -2868917, -1606086, -900860,
-5},
{-4, -642936, -1145384, -2043195, -3652724, -6551934,
-9321546, -13279575, -18921457, -26872438, -37720430, -46584838,
-57725379, -69582952, -78984425, -82641451, -78984418, -69582945,
-57725385, -46584841, -37720434, -26872436, -18921457, -13279575,
-9321547, -6551934, -3652725, -2043195, -1145384, -642936,
-4},
{-2, -392979, -699578, -1246312, -2222848, -3970081,
-5624912, -7965246, -11250449, -15776819, -21752506, -26460379,
-31414830, -35997598, -39328571, -40559278, -39328574, -35997598,
-31414833, -26460381, -21752510, -15776818, -11250449, -7965245,
-5624912, -3970080, -2222848, -1246312, -699578, -392979,
-2},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{4, 627208, 1113258, 1972927, 3486308, 6125748, 8548319,
11853214, 16269000, 21963762, 28868936, 33875540, 38778800, 43013413,
45925477, 46968213, 45925482, 43013409, 38778804, 33875542, 28868936,
21963760, 16269001, 11853213, 8548320, 6125748, 3486308, 1972927,
1113257, 627208, 4},
{6, 1052552, 1865940, 3299774, 5809354, 10143366, 14075580,
19373582, 26341294, 35156402, 45615999, 53060599, 60250435, 66386585,
70569986, 72061134, 70569991, 66386585, 60250429, 53060599, 45615999,
35156405, 26341292, 19373582, 14075583, 10143366, 5809355, 3299775,
1865941, 1052552, 6},
},
{
{-3, -580676, -1036778, -1856927, -3344306, -6082086,
-8773675, -12764181, -18791317, -30111286, -52494265, -80589391,
-131965584, -232564048, -416579297, -562298280, -416579510, -232563968,
-131965624, -80589405, -52494275, -30111283, -18791315, -12764179,
-8773676, -6082086, -3344306, -1856927, -1036778, -580676,
-3},
{-3, -543914, -970885, -1738082, -3127514, -5678284,
-8177066, -11864206, -17389757, -27104441, -45909909, -68054278,
-104838298, -165555583, -249179407, -298573540, -249179487, -165555569,
-104838338, -68054292, -45909909, -27104439, -17389757, -11864205,
-8177067, -5678284, -3127513, -1738082, -970885, -543913,
-3},
{-3, -488046, -870816, -1557814, -2799416, -5069822,
-7282155, -10523970, -15327605, -22959079, -37422722, -53115972,
-76430452, -108848624, -144319570, -161563289, -144319637, -108848611,
-76430472, -53115969, -37422729, -22959078, -15327603, -10523969,
-7282156, -5069822, -2799417, -1557814, -870816, -488046,
-3},
{-2, -348211, -620694, -1108379, -1985253, -3573386,
-5101324, -7304187, -10486237, -15063094, -21722298, -28584446,
-37112672, -46532696, -54556959, -57822712, -54556959, -46532689,
-37112682, -28584446, -21722299, -15063095, -10486238, -7304186,
-5101324, -3573386, -1985253, -1108378, -620694, -348211,
-2},
{-1, -212775, -378912, -675466, -1206088, -2158548,
-3064349, -4351732, -6171956, -8706333, -12102898, -14823042,
-17731555, -20482223, -22906153, -23829791, -22906156, -20482223,
-17731555, -14823041, -12102899, -8706332, -6171955, -4351731,
-3064349, -2158548, -1206088, -675466, -378913, -212775,
-1},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{2, 339200, 601729, 1065360, 1879405, 3292792, 4583180,
6333406, 8654669, 11621118, 15180668, 17738214, 20225637, 22361080,
23823154, 24345462, 23823157, 22361078, 20225641, 17738213, 15180668,
11621118, 8654670, 6333406, 4583181, 3292792, 1879405, 1065360,
601729, 339200, 2},
{3, 568956, 1007710, 1779215, 3123785, 5429323, 7504044,
10275511, 13882195, 18389595, 23668008, 27385006, 30947362, 33968646,
36019344, 36748630, 36019347, 33968643, 30947364, 27385006, 23668008,
18389595, 13882195, 10275510, 7504045, 5429323, 3123785, 1779215,
1007710, 568956, 3},
},
{
{0, 0, 0, 0, 1, 1, 2, 3, 4, 7, 13, 21, 39, 91, 367, -858993460,
367, 91, 39, 21, 13, 7, 4, 3, 2, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 1, 2, 3, 4, 7, 11, 18, 29, 54, 102, 145,
102, 54, 29, 18, 11, 7, 4, 3, 2, 1, 1, 0, 0, 0, 0},
{0, 0, 0, 0, 1, 1, 2, 2, 4, 5, 9, 13, 20, 31, 44, 52,
44, 31, 20, 13, 9, 5, 4, 2, 2, 1, 1, 0, 0, 0, 0},