diff --git a/backend/gs1.c b/backend/gs1.c index 755e6817..78382ac5 100644 --- a/backend/gs1.c +++ b/backend/gs1.c @@ -1271,7 +1271,7 @@ static int longitude(const unsigned char *data, int data_len, int offset, int mi return 1; } -/* Check AIDC media type (GSCN-22-345 Figure 3.8.22-2) */ +/* Check AIDC media type (GSCN 22-345 Figure 3.8.22-2) */ static int mediatype(const unsigned char *data, int data_len, int offset, int min, int max, int *p_err_no, int *p_err_posn, char err_msg[50], const int length_only) { @@ -1301,6 +1301,33 @@ static int mediatype(const unsigned char *data, int data_len, int offset, int mi return 1; } +/* Check negative temperature indicator (GSCN 22-353) */ +static int hyphen(const unsigned char *data, int data_len, int offset, int min, int max, int *p_err_no, + int *p_err_posn, char err_msg[50], const int length_only) { + + data_len -= offset; + + if (data_len < min) { + return 0; + } + + if (!length_only && data_len) { + const unsigned char *d = data + offset; + const unsigned char *const de = d + (data_len > max ? max : data_len); + + for (; d < de; d++) { + if (*d != '-') { + *p_err_no = 3; + *p_err_posn = d - data + 1; + strcpy(err_msg, "Invalid temperature indicator (hyphen only)"); + return 0; + } + } + } + + return 1; +} + /* Generated by "php backend/tools/gen_gs1_linter.php > backend/gs1_lint.h" */ #include "gs1_lint.h" diff --git a/backend/gs1_lint.h b/backend/gs1_lint.h index 07471fdc..c8499537 100644 --- a/backend/gs1_lint.h +++ b/backend/gs1_lint.h @@ -299,6 +299,16 @@ static int n6_yymmdd(const unsigned char *data, const int data_len, && yymmdd(data, data_len, 0, 6, 6, p_err_no, p_err_posn, err_msg, 0); } +/* N6 [X1],hyphen (Used by MAX TEMP F., MAX TEMP C., MIN TEMP F., MIN TEMP C.) */ +static int n6__x1__hyphen(const unsigned char *data, const int data_len, + int *p_err_no, int *p_err_posn, char err_msg[50]) { + return data_len >= 6 && data_len <= 7 + && hyphen(data, data_len, 6, 0, 1, p_err_no, p_err_posn, err_msg, 1 /*length_only*/) + && numeric(data, data_len, 0, 6, 6, p_err_no, p_err_posn, err_msg) + && cset82(data, data_len, 6, 0, 1, p_err_no, p_err_posn, err_msg) + && hyphen(data, data_len, 6, 0, 1, p_err_no, p_err_posn, err_msg, 0); +} + /* N13 (Used by NSN) */ static int n13(const unsigned char *data, const int data_len, int *p_err_no, int *p_err_posn, char err_msg[50]) { @@ -748,6 +758,9 @@ static int gs1_lint(const int ai, const unsigned char *data, const int data_len, if (ai == 4326) { return n6_yymmdd(data, data_len, p_err_no, p_err_posn, err_msg); } + if (ai >= 4330 && ai <= 4333) { + return n6__x1__hyphen(data, data_len, p_err_no, p_err_posn, err_msg); + } } else if (ai < 7100) { diff --git a/backend/tests/test_gs1.c b/backend/tests/test_gs1.c index 172e8376..171c19d6 100644 --- a/backend/tests/test_gs1.c +++ b/backend/tests/test_gs1.c @@ -1019,338 +1019,342 @@ static void test_gs1_verify(const testCtx *const p_ctx) { /*659*/ { "[4328]121212", ZINT_ERROR_INVALID_DATA, "" }, /*660*/ { "[4329]121212", ZINT_ERROR_INVALID_DATA, "" }, /*661*/ { "[433]121212", ZINT_ERROR_INVALID_DATA, "" }, - /*662*/ { "[4330]121212", ZINT_ERROR_INVALID_DATA, "" }, - /*663*/ { "[44]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*664*/ { "[440]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*665*/ { "[4400]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*666*/ { "[49]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*667*/ { "[490]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*668*/ { "[4900]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*669*/ { "[499]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*670*/ { "[4990]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*671*/ { "[50]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*672*/ { "[500]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*673*/ { "[5000]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*674*/ { "[51]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*675*/ { "[510]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*676*/ { "[5100]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*677*/ { "[59]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*678*/ { "[590]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*679*/ { "[5900]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*680*/ { "[60]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*681*/ { "[600]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*682*/ { "[6000]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*683*/ { "[61]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*684*/ { "[610]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*685*/ { "[6100]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*686*/ { "[69]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*687*/ { "[690]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*688*/ { "[6900]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*689*/ { "[70]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*690*/ { "[700]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*691*/ { "[7000]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*692*/ { "[7001]1234567890123", 0, "70011234567890123" }, - /*693*/ { "[7001]123456789012", ZINT_ERROR_INVALID_DATA, "" }, - /*694*/ { "[7002]abcdefghijklmnopqrstuvwxyz1234", 0, "7002abcdefghijklmnopqrstuvwxyz1234" }, - /*695*/ { "[7002]abcdefghijklmnopqrstuvwxyz12345", ZINT_ERROR_INVALID_DATA, "" }, - /*696*/ { "[7003]1212121212", 0, "70031212121212" }, - /*697*/ { "[7003]121212121", ZINT_ERROR_INVALID_DATA, "" }, - /*698*/ { "[7004]1234", 0, "70041234" }, - /*699*/ { "[7004]12345", ZINT_ERROR_INVALID_DATA, "" }, - /*700*/ { "[7005]abcdefghijkl", 0, "7005abcdefghijkl" }, - /*701*/ { "[7005]abcdefghijklm", ZINT_ERROR_INVALID_DATA, "" }, - /*702*/ { "[7006]200132", ZINT_WARN_NONCOMPLIANT, "7006200132" }, - /*703*/ { "[7006]200100", ZINT_WARN_NONCOMPLIANT, "7006200100" }, - /*704*/ { "[7006]200120", 0, "7006200120" }, - /*705*/ { "[7006]2001320", ZINT_ERROR_INVALID_DATA, "" }, - /*706*/ { "[7007]010101121212", 0, "7007010101121212" }, - /*707*/ { "[7007]01010112121", ZINT_ERROR_INVALID_DATA, "" }, - /*708*/ { "[7007]A1010112121", ZINT_ERROR_INVALID_DATA, "" }, - /*709*/ { "[7007]121212", 0, "7007121212" }, - /*710*/ { "[7007]12121", ZINT_ERROR_INVALID_DATA, "" }, - /*711*/ { "[7007]1212121", ZINT_ERROR_INVALID_DATA, "" }, - /*712*/ { "[7008]abc", 0, "7008abc" }, - /*713*/ { "[7008]abcd", ZINT_ERROR_INVALID_DATA, "" }, - /*714*/ { "[7009]abcdefghij", 0, "7009abcdefghij" }, - /*715*/ { "[7009]abcdefghijk", ZINT_ERROR_INVALID_DATA, "" }, - /*716*/ { "[7010]01", 0, "701001" }, - /*717*/ { "[7010]1", 0, "70101" }, - /*718*/ { "[7010]012", ZINT_ERROR_INVALID_DATA, "" }, - /*719*/ { "[7011]121212", 0, "7011121212" }, - /*720*/ { "[7011]1212121212", 0, "70111212121212" }, - /*721*/ { "[7011]12121", ZINT_ERROR_INVALID_DATA, "" }, - /*722*/ { "[7011]121212121", ZINT_ERROR_INVALID_DATA, "" }, - /*723*/ { "[7012]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*724*/ { "[7019]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*725*/ { "[7020]abcdefghijklmnopqrst", 0, "7020abcdefghijklmnopqrst" }, - /*726*/ { "[7020]abcdefghijklmnopqrstu", ZINT_ERROR_INVALID_DATA, "" }, - /*727*/ { "[7021]abcdefghijklmnopqrst", 0, "7021abcdefghijklmnopqrst" }, - /*728*/ { "[7021]abcdefghijklmnopqrstu", ZINT_ERROR_INVALID_DATA, "" }, - /*729*/ { "[7022]abcdefghijklmnopqrst", 0, "7022abcdefghijklmnopqrst" }, - /*730*/ { "[7022]abcdefghijklmnopqrstu", ZINT_ERROR_INVALID_DATA, "" }, - /*731*/ { "[7023]1234abcdefghijklmnopqrstuvwxyz", 0, "70231234abcdefghijklmnopqrstuvwxyz" }, - /*732*/ { "[7023]1234abcdefghijklmnopqrstuvwxyza", ZINT_ERROR_INVALID_DATA, "" }, - /*733*/ { "[7024]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*734*/ { "[7025]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*735*/ { "[7029]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*736*/ { "[7030]123abcdefghijklmnopqrstuvwxyza", ZINT_WARN_NONCOMPLIANT, "7030123abcdefghijklmnopqrstuvwxyza" }, - /*737*/ { "[7030]004abcdefghijklmnopqrstuvwxyza", 0, "7030004abcdefghijklmnopqrstuvwxyza" }, - /*738*/ { "[7030]123abcdefghijklmnopqrstuvwxyzab", ZINT_ERROR_INVALID_DATA, "" }, - /*739*/ { "[7031]123abcdefghijklmnopqrstuvwxyza", ZINT_WARN_NONCOMPLIANT, "7031123abcdefghijklmnopqrstuvwxyza" }, - /*740*/ { "[7031]004abcdefghijklmnopqrstuvwxyza", 0, "7031004abcdefghijklmnopqrstuvwxyza" }, - /*741*/ { "[7031]123abcdefghijklmnopqrstuvwxyzab", ZINT_ERROR_INVALID_DATA, "" }, - /*742*/ { "[7032]004abcdefghijklmnopqrstuvwxyza", 0, "7032004abcdefghijklmnopqrstuvwxyza" }, - /*743*/ { "[7032]004abcdefghijklmnopqrstuvwxyzab", ZINT_ERROR_INVALID_DATA, "" }, - /*744*/ { "[7033]004abcdefghijklmnopqrstuvwxyza", 0, "7033004abcdefghijklmnopqrstuvwxyza" }, - /*745*/ { "[7033]004abcdefghijklmnopqrstuvwxyzab", ZINT_ERROR_INVALID_DATA, "" }, - /*746*/ { "[7034]004abcdefghijklmnopqrstuvwxyza", 0, "7034004abcdefghijklmnopqrstuvwxyza" }, - /*747*/ { "[7034]004abcdefghijklmnopqrstuvwxyzab", ZINT_ERROR_INVALID_DATA, "" }, - /*748*/ { "[7035]004abcdefghijklmnopqrstuvwxyza", 0, "7035004abcdefghijklmnopqrstuvwxyza" }, - /*749*/ { "[7035]004abcdefghijklmnopqrstuvwxyzab", ZINT_ERROR_INVALID_DATA, "" }, - /*750*/ { "[7036]004abcdefghijklmnopqrstuvwxyza", 0, "7036004abcdefghijklmnopqrstuvwxyza" }, - /*751*/ { "[7036]004abcdefghijklmnopqrstuvwxyzab", ZINT_ERROR_INVALID_DATA, "" }, - /*752*/ { "[7037]004abcdefghijklmnopqrstuvwxyza", 0, "7037004abcdefghijklmnopqrstuvwxyza" }, - /*753*/ { "[7037]004abcdefghijklmnopqrstuvwxyzab", ZINT_ERROR_INVALID_DATA, "" }, - /*754*/ { "[7038]004abcdefghijklmnopqrstuvwxyza", 0, "7038004abcdefghijklmnopqrstuvwxyza" }, - /*755*/ { "[7038]004abcdefghijklmnopqrstuvwxyzab", ZINT_ERROR_INVALID_DATA, "" }, - /*756*/ { "[7039]004abcdefghijklmnopqrstuvwxyza", 0, "7039004abcdefghijklmnopqrstuvwxyza" }, - /*757*/ { "[7039]123abcdefghijklmnopqrstuvwxyzab", ZINT_ERROR_INVALID_DATA, "" }, - /*758*/ { "[7040]1abc", 0, "70401abc" }, - /*759*/ { "[7040]1ab", ZINT_ERROR_INVALID_DATA, "" }, - /*760*/ { "[7040]1abcd", ZINT_ERROR_INVALID_DATA, "" }, - /*761*/ { "[7041]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*762*/ { "[7042]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*763*/ { "[7050]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*764*/ { "[7090]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*765*/ { "[7099]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*766*/ { "[71]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*767*/ { "[710]abcdefghijklmnopqrst", 0, "710abcdefghijklmnopqrst" }, - /*768*/ { "[710]abcdefghijklmnopqrstu", ZINT_ERROR_INVALID_DATA, "" }, - /*769*/ { "[7100]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*770*/ { "[711]abcdefghijklmnopqrst", 0, "711abcdefghijklmnopqrst" }, - /*771*/ { "[711]abcdefghijklmnopqrstu", ZINT_ERROR_INVALID_DATA, "" }, - /*772*/ { "[712]abcdefghijklmnopqrst", 0, "712abcdefghijklmnopqrst" }, - /*773*/ { "[712]abcdefghijklmnopqrstu", ZINT_ERROR_INVALID_DATA, "" }, - /*774*/ { "[713]abcdefghijklmnopqrst", 0, "713abcdefghijklmnopqrst" }, - /*775*/ { "[713]abcdefghijklmnopqrstu", ZINT_ERROR_INVALID_DATA, "" }, - /*776*/ { "[714]abcdefghijklmnopqrst", 0, "714abcdefghijklmnopqrst" }, - /*777*/ { "[714]abcdefghijklmnopqrstu", ZINT_ERROR_INVALID_DATA, "" }, - /*778*/ { "[715]abcdefghijklmnopqrst", 0, "715abcdefghijklmnopqrst" }, - /*779*/ { "[715]abcdefghijklmnopqrstu", ZINT_ERROR_INVALID_DATA, "" }, - /*780*/ { "[716]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*781*/ { "[719]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*782*/ { "[72]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*783*/ { "[720]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*784*/ { "[7200]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*785*/ { "[721]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*786*/ { "[7210]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*787*/ { "[7220]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*788*/ { "[7230]EMabcdefghijklmnopqrstuvwxyzab", 0, "7230EMabcdefghijklmnopqrstuvwxyzab" }, - /*789*/ { "[7230]EMabcdefghijklmnopqrstuvwxyzabc", ZINT_ERROR_INVALID_DATA, "" }, - /*790*/ { "[7230]EM", ZINT_ERROR_INVALID_DATA, "" }, - /*791*/ { "[7231]EMabcdefghijklmnopqrstuvwxyzab", 0, "7231EMabcdefghijklmnopqrstuvwxyzab" }, - /*792*/ { "[7231]EMabcdefghijklmnopqrstuvwxyzabc", ZINT_ERROR_INVALID_DATA, "" }, - /*793*/ { "[7232]EMabcdefghijklmnopqrstuvwxyzab", 0, "7232EMabcdefghijklmnopqrstuvwxyzab" }, - /*794*/ { "[7232]EMabcdefghijklmnopqrstuvwxyzabc", ZINT_ERROR_INVALID_DATA, "" }, - /*795*/ { "[7233]EMabcdefghijklmnopqrstuvwxyzab", 0, "7233EMabcdefghijklmnopqrstuvwxyzab" }, - /*796*/ { "[7233]EMabcdefghijklmnopqrstuvwxyzabc", ZINT_ERROR_INVALID_DATA, "" }, - /*797*/ { "[7234]EMabcdefghijklmnopqrstuvwxyzab", 0, "7234EMabcdefghijklmnopqrstuvwxyzab" }, - /*798*/ { "[7234]EMabcdefghijklmnopqrstuvwxyzabc", ZINT_ERROR_INVALID_DATA, "" }, - /*799*/ { "[7235]EMabcdefghijklmnopqrstuvwxyzab", 0, "7235EMabcdefghijklmnopqrstuvwxyzab" }, - /*800*/ { "[7235]EMabcdefghijklmnopqrstuvwxyzabc", ZINT_ERROR_INVALID_DATA, "" }, - /*801*/ { "[7236]EMabcdefghijklmnopqrstuvwxyzab", 0, "7236EMabcdefghijklmnopqrstuvwxyzab" }, - /*802*/ { "[7236]EMabcdefghijklmnopqrstuvwxyzabc", ZINT_ERROR_INVALID_DATA, "" }, - /*803*/ { "[7237]EMabcdefghijklmnopqrstuvwxyzab", 0, "7237EMabcdefghijklmnopqrstuvwxyzab" }, - /*804*/ { "[7237]EMabcdefghijklmnopqrstuvwxyzabc", ZINT_ERROR_INVALID_DATA, "" }, - /*805*/ { "[7238]EMabcdefghijklmnopqrstuvwxyzab", 0, "7238EMabcdefghijklmnopqrstuvwxyzab" }, - /*806*/ { "[7238]EMabcdefghijklmnopqrstuvwxyzabc", ZINT_ERROR_INVALID_DATA, "" }, - /*807*/ { "[7239]EMabcdefghijklmnopqrstuvwxyzab", 0, "7239EMabcdefghijklmnopqrstuvwxyzab" }, - /*808*/ { "[7239]EMabcdefghijklmnopqrstuvwxyzabc", ZINT_ERROR_INVALID_DATA, "" }, - /*809*/ { "[7239]E", ZINT_ERROR_INVALID_DATA, "" }, - /*810*/ { "[7240]abcdefghijklmnopqrst", 0, "7240abcdefghijklmnopqrst" }, - /*811*/ { "[7240]abcdefghijklmnopqrstu", ZINT_ERROR_INVALID_DATA, "" }, - /*812*/ { "[7241]99", 0, "724199" }, - /*813*/ { "[7241]100", ZINT_ERROR_INVALID_DATA, "" }, - /*814*/ { "[7242]abcdefghijklmnopqrstuvwxy", 0, "7242abcdefghijklmnopqrstuvwxy" }, - /*815*/ { "[7242]abcdefghijklmnopqrstuvwxyz", ZINT_ERROR_INVALID_DATA, "" }, - /*816*/ { "[7243]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*817*/ { "[7249]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*818*/ { "[7250]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*819*/ { "[7299]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*820*/ { "[73]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*821*/ { "[7300]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*822*/ { "[74]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*823*/ { "[7400]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*824*/ { "[79]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*825*/ { "[7900]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*826*/ { "[7999]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*827*/ { "[80]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*828*/ { "[800]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*829*/ { "[8000]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*830*/ { "[8001]12345678901234", ZINT_WARN_NONCOMPLIANT, "800112345678901234" }, - /*831*/ { "[8001]12345678901204", 0, "800112345678901204" }, - /*832*/ { "[8001]1234123456789012345", ZINT_ERROR_INVALID_DATA, "" }, - /*833*/ { "[8002]abcdefghijklmnopqrst", 0, "8002abcdefghijklmnopqrst" }, - /*834*/ { "[8002]abcdefghijklmnopqrstu", ZINT_ERROR_INVALID_DATA, "" }, - /*835*/ { "[8003]01234567890123abcdefghijklmnop", ZINT_WARN_NONCOMPLIANT, "800301234567890123abcdefghijklmnop" }, - /*836*/ { "[8003]01234567890128abcdefghijklmnop", 0, "800301234567890128abcdefghijklmnop" }, - /*837*/ { "[8003]01234567890128abcdefghijklmnopq", ZINT_ERROR_INVALID_DATA, "" }, - /*838*/ { "[8004]abcdefghijklmnopqrstuvwxyz1234", ZINT_WARN_NONCOMPLIANT, "8004abcdefghijklmnopqrstuvwxyz1234" }, - /*839*/ { "[8004]12cdefghijklmnopqrstuvwxyz1234", 0, "800412cdefghijklmnopqrstuvwxyz1234" }, - /*840*/ { "[8004]abcdefghijklmnopqrstuvwxyz12345", ZINT_ERROR_INVALID_DATA, "" }, - /*841*/ { "[8005]123456", 0, "8005123456" }, - /*842*/ { "[8005]12345", ZINT_ERROR_INVALID_DATA, "" }, - /*843*/ { "[8005]1234567", ZINT_ERROR_INVALID_DATA, "" }, - /*844*/ { "[8006]123456789012341212", ZINT_WARN_NONCOMPLIANT, "8006123456789012341212" }, - /*845*/ { "[8006]123456789012311212", 0, "8006123456789012311212" }, - /*846*/ { "[8006]12345678901234121", ZINT_ERROR_INVALID_DATA, "" }, - /*847*/ { "[8006]1234567890123412123", ZINT_ERROR_INVALID_DATA, "" }, - /*848*/ { "[8007]abcdefghijklmnopqrstuvwxyz12345678", ZINT_WARN_NONCOMPLIANT, "8007abcdefghijklmnopqrstuvwxyz12345678" }, - /*849*/ { "[8007]AD95EFGHIJKLMNOPQRSTUVWXYZ12345678", 0, "8007AD95EFGHIJKLMNOPQRSTUVWXYZ12345678" }, - /*850*/ { "[8007]AD95EFGHIJKLMNOPQRSTUVWXYZ123456789", ZINT_ERROR_INVALID_DATA, "" }, - /*851*/ { "[8008]123456121212", ZINT_WARN_NONCOMPLIANT, "8008123456121212" }, - /*852*/ { "[8008]121256121212", ZINT_WARN_NONCOMPLIANT, "8008121256121212" }, - /*853*/ { "[8008]121231121212", 0, "8008121231121212" }, - /*854*/ { "[8008]1234561212", ZINT_WARN_NONCOMPLIANT, "80081234561212" }, - /*855*/ { "[8008]1212311212", 0, "80081212311212" }, - /*856*/ { "[8008]12345612", ZINT_WARN_NONCOMPLIANT, "800812345612" }, - /*857*/ { "[8008]12010112", 0, "800812010112" }, - /*858*/ { "[8008]1234561", ZINT_ERROR_INVALID_DATA, "" }, - /*859*/ { "[8008]123456121", ZINT_ERROR_INVALID_DATA, "" }, - /*860*/ { "[8008]12345612121", ZINT_ERROR_INVALID_DATA, "" }, - /*861*/ { "[8008]1234561212123", ZINT_ERROR_INVALID_DATA, "" }, - /*862*/ { "[8009]12345678901234567890123456789012345678901234567890", 0, "800912345678901234567890123456789012345678901234567890" }, - /*863*/ { "[8009]123456789012345678901234567890123456789012345678901", ZINT_ERROR_INVALID_DATA, "" }, - /*864*/ { "[8010]1234abcdefghijklmnopqrstuvwxyz1", ZINT_ERROR_INVALID_DATA, "" }, - /*865*/ { "[8011]123456789012", 0, "8011123456789012" }, - /*866*/ { "[8011]1234567890123", ZINT_ERROR_INVALID_DATA, "" }, - /*867*/ { "[8012]abcdefghijklmnopqrst", 0, "8012abcdefghijklmnopqrst" }, - /*868*/ { "[8012]abcdefghijklmnopqrstuv", ZINT_ERROR_INVALID_DATA, "" }, - /*869*/ { "[8013]1234abcdefghijklmnopqrsQP", 0, "80131234abcdefghijklmnopqrsQP" }, - /*870*/ { "[8013]1234abcdefghijklmnopqrsQPv", ZINT_ERROR_INVALID_DATA, "" }, - /*871*/ { "[8014]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*872*/ { "[8016]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*873*/ { "[8017]313131313131313139", ZINT_WARN_NONCOMPLIANT, "8017313131313131313139" }, - /*874*/ { "[8017]313131313131313131", 0, "8017313131313131313131" }, - /*875*/ { "[8017]31313131313131313", ZINT_ERROR_INVALID_DATA, "" }, - /*876*/ { "[8017]3131313131313131390", ZINT_ERROR_INVALID_DATA, "" }, - /*877*/ { "[8018]313131313131313139", ZINT_WARN_NONCOMPLIANT, "8018313131313131313139" }, - /*878*/ { "[8018]313131313131313131", 0, "8018313131313131313131" }, - /*879*/ { "[8018]31313131313131313", ZINT_ERROR_INVALID_DATA, "" }, - /*880*/ { "[8018]3131313131313131390", ZINT_ERROR_INVALID_DATA, "" }, - /*881*/ { "[8019]1234567890", 0, "80191234567890" }, - /*882*/ { "[8019]12345678901", ZINT_ERROR_INVALID_DATA, "" }, - /*883*/ { "[8020]abcdefghijklmnopqrstuvwxy", 0, "8020abcdefghijklmnopqrstuvwxy" }, - /*884*/ { "[8020]abcdefghijklmnopqrstuvwxyz", ZINT_ERROR_INVALID_DATA, "" }, - /*885*/ { "[8021]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*886*/ { "[8025]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*887*/ { "[8026]123456789012341212", ZINT_WARN_NONCOMPLIANT, "8026123456789012341212" }, - /*888*/ { "[8026]123456789012311212", 0, "8026123456789012311212" }, - /*889*/ { "[8026]1234567890123451212", ZINT_ERROR_INVALID_DATA, "" }, - /*890*/ { "[8026]12345678901234512", ZINT_ERROR_INVALID_DATA, "" }, - /*891*/ { "[8027]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*892*/ { "[8030]-1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_ABCDEFGHIJKLMNOPQRSTUVWXYZ", 0, "8030-1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_ABCDEFGHIJKLMNOPQRSTUVWXYZ" }, - /*893*/ { "[8030]-1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_ABCDEFGHIJKLMNOPQRSTUVWXYZ1", ZINT_ERROR_INVALID_DATA, "" }, - /*894*/ { "[8031]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*895*/ { "[8040]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*896*/ { "[8050]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*897*/ { "[8060]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*898*/ { "[8070]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*899*/ { "[8080]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*900*/ { "[8090]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*901*/ { "[8099]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*902*/ { "[81]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*903*/ { "[8100]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*904*/ { "[8109]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*905*/ { "[8110]5123456789011234565123455123450123105123450123512345678901320123190000", 0, "81105123456789011234565123455123450123105123450123512345678901320123190000" }, - /*906*/ { "[8110]51234567890112345651234551234501231051234501235123456789013201231900001", ZINT_ERROR_INVALID_DATA, "" }, - /*907*/ { "[8111]1234", 0, "81111234" }, - /*908*/ { "[8111]12345", ZINT_ERROR_INVALID_DATA, "" }, - /*909*/ { "[8111]123", ZINT_ERROR_INVALID_DATA, "" }, - /*910*/ { "[8112]1234567890123456789012345678901234567890123456789012345678901234567890", ZINT_WARN_NONCOMPLIANT, "81121234567890123456789012345678901234567890123456789012345678901234567890" }, - /*911*/ { "[8112]12345678901234567890123456789012345678901234567890123456789012345678901", ZINT_ERROR_INVALID_DATA, "" }, - /*912*/ { "[8112]061234567890121234569123456789012345", 0, "8112061234567890121234569123456789012345" }, - /*913*/ { "[8113]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*914*/ { "[8120]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*915*/ { "[8130]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*916*/ { "[8140]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*917*/ { "[8150]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*918*/ { "[8190]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*919*/ { "[8199]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*920*/ { "[82]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*921*/ { "[8200]1234567890123456789012345678901234567890123456789012345678901234567890", 0, "82001234567890123456789012345678901234567890123456789012345678901234567890" }, - /*922*/ { "[8201]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*923*/ { "[8210]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*924*/ { "[8220]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*925*/ { "[8230]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*926*/ { "[8240]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*927*/ { "[8250]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*928*/ { "[8290]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*929*/ { "[8299]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*930*/ { "[83]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*931*/ { "[830]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*932*/ { "[8300]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*933*/ { "[84]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*934*/ { "[840]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*935*/ { "[8400]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*936*/ { "[85]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*937*/ { "[850]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*938*/ { "[8500]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*939*/ { "[89]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*940*/ { "[890]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*941*/ { "[8900]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*942*/ { "[90]abcdefghijklmnopqrstuvwxyz1234", 0, "90abcdefghijklmnopqrstuvwxyz1234" }, - /*943*/ { "[90]abcdefghijklmnopqrstuvwxyz12345", ZINT_ERROR_INVALID_DATA, "" }, - /*944*/ { "[900]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*945*/ { "[9000]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*946*/ { "[91]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890", 0, "91123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890" }, - /*947*/ { "[91]1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901", ZINT_ERROR_INVALID_DATA, "" }, - /*948*/ { "[910]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*949*/ { "[9100]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*950*/ { "[92]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890", 0, "92123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890" }, - /*951*/ { "[92]1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901", ZINT_ERROR_INVALID_DATA, "" }, - /*952*/ { "[920]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*953*/ { "[9200]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*954*/ { "[93]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890", 0, "93123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890" }, - /*955*/ { "[93]1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901", ZINT_ERROR_INVALID_DATA, "" }, - /*956*/ { "[930]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*957*/ { "[9300]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*958*/ { "[94]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890", 0, "94123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890" }, - /*959*/ { "[94]1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901", ZINT_ERROR_INVALID_DATA, "" }, - /*960*/ { "[940]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*961*/ { "[9400]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*962*/ { "[95]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890", 0, "95123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890" }, - /*963*/ { "[95]1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901", ZINT_ERROR_INVALID_DATA, "" }, - /*964*/ { "[950]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*965*/ { "[9500]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*966*/ { "[96]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890", 0, "96123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890" }, - /*967*/ { "[96]1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901", ZINT_ERROR_INVALID_DATA, "" }, - /*968*/ { "[960]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*969*/ { "[9600]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*970*/ { "[97]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890", 0, "97123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890" }, - /*971*/ { "[97]1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901", ZINT_ERROR_INVALID_DATA, "" }, - /*972*/ { "[970]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*973*/ { "[9700]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*974*/ { "[98]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890", 0, "98123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890" }, - /*975*/ { "[98]1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901", ZINT_ERROR_INVALID_DATA, "" }, - /*976*/ { "[980]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*977*/ { "[9800]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*978*/ { "[99]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890", 0, "99123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890" }, - /*979*/ { "[99]1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901", ZINT_ERROR_INVALID_DATA, "" }, - /*980*/ { "[990]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*981*/ { "[9900]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*982*/ { "[9999]1234", ZINT_ERROR_INVALID_DATA, "" }, - /*983*/ { "[01]12345678901234[7006]200101", ZINT_WARN_NONCOMPLIANT, "01123456789012347006200101" }, - /*984*/ { "[01]12345678901231[7006]200101", 0, "01123456789012317006200101" }, - /*985*/ { "[3900]1234567890[01]12345678901234", ZINT_WARN_NONCOMPLIANT, "39001234567890[0112345678901234" }, - /*986*/ { "[3900]1234567890[01]12345678901231", 0, "39001234567890[0112345678901231" }, - /*987*/ { "[253]12345678901234[3901]12345678901234[20]12", ZINT_WARN_NONCOMPLIANT, "25312345678901234[390112345678901234[2012" }, - /*988*/ { "[253]12345678901284[3901]12345678901234[20]12", 0, "25312345678901284[390112345678901234[2012" }, - /*989*/ { "[253]12345678901234[01]12345678901234[3901]12345678901234[20]12", ZINT_WARN_NONCOMPLIANT, "25312345678901234[0112345678901234390112345678901234[2012" }, - /*990*/ { "[253]12345678901284[01]12345678901231[3901]12345678901234[20]12", 0, "25312345678901284[0112345678901231390112345678901234[2012" }, - /*991*/ { "[01]12345678901231[0A]12345678901231[20]12", ZINT_ERROR_INVALID_DATA, "" }, - /*992*/ { "[01]12345678901231[0]12345678901231[20]12", ZINT_ERROR_INVALID_DATA, "" }, - /*993*/ { "[01]12345678901231[]12345678901231[20]12", ZINT_ERROR_INVALID_DATA, "" }, + /*662*/ { "[4330]121212", 0, "4330121212" }, + /*663*/ { "[4331]121212-", 0, "4331121212-" }, + /*664*/ { "[4332]121212", 0, "4332121212" }, + /*665*/ { "[4333]121212-", 0, "4333121212-" }, + /*666*/ { "[4334]121212", ZINT_ERROR_INVALID_DATA, "" }, + /*667*/ { "[44]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*668*/ { "[440]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*669*/ { "[4400]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*670*/ { "[49]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*671*/ { "[490]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*672*/ { "[4900]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*673*/ { "[499]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*674*/ { "[4990]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*675*/ { "[50]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*676*/ { "[500]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*677*/ { "[5000]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*678*/ { "[51]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*679*/ { "[510]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*680*/ { "[5100]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*681*/ { "[59]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*682*/ { "[590]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*683*/ { "[5900]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*684*/ { "[60]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*685*/ { "[600]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*686*/ { "[6000]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*687*/ { "[61]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*688*/ { "[610]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*689*/ { "[6100]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*690*/ { "[69]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*691*/ { "[690]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*692*/ { "[6900]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*693*/ { "[70]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*694*/ { "[700]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*695*/ { "[7000]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*696*/ { "[7001]1234567890123", 0, "70011234567890123" }, + /*697*/ { "[7001]123456789012", ZINT_ERROR_INVALID_DATA, "" }, + /*698*/ { "[7002]abcdefghijklmnopqrstuvwxyz1234", 0, "7002abcdefghijklmnopqrstuvwxyz1234" }, + /*699*/ { "[7002]abcdefghijklmnopqrstuvwxyz12345", ZINT_ERROR_INVALID_DATA, "" }, + /*700*/ { "[7003]1212121212", 0, "70031212121212" }, + /*701*/ { "[7003]121212121", ZINT_ERROR_INVALID_DATA, "" }, + /*702*/ { "[7004]1234", 0, "70041234" }, + /*703*/ { "[7004]12345", ZINT_ERROR_INVALID_DATA, "" }, + /*704*/ { "[7005]abcdefghijkl", 0, "7005abcdefghijkl" }, + /*705*/ { "[7005]abcdefghijklm", ZINT_ERROR_INVALID_DATA, "" }, + /*706*/ { "[7006]200132", ZINT_WARN_NONCOMPLIANT, "7006200132" }, + /*707*/ { "[7006]200100", ZINT_WARN_NONCOMPLIANT, "7006200100" }, + /*708*/ { "[7006]200120", 0, "7006200120" }, + /*709*/ { "[7006]2001320", ZINT_ERROR_INVALID_DATA, "" }, + /*710*/ { "[7007]010101121212", 0, "7007010101121212" }, + /*711*/ { "[7007]01010112121", ZINT_ERROR_INVALID_DATA, "" }, + /*712*/ { "[7007]A1010112121", ZINT_ERROR_INVALID_DATA, "" }, + /*713*/ { "[7007]121212", 0, "7007121212" }, + /*714*/ { "[7007]12121", ZINT_ERROR_INVALID_DATA, "" }, + /*715*/ { "[7007]1212121", ZINT_ERROR_INVALID_DATA, "" }, + /*716*/ { "[7008]abc", 0, "7008abc" }, + /*717*/ { "[7008]abcd", ZINT_ERROR_INVALID_DATA, "" }, + /*718*/ { "[7009]abcdefghij", 0, "7009abcdefghij" }, + /*719*/ { "[7009]abcdefghijk", ZINT_ERROR_INVALID_DATA, "" }, + /*720*/ { "[7010]01", 0, "701001" }, + /*721*/ { "[7010]1", 0, "70101" }, + /*722*/ { "[7010]012", ZINT_ERROR_INVALID_DATA, "" }, + /*723*/ { "[7011]121212", 0, "7011121212" }, + /*724*/ { "[7011]1212121212", 0, "70111212121212" }, + /*725*/ { "[7011]12121", ZINT_ERROR_INVALID_DATA, "" }, + /*726*/ { "[7011]121212121", ZINT_ERROR_INVALID_DATA, "" }, + /*727*/ { "[7012]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*728*/ { "[7019]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*729*/ { "[7020]abcdefghijklmnopqrst", 0, "7020abcdefghijklmnopqrst" }, + /*730*/ { "[7020]abcdefghijklmnopqrstu", ZINT_ERROR_INVALID_DATA, "" }, + /*731*/ { "[7021]abcdefghijklmnopqrst", 0, "7021abcdefghijklmnopqrst" }, + /*732*/ { "[7021]abcdefghijklmnopqrstu", ZINT_ERROR_INVALID_DATA, "" }, + /*733*/ { "[7022]abcdefghijklmnopqrst", 0, "7022abcdefghijklmnopqrst" }, + /*734*/ { "[7022]abcdefghijklmnopqrstu", ZINT_ERROR_INVALID_DATA, "" }, + /*735*/ { "[7023]1234abcdefghijklmnopqrstuvwxyz", 0, "70231234abcdefghijklmnopqrstuvwxyz" }, + /*736*/ { "[7023]1234abcdefghijklmnopqrstuvwxyza", ZINT_ERROR_INVALID_DATA, "" }, + /*737*/ { "[7024]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*738*/ { "[7025]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*739*/ { "[7029]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*740*/ { "[7030]123abcdefghijklmnopqrstuvwxyza", ZINT_WARN_NONCOMPLIANT, "7030123abcdefghijklmnopqrstuvwxyza" }, + /*741*/ { "[7030]004abcdefghijklmnopqrstuvwxyza", 0, "7030004abcdefghijklmnopqrstuvwxyza" }, + /*742*/ { "[7030]123abcdefghijklmnopqrstuvwxyzab", ZINT_ERROR_INVALID_DATA, "" }, + /*743*/ { "[7031]123abcdefghijklmnopqrstuvwxyza", ZINT_WARN_NONCOMPLIANT, "7031123abcdefghijklmnopqrstuvwxyza" }, + /*744*/ { "[7031]004abcdefghijklmnopqrstuvwxyza", 0, "7031004abcdefghijklmnopqrstuvwxyza" }, + /*745*/ { "[7031]123abcdefghijklmnopqrstuvwxyzab", ZINT_ERROR_INVALID_DATA, "" }, + /*746*/ { "[7032]004abcdefghijklmnopqrstuvwxyza", 0, "7032004abcdefghijklmnopqrstuvwxyza" }, + /*747*/ { "[7032]004abcdefghijklmnopqrstuvwxyzab", ZINT_ERROR_INVALID_DATA, "" }, + /*748*/ { "[7033]004abcdefghijklmnopqrstuvwxyza", 0, "7033004abcdefghijklmnopqrstuvwxyza" }, + /*749*/ { "[7033]004abcdefghijklmnopqrstuvwxyzab", ZINT_ERROR_INVALID_DATA, "" }, + /*750*/ { "[7034]004abcdefghijklmnopqrstuvwxyza", 0, "7034004abcdefghijklmnopqrstuvwxyza" }, + /*751*/ { "[7034]004abcdefghijklmnopqrstuvwxyzab", ZINT_ERROR_INVALID_DATA, "" }, + /*752*/ { "[7035]004abcdefghijklmnopqrstuvwxyza", 0, "7035004abcdefghijklmnopqrstuvwxyza" }, + /*753*/ { "[7035]004abcdefghijklmnopqrstuvwxyzab", ZINT_ERROR_INVALID_DATA, "" }, + /*754*/ { "[7036]004abcdefghijklmnopqrstuvwxyza", 0, "7036004abcdefghijklmnopqrstuvwxyza" }, + /*755*/ { "[7036]004abcdefghijklmnopqrstuvwxyzab", ZINT_ERROR_INVALID_DATA, "" }, + /*756*/ { "[7037]004abcdefghijklmnopqrstuvwxyza", 0, "7037004abcdefghijklmnopqrstuvwxyza" }, + /*757*/ { "[7037]004abcdefghijklmnopqrstuvwxyzab", ZINT_ERROR_INVALID_DATA, "" }, + /*758*/ { "[7038]004abcdefghijklmnopqrstuvwxyza", 0, "7038004abcdefghijklmnopqrstuvwxyza" }, + /*759*/ { "[7038]004abcdefghijklmnopqrstuvwxyzab", ZINT_ERROR_INVALID_DATA, "" }, + /*760*/ { "[7039]004abcdefghijklmnopqrstuvwxyza", 0, "7039004abcdefghijklmnopqrstuvwxyza" }, + /*761*/ { "[7039]123abcdefghijklmnopqrstuvwxyzab", ZINT_ERROR_INVALID_DATA, "" }, + /*762*/ { "[7040]1abc", 0, "70401abc" }, + /*763*/ { "[7040]1ab", ZINT_ERROR_INVALID_DATA, "" }, + /*764*/ { "[7040]1abcd", ZINT_ERROR_INVALID_DATA, "" }, + /*765*/ { "[7041]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*766*/ { "[7042]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*767*/ { "[7050]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*768*/ { "[7090]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*769*/ { "[7099]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*770*/ { "[71]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*771*/ { "[710]abcdefghijklmnopqrst", 0, "710abcdefghijklmnopqrst" }, + /*772*/ { "[710]abcdefghijklmnopqrstu", ZINT_ERROR_INVALID_DATA, "" }, + /*773*/ { "[7100]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*774*/ { "[711]abcdefghijklmnopqrst", 0, "711abcdefghijklmnopqrst" }, + /*775*/ { "[711]abcdefghijklmnopqrstu", ZINT_ERROR_INVALID_DATA, "" }, + /*776*/ { "[712]abcdefghijklmnopqrst", 0, "712abcdefghijklmnopqrst" }, + /*777*/ { "[712]abcdefghijklmnopqrstu", ZINT_ERROR_INVALID_DATA, "" }, + /*778*/ { "[713]abcdefghijklmnopqrst", 0, "713abcdefghijklmnopqrst" }, + /*779*/ { "[713]abcdefghijklmnopqrstu", ZINT_ERROR_INVALID_DATA, "" }, + /*780*/ { "[714]abcdefghijklmnopqrst", 0, "714abcdefghijklmnopqrst" }, + /*781*/ { "[714]abcdefghijklmnopqrstu", ZINT_ERROR_INVALID_DATA, "" }, + /*782*/ { "[715]abcdefghijklmnopqrst", 0, "715abcdefghijklmnopqrst" }, + /*783*/ { "[715]abcdefghijklmnopqrstu", ZINT_ERROR_INVALID_DATA, "" }, + /*784*/ { "[716]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*785*/ { "[719]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*786*/ { "[72]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*787*/ { "[720]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*788*/ { "[7200]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*789*/ { "[721]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*790*/ { "[7210]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*791*/ { "[7220]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*792*/ { "[7230]EMabcdefghijklmnopqrstuvwxyzab", 0, "7230EMabcdefghijklmnopqrstuvwxyzab" }, + /*793*/ { "[7230]EMabcdefghijklmnopqrstuvwxyzabc", ZINT_ERROR_INVALID_DATA, "" }, + /*794*/ { "[7230]EM", ZINT_ERROR_INVALID_DATA, "" }, + /*795*/ { "[7231]EMabcdefghijklmnopqrstuvwxyzab", 0, "7231EMabcdefghijklmnopqrstuvwxyzab" }, + /*796*/ { "[7231]EMabcdefghijklmnopqrstuvwxyzabc", ZINT_ERROR_INVALID_DATA, "" }, + /*797*/ { "[7232]EMabcdefghijklmnopqrstuvwxyzab", 0, "7232EMabcdefghijklmnopqrstuvwxyzab" }, + /*798*/ { "[7232]EMabcdefghijklmnopqrstuvwxyzabc", ZINT_ERROR_INVALID_DATA, "" }, + /*799*/ { "[7233]EMabcdefghijklmnopqrstuvwxyzab", 0, "7233EMabcdefghijklmnopqrstuvwxyzab" }, + /*800*/ { "[7233]EMabcdefghijklmnopqrstuvwxyzabc", ZINT_ERROR_INVALID_DATA, "" }, + /*801*/ { "[7234]EMabcdefghijklmnopqrstuvwxyzab", 0, "7234EMabcdefghijklmnopqrstuvwxyzab" }, + /*802*/ { "[7234]EMabcdefghijklmnopqrstuvwxyzabc", ZINT_ERROR_INVALID_DATA, "" }, + /*803*/ { "[7235]EMabcdefghijklmnopqrstuvwxyzab", 0, "7235EMabcdefghijklmnopqrstuvwxyzab" }, + /*804*/ { "[7235]EMabcdefghijklmnopqrstuvwxyzabc", ZINT_ERROR_INVALID_DATA, "" }, + /*805*/ { "[7236]EMabcdefghijklmnopqrstuvwxyzab", 0, "7236EMabcdefghijklmnopqrstuvwxyzab" }, + /*806*/ { "[7236]EMabcdefghijklmnopqrstuvwxyzabc", ZINT_ERROR_INVALID_DATA, "" }, + /*807*/ { "[7237]EMabcdefghijklmnopqrstuvwxyzab", 0, "7237EMabcdefghijklmnopqrstuvwxyzab" }, + /*808*/ { "[7237]EMabcdefghijklmnopqrstuvwxyzabc", ZINT_ERROR_INVALID_DATA, "" }, + /*809*/ { "[7238]EMabcdefghijklmnopqrstuvwxyzab", 0, "7238EMabcdefghijklmnopqrstuvwxyzab" }, + /*810*/ { "[7238]EMabcdefghijklmnopqrstuvwxyzabc", ZINT_ERROR_INVALID_DATA, "" }, + /*811*/ { "[7239]EMabcdefghijklmnopqrstuvwxyzab", 0, "7239EMabcdefghijklmnopqrstuvwxyzab" }, + /*812*/ { "[7239]EMabcdefghijklmnopqrstuvwxyzabc", ZINT_ERROR_INVALID_DATA, "" }, + /*813*/ { "[7239]E", ZINT_ERROR_INVALID_DATA, "" }, + /*814*/ { "[7240]abcdefghijklmnopqrst", 0, "7240abcdefghijklmnopqrst" }, + /*815*/ { "[7240]abcdefghijklmnopqrstu", ZINT_ERROR_INVALID_DATA, "" }, + /*816*/ { "[7241]99", 0, "724199" }, + /*817*/ { "[7241]100", ZINT_ERROR_INVALID_DATA, "" }, + /*818*/ { "[7242]abcdefghijklmnopqrstuvwxy", 0, "7242abcdefghijklmnopqrstuvwxy" }, + /*819*/ { "[7242]abcdefghijklmnopqrstuvwxyz", ZINT_ERROR_INVALID_DATA, "" }, + /*820*/ { "[7243]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*821*/ { "[7249]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*822*/ { "[7250]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*823*/ { "[7299]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*824*/ { "[73]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*825*/ { "[7300]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*826*/ { "[74]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*827*/ { "[7400]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*828*/ { "[79]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*829*/ { "[7900]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*830*/ { "[7999]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*831*/ { "[80]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*832*/ { "[800]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*833*/ { "[8000]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*834*/ { "[8001]12345678901234", ZINT_WARN_NONCOMPLIANT, "800112345678901234" }, + /*835*/ { "[8001]12345678901204", 0, "800112345678901204" }, + /*836*/ { "[8001]1234123456789012345", ZINT_ERROR_INVALID_DATA, "" }, + /*837*/ { "[8002]abcdefghijklmnopqrst", 0, "8002abcdefghijklmnopqrst" }, + /*838*/ { "[8002]abcdefghijklmnopqrstu", ZINT_ERROR_INVALID_DATA, "" }, + /*839*/ { "[8003]01234567890123abcdefghijklmnop", ZINT_WARN_NONCOMPLIANT, "800301234567890123abcdefghijklmnop" }, + /*840*/ { "[8003]01234567890128abcdefghijklmnop", 0, "800301234567890128abcdefghijklmnop" }, + /*841*/ { "[8003]01234567890128abcdefghijklmnopq", ZINT_ERROR_INVALID_DATA, "" }, + /*842*/ { "[8004]abcdefghijklmnopqrstuvwxyz1234", ZINT_WARN_NONCOMPLIANT, "8004abcdefghijklmnopqrstuvwxyz1234" }, + /*843*/ { "[8004]12cdefghijklmnopqrstuvwxyz1234", 0, "800412cdefghijklmnopqrstuvwxyz1234" }, + /*844*/ { "[8004]abcdefghijklmnopqrstuvwxyz12345", ZINT_ERROR_INVALID_DATA, "" }, + /*845*/ { "[8005]123456", 0, "8005123456" }, + /*846*/ { "[8005]12345", ZINT_ERROR_INVALID_DATA, "" }, + /*847*/ { "[8005]1234567", ZINT_ERROR_INVALID_DATA, "" }, + /*848*/ { "[8006]123456789012341212", ZINT_WARN_NONCOMPLIANT, "8006123456789012341212" }, + /*849*/ { "[8006]123456789012311212", 0, "8006123456789012311212" }, + /*850*/ { "[8006]12345678901234121", ZINT_ERROR_INVALID_DATA, "" }, + /*851*/ { "[8006]1234567890123412123", ZINT_ERROR_INVALID_DATA, "" }, + /*852*/ { "[8007]abcdefghijklmnopqrstuvwxyz12345678", ZINT_WARN_NONCOMPLIANT, "8007abcdefghijklmnopqrstuvwxyz12345678" }, + /*853*/ { "[8007]AD95EFGHIJKLMNOPQRSTUVWXYZ12345678", 0, "8007AD95EFGHIJKLMNOPQRSTUVWXYZ12345678" }, + /*854*/ { "[8007]AD95EFGHIJKLMNOPQRSTUVWXYZ123456789", ZINT_ERROR_INVALID_DATA, "" }, + /*855*/ { "[8008]123456121212", ZINT_WARN_NONCOMPLIANT, "8008123456121212" }, + /*856*/ { "[8008]121256121212", ZINT_WARN_NONCOMPLIANT, "8008121256121212" }, + /*857*/ { "[8008]121231121212", 0, "8008121231121212" }, + /*858*/ { "[8008]1234561212", ZINT_WARN_NONCOMPLIANT, "80081234561212" }, + /*859*/ { "[8008]1212311212", 0, "80081212311212" }, + /*860*/ { "[8008]12345612", ZINT_WARN_NONCOMPLIANT, "800812345612" }, + /*861*/ { "[8008]12010112", 0, "800812010112" }, + /*862*/ { "[8008]1234561", ZINT_ERROR_INVALID_DATA, "" }, + /*863*/ { "[8008]123456121", ZINT_ERROR_INVALID_DATA, "" }, + /*864*/ { "[8008]12345612121", ZINT_ERROR_INVALID_DATA, "" }, + /*865*/ { "[8008]1234561212123", ZINT_ERROR_INVALID_DATA, "" }, + /*866*/ { "[8009]12345678901234567890123456789012345678901234567890", 0, "800912345678901234567890123456789012345678901234567890" }, + /*867*/ { "[8009]123456789012345678901234567890123456789012345678901", ZINT_ERROR_INVALID_DATA, "" }, + /*868*/ { "[8010]1234abcdefghijklmnopqrstuvwxyz1", ZINT_ERROR_INVALID_DATA, "" }, + /*869*/ { "[8011]123456789012", 0, "8011123456789012" }, + /*870*/ { "[8011]1234567890123", ZINT_ERROR_INVALID_DATA, "" }, + /*871*/ { "[8012]abcdefghijklmnopqrst", 0, "8012abcdefghijklmnopqrst" }, + /*872*/ { "[8012]abcdefghijklmnopqrstuv", ZINT_ERROR_INVALID_DATA, "" }, + /*873*/ { "[8013]1234abcdefghijklmnopqrsQP", 0, "80131234abcdefghijklmnopqrsQP" }, + /*874*/ { "[8013]1234abcdefghijklmnopqrsQPv", ZINT_ERROR_INVALID_DATA, "" }, + /*875*/ { "[8014]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*876*/ { "[8016]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*877*/ { "[8017]313131313131313139", ZINT_WARN_NONCOMPLIANT, "8017313131313131313139" }, + /*878*/ { "[8017]313131313131313131", 0, "8017313131313131313131" }, + /*879*/ { "[8017]31313131313131313", ZINT_ERROR_INVALID_DATA, "" }, + /*880*/ { "[8017]3131313131313131390", ZINT_ERROR_INVALID_DATA, "" }, + /*881*/ { "[8018]313131313131313139", ZINT_WARN_NONCOMPLIANT, "8018313131313131313139" }, + /*882*/ { "[8018]313131313131313131", 0, "8018313131313131313131" }, + /*883*/ { "[8018]31313131313131313", ZINT_ERROR_INVALID_DATA, "" }, + /*884*/ { "[8018]3131313131313131390", ZINT_ERROR_INVALID_DATA, "" }, + /*885*/ { "[8019]1234567890", 0, "80191234567890" }, + /*886*/ { "[8019]12345678901", ZINT_ERROR_INVALID_DATA, "" }, + /*887*/ { "[8020]abcdefghijklmnopqrstuvwxy", 0, "8020abcdefghijklmnopqrstuvwxy" }, + /*888*/ { "[8020]abcdefghijklmnopqrstuvwxyz", ZINT_ERROR_INVALID_DATA, "" }, + /*889*/ { "[8021]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*890*/ { "[8025]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*891*/ { "[8026]123456789012341212", ZINT_WARN_NONCOMPLIANT, "8026123456789012341212" }, + /*892*/ { "[8026]123456789012311212", 0, "8026123456789012311212" }, + /*893*/ { "[8026]1234567890123451212", ZINT_ERROR_INVALID_DATA, "" }, + /*894*/ { "[8026]12345678901234512", ZINT_ERROR_INVALID_DATA, "" }, + /*895*/ { "[8027]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*896*/ { "[8030]-1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_ABCDEFGHIJKLMNOPQRSTUVWXYZ", 0, "8030-1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_ABCDEFGHIJKLMNOPQRSTUVWXYZ" }, + /*897*/ { "[8030]-1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_ABCDEFGHIJKLMNOPQRSTUVWXYZ1", ZINT_ERROR_INVALID_DATA, "" }, + /*898*/ { "[8031]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*899*/ { "[8040]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*900*/ { "[8050]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*901*/ { "[8060]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*902*/ { "[8070]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*903*/ { "[8080]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*904*/ { "[8090]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*905*/ { "[8099]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*906*/ { "[81]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*907*/ { "[8100]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*908*/ { "[8109]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*909*/ { "[8110]5123456789011234565123455123450123105123450123512345678901320123190000", 0, "81105123456789011234565123455123450123105123450123512345678901320123190000" }, + /*910*/ { "[8110]51234567890112345651234551234501231051234501235123456789013201231900001", ZINT_ERROR_INVALID_DATA, "" }, + /*911*/ { "[8111]1234", 0, "81111234" }, + /*912*/ { "[8111]12345", ZINT_ERROR_INVALID_DATA, "" }, + /*913*/ { "[8111]123", ZINT_ERROR_INVALID_DATA, "" }, + /*914*/ { "[8112]1234567890123456789012345678901234567890123456789012345678901234567890", ZINT_WARN_NONCOMPLIANT, "81121234567890123456789012345678901234567890123456789012345678901234567890" }, + /*915*/ { "[8112]12345678901234567890123456789012345678901234567890123456789012345678901", ZINT_ERROR_INVALID_DATA, "" }, + /*916*/ { "[8112]061234567890121234569123456789012345", 0, "8112061234567890121234569123456789012345" }, + /*917*/ { "[8113]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*918*/ { "[8120]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*919*/ { "[8130]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*920*/ { "[8140]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*921*/ { "[8150]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*922*/ { "[8190]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*923*/ { "[8199]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*924*/ { "[82]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*925*/ { "[8200]1234567890123456789012345678901234567890123456789012345678901234567890", 0, "82001234567890123456789012345678901234567890123456789012345678901234567890" }, + /*926*/ { "[8201]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*927*/ { "[8210]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*928*/ { "[8220]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*929*/ { "[8230]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*930*/ { "[8240]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*931*/ { "[8250]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*932*/ { "[8290]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*933*/ { "[8299]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*934*/ { "[83]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*935*/ { "[830]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*936*/ { "[8300]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*937*/ { "[84]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*938*/ { "[840]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*939*/ { "[8400]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*940*/ { "[85]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*941*/ { "[850]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*942*/ { "[8500]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*943*/ { "[89]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*944*/ { "[890]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*945*/ { "[8900]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*946*/ { "[90]abcdefghijklmnopqrstuvwxyz1234", 0, "90abcdefghijklmnopqrstuvwxyz1234" }, + /*947*/ { "[90]abcdefghijklmnopqrstuvwxyz12345", ZINT_ERROR_INVALID_DATA, "" }, + /*948*/ { "[900]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*949*/ { "[9000]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*950*/ { "[91]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890", 0, "91123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890" }, + /*951*/ { "[91]1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901", ZINT_ERROR_INVALID_DATA, "" }, + /*952*/ { "[910]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*953*/ { "[9100]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*954*/ { "[92]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890", 0, "92123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890" }, + /*955*/ { "[92]1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901", ZINT_ERROR_INVALID_DATA, "" }, + /*956*/ { "[920]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*957*/ { "[9200]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*958*/ { "[93]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890", 0, "93123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890" }, + /*959*/ { "[93]1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901", ZINT_ERROR_INVALID_DATA, "" }, + /*960*/ { "[930]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*961*/ { "[9300]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*962*/ { "[94]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890", 0, "94123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890" }, + /*963*/ { "[94]1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901", ZINT_ERROR_INVALID_DATA, "" }, + /*964*/ { "[940]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*965*/ { "[9400]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*966*/ { "[95]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890", 0, "95123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890" }, + /*967*/ { "[95]1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901", ZINT_ERROR_INVALID_DATA, "" }, + /*968*/ { "[950]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*969*/ { "[9500]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*970*/ { "[96]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890", 0, "96123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890" }, + /*971*/ { "[96]1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901", ZINT_ERROR_INVALID_DATA, "" }, + /*972*/ { "[960]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*973*/ { "[9600]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*974*/ { "[97]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890", 0, "97123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890" }, + /*975*/ { "[97]1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901", ZINT_ERROR_INVALID_DATA, "" }, + /*976*/ { "[970]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*977*/ { "[9700]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*978*/ { "[98]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890", 0, "98123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890" }, + /*979*/ { "[98]1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901", ZINT_ERROR_INVALID_DATA, "" }, + /*980*/ { "[980]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*981*/ { "[9800]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*982*/ { "[99]123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890", 0, "99123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890" }, + /*983*/ { "[99]1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901", ZINT_ERROR_INVALID_DATA, "" }, + /*984*/ { "[990]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*985*/ { "[9900]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*986*/ { "[9999]1234", ZINT_ERROR_INVALID_DATA, "" }, + /*987*/ { "[01]12345678901234[7006]200101", ZINT_WARN_NONCOMPLIANT, "01123456789012347006200101" }, + /*988*/ { "[01]12345678901231[7006]200101", 0, "01123456789012317006200101" }, + /*989*/ { "[3900]1234567890[01]12345678901234", ZINT_WARN_NONCOMPLIANT, "39001234567890[0112345678901234" }, + /*990*/ { "[3900]1234567890[01]12345678901231", 0, "39001234567890[0112345678901231" }, + /*991*/ { "[253]12345678901234[3901]12345678901234[20]12", ZINT_WARN_NONCOMPLIANT, "25312345678901234[390112345678901234[2012" }, + /*992*/ { "[253]12345678901284[3901]12345678901234[20]12", 0, "25312345678901284[390112345678901234[2012" }, + /*993*/ { "[253]12345678901234[01]12345678901234[3901]12345678901234[20]12", ZINT_WARN_NONCOMPLIANT, "25312345678901234[0112345678901234390112345678901234[2012" }, + /*994*/ { "[253]12345678901284[01]12345678901231[3901]12345678901234[20]12", 0, "25312345678901284[0112345678901231390112345678901234[2012" }, + /*995*/ { "[01]12345678901231[0A]12345678901231[20]12", ZINT_ERROR_INVALID_DATA, "" }, + /*996*/ { "[01]12345678901231[0]12345678901231[20]12", ZINT_ERROR_INVALID_DATA, "" }, + /*997*/ { "[01]12345678901231[]12345678901231[20]12", ZINT_ERROR_INVALID_DATA, "" }, }; int data_size = ARRAY_SIZE(data); int i, length, ret; @@ -1782,6 +1786,11 @@ static void test_gs1_lint(const testCtx *const p_ctx) { /*387*/ { "[8112]0A1234567890121234560123456", ZINT_WARN_NONCOMPLIANT, "81120A1234567890121234560123456", "261: AI (8112) position 2: Non-numeric Coupon Funder ID VLI 'A'" }, /* couponposoffer */ /*388*/ { "[8112]261234567890121234560123456", ZINT_WARN_NONCOMPLIANT, "8112261234567890121234560123456", "261: AI (8112) position 1: Coupon Format must be 0 or 1" }, /* couponposoffer */ /*389*/ { "[8112]A61234567890121234560123456", ZINT_WARN_NONCOMPLIANT, "8112A61234567890121234560123456", "261: AI (8112) position 1: Non-numeric Coupon Format" }, /* couponposoffer */ + /*390*/ { "[4330]023020", 0, "4330023020", "" }, /* hyphen */ + /*391*/ { "[4330]023020-", 0, "4330023020-", "" }, /* hyphen */ + /*392*/ { "[4330]023020+", ZINT_WARN_NONCOMPLIANT, "4330023020+", "261: AI (4330) position 7: Invalid temperature indicator (hyphen only)" }, /* hyphen */ + /*393*/ { "[4330]02302", ZINT_ERROR_INVALID_DATA, "", "259: Invalid data length for AI (4330)" }, /* hyphen */ + /*394*/ { "[4330]02302000", ZINT_ERROR_INVALID_DATA, "", "259: Invalid data length for AI (4330)" }, /* hyphen */ }; int data_size = ARRAY_SIZE(data); int i, length, ret;