/*******************************************************************************
    OpenAirInterface
    Copyright(c) 1999 - 2014 Eurecom

    OpenAirInterface is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.


    OpenAirInterface is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with OpenAirInterface.The full GNU General Public License is
   included in this distribution in the file called "COPYING". If not,
   see <http://www.gnu.org/licenses/>.

  Contact Information
  OpenAirInterface Admin: openair_admin@eurecom.fr
  OpenAirInterface Tech : openair_tech@eurecom.fr
  OpenAirInterface Dev  : openair4g-devel@eurecom.fr

  Address      : Eurecom, Compus SophiaTech 450, route des chappes, 06451 Biot, France.

 *******************************************************************************/

#include <stdlib.h>
#include <stdint.h>
#include <string.h>
#include <errno.h>
#include <limits.h>

#include "assertions.h"
#include "mcc_mnc_itu.h"

// From http://www.itu.int/pub/T-SP-E.212B-2014
const mcc_mnc_list_t mcc_mnc_list[] = {
        {001, "01"},
        {412, "01"},
        {412, "20"},
        {412, "40"},
        {412, "50"},
        {412, "80"},
        {412, "88"},
        {276, "01"},
        {276, "02"},
        {276, "03"},
        {276, "04"},
        {603, "01"},
        {603, "02"},
        {262, "01"},
        {262, "02"},
        {262, "03"},
        {262, "04"},
        {262, "05"},
        {262, "06"},
        {262, "07"},
        {262, "08"},
        {262, "09"},
        {262, "10"},
        {262, "11"},
        {262, "12"},
        {262, "13"},
        {262, "14"},
        {262, "15"},
        {262, "16"},
        {262, "17"},
        {262, "18"},
        {262, "19"},
        {262, "20"},
        {262, "41"},
        {262, "42"},
        {262, "43"},
        {262, "77"},
        {262, "78"},
        {262, "79"},
        {213, "03"},
        {631, "02"},
        {631, "04"},
        {365, "010"},
        {365, "840"},
        {344, "030"},
        {344, "920"},
        {344, "930"},
        {420, "01"},
        {420, "03"},
        {722, "010"},
        {722, "020"},
        {722, "070"},
        {722, "310"},
        {722, "320"},
        {722, "330"},
        {722, "341"},
        {363, "01"},
        {505, "01"},
        {505, "02"},
        {505, "03"},
        {505, "04"},
        {505, "05"},
        {505, "06"},
        {505, "07"},
        {505, "08"},
        {505, "09"},
        {505, "10"},
        {505, "11"},
        {505, "12"},
        {505, "13"},
        {505, "14"},
        {505, "15"},
        {505, "16"},
        {505, "17"},
        {505, "18"},
        {505, "19"},
        {505, "20"},
        {505, "21"},
        {505, "22"},
        {505, "23"},
        {505, "24"},
        {505, "25"},
        {505, "26"},
        {505, "27"},
        {505, "28"},
        {505, "30"},
        {505, "31"},
        {505, "62"},
        {505, "68"},
        {505, "71"},
        {505, "72"},
        {505, "88"},
        {505, "90"},
        {505, "99"},
        {232, "01"},
        {232, "02"},
        {232, "03"},
        {232, "04"},
        {232, "05"},
        {232, "06"},
        {232, "07"},
        {232, "09"},
        {232, "10"},
        {232, "11"},
        {232, "12"},
        {232, "14"},
        {232, "15"},
        {232, "91"},
        {400, "01"},
        {400, "02"},
        {400, "03"},
        {400, "04"},
        {426, "01"},
        {426, "02"},
        {426, "03"},
        {426, "04"},
        {426, "05"},
        {470, "01"},
        {470, "02"},
        {470, "03"},
        {342, "600"},
        {342, "820"},
        {257, "01"},
        {257, "02"},
        {257, "03"},
        {257, "04"},
        {257, "05"},
        {257, "06"},
        {206, "01"},
        {206, "02"},
        {206, "05"},
        {206, "06"},
        {206, "07"},
        {206, "10"},
        {206, "20"},
        {702, "67"},
        {702, "68"},
        {616, "01"},
        {616, "02"},
        {616, "03"},
        {350, "000"},
        {402, "11"},
        {402, "17"},
        {736, "01"},
        {736, "02"},
        {736, "03"},
        {218, "03"},
        {218, "05"},
        {218, "90"},
        {652, "01"},
        {652, "02"},
        {652, "04"},
        {724, "00"},
        {724, "01"},
        {724, "02"},
        {724, "03"},
        {724, "04"},
        {724, "05"},
        {724, "06"},
        {724, "10"},
        {724, "11"},
        {724, "15"},
        {724, "16"},
        {724, "18"},
        {724, "23"},
        {724, "24"},
        {724, "30"},
        {724, "31"},
        {724, "32"},
        {724, "33"},
        {724, "34"},
        {724, "35"},
        {724, "36"},
        {724, "37"},
        {724, "38"},
        {724, "39"},
        {724, "54"},
        {724, "99"},
        {528, "11"},
        {284, "01"},
        {284, "05"},
        {613, "02"},
        {613, "03"},
        {642, "01"},
        {642, "02"},
        {642, "03"},
        {642, "07"},
        {642, "82"},
        {625, "01"},
        {625, "02"},
        {456, "01"},
        {456, "02"},
        {456, "03"},
        {456, "04"},
        {456, "05"},
        {456, "06"},
        {456, "08"},
        {456, "18"},
        {624, "01"},
        {624, "02"},
        {302, "220"},
        {302, "221"},
        {302, "222"},
        {302, "250"},
        {302, "270"},
        {302, "290"},
        {302, "320"},
        {302, "340"},
        {302, "360"},
        {302, "370"},
        {302, "380"},
        {302, "390"},
        {302, "490"},
        {302, "500"},
        {302, "510"},
        {302, "530"},
        {302, "560"},
        {302, "570"},
        {302, "590"},
        {302, "610"},
        {302, "620"},
        {302, "630"},
        {302, "640"},
        {302, "656"},
        {302, "660"},
        {302, "670"},
        {302, "680"},
        {302, "690"},
        {302, "710"},
        {302, "720"},
        {302, "730"},
        {302, "740"},
        {302, "760"},
        {302, "770"},
        {302, "780"},
        {302, "860"},
        {302, "880"},
        {302, "940"},
        {302, "990"},
        {346, "140"},
        {623, "01"},
        {623, "02"},
        {623, "03"},
        {730, "01"},
        {730, "02"},
        {730, "03"},
        {730, "04"},
        {730, "05"},
        {730, "06"},
        {730, "07"},
        {730, "08"},
        {730, "09"},
        {730, "10"},
        {730, "11"},
        {730, "12"},
        {730, "13"},
        {730, "14"},
        {730, "15"},
        {460, "00"},
        {460, "01"},
        {460, "03"},
        {460, "04"},
        {280, "01"},
        {280, "10"},
        {280, "20"},
        {280, "22"},
        {732, "001"},
        {732, "002"},
        {732, "020"},
        {732, "099"},
        {732, "101"},
        {732, "102"},
        {732, "103"},
        {732, "111"},
        {732, "123"},
        {732, "130"},
        {654, "01"},
        {629, "01"},
        {629, "10"},
        {548, "01"},
        {450, "02"},
        {450, "03"},
        {450, "06"},
        {712, "01"},
        {712, "02"},
        {712, "03"},
        {712, "04"},
        {712, "20"},
        {612, "02"},
        {612, "03"},
        {612, "04"},
        {612, "05"},
        {612, "06"},
        {612, "07"},
        {219, "01"},
        {219, "02"},
        {219, "10"},
        {368, "01"},
        {362, "51"},
        {362, "69"},
        {362, "91"},
        {238, "01"},
        {238, "02"},
        {238, "03"},
        {238, "04"},
        {238, "06"},
        {238, "08"},
        {238, "10"},
        {238, "12"},
        {238, "13"},
        {238, "20"},
        {238, "28"},
        {238, "30"},
        {238, "43"},
        {238, "66"},
        {238, "77"},
        {638, "01"},
        {370, "01"},
        {370, "02"},
        {370, "03"},
        {370, "04"},
        {366, "110"},
        {602, "01"},
        {602, "02"},
        {602, "03"},
        {706, "01"},
        {706, "02"},
        {706, "03"},
        {424, "02"},
        {740, "00"},
        {740, "01"},
        {740, "02"},
        {214, "01"},
        {214, "03"},
        {214, "04"},
        {214, "05"},
        {214, "06"},
        {214, "07"},
        {214, "08"},
        {214, "09"},
        {214, "10"},
        {214, "11"},
        {214, "12"},
        {214, "13"},
        {214, "14"},
        {214, "15"},
        {214, "16"},
        {214, "17"},
        {214, "18"},
        {214, "19"},
        {214, "20"},
        {214, "21"},
        {214, "22"},
        {214, "24"},
        {214, "25"},
        {214, "26"},
        {214, "27"},
        {214, "28"},
        {214, "29"},
        {214, "30"},
        {214, "31"},
        {214, "32"},
        {248, "01"},
        {248, "02"},
        {248, "03"},
        {248, "04"},
        {248, "05"},
        {248, "06"},
        {248, "07"},
        {248, "08"},
        {248, "09"},
        {248, "71"},
        {310, "010"},
        {310, "012"},
        {310, "013"},
        {310, "016"},
        {310, "017"},
        {310, "020"},
        {310, "028"}, // NON ITU, ADDED BY EURECOM
        {310, "030"},
        {310, "035"},
        {310, "040"},
        {310, "050"},
        {310, "060"},
        {310, "070"},
        {310, "080"},
        {310, "090"},
        {310, "100"},
        {310, "110"},
        {310, "120"},
        {310, "130"},
        {310, "140"},
        {310, "150"},
        {310, "160"},
        {310, "170"},
        {310, "180"},
        {310, "190"},
        {310, "200"},
        {310, "210"},
        {310, "220"},
        {310, "230"},
        {310, "240"},
        {310, "250"},
        {310, "260"},
        {310, "270"},
        {310, "280"},
        {310, "290"},
        {310, "300"},
        {310, "310"},
        {310, "320"},
        {310, "330"},
        {310, "340"},
        {310, "350"},
        {310, "360"},
        {310, "370"},
        {310, "380"},
        {310, "390"},
        {310, "400"},
        {310, "410"},
        {310, "420"},
        {310, "430"},
        {310, "440"},
        {310, "450"},
        {310, "460"},
        {310, "470"},
        {310, "480"},
        {310, "490"},
        {310, "500"},
        {310, "510"},
        {310, "520"},
        {310, "530"},
        {310, "540"},
        {310, "550"},
        {310, "560"},
        {310, "570"},
        {310, "580"},
        {310, "590"},
        {310, "600"},
        {310, "610"},
        {310, "620"},
        {310, "640"},
        {310, "650"},
        {310, "660"},
        {310, "670"},
        {310, "680"},
        {310, "690"},
        {310, "700"},
        {310, "710"},
        {310, "720"},
        {310, "730"},
        {310, "740"},
        {310, "750"},
        {310, "760"},
        {310, "770"},
        {310, "780"},
        {310, "790"},
        {310, "800"},
        {310, "810"},
        {310, "820"},
        {310, "830"},
        {310, "840"},
        {310, "850"},
        {310, "860"},
        {310, "870"},
        {310, "880"},
        {310, "890"},
        {310, "900"},
        {310, "910"},
        {310, "920"},
        {310, "930"},
        {310, "940"},
        {310, "950"},
        {310, "960"},
        {310, "970"},
        {310, "980"},
        {310, "990"},
        {311, "000"},
        {311, "010"},
        {311, "020"},
        {311, "030"},
        {311, "040"},
        {311, "050"},
        {311, "060"},
        {311, "070"},
        {311, "080"},
        {311, "090"},
        {311, "100"},
        {311, "110"},
        {311, "120"},
        {311, "130"},
        {311, "140"},
        {311, "150"},
        {311, "160"},
        {311, "170"},
        {311, "180"},
        {311, "190"},
        {311, "200"},
        {311, "210"},
        {311, "220"},
        {311, "230"},
        {311, "240"},
        {311, "250"},
        {311, "260"},
        {311, "270"},
        {311, "271"},
        {311, "272"},
        {311, "273"},
        {311, "274"},
        {311, "275"},
        {311, "276"},
        {311, "277"},
        {311, "278"},
        {311, "279"},
        {311, "280"},
        {311, "281"},
        {311, "282"},
        {311, "283"},
        {311, "284"},
        {311, "285"},
        {311, "286"},
        {311, "287"},
        {311, "288"},
        {311, "289"},
        {311, "290"},
        {311, "300"},
        {311, "310"},
        {311, "320"},
        {311, "330"},
        {311, "340"},
        {311, "350"},
        {311, "360"},
        {311, "370"},
        {311, "380"},
        {311, "390"},
        {311, "410"},
        {311, "420"},
        {311, "430"},
        {311, "440"},
        {311, "450"},
        {311, "460"},
        {311, "470"},
        {311, "480"},
        {311, "481"},
        {311, "482"},
        {311, "483"},
        {311, "484"},
        {311, "485"},
        {311, "486"},
        {311, "487"},
        {311, "488"},
        {311, "489"},
        {311, "490"},
        {311, "500"},
        {311, "510"},
        {311, "520"},
        {311, "530"},
        {311, "540"},
        {311, "550"},
        {311, "560"},
        {311, "570"},
        {311, "580"},
        {311, "590"},
        {311, "600"},
        {311, "610"},
        {311, "620"},
        {311, "630"},
        {311, "640"},
        {311, "650"},
        {311, "660"},
        {311, "670"},
        {311, "680"},
        {311, "690"},
        {311, "700"},
        {311, "710"},
        {311, "720"},
        {311, "730"},
        {311, "740"},
        {311, "750"},
        {311, "760"},
        {311, "770"},
        {311, "800"},
        {311, "810"},
        {311, "820"},
        {311, "830"},
        {311, "840"},
        {311, "850"},
        {311, "860"},
        {311, "870"},
        {311, "880"},
        {311, "890"},
        {311, "900"},
        {311, "910"},
        {311, "920"},
        {311, "940"},
        {311, "950"},
        {311, "960"},
        {311, "970"},
        {311, "980"},
        {311, "990"},
        {312, "010"},
        {312, "020"},
        {312, "030"},
        {312, "040"},
        {312, "050"},
        {312, "060"},
        {312, "070"},
        {312, "080"},
        {312, "090"},
        {312, "100"},
        {312, "110"},
        {312, "120"},
        {312, "130"},
        {312, "140"},
        {312, "150"},
        {312, "160"},
        {312, "170"},
        {312, "180"},
        {312, "190"},
        {312, "200"},
        {313, "100"},
        {316, "010"},
        {316, "011"},
        {636, "01"},
        {750, "001"},
        {250, "01"},
        {250, "02"},
        {250, "03"},
        {250, "04"},
        {250, "05"},
        {250, "07"},
        {250, "10"},
        {250, "11"},
        {250, "12"},
        {250, "13"},
        {250, "16"},
        {250, "17"},
        {250, "19"},
        {250, "20"},
        {250, "28"},
        {250, "39"},
        {250, "44"},
        {250, "92"},
        {250, "93"},
        {250, "99"},
        {274, "02"},
        {288, "01"},
        {288, "02"},
        {542, "01"},
        {542, "02"},
        {542, "03"},
        {244, "03"},
        {244, "04"},
        {244, "05"},
        {244, "09"},
        {244, "10"},
        {244, "12"},
        {244, "13"},
        {244, "14"},
        {244, "16"},
        {244, "21"},
        {244, "29"},
        {244, "91"},
        {208, "01"},
        {208, "02"},
        {208, "03"},
        {208, "04"},
        {208, "05"},
        {208, "06"},
        {208, "07"},
        {208, "09"},
        {208, "10"},
        {208, "11"},
        {208, "13"},
        {208, "14"},
        {208, "15"},
        {208, "20"},
        {208, "21"},
        {208, "22"},
        {208, "23"},
        {208, "24"},
        {208, "25"},
        {208, "26"},
        {208, "27"},
        {208, "28"},
        {208, "29"},
        {208, "30"},
        {208, "31"},
        {208, "34"}, // NON ITU, ADDED BY EURECOM
        {208, "88"},
        {208, "89"},
        {208, "90"},
        {208, "91"},
        {208, "92"}, // NON ITU, ADDED BY EURECOM
        {647, "00"},
        {647, "02"},
        {647, "10"},
        {628, "01"},
        {628, "02"},
        {628, "03"},
        {628, "04"},
        {628, "05"},
        {607, "01"},
        {607, "02"},
        {607, "03"},
        {607, "04"},
        {282, "01"},
        {282, "02"},
        {282, "03"},
        {282, "04"},
        {282, "05"},
        {282, "06"},
        {282, "07"},
        {620, "01"},
        {620, "02"},
        {620, "03"},
        {620, "04"},
        {620, "11"},
        {266, "01"},
        {266, "09"},
        {202, "01"},
        {202, "02"},
        {202, "03"},
        {202, "04"},
        {202, "05"},
        {202, "06"},
        {202, "07"},
        {202, "09"},
        {202, "10"},
        {352, "110"},
        {290, "01"},
        {340, "01"},
        {340, "02"},
        {340, "03"},
        {340, "08"},
        {340, "10"},
        {340, "20"},
        {704, "01"},
        {704, "02"},
        {704, "03"},
        {611, "01"},
        {611, "02"},
        {611, "05"},
        {627, "01"},
        {632, "01"},
        {632, "02"},
        {738, "002"},
        {738, "01"},
        {340, "11"},
        {372, "01"},
        {372, "02"},
        {372, "03"},
        {708, "001"},
        {708, "002"},
        {708, "040"},
        {454, "00"},
        {454, "01"},
        {454, "02"},
        {454, "03"},
        {454, "04"},
        {454, "05"},
        {454, "06"},
        {454, "07"},
        {454, "08"},
        {454, "09"},
        {454, "10"},
        {454, "11"},
        {454, "12"},
        {454, "15"},
        {454, "16"},
        {454, "18"},
        {454, "19"},
        {454, "2X"},
        {454, "3X"},
        {216, "01"},
        {216, "30"},
        {216, "70"},
        {216, "71"},
        {404, "00"},
        {404, "01"},
        {404, "02"},
        {404, "03"},
        {404, "04"},
        {404, "05"},
        {404, "06"},
        {404, "07"},
        {404, "09"},
        {404, "10"},
        {404, "11"},
        {404, "12"},
        {404, "13"},
        {404, "14"},
        {404, "15"},
        {404, "16"},
        {404, "17"},
        {404, "18"},
        {404, "19"},
        {404, "20"},
        {404, "21"},
        {404, "22"},
        {404, "23"},
        {404, "24"},
        {404, "25"},
        {404, "27"},
        {404, "29"},
        {404, "30"},
        {404, "31"},
        {404, "33"},
        {404, "34"},
        {404, "35"},
        {404, "36"},
        {404, "37"},
        {404, "38"},
        {404, "40"},
        {404, "41"},
        {404, "42"},
        {404, "43"},
        {404, "44"},
        {404, "46"},
        {404, "48"},
        {404, "49"},
        {404, "50"},
        {404, "51"},
        {404, "52"},
        {404, "53"},
        {404, "54"},
        {404, "55"},
        {404, "56"},
        {404, "57"},
        {404, "58"},
        {404, "59"},
        {404, "60"},
        {404, "61"},
        {404, "62"},
        {404, "63"},
        {404, "64"},
        {404, "65"},
        {404, "66"},
        {404, "67"},
        {404, "68"},
        {404, "69"},
        {404, "70"},
        {404, "71"},
        {404, "72"},
        {404, "73"},
        {404, "74"},
        {404, "75"},
        {404, "76"},
        {404, "77"},
        {404, "78"},
        {404, "79"},
        {404, "80"},
        {404, "81"},
        {404, "82"},
        {404, "83"},
        {404, "84"},
        {404, "85"},
        {404, "86"},
        {404, "87"},
        {404, "88"},
        {404, "89"},
        {404, "90"},
        {404, "91"},
        {404, "92"},
        {404, "93"},
        {404, "94"},
        {404, "95"},
        {404, "96"},
        {404, "97"},
        {404, "98"},
        {404, "99"},
        {405, "000"},
        {405, "005"},
        {405, "006"},
        {405, "007"},
        {405, "009"},
        {405, "010"},
        {405, "011"},
        {405, "012"},
        {405, "013"},
        {405, "014"},
        {405, "018"},
        {405, "020"},
        {405, "021"},
        {405, "022"},
        {405, "025"},
        {405, "027"},
        {405, "029"},
        {405, "030"},
        {405, "031"},
        {405, "032"},
        {405, "033"},
        {405, "034"},
        {405, "035"},
        {405, "036"},
        {405, "037"},
        {405, "038"},
        {405, "039"},
        {405, "040"},
        {405, "041"},
        {405, "042"},
        {405, "043"},
        {405, "044"},
        {405, "045"},
        {405, "046"},
        {405, "047"},
        {405, "08"},
        {405, "12"},
        {405, "15"},
        {405, "17"},
        {405, "23"},
        {405, "28"},
        {405, "52"},
        {405, "53"},
        {405, "54"},
        {405, "55"},
        {405, "56"},
        {405, "66"},
        {405, "67"},
        {405, "68"},
        {405, "70"},
        {405, "71"},
        {405, "72"},
        {405, "73"},
        {405, "74"},
        {405, "750"},
        {405, "751"},
        {405, "752"},
        {405, "753"},
        {405, "754"},
        {405, "755"},
        {405, "76"},
        {405, "77"},
        {405, "799"},
        {405, "800"},
        {405, "801"},
        {405, "802"},
        {405, "803"},
        {405, "804"},
        {405, "805"},
        {405, "806"},
        {405, "807"},
        {405, "808"},
        {405, "809"},
        {405, "81"},
        {405, "82"},
        {405, "83"},
        {405, "84"},
        {405, "85"},
        {405, "86"},
        {510, "00"},
        {510, "01"},
        {510, "08"},
        {510, "10"},
        {510, "11"},
        {510, "21"},
        {510, "28"},
        {432, "11"},
        {432, "14"},
        {432, "19"},
        {418, "05"},
        {418, "20"},
        {418, "30"},
        {418, "40"},
        {418, "47"},
        {418, "48"},
        {418, "49"},
        {418, "62"},
        {418, "70"},
        {418, "80"},
        {418, "81"},
        {418, "83"},
        {418, "84"},
        {418, "85"},
        {418, "86"},
        {418, "87"},
        {418, "88"},
        {418, "89"},
        {418, "91"},
        {418, "92"},
        {418, "93"},
        {418, "94"},
        {272, "01"},
        {272, "02"},
        {272, "03"},
        {272, "07"},
        {272, "09"},
        {274, "01"},
        {274, "02"},
        {274, "03"},
        {274, "04"},
        {274, "07"},
        {425, "01"},
        {425, "02"},
        {425, "03"},
        {425, "04"},
        {425, "06"},
        {425, "07"},
        {425, "08"},
        {425, "11"},
        {425, "12"},
        {425, "13"},
        {425, "14"},
        {425, "15"},
        {425, "16"},
        {425, "17"},
        {425, "18"},
        {425, "19"},
        {425, "20"},
        {425, "21"},
        {222, "01"},
        {222, "02"},
        {222, "10"},
        {222, "77"},
        {222, "88"},
        {222, "98"},
        {222, "99"},
        {338, "020"},
        {338, "050"},
        {338, "110"},
        {440, "01"},
        {440, "02"},
        {440, "03"},
        {440, "04"},
        {440, "06"},
        {440, "07"},
        {440, "08"},
        {440, "09"},
        {440, "10"},
        {440, "11"},
        {440, "12"},
        {440, "13"},
        {440, "14"},
        {440, "15"},
        {440, "16"},
        {440, "17"},
        {440, "18"},
        {440, "19"},
        {440, "20"},
        {440, "21"},
        {440, "22"},
        {440, "23"},
        {440, "24"},
        {440, "25"},
        {440, "26"},
        {440, "27"},
        {440, "28"},
        {440, "29"},
        {440, "30"},
        {440, "31"},
        {440, "32"},
        {440, "33"},
        {440, "34"},
        {440, "35"},
        {440, "36"},
        {440, "37"},
        {440, "38"},
        {440, "39"},
        {440, "40"},
        {440, "41"},
        {440, "42"},
        {440, "43"},
        {440, "44"},
        {440, "45"},
        {440, "46"},
        {440, "47"},
        {440, "48"},
        {440, "49"},
        {440, "50"},
        {440, "51"},
        {440, "52"},
        {440, "53"},
        {440, "54"},
        {440, "55"},
        {440, "56"},
        {440, "58"},
        {440, "60"},
        {440, "61"},
        {440, "62"},
        {440, "63"},
        {440, "64"},
        {440, "65"},
        {440, "66"},
        {440, "67"},
        {440, "68"},
        {440, "69"},
        {440, "70"},
        {440, "71"},
        {440, "72"},
        {440, "73"},
        {440, "74"},
        {440, "75"},
        {440, "76"},
        {440, "77"},
        {440, "78"},
        {440, "79"},
        {440, "80"},
        {440, "81"},
        {440, "82"},
        {440, "83"},
        {440, "84"},
        {440, "85"},
        {440, "86"},
        {440, "87"},
        {440, "88"},
        {440, "89"},
        {440, "90"},
        {440, "92"},
        {440, "93"},
        {440, "94"},
        {440, "95"},
        {440, "96"},
        {440, "97"},
        {440, "98"},
        {440, "99"},
        {441, "40"},
        {441, "41"},
        {441, "42"},
        {441, "43"},
        {441, "44"},
        {441, "45"},
        {441, "50"},
        {441, "51"},
        {441, "61"},
        {441, "62"},
        {441, "63"},
        {441, "64"},
        {441, "65"},
        {441, "70"},
        {441, "90"},
        {441, "91"},
        {441, "92"},
        {441, "93"},
        {441, "94"},
        {441, "98"},
        {441, "99"},
        {416, "01"},
        {416, "02"},
        {416, "03"},
        {416, "77"},
        {401, "01"},
        {401, "02"},
        {639, "02"},
        {639, "03"},
        {437, "01"},
        {419, "02"},
        {419, "03"},
        {419, "04"},
        {457, "01"},
        {457, "02"},
        {457, "08"},
        {651, "01"},
        {651, "02"},
        {247, "01"},
        {247, "02"},
        {247, "03"},
        {247, "04"},
        {247, "05"},
        {247, "06"},
        {247, "07"},
        {247, "08"},
        {247, "09"},
        {294, "01"},
        {294, "02"},
        {294, "03"},
        {294, "10"},
        {294, "11"},
        {415, "05"},
        {415, "32"},
        {415, "33"},
        {415, "34"},
        {415, "35"},
        {415, "36"},
        {415, "37"},
        {415, "38"},
        {415, "39"},
        {618, "04"},
        {228, "01"},
        {295, "01"},
        {295, "02"},
        {295, "05"},
        {295, "06"},
        {246, "01"},
        {246, "02"},
        {246, "03"},
        {270, "01"},
        {270, "02"},
        {270, "10"},
        {270, "77"},
        {270, "78"},
        {270, "99"},
        {455, "00"},
        {455, "01"},
        {455, "02"},
        {455, "03"},
        {455, "04"},
        {455, "05"},
        {455, "06"},
        {646, "01"},
        {646, "02"},
        {646, "04"},
        {502, "10"},
        {502, "12"},
        {502, "13"},
        {502, "14"},
        {502, "16"},
        {502, "17"},
        {502, "18"},
        {502, "19"},
        {502, "20"},
        {650, "01"},
        {650, "10"},
        {472, "01"},
        {610, "01"},
        {278, "01"},
        {278, "21"},
        {278, "77"},
        {604, "00"},
        {604, "01"},
        {340, "12"},
        {617, "01"},
        {617, "02"},
        {617, "03"},
        {617, "10"},
        {609, "01"},
        {609, "02"},
        {609, "10"},
        {334, "001"},
        {334, "010"},
        {334, "020"},
        {334, "030"},
        {334, "040"},
        {334, "050"},
        {334, "060"},
        {334, "066"},
        {334, "070"},
        {334, "080"},
        {334, "090"},
        {550, "01"},
        {259, "01"},
        {259, "02"},
        {259, "04"},
        {259, "05"},
        {259, "99"},
        {428, "99"},
        {297, "01"},
        {297, "02"},
        {297, "03"},
        {354, "860"},
        {643, "01"},
        {643, "03"},
        {643, "04"},
        {414, "01"},
        {649, "01"},
        {649, "02"},
        {649, "03"},
        {542, "02"},
        {429, "01"},
        {710, "21"},
        {710, "73"},
        {614, "01"},
        {614, "02"},
        {614, "03"},
        {621, "20"},
        {621, "30"},
        {621, "40"},
        {621, "50"},
        {621, "60"},
        {555, "01"},
        {242, "01"},
        {242, "02"},
        {242, "03"},
        {242, "04"},
        {242, "05"},
        {242, "07"},
        {242, "08"},
        {242, "09"},
        {242, "10"},
        {242, "11"},
        {242, "12"},
        {242, "20"},
        {242, "21"},
        {242, "22"},
        {242, "23"},
        {242, "24"},
        {546, "01"},
        {530, "00"},
        {530, "01"},
        {530, "02"},
        {530, "03"},
        {530, "04"},
        {530, "05"},
        {530, "06"},
        {530, "07"},
        {530, "24"},
        {422, "02"},
        {422, "03"},
        {422, "04"},
        {641, "01"},
        {641, "10"},
        {641, "11"},
        {641, "14"},
        {641, "18"},
        {641, "22"},
        {641, "30"},
        {641, "33"},
        {641, "40"},
        {641, "44"},
        {641, "66"},
        {434, "01"},
        {434, "02"},
        {434, "04"},
        {434, "05"},
        {434, "07"},
        {410, "01"},
        {410, "03"},
        {410, "04"},
        {410, "06"},
        {410, "07"},
        {552, "01"},
        {714, "01"},
        {714, "02"},
        {714, "020"},
        {714, "03"},
        {714, "04"},
        {537, "01"},
        {537, "02"},
        {537, "03"},
        {744, "01"},
        {744, "02"},
        {744, "03"},
        {204, "01"},
        {204, "02"},
        {204, "03"},
        {204, "04"},
        {204, "05"},
        {204, "06"},
        {204, "07"},
        {204, "08"},
        {204, "09"},
        {204, "10"},
        {204, "12"},
        {204, "13"},
        {204, "15"},
        {204, "16"},
        {204, "17"},
        {204, "18"},
        {204, "19"},
        {204, "20"},
        {204, "21"},
        {204, "22"},
        {204, "23"},
        {204, "24"},
        {204, "25"},
        {204, "26"},
        {204, "28"},
        {204, "29"},
        {204, "60"},
        {204, "61"},
        {204, "64"},
        {204, "65"},
        {204, "66"},
        {204, "67"},
        {204, "68"},
        {204, "69"},
        {716, "10"},
        {515, "01"},
        {515, "02"},
        {515, "03"},
        {515, "05"},
        {260, "01"},
        {260, "02"},
        {260, "03"},
        {260, "04"},
        {260, "05"},
        {260, "06"},
        {260, "07"},
        {260, "08"},
        {260, "09"},
        {260, "10"},
        {260, "11"},
        {260, "12"},
        {260, "13"},
        {260, "14"},
        {260, "15"},
        {260, "16"},
        {260, "17"},
        {260, "18"},
        {260, "19"},
        {260, "20"},
        {260, "21"},
        {260, "22"},
        {260, "23"},
        {260, "24"},
        {260, "25"},
        {260, "26"},
        {260, "27"},
        {260, "28"},
        {260, "29"},
        {260, "30"},
        {260, "31"},
        {260, "32"},
        {260, "33"},
        {260, "34"},
        {260, "98"},
        {547, "10"},
        {547, "15"},
        {547, "20"},
        {268, "01"},
        {268, "03"},
        {268, "05"},
        {268, "06"},
        {427, "01"},
        {427, "06"},
        {630, "01"},
        {630, "02"},
        {630, "05"},
        {630, "86"},
        {630, "88"},
        {630, "89"},
        {630, "90"},
        {230, "01"},
        {230, "02"},
        {230, "03"},
        {230, "04"},
        {230, "05"},
        {230, "07"},
        {230, "08"},
        {230, "98"},
        {417, "01"},
        {417, "02"},
        {417, "09"},
        {226, "01"},
        {226, "02"},
        {226, "03"},
        {226, "04"},
        {226, "05"},
        {226, "06"},
        {226, "10"},
        {226, "11"},
        {234, "00"},
        {234, "01"},
        {234, "02"},
        {234, "03"},
        {234, "04"},
        {234, "05"},
        {234, "06"},
        {234, "07"},
        {234, "08"},
        {234, "09"},
        {234, "10"},
        {234, "11"},
        {234, "12"},
        {234, "13"},
        {234, "14"},
        {234, "15"},
        {234, "16"},
        {234, "17"},
        {234, "18"},
        {234, "19"},
        {234, "20"},
        {234, "21"},
        {234, "22"},
        {234, "23"},
        {234, "24"},
        {234, "25"},
        {234, "26"},
        {234, "27"},
        {234, "28"},
        {234, "29"},
        {234, "30"},
        {234, "31"},
        {234, "32"},
        {234, "33"},
        {234, "34"},
        {234, "35"},
        {234, "36"},
        {234, "37"},
        {234, "38"},
        {234, "39"},
        {234, "50"},
        {234, "51"},
        {234, "52"},
        {234, "53"},
        {234, "55"},
        {234, "58"},
        {234, "76"},
        {234, "78"},
        {234, "86"},
        {235, "00"},
        {235, "01"},
        {235, "02"},
        {235, "77"},
        {235, "91"},
        {235, "92"},
        {235, "94"},
        {235, "95"},
        {635, "10"},
        {635, "13"},
        {635, "14"},
        {635, "17"},
        {358, "110"},
        {356, "110"},
        {292, "01"},
        {308, "01"},
        {360, "110"},
        {540, "02"},
        {549, "01"},
        {549, "27"},
        {626, "01"},
        {608, "01"},
        {608, "02"},
        {608, "03"},
        {608, "04"},
        {220, "01"},
        {220, "03"},
        {220, "05"},
        {633, "01"},
        {633, "02"},
        {633, "10"},
        {619, "01"},
        {619, "02"},
        {619, "03"},
        {619, "04"},
        {619, "05"},
        {619, "25"},
        {619, "40"},
        {619, "50"},
        {525, "01"},
        {525, "02"},
        {525, "03"},
        {525, "05"},
        {525, "12"},
        {231, "01"},
        {231, "02"},
        {231, "04"},
        {231, "05"},
        {293, "40"},
        {293, "41"},
        {293, "64"},
        {293, "70"},
        {634, "01"},
        {634, "02"},
        {634, "05"},
        {634, "06"},
        {634, "99"},
        {413, "02"},
        {413, "03"},
        {659, "12"},
        {659, "91"},
        {659, "92"},
        {659, "95"},
        {659, "97"},
        {655, "01"},
        {655, "02"},
        {655, "04"},
        {655, "06"},
        {655, "07"},
        {655, "10"},
        {655, "11"},
        {655, "12"},
        {655, "13"},
        {655, "14"},
        {655, "19"},
        {655, "21"},
        {655, "25"},
        {655, "27"},
        {655, "30"},
        {655, "31"},
        {655, "32"},
        {655, "33"},
        {655, "34"},
        {655, "35"},
        {655, "36"},
        {655, "41"},
        {655, "50"},
        {655, "51"},
        {240, "01"},
        {240, "02"},
        {240, "03"},
        {240, "04"},
        {240, "05"},
        {240, "06"},
        {240, "08"},
        {240, "10"},
        {240, "12"},
        {240, "13"},
        {240, "14"},
        {240, "15"},
        {240, "16"},
        {240, "17"},
        {240, "18"},
        {240, "19"},
        {240, "20"},
        {240, "21"},
        {240, "22"},
        {240, "23"},
        {240, "24"},
        {240, "26"},
        {240, "27"},
        {240, "28"},
        {240, "29"},
        {240, "30"},
        {240, "32"},
        {240, "33"},
        {240, "34"},
        {240, "35"},
        {240, "36"},
        {240, "37"},
        {240, "38"},
        {240, "40"},
        {240, "41"},
        {240, "42"},
        {240, "43"},
        {240, "44"},
        {240, "45"},
        {240, "65"},
        {240, "66"},
        {240, "67"},
        {240, "68"},
        {240, "69"},
        {228, "01"},
        {228, "02"},
        {228, "03"},
        {228, "05"},
        {228, "06"},
        {228, "08"},
        {228, "12"},
        {228, "51"},
        {746, "02"},
        {746, "03"},
        {746, "04"},
        {746, "05"},
        {653, "01"},
        {653, "10"},
        {436, "01"},
        {436, "02"},
        {436, "03"},
        {436, "04"},
        {436, "05"},
        {640, "02"},
        {640, "03"},
        {640, "04"},
        {640, "05"},
        {622, "01"},
        {622, "02"},
        {520, "00"},
        {520, "01"},
        {520, "02"},
        {520, "03"},
        {520, "04"},
        {520, "05"},
        {520, "15"},
        {520, "18"},
        {520, "20"},
        {520, "23"},
        {520, "47"},
        {520, "99"},
        {514, "01"},
        {514, "02"},
        {514, "03"},
        {615, "01"},
        {539, "01"},
        {539, "43"},
        {539, "88"},
        {374, "12"},
        {374, "130"},
        {374, "140"},
        {605, "02"},
        {605, "03"},
        {438, "01"},
        {438, "02"},
        {376, "350"},
        {376, "352"},
        {376, "360"},
        {286, "01"},
        {286, "02"},
        {286, "03"},
        {286, "04"},
        {553, "01"},
        {255, "01"},
        {255, "02"},
        {255, "03"},
        {255, "04"},
        {255, "05"},
        {255, "06"},
        {255, "07"},
        {255, "21"},
        {748, "00"},
        {748, "01"},
        {748, "03"},
        {748, "07"},
        {748, "10"},
        {541, "01"},
        {541, "05"},
        {541, "07"},
        {734, "02"},
        {734, "04"},
        {734, "06"},
        {348, "170"},
        {348, "370"},
        {348, "570"},
        {348, "770"},
        {452, "01"},
        {452, "02"},
        {452, "03"},
        {452, "04"},
        {452, "06"},
        {452, "07"},
        {452, "08"},
        {421, "01"},
        {421, "02"},
        {421, "04"},
        {645, "01"},
        {645, "02"},
        {645, "03"},
        {648, "01"},
        {648, "03"},
        {648, "04"},
        {0, "end"} // end of list
};


int find_mnc_length(const char mcc_digit1P,
        const char mcc_digit2P,
        const char mcc_digit3P,
        const char mnc_digit1P,
        const char mnc_digit2P,
        const char mnc_digit3P) {

    int mcc = 100*(mcc_digit1P-48) + 10*(mcc_digit2P-48) + (mcc_digit3P-48);
    char mnc3[4];
    char mnc2[3];
    int  index_l = 0;

    AssertFatal((mcc_digit1P >= '0') && (mcc_digit1P <='9')
            && (mcc_digit2P >= '0') && (mcc_digit2P <= '9')
            && (mcc_digit3P >= '0') && (mcc_digit3P <= '9') ,
            "BAD MCC PARAMETER (%d%d%d)!\n",
            mcc_digit1P, mcc_digit2P, mcc_digit3P);

    AssertFatal((mnc_digit1P >= '0') && (mnc_digit1P <= '9')
            && (mnc_digit2P >= '0') && (mnc_digit2P <= '9') ,
            "BAD MNC PARAMETER ((%d)%d%d)!\n",
            mnc_digit1P, mnc_digit2P, mnc_digit3P);

    mnc2[0] = mnc_digit1P;
    mnc2[1] = mnc_digit2P;
    mnc2[2] = '\0';

    mnc3[0] = mnc_digit1P;
    mnc3[1] = mnc_digit2P;
    mnc3[2] = mnc_digit3P;
    mnc3[3] = '\0';

    do {
        if (mcc_mnc_list[index_l].mcc == mcc) {
            //fprintf(stdout, "Found MCC %d!\n", mcc);
            do {
                //fprintf(stdout, "Comparing MNCs %s, %s with %s\n", mnc2, mnc3, mcc_mnc_list[index_l].mnc);
                if (strcmp(mnc2, mcc_mnc_list[index_l].mnc) == 0) {
                    return 2;
                } else if (strcmp(mnc3, mcc_mnc_list[index_l].mnc) == 0) {
                    return 3;
                }
                index_l += 1;
            } while (mcc_mnc_list[index_l].mcc == mcc);
            return 0;
        }
        index_l += 1;
    } while (mcc_mnc_list[index_l].mcc != 0);
    return 0;
}