#pragma once
#include "Pattern.h"
namespace ZXing::OneD::Code128 {
constexpr int CHAR_LEN = 6;
constexpr int CHAR_MODS = 11;
constexpr std::array<FixedPattern<CHAR_LEN, CHAR_MODS>, 107> CODE_PATTERNS = { {
{ 2, 1, 2, 2, 2, 2 }, { 2, 2, 2, 1, 2, 2 },
{ 2, 2, 2, 2, 2, 1 },
{ 1, 2, 1, 2, 2, 3 },
{ 1, 2, 1, 3, 2, 2 },
{ 1, 3, 1, 2, 2, 2 }, { 1, 2, 2, 2, 1, 3 },
{ 1, 2, 2, 3, 1, 2 },
{ 1, 3, 2, 2, 1, 2 },
{ 2, 2, 1, 2, 1, 3 },
{ 2, 2, 1, 3, 1, 2 }, { 2, 3, 1, 2, 1, 2 },
{ 1, 1, 2, 2, 3, 2 },
{ 1, 2, 2, 1, 3, 2 },
{ 1, 2, 2, 2, 3, 1 },
{ 1, 1, 3, 2, 2, 2 }, { 1, 2, 3, 1, 2, 2 },
{ 1, 2, 3, 2, 2, 1 },
{ 2, 2, 3, 2, 1, 1 },
{ 2, 2, 1, 1, 3, 2 },
{ 2, 2, 1, 2, 3, 1 }, { 2, 1, 3, 2, 1, 2 },
{ 2, 2, 3, 1, 1, 2 },
{ 3, 1, 2, 1, 3, 1 },
{ 3, 1, 1, 2, 2, 2 },
{ 3, 2, 1, 1, 2, 2 }, { 3, 2, 1, 2, 2, 1 },
{ 3, 1, 2, 2, 1, 2 },
{ 3, 2, 2, 1, 1, 2 },
{ 3, 2, 2, 2, 1, 1 },
{ 2, 1, 2, 1, 2, 3 }, { 2, 1, 2, 3, 2, 1 },
{ 2, 3, 2, 1, 2, 1 },
{ 1, 1, 1, 3, 2, 3 },
{ 1, 3, 1, 1, 2, 3 },
{ 1, 3, 1, 3, 2, 1 }, { 1, 1, 2, 3, 1, 3 },
{ 1, 3, 2, 1, 1, 3 },
{ 1, 3, 2, 3, 1, 1 },
{ 2, 1, 1, 3, 1, 3 },
{ 2, 3, 1, 1, 1, 3 }, { 2, 3, 1, 3, 1, 1 },
{ 1, 1, 2, 1, 3, 3 },
{ 1, 1, 2, 3, 3, 1 },
{ 1, 3, 2, 1, 3, 1 },
{ 1, 1, 3, 1, 2, 3 }, { 1, 1, 3, 3, 2, 1 },
{ 1, 3, 3, 1, 2, 1 },
{ 3, 1, 3, 1, 2, 1 },
{ 2, 1, 1, 3, 3, 1 },
{ 2, 3, 1, 1, 3, 1 }, { 2, 1, 3, 1, 1, 3 },
{ 2, 1, 3, 3, 1, 1 },
{ 2, 1, 3, 1, 3, 1 },
{ 3, 1, 1, 1, 2, 3 },
{ 3, 1, 1, 3, 2, 1 }, { 3, 3, 1, 1, 2, 1 },
{ 3, 1, 2, 1, 1, 3 },
{ 3, 1, 2, 3, 1, 1 },
{ 3, 3, 2, 1, 1, 1 },
{ 3, 1, 4, 1, 1, 1 }, { 2, 2, 1, 4, 1, 1 },
{ 4, 3, 1, 1, 1, 1 },
{ 1, 1, 1, 2, 2, 4 },
{ 1, 1, 1, 4, 2, 2 },
{ 1, 2, 1, 1, 2, 4 }, { 1, 2, 1, 4, 2, 1 },
{ 1, 4, 1, 1, 2, 2 },
{ 1, 4, 1, 2, 2, 1 },
{ 1, 1, 2, 2, 1, 4 },
{ 1, 1, 2, 4, 1, 2 }, { 1, 2, 2, 1, 1, 4 },
{ 1, 2, 2, 4, 1, 1 },
{ 1, 4, 2, 1, 1, 2 },
{ 1, 4, 2, 2, 1, 1 },
{ 2, 4, 1, 2, 1, 1 }, { 2, 2, 1, 1, 1, 4 },
{ 4, 1, 3, 1, 1, 1 },
{ 2, 4, 1, 1, 1, 2 },
{ 1, 3, 4, 1, 1, 1 },
{ 1, 1, 1, 2, 4, 2 }, { 1, 2, 1, 1, 4, 2 },
{ 1, 2, 1, 2, 4, 1 },
{ 1, 1, 4, 2, 1, 2 },
{ 1, 2, 4, 1, 1, 2 },
{ 1, 2, 4, 2, 1, 1 }, { 4, 1, 1, 2, 1, 2 },
{ 4, 2, 1, 1, 1, 2 },
{ 4, 2, 1, 2, 1, 1 },
{ 2, 1, 2, 1, 4, 1 },
{ 2, 1, 4, 1, 2, 1 }, { 4, 1, 2, 1, 2, 1 },
{ 1, 1, 1, 1, 4, 3 },
{ 1, 1, 1, 3, 4, 1 },
{ 1, 3, 1, 1, 4, 1 },
{ 1, 1, 4, 1, 1, 3 }, { 1, 1, 4, 3, 1, 1 },
{ 4, 1, 1, 1, 1, 3 },
{ 4, 1, 1, 3, 1, 1 },
{ 1, 1, 3, 1, 4, 1 },
{ 1, 1, 4, 1, 3, 1 }, { 3, 1, 1, 1, 4, 1 },
{ 4, 1, 1, 1, 3, 1 },
{ 2, 1, 1, 4, 1, 2 },
{ 2, 1, 1, 2, 1, 4 },
{ 2, 1, 1, 2, 3, 2 }, { 2, 3, 3, 1, 1, 1 } } };
constexpr auto E2E_PATTERNS = PatternsToE2EInts(CODE_PATTERNS);
}