| OLD | NEW |
| (Empty) |
| 1 // Copyright 2014 PDFium Authors. All rights reserved. | |
| 2 // Use of this source code is governed by a BSD-style license that can be | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | |
| 6 // Original code is licensed as follows: | |
| 7 /* | |
| 8 * Copyright 2007 ZXing authors | |
| 9 * | |
| 10 * Licensed under the Apache License, Version 2.0 (the "License"); | |
| 11 * you may not use this file except in compliance with the License. | |
| 12 * You may obtain a copy of the License at | |
| 13 * | |
| 14 * http://www.apache.org/licenses/LICENSE-2.0 | |
| 15 * | |
| 16 * Unless required by applicable law or agreed to in writing, software | |
| 17 * distributed under the License is distributed on an "AS IS" BASIS, | |
| 18 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
| 19 * See the License for the specific language governing permissions and | |
| 20 * limitations under the License. | |
| 21 */ | |
| 22 | |
| 23 #include "barcode.h" | |
| 24 #include "include/utils.h" | |
| 25 #include "include/BC_QRCoderECB.h" | |
| 26 #include "include/BC_CommonBitMatrix.h" | |
| 27 #include "include/BC_QRCoderFormatInformation.h" | |
| 28 #include "include/BC_QRCoderErrorCorrectionLevel.h" | |
| 29 #include "include/BC_QRCoderBitVector.h" | |
| 30 #include "include/BC_QRCoderECBlocks.h" | |
| 31 #include "include/BC_QRCoderVersion.h" | |
| 32 const FX_INT32 CBC_QRCoderVersion::VERSION_DECODE_INFO[] = { | |
| 33 0x07C94, 0x085BC, 0x09A99, 0x0A4D3, 0x0BBF6, | |
| 34 0x0C762, 0x0D847, 0x0E60D, 0x0F928, 0x10B78, | |
| 35 0x1145D, 0x12A17, 0x13532, 0x149A6, 0x15683, | |
| 36 0x168C9, 0x177EC, 0x18EC4, 0x191E1, 0x1AFAB, | |
| 37 0x1B08E, 0x1CC1A, 0x1D33F, 0x1ED75, 0x1F250, | |
| 38 0x209D5, 0x216F0, 0x228BA, 0x2379F, 0x24B0B, | |
| 39 0x2542E, 0x26A64, 0x27541, 0x28C69 | |
| 40 }; | |
| 41 CFX_PtrArray *CBC_QRCoderVersion::VERSION = NULL; | |
| 42 void CBC_QRCoderVersion::Initialize() | |
| 43 { | |
| 44 VERSION = FX_NEW CFX_PtrArray(); | |
| 45 } | |
| 46 void CBC_QRCoderVersion::Finalize() | |
| 47 { | |
| 48 for(FX_INT32 i = 0 ; i < VERSION->GetSize(); i++) { | |
| 49 CBC_QRCoderVersion* v = (CBC_QRCoderVersion*)(VERSION->GetAt(i)); | |
| 50 delete v; | |
| 51 } | |
| 52 delete VERSION; | |
| 53 } | |
| 54 CBC_QRCoderVersion::CBC_QRCoderVersion(FX_INT32 versionNumber, | |
| 55 CBC_QRCoderECBlocks* ecBlocks1, | |
| 56 CBC_QRCoderECBlocks* ecBlocks2, | |
| 57 CBC_QRCoderECBlocks* ecBlocks3, | |
| 58 CBC_QRCoderECBlocks* ecBlocks4) | |
| 59 { | |
| 60 m_versionNumber = versionNumber; | |
| 61 m_ecBlocks.Add(ecBlocks1); | |
| 62 m_ecBlocks.Add(ecBlocks2); | |
| 63 m_ecBlocks.Add(ecBlocks3); | |
| 64 m_ecBlocks.Add(ecBlocks4); | |
| 65 FX_INT32 total = 0; | |
| 66 FX_INT32 ecCodeWords = ecBlocks1->GetECCodeWordsPerBlock(); | |
| 67 CFX_PtrArray* ecbArray = ecBlocks1->GetECBlocks(); | |
| 68 for(FX_INT32 i = 0; i < ecbArray->GetSize(); i++) { | |
| 69 CBC_QRCoderECB* ecBlock = (CBC_QRCoderECB*)((*ecbArray)[i]); | |
| 70 total += ecBlock->GetCount() * (ecBlock->GetDataCodeWords() + ecCodeWord
s); | |
| 71 } | |
| 72 m_totalCodeWords = total; | |
| 73 switch(versionNumber) { | |
| 74 case 1: | |
| 75 break; | |
| 76 case 2: | |
| 77 m_alignmentPatternCenters.Add(6); | |
| 78 m_alignmentPatternCenters.Add(18); | |
| 79 break; | |
| 80 case 3: | |
| 81 m_alignmentPatternCenters.Add(6); | |
| 82 m_alignmentPatternCenters.Add(22); | |
| 83 break; | |
| 84 case 4: | |
| 85 m_alignmentPatternCenters.Add(6); | |
| 86 m_alignmentPatternCenters.Add(26); | |
| 87 break; | |
| 88 case 5: | |
| 89 m_alignmentPatternCenters.Add(6); | |
| 90 m_alignmentPatternCenters.Add(30); | |
| 91 break; | |
| 92 case 6: | |
| 93 m_alignmentPatternCenters.Add(6); | |
| 94 m_alignmentPatternCenters.Add(34); | |
| 95 break; | |
| 96 case 7: | |
| 97 m_alignmentPatternCenters.Add(6); | |
| 98 m_alignmentPatternCenters.Add(22); | |
| 99 m_alignmentPatternCenters.Add(38); | |
| 100 break; | |
| 101 case 8: | |
| 102 m_alignmentPatternCenters.Add(6); | |
| 103 m_alignmentPatternCenters.Add(24); | |
| 104 m_alignmentPatternCenters.Add(42); | |
| 105 break; | |
| 106 case 9: | |
| 107 m_alignmentPatternCenters.Add(6); | |
| 108 m_alignmentPatternCenters.Add(26); | |
| 109 m_alignmentPatternCenters.Add(46); | |
| 110 break; | |
| 111 case 10: | |
| 112 m_alignmentPatternCenters.Add(6); | |
| 113 m_alignmentPatternCenters.Add(28); | |
| 114 m_alignmentPatternCenters.Add(50); | |
| 115 break; | |
| 116 case 11: | |
| 117 m_alignmentPatternCenters.Add(6); | |
| 118 m_alignmentPatternCenters.Add(30); | |
| 119 m_alignmentPatternCenters.Add(54); | |
| 120 break; | |
| 121 case 12: | |
| 122 m_alignmentPatternCenters.Add(6); | |
| 123 m_alignmentPatternCenters.Add(32); | |
| 124 m_alignmentPatternCenters.Add(58); | |
| 125 break; | |
| 126 case 13: | |
| 127 m_alignmentPatternCenters.Add(6); | |
| 128 m_alignmentPatternCenters.Add(34); | |
| 129 m_alignmentPatternCenters.Add(62); | |
| 130 break; | |
| 131 case 14: | |
| 132 m_alignmentPatternCenters.Add(6); | |
| 133 m_alignmentPatternCenters.Add(26); | |
| 134 m_alignmentPatternCenters.Add(46); | |
| 135 m_alignmentPatternCenters.Add(66); | |
| 136 break; | |
| 137 case 15: | |
| 138 m_alignmentPatternCenters.Add(6); | |
| 139 m_alignmentPatternCenters.Add(26); | |
| 140 m_alignmentPatternCenters.Add(48); | |
| 141 m_alignmentPatternCenters.Add(70); | |
| 142 break; | |
| 143 case 16: | |
| 144 m_alignmentPatternCenters.Add(6); | |
| 145 m_alignmentPatternCenters.Add(26); | |
| 146 m_alignmentPatternCenters.Add(50); | |
| 147 m_alignmentPatternCenters.Add(74); | |
| 148 break; | |
| 149 case 17: | |
| 150 m_alignmentPatternCenters.Add(6); | |
| 151 m_alignmentPatternCenters.Add(30); | |
| 152 m_alignmentPatternCenters.Add(54); | |
| 153 m_alignmentPatternCenters.Add(78); | |
| 154 break; | |
| 155 case 18: | |
| 156 m_alignmentPatternCenters.Add(6); | |
| 157 m_alignmentPatternCenters.Add(30); | |
| 158 m_alignmentPatternCenters.Add(56); | |
| 159 m_alignmentPatternCenters.Add(82); | |
| 160 break; | |
| 161 case 19: | |
| 162 m_alignmentPatternCenters.Add(6); | |
| 163 m_alignmentPatternCenters.Add(30); | |
| 164 m_alignmentPatternCenters.Add(58); | |
| 165 m_alignmentPatternCenters.Add(86); | |
| 166 break; | |
| 167 case 20: | |
| 168 m_alignmentPatternCenters.Add(6); | |
| 169 m_alignmentPatternCenters.Add(34); | |
| 170 m_alignmentPatternCenters.Add(62); | |
| 171 m_alignmentPatternCenters.Add(90); | |
| 172 break; | |
| 173 case 21: | |
| 174 m_alignmentPatternCenters.Add(6); | |
| 175 m_alignmentPatternCenters.Add(28); | |
| 176 m_alignmentPatternCenters.Add(50); | |
| 177 m_alignmentPatternCenters.Add(72); | |
| 178 m_alignmentPatternCenters.Add(94); | |
| 179 break; | |
| 180 case 22: | |
| 181 m_alignmentPatternCenters.Add(6); | |
| 182 m_alignmentPatternCenters.Add(26); | |
| 183 m_alignmentPatternCenters.Add(50); | |
| 184 m_alignmentPatternCenters.Add(74); | |
| 185 m_alignmentPatternCenters.Add(98); | |
| 186 break; | |
| 187 case 23: | |
| 188 m_alignmentPatternCenters.Add(6); | |
| 189 m_alignmentPatternCenters.Add(30); | |
| 190 m_alignmentPatternCenters.Add(54); | |
| 191 m_alignmentPatternCenters.Add(74); | |
| 192 m_alignmentPatternCenters.Add(102); | |
| 193 break; | |
| 194 case 24: | |
| 195 m_alignmentPatternCenters.Add(6); | |
| 196 m_alignmentPatternCenters.Add(28); | |
| 197 m_alignmentPatternCenters.Add(54); | |
| 198 m_alignmentPatternCenters.Add(80); | |
| 199 m_alignmentPatternCenters.Add(106); | |
| 200 break; | |
| 201 case 25: | |
| 202 m_alignmentPatternCenters.Add(6); | |
| 203 m_alignmentPatternCenters.Add(32); | |
| 204 m_alignmentPatternCenters.Add(58); | |
| 205 m_alignmentPatternCenters.Add(84); | |
| 206 m_alignmentPatternCenters.Add(110); | |
| 207 break; | |
| 208 case 26: | |
| 209 m_alignmentPatternCenters.Add(6); | |
| 210 m_alignmentPatternCenters.Add(30); | |
| 211 m_alignmentPatternCenters.Add(58); | |
| 212 m_alignmentPatternCenters.Add(86); | |
| 213 m_alignmentPatternCenters.Add(114); | |
| 214 break; | |
| 215 case 27: | |
| 216 m_alignmentPatternCenters.Add(6); | |
| 217 m_alignmentPatternCenters.Add(34); | |
| 218 m_alignmentPatternCenters.Add(62); | |
| 219 m_alignmentPatternCenters.Add(90); | |
| 220 m_alignmentPatternCenters.Add(118); | |
| 221 break; | |
| 222 case 28: | |
| 223 m_alignmentPatternCenters.Add(6); | |
| 224 m_alignmentPatternCenters.Add(26); | |
| 225 m_alignmentPatternCenters.Add(50); | |
| 226 m_alignmentPatternCenters.Add(74); | |
| 227 m_alignmentPatternCenters.Add(98); | |
| 228 m_alignmentPatternCenters.Add(122); | |
| 229 break; | |
| 230 case 29: | |
| 231 m_alignmentPatternCenters.Add(6); | |
| 232 m_alignmentPatternCenters.Add(30); | |
| 233 m_alignmentPatternCenters.Add(54); | |
| 234 m_alignmentPatternCenters.Add(78); | |
| 235 m_alignmentPatternCenters.Add(102); | |
| 236 m_alignmentPatternCenters.Add(126); | |
| 237 break; | |
| 238 case 30: | |
| 239 m_alignmentPatternCenters.Add(6); | |
| 240 m_alignmentPatternCenters.Add(26); | |
| 241 m_alignmentPatternCenters.Add(52); | |
| 242 m_alignmentPatternCenters.Add(78); | |
| 243 m_alignmentPatternCenters.Add(104); | |
| 244 m_alignmentPatternCenters.Add(130); | |
| 245 break; | |
| 246 case 31: | |
| 247 m_alignmentPatternCenters.Add(6); | |
| 248 m_alignmentPatternCenters.Add(30); | |
| 249 m_alignmentPatternCenters.Add(56); | |
| 250 m_alignmentPatternCenters.Add(82); | |
| 251 m_alignmentPatternCenters.Add(108); | |
| 252 m_alignmentPatternCenters.Add(134); | |
| 253 break; | |
| 254 case 32: | |
| 255 m_alignmentPatternCenters.Add(6); | |
| 256 m_alignmentPatternCenters.Add(34); | |
| 257 m_alignmentPatternCenters.Add(60); | |
| 258 m_alignmentPatternCenters.Add(86); | |
| 259 m_alignmentPatternCenters.Add(112); | |
| 260 m_alignmentPatternCenters.Add(138); | |
| 261 break; | |
| 262 case 33: | |
| 263 m_alignmentPatternCenters.Add(6); | |
| 264 m_alignmentPatternCenters.Add(30); | |
| 265 m_alignmentPatternCenters.Add(58); | |
| 266 m_alignmentPatternCenters.Add(86); | |
| 267 m_alignmentPatternCenters.Add(114); | |
| 268 m_alignmentPatternCenters.Add(142); | |
| 269 break; | |
| 270 case 34: | |
| 271 m_alignmentPatternCenters.Add(6); | |
| 272 m_alignmentPatternCenters.Add(34); | |
| 273 m_alignmentPatternCenters.Add(62); | |
| 274 m_alignmentPatternCenters.Add(90); | |
| 275 m_alignmentPatternCenters.Add(118); | |
| 276 m_alignmentPatternCenters.Add(146); | |
| 277 break; | |
| 278 case 35: | |
| 279 m_alignmentPatternCenters.Add(6); | |
| 280 m_alignmentPatternCenters.Add(30); | |
| 281 m_alignmentPatternCenters.Add(54); | |
| 282 m_alignmentPatternCenters.Add(78); | |
| 283 m_alignmentPatternCenters.Add(102); | |
| 284 m_alignmentPatternCenters.Add(126); | |
| 285 m_alignmentPatternCenters.Add(150); | |
| 286 break; | |
| 287 case 36: | |
| 288 m_alignmentPatternCenters.Add(6); | |
| 289 m_alignmentPatternCenters.Add(24); | |
| 290 m_alignmentPatternCenters.Add(50); | |
| 291 m_alignmentPatternCenters.Add(76); | |
| 292 m_alignmentPatternCenters.Add(102); | |
| 293 m_alignmentPatternCenters.Add(128); | |
| 294 m_alignmentPatternCenters.Add(154); | |
| 295 break; | |
| 296 case 37: | |
| 297 m_alignmentPatternCenters.Add(6); | |
| 298 m_alignmentPatternCenters.Add(28); | |
| 299 m_alignmentPatternCenters.Add(54); | |
| 300 m_alignmentPatternCenters.Add(80); | |
| 301 m_alignmentPatternCenters.Add(106); | |
| 302 m_alignmentPatternCenters.Add(132); | |
| 303 m_alignmentPatternCenters.Add(158); | |
| 304 break; | |
| 305 case 38: | |
| 306 m_alignmentPatternCenters.Add(6); | |
| 307 m_alignmentPatternCenters.Add(32); | |
| 308 m_alignmentPatternCenters.Add(58); | |
| 309 m_alignmentPatternCenters.Add(84); | |
| 310 m_alignmentPatternCenters.Add(110); | |
| 311 m_alignmentPatternCenters.Add(136); | |
| 312 m_alignmentPatternCenters.Add(162); | |
| 313 break; | |
| 314 case 39: | |
| 315 m_alignmentPatternCenters.Add(6); | |
| 316 m_alignmentPatternCenters.Add(26); | |
| 317 m_alignmentPatternCenters.Add(54); | |
| 318 m_alignmentPatternCenters.Add(82); | |
| 319 m_alignmentPatternCenters.Add(110); | |
| 320 m_alignmentPatternCenters.Add(138); | |
| 321 m_alignmentPatternCenters.Add(166); | |
| 322 break; | |
| 323 case 40: | |
| 324 m_alignmentPatternCenters.Add(6); | |
| 325 m_alignmentPatternCenters.Add(30); | |
| 326 m_alignmentPatternCenters.Add(58); | |
| 327 m_alignmentPatternCenters.Add(86); | |
| 328 m_alignmentPatternCenters.Add(114); | |
| 329 m_alignmentPatternCenters.Add(142); | |
| 330 m_alignmentPatternCenters.Add(170); | |
| 331 break; | |
| 332 } | |
| 333 } | |
| 334 CBC_QRCoderVersion::~CBC_QRCoderVersion() | |
| 335 { | |
| 336 if(m_ecBlocks.GetSize() != 0) { | |
| 337 FX_INT32 itBeg = 0; | |
| 338 FX_INT32 itEnd = m_ecBlocks.GetSize(); | |
| 339 while(itBeg != itEnd) { | |
| 340 delete ( (CBC_QRCoderECBlocks*)(m_ecBlocks[itBeg]) ); | |
| 341 itBeg++; | |
| 342 } | |
| 343 } | |
| 344 } | |
| 345 FX_INT32 CBC_QRCoderVersion::GetVersionNumber() | |
| 346 { | |
| 347 return m_versionNumber; | |
| 348 } | |
| 349 CFX_Int32Array* CBC_QRCoderVersion::GetAlignmentPatternCenters() | |
| 350 { | |
| 351 return &m_alignmentPatternCenters; | |
| 352 } | |
| 353 FX_INT32 CBC_QRCoderVersion::GetTotalCodeWords() | |
| 354 { | |
| 355 return m_totalCodeWords; | |
| 356 } | |
| 357 FX_INT32 CBC_QRCoderVersion::GetDimensionForVersion() | |
| 358 { | |
| 359 return 17 + 4 * m_versionNumber; | |
| 360 } | |
| 361 CBC_QRCoderECBlocks* CBC_QRCoderVersion::GetECBlocksForLevel(CBC_QRCoderErrorCor
rectionLevel *ecLevel) | |
| 362 { | |
| 363 return (CBC_QRCoderECBlocks*)m_ecBlocks[ecLevel->Ordinal()]; | |
| 364 } | |
| 365 CBC_QRCoderVersion* CBC_QRCoderVersion::GetProvisionalVersionForDimension(FX_INT
32 dimension, FX_INT32 &e) | |
| 366 { | |
| 367 if((dimension % 4) != 1) { | |
| 368 e = BCExceptionRead; | |
| 369 BC_EXCEPTION_CHECK_ReturnValue(e, NULL); | |
| 370 } | |
| 371 CBC_QRCoderVersion* qcv = GetVersionForNumber((dimension - 17) >> 2, e); | |
| 372 BC_EXCEPTION_CHECK_ReturnValue(e, NULL); | |
| 373 return qcv; | |
| 374 } | |
| 375 CBC_QRCoderVersion* CBC_QRCoderVersion::DecodeVersionInformation(FX_INT32 versio
nBits, FX_INT32 &e) | |
| 376 { | |
| 377 FX_INT32 bestDifference = FXSYS_IntMax; | |
| 378 FX_INT32 bestVersion = 0; | |
| 379 for (FX_INT32 i = 0; i < 34; i++) { | |
| 380 FX_INT32 targetVersion = VERSION_DECODE_INFO[i]; | |
| 381 if(targetVersion == versionBits) { | |
| 382 CBC_QRCoderVersion* qcv = GetVersionForNumber(i + 7, e); | |
| 383 BC_EXCEPTION_CHECK_ReturnValue(e, NULL); | |
| 384 return qcv; | |
| 385 } | |
| 386 FX_INT32 bitsDifference = CBC_QRCoderFormatInformation::NumBitsDiffering
(versionBits, targetVersion); | |
| 387 if(bitsDifference < bestDifference) { | |
| 388 bestVersion = i + 7; | |
| 389 bestDifference = bitsDifference; | |
| 390 } | |
| 391 } | |
| 392 if(bestDifference <= 3) { | |
| 393 CBC_QRCoderVersion* qcv = GetVersionForNumber(bestVersion, e); | |
| 394 BC_EXCEPTION_CHECK_ReturnValue(e, NULL); | |
| 395 return qcv; | |
| 396 } | |
| 397 return NULL; | |
| 398 } | |
| 399 CBC_CommonBitMatrix* CBC_QRCoderVersion::BuildFunctionPattern(FX_INT32 &e) | |
| 400 { | |
| 401 FX_INT32 dimension = GetDimensionForVersion(); | |
| 402 CBC_CommonBitMatrix* bitMatrix = FX_NEW CBC_CommonBitMatrix(); | |
| 403 bitMatrix->Init(dimension); | |
| 404 bitMatrix->SetRegion(0, 0 , 9, 9, e); | |
| 405 BC_EXCEPTION_CHECK_ReturnValue(e, NULL); | |
| 406 bitMatrix->SetRegion(dimension - 8, 0, 8, 9, e); | |
| 407 BC_EXCEPTION_CHECK_ReturnValue(e, NULL); | |
| 408 bitMatrix->SetRegion(0, dimension - 8, 9, 8, e); | |
| 409 BC_EXCEPTION_CHECK_ReturnValue(e, NULL); | |
| 410 FX_INT32 max = m_alignmentPatternCenters.GetSize(); | |
| 411 for (FX_INT32 x = 0; x < max; x++) { | |
| 412 FX_INT32 i = m_alignmentPatternCenters[x] - 2; | |
| 413 for (FX_INT32 y = 0; y < max; y++) { | |
| 414 if ((x == 0 && (y == 0 || y == max - 1)) || (x == max - 1 && y == 0)
) { | |
| 415 continue; | |
| 416 } | |
| 417 bitMatrix->SetRegion(m_alignmentPatternCenters[y] - 2, i, 5, 5, e); | |
| 418 BC_EXCEPTION_CHECK_ReturnValue(e, NULL); | |
| 419 } | |
| 420 } | |
| 421 bitMatrix->SetRegion(6, 9, 1, dimension - 17, e); | |
| 422 BC_EXCEPTION_CHECK_ReturnValue(e, NULL); | |
| 423 bitMatrix->SetRegion(9, 6, dimension - 17, 1, e); | |
| 424 BC_EXCEPTION_CHECK_ReturnValue(e, NULL); | |
| 425 if (m_versionNumber > 6) { | |
| 426 bitMatrix->SetRegion(dimension - 11, 0, 3, 6, e); | |
| 427 BC_EXCEPTION_CHECK_ReturnValue(e, NULL); | |
| 428 bitMatrix->SetRegion(0, dimension - 11, 6, 3, e); | |
| 429 BC_EXCEPTION_CHECK_ReturnValue(e, NULL); | |
| 430 } | |
| 431 return bitMatrix; | |
| 432 } | |
| 433 CBC_QRCoderVersion* CBC_QRCoderVersion::GetVersionForNumber(FX_INT32 versionNumb
er, FX_INT32 &e) | |
| 434 { | |
| 435 if(VERSION->GetSize() == 0) { | |
| 436 VERSION->Add(FX_NEW CBC_QRCoderVersion(1, | |
| 437 FX_NEW CBC_QRCoderECBlocks(7, FX_
NEW CBC_QRCoderECB(1, 19)), | |
| 438 FX_NEW CBC_QRCoderECBlocks(10, FX
_NEW CBC_QRCoderECB(1, 16)), | |
| 439 FX_NEW CBC_QRCoderECBlocks(13, FX
_NEW CBC_QRCoderECB(1, 13)), | |
| 440 FX_NEW CBC_QRCoderECBlocks(17, FX
_NEW CBC_QRCoderECB(1, 9)))); | |
| 441 VERSION->Add(FX_NEW CBC_QRCoderVersion(2, | |
| 442 FX_NEW CBC_QRCoderECBlocks(10, FX
_NEW CBC_QRCoderECB(1, 34)), | |
| 443 FX_NEW CBC_QRCoderECBlocks(16, FX
_NEW CBC_QRCoderECB(1, 28)), | |
| 444 FX_NEW CBC_QRCoderECBlocks(22, FX
_NEW CBC_QRCoderECB(1, 22)), | |
| 445 FX_NEW CBC_QRCoderECBlocks(28, FX
_NEW CBC_QRCoderECB(1, 16)))); | |
| 446 VERSION->Add(FX_NEW CBC_QRCoderVersion(3, | |
| 447 FX_NEW CBC_QRCoderECBlocks(15, FX
_NEW CBC_QRCoderECB(1, 55)), | |
| 448 FX_NEW CBC_QRCoderECBlocks(26, FX
_NEW CBC_QRCoderECB(1, 44)), | |
| 449 FX_NEW CBC_QRCoderECBlocks(18, FX
_NEW CBC_QRCoderECB(2, 17)), | |
| 450 FX_NEW CBC_QRCoderECBlocks(22, FX
_NEW CBC_QRCoderECB(2, 13)))); | |
| 451 VERSION->Add(FX_NEW CBC_QRCoderVersion(4, | |
| 452 FX_NEW CBC_QRCoderECBlocks(20, FX
_NEW CBC_QRCoderECB(1, 80)), | |
| 453 FX_NEW CBC_QRCoderECBlocks(18, FX
_NEW CBC_QRCoderECB(2, 32)), | |
| 454 FX_NEW CBC_QRCoderECBlocks(26, FX
_NEW CBC_QRCoderECB(2, 24)), | |
| 455 FX_NEW CBC_QRCoderECBlocks(16, FX
_NEW CBC_QRCoderECB(4, 9)))); | |
| 456 VERSION->Add(FX_NEW CBC_QRCoderVersion(5, | |
| 457 FX_NEW CBC_QRCoderECBlocks(26, FX
_NEW CBC_QRCoderECB(1, 108)), | |
| 458 FX_NEW CBC_QRCoderECBlocks(24, FX
_NEW CBC_QRCoderECB(2, 43)), | |
| 459 FX_NEW CBC_QRCoderECBlocks(18, FX
_NEW CBC_QRCoderECB(2, 15), | |
| 460 FX_NEW CBC_QRCoderECB(2,
16)), | |
| 461 FX_NEW CBC_QRCoderECBlocks(22, FX
_NEW CBC_QRCoderECB(2, 11), | |
| 462 FX_NEW CBC_QRCoderECB(2,
12)))); | |
| 463 VERSION->Add(FX_NEW CBC_QRCoderVersion(6, | |
| 464 FX_NEW CBC_QRCoderECBlocks(18, FX
_NEW CBC_QRCoderECB(2, 68)), | |
| 465 FX_NEW CBC_QRCoderECBlocks(16, FX
_NEW CBC_QRCoderECB(4, 27)), | |
| 466 FX_NEW CBC_QRCoderECBlocks(24, FX
_NEW CBC_QRCoderECB(4, 19)), | |
| 467 FX_NEW CBC_QRCoderECBlocks(28, FX
_NEW CBC_QRCoderECB(4, 15)))); | |
| 468 VERSION->Add(FX_NEW CBC_QRCoderVersion(7, | |
| 469 FX_NEW CBC_QRCoderECBlocks(20, FX
_NEW CBC_QRCoderECB(2, 78)), | |
| 470 FX_NEW CBC_QRCoderECBlocks(18, FX
_NEW CBC_QRCoderECB(4, 31)), | |
| 471 FX_NEW CBC_QRCoderECBlocks(18, FX
_NEW CBC_QRCoderECB(2, 14), | |
| 472 FX_NEW CBC_QRCoderECB(4,
15)), | |
| 473 FX_NEW CBC_QRCoderECBlocks(26, FX
_NEW CBC_QRCoderECB(4, 13), | |
| 474 FX_NEW CBC_QRCoderECB(1,
14)))); | |
| 475 VERSION->Add(FX_NEW CBC_QRCoderVersion(8, | |
| 476 FX_NEW CBC_QRCoderECBlocks(24, FX
_NEW CBC_QRCoderECB(2, 97)), | |
| 477 FX_NEW CBC_QRCoderECBlocks(22, FX
_NEW CBC_QRCoderECB(2, 38), | |
| 478 FX_NEW CBC_QRCoderECB(2,
39)), | |
| 479 FX_NEW CBC_QRCoderECBlocks(22, FX
_NEW CBC_QRCoderECB(4, 18), | |
| 480 FX_NEW CBC_QRCoderECB(2,
19)), | |
| 481 FX_NEW CBC_QRCoderECBlocks(26, FX
_NEW CBC_QRCoderECB(4, 14), | |
| 482 FX_NEW CBC_QRCoderECB(2,
15)))); | |
| 483 VERSION->Add(FX_NEW CBC_QRCoderVersion(9, | |
| 484 FX_NEW CBC_QRCoderECBlocks(30, FX
_NEW CBC_QRCoderECB(2, 116)), | |
| 485 FX_NEW CBC_QRCoderECBlocks(22, FX
_NEW CBC_QRCoderECB(3, 36), | |
| 486 FX_NEW CBC_QRCoderECB(2,
37)), | |
| 487 FX_NEW CBC_QRCoderECBlocks(20, FX
_NEW CBC_QRCoderECB(4, 16), | |
| 488 FX_NEW CBC_QRCoderECB(4,
17)), | |
| 489 FX_NEW CBC_QRCoderECBlocks(24, FX
_NEW CBC_QRCoderECB(4, 12), | |
| 490 FX_NEW CBC_QRCoderECB(4,
13)))); | |
| 491 VERSION->Add(FX_NEW CBC_QRCoderVersion(10, | |
| 492 FX_NEW CBC_QRCoderECBlocks(18, FX
_NEW CBC_QRCoderECB(2, 68), | |
| 493 FX_NEW CBC_QRCoderECB(2,
69)), | |
| 494 FX_NEW CBC_QRCoderECBlocks(26, FX
_NEW CBC_QRCoderECB(4, 43), | |
| 495 FX_NEW CBC_QRCoderECB(1,
44)), | |
| 496 FX_NEW CBC_QRCoderECBlocks(24, FX
_NEW CBC_QRCoderECB(6, 19), | |
| 497 FX_NEW CBC_QRCoderECB(2,
20)), | |
| 498 FX_NEW CBC_QRCoderECBlocks(28, FX
_NEW CBC_QRCoderECB(6, 15), | |
| 499 FX_NEW CBC_QRCoderECB(2,
16)))); | |
| 500 VERSION->Add(FX_NEW CBC_QRCoderVersion(11, | |
| 501 FX_NEW CBC_QRCoderECBlocks(20, FX
_NEW CBC_QRCoderECB(4, 81)), | |
| 502 FX_NEW CBC_QRCoderECBlocks(30, FX
_NEW CBC_QRCoderECB(1, 50), | |
| 503 FX_NEW CBC_QRCoderECB(4,
51)), | |
| 504 FX_NEW CBC_QRCoderECBlocks(28, FX
_NEW CBC_QRCoderECB(4, 22), | |
| 505 FX_NEW CBC_QRCoderECB(4,
23)), | |
| 506 FX_NEW CBC_QRCoderECBlocks(24, FX
_NEW CBC_QRCoderECB(3, 12), | |
| 507 FX_NEW CBC_QRCoderECB(8,
13)))); | |
| 508 VERSION->Add(FX_NEW CBC_QRCoderVersion(12, | |
| 509 FX_NEW CBC_QRCoderECBlocks(24, FX
_NEW CBC_QRCoderECB(2, 92), | |
| 510 FX_NEW CBC_QRCoderECB(2,
93)), | |
| 511 FX_NEW CBC_QRCoderECBlocks(22, FX
_NEW CBC_QRCoderECB(6, 36), | |
| 512 FX_NEW CBC_QRCoderECB(2,
37)), | |
| 513 FX_NEW CBC_QRCoderECBlocks(26, FX
_NEW CBC_QRCoderECB(4, 20), | |
| 514 FX_NEW CBC_QRCoderECB(6,
21)), | |
| 515 FX_NEW CBC_QRCoderECBlocks(28, FX
_NEW CBC_QRCoderECB(7, 14), | |
| 516 FX_NEW CBC_QRCoderECB(4,
15)))); | |
| 517 VERSION->Add(FX_NEW CBC_QRCoderVersion(13, | |
| 518 FX_NEW CBC_QRCoderECBlocks(26, FX
_NEW CBC_QRCoderECB(4, 107)), | |
| 519 FX_NEW CBC_QRCoderECBlocks(22, FX
_NEW CBC_QRCoderECB(8, 37), | |
| 520 FX_NEW CBC_QRCoderECB(1,
38)), | |
| 521 FX_NEW CBC_QRCoderECBlocks(24, FX
_NEW CBC_QRCoderECB(8, 20), | |
| 522 FX_NEW CBC_QRCoderECB(4,
21)), | |
| 523 FX_NEW CBC_QRCoderECBlocks(22, FX
_NEW CBC_QRCoderECB(12, 11), | |
| 524 FX_NEW CBC_QRCoderECB(4,
12)))); | |
| 525 VERSION->Add(FX_NEW CBC_QRCoderVersion(14, | |
| 526 FX_NEW CBC_QRCoderECBlocks(30, FX
_NEW CBC_QRCoderECB(3, 115), | |
| 527 FX_NEW CBC_QRCoderECB(1,
116)), | |
| 528 FX_NEW CBC_QRCoderECBlocks(24, FX
_NEW CBC_QRCoderECB(4, 40), | |
| 529 FX_NEW CBC_QRCoderECB(5,
41)), | |
| 530 FX_NEW CBC_QRCoderECBlocks(20, FX
_NEW CBC_QRCoderECB(11, 16), | |
| 531 FX_NEW CBC_QRCoderECB(5,
17)), | |
| 532 FX_NEW CBC_QRCoderECBlocks(24, FX
_NEW CBC_QRCoderECB(11, 12), | |
| 533 FX_NEW CBC_QRCoderECB(5,
13)))); | |
| 534 VERSION->Add(FX_NEW CBC_QRCoderVersion(15, | |
| 535 FX_NEW CBC_QRCoderECBlocks(22, FX
_NEW CBC_QRCoderECB(5, 87), | |
| 536 FX_NEW CBC_QRCoderECB(1,
88)), | |
| 537 FX_NEW CBC_QRCoderECBlocks(24, FX
_NEW CBC_QRCoderECB(5, 41), | |
| 538 FX_NEW CBC_QRCoderECB(5,
42)), | |
| 539 FX_NEW CBC_QRCoderECBlocks(30, FX
_NEW CBC_QRCoderECB(5, 24), | |
| 540 FX_NEW CBC_QRCoderECB(7,
25)), | |
| 541 FX_NEW CBC_QRCoderECBlocks(24, FX
_NEW CBC_QRCoderECB(11, 12), | |
| 542 FX_NEW CBC_QRCoderECB(7,
13)))); | |
| 543 VERSION->Add(FX_NEW CBC_QRCoderVersion(16, | |
| 544 FX_NEW CBC_QRCoderECBlocks(24, FX
_NEW CBC_QRCoderECB(5, 98), | |
| 545 FX_NEW CBC_QRCoderECB(1,
99)), | |
| 546 FX_NEW CBC_QRCoderECBlocks(28, FX
_NEW CBC_QRCoderECB(7, 45), | |
| 547 FX_NEW CBC_QRCoderECB(3,
46)), | |
| 548 FX_NEW CBC_QRCoderECBlocks(24, FX
_NEW CBC_QRCoderECB(15, 19), | |
| 549 FX_NEW CBC_QRCoderECB(2,
20)), | |
| 550 FX_NEW CBC_QRCoderECBlocks(30, FX
_NEW CBC_QRCoderECB(3, 15), | |
| 551 FX_NEW CBC_QRCoderECB(13,
16)))); | |
| 552 VERSION->Add(FX_NEW CBC_QRCoderVersion(17, | |
| 553 FX_NEW CBC_QRCoderECBlocks(28, FX
_NEW CBC_QRCoderECB(1, 107), | |
| 554 FX_NEW CBC_QRCoderECB(5,
108)), | |
| 555 FX_NEW CBC_QRCoderECBlocks(28, FX
_NEW CBC_QRCoderECB(10, 46), | |
| 556 FX_NEW CBC_QRCoderECB(1,
47)), | |
| 557 FX_NEW CBC_QRCoderECBlocks(28, FX
_NEW CBC_QRCoderECB(1, 22), | |
| 558 FX_NEW CBC_QRCoderECB(15,
23)), | |
| 559 FX_NEW CBC_QRCoderECBlocks(28, FX
_NEW CBC_QRCoderECB(2, 14), | |
| 560 FX_NEW CBC_QRCoderECB(17,
15)))); | |
| 561 VERSION->Add(FX_NEW CBC_QRCoderVersion(18, | |
| 562 FX_NEW CBC_QRCoderECBlocks(30, FX
_NEW CBC_QRCoderECB(5, 120), | |
| 563 FX_NEW CBC_QRCoderECB(1,
121)), | |
| 564 FX_NEW CBC_QRCoderECBlocks(26, FX
_NEW CBC_QRCoderECB(9, 43), | |
| 565 FX_NEW CBC_QRCoderECB(4,
44)), | |
| 566 FX_NEW CBC_QRCoderECBlocks(28, FX
_NEW CBC_QRCoderECB(17, 22), | |
| 567 FX_NEW CBC_QRCoderECB(1,
23)), | |
| 568 FX_NEW CBC_QRCoderECBlocks(28, FX
_NEW CBC_QRCoderECB(2, 14), | |
| 569 FX_NEW CBC_QRCoderECB(19,
15)))); | |
| 570 VERSION->Add(FX_NEW CBC_QRCoderVersion(19, | |
| 571 FX_NEW CBC_QRCoderECBlocks(28, FX
_NEW CBC_QRCoderECB(3, 113), | |
| 572 FX_NEW CBC_QRCoderECB(4,
114)), | |
| 573 FX_NEW CBC_QRCoderECBlocks(26, FX
_NEW CBC_QRCoderECB(3, 44), | |
| 574 FX_NEW CBC_QRCoderECB(11,
45)), | |
| 575 FX_NEW CBC_QRCoderECBlocks(26, FX
_NEW CBC_QRCoderECB(17, 21), | |
| 576 FX_NEW CBC_QRCoderECB(4,
22)), | |
| 577 FX_NEW CBC_QRCoderECBlocks(26, FX
_NEW CBC_QRCoderECB(9, 13), | |
| 578 FX_NEW CBC_QRCoderECB(16,
14)))); | |
| 579 VERSION->Add(FX_NEW CBC_QRCoderVersion(20, | |
| 580 FX_NEW CBC_QRCoderECBlocks(28, FX
_NEW CBC_QRCoderECB(3, 107), | |
| 581 FX_NEW CBC_QRCoderECB(5,
108)), | |
| 582 FX_NEW CBC_QRCoderECBlocks(26, FX
_NEW CBC_QRCoderECB(3, 41), | |
| 583 FX_NEW CBC_QRCoderECB(13,
42)), | |
| 584 FX_NEW CBC_QRCoderECBlocks(30, FX
_NEW CBC_QRCoderECB(15, 24), | |
| 585 FX_NEW CBC_QRCoderECB(5,
25)), | |
| 586 FX_NEW CBC_QRCoderECBlocks(28, FX
_NEW CBC_QRCoderECB(15, 15), | |
| 587 FX_NEW CBC_QRCoderECB(10,
16)))); | |
| 588 VERSION->Add(FX_NEW CBC_QRCoderVersion(21, | |
| 589 FX_NEW CBC_QRCoderECBlocks(28, FX
_NEW CBC_QRCoderECB(4, 116), | |
| 590 FX_NEW CBC_QRCoderECB(4,
117)), | |
| 591 FX_NEW CBC_QRCoderECBlocks(26, FX
_NEW CBC_QRCoderECB(17, 42)), | |
| 592 FX_NEW CBC_QRCoderECBlocks(28, FX
_NEW CBC_QRCoderECB(17, 22), | |
| 593 FX_NEW CBC_QRCoderECB(6,
23)), | |
| 594 FX_NEW CBC_QRCoderECBlocks(30, FX
_NEW CBC_QRCoderECB(19, 16), | |
| 595 FX_NEW CBC_QRCoderECB(6,
17)))); | |
| 596 VERSION->Add(FX_NEW CBC_QRCoderVersion(22, | |
| 597 FX_NEW CBC_QRCoderECBlocks(28, FX
_NEW CBC_QRCoderECB(2, 111), | |
| 598 FX_NEW CBC_QRCoderECB(7,
112)), | |
| 599 FX_NEW CBC_QRCoderECBlocks(28, FX
_NEW CBC_QRCoderECB(17, 46)), | |
| 600 FX_NEW CBC_QRCoderECBlocks(30, FX
_NEW CBC_QRCoderECB(7, 24), | |
| 601 FX_NEW CBC_QRCoderECB(16,
25)), | |
| 602 FX_NEW CBC_QRCoderECBlocks(24, FX
_NEW CBC_QRCoderECB(34, 13)))); | |
| 603 VERSION->Add(FX_NEW CBC_QRCoderVersion(23, | |
| 604 FX_NEW CBC_QRCoderECBlocks(30, FX
_NEW CBC_QRCoderECB(4, 121), | |
| 605 FX_NEW CBC_QRCoderECB(5,
122)), | |
| 606 FX_NEW CBC_QRCoderECBlocks(28, FX
_NEW CBC_QRCoderECB(4, 47), | |
| 607 FX_NEW CBC_QRCoderECB(14,
48)), | |
| 608 FX_NEW CBC_QRCoderECBlocks(30, FX
_NEW CBC_QRCoderECB(11, 24), | |
| 609 FX_NEW CBC_QRCoderECB(14,
25)), | |
| 610 FX_NEW CBC_QRCoderECBlocks(30, FX
_NEW CBC_QRCoderECB(16, 15), | |
| 611 FX_NEW CBC_QRCoderECB(14,
16)))); | |
| 612 VERSION->Add(FX_NEW CBC_QRCoderVersion(24, | |
| 613 FX_NEW CBC_QRCoderECBlocks(30, FX
_NEW CBC_QRCoderECB(6, 117), | |
| 614 FX_NEW CBC_QRCoderECB(4,
118)), | |
| 615 FX_NEW CBC_QRCoderECBlocks(28, FX
_NEW CBC_QRCoderECB(6, 45), | |
| 616 FX_NEW CBC_QRCoderECB(14,
46)), | |
| 617 FX_NEW CBC_QRCoderECBlocks(30, FX
_NEW CBC_QRCoderECB(11, 24), | |
| 618 FX_NEW CBC_QRCoderECB(16,
25)), | |
| 619 FX_NEW CBC_QRCoderECBlocks(30, FX
_NEW CBC_QRCoderECB(30, 16), | |
| 620 FX_NEW CBC_QRCoderECB(2,
17)))); | |
| 621 VERSION->Add(FX_NEW CBC_QRCoderVersion(25, | |
| 622 FX_NEW CBC_QRCoderECBlocks(26, FX
_NEW CBC_QRCoderECB(8, 106), | |
| 623 FX_NEW CBC_QRCoderECB(4,
107)), | |
| 624 FX_NEW CBC_QRCoderECBlocks(28, FX
_NEW CBC_QRCoderECB(8, 47), | |
| 625 FX_NEW CBC_QRCoderECB(13,
48)), | |
| 626 FX_NEW CBC_QRCoderECBlocks(30, FX
_NEW CBC_QRCoderECB(7, 24), | |
| 627 FX_NEW CBC_QRCoderECB(22,
25)), | |
| 628 FX_NEW CBC_QRCoderECBlocks(30, FX
_NEW CBC_QRCoderECB(22, 15), | |
| 629 FX_NEW CBC_QRCoderECB(13,
16)))); | |
| 630 VERSION->Add(FX_NEW CBC_QRCoderVersion(26, | |
| 631 FX_NEW CBC_QRCoderECBlocks(28, FX
_NEW CBC_QRCoderECB(10, 114), | |
| 632 FX_NEW CBC_QRCoderECB(2,
115)), | |
| 633 FX_NEW CBC_QRCoderECBlocks(28, FX
_NEW CBC_QRCoderECB(19, 46), | |
| 634 FX_NEW CBC_QRCoderECB(4,
47)), | |
| 635 FX_NEW CBC_QRCoderECBlocks(28, FX
_NEW CBC_QRCoderECB(28, 22), | |
| 636 FX_NEW CBC_QRCoderECB(6,
23)), | |
| 637 FX_NEW CBC_QRCoderECBlocks(30, FX
_NEW CBC_QRCoderECB(33, 16), | |
| 638 FX_NEW CBC_QRCoderECB(4,
17)))); | |
| 639 VERSION->Add(FX_NEW CBC_QRCoderVersion(27, | |
| 640 FX_NEW CBC_QRCoderECBlocks(30, FX
_NEW CBC_QRCoderECB(8, 122), | |
| 641 FX_NEW CBC_QRCoderECB(4,
123)), | |
| 642 FX_NEW CBC_QRCoderECBlocks(28, FX
_NEW CBC_QRCoderECB(22, 45), | |
| 643 FX_NEW CBC_QRCoderECB(3,
46)), | |
| 644 FX_NEW CBC_QRCoderECBlocks(30, FX
_NEW CBC_QRCoderECB(8, 23), | |
| 645 FX_NEW CBC_QRCoderECB(26,
24)), | |
| 646 FX_NEW CBC_QRCoderECBlocks(30, FX
_NEW CBC_QRCoderECB(12, 15), | |
| 647 FX_NEW CBC_QRCoderECB(28,
16)))); | |
| 648 VERSION->Add(FX_NEW CBC_QRCoderVersion(28, | |
| 649 FX_NEW CBC_QRCoderECBlocks(30, FX
_NEW CBC_QRCoderECB(3, 117), | |
| 650 FX_NEW CBC_QRCoderECB(10,
118)), | |
| 651 FX_NEW CBC_QRCoderECBlocks(28, FX
_NEW CBC_QRCoderECB(3, 45), | |
| 652 FX_NEW CBC_QRCoderECB(23,
46)), | |
| 653 FX_NEW CBC_QRCoderECBlocks(30, FX
_NEW CBC_QRCoderECB(4, 24), | |
| 654 FX_NEW CBC_QRCoderECB(31,
25)), | |
| 655 FX_NEW CBC_QRCoderECBlocks(30, FX
_NEW CBC_QRCoderECB(11, 15), | |
| 656 FX_NEW CBC_QRCoderECB(31,
16)))); | |
| 657 VERSION->Add(FX_NEW CBC_QRCoderVersion(29, | |
| 658 FX_NEW CBC_QRCoderECBlocks(30, FX
_NEW CBC_QRCoderECB(7, 116), | |
| 659 FX_NEW CBC_QRCoderECB(7,
117)), | |
| 660 FX_NEW CBC_QRCoderECBlocks(28, FX
_NEW CBC_QRCoderECB(21, 45), | |
| 661 FX_NEW CBC_QRCoderECB(7,
46)), | |
| 662 FX_NEW CBC_QRCoderECBlocks(30, FX
_NEW CBC_QRCoderECB(1, 23), | |
| 663 FX_NEW CBC_QRCoderECB(37,
24)), | |
| 664 FX_NEW CBC_QRCoderECBlocks(30, FX
_NEW CBC_QRCoderECB(19, 15), | |
| 665 FX_NEW CBC_QRCoderECB(26,
16)))); | |
| 666 VERSION->Add(FX_NEW CBC_QRCoderVersion(30, | |
| 667 FX_NEW CBC_QRCoderECBlocks(30, FX
_NEW CBC_QRCoderECB(5, 115), | |
| 668 FX_NEW CBC_QRCoderECB(10,
116)), | |
| 669 FX_NEW CBC_QRCoderECBlocks(28, FX
_NEW CBC_QRCoderECB(19, 47), | |
| 670 FX_NEW CBC_QRCoderECB(10,
48)), | |
| 671 FX_NEW CBC_QRCoderECBlocks(30, FX
_NEW CBC_QRCoderECB(15, 24), | |
| 672 FX_NEW CBC_QRCoderECB(25,
25)), | |
| 673 FX_NEW CBC_QRCoderECBlocks(30, FX
_NEW CBC_QRCoderECB(23, 15), | |
| 674 FX_NEW CBC_QRCoderECB(25,
16)))); | |
| 675 VERSION->Add(FX_NEW CBC_QRCoderVersion(31, | |
| 676 FX_NEW CBC_QRCoderECBlocks(30, FX
_NEW CBC_QRCoderECB(13, 115), | |
| 677 FX_NEW CBC_QRCoderECB(3,
116)), | |
| 678 FX_NEW CBC_QRCoderECBlocks(28, FX
_NEW CBC_QRCoderECB(2, 46), | |
| 679 FX_NEW CBC_QRCoderECB(29,
47)), | |
| 680 FX_NEW CBC_QRCoderECBlocks(30, FX
_NEW CBC_QRCoderECB(42, 24), | |
| 681 FX_NEW CBC_QRCoderECB(1,
25)), | |
| 682 FX_NEW CBC_QRCoderECBlocks(30, FX
_NEW CBC_QRCoderECB(23, 15), | |
| 683 FX_NEW CBC_QRCoderECB(28,
16)))); | |
| 684 VERSION->Add(FX_NEW CBC_QRCoderVersion(32, | |
| 685 FX_NEW CBC_QRCoderECBlocks(30, FX
_NEW CBC_QRCoderECB(17, 115)), | |
| 686 FX_NEW CBC_QRCoderECBlocks(28, FX
_NEW CBC_QRCoderECB(10, 46), | |
| 687 FX_NEW CBC_QRCoderECB(23,
47)), | |
| 688 FX_NEW CBC_QRCoderECBlocks(30, FX
_NEW CBC_QRCoderECB(10, 24), | |
| 689 FX_NEW CBC_QRCoderECB(35,
25)), | |
| 690 FX_NEW CBC_QRCoderECBlocks(30, FX
_NEW CBC_QRCoderECB(19, 15), | |
| 691 FX_NEW CBC_QRCoderECB(35,
16)))); | |
| 692 VERSION->Add(FX_NEW CBC_QRCoderVersion(33, | |
| 693 FX_NEW CBC_QRCoderECBlocks(30, FX
_NEW CBC_QRCoderECB(17, 115), | |
| 694 FX_NEW CBC_QRCoderECB(1,
116)), | |
| 695 FX_NEW CBC_QRCoderECBlocks(28, FX
_NEW CBC_QRCoderECB(14, 46), | |
| 696 FX_NEW CBC_QRCoderECB(21,
47)), | |
| 697 FX_NEW CBC_QRCoderECBlocks(30, FX
_NEW CBC_QRCoderECB(29, 24), | |
| 698 FX_NEW CBC_QRCoderECB(19,
25)), | |
| 699 FX_NEW CBC_QRCoderECBlocks(30, FX
_NEW CBC_QRCoderECB(11, 15), | |
| 700 FX_NEW CBC_QRCoderECB(46,
16)))); | |
| 701 VERSION->Add(FX_NEW CBC_QRCoderVersion(34, | |
| 702 FX_NEW CBC_QRCoderECBlocks(30, FX
_NEW CBC_QRCoderECB(13, 115), | |
| 703 FX_NEW CBC_QRCoderECB(6,
116)), | |
| 704 FX_NEW CBC_QRCoderECBlocks(28, FX
_NEW CBC_QRCoderECB(14, 46), | |
| 705 FX_NEW CBC_QRCoderECB(23,
47)), | |
| 706 FX_NEW CBC_QRCoderECBlocks(30, FX
_NEW CBC_QRCoderECB(44, 24), | |
| 707 FX_NEW CBC_QRCoderECB(7,
25)), | |
| 708 FX_NEW CBC_QRCoderECBlocks(30, FX
_NEW CBC_QRCoderECB(59, 16), | |
| 709 FX_NEW CBC_QRCoderECB(1,
17)))); | |
| 710 VERSION->Add(FX_NEW CBC_QRCoderVersion(35, | |
| 711 FX_NEW CBC_QRCoderECBlocks(30, FX
_NEW CBC_QRCoderECB(12, 121), | |
| 712 FX_NEW CBC_QRCoderECB(7,
122)), | |
| 713 FX_NEW CBC_QRCoderECBlocks(28, FX
_NEW CBC_QRCoderECB(12, 47), | |
| 714 FX_NEW CBC_QRCoderECB(26,
48)), | |
| 715 FX_NEW CBC_QRCoderECBlocks(30, FX
_NEW CBC_QRCoderECB(39, 24), | |
| 716 FX_NEW CBC_QRCoderECB(14,
25)), | |
| 717 FX_NEW CBC_QRCoderECBlocks(30, FX
_NEW CBC_QRCoderECB(22, 15), | |
| 718 FX_NEW CBC_QRCoderECB(41,
16)))); | |
| 719 VERSION->Add(FX_NEW CBC_QRCoderVersion(36, | |
| 720 FX_NEW CBC_QRCoderECBlocks(30, FX
_NEW CBC_QRCoderECB(6, 121), | |
| 721 FX_NEW CBC_QRCoderECB(14,
122)), | |
| 722 FX_NEW CBC_QRCoderECBlocks(28, FX
_NEW CBC_QRCoderECB(6, 47), | |
| 723 FX_NEW CBC_QRCoderECB(34,
48)), | |
| 724 FX_NEW CBC_QRCoderECBlocks(30, FX
_NEW CBC_QRCoderECB(46, 24), | |
| 725 FX_NEW CBC_QRCoderECB(10,
25)), | |
| 726 FX_NEW CBC_QRCoderECBlocks(30, FX
_NEW CBC_QRCoderECB(2, 15), | |
| 727 FX_NEW CBC_QRCoderECB(64,
16)))); | |
| 728 VERSION->Add(FX_NEW CBC_QRCoderVersion(37, | |
| 729 FX_NEW CBC_QRCoderECBlocks(30, FX
_NEW CBC_QRCoderECB(17, 122), | |
| 730 FX_NEW CBC_QRCoderECB(4,
123)), | |
| 731 FX_NEW CBC_QRCoderECBlocks(28, FX
_NEW CBC_QRCoderECB(29, 46), | |
| 732 FX_NEW CBC_QRCoderECB(14,
47)), | |
| 733 FX_NEW CBC_QRCoderECBlocks(30, FX
_NEW CBC_QRCoderECB(49, 24), | |
| 734 FX_NEW CBC_QRCoderECB(10,
25)), | |
| 735 FX_NEW CBC_QRCoderECBlocks(30, FX
_NEW CBC_QRCoderECB(24, 15), | |
| 736 FX_NEW CBC_QRCoderECB(46,
16)))); | |
| 737 VERSION->Add(FX_NEW CBC_QRCoderVersion(38, | |
| 738 FX_NEW CBC_QRCoderECBlocks(30, FX
_NEW CBC_QRCoderECB(4, 122), | |
| 739 FX_NEW CBC_QRCoderECB(18,
123)), | |
| 740 FX_NEW CBC_QRCoderECBlocks(28, FX
_NEW CBC_QRCoderECB(13, 46), | |
| 741 FX_NEW CBC_QRCoderECB(32,
47)), | |
| 742 FX_NEW CBC_QRCoderECBlocks(30, FX
_NEW CBC_QRCoderECB(48, 24), | |
| 743 FX_NEW CBC_QRCoderECB(14,
25)), | |
| 744 FX_NEW CBC_QRCoderECBlocks(30, FX
_NEW CBC_QRCoderECB(42, 15), | |
| 745 FX_NEW CBC_QRCoderECB(32,
16)))); | |
| 746 VERSION->Add(FX_NEW CBC_QRCoderVersion(39, | |
| 747 FX_NEW CBC_QRCoderECBlocks(30, FX
_NEW CBC_QRCoderECB(20, 117), | |
| 748 FX_NEW CBC_QRCoderECB(4,
118)), | |
| 749 FX_NEW CBC_QRCoderECBlocks(28, FX
_NEW CBC_QRCoderECB(40, 47), | |
| 750 FX_NEW CBC_QRCoderECB(7,
48)), | |
| 751 FX_NEW CBC_QRCoderECBlocks(30, FX
_NEW CBC_QRCoderECB(43, 24), | |
| 752 FX_NEW CBC_QRCoderECB(22,
25)), | |
| 753 FX_NEW CBC_QRCoderECBlocks(30, FX
_NEW CBC_QRCoderECB(10, 15), | |
| 754 FX_NEW CBC_QRCoderECB(67,
16)))); | |
| 755 VERSION->Add(FX_NEW CBC_QRCoderVersion(40, | |
| 756 FX_NEW CBC_QRCoderECBlocks(30, FX
_NEW CBC_QRCoderECB(19, 118), | |
| 757 FX_NEW CBC_QRCoderECB(6,
119)), | |
| 758 FX_NEW CBC_QRCoderECBlocks(28, FX
_NEW CBC_QRCoderECB(18, 47), | |
| 759 FX_NEW CBC_QRCoderECB(31,
48)), | |
| 760 FX_NEW CBC_QRCoderECBlocks(30, FX
_NEW CBC_QRCoderECB(34, 24), | |
| 761 FX_NEW CBC_QRCoderECB(34,
25)), | |
| 762 FX_NEW CBC_QRCoderECBlocks(30, FX
_NEW CBC_QRCoderECB(20, 15), | |
| 763 FX_NEW CBC_QRCoderECB(61,
16)))); | |
| 764 } | |
| 765 if(versionNumber < 1 || versionNumber > 40) { | |
| 766 e = BCExceptionIllegalArgument; | |
| 767 BC_EXCEPTION_CHECK_ReturnValue(e, NULL); | |
| 768 } | |
| 769 return (CBC_QRCoderVersion*)(*VERSION)[versionNumber - 1]; | |
| 770 } | |
| 771 void CBC_QRCoderVersion::Destroy() | |
| 772 { | |
| 773 FX_INT32 i; | |
| 774 for(i = 0; i < VERSION->GetSize(); i++) { | |
| 775 delete ( (CBC_QRCoderVersion*)(*VERSION)[i] ); | |
| 776 } | |
| 777 } | |
| OLD | NEW |