From 908a07c61db978679a11a0f4ee023dc3c6aabffd Mon Sep 17 00:00:00 2001 From: Anton Moberg Date: Thu, 8 Apr 2021 09:50:57 +0200 Subject: Fix formatting Fixed code formatting Change-Id: I12df8da14a7100706f20ffb084ca8477928d0005 --- applications/driver_unit_tests/command_stream.cpp | 34 +- applications/driver_unit_tests/command_stream.hpp | 16 +- applications/driver_unit_tests/conv.cpp | 463 ++++++++++------------ applications/driver_unit_tests/irq.cpp | 18 +- 4 files changed, 232 insertions(+), 299 deletions(-) (limited to 'applications/driver_unit_tests') diff --git a/applications/driver_unit_tests/command_stream.cpp b/applications/driver_unit_tests/command_stream.cpp index 07f7f22..a0b9171 100644 --- a/applications/driver_unit_tests/command_stream.cpp +++ b/applications/driver_unit_tests/command_stream.cpp @@ -56,10 +56,7 @@ bool DataPointer::operator!=(const DataPointer &other) { * PmuConfig ****************************************************************************/ -Pmu::Pmu(ethosu_driver *_drv, const PmuEvents &_config) : - drv(_drv), - config(_config) -{ +Pmu::Pmu(ethosu_driver *_drv, const PmuEvents &_config) : drv(_drv), config(_config) { // Enable PMU block ETHOSU_PMU_Enable_v2(drv); @@ -80,11 +77,11 @@ void Pmu::clear() { void Pmu::print() { printf("PMU={cycleCount=%llu, events=[%" PRIu32 ", %" PRIu32 ", %" PRIu32 ", %" PRIu32 "]}\n", - ETHOSU_PMU_Get_CCNTR_v2(drv), - ETHOSU_PMU_Get_EVCNTR_v2(drv, 0), - ETHOSU_PMU_Get_EVCNTR_v2(drv, 1), - ETHOSU_PMU_Get_EVCNTR_v2(drv, 2), - ETHOSU_PMU_Get_EVCNTR_v2(drv, 3)); + ETHOSU_PMU_Get_CCNTR_v2(drv), + ETHOSU_PMU_Get_EVCNTR_v2(drv, 0), + ETHOSU_PMU_Get_EVCNTR_v2(drv, 1), + ETHOSU_PMU_Get_EVCNTR_v2(drv, 2), + ETHOSU_PMU_Get_EVCNTR_v2(drv, 3)); } uint64_t Pmu::getCycleCount() const { @@ -103,10 +100,7 @@ CommandStream::CommandStream(const DataPointer &_commandStream, const BasePointers &_basePointers, const PmuEvents &_pmuEvents) : drv(ethosu_reserve_driver()), - commandStream(_commandStream), - basePointers(_basePointers), - pmu(drv, _pmuEvents) -{ + commandStream(_commandStream), basePointers(_basePointers), pmu(drv, _pmuEvents) { // Disable clock gating, else the NPU PMU will be clock gated and report too few cycles ethosu_set_clock_and_power(&drv->dev, ETHOSU_CLOCK_Q_DISABLE, ETHOSU_POWER_Q_DISABLE); @@ -124,12 +118,13 @@ int CommandStream::run(size_t repeat) { uint64_t baseAddress[ETHOSU_DRIVER_BASEP_INDEXES]; size_t baseAddressSize[ETHOSU_DRIVER_BASEP_INDEXES]; for (size_t i = 0; i < ETHOSU_DRIVER_BASEP_INDEXES; i++) { - baseAddress[i] = reinterpret_cast(basePointers[i].data); + baseAddress[i] = reinterpret_cast(basePointers[i].data); baseAddressSize[i] = reinterpret_cast(basePointers[i].size); } while (repeat-- > 0) { - int error = ethosu_invoke_v3(drv, commandStream.data, commandStream.size, baseAddress, baseAddressSize, ETHOSU_DRIVER_BASEP_INDEXES); + int error = ethosu_invoke_v3( + drv, commandStream.data, commandStream.size, baseAddress, baseAddressSize, ETHOSU_DRIVER_BASEP_INDEXES); if (error != 0) { printf("Inference failed. error=%d\n", error); @@ -160,18 +155,15 @@ int CommandStream::run(size_t repeat) { return 0; } -DataPointer &CommandStream::getCommandStream() -{ +DataPointer &CommandStream::getCommandStream() { return commandStream; } -BasePointers &CommandStream::getBasePointers() -{ +BasePointers &CommandStream::getBasePointers() { return basePointers; } -Pmu &CommandStream::getPmu() -{ +Pmu &CommandStream::getPmu() { return pmu; } diff --git a/applications/driver_unit_tests/command_stream.hpp b/applications/driver_unit_tests/command_stream.hpp index ec55d5e..4a0b602 100644 --- a/applications/driver_unit_tests/command_stream.hpp +++ b/applications/driver_unit_tests/command_stream.hpp @@ -24,9 +24,9 @@ ****************************************************************************/ #include -#include #include #include +#include /**************************************************************************** * Types @@ -80,7 +80,7 @@ class CommandStream { public: CommandStream(const DataPointer &_commandStream, const BasePointers &_pointers = {}, - const PmuEvents &_pmuEvents = {}); + const PmuEvents &_pmuEvents = {}); virtual ~CommandStream(); int run(size_t repeat = 1); @@ -96,17 +96,13 @@ private: Pmu pmu; }; -#define DRIVER_ACTION_MAGIC() \ - 'C', 'O', 'P', '1', +#define DRIVER_ACTION_MAGIC() 'C', 'O', 'P', '1', -#define DRIVER_ACTION_COMMAND_STREAM(length) \ - 0x02, (length >> 16) & 0xff, length & 0xff, (length >> 8) & 0xff, +#define DRIVER_ACTION_COMMAND_STREAM(length) 0x02, (length >> 16) & 0xff, length & 0xff, (length >> 8) & 0xff, -#define DRIVER_ACTION_NOP() \ - 0x05, 0x00, 0x00, 0x00, +#define DRIVER_ACTION_NOP() 0x05, 0x00, 0x00, 0x00, -#define NPU_OP_STOP(mask) \ - (mask >> 8) && 0xff, mask & 0xff, 0x08, 0x00, +#define NPU_OP_STOP(mask) (mask >> 8) && 0xff, mask & 0xff, 0x08, 0x00, }; // namespace CommandStream }; // namespace EthosU diff --git a/applications/driver_unit_tests/conv.cpp b/applications/driver_unit_tests/conv.cpp index 2385908..aa4a442 100644 --- a/applications/driver_unit_tests/conv.cpp +++ b/applications/driver_unit_tests/conv.cpp @@ -30,7 +30,7 @@ using namespace EthosU::CommandStream; /**************************************************************************** * Data ****************************************************************************/ - +// clang-format off __attribute__((section(".sram.data"), aligned(16))) char commandStream[] = { DRIVER_ACTION_MAGIC() DRIVER_ACTION_NOP() @@ -100,275 +100,226 @@ __attribute__((section(".sram.data"), aligned(16))) char commandStream[] = { 0x11, 0x00, 0x00, 0x00, // cmd0.NPU_OP_DMA_WAIT 0 - 0x02, 0x00, 0x00, 0x00, // cmd0.NPU_OP_CONV 0 - 0x00, 0x00, 0xff, 0xff, // cmd0.NPU_OP_STOP 65535 - -}; +}; // clang-format on __attribute__((section(".sram.data"), aligned(16))) char weightsBiases0[] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0xa4, 0x7b, 0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x22, 0xa4, 0x7b, 0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xf0, 0x00, 0x5c, 0xe6, 0x4d, 0xf9, 0xef, 0x6f, 0xcf, 0x5e, 0x2e, 0xbe, 0x0d, 0xbd, 0x4c, 0xfc, - 0x0b, 0xeb, 0xa9, 0x29, 0xd9, 0x27, 0xe7, 0xa4, 0xf4, 0x63, 0xf3, 0x92, 0x42, 0x32, 0xa2, 0x81, - 0x51, 0x01, 0xc1, 0x00, 0x00, 0xf0, 0xaf, 0xeb, 0xcd, 0xc3, 0xe1, 0x12, 0xb7, 0x44, 0xff, 0x4f, - 0xbb, 0x39, 0x01, 0x08, 0x9e, 0x96, 0x87, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x4c, 0x35, 0x30, - 0x89, 0x1d, 0x00, 0xe0, 0xfc, 0xff, 0xbf, 0x1f, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff -}; + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0xa4, 0x7b, 0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0xa4, 0x7b, + 0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, 0x5c, 0xe6, 0x4d, 0xf9, 0xef, 0x6f, 0xcf, + 0x5e, 0x2e, 0xbe, 0x0d, 0xbd, 0x4c, 0xfc, 0x0b, 0xeb, 0xa9, 0x29, 0xd9, 0x27, 0xe7, 0xa4, 0xf4, 0x63, 0xf3, 0x92, + 0x42, 0x32, 0xa2, 0x81, 0x51, 0x01, 0xc1, 0x00, 0x00, 0xf0, 0xaf, 0xeb, 0xcd, 0xc3, 0xe1, 0x12, 0xb7, 0x44, 0xff, + 0x4f, 0xbb, 0x39, 0x01, 0x08, 0x9e, 0x96, 0x87, 0xff, 0xff, 0xff, 0x0f, 0x00, 0x00, 0x4c, 0x35, 0x30, 0x89, 0x1d, + 0x00, 0xe0, 0xfc, 0xff, 0xbf, 0x1f, 0xfc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}; __attribute__((section(".sram.data"), aligned(16))) char scratch[] = { - 0xac, 0x0a, 0x7f, 0x8c, 0x2f, 0xaa, 0xc4, 0x97, 0x75, 0xa6, 0x16, 0xb7, 0xc0, 0xcc, 0x21, 0xd8, - 0x43, 0xb3, 0x4e, 0x9a, 0xfb, 0x52, 0xa2, 0xdb, 0xc3, 0x76, 0x7d, 0x8b, 0x67, 0x7d, 0xe5, 0xd8, - 0x09, 0xa4, 0x74, 0x6c, 0xd3, 0xde, 0xa1, 0x9f, 0x15, 0x51, 0x59, 0xa5, 0xf2, 0xd6, 0x66, 0x62, - 0x24, 0xb7, 0x05, 0x70, 0x57, 0x3a, 0x2b, 0x4c, 0x46, 0x3c, 0x4b, 0xe4, 0xd8, 0xbd, 0x84, 0x0e, - 0x58, 0x9a, 0xb2, 0xf6, 0x8c, 0xcd, 0xcc, 0x45, 0x3a, 0x39, 0x29, 0x62, 0xc1, 0x42, 0x48, 0x7a, - 0xe6, 0x7d, 0xae, 0xca, 0x27, 0x4a, 0xea, 0xcf, 0x57, 0xa8, 0x65, 0x87, 0xae, 0xc8, 0xdf, 0x7a, - 0x58, 0x5e, 0x6b, 0x91, 0x51, 0x8b, 0x8d, 0x64, 0xa5, 0xe6, 0xf3, 0xec, 0x19, 0x42, 0x09, 0xd6, - 0x4d, 0x6b, 0x2f, 0x12, 0x48, 0x98, 0x5f, 0x56, 0x09, 0x1b, 0x4e, 0x16, 0x94, 0x97, 0xee, 0xa5, - 0x73, 0x08, 0x2d, 0x05, 0xd0, 0x13, 0x45, 0x5e, 0xf3, 0x92, 0x26, 0xd5, 0xc5, 0x1e, 0x08, 0xf5, - 0xfe, 0x47, 0x35, 0xc7, 0x4f, 0x07, 0xee, 0x23, 0xaf, 0x1d, 0xb9, 0xde, 0xc0, 0x09, 0xbe, 0xde, - 0x52, 0xbb, 0x86, 0xfa, 0x63, 0x60, 0x3e, 0x79, 0xd8, 0xa7, 0x95, 0xcc, 0xb1, 0x7c, 0x08, 0xcd, - 0xf3, 0x82, 0x23, 0x76, 0x1d, 0x03, 0x3e, 0x85, 0x93, 0xc2, 0xd0, 0xc7, 0x93, 0x0c, 0xcb, 0xad, - 0x8e, 0x3b, 0x47, 0x1e, 0xa7, 0x61, 0x7b, 0xb8, 0x20, 0xdd, 0xd1, 0xa3, 0xc1, 0x3f, 0xff, 0x94, - 0x09, 0xcd, 0xb2, 0x24, 0xb9, 0x4a, 0x91, 0x89, 0x7f, 0xd2, 0xd5, 0xf1, 0x20, 0xa2, 0x34, 0xc2, - 0x1f, 0xda, 0x97, 0x85, 0xca, 0xc2, 0x1c, 0x1b, 0xf4, 0x48, 0x27, 0x6a, 0x97, 0xe0, 0x3d, 0x79, - 0xa3, 0xea, 0xb9, 0x43, 0xfe, 0x79, 0xb3, 0x2f, 0xcb, 0x2d, 0x34, 0xc6, 0x72, 0xab, 0xa6, 0xbc, - 0xb7, 0x44, 0xc6, 0x74, 0x1c, 0xd8, 0x6f, 0x37, 0x22, 0xe3, 0x84, 0x91, 0x80, 0xa8, 0x9d, 0x22, - 0x80, 0x68, 0xcf, 0x04, 0xa4, 0xe7, 0xfa, 0x52, 0x35, 0x5c, 0x1d, 0x9e, 0x85, 0x17, 0x51, 0x26, - 0x26, 0x4e, 0xb2, 0x9c, 0xe8, 0x0d, 0xea, 0x38, 0xf4, 0x62, 0xef, 0x9d, 0x11, 0xf1, 0xf0, 0x62, - 0x4f, 0x79, 0x99, 0xf1, 0x84, 0xb1, 0x10, 0xe7, 0x69, 0xc6, 0x8b, 0xae, 0x2a, 0xec, 0x2f, 0x73, - 0xba, 0xb5, 0x08, 0x5c, 0x1f, 0xba, 0xf1, 0x9c, 0x78, 0x53, 0xe1, 0x6f, 0x01, 0x51, 0x00, 0xe7, - 0x41, 0xf5, 0x97, 0xb2, 0xe7, 0x6f, 0x6a, 0x19, 0xa9, 0xef, 0x6a, 0x0f, 0x39, 0x68, 0x45, 0xf8, - 0x23, 0x39, 0xb1, 0xaa, 0x66, 0x2f, 0x34, 0xa7, 0x77, 0xec, 0xae, 0xab, 0x0b, 0xbb, 0xc0, 0x2b, - 0xae, 0xa1, 0xdb, 0x35, 0x52, 0xdc, 0xaf, 0x5b, 0x5b, 0x50, 0x01, 0x21, 0x80, 0xf7, 0x2c, 0xc0, - 0x8e, 0xe9, 0xbf, 0x50, 0x63, 0xca, 0x9a, 0x9b, 0x35, 0x26, 0x1c, 0x5d, 0x8c, 0x4b, 0x36, 0x53, - 0x79, 0x6a, 0xf8, 0x91, 0xaa, 0x3f, 0xd6, 0x09, 0x54, 0x30, 0x48, 0x70, 0xcb, 0xc8, 0x5f, 0xa2, - 0x44, 0x11, 0x06, 0xfd, 0x06, 0xb3, 0x7d, 0xf5, 0xc4, 0x9b, 0x1f, 0x1a, 0x2f, 0x44, 0x1d, 0xa7, - 0x7f, 0xf2, 0x78, 0x35, 0xf4, 0x37, 0x93, 0xa2, 0x83, 0x94, 0x4b, 0x29, 0xcc, 0xf3, 0xcb, 0xfe, - 0x64, 0x1b, 0x32, 0xa7, 0xb4, 0x24, 0xf4, 0x94, 0xe8, 0xb7, 0xd7, 0x40, 0x4e, 0x0f, 0x14, 0x6a, - 0x8f, 0x24, 0x60, 0x77, 0x94, 0xc6, 0x85, 0x79, 0xe3, 0xac, 0x92, 0x3e, 0xba, 0x5b, 0x9e, 0x9f, - 0x17, 0x3b, 0xb2, 0x28, 0xcf, 0xaa, 0x87, 0x56, 0x8d, 0x8b, 0x41, 0x1c, 0x75, 0x91, 0xbc, 0xac, - 0x55, 0x37, 0x05, 0xa8, 0x30, 0x22, 0x34, 0x51, 0x31, 0xf5, 0x5f, 0x23, 0x45, 0xa6, 0x41, 0xc7, - 0xa9, 0x38, 0x53, 0x32, 0xa3, 0x16, 0x17, 0xf3, 0xc0, 0xc5, 0x64, 0x5e, 0x5f, 0x5c, 0x9b, 0xa9, - 0xc5, 0x9c, 0x2c, 0xd2, 0x5e, 0x6e, 0x79, 0x03, 0x00, 0xa1, 0xdb, 0x18, 0x71, 0xd7, 0x72, 0x9f, - 0xb2, 0x8e, 0x83, 0xd6, 0x24, 0xf5, 0x74, 0xac, 0xa2, 0xe7, 0x99, 0x18, 0x30, 0x63, 0xd1, 0xf8, - 0x5d, 0x3f, 0xf9, 0xf9, 0x83, 0x49, 0xd1, 0xe0, 0x62, 0x86, 0xf9, 0x77, 0x2a, 0xbe, 0x76, 0x82, - 0xcd, 0x03, 0x0d, 0xfa, 0x70, 0x51, 0x43, 0x0e, 0xe7, 0x27, 0xd7, 0x9a, 0x95, 0x2b, 0x7f, 0x73, - 0xc9, 0x60, 0x40, 0xbd, 0x7f, 0xe9, 0x1d, 0x05, 0x00, 0x36, 0x08, 0x0a, 0x8a, 0xf7, 0x13, 0x71, - 0x72, 0x09, 0x66, 0x48, 0x2b, 0x32, 0xc6, 0xfa, 0xba, 0x33, 0xc5, 0x1e, 0x7f, 0x8d, 0x04, 0x5c, - 0x17, 0xd8, 0xcf, 0x4b, 0xbb, 0xd6, 0x1b, 0x7b, 0x82, 0xf0, 0x64, 0x1e, 0x79, 0x19, 0x4c, 0xb0, - 0x62, 0x58, 0x67, 0x51, 0x3e, 0xde, 0x66, 0xe1, 0xa3, 0x23, 0x0d, 0x6a, 0xde, 0x7a, 0x11, 0xeb, - 0x7b, 0xf8, 0x6b, 0x10, 0xc3, 0xa7, 0x81, 0x37, 0x52, 0xda, 0x45, 0xb1, 0xae, 0x37, 0xb0, 0x90, - 0xe3, 0xca, 0x0c, 0x91, 0x94, 0x5c, 0x77, 0xdd, 0xd1, 0x90, 0xf0, 0x43, 0x32, 0xca, 0x4b, 0x82, - 0x9b, 0x95, 0xf3, 0x85, 0x0e, 0x5b, 0xae, 0xea, 0x29, 0x7c, 0x0c, 0x18, 0x3a, 0xfc, 0xd0, 0xeb, - 0xc1, 0x3a, 0x71, 0x93, 0x24, 0xdc, 0x46, 0x15, 0x0a, 0x5b, 0xe6, 0xed, 0x56, 0x90, 0x18, 0x47, - 0x2b, 0xbc, 0x8d, 0x51, 0x68, 0x33, 0x65, 0x02, 0x0b, 0x68, 0xdb, 0xaa, 0x02, 0xbb, 0xa3, 0xd7, - 0x33, 0x81, 0xbd, 0x21, 0x50, 0x34, 0xad, 0xa5, 0x20, 0x38, 0x61, 0xb7, 0xb6, 0x14, 0x65, 0xd7, - 0x80, 0x84, 0x16, 0x4a, 0x26, 0x5b, 0xc5, 0x43, 0x13, 0xa1, 0xe5, 0x2e, 0xae, 0x94, 0xd7, 0x65, - 0x2a, 0xb6, 0x25, 0x96, 0x73, 0xb5, 0x85, 0x8d, 0xb8, 0xc4, 0x25, 0x05, 0xbc, 0x89, 0x39, 0x2a, - 0xe8, 0x69, 0x35, 0xd4, 0x4d, 0xbe, 0xab, 0x5e, 0x1e, 0xb9, 0x33, 0x01, 0x18, 0x35, 0x7d, 0x25, - 0x7d, 0x62, 0x85, 0xad, 0x02, 0x83, 0xd2, 0x91, 0x03, 0x3e, 0x1f, 0x45, 0x5e, 0x20, 0x28, 0xb4, - 0xe2, 0xac, 0x35, 0xbc, 0x6b, 0x97, 0xd9, 0x49, 0x0d, 0xfd, 0x51, 0xf6, 0x70, 0xf7, 0xeb, 0x6e, - 0x28, 0x49, 0xae, 0x3f, 0x48, 0x35, 0x90, 0xc1, 0x13, 0x0c, 0x7f, 0x93, 0x5f, 0xb2, 0x66, 0x65, - 0x48, 0x0f, 0x90, 0x97, 0x9a, 0xc5, 0x62, 0xe5, 0xc2, 0x19, 0x7f, 0x92, 0xf8, 0x54, 0x90, 0xa3, - 0xb4, 0xe0, 0x1b, 0x39, 0x43, 0xe9, 0x3c, 0xe4, 0xec, 0x5b, 0xe7, 0xf3, 0x3d, 0x1f, 0x18, 0xae, - 0x0e, 0xcf, 0x76, 0x72, 0x60, 0x9f, 0xfe, 0x72, 0x04, 0x3d, 0xae, 0xd8, 0xc3, 0x9f, 0x83, 0xfa, - 0xed, 0x12, 0x11, 0xb3, 0x8b, 0x68, 0xbf, 0x1d, 0xfc, 0xd3, 0x24, 0x4c, 0x56, 0xaa, 0x5b, 0xc4, - 0xcd, 0x0d, 0x55, 0xd0, 0x79, 0x0b, 0x6d, 0x69, 0x6d, 0x66, 0x81, 0x65, 0x4b, 0x93, 0xe9, 0xac, - 0xb8, 0xfa, 0x8f, 0xe1, 0x10, 0xa6, 0xf2, 0x3f, 0x98, 0x4c, 0xce, 0x94, 0x9d, 0x13, 0x2f, 0x50, - 0x95, 0x68, 0xb9, 0xe1, 0x6e, 0x84, 0x25, 0xf7, 0x19, 0xc0, 0x49, 0xb1, 0xd0, 0xa5, 0xa5, 0x96, - 0xbc, 0x43, 0xaa, 0xb9, 0x79, 0x07, 0xe0, 0xa8, 0x76, 0xcb, 0x56, 0x80, 0x75, 0x34, 0x80, 0x88, - 0xbd, 0xe5, 0xc1, 0xf4, 0x53, 0x36, 0x04, 0x3b, 0xa1, 0x8a, 0xdc, 0xa4, 0x68, 0x27, 0x16, 0x65, - 0xa0, 0xc3, 0x81, 0x6c, 0xe4, 0x3c, 0x6a, 0x9e, 0xfb, 0x95, 0x3c, 0x9b, 0xfb, 0xea, 0x90, 0x79, - 0x79, 0xd8, 0xe9, 0x04, 0x46, 0x95, 0x5a, 0x78, 0xd5, 0x01, 0x34, 0x4d, 0x1f, 0xa9, 0x50, 0xb7, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 -}; + 0xac, 0x0a, 0x7f, 0x8c, 0x2f, 0xaa, 0xc4, 0x97, 0x75, 0xa6, 0x16, 0xb7, 0xc0, 0xcc, 0x21, 0xd8, 0x43, 0xb3, 0x4e, + 0x9a, 0xfb, 0x52, 0xa2, 0xdb, 0xc3, 0x76, 0x7d, 0x8b, 0x67, 0x7d, 0xe5, 0xd8, 0x09, 0xa4, 0x74, 0x6c, 0xd3, 0xde, + 0xa1, 0x9f, 0x15, 0x51, 0x59, 0xa5, 0xf2, 0xd6, 0x66, 0x62, 0x24, 0xb7, 0x05, 0x70, 0x57, 0x3a, 0x2b, 0x4c, 0x46, + 0x3c, 0x4b, 0xe4, 0xd8, 0xbd, 0x84, 0x0e, 0x58, 0x9a, 0xb2, 0xf6, 0x8c, 0xcd, 0xcc, 0x45, 0x3a, 0x39, 0x29, 0x62, + 0xc1, 0x42, 0x48, 0x7a, 0xe6, 0x7d, 0xae, 0xca, 0x27, 0x4a, 0xea, 0xcf, 0x57, 0xa8, 0x65, 0x87, 0xae, 0xc8, 0xdf, + 0x7a, 0x58, 0x5e, 0x6b, 0x91, 0x51, 0x8b, 0x8d, 0x64, 0xa5, 0xe6, 0xf3, 0xec, 0x19, 0x42, 0x09, 0xd6, 0x4d, 0x6b, + 0x2f, 0x12, 0x48, 0x98, 0x5f, 0x56, 0x09, 0x1b, 0x4e, 0x16, 0x94, 0x97, 0xee, 0xa5, 0x73, 0x08, 0x2d, 0x05, 0xd0, + 0x13, 0x45, 0x5e, 0xf3, 0x92, 0x26, 0xd5, 0xc5, 0x1e, 0x08, 0xf5, 0xfe, 0x47, 0x35, 0xc7, 0x4f, 0x07, 0xee, 0x23, + 0xaf, 0x1d, 0xb9, 0xde, 0xc0, 0x09, 0xbe, 0xde, 0x52, 0xbb, 0x86, 0xfa, 0x63, 0x60, 0x3e, 0x79, 0xd8, 0xa7, 0x95, + 0xcc, 0xb1, 0x7c, 0x08, 0xcd, 0xf3, 0x82, 0x23, 0x76, 0x1d, 0x03, 0x3e, 0x85, 0x93, 0xc2, 0xd0, 0xc7, 0x93, 0x0c, + 0xcb, 0xad, 0x8e, 0x3b, 0x47, 0x1e, 0xa7, 0x61, 0x7b, 0xb8, 0x20, 0xdd, 0xd1, 0xa3, 0xc1, 0x3f, 0xff, 0x94, 0x09, + 0xcd, 0xb2, 0x24, 0xb9, 0x4a, 0x91, 0x89, 0x7f, 0xd2, 0xd5, 0xf1, 0x20, 0xa2, 0x34, 0xc2, 0x1f, 0xda, 0x97, 0x85, + 0xca, 0xc2, 0x1c, 0x1b, 0xf4, 0x48, 0x27, 0x6a, 0x97, 0xe0, 0x3d, 0x79, 0xa3, 0xea, 0xb9, 0x43, 0xfe, 0x79, 0xb3, + 0x2f, 0xcb, 0x2d, 0x34, 0xc6, 0x72, 0xab, 0xa6, 0xbc, 0xb7, 0x44, 0xc6, 0x74, 0x1c, 0xd8, 0x6f, 0x37, 0x22, 0xe3, + 0x84, 0x91, 0x80, 0xa8, 0x9d, 0x22, 0x80, 0x68, 0xcf, 0x04, 0xa4, 0xe7, 0xfa, 0x52, 0x35, 0x5c, 0x1d, 0x9e, 0x85, + 0x17, 0x51, 0x26, 0x26, 0x4e, 0xb2, 0x9c, 0xe8, 0x0d, 0xea, 0x38, 0xf4, 0x62, 0xef, 0x9d, 0x11, 0xf1, 0xf0, 0x62, + 0x4f, 0x79, 0x99, 0xf1, 0x84, 0xb1, 0x10, 0xe7, 0x69, 0xc6, 0x8b, 0xae, 0x2a, 0xec, 0x2f, 0x73, 0xba, 0xb5, 0x08, + 0x5c, 0x1f, 0xba, 0xf1, 0x9c, 0x78, 0x53, 0xe1, 0x6f, 0x01, 0x51, 0x00, 0xe7, 0x41, 0xf5, 0x97, 0xb2, 0xe7, 0x6f, + 0x6a, 0x19, 0xa9, 0xef, 0x6a, 0x0f, 0x39, 0x68, 0x45, 0xf8, 0x23, 0x39, 0xb1, 0xaa, 0x66, 0x2f, 0x34, 0xa7, 0x77, + 0xec, 0xae, 0xab, 0x0b, 0xbb, 0xc0, 0x2b, 0xae, 0xa1, 0xdb, 0x35, 0x52, 0xdc, 0xaf, 0x5b, 0x5b, 0x50, 0x01, 0x21, + 0x80, 0xf7, 0x2c, 0xc0, 0x8e, 0xe9, 0xbf, 0x50, 0x63, 0xca, 0x9a, 0x9b, 0x35, 0x26, 0x1c, 0x5d, 0x8c, 0x4b, 0x36, + 0x53, 0x79, 0x6a, 0xf8, 0x91, 0xaa, 0x3f, 0xd6, 0x09, 0x54, 0x30, 0x48, 0x70, 0xcb, 0xc8, 0x5f, 0xa2, 0x44, 0x11, + 0x06, 0xfd, 0x06, 0xb3, 0x7d, 0xf5, 0xc4, 0x9b, 0x1f, 0x1a, 0x2f, 0x44, 0x1d, 0xa7, 0x7f, 0xf2, 0x78, 0x35, 0xf4, + 0x37, 0x93, 0xa2, 0x83, 0x94, 0x4b, 0x29, 0xcc, 0xf3, 0xcb, 0xfe, 0x64, 0x1b, 0x32, 0xa7, 0xb4, 0x24, 0xf4, 0x94, + 0xe8, 0xb7, 0xd7, 0x40, 0x4e, 0x0f, 0x14, 0x6a, 0x8f, 0x24, 0x60, 0x77, 0x94, 0xc6, 0x85, 0x79, 0xe3, 0xac, 0x92, + 0x3e, 0xba, 0x5b, 0x9e, 0x9f, 0x17, 0x3b, 0xb2, 0x28, 0xcf, 0xaa, 0x87, 0x56, 0x8d, 0x8b, 0x41, 0x1c, 0x75, 0x91, + 0xbc, 0xac, 0x55, 0x37, 0x05, 0xa8, 0x30, 0x22, 0x34, 0x51, 0x31, 0xf5, 0x5f, 0x23, 0x45, 0xa6, 0x41, 0xc7, 0xa9, + 0x38, 0x53, 0x32, 0xa3, 0x16, 0x17, 0xf3, 0xc0, 0xc5, 0x64, 0x5e, 0x5f, 0x5c, 0x9b, 0xa9, 0xc5, 0x9c, 0x2c, 0xd2, + 0x5e, 0x6e, 0x79, 0x03, 0x00, 0xa1, 0xdb, 0x18, 0x71, 0xd7, 0x72, 0x9f, 0xb2, 0x8e, 0x83, 0xd6, 0x24, 0xf5, 0x74, + 0xac, 0xa2, 0xe7, 0x99, 0x18, 0x30, 0x63, 0xd1, 0xf8, 0x5d, 0x3f, 0xf9, 0xf9, 0x83, 0x49, 0xd1, 0xe0, 0x62, 0x86, + 0xf9, 0x77, 0x2a, 0xbe, 0x76, 0x82, 0xcd, 0x03, 0x0d, 0xfa, 0x70, 0x51, 0x43, 0x0e, 0xe7, 0x27, 0xd7, 0x9a, 0x95, + 0x2b, 0x7f, 0x73, 0xc9, 0x60, 0x40, 0xbd, 0x7f, 0xe9, 0x1d, 0x05, 0x00, 0x36, 0x08, 0x0a, 0x8a, 0xf7, 0x13, 0x71, + 0x72, 0x09, 0x66, 0x48, 0x2b, 0x32, 0xc6, 0xfa, 0xba, 0x33, 0xc5, 0x1e, 0x7f, 0x8d, 0x04, 0x5c, 0x17, 0xd8, 0xcf, + 0x4b, 0xbb, 0xd6, 0x1b, 0x7b, 0x82, 0xf0, 0x64, 0x1e, 0x79, 0x19, 0x4c, 0xb0, 0x62, 0x58, 0x67, 0x51, 0x3e, 0xde, + 0x66, 0xe1, 0xa3, 0x23, 0x0d, 0x6a, 0xde, 0x7a, 0x11, 0xeb, 0x7b, 0xf8, 0x6b, 0x10, 0xc3, 0xa7, 0x81, 0x37, 0x52, + 0xda, 0x45, 0xb1, 0xae, 0x37, 0xb0, 0x90, 0xe3, 0xca, 0x0c, 0x91, 0x94, 0x5c, 0x77, 0xdd, 0xd1, 0x90, 0xf0, 0x43, + 0x32, 0xca, 0x4b, 0x82, 0x9b, 0x95, 0xf3, 0x85, 0x0e, 0x5b, 0xae, 0xea, 0x29, 0x7c, 0x0c, 0x18, 0x3a, 0xfc, 0xd0, + 0xeb, 0xc1, 0x3a, 0x71, 0x93, 0x24, 0xdc, 0x46, 0x15, 0x0a, 0x5b, 0xe6, 0xed, 0x56, 0x90, 0x18, 0x47, 0x2b, 0xbc, + 0x8d, 0x51, 0x68, 0x33, 0x65, 0x02, 0x0b, 0x68, 0xdb, 0xaa, 0x02, 0xbb, 0xa3, 0xd7, 0x33, 0x81, 0xbd, 0x21, 0x50, + 0x34, 0xad, 0xa5, 0x20, 0x38, 0x61, 0xb7, 0xb6, 0x14, 0x65, 0xd7, 0x80, 0x84, 0x16, 0x4a, 0x26, 0x5b, 0xc5, 0x43, + 0x13, 0xa1, 0xe5, 0x2e, 0xae, 0x94, 0xd7, 0x65, 0x2a, 0xb6, 0x25, 0x96, 0x73, 0xb5, 0x85, 0x8d, 0xb8, 0xc4, 0x25, + 0x05, 0xbc, 0x89, 0x39, 0x2a, 0xe8, 0x69, 0x35, 0xd4, 0x4d, 0xbe, 0xab, 0x5e, 0x1e, 0xb9, 0x33, 0x01, 0x18, 0x35, + 0x7d, 0x25, 0x7d, 0x62, 0x85, 0xad, 0x02, 0x83, 0xd2, 0x91, 0x03, 0x3e, 0x1f, 0x45, 0x5e, 0x20, 0x28, 0xb4, 0xe2, + 0xac, 0x35, 0xbc, 0x6b, 0x97, 0xd9, 0x49, 0x0d, 0xfd, 0x51, 0xf6, 0x70, 0xf7, 0xeb, 0x6e, 0x28, 0x49, 0xae, 0x3f, + 0x48, 0x35, 0x90, 0xc1, 0x13, 0x0c, 0x7f, 0x93, 0x5f, 0xb2, 0x66, 0x65, 0x48, 0x0f, 0x90, 0x97, 0x9a, 0xc5, 0x62, + 0xe5, 0xc2, 0x19, 0x7f, 0x92, 0xf8, 0x54, 0x90, 0xa3, 0xb4, 0xe0, 0x1b, 0x39, 0x43, 0xe9, 0x3c, 0xe4, 0xec, 0x5b, + 0xe7, 0xf3, 0x3d, 0x1f, 0x18, 0xae, 0x0e, 0xcf, 0x76, 0x72, 0x60, 0x9f, 0xfe, 0x72, 0x04, 0x3d, 0xae, 0xd8, 0xc3, + 0x9f, 0x83, 0xfa, 0xed, 0x12, 0x11, 0xb3, 0x8b, 0x68, 0xbf, 0x1d, 0xfc, 0xd3, 0x24, 0x4c, 0x56, 0xaa, 0x5b, 0xc4, + 0xcd, 0x0d, 0x55, 0xd0, 0x79, 0x0b, 0x6d, 0x69, 0x6d, 0x66, 0x81, 0x65, 0x4b, 0x93, 0xe9, 0xac, 0xb8, 0xfa, 0x8f, + 0xe1, 0x10, 0xa6, 0xf2, 0x3f, 0x98, 0x4c, 0xce, 0x94, 0x9d, 0x13, 0x2f, 0x50, 0x95, 0x68, 0xb9, 0xe1, 0x6e, 0x84, + 0x25, 0xf7, 0x19, 0xc0, 0x49, 0xb1, 0xd0, 0xa5, 0xa5, 0x96, 0xbc, 0x43, 0xaa, 0xb9, 0x79, 0x07, 0xe0, 0xa8, 0x76, + 0xcb, 0x56, 0x80, 0x75, 0x34, 0x80, 0x88, 0xbd, 0xe5, 0xc1, 0xf4, 0x53, 0x36, 0x04, 0x3b, 0xa1, 0x8a, 0xdc, 0xa4, + 0x68, 0x27, 0x16, 0x65, 0xa0, 0xc3, 0x81, 0x6c, 0xe4, 0x3c, 0x6a, 0x9e, 0xfb, 0x95, 0x3c, 0x9b, 0xfb, 0xea, 0x90, + 0x79, 0x79, 0xd8, 0xe9, 0x04, 0x46, 0x95, 0x5a, 0x78, 0xd5, 0x01, 0x34, 0x4d, 0x1f, 0xa9, 0x50, 0xb7, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; __attribute__((section(".sram.data"), aligned(16))) char fastScratch[] = { - 0xac, 0x0a, 0x7f, 0x8c, 0x2f, 0xaa, 0xc4, 0x97, 0x75, 0xa6, 0x16, 0xb7, 0xc0, 0xcc, 0x21, 0xd8, - 0x43, 0xb3, 0x4e, 0x9a, 0xfb, 0x52, 0xa2, 0xdb, 0xc3, 0x76, 0x7d, 0x8b, 0x67, 0x7d, 0xe5, 0xd8, - 0x09, 0xa4, 0x74, 0x6c, 0xd3, 0xde, 0xa1, 0x9f, 0x15, 0x51, 0x59, 0xa5, 0xf2, 0xd6, 0x66, 0x62, - 0x24, 0xb7, 0x05, 0x70, 0x57, 0x3a, 0x2b, 0x4c, 0x46, 0x3c, 0x4b, 0xe4, 0xd8, 0xbd, 0x84, 0x0e, - 0x58, 0x9a, 0xb2, 0xf6, 0x8c, 0xcd, 0xcc, 0x45, 0x3a, 0x39, 0x29, 0x62, 0xc1, 0x42, 0x48, 0x7a, - 0xe6, 0x7d, 0xae, 0xca, 0x27, 0x4a, 0xea, 0xcf, 0x57, 0xa8, 0x65, 0x87, 0xae, 0xc8, 0xdf, 0x7a, - 0x58, 0x5e, 0x6b, 0x91, 0x51, 0x8b, 0x8d, 0x64, 0xa5, 0xe6, 0xf3, 0xec, 0x19, 0x42, 0x09, 0xd6, - 0x4d, 0x6b, 0x2f, 0x12, 0x48, 0x98, 0x5f, 0x56, 0x09, 0x1b, 0x4e, 0x16, 0x94, 0x97, 0xee, 0xa5, - 0x73, 0x08, 0x2d, 0x05, 0xd0, 0x13, 0x45, 0x5e, 0xf3, 0x92, 0x26, 0xd5, 0xc5, 0x1e, 0x08, 0xf5, - 0xfe, 0x47, 0x35, 0xc7, 0x4f, 0x07, 0xee, 0x23, 0xaf, 0x1d, 0xb9, 0xde, 0xc0, 0x09, 0xbe, 0xde, - 0x52, 0xbb, 0x86, 0xfa, 0x63, 0x60, 0x3e, 0x79, 0xd8, 0xa7, 0x95, 0xcc, 0xb1, 0x7c, 0x08, 0xcd, - 0xf3, 0x82, 0x23, 0x76, 0x1d, 0x03, 0x3e, 0x85, 0x93, 0xc2, 0xd0, 0xc7, 0x93, 0x0c, 0xcb, 0xad, - 0x8e, 0x3b, 0x47, 0x1e, 0xa7, 0x61, 0x7b, 0xb8, 0x20, 0xdd, 0xd1, 0xa3, 0xc1, 0x3f, 0xff, 0x94, - 0x09, 0xcd, 0xb2, 0x24, 0xb9, 0x4a, 0x91, 0x89, 0x7f, 0xd2, 0xd5, 0xf1, 0x20, 0xa2, 0x34, 0xc2, - 0x1f, 0xda, 0x97, 0x85, 0xca, 0xc2, 0x1c, 0x1b, 0xf4, 0x48, 0x27, 0x6a, 0x97, 0xe0, 0x3d, 0x79, - 0xa3, 0xea, 0xb9, 0x43, 0xfe, 0x79, 0xb3, 0x2f, 0xcb, 0x2d, 0x34, 0xc6, 0x72, 0xab, 0xa6, 0xbc, - 0xb7, 0x44, 0xc6, 0x74, 0x1c, 0xd8, 0x6f, 0x37, 0x22, 0xe3, 0x84, 0x91, 0x80, 0xa8, 0x9d, 0x22, - 0x80, 0x68, 0xcf, 0x04, 0xa4, 0xe7, 0xfa, 0x52, 0x35, 0x5c, 0x1d, 0x9e, 0x85, 0x17, 0x51, 0x26, - 0x26, 0x4e, 0xb2, 0x9c, 0xe8, 0x0d, 0xea, 0x38, 0xf4, 0x62, 0xef, 0x9d, 0x11, 0xf1, 0xf0, 0x62, - 0x4f, 0x79, 0x99, 0xf1, 0x84, 0xb1, 0x10, 0xe7, 0x69, 0xc6, 0x8b, 0xae, 0x2a, 0xec, 0x2f, 0x73, - 0xba, 0xb5, 0x08, 0x5c, 0x1f, 0xba, 0xf1, 0x9c, 0x78, 0x53, 0xe1, 0x6f, 0x01, 0x51, 0x00, 0xe7, - 0x41, 0xf5, 0x97, 0xb2, 0xe7, 0x6f, 0x6a, 0x19, 0xa9, 0xef, 0x6a, 0x0f, 0x39, 0x68, 0x45, 0xf8, - 0x23, 0x39, 0xb1, 0xaa, 0x66, 0x2f, 0x34, 0xa7, 0x77, 0xec, 0xae, 0xab, 0x0b, 0xbb, 0xc0, 0x2b, - 0xae, 0xa1, 0xdb, 0x35, 0x52, 0xdc, 0xaf, 0x5b, 0x5b, 0x50, 0x01, 0x21, 0x80, 0xf7, 0x2c, 0xc0, - 0x8e, 0xe9, 0xbf, 0x50, 0x63, 0xca, 0x9a, 0x9b, 0x35, 0x26, 0x1c, 0x5d, 0x8c, 0x4b, 0x36, 0x53, - 0x79, 0x6a, 0xf8, 0x91, 0xaa, 0x3f, 0xd6, 0x09, 0x54, 0x30, 0x48, 0x70, 0xcb, 0xc8, 0x5f, 0xa2, - 0x44, 0x11, 0x06, 0xfd, 0x06, 0xb3, 0x7d, 0xf5, 0xc4, 0x9b, 0x1f, 0x1a, 0x2f, 0x44, 0x1d, 0xa7, - 0x7f, 0xf2, 0x78, 0x35, 0xf4, 0x37, 0x93, 0xa2, 0x83, 0x94, 0x4b, 0x29, 0xcc, 0xf3, 0xcb, 0xfe, - 0x64, 0x1b, 0x32, 0xa7, 0xb4, 0x24, 0xf4, 0x94, 0xe8, 0xb7, 0xd7, 0x40, 0x4e, 0x0f, 0x14, 0x6a, - 0x8f, 0x24, 0x60, 0x77, 0x94, 0xc6, 0x85, 0x79, 0xe3, 0xac, 0x92, 0x3e, 0xba, 0x5b, 0x9e, 0x9f, - 0x17, 0x3b, 0xb2, 0x28, 0xcf, 0xaa, 0x87, 0x56, 0x8d, 0x8b, 0x41, 0x1c, 0x75, 0x91, 0xbc, 0xac, - 0x55, 0x37, 0x05, 0xa8, 0x30, 0x22, 0x34, 0x51, 0x31, 0xf5, 0x5f, 0x23, 0x45, 0xa6, 0x41, 0xc7, - 0xa9, 0x38, 0x53, 0x32, 0xa3, 0x16, 0x17, 0xf3, 0xc0, 0xc5, 0x64, 0x5e, 0x5f, 0x5c, 0x9b, 0xa9, - 0xc5, 0x9c, 0x2c, 0xd2, 0x5e, 0x6e, 0x79, 0x03, 0x00, 0xa1, 0xdb, 0x18, 0x71, 0xd7, 0x72, 0x9f, - 0xb2, 0x8e, 0x83, 0xd6, 0x24, 0xf5, 0x74, 0xac, 0xa2, 0xe7, 0x99, 0x18, 0x30, 0x63, 0xd1, 0xf8, - 0x5d, 0x3f, 0xf9, 0xf9, 0x83, 0x49, 0xd1, 0xe0, 0x62, 0x86, 0xf9, 0x77, 0x2a, 0xbe, 0x76, 0x82, - 0xcd, 0x03, 0x0d, 0xfa, 0x70, 0x51, 0x43, 0x0e, 0xe7, 0x27, 0xd7, 0x9a, 0x95, 0x2b, 0x7f, 0x73, - 0xc9, 0x60, 0x40, 0xbd, 0x7f, 0xe9, 0x1d, 0x05, 0x00, 0x36, 0x08, 0x0a, 0x8a, 0xf7, 0x13, 0x71, - 0x72, 0x09, 0x66, 0x48, 0x2b, 0x32, 0xc6, 0xfa, 0xba, 0x33, 0xc5, 0x1e, 0x7f, 0x8d, 0x04, 0x5c, - 0x17, 0xd8, 0xcf, 0x4b, 0xbb, 0xd6, 0x1b, 0x7b, 0x82, 0xf0, 0x64, 0x1e, 0x79, 0x19, 0x4c, 0xb0, - 0x62, 0x58, 0x67, 0x51, 0x3e, 0xde, 0x66, 0xe1, 0xa3, 0x23, 0x0d, 0x6a, 0xde, 0x7a, 0x11, 0xeb, - 0x7b, 0xf8, 0x6b, 0x10, 0xc3, 0xa7, 0x81, 0x37, 0x52, 0xda, 0x45, 0xb1, 0xae, 0x37, 0xb0, 0x90, - 0xe3, 0xca, 0x0c, 0x91, 0x94, 0x5c, 0x77, 0xdd, 0xd1, 0x90, 0xf0, 0x43, 0x32, 0xca, 0x4b, 0x82, - 0x9b, 0x95, 0xf3, 0x85, 0x0e, 0x5b, 0xae, 0xea, 0x29, 0x7c, 0x0c, 0x18, 0x3a, 0xfc, 0xd0, 0xeb, - 0xc1, 0x3a, 0x71, 0x93, 0x24, 0xdc, 0x46, 0x15, 0x0a, 0x5b, 0xe6, 0xed, 0x56, 0x90, 0x18, 0x47, - 0x2b, 0xbc, 0x8d, 0x51, 0x68, 0x33, 0x65, 0x02, 0x0b, 0x68, 0xdb, 0xaa, 0x02, 0xbb, 0xa3, 0xd7, - 0x33, 0x81, 0xbd, 0x21, 0x50, 0x34, 0xad, 0xa5, 0x20, 0x38, 0x61, 0xb7, 0xb6, 0x14, 0x65, 0xd7, - 0x80, 0x84, 0x16, 0x4a, 0x26, 0x5b, 0xc5, 0x43, 0x13, 0xa1, 0xe5, 0x2e, 0xae, 0x94, 0xd7, 0x65, - 0x2a, 0xb6, 0x25, 0x96, 0x73, 0xb5, 0x85, 0x8d, 0xb8, 0xc4, 0x25, 0x05, 0xbc, 0x89, 0x39, 0x2a, - 0xe8, 0x69, 0x35, 0xd4, 0x4d, 0xbe, 0xab, 0x5e, 0x1e, 0xb9, 0x33, 0x01, 0x18, 0x35, 0x7d, 0x25, - 0x7d, 0x62, 0x85, 0xad, 0x02, 0x83, 0xd2, 0x91, 0x03, 0x3e, 0x1f, 0x45, 0x5e, 0x20, 0x28, 0xb4, - 0xe2, 0xac, 0x35, 0xbc, 0x6b, 0x97, 0xd9, 0x49, 0x0d, 0xfd, 0x51, 0xf6, 0x70, 0xf7, 0xeb, 0x6e, - 0x28, 0x49, 0xae, 0x3f, 0x48, 0x35, 0x90, 0xc1, 0x13, 0x0c, 0x7f, 0x93, 0x5f, 0xb2, 0x66, 0x65, - 0x48, 0x0f, 0x90, 0x97, 0x9a, 0xc5, 0x62, 0xe5, 0xc2, 0x19, 0x7f, 0x92, 0xf8, 0x54, 0x90, 0xa3, - 0xb4, 0xe0, 0x1b, 0x39, 0x43, 0xe9, 0x3c, 0xe4, 0xec, 0x5b, 0xe7, 0xf3, 0x3d, 0x1f, 0x18, 0xae, - 0x0e, 0xcf, 0x76, 0x72, 0x60, 0x9f, 0xfe, 0x72, 0x04, 0x3d, 0xae, 0xd8, 0xc3, 0x9f, 0x83, 0xfa, - 0xed, 0x12, 0x11, 0xb3, 0x8b, 0x68, 0xbf, 0x1d, 0xfc, 0xd3, 0x24, 0x4c, 0x56, 0xaa, 0x5b, 0xc4, - 0xcd, 0x0d, 0x55, 0xd0, 0x79, 0x0b, 0x6d, 0x69, 0x6d, 0x66, 0x81, 0x65, 0x4b, 0x93, 0xe9, 0xac, - 0xb8, 0xfa, 0x8f, 0xe1, 0x10, 0xa6, 0xf2, 0x3f, 0x98, 0x4c, 0xce, 0x94, 0x9d, 0x13, 0x2f, 0x50, - 0x95, 0x68, 0xb9, 0xe1, 0x6e, 0x84, 0x25, 0xf7, 0x19, 0xc0, 0x49, 0xb1, 0xd0, 0xa5, 0xa5, 0x96, - 0xbc, 0x43, 0xaa, 0xb9, 0x79, 0x07, 0xe0, 0xa8, 0x76, 0xcb, 0x56, 0x80, 0x75, 0x34, 0x80, 0x88, - 0xbd, 0xe5, 0xc1, 0xf4, 0x53, 0x36, 0x04, 0x3b, 0xa1, 0x8a, 0xdc, 0xa4, 0x68, 0x27, 0x16, 0x65, - 0xa0, 0xc3, 0x81, 0x6c, 0xe4, 0x3c, 0x6a, 0x9e, 0xfb, 0x95, 0x3c, 0x9b, 0xfb, 0xea, 0x90, 0x79, - 0x79, 0xd8, 0xe9, 0x04, 0x46, 0x95, 0x5a, 0x78, 0xd5, 0x01, 0x34, 0x4d, 0x1f, 0xa9, 0x50, 0xb7, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 -}; + 0xac, 0x0a, 0x7f, 0x8c, 0x2f, 0xaa, 0xc4, 0x97, 0x75, 0xa6, 0x16, 0xb7, 0xc0, 0xcc, 0x21, 0xd8, 0x43, 0xb3, 0x4e, + 0x9a, 0xfb, 0x52, 0xa2, 0xdb, 0xc3, 0x76, 0x7d, 0x8b, 0x67, 0x7d, 0xe5, 0xd8, 0x09, 0xa4, 0x74, 0x6c, 0xd3, 0xde, + 0xa1, 0x9f, 0x15, 0x51, 0x59, 0xa5, 0xf2, 0xd6, 0x66, 0x62, 0x24, 0xb7, 0x05, 0x70, 0x57, 0x3a, 0x2b, 0x4c, 0x46, + 0x3c, 0x4b, 0xe4, 0xd8, 0xbd, 0x84, 0x0e, 0x58, 0x9a, 0xb2, 0xf6, 0x8c, 0xcd, 0xcc, 0x45, 0x3a, 0x39, 0x29, 0x62, + 0xc1, 0x42, 0x48, 0x7a, 0xe6, 0x7d, 0xae, 0xca, 0x27, 0x4a, 0xea, 0xcf, 0x57, 0xa8, 0x65, 0x87, 0xae, 0xc8, 0xdf, + 0x7a, 0x58, 0x5e, 0x6b, 0x91, 0x51, 0x8b, 0x8d, 0x64, 0xa5, 0xe6, 0xf3, 0xec, 0x19, 0x42, 0x09, 0xd6, 0x4d, 0x6b, + 0x2f, 0x12, 0x48, 0x98, 0x5f, 0x56, 0x09, 0x1b, 0x4e, 0x16, 0x94, 0x97, 0xee, 0xa5, 0x73, 0x08, 0x2d, 0x05, 0xd0, + 0x13, 0x45, 0x5e, 0xf3, 0x92, 0x26, 0xd5, 0xc5, 0x1e, 0x08, 0xf5, 0xfe, 0x47, 0x35, 0xc7, 0x4f, 0x07, 0xee, 0x23, + 0xaf, 0x1d, 0xb9, 0xde, 0xc0, 0x09, 0xbe, 0xde, 0x52, 0xbb, 0x86, 0xfa, 0x63, 0x60, 0x3e, 0x79, 0xd8, 0xa7, 0x95, + 0xcc, 0xb1, 0x7c, 0x08, 0xcd, 0xf3, 0x82, 0x23, 0x76, 0x1d, 0x03, 0x3e, 0x85, 0x93, 0xc2, 0xd0, 0xc7, 0x93, 0x0c, + 0xcb, 0xad, 0x8e, 0x3b, 0x47, 0x1e, 0xa7, 0x61, 0x7b, 0xb8, 0x20, 0xdd, 0xd1, 0xa3, 0xc1, 0x3f, 0xff, 0x94, 0x09, + 0xcd, 0xb2, 0x24, 0xb9, 0x4a, 0x91, 0x89, 0x7f, 0xd2, 0xd5, 0xf1, 0x20, 0xa2, 0x34, 0xc2, 0x1f, 0xda, 0x97, 0x85, + 0xca, 0xc2, 0x1c, 0x1b, 0xf4, 0x48, 0x27, 0x6a, 0x97, 0xe0, 0x3d, 0x79, 0xa3, 0xea, 0xb9, 0x43, 0xfe, 0x79, 0xb3, + 0x2f, 0xcb, 0x2d, 0x34, 0xc6, 0x72, 0xab, 0xa6, 0xbc, 0xb7, 0x44, 0xc6, 0x74, 0x1c, 0xd8, 0x6f, 0x37, 0x22, 0xe3, + 0x84, 0x91, 0x80, 0xa8, 0x9d, 0x22, 0x80, 0x68, 0xcf, 0x04, 0xa4, 0xe7, 0xfa, 0x52, 0x35, 0x5c, 0x1d, 0x9e, 0x85, + 0x17, 0x51, 0x26, 0x26, 0x4e, 0xb2, 0x9c, 0xe8, 0x0d, 0xea, 0x38, 0xf4, 0x62, 0xef, 0x9d, 0x11, 0xf1, 0xf0, 0x62, + 0x4f, 0x79, 0x99, 0xf1, 0x84, 0xb1, 0x10, 0xe7, 0x69, 0xc6, 0x8b, 0xae, 0x2a, 0xec, 0x2f, 0x73, 0xba, 0xb5, 0x08, + 0x5c, 0x1f, 0xba, 0xf1, 0x9c, 0x78, 0x53, 0xe1, 0x6f, 0x01, 0x51, 0x00, 0xe7, 0x41, 0xf5, 0x97, 0xb2, 0xe7, 0x6f, + 0x6a, 0x19, 0xa9, 0xef, 0x6a, 0x0f, 0x39, 0x68, 0x45, 0xf8, 0x23, 0x39, 0xb1, 0xaa, 0x66, 0x2f, 0x34, 0xa7, 0x77, + 0xec, 0xae, 0xab, 0x0b, 0xbb, 0xc0, 0x2b, 0xae, 0xa1, 0xdb, 0x35, 0x52, 0xdc, 0xaf, 0x5b, 0x5b, 0x50, 0x01, 0x21, + 0x80, 0xf7, 0x2c, 0xc0, 0x8e, 0xe9, 0xbf, 0x50, 0x63, 0xca, 0x9a, 0x9b, 0x35, 0x26, 0x1c, 0x5d, 0x8c, 0x4b, 0x36, + 0x53, 0x79, 0x6a, 0xf8, 0x91, 0xaa, 0x3f, 0xd6, 0x09, 0x54, 0x30, 0x48, 0x70, 0xcb, 0xc8, 0x5f, 0xa2, 0x44, 0x11, + 0x06, 0xfd, 0x06, 0xb3, 0x7d, 0xf5, 0xc4, 0x9b, 0x1f, 0x1a, 0x2f, 0x44, 0x1d, 0xa7, 0x7f, 0xf2, 0x78, 0x35, 0xf4, + 0x37, 0x93, 0xa2, 0x83, 0x94, 0x4b, 0x29, 0xcc, 0xf3, 0xcb, 0xfe, 0x64, 0x1b, 0x32, 0xa7, 0xb4, 0x24, 0xf4, 0x94, + 0xe8, 0xb7, 0xd7, 0x40, 0x4e, 0x0f, 0x14, 0x6a, 0x8f, 0x24, 0x60, 0x77, 0x94, 0xc6, 0x85, 0x79, 0xe3, 0xac, 0x92, + 0x3e, 0xba, 0x5b, 0x9e, 0x9f, 0x17, 0x3b, 0xb2, 0x28, 0xcf, 0xaa, 0x87, 0x56, 0x8d, 0x8b, 0x41, 0x1c, 0x75, 0x91, + 0xbc, 0xac, 0x55, 0x37, 0x05, 0xa8, 0x30, 0x22, 0x34, 0x51, 0x31, 0xf5, 0x5f, 0x23, 0x45, 0xa6, 0x41, 0xc7, 0xa9, + 0x38, 0x53, 0x32, 0xa3, 0x16, 0x17, 0xf3, 0xc0, 0xc5, 0x64, 0x5e, 0x5f, 0x5c, 0x9b, 0xa9, 0xc5, 0x9c, 0x2c, 0xd2, + 0x5e, 0x6e, 0x79, 0x03, 0x00, 0xa1, 0xdb, 0x18, 0x71, 0xd7, 0x72, 0x9f, 0xb2, 0x8e, 0x83, 0xd6, 0x24, 0xf5, 0x74, + 0xac, 0xa2, 0xe7, 0x99, 0x18, 0x30, 0x63, 0xd1, 0xf8, 0x5d, 0x3f, 0xf9, 0xf9, 0x83, 0x49, 0xd1, 0xe0, 0x62, 0x86, + 0xf9, 0x77, 0x2a, 0xbe, 0x76, 0x82, 0xcd, 0x03, 0x0d, 0xfa, 0x70, 0x51, 0x43, 0x0e, 0xe7, 0x27, 0xd7, 0x9a, 0x95, + 0x2b, 0x7f, 0x73, 0xc9, 0x60, 0x40, 0xbd, 0x7f, 0xe9, 0x1d, 0x05, 0x00, 0x36, 0x08, 0x0a, 0x8a, 0xf7, 0x13, 0x71, + 0x72, 0x09, 0x66, 0x48, 0x2b, 0x32, 0xc6, 0xfa, 0xba, 0x33, 0xc5, 0x1e, 0x7f, 0x8d, 0x04, 0x5c, 0x17, 0xd8, 0xcf, + 0x4b, 0xbb, 0xd6, 0x1b, 0x7b, 0x82, 0xf0, 0x64, 0x1e, 0x79, 0x19, 0x4c, 0xb0, 0x62, 0x58, 0x67, 0x51, 0x3e, 0xde, + 0x66, 0xe1, 0xa3, 0x23, 0x0d, 0x6a, 0xde, 0x7a, 0x11, 0xeb, 0x7b, 0xf8, 0x6b, 0x10, 0xc3, 0xa7, 0x81, 0x37, 0x52, + 0xda, 0x45, 0xb1, 0xae, 0x37, 0xb0, 0x90, 0xe3, 0xca, 0x0c, 0x91, 0x94, 0x5c, 0x77, 0xdd, 0xd1, 0x90, 0xf0, 0x43, + 0x32, 0xca, 0x4b, 0x82, 0x9b, 0x95, 0xf3, 0x85, 0x0e, 0x5b, 0xae, 0xea, 0x29, 0x7c, 0x0c, 0x18, 0x3a, 0xfc, 0xd0, + 0xeb, 0xc1, 0x3a, 0x71, 0x93, 0x24, 0xdc, 0x46, 0x15, 0x0a, 0x5b, 0xe6, 0xed, 0x56, 0x90, 0x18, 0x47, 0x2b, 0xbc, + 0x8d, 0x51, 0x68, 0x33, 0x65, 0x02, 0x0b, 0x68, 0xdb, 0xaa, 0x02, 0xbb, 0xa3, 0xd7, 0x33, 0x81, 0xbd, 0x21, 0x50, + 0x34, 0xad, 0xa5, 0x20, 0x38, 0x61, 0xb7, 0xb6, 0x14, 0x65, 0xd7, 0x80, 0x84, 0x16, 0x4a, 0x26, 0x5b, 0xc5, 0x43, + 0x13, 0xa1, 0xe5, 0x2e, 0xae, 0x94, 0xd7, 0x65, 0x2a, 0xb6, 0x25, 0x96, 0x73, 0xb5, 0x85, 0x8d, 0xb8, 0xc4, 0x25, + 0x05, 0xbc, 0x89, 0x39, 0x2a, 0xe8, 0x69, 0x35, 0xd4, 0x4d, 0xbe, 0xab, 0x5e, 0x1e, 0xb9, 0x33, 0x01, 0x18, 0x35, + 0x7d, 0x25, 0x7d, 0x62, 0x85, 0xad, 0x02, 0x83, 0xd2, 0x91, 0x03, 0x3e, 0x1f, 0x45, 0x5e, 0x20, 0x28, 0xb4, 0xe2, + 0xac, 0x35, 0xbc, 0x6b, 0x97, 0xd9, 0x49, 0x0d, 0xfd, 0x51, 0xf6, 0x70, 0xf7, 0xeb, 0x6e, 0x28, 0x49, 0xae, 0x3f, + 0x48, 0x35, 0x90, 0xc1, 0x13, 0x0c, 0x7f, 0x93, 0x5f, 0xb2, 0x66, 0x65, 0x48, 0x0f, 0x90, 0x97, 0x9a, 0xc5, 0x62, + 0xe5, 0xc2, 0x19, 0x7f, 0x92, 0xf8, 0x54, 0x90, 0xa3, 0xb4, 0xe0, 0x1b, 0x39, 0x43, 0xe9, 0x3c, 0xe4, 0xec, 0x5b, + 0xe7, 0xf3, 0x3d, 0x1f, 0x18, 0xae, 0x0e, 0xcf, 0x76, 0x72, 0x60, 0x9f, 0xfe, 0x72, 0x04, 0x3d, 0xae, 0xd8, 0xc3, + 0x9f, 0x83, 0xfa, 0xed, 0x12, 0x11, 0xb3, 0x8b, 0x68, 0xbf, 0x1d, 0xfc, 0xd3, 0x24, 0x4c, 0x56, 0xaa, 0x5b, 0xc4, + 0xcd, 0x0d, 0x55, 0xd0, 0x79, 0x0b, 0x6d, 0x69, 0x6d, 0x66, 0x81, 0x65, 0x4b, 0x93, 0xe9, 0xac, 0xb8, 0xfa, 0x8f, + 0xe1, 0x10, 0xa6, 0xf2, 0x3f, 0x98, 0x4c, 0xce, 0x94, 0x9d, 0x13, 0x2f, 0x50, 0x95, 0x68, 0xb9, 0xe1, 0x6e, 0x84, + 0x25, 0xf7, 0x19, 0xc0, 0x49, 0xb1, 0xd0, 0xa5, 0xa5, 0x96, 0xbc, 0x43, 0xaa, 0xb9, 0x79, 0x07, 0xe0, 0xa8, 0x76, + 0xcb, 0x56, 0x80, 0x75, 0x34, 0x80, 0x88, 0xbd, 0xe5, 0xc1, 0xf4, 0x53, 0x36, 0x04, 0x3b, 0xa1, 0x8a, 0xdc, 0xa4, + 0x68, 0x27, 0x16, 0x65, 0xa0, 0xc3, 0x81, 0x6c, 0xe4, 0x3c, 0x6a, 0x9e, 0xfb, 0x95, 0x3c, 0x9b, 0xfb, 0xea, 0x90, + 0x79, 0x79, 0xd8, 0xe9, 0x04, 0x46, 0x95, 0x5a, 0x78, 0xd5, 0x01, 0x34, 0x4d, 0x1f, 0xa9, 0x50, 0xb7, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; char input0[] = { - 0xac, 0x0a, 0x7f, 0x8c, 0x2f, 0xaa, 0xc4, 0x97, 0x75, 0xa6, 0x16, 0xb7, 0xc0, 0xcc, 0x21, 0xd8, - 0x43, 0xb3, 0x4e, 0x9a, 0xfb, 0x52, 0xa2, 0xdb, 0xc3, 0x76, 0x7d, 0x8b, 0x67, 0x7d, 0xe5, 0xd8, - 0x09, 0xa4, 0x74, 0x6c, 0xd3, 0xde, 0xa1, 0x9f, 0x15, 0x51, 0x59, 0xa5, 0xf2, 0xd6, 0x66, 0x62, - 0x24, 0xb7, 0x05, 0x70, 0x57, 0x3a, 0x2b, 0x4c, 0x46, 0x3c, 0x4b, 0xe4, 0xd8, 0xbd, 0x84, 0x0e, - 0x58, 0x9a, 0xb2, 0xf6, 0x8c, 0xcd, 0xcc, 0x45, 0x3a, 0x39, 0x29, 0x62, 0xc1, 0x42, 0x48, 0x7a, - 0xe6, 0x7d, 0xae, 0xca, 0x27, 0x4a, 0xea, 0xcf, 0x57, 0xa8, 0x65, 0x87, 0xae, 0xc8, 0xdf, 0x7a, - 0x58, 0x5e, 0x6b, 0x91, 0x51, 0x8b, 0x8d, 0x64, 0xa5, 0xe6, 0xf3, 0xec, 0x19, 0x42, 0x09, 0xd6, - 0x4d, 0x6b, 0x2f, 0x12, 0x48, 0x98, 0x5f, 0x56, 0x09, 0x1b, 0x4e, 0x16, 0x94, 0x97, 0xee, 0xa5, - 0x73, 0x08, 0x2d, 0x05, 0xd0, 0x13, 0x45, 0x5e, 0xf3, 0x92, 0x26, 0xd5, 0xc5, 0x1e, 0x08, 0xf5, - 0xfe, 0x47, 0x35, 0xc7, 0x4f, 0x07, 0xee, 0x23, 0xaf, 0x1d, 0xb9, 0xde, 0xc0, 0x09, 0xbe, 0xde, - 0x52, 0xbb, 0x86, 0xfa, 0x63, 0x60, 0x3e, 0x79, 0xd8, 0xa7, 0x95, 0xcc, 0xb1, 0x7c, 0x08, 0xcd, - 0xf3, 0x82, 0x23, 0x76, 0x1d, 0x03, 0x3e, 0x85, 0x93, 0xc2, 0xd0, 0xc7, 0x93, 0x0c, 0xcb, 0xad, - 0x8e, 0x3b, 0x47, 0x1e, 0xa7, 0x61, 0x7b, 0xb8, 0x20, 0xdd, 0xd1, 0xa3, 0xc1, 0x3f, 0xff, 0x94, - 0x09, 0xcd, 0xb2, 0x24, 0xb9, 0x4a, 0x91, 0x89, 0x7f, 0xd2, 0xd5, 0xf1, 0x20, 0xa2, 0x34, 0xc2, - 0x1f, 0xda, 0x97, 0x85, 0xca, 0xc2, 0x1c, 0x1b, 0xf4, 0x48, 0x27, 0x6a, 0x97, 0xe0, 0x3d, 0x79, - 0xa3, 0xea, 0xb9, 0x43, 0xfe, 0x79, 0xb3, 0x2f, 0xcb, 0x2d, 0x34, 0xc6, 0x72, 0xab, 0xa6, 0xbc, - 0xb7, 0x44, 0xc6, 0x74, 0x1c, 0xd8, 0x6f, 0x37, 0x22, 0xe3, 0x84, 0x91, 0x80, 0xa8, 0x9d, 0x22, - 0x80, 0x68, 0xcf, 0x04, 0xa4, 0xe7, 0xfa, 0x52, 0x35, 0x5c, 0x1d, 0x9e, 0x85, 0x17, 0x51, 0x26, - 0x26, 0x4e, 0xb2, 0x9c, 0xe8, 0x0d, 0xea, 0x38, 0xf4, 0x62, 0xef, 0x9d, 0x11, 0xf1, 0xf0, 0x62, - 0x4f, 0x79, 0x99, 0xf1, 0x84, 0xb1, 0x10, 0xe7, 0x69, 0xc6, 0x8b, 0xae, 0x2a, 0xec, 0x2f, 0x73, - 0xba, 0xb5, 0x08, 0x5c, 0x1f, 0xba, 0xf1, 0x9c, 0x78, 0x53, 0xe1, 0x6f, 0x01, 0x51, 0x00, 0xe7, - 0x41, 0xf5, 0x97, 0xb2, 0xe7, 0x6f, 0x6a, 0x19, 0xa9, 0xef, 0x6a, 0x0f, 0x39, 0x68, 0x45, 0xf8, - 0x23, 0x39, 0xb1, 0xaa, 0x66, 0x2f, 0x34, 0xa7, 0x77, 0xec, 0xae, 0xab, 0x0b, 0xbb, 0xc0, 0x2b, - 0xae, 0xa1, 0xdb, 0x35, 0x52, 0xdc, 0xaf, 0x5b, 0x5b, 0x50, 0x01, 0x21, 0x80, 0xf7, 0x2c, 0xc0, - 0x8e, 0xe9, 0xbf, 0x50, 0x63, 0xca, 0x9a, 0x9b, 0x35, 0x26, 0x1c, 0x5d, 0x8c, 0x4b, 0x36, 0x53, - 0x79, 0x6a, 0xf8, 0x91, 0xaa, 0x3f, 0xd6, 0x09, 0x54, 0x30, 0x48, 0x70, 0xcb, 0xc8, 0x5f, 0xa2, - 0x44, 0x11, 0x06, 0xfd, 0x06, 0xb3, 0x7d, 0xf5, 0xc4, 0x9b, 0x1f, 0x1a, 0x2f, 0x44, 0x1d, 0xa7, - 0x7f, 0xf2, 0x78, 0x35, 0xf4, 0x37, 0x93, 0xa2, 0x83, 0x94, 0x4b, 0x29, 0xcc, 0xf3, 0xcb, 0xfe, - 0x64, 0x1b, 0x32, 0xa7, 0xb4, 0x24, 0xf4, 0x94, 0xe8, 0xb7, 0xd7, 0x40, 0x4e, 0x0f, 0x14, 0x6a, - 0x8f, 0x24, 0x60, 0x77, 0x94, 0xc6, 0x85, 0x79, 0xe3, 0xac, 0x92, 0x3e, 0xba, 0x5b, 0x9e, 0x9f, - 0x17, 0x3b, 0xb2, 0x28, 0xcf, 0xaa, 0x87, 0x56, 0x8d, 0x8b, 0x41, 0x1c, 0x75, 0x91, 0xbc, 0xac, - 0x55, 0x37, 0x05, 0xa8, 0x30, 0x22, 0x34, 0x51, 0x31, 0xf5, 0x5f, 0x23, 0x45, 0xa6, 0x41, 0xc7, - 0xa9, 0x38, 0x53, 0x32, 0xa3, 0x16, 0x17, 0xf3, 0xc0, 0xc5, 0x64, 0x5e, 0x5f, 0x5c, 0x9b, 0xa9, - 0xc5, 0x9c, 0x2c, 0xd2, 0x5e, 0x6e, 0x79, 0x03, 0x00, 0xa1, 0xdb, 0x18, 0x71, 0xd7, 0x72, 0x9f, - 0xb2, 0x8e, 0x83, 0xd6, 0x24, 0xf5, 0x74, 0xac, 0xa2, 0xe7, 0x99, 0x18, 0x30, 0x63, 0xd1, 0xf8, - 0x5d, 0x3f, 0xf9, 0xf9, 0x83, 0x49, 0xd1, 0xe0, 0x62, 0x86, 0xf9, 0x77, 0x2a, 0xbe, 0x76, 0x82, - 0xcd, 0x03, 0x0d, 0xfa, 0x70, 0x51, 0x43, 0x0e, 0xe7, 0x27, 0xd7, 0x9a, 0x95, 0x2b, 0x7f, 0x73, - 0xc9, 0x60, 0x40, 0xbd, 0x7f, 0xe9, 0x1d, 0x05, 0x00, 0x36, 0x08, 0x0a, 0x8a, 0xf7, 0x13, 0x71, - 0x72, 0x09, 0x66, 0x48, 0x2b, 0x32, 0xc6, 0xfa, 0xba, 0x33, 0xc5, 0x1e, 0x7f, 0x8d, 0x04, 0x5c, - 0x17, 0xd8, 0xcf, 0x4b, 0xbb, 0xd6, 0x1b, 0x7b, 0x82, 0xf0, 0x64, 0x1e, 0x79, 0x19, 0x4c, 0xb0, - 0x62, 0x58, 0x67, 0x51, 0x3e, 0xde, 0x66, 0xe1, 0xa3, 0x23, 0x0d, 0x6a, 0xde, 0x7a, 0x11, 0xeb, - 0x7b, 0xf8, 0x6b, 0x10, 0xc3, 0xa7, 0x81, 0x37, 0x52, 0xda, 0x45, 0xb1, 0xae, 0x37, 0xb0, 0x90, - 0xe3, 0xca, 0x0c, 0x91, 0x94, 0x5c, 0x77, 0xdd, 0xd1, 0x90, 0xf0, 0x43, 0x32, 0xca, 0x4b, 0x82, - 0x9b, 0x95, 0xf3, 0x85, 0x0e, 0x5b, 0xae, 0xea, 0x29, 0x7c, 0x0c, 0x18, 0x3a, 0xfc, 0xd0, 0xeb, - 0xc1, 0x3a, 0x71, 0x93, 0x24, 0xdc, 0x46, 0x15, 0x0a, 0x5b, 0xe6, 0xed, 0x56, 0x90, 0x18, 0x47, - 0x2b, 0xbc, 0x8d, 0x51, 0x68, 0x33, 0x65, 0x02, 0x0b, 0x68, 0xdb, 0xaa, 0x02, 0xbb, 0xa3, 0xd7, - 0x33, 0x81, 0xbd, 0x21, 0x50, 0x34, 0xad, 0xa5, 0x20, 0x38, 0x61, 0xb7, 0xb6, 0x14, 0x65, 0xd7, - 0x80, 0x84, 0x16, 0x4a, 0x26, 0x5b, 0xc5, 0x43, 0x13, 0xa1, 0xe5, 0x2e, 0xae, 0x94, 0xd7, 0x65, - 0x2a, 0xb6, 0x25, 0x96, 0x73, 0xb5, 0x85, 0x8d, 0xb8, 0xc4, 0x25, 0x05, 0xbc, 0x89, 0x39, 0x2a, - 0xe8, 0x69, 0x35, 0xd4, 0x4d, 0xbe, 0xab, 0x5e, 0x1e, 0xb9, 0x33, 0x01, 0x18, 0x35, 0x7d, 0x25, - 0x7d, 0x62, 0x85, 0xad, 0x02, 0x83, 0xd2, 0x91, 0x03, 0x3e, 0x1f, 0x45, 0x5e, 0x20, 0x28, 0xb4, - 0xe2, 0xac, 0x35, 0xbc, 0x6b, 0x97, 0xd9, 0x49, 0x0d, 0xfd, 0x51, 0xf6, 0x70, 0xf7, 0xeb, 0x6e, - 0x28, 0x49, 0xae, 0x3f, 0x48, 0x35, 0x90, 0xc1, 0x13, 0x0c, 0x7f, 0x93, 0x5f, 0xb2, 0x66, 0x65, - 0x48, 0x0f, 0x90, 0x97, 0x9a, 0xc5, 0x62, 0xe5, 0xc2, 0x19, 0x7f, 0x92, 0xf8, 0x54, 0x90, 0xa3, - 0xb4, 0xe0, 0x1b, 0x39, 0x43, 0xe9, 0x3c, 0xe4, 0xec, 0x5b, 0xe7, 0xf3, 0x3d, 0x1f, 0x18, 0xae, - 0x0e, 0xcf, 0x76, 0x72, 0x60, 0x9f, 0xfe, 0x72, 0x04, 0x3d, 0xae, 0xd8, 0xc3, 0x9f, 0x83, 0xfa, - 0xed, 0x12, 0x11, 0xb3, 0x8b, 0x68, 0xbf, 0x1d, 0xfc, 0xd3, 0x24, 0x4c, 0x56, 0xaa, 0x5b, 0xc4, - 0xcd, 0x0d, 0x55, 0xd0, 0x79, 0x0b, 0x6d, 0x69, 0x6d, 0x66, 0x81, 0x65, 0x4b, 0x93, 0xe9, 0xac, - 0xb8, 0xfa, 0x8f, 0xe1, 0x10, 0xa6, 0xf2, 0x3f, 0x98, 0x4c, 0xce, 0x94, 0x9d, 0x13, 0x2f, 0x50, - 0x95, 0x68, 0xb9, 0xe1, 0x6e, 0x84, 0x25, 0xf7, 0x19, 0xc0, 0x49, 0xb1, 0xd0, 0xa5, 0xa5, 0x96, - 0xbc, 0x43, 0xaa, 0xb9, 0x79, 0x07, 0xe0, 0xa8, 0x76, 0xcb, 0x56, 0x80, 0x75, 0x34, 0x80, 0x88, - 0xbd, 0xe5, 0xc1, 0xf4, 0x53, 0x36, 0x04, 0x3b, 0xa1, 0x8a, 0xdc, 0xa4, 0x68, 0x27, 0x16, 0x65, - 0xa0, 0xc3, 0x81, 0x6c, 0xe4, 0x3c, 0x6a, 0x9e, 0xfb, 0x95, 0x3c, 0x9b, 0xfb, 0xea, 0x90, 0x79, - 0x79, 0xd8, 0xe9, 0x04, 0x46, 0x95, 0x5a, 0x78, 0xd5, 0x01, 0x34, 0x4d, 0x1f, 0xa9, 0x50, 0xb7 -}; + 0xac, 0x0a, 0x7f, 0x8c, 0x2f, 0xaa, 0xc4, 0x97, 0x75, 0xa6, 0x16, 0xb7, 0xc0, 0xcc, 0x21, 0xd8, 0x43, 0xb3, 0x4e, + 0x9a, 0xfb, 0x52, 0xa2, 0xdb, 0xc3, 0x76, 0x7d, 0x8b, 0x67, 0x7d, 0xe5, 0xd8, 0x09, 0xa4, 0x74, 0x6c, 0xd3, 0xde, + 0xa1, 0x9f, 0x15, 0x51, 0x59, 0xa5, 0xf2, 0xd6, 0x66, 0x62, 0x24, 0xb7, 0x05, 0x70, 0x57, 0x3a, 0x2b, 0x4c, 0x46, + 0x3c, 0x4b, 0xe4, 0xd8, 0xbd, 0x84, 0x0e, 0x58, 0x9a, 0xb2, 0xf6, 0x8c, 0xcd, 0xcc, 0x45, 0x3a, 0x39, 0x29, 0x62, + 0xc1, 0x42, 0x48, 0x7a, 0xe6, 0x7d, 0xae, 0xca, 0x27, 0x4a, 0xea, 0xcf, 0x57, 0xa8, 0x65, 0x87, 0xae, 0xc8, 0xdf, + 0x7a, 0x58, 0x5e, 0x6b, 0x91, 0x51, 0x8b, 0x8d, 0x64, 0xa5, 0xe6, 0xf3, 0xec, 0x19, 0x42, 0x09, 0xd6, 0x4d, 0x6b, + 0x2f, 0x12, 0x48, 0x98, 0x5f, 0x56, 0x09, 0x1b, 0x4e, 0x16, 0x94, 0x97, 0xee, 0xa5, 0x73, 0x08, 0x2d, 0x05, 0xd0, + 0x13, 0x45, 0x5e, 0xf3, 0x92, 0x26, 0xd5, 0xc5, 0x1e, 0x08, 0xf5, 0xfe, 0x47, 0x35, 0xc7, 0x4f, 0x07, 0xee, 0x23, + 0xaf, 0x1d, 0xb9, 0xde, 0xc0, 0x09, 0xbe, 0xde, 0x52, 0xbb, 0x86, 0xfa, 0x63, 0x60, 0x3e, 0x79, 0xd8, 0xa7, 0x95, + 0xcc, 0xb1, 0x7c, 0x08, 0xcd, 0xf3, 0x82, 0x23, 0x76, 0x1d, 0x03, 0x3e, 0x85, 0x93, 0xc2, 0xd0, 0xc7, 0x93, 0x0c, + 0xcb, 0xad, 0x8e, 0x3b, 0x47, 0x1e, 0xa7, 0x61, 0x7b, 0xb8, 0x20, 0xdd, 0xd1, 0xa3, 0xc1, 0x3f, 0xff, 0x94, 0x09, + 0xcd, 0xb2, 0x24, 0xb9, 0x4a, 0x91, 0x89, 0x7f, 0xd2, 0xd5, 0xf1, 0x20, 0xa2, 0x34, 0xc2, 0x1f, 0xda, 0x97, 0x85, + 0xca, 0xc2, 0x1c, 0x1b, 0xf4, 0x48, 0x27, 0x6a, 0x97, 0xe0, 0x3d, 0x79, 0xa3, 0xea, 0xb9, 0x43, 0xfe, 0x79, 0xb3, + 0x2f, 0xcb, 0x2d, 0x34, 0xc6, 0x72, 0xab, 0xa6, 0xbc, 0xb7, 0x44, 0xc6, 0x74, 0x1c, 0xd8, 0x6f, 0x37, 0x22, 0xe3, + 0x84, 0x91, 0x80, 0xa8, 0x9d, 0x22, 0x80, 0x68, 0xcf, 0x04, 0xa4, 0xe7, 0xfa, 0x52, 0x35, 0x5c, 0x1d, 0x9e, 0x85, + 0x17, 0x51, 0x26, 0x26, 0x4e, 0xb2, 0x9c, 0xe8, 0x0d, 0xea, 0x38, 0xf4, 0x62, 0xef, 0x9d, 0x11, 0xf1, 0xf0, 0x62, + 0x4f, 0x79, 0x99, 0xf1, 0x84, 0xb1, 0x10, 0xe7, 0x69, 0xc6, 0x8b, 0xae, 0x2a, 0xec, 0x2f, 0x73, 0xba, 0xb5, 0x08, + 0x5c, 0x1f, 0xba, 0xf1, 0x9c, 0x78, 0x53, 0xe1, 0x6f, 0x01, 0x51, 0x00, 0xe7, 0x41, 0xf5, 0x97, 0xb2, 0xe7, 0x6f, + 0x6a, 0x19, 0xa9, 0xef, 0x6a, 0x0f, 0x39, 0x68, 0x45, 0xf8, 0x23, 0x39, 0xb1, 0xaa, 0x66, 0x2f, 0x34, 0xa7, 0x77, + 0xec, 0xae, 0xab, 0x0b, 0xbb, 0xc0, 0x2b, 0xae, 0xa1, 0xdb, 0x35, 0x52, 0xdc, 0xaf, 0x5b, 0x5b, 0x50, 0x01, 0x21, + 0x80, 0xf7, 0x2c, 0xc0, 0x8e, 0xe9, 0xbf, 0x50, 0x63, 0xca, 0x9a, 0x9b, 0x35, 0x26, 0x1c, 0x5d, 0x8c, 0x4b, 0x36, + 0x53, 0x79, 0x6a, 0xf8, 0x91, 0xaa, 0x3f, 0xd6, 0x09, 0x54, 0x30, 0x48, 0x70, 0xcb, 0xc8, 0x5f, 0xa2, 0x44, 0x11, + 0x06, 0xfd, 0x06, 0xb3, 0x7d, 0xf5, 0xc4, 0x9b, 0x1f, 0x1a, 0x2f, 0x44, 0x1d, 0xa7, 0x7f, 0xf2, 0x78, 0x35, 0xf4, + 0x37, 0x93, 0xa2, 0x83, 0x94, 0x4b, 0x29, 0xcc, 0xf3, 0xcb, 0xfe, 0x64, 0x1b, 0x32, 0xa7, 0xb4, 0x24, 0xf4, 0x94, + 0xe8, 0xb7, 0xd7, 0x40, 0x4e, 0x0f, 0x14, 0x6a, 0x8f, 0x24, 0x60, 0x77, 0x94, 0xc6, 0x85, 0x79, 0xe3, 0xac, 0x92, + 0x3e, 0xba, 0x5b, 0x9e, 0x9f, 0x17, 0x3b, 0xb2, 0x28, 0xcf, 0xaa, 0x87, 0x56, 0x8d, 0x8b, 0x41, 0x1c, 0x75, 0x91, + 0xbc, 0xac, 0x55, 0x37, 0x05, 0xa8, 0x30, 0x22, 0x34, 0x51, 0x31, 0xf5, 0x5f, 0x23, 0x45, 0xa6, 0x41, 0xc7, 0xa9, + 0x38, 0x53, 0x32, 0xa3, 0x16, 0x17, 0xf3, 0xc0, 0xc5, 0x64, 0x5e, 0x5f, 0x5c, 0x9b, 0xa9, 0xc5, 0x9c, 0x2c, 0xd2, + 0x5e, 0x6e, 0x79, 0x03, 0x00, 0xa1, 0xdb, 0x18, 0x71, 0xd7, 0x72, 0x9f, 0xb2, 0x8e, 0x83, 0xd6, 0x24, 0xf5, 0x74, + 0xac, 0xa2, 0xe7, 0x99, 0x18, 0x30, 0x63, 0xd1, 0xf8, 0x5d, 0x3f, 0xf9, 0xf9, 0x83, 0x49, 0xd1, 0xe0, 0x62, 0x86, + 0xf9, 0x77, 0x2a, 0xbe, 0x76, 0x82, 0xcd, 0x03, 0x0d, 0xfa, 0x70, 0x51, 0x43, 0x0e, 0xe7, 0x27, 0xd7, 0x9a, 0x95, + 0x2b, 0x7f, 0x73, 0xc9, 0x60, 0x40, 0xbd, 0x7f, 0xe9, 0x1d, 0x05, 0x00, 0x36, 0x08, 0x0a, 0x8a, 0xf7, 0x13, 0x71, + 0x72, 0x09, 0x66, 0x48, 0x2b, 0x32, 0xc6, 0xfa, 0xba, 0x33, 0xc5, 0x1e, 0x7f, 0x8d, 0x04, 0x5c, 0x17, 0xd8, 0xcf, + 0x4b, 0xbb, 0xd6, 0x1b, 0x7b, 0x82, 0xf0, 0x64, 0x1e, 0x79, 0x19, 0x4c, 0xb0, 0x62, 0x58, 0x67, 0x51, 0x3e, 0xde, + 0x66, 0xe1, 0xa3, 0x23, 0x0d, 0x6a, 0xde, 0x7a, 0x11, 0xeb, 0x7b, 0xf8, 0x6b, 0x10, 0xc3, 0xa7, 0x81, 0x37, 0x52, + 0xda, 0x45, 0xb1, 0xae, 0x37, 0xb0, 0x90, 0xe3, 0xca, 0x0c, 0x91, 0x94, 0x5c, 0x77, 0xdd, 0xd1, 0x90, 0xf0, 0x43, + 0x32, 0xca, 0x4b, 0x82, 0x9b, 0x95, 0xf3, 0x85, 0x0e, 0x5b, 0xae, 0xea, 0x29, 0x7c, 0x0c, 0x18, 0x3a, 0xfc, 0xd0, + 0xeb, 0xc1, 0x3a, 0x71, 0x93, 0x24, 0xdc, 0x46, 0x15, 0x0a, 0x5b, 0xe6, 0xed, 0x56, 0x90, 0x18, 0x47, 0x2b, 0xbc, + 0x8d, 0x51, 0x68, 0x33, 0x65, 0x02, 0x0b, 0x68, 0xdb, 0xaa, 0x02, 0xbb, 0xa3, 0xd7, 0x33, 0x81, 0xbd, 0x21, 0x50, + 0x34, 0xad, 0xa5, 0x20, 0x38, 0x61, 0xb7, 0xb6, 0x14, 0x65, 0xd7, 0x80, 0x84, 0x16, 0x4a, 0x26, 0x5b, 0xc5, 0x43, + 0x13, 0xa1, 0xe5, 0x2e, 0xae, 0x94, 0xd7, 0x65, 0x2a, 0xb6, 0x25, 0x96, 0x73, 0xb5, 0x85, 0x8d, 0xb8, 0xc4, 0x25, + 0x05, 0xbc, 0x89, 0x39, 0x2a, 0xe8, 0x69, 0x35, 0xd4, 0x4d, 0xbe, 0xab, 0x5e, 0x1e, 0xb9, 0x33, 0x01, 0x18, 0x35, + 0x7d, 0x25, 0x7d, 0x62, 0x85, 0xad, 0x02, 0x83, 0xd2, 0x91, 0x03, 0x3e, 0x1f, 0x45, 0x5e, 0x20, 0x28, 0xb4, 0xe2, + 0xac, 0x35, 0xbc, 0x6b, 0x97, 0xd9, 0x49, 0x0d, 0xfd, 0x51, 0xf6, 0x70, 0xf7, 0xeb, 0x6e, 0x28, 0x49, 0xae, 0x3f, + 0x48, 0x35, 0x90, 0xc1, 0x13, 0x0c, 0x7f, 0x93, 0x5f, 0xb2, 0x66, 0x65, 0x48, 0x0f, 0x90, 0x97, 0x9a, 0xc5, 0x62, + 0xe5, 0xc2, 0x19, 0x7f, 0x92, 0xf8, 0x54, 0x90, 0xa3, 0xb4, 0xe0, 0x1b, 0x39, 0x43, 0xe9, 0x3c, 0xe4, 0xec, 0x5b, + 0xe7, 0xf3, 0x3d, 0x1f, 0x18, 0xae, 0x0e, 0xcf, 0x76, 0x72, 0x60, 0x9f, 0xfe, 0x72, 0x04, 0x3d, 0xae, 0xd8, 0xc3, + 0x9f, 0x83, 0xfa, 0xed, 0x12, 0x11, 0xb3, 0x8b, 0x68, 0xbf, 0x1d, 0xfc, 0xd3, 0x24, 0x4c, 0x56, 0xaa, 0x5b, 0xc4, + 0xcd, 0x0d, 0x55, 0xd0, 0x79, 0x0b, 0x6d, 0x69, 0x6d, 0x66, 0x81, 0x65, 0x4b, 0x93, 0xe9, 0xac, 0xb8, 0xfa, 0x8f, + 0xe1, 0x10, 0xa6, 0xf2, 0x3f, 0x98, 0x4c, 0xce, 0x94, 0x9d, 0x13, 0x2f, 0x50, 0x95, 0x68, 0xb9, 0xe1, 0x6e, 0x84, + 0x25, 0xf7, 0x19, 0xc0, 0x49, 0xb1, 0xd0, 0xa5, 0xa5, 0x96, 0xbc, 0x43, 0xaa, 0xb9, 0x79, 0x07, 0xe0, 0xa8, 0x76, + 0xcb, 0x56, 0x80, 0x75, 0x34, 0x80, 0x88, 0xbd, 0xe5, 0xc1, 0xf4, 0x53, 0x36, 0x04, 0x3b, 0xa1, 0x8a, 0xdc, 0xa4, + 0x68, 0x27, 0x16, 0x65, 0xa0, 0xc3, 0x81, 0x6c, 0xe4, 0x3c, 0x6a, 0x9e, 0xfb, 0x95, 0x3c, 0x9b, 0xfb, 0xea, 0x90, + 0x79, 0x79, 0xd8, 0xe9, 0x04, 0x46, 0x95, 0x5a, 0x78, 0xd5, 0x01, 0x34, 0x4d, 0x1f, 0xa9, 0x50, 0xb7}; -char expected0[] = { - 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x65, 0xff, 0x00, 0xff, - 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x70, 0xff, 0x50, 0xff, 0x00, 0xff, 0x00, 0xff, - 0x59, 0xff, 0x88, 0xff, 0x00, 0xff, 0x00, 0xff, 0x31, 0xff, 0x7c, 0xff, 0x00, 0xff, 0x00, 0xff, - 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x2a, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, - 0x00, 0xff, 0xab, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x73, 0xff, - 0x00, 0xff, 0x9d, 0xff, 0x00, 0xff, 0x00, 0xff, 0xbe, 0xff, 0xa5, 0xff, 0x00, 0xff, 0x5f, 0xff, - 0x00, 0xff, 0xbd, 0xff, 0x00, 0xff, 0x3f, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, - 0x00, 0xff, 0x00, 0xff, 0x17, 0xff, 0x00, 0xff, 0x00, 0xff, 0x1f, 0xff, 0x00, 0xff, 0x00, 0xff -}; +char expected0[] = {0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x65, 0xff, 0x00, 0xff, + 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x70, 0xff, 0x50, 0xff, 0x00, 0xff, 0x00, 0xff, + 0x59, 0xff, 0x88, 0xff, 0x00, 0xff, 0x00, 0xff, 0x31, 0xff, 0x7c, 0xff, 0x00, 0xff, 0x00, 0xff, + 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x2a, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, + 0x00, 0xff, 0xab, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x73, 0xff, + 0x00, 0xff, 0x9d, 0xff, 0x00, 0xff, 0x00, 0xff, 0xbe, 0xff, 0xa5, 0xff, 0x00, 0xff, 0x5f, 0xff, + 0x00, 0xff, 0xbd, 0xff, 0x00, 0xff, 0x3f, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, 0x00, 0xff, + 0x00, 0xff, 0x00, 0xff, 0x17, 0xff, 0x00, 0xff, 0x00, 0xff, 0x1f, 0xff, 0x00, 0xff, 0x00, 0xff}; /**************************************************************************** * Functions ****************************************************************************/ int main() { - CommandStream cs( - DataPointer(commandStream, sizeof(commandStream)), - BasePointers({ - DataPointer(weightsBiases0, sizeof(weightsBiases0)), - DataPointer(scratch, sizeof(scratch)), - DataPointer(fastScratch, sizeof(fastScratch)) - }), - PmuEvents({ - ETHOSU_PMU_CYCLE, - ETHOSU_PMU_NPU_IDLE, - ETHOSU_PMU_NPU_ACTIVE - }) - ); + CommandStream cs(DataPointer(commandStream, sizeof(commandStream)), + BasePointers({DataPointer(weightsBiases0, sizeof(weightsBiases0)), + DataPointer(scratch, sizeof(scratch)), + DataPointer(fastScratch, sizeof(fastScratch))}), + PmuEvents({ETHOSU_PMU_CYCLE, ETHOSU_PMU_NPU_IDLE, ETHOSU_PMU_NPU_ACTIVE})); const size_t repeat = 100; @@ -385,7 +336,7 @@ int main() { cs.getPmu().clear(); // Run inference - int ret = cs.run(repeat); + int ret = cs.run(repeat); uint64_t cycleCount = cs.getPmu().getCycleCount(); // Print PMU counters diff --git a/applications/driver_unit_tests/irq.cpp b/applications/driver_unit_tests/irq.cpp index e4b030a..fdd7121 100644 --- a/applications/driver_unit_tests/irq.cpp +++ b/applications/driver_unit_tests/irq.cpp @@ -30,7 +30,7 @@ using namespace EthosU::CommandStream; /**************************************************************************** * Data ****************************************************************************/ - +// clang-format off __attribute__((section(".sram.data"), aligned(16))) char commandStream[] = { DRIVER_ACTION_MAGIC() DRIVER_ACTION_NOP() @@ -38,22 +38,16 @@ __attribute__((section(".sram.data"), aligned(16))) char commandStream[] = { DRIVER_ACTION_COMMAND_STREAM(1) NPU_OP_STOP(0) -}; +}; // clang-format on /**************************************************************************** * Functions ****************************************************************************/ int main() { - CommandStream cs( - DataPointer(commandStream, sizeof(commandStream)), - BasePointers(), - PmuEvents({ - ETHOSU_PMU_CYCLE, - ETHOSU_PMU_NPU_IDLE, - ETHOSU_PMU_NPU_ACTIVE - }) - ); + CommandStream cs(DataPointer(commandStream, sizeof(commandStream)), + BasePointers(), + PmuEvents({ETHOSU_PMU_CYCLE, ETHOSU_PMU_NPU_IDLE, ETHOSU_PMU_NPU_ACTIVE})); const size_t repeat = 1000; @@ -61,7 +55,7 @@ int main() { cs.getPmu().clear(); // Run inference - int ret = cs.run(repeat); + int ret = cs.run(repeat); uint64_t cycleCount = cs.getPmu().getCycleCount(); // Print PMU counters -- cgit v1.2.1