UNPKG

vue-card-payment

Version:
4,610 lines 128 kB
/*!
 * vue-card-payment v0.2.1
 * (c) 2019 Vladimir Pavlov
 * Released under the MIT License.
 */

/*
 * Luhn algorithm implementation in JavaScript
 * Copyright (c) 2009 Nicholas C. Zakas
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 * THE SOFTWARE.
 */
function luhn10(identifier) {
  var sum = 0;
  var alt = false;
  var i = identifier.length - 1;
  var num;

  while (i >= 0) {
    num = parseInt(identifier.charAt(i), 10);

    if (alt) {
      num *= 2;
      if (num > 9) {
        num = (num % 10) + 1; // eslint-disable-line no-extra-parens
      }
    }

    alt = !alt;

    sum += num;

    i--;
  }

  return sum % 10 === 0;
}

var luhn10_1 = luhn10;

var testOrder;
var types = {};
var customCards = {};
var VISA = 'visa';
var MASTERCARD = 'mastercard';
var AMERICAN_EXPRESS = 'american-express';
var DINERS_CLUB = 'diners-club';
var DISCOVER = 'discover';
var JCB = 'jcb';
var UNIONPAY = 'unionpay';
var MAESTRO = 'maestro';
var MIR = 'mir';
var CVV = 'CVV';
var CID = 'CID';
var CVC = 'CVC';
var CVN = 'CVN';
var CVP2 = 'CVP2';
var ORIGINAL_TEST_ORDER = [
  VISA,
  MASTERCARD,
  AMERICAN_EXPRESS,
  DINERS_CLUB,
  DISCOVER,
  JCB,
  UNIONPAY,
  MAESTRO,
  MIR
];

function clone(originalObject) {
  var dupe;

  if (!originalObject) { return null; }

  dupe = JSON.parse(JSON.stringify(originalObject));
  delete dupe.prefixPattern;
  delete dupe.exactPattern;

  return dupe;
}

testOrder = clone(ORIGINAL_TEST_ORDER);

types[VISA] = {
  niceType: 'Visa',
  type: VISA,
  prefixPattern: /^4$/,
  exactPattern: /^4\d*$/,
  gaps: [4, 8, 12],
  lengths: [16, 18, 19],
  code: {
    name: CVV,
    size: 3
  }
};

types[MASTERCARD] = {
  niceType: 'Mastercard',
  type: MASTERCARD,
  prefixPattern: /^(5|5[1-5]|2|22|222|222[1-9]|2[3-6]|27|27[0-2]|2720)$/,
  exactPattern: /^(5[1-5]|222[1-9]|22[3-9]|2[3-6]|27[0-1]|2720)\d*$/,
  gaps: [4, 8, 12],
  lengths: [16],
  code: {
    name: CVC,
    size: 3
  }
};

types[AMERICAN_EXPRESS] = {
  niceType: 'American Express',
  type: AMERICAN_EXPRESS,
  prefixPattern: /^(3|34|37)$/,
  exactPattern: /^3[47]\d*$/,
  isAmex: true,
  gaps: [4, 10],
  lengths: [15],
  code: {
    name: CID,
    size: 4
  }
};

types[DINERS_CLUB] = {
  niceType: 'Diners Club',
  type: DINERS_CLUB,
  prefixPattern: /^(3|3[0689]|30[0-5])$/,
  exactPattern: /^3(0[0-5]|[689])\d*$/,
  gaps: [4, 10],
  lengths: [14, 16, 19],
  code: {
    name: CVV,
    size: 3
  }
};

types[DISCOVER] = {
  niceType: 'Discover',
  type: DISCOVER,
  prefixPattern: /^(6|60|601|6011|65|64|64[4-9])$/,
  exactPattern: /^(6011|65|64[4-9])\d*$/,
  gaps: [4, 8, 12],
  lengths: [16, 19],
  code: {
    name: CID,
    size: 3
  }
};

types[JCB] = {
  niceType: 'JCB',
  type: JCB,
  prefixPattern: /^(2|21|213|2131|1|18|180|1800|3|35)$/,
  exactPattern: /^(2131|1800|35)\d*$/,
  gaps: [4, 8, 12],
  lengths: [16, 17, 18, 19],
  code: {
    name: CVV,
    size: 3
  }
};

types[UNIONPAY] = {
  niceType: 'UnionPay',
  type: UNIONPAY,
  prefixPattern: /^((6|62|62\d|(621(?!83|88|98|99))|622(?!06)|627[02,06,07]|628(?!0|1)|629[1,2])|622018)$/,
  exactPattern: /^(((620|(621(?!83|88|98|99))|622(?!06|018)|62[3-6]|627[02,06,07]|628(?!0|1)|629[1,2]))\d*|622018\d{12})$/,
  gaps: [4, 8, 12],
  lengths: [16, 17, 18, 19],
  code: {
    name: CVN,
    size: 3
  }
};

types[MAESTRO] = {
  niceType: 'Maestro',
  type: MAESTRO,
  prefixPattern: /^(5|5[06-9]|6\d*)$/,
  exactPattern: /^(5[06-9]|6[37])\d*$/,
  gaps: [4, 8, 12],
  lengths: [12, 13, 14, 15, 16, 17, 18, 19],
  code: {
    name: CVC,
    size: 3
  }
};

types[MIR] = {
  niceType: 'Mir',
  type: MIR,
  prefixPattern: /^(2|22|220|220[0-4])$/,
  exactPattern: /^(220[0-4])\d*$/,
  gaps: [4, 8, 12],
  lengths: [16, 17, 18, 19],
  code: {
    name: CVP2,
    size: 3
  }
};

function findType(type) {
  return customCards[type] || types[type];
}

function creditCardType(cardNumber) {
  var type, value, i;
  var prefixResults = [];
  var exactResults = [];

  if (!(typeof cardNumber === 'string' || cardNumber instanceof String)) {
    return [];
  }

  for (i = 0; i < testOrder.length; i++) {
    type = testOrder[i];
    value = findType(type);

    if (cardNumber.length === 0) {
      prefixResults.push(clone(value));
      continue;
    }

    if (value.exactPattern.test(cardNumber)) {
      exactResults.push(clone(value));
    } else if (value.prefixPattern.test(cardNumber)) {
      prefixResults.push(clone(value));
    }
  }

  return exactResults.length ? exactResults : prefixResults;
}

creditCardType.getTypeInfo = function (type) {
  return clone(findType(type));
};

function getCardPosition(name, ignoreErrorForNotExisting) {
  var position = testOrder.indexOf(name);

  if (!ignoreErrorForNotExisting && position === -1) {
    throw new Error('"' + name + '" is not a supported card type.');
  }

  return position;
}

creditCardType.removeCard = function (name) {
  var position = getCardPosition(name);

  testOrder.splice(position, 1);
};

creditCardType.addCard = function (config) {
  var existingCardPosition = getCardPosition(config.type, true);

  customCards[config.type] = config;

  if (existingCardPosition === -1) {
    testOrder.push(config.type);
  }
};

creditCardType.changeOrder = function (name, position) {
  var currentPosition = getCardPosition(name);

  testOrder.splice(currentPosition, 1);
  testOrder.splice(position, 0, name);
};

creditCardType.resetModifications = function () {
  testOrder = clone(ORIGINAL_TEST_ORDER);
  customCards = {};
};

creditCardType.types = {
  VISA: VISA,
  MASTERCARD: MASTERCARD,
  AMERICAN_EXPRESS: AMERICAN_EXPRESS,
  DINERS_CLUB: DINERS_CLUB,
  DISCOVER: DISCOVER,
  JCB: JCB,
  UNIONPAY: UNIONPAY,
  MAESTRO: MAESTRO,
  MIR: MIR
};

var creditCardType_1 = creditCardType;

function verification(card, isPotentiallyValid, isValid) {
  return {card: card, isPotentiallyValid: isPotentiallyValid, isValid: isValid};
}

function cardNumber(value) {
  var potentialTypes, cardType, isPotentiallyValid, isValid, i, maxLength;

  if (typeof value === 'number') {
    value = String(value);
  }

  if (typeof value !== 'string') { return verification(null, false, false); }

  value = value.replace(/\-|\s/g, '');

  if (!/^\d*$/.test(value)) { return verification(null, false, false); }

  potentialTypes = creditCardType_1(value);

  if (potentialTypes.length === 0) {
    return verification(null, false, false);
  } else if (potentialTypes.length !== 1) {
    return verification(null, true, false);
  }

  cardType = potentialTypes[0];

  if (cardType.type === 'unionpay') {  // UnionPay is not Luhn 10 compliant
    isValid = true;
  } else {
    isValid = luhn10_1(value);
  }

  maxLength = Math.max.apply(null, cardType.lengths);

  for (i = 0; i < cardType.lengths.length; i++) {
    if (cardType.lengths[i] === value.length) {
      isPotentiallyValid = value.length !== maxLength || isValid;
      return verification(cardType, isPotentiallyValid, isValid);
    }
  }

  return verification(cardType, value.length < maxLength, false);
}

var cardNumber_1 = cardNumber;

var DEFAULT_VALID_NUMBER_OF_YEARS_IN_THE_FUTURE = 19;

function verification$2(isValid, isPotentiallyValid, isCurrentYear) {
  return {
    isValid: isValid,
    isPotentiallyValid: isPotentiallyValid,
    isCurrentYear: isCurrentYear || false
  };
}

function expirationYear(value, maxElapsedYear) {
  var currentFirstTwo, currentYear, firstTwo, len, twoDigitYear, valid, isCurrentYear;

  maxElapsedYear = maxElapsedYear || DEFAULT_VALID_NUMBER_OF_YEARS_IN_THE_FUTURE;

  if (typeof value !== 'string') {
    return verification$2(false, false);
  }
  if (value.replace(/\s/g, '') === '') {
    return verification$2(false, true);
  }
  if (!/^\d*$/.test(value)) {
    return verification$2(false, false);
  }

  len = value.length;

  if (len < 2) {
    return verification$2(false, true);
  }

  currentYear = new Date().getFullYear();

  if (len === 3) {
    // 20x === 20x
    firstTwo = value.slice(0, 2);
    currentFirstTwo = String(currentYear).slice(0, 2);
    return verification$2(false, firstTwo === currentFirstTwo);
  }

  if (len > 4) {
    return verification$2(false, false);
  }

  value = parseInt(value, 10);
  twoDigitYear = Number(String(currentYear).substr(2, 2));

  if (len === 2) {
    isCurrentYear = twoDigitYear === value;
    valid = value >= twoDigitYear && value <= twoDigitYear + maxElapsedYear;
  } else if (len === 4) {
    isCurrentYear = currentYear === value;
    valid = value >= currentYear && value <= currentYear + maxElapsedYear;
  }

  return verification$2(valid, valid, isCurrentYear);
}

var expirationYear_1 = expirationYear;

// Polyfill taken from <https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray#Polyfill>.

var isArray = Array.isArray || function (arg) {
  return Object.prototype.toString.call(arg) === '[object Array]';
};

function parseDate(value) {
  var month, len, year, yearValid;

  if (/\//.test(value)) {
    value = value.split(/\s*\/\s*/g);
  } else if (/\s/.test(value)) {
    value = value.split(/ +/g);
  }

  if (isArray(value)) {
    return {
      month: value[0],
      year: value.slice(1).join()
    };
  }

  len = value[0] === '0' || value.length > 5 ? 2 : 1;

  if (value[0] === '1') {
    year = value.substr(1);
    yearValid = expirationYear_1(year);
    if (!yearValid.isPotentiallyValid) {
      len = 2;
    }
  }

  month = value.substr(0, len);

  return {
    month: month,
    year: value.substr(month.length)
  };
}

var parseDate_1 = parseDate;

function verification$3(isValid, isPotentiallyValid, isValidForThisYear) {
  return {
    isValid: isValid,
    isPotentiallyValid: isPotentiallyValid,
    isValidForThisYear: isValidForThisYear || false
  };
}

function expirationMonth(value) {
  var month, result;
  var currentMonth = new Date().getMonth() + 1;

  if (typeof value !== 'string') {
    return verification$3(false, false);
  }
  if (value.replace(/\s/g, '') === '' || value === '0') {
    return verification$3(false, true);
  }
  if (!/^\d*$/.test(value)) {
    return verification$3(false, false);
  }

  month = parseInt(value, 10);

  if (isNaN(value)) {
    return verification$3(false, false);
  }

  result = month > 0 && month < 13;

  return verification$3(result, result, result && month >= currentMonth);
}

var expirationMonth_1 = expirationMonth;

function verification$1(isValid, isPotentiallyValid, month, year) {
  return {
    isValid: isValid,
    isPotentiallyValid: isPotentiallyValid,
    month: month,
    year: year
  };
}

function expirationDate(value, maxElapsedYear) {
  var date, monthValid, yearValid, isValidForThisYear;

  if (typeof value === 'string') {
    value = value.replace(/^(\d\d) (\d\d(\d\d)?)$/, '$1/$2');
    date = parseDate_1(value);
  } else if (value !== null && typeof value === 'object') {
    date = {
      month: String(value.month),
      year: String(value.year)
    };
  } else {
    return verification$1(false, false, null, null);
  }

  monthValid = expirationMonth_1(date.month);
  yearValid = expirationYear_1(date.year, maxElapsedYear);

  if (monthValid.isValid) {
    if (yearValid.isCurrentYear) {
      isValidForThisYear = monthValid.isValidForThisYear;
      return verification$1(isValidForThisYear, isValidForThisYear, date.month, date.year);
    }

    if (yearValid.isValid) {
      return verification$1(true, true, date.month, date.year);
    }
  }

  if (monthValid.isPotentiallyValid && yearValid.isPotentiallyValid) {
    return verification$1(false, true, null, null);
  }

  return verification$1(false, false, null, null);
}

var expirationDate_1 = expirationDate;

var DEFAULT_LENGTH = 3;

function includes(array, thing) {
  var i = 0;

  for (; i < array.length; i++) {
    if (thing === array[i]) { return true; }
  }

  return false;
}

function max(array) {
  var maximum = DEFAULT_LENGTH;
  var i = 0;

  for (; i < array.length; i++) {
    maximum = array[i] > maximum ? array[i] : maximum;
  }

  return maximum;
}

function verification$4(isValid, isPotentiallyValid) {
  return {isValid: isValid, isPotentiallyValid: isPotentiallyValid};
}

function cvv(value, maxLength) {
  maxLength = maxLength || DEFAULT_LENGTH;
  maxLength = maxLength instanceof Array ? maxLength : [maxLength];

  if (typeof value !== 'string') { return verification$4(false, false); }
  if (!/^\d*$/.test(value)) { return verification$4(false, false); }
  if (includes(maxLength, value.length)) { return verification$4(true, true); }
  if (value.length < Math.min.apply(null, maxLength)) { return verification$4(false, true); }
  if (value.length > max(maxLength)) { return verification$4(false, false); }

  return verification$4(true, true);
}

var cvv_1 = cvv;

var DEFAULT_MIN_POSTAL_CODE_LENGTH = 3;

function verification$5(isValid, isPotentiallyValid) {
  return {isValid: isValid, isPotentiallyValid: isPotentiallyValid};
}

function postalCode(value, options) {
  var minLength;

  options = options || {};

  minLength = options.minLength || DEFAULT_MIN_POSTAL_CODE_LENGTH;

  if (typeof value !== 'string') {
    return verification$5(false, false);
  } else if (value.length < minLength) {
    return verification$5(false, true);
  }

  return verification$5(true, true);
}

var postalCode_1 = postalCode;

var cardValidator = {
  number: cardNumber_1,
  expirationDate: expirationDate_1,
  expirationMonth: expirationMonth_1,
  expirationYear: expirationYear_1,
  cvv: cvv_1,
  postalCode: postalCode_1,
  creditCardType: creditCardType_1
};

var cardValidator_1 = cardValidator.number;
var cardValidator_3 = cardValidator.expirationMonth;
var cardValidator_4 = cardValidator.expirationYear;
var cardValidator_5 = cardValidator.cvv;

function createCommonjsModule(fn, module) {
	return module = { exports: {} }, fn(module, module.exports), module.exports;
}

var cardInfo = createCommonjsModule(function (module, exports) {
/*
 * card-info v1.2.4
 * Get bank logo, colors, brand and etc. by card number
 * https://github.com/iserdmi/card-info.git
 * by Sergey Dmitriev (http://srdm.io)
 */

(function () {
  function CardInfo (numberSource, options) {
    CardInfo._assign(this, CardInfo._defaultProps);

    this.options = CardInfo._assign({}, CardInfo.defaultOptions, options || {});
    this.numberSource = arguments.length ? numberSource : '';
    this.number = CardInfo._getNumber(this.numberSource);

    var bankData = CardInfo._getBank(this.number);
    if (bankData) {
      this.bankAlias = bankData.alias;
      this.bankName = bankData.name;
      this.bankNameEn = bankData.nameEn;
      this.bankCountry = bankData.country;
      this.bankUrl = bankData.url;
      this.bankLogoPng = CardInfo._getLogo(this.options.banksLogosPath, bankData.logoPng);
      this.bankLogoSvg = CardInfo._getLogo(this.options.banksLogosPath, bankData.logoSvg);
      this.bankLogo = CardInfo._getLogoByPreferredExt(this.bankLogoPng, this.bankLogoSvg, this.options.preferredExt);
      this.bankLogoStyle = bankData.logoStyle;
      this.backgroundColor = bankData.backgroundColor;
      this.backgroundColors = bankData.backgroundColors;
      this.backgroundLightness = bankData.backgroundLightness;
      this.textColor = bankData.text;
    }

    this.backgroundGradient = CardInfo._getGradient(this.backgroundColors, this.options.gradientDegrees);

    var brandData = CardInfo._getBrand(this.number);
    if (brandData) {
      this.brandAlias = brandData.alias;
      this.brandName = brandData.name;
      var brandLogoBasename = CardInfo._getBrandLogoBasename(this.brandAlias, this.options.brandLogoPolicy, this.backgroundLightness, this.bankLogoStyle);
      this.brandLogoPng = CardInfo._getLogo(this.options.brandsLogosPath, brandLogoBasename, 'png');
      this.brandLogoSvg = CardInfo._getLogo(this.options.brandsLogosPath, brandLogoBasename, 'svg');
      this.brandLogo = CardInfo._getLogoByPreferredExt(this.brandLogoPng, this.brandLogoSvg, this.options.preferredExt);
      this.codeName = brandData.codeName;
      this.codeLength = brandData.codeLength;
      this.numberLengths = brandData.lengths;
      this.numberGaps = brandData.gaps;
    }

    this.numberBlocks = CardInfo._getBlocks(this.numberGaps, this.numberLengths);
    this.numberMask = CardInfo._getMask(this.options.maskDigitSymbol, this.options.maskDelimiterSymbol, this.numberBlocks);
    this.numberNice = CardInfo._getNumberNice(this.number, this.numberGaps);
  }

  CardInfo._defaultProps = {
    bankAlias: null,
    bankName: null,
    bankNameEn: null,
    bankCountry: null,
    bankUrl: null,
    bankLogo: null,
    bankLogoPng: null,
    bankLogoSvg: null,
    bankLogoStyle: null,
    backgroundColor: '#eeeeee',
    backgroundColors: ['#eeeeee', '#dddddd'],
    backgroundLightness: 'light',
    backgroundGradient: null,
    textColor: '#000',
    brandAlias: null,
    brandName: null,
    brandLogo: null,
    brandLogoPng: null,
    brandLogoSvg: null,
    codeName: null,
    codeLength: null,
    numberMask: null,
    numberGaps: [4, 8, 12],
    numberBlocks: null,
    numberLengths: [12, 13, 14, 15, 16, 17, 18, 19],
    numberNice: null,
    number: null,
    numberSource: null,
    options: {}
  };

  CardInfo.defaultOptions = {
    banksLogosPath: '/bower_components/card-info/dist/banks-logos/',
    brandsLogosPath: '/bower_components/card-info/dist/brands-logos/',
    brandLogoPolicy: 'auto',
    preferredExt: 'svg',
    maskDigitSymbol: '0',
    maskDelimiterSymbol: ' ',
    gradientDegrees: 135
  };

  CardInfo._banks = {};

  CardInfo._prefixes = {};

  CardInfo._brands = [
    {
      alias: 'visa',
      name: 'Visa',
      codeName: 'CVV',
      codeLength: 3,
      gaps: [4, 8, 12],
      lengths: [16],
      pattern: /^4\d*$/
    },
    {
      alias: 'master-card',
      name: 'MasterCard',
      codeName: 'CVC',
      codeLength: 3,
      gaps: [4, 8, 12],
      lengths: [16],
      pattern: /^(5[1-5]|222[1-9]|2[3-6]|27[0-1]|2720)\d*$/
    },
    {
      alias: 'american-express',
      name: 'American Express',
      codeName: 'CID',
      codeLength: 4,
      gaps: [4, 10],
      lengths: [15],
      pattern: /^3[47]\d*$/
    },
    {
      alias: 'diners-club',
      name: 'Diners Club',
      codeName: 'CVV',
      codeLength: 3,
      gaps: [4, 10],
      lengths: [14],
      pattern: /^3(0[0-5]|[689])\d*$/
    },
    {
      alias: 'discover',
      name: 'Discover',
      codeName: 'CID',
      codeLength: 3,
      gaps: [4, 8, 12],
      lengths: [16, 19],
      pattern: /^(6011|65|64[4-9])\d*$/
    },
    {
      alias: 'jcb',
      name: 'JCB',
      codeName: 'CVV',
      codeLength: 3,
      gaps: [4, 8, 12],
      lengths: [16],
      pattern: /^(2131|1800|35)\d*$/
    },
    {
      alias: 'unionpay',
      name: 'UnionPay',
      codeName: 'CVN',
      codeLength: 3,
      gaps: [4, 8, 12],
      lengths: [16, 17, 18, 19],
      pattern: /^62[0-5]\d*$/
    },
    {
      alias: 'maestro',
      name: 'Maestro',
      codeName: 'CVC',
      codeLength: 3,
      gaps: [4, 8, 12],
      lengths: [12, 13, 14, 15, 16, 17, 18, 19],
      pattern: /^(5[0678]|6304|6390|6054|6271|67)\d*$/
    },
    {
      alias: 'mir',
      name: 'MIR',
      codeName: 'CVC',
      codeLength: 3,
      gaps: [4, 8, 12],
      lengths: [16],
      pattern: /^22\d*$/
    }
  ];

  CardInfo._assign = function () {
    var arguments$1 = arguments;

    var objTarget = arguments[0];
    for (var i = 1; i < arguments.length; i++) {
      var objSource = arguments$1[i];
      for (var key in objSource) {
        if (objSource.hasOwnProperty(key)) {
          if (objSource[key] instanceof Array) {
            objTarget[key] = CardInfo._assign([], objSource[key]);
          } else {
            objTarget[key] = objSource[key];
          }
        }
      }
    }
    return objTarget
  };

  CardInfo._getNumber = function (numberSource) {
    var numberSourceString = numberSource + '';
    return /^[\d ]*$/.test(numberSourceString) ? numberSourceString.replace(/\D/g, '') : ''
  };

  CardInfo._getBank = function (number) {
    if (number.length < 6) { return undefined }
    var prefix = number.substr(0, 6);
    return this._prefixes[prefix]
      ? this._banks[this._prefixes[prefix]]
      : undefined
  };

  CardInfo._getBrand = function (number) {
    var this$1 = this;

    var brands = [];
    for (var i = 0; i < this._brands.length; i++) {
      if (this$1._brands[i].pattern.test(number)) { brands.push(this$1._brands[i]); }
    }
    if (brands.length === 1) { return brands[0] }
  };

  CardInfo._getLogo = function (dirname, basename, extname) {
    return basename ? dirname + (extname ? basename + '.' + extname : basename) : null
  };

  CardInfo._getBrandLogoBasename = function (brandAlias, brandLogoPolicy, backgroundLightness, bankLogoStyle) {
    switch (brandLogoPolicy) {
      case 'auto': return brandAlias + '-' + (bankLogoStyle || 'colored')
      case 'colored': return brandAlias + '-colored'
      case 'mono': return brandAlias + (backgroundLightness === 'light' ? '-black' : '-white')
      case 'black': return brandAlias + '-black'
      case 'white': return brandAlias + '-white'
    }
  };

  CardInfo._getLogoByPreferredExt = function (logoPng, logoSvg, preferredExt) {
    if (!logoPng && !logoSvg) { return null }
    if (!logoPng) { return logoSvg }
    if (!logoSvg) { return logoPng }
    return (logoPng.substr(logoPng.length - 3) === preferredExt)
      ? logoPng
      : logoSvg
  };

  CardInfo._getGradient = function (backgroundColors, gradientDegrees) {
    return 'linear-gradient(' + gradientDegrees + 'deg, ' + backgroundColors.join(', ') + ')'
  };

  CardInfo._getBlocks = function (numberGaps, numberLengths) {
    var numberLength = numberLengths[numberLengths.length - 1];
    var blocks = [];
    for (var i = numberGaps.length - 1; i >= 0; i--) {
      var blockLength = numberLength - numberGaps[i];
      numberLength -= blockLength;
      blocks.push(blockLength);
    }
    blocks.push(numberLength);
    return blocks.reverse()
  };

  CardInfo._getMask = function (maskDigitSymbol, maskDelimiterSymbol, numberBlocks) {
    var mask = '';
    for (var i = 0; i < numberBlocks.length; i++) {
      mask += (i ? maskDelimiterSymbol : '') + Array(numberBlocks[i] + 1).join(maskDigitSymbol);
    }
    return mask
  };

  CardInfo._getNumberNice = function (number, numberGaps) {
    var offsets = [0].concat(numberGaps).concat([number.length]);
    var components = [];
    for (var i = 0; offsets[i] < number.length; i++) {
      var start = offsets[i];
      var end = Math.min(offsets[i + 1], number.length);
      components.push(number.substring(start, end));
    }
    return components.join(' ')
  };

  CardInfo._addBanks = function (banks) {
    this._assign(this._banks, banks);
  };

  CardInfo._addPrefixes = function (prefixes) {
    this._assign(this._prefixes, prefixes);
  };

  CardInfo.addBanksAndPrefixes = function (banksAndPrefixes) {
    this._addBanks(banksAndPrefixes.banks);
    this._addPrefixes(banksAndPrefixes.prefixes);
  };

  CardInfo.getBanks = function (options) {
    var this$1 = this;

    options = CardInfo._assign({}, CardInfo.defaultOptions, options || {});
    var banks = [];
    var exts = ['png', 'svg'];
    var extsCapitalized = ['Png', 'Svg'];
    for (var bi in this$1._banks) {
      if (this$1._banks.hasOwnProperty(bi)) {
        var bank = CardInfo._assign({}, this$1._banks[bi]);
        for (var ei = 0; ei < exts.length; ei++) {
          var logoKey = 'logo' + extsCapitalized[ei];
          if (bank[logoKey]) { bank[logoKey] = CardInfo._getLogo(options.banksLogosPath, bank[logoKey]); }
        }
        bank.backgroundGradient = CardInfo._getGradient(bank.backgroundColors, options.gradientDegrees);
        bank.logo = CardInfo._getLogoByPreferredExt(bank.logoPng, bank.logoSvg, options.preferredExt);
        banks.push(bank);
      }
    }
    return banks
  };

  CardInfo.getBrands = function (options) {
    var this$1 = this;

    options = CardInfo._assign({}, CardInfo.defaultOptions, options || {});
    var brands = [];
    var styles = ['colored', 'black', 'white'];
    var exts = ['png', 'svg'];
    var stylesCapitalized = ['Colored', 'Black', 'White'];
    var extsCapitalized = ['Png', 'Svg'];
    for (var bi = 0; bi < this._brands.length; bi++) {
      var brand = CardInfo._assign({}, this$1._brands[bi]);
      brand.blocks = CardInfo._getBlocks(brand.gaps, brand.lengths);
      brand.mask = CardInfo._getMask(options.maskDigitSymbol, options.maskDelimiterSymbol, brand.blocks);
      for (var si = 0; si < styles.length; si++) {
        var logoKey = 'logo' + stylesCapitalized[si];
        for (var ei = 0; ei < exts.length; ei++) {
          brand[logoKey + extsCapitalized[ei]] = CardInfo._getLogo(options.brandsLogosPath, brand.alias + '-' + styles[si], exts[ei]);
        }
        brand[logoKey] = CardInfo._getLogoByPreferredExt(brand[logoKey + 'Png'], brand[logoKey + 'Svg'], options.preferredExt);
      }
      brands.push(brand);
    }
    return brands
  };

  CardInfo.setDefaultOptions = function (options) {
    this._assign(CardInfo.defaultOptions, options);
  };

  {
    if ('object' !== 'undefined' && module.exports) {
      exports = module.exports = CardInfo;
    }
    exports.CardInfo = CardInfo;
  }
})()

;(function () {
  var banks = {
    "ru-absolut": {
      "name": "Абсолют Банк",
      "nameEn": "Absolut Bank",
      "url": "http://absolutbank.ru/",
      "backgroundColor": "#fdb89a",
      "backgroundColors": [
        "#fbd6c5",
        "#fdb89a"
      ],
      "backgroundLightness": "light",
      "logoStyle": "colored",
      "text": "#676766",
      "alias": "ru-absolut",
      "country": "ru",
      "logoPng": "ru-absolut.png"
    },
    "ru-akbars": {
      "name": "Ак Барс",
      "nameEn": "AK Bars",
      "url": "https://www.akbars.ru/",
      "backgroundColor": "#01973e",
      "backgroundColors": [
        "#01973e",
        "#04632b"
      ],
      "backgroundLightness": "dark",
      "logoStyle": "white",
      "text": "#fff",
      "alias": "ru-akbars",
      "country": "ru",
      "logoPng": "ru-akbars.png"
    },
    "ru-alfa": {
      "name": "Альфа-Банк",
      "nameEn": "Alfa-Bank",
      "url": "https://alfabank.ru/",
      "backgroundColor": "#ef3124",
      "backgroundColors": [
        "#ef3124",
        "#d6180b"
      ],
      "backgroundLightness": "dark",
      "logoStyle": "white",
      "text": "#fff",
      "alias": "ru-alfa",
      "country": "ru",
      "logoPng": "ru-alfa.png",
      "logoSvg": "ru-alfa.svg"
    },
    "ru-atb": {
      "name": "Азиатско-Тихоокеанский Банк",
      "nameEn": "Азиатско-Тихоокеанский Банк",
      "url": "https://www.atb.su/",
      "backgroundColor": "#eeeeee",
      "backgroundColors": [
        "#eeeeee",
        "#dea184"
      ],
      "backgroundLightness": "light",
      "logoStyle": "colored",
      "text": "#373a36",
      "alias": "ru-atb",
      "country": "ru",
      "logoPng": "ru-atb.png",
      "logoSvg": "ru-atb.svg"
    },
    "ru-avangard": {
      "name": "Авангард",
      "nameEn": "Avangard",
      "url": "https://www.avangard.ru/",
      "backgroundColor": "#095b34",
      "backgroundColors": [
        "#0f8e52",
        "#095b34"
      ],
      "backgroundLightness": "dark",
      "logoStyle": "white",
      "text": "#fff",
      "alias": "ru-avangard",
      "country": "ru",
      "logoPng": "ru-avangard.png"
    },
    "ru-binbank": {
      "name": "Бинбанк",
      "nameEn": "B&N Bank Public",
      "url": "https://www.binbank.ru/",
      "backgroundColor": "#cdeafd",
      "backgroundColors": [
        "#cdeafd",
        "#9cc0d9"
      ],
      "backgroundLightness": "light",
      "logoStyle": "colored",
      "text": "#004c81",
      "alias": "ru-binbank",
      "country": "ru",
      "logoPng": "ru-binbank.png",
      "logoSvg": "ru-binbank.svg"
    },
    "ru-ceb": {
      "name": "Кредит Европа Банк",
      "nameEn": "Credit Europe Bank",
      "url": "https://www.crediteurope.ru/",
      "backgroundColor": "#e0eaf7",
      "backgroundColors": [
        "#e0eaf7",
        "#f7dfdf"
      ],
      "backgroundLightness": "light",
      "logoStyle": "colored",
      "text": "#1c297b",
      "alias": "ru-ceb",
      "country": "ru",
      "logoPng": "ru-ceb.png",
      "logoSvg": "ru-ceb.svg"
    },
    "ru-cetelem": {
      "name": "Сетелем Банк",
      "nameEn": "Cetelem Bank",
      "url": "https://www.cetelem.ru/",
      "backgroundColor": "#ceecb7",
      "backgroundColors": [
        "#ceecb7",
        "#8bbb75"
      ],
      "backgroundLightness": "light",
      "logoStyle": "colored",
      "text": "#167158",
      "alias": "ru-cetelem",
      "country": "ru",
      "logoPng": "ru-cetelem.png",
      "logoSvg": "ru-cetelem.svg"
    },
    "ru-citi": {
      "name": "Ситибанк",
      "nameEn": "Citibank",
      "url": "https://www.citibank.ru/",
      "backgroundColor": "#008bd0",
      "backgroundColors": [
        "#00bcf2",
        "#004e90"
      ],
      "backgroundLightness": "dark",
      "logoStyle": "white",
      "text": "#fff",
      "alias": "ru-citi",
      "country": "ru",
      "logoPng": "ru-citi.png",
      "logoSvg": "ru-citi.svg"
    },
    "ru-globex": {
      "name": "Глобэкс",
      "nameEn": "Globexbank",
      "url": "http://www.globexbank.ru/",
      "backgroundColor": "#9bdaff",
      "backgroundColors": [
        "#9bdaff",
        "#ffd2a2"
      ],
      "backgroundLightness": "light",
      "logoStyle": "colored",
      "text": "#072761",
      "alias": "ru-globex",
      "country": "ru",
      "logoPng": "ru-globex.png"
    },
    "ru-gpb": {
      "name": "Газпромбанк",
      "nameEn": "Gazprombank",
      "url": "http://www.gazprombank.ru/",
      "backgroundColor": "#02356c",
      "backgroundColors": [
        "#044b98",
        "#02356c"
      ],
      "backgroundLightness": "dark",
      "logoStyle": "white",
      "text": "#fff",
      "alias": "ru-gpb",
      "country": "ru",
      "logoPng": "ru-gpb.png",
      "logoSvg": "ru-gpb.svg"
    },
    "ru-hcf": {
      "name": "Хоум Кредит Банк",
      "nameEn": "HCF Bank",
      "url": "http://homecredit.ru/",
      "backgroundColor": "#e41701",
      "backgroundColors": [
        "#e41701",
        "#bd1908"
      ],
      "backgroundLightness": "dark",
      "logoStyle": "white",
      "text": "#fff",
      "alias": "ru-hcf",
      "country": "ru",
      "logoPng": "ru-hcf.png",
      "logoSvg": "ru-hcf.svg"
    },
    "ru-jugra": {
      "name": "Югра",
      "nameEn": "Jugra",
      "url": "http://www.jugra.ru/",
      "backgroundColor": "#d6ffe6",
      "backgroundColors": [
        "#d6ffe6",
        "#fff1e4"
      ],
      "backgroundLightness": "light",
      "logoStyle": "colored",
      "text": "#088237",
      "alias": "ru-jugra",
      "country": "ru",
      "logoPng": "ru-jugra.png"
    },
    "ru-mib": {
      "name": "Московский Индустриальный Банк",
      "nameEn": "Mosсow Industrial Bank",
      "url": "http://www.minbank.ru/",
      "backgroundColor": "#8f0e0f",
      "backgroundColors": [
        "#ce4647",
        "#8f0e0f"
      ],
      "backgroundLightness": "dark",
      "logoStyle": "white",
      "text": "#fff",
      "alias": "ru-mib",
      "country": "ru",
      "logoPng": "ru-mib.png"
    },
    "ru-mkb": {
      "name": "Московский Кредитный Банк",
      "nameEn": "Credit Bank of Moscow",
      "url": "https://mkb.ru/",
      "backgroundColor": "#eeeeee",
      "backgroundColors": [
        "#eeeeee",
        "#f9dee8"
      ],
      "backgroundLightness": "light",
      "logoStyle": "colored",
      "text": "#ae0039",
      "alias": "ru-mkb",
      "country": "ru",
      "logoPng": "ru-mkb.png"
    },
    "ru-mob": {
      "name": "Московский Областной Банк",
      "nameEn": "Mosoblbank",
      "url": "http://www.mosoblbank.ru/",
      "backgroundColor": "#dd3c3d",
      "backgroundColors": [
        "#e14041",
        "#8e2222"
      ],
      "backgroundLightness": "dark",
      "logoStyle": "white",
      "text": "#fff",
      "alias": "ru-mob",
      "country": "ru",
      "logoPng": "ru-mob.png"
    },
    "ru-mts": {
      "name": "МТС Банк",
      "nameEn": "MTS Bank",
      "url": "http://www.mtsbank.ru/",
      "backgroundColor": "#de1612",
      "backgroundColors": [
        "#ff0000",
        "#ba0e0a"
      ],
      "backgroundLightness": "dark",
      "logoStyle": "white",
      "text": "#fff",
      "alias": "ru-mts",
      "country": "ru",
      "logoPng": "ru-mts.png",
      "logoSvg": "ru-mts.svg"
    },
    "ru-novikom": {
      "name": "Новикомбанк",
      "nameEn": "Novikombank",
      "url": "http://www.novikom.ru/",
      "backgroundColor": "#00529b",
      "backgroundColors": [
        "#00529b",
        "#0a4477"
      ],
      "backgroundLightness": "dark",
      "logoStyle": "white",
      "text": "#fff",
      "alias": "ru-novikom",
      "country": "ru",
      "logoPng": "ru-novikom.png",
      "logoSvg": "ru-novikom.svg"
    },
    "ru-open": {
      "name": "ФК Открытие",
      "nameEn": "Otkritie FC",
      "url": "https://www.open.ru/",
      "backgroundColor": "#00b3e1",
      "backgroundColors": [
        "#29c9f3",
        "#00b3e1"
      ],
      "backgroundLightness": "dark",
      "logoStyle": "white",
      "text": "#fff",
      "alias": "ru-open",
      "country": "ru",
      "logoPng": "ru-open.png",
      "logoSvg": "ru-open.svg"
    },
    "ru-otp": {
      "name": "ОТП Банк",
      "nameEn": "OTP Bank",
      "url": "https://www.otpbank.ru/",
      "backgroundColor": "#acff90",
      "backgroundColors": [
        "#acff90",
        "#9edabf"
      ],
      "backgroundLightness": "light",
      "logoStyle": "colored",
      "text": "#006437",
      "alias": "ru-otp",
      "country": "ru",
      "logoPng": "ru-otp.png",
      "logoSvg": "ru-otp.svg"
    },
    "ru-pochta": {
      "name": "Почта Банк",
      "nameEn": "Pochtabank",
      "url": "https://www.pochtabank.ru/",
      "backgroundColor": "#efefef",
      "backgroundColors": [
        "#efefef",
        "#dbe1ff"
      ],
      "backgroundLightness": "light",
      "logoStyle": "colored",
      "text": "#001689",
      "alias": "ru-pochta",
      "country": "ru",
      "logoPng": "ru-pochta.png",
      "logoSvg": "ru-pochta.svg"
    },
    "ru-psb": {
      "name": "Промсвязьбанк",
      "nameEn": "Promsvyazbank",
      "url": "http://www.psbank.ru/",
      "backgroundColor": "#c5cfef",
      "backgroundColors": [
        "#f7d1b5",
        "#c5cfef"
      ],
      "backgroundLightness": "light",
      "logoStyle": "colored",
      "text": "#274193",
      "alias": "ru-psb",
      "country": "ru",
      "logoPng": "ru-psb.png",
      "logoSvg": "ru-psb.svg"
    },
    "ru-raiffeisen": {
      "name": "Райффайзенбанк",
      "nameEn": "Raiffeisenbank bank",
      "url": "https://www.raiffeisen.ru/",
      "backgroundColor": "#efe6a2",
      "backgroundColors": [
        "#eeeeee",
        "#efe6a2"
      ],
      "backgroundLightness": "light",
      "logoStyle": "black",
      "text": "#000",
      "alias": "ru-raiffeisen",
      "country": "ru",
      "logoPng": "ru-raiffeisen.png",
      "logoSvg": "ru-raiffeisen.svg"
    },
    "ru-reb": {
      "name": "РосЕвроБанк",
      "nameEn": "Rosevrobank",
      "url": "http://www.rosevrobank.ru/",
      "backgroundColor": "#4b1650",
      "backgroundColors": [
        "#8b2d8e",
        "#4b1650"
      ],
      "backgroundLightness": "dark",
      "logoStyle": "white",
      "text": "#fff",
      "alias": "ru-reb",
      "country": "ru",
      "logoPng": "ru-reb.png"
    },
    "ru-ren": {
      "name": "Ренессанс Кредит",
      "nameEn": "Renaissance Capital",
      "url": "https://rencredit.ru/",
      "backgroundColor": "#ffe6f1",
      "backgroundColors": [
        "#ffe6f1",
        "#f9fff1"
      ],
      "backgroundLightness": "light",
      "logoStyle": "colored",
      "text": "#439539",
      "alias": "ru-ren",
      "country": "ru",
      "logoPng": "ru-ren.png"
    },
    "ru-rgs": {
      "name": "Росгосстрах Банк",
      "nameEn": "Rosgosstrakh Bank",
      "url": "https://www.rgsbank.ru/",
      "backgroundColor": "#b31b2c",
      "backgroundColors": [
        "#b31b2c",
        "#6f030f"
      ],
      "backgroundLightness": "dark",
      "logoStyle": "colored",
      "text": "#ffe2b8",
      "alias": "ru-rgs",
      "country": "ru",
      "logoPng": "ru-rgs.png",
      "logoSvg": "ru-rgs.svg"
    },
    "ru-rosbank": {
      "name": "Росбанк",
      "nameEn": "Rosbank bank",
      "url": "http://www.rosbank.ru/",
      "backgroundColor": "#d3b9ba",
      "backgroundColors": [
        "#d3b9ba",
        "#b1898b"
      ],
      "backgroundLightness": "light",
      "logoStyle": "black",
      "text": "#000",
      "alias": "ru-rosbank",
      "country": "ru",
      "logoPng": "ru-rosbank.png",
      "logoSvg": "ru-rosbank.svg"
    },
    "ru-roscap": {
      "name": "Российский Капитал",
      "nameEn": "Rossiysky Capital",
      "url": "http://www.roscap.ru/",
      "backgroundColor": "#ffdcc1",
      "backgroundColors": [
        "#ffdcc1",
        "#ffced0"
      ],
      "backgroundLightness": "light",
      "logoStyle": "colored",
      "text": "#000",
      "alias": "ru-roscap",
      "country": "ru",
      "logoPng": "ru-roscap.png"
    },
    "ru-rossiya": {
      "name": "Россия",
      "nameEn": "Rossiya",
      "url": "http://www.abr.ru/",
      "backgroundColor": "#eeeeee",
      "backgroundColors": [
        "#eeeeee",
        "#98c2dd"
      ],
      "backgroundLightness": "light",
      "logoStyle": "colored",
      "text": "#07476e",
      "alias": "ru-rossiya",
      "country": "ru",
      "logoPng": "ru-rossiya.png"
    },
    "ru-rsb": {
      "name": "Русский Стандарт",
      "nameEn": "Russian Standard Bank",
      "url": "https://www.rsb.ru/",
      "backgroundColor": "#414042",
      "backgroundColors": [
        "#6a656f",
        "#414042"
      ],
      "backgroundLightness": "dark",
      "logoStyle": "white",
      "text": "#fff",
      "alias": "ru-rsb",
      "country": "ru",
      "logoPng": "ru-rsb.png",
      "logoSvg": "ru-rsb.svg"
    },
    "ru-rshb": {
      "name": "Россельхозбанк",
      "nameEn": "Rosselkhozbank",
      "url": "http://www.rshb.ru/",
      "backgroundColor": "#007f2b",
      "backgroundColors": [
        "#007f2b",
        "#005026"
      ],
      "backgroundLightness": "dark",
      "logoStyle": "white",
      "text": "#ffcd00",
      "alias": "ru-rshb",
      "country": "ru",
      "logoPng": "ru-rshb.png",
      "logoSvg": "ru-rshb.svg"
    },
    "ru-sberbank": {
      "name": "Сбербанк России",
      "nameEn": "Sberbank",
      "url": "https://www.sberbank.ru/",
      "backgroundColor": "#1a9f29",
      "backgroundColors": [
        "#1a9f29",
        "#0d7518"
      ],
      "backgroundLightness": "dark",
      "logoStyle": "white",
      "text": "#fff",
      "alias": "ru-sberbank",
      "country": "ru",
      "logoPng": "ru-sberbank.png",
      "logoSvg": "ru-sberbank.svg"
    },
    "ru-skb": {
      "name": "СКБ-Банк",
      "nameEn": "SKB-Bank",
      "url": "http://www.skbbank.ru/",
      "backgroundColor": "#006b5a",
      "backgroundColors": [
        "#31a899",
        "#006b5a"
      ],
      "backgroundLightness": "dark",
      "logoStyle": "white",
      "text": "#fff",
      "alias": "ru-skb",
      "country": "ru",
      "logoPng": "ru-skb.png"
    },
    "ru-smp": {
      "name": "СМП Банк",
      "nameEn": "SMP Bank",
      "url": "http://smpbank.ru/",
      "backgroundColor": "#9fe5ff",
      "backgroundColors": [
        "#9fe5ff",
        "#5ea6d6"
      ],
      "backgroundLightness": "light",
      "logoStyle": "colored",
      "text": "#005288",
      "alias": "ru-smp",
      "country": "ru",
      "logoPng": "ru-smp.png",
      "logoSvg": "ru-smp.svg"
    },
    "ru-sovkom": {
      "name": "Совкомбанк",
      "nameEn": "Sovcombank bank",
      "url": "https://sovcombank.ru/",
      "backgroundColor": "#c9e4f6",
      "backgroundColors": [
        "#c9e4f6",
        "#f5fafd"
      ],
      "backgroundLightness": "light",
      "logoStyle": "colored",
      "text": "#004281",
      "alias": "ru-sovkom",
      "country": "ru",
      "logoPng": "ru-sovkom.png"
    },
    "ru-spb": {
      "name": "Банк «Санкт-Петербург»",
      "nameEn": "Bank Saint Petersburg",
      "url": "https://www.bspb.ru/",
      "backgroundColor": "#ffcfcf",
      "backgroundColors": [
        "#ffcfcf",
        "#d2553f"
      ],
      "backgroundLightness": "light",
      "logoStyle": "colored",
      "text": "#000",
      "alias": "ru-spb",
      "country": "ru",
      "logoPng": "ru-spb.png"
    },
    "ru-sviaz": {
      "name": "Связь-Банк",
      "nameEn": "Sviaz-Bank",
      "url": "https://www.sviaz-bank.ru/",
      "backgroundColor": "#d2e0ec",
      "backgroundColors": [
        "#d2e0ec",
        "#caecd8"
      ],
      "backgroundLightness": "light",
      "logoStyle": "colored",
      "text": "#165a9a",
      "alias": "ru-sviaz",
      "country": "ru",
      "logoPng": "ru-sviaz.png"
    },
    "ru-tcb": {
      "name": "Транскапиталбанк",
      "nameEn": "Transcapitalbank",
      "url": "https://www.tkbbank.ru/",
      "backgroundColor": "#8cf5f4",
      "backgroundColors": [
        "#8cf5f4",
        "#ffe6bf"
      ],
      "backgroundLightness": "light",
      "logoStyle": "colored",
      "text": "#005599",
      "alias": "ru-tcb",
      "country": "ru",
      "logoPng": "ru-tcb.png"
    },
    "ru-tinkoff": {
      "name": "Тинькофф Банк",
      "nameEn": "Tinkoff Bank",
      "url": "https://www.tinkoff.ru/",
      "backgroundColor": "#333",
      "backgroundColors": [
        "#444",
        "#222"
      ],
      "backgroundLightness": "dark",
      "logoStyle": "white",
      "text": "#fff",
      "alias": "ru-tinkoff",
      "country": "ru",
      "logoPng": "ru-tinkoff.png",
      "logoSvg": "ru-tinkoff.svg"
    },
    "ru-trust": {
      "name": "Траст",
      "nameEn": "Trust",
      "url": "http://www.trust.ru/",
      "backgroundColor": "#231f20",
      "backgroundColors": [
        "#403739",
        "#231f20"
      ],
      "backgroundLightness": "dark",
      "logoStyle": "white",
      "text": "#fff",
      "alias": "ru-trust",
      "country": "ru",
      "logoPng": "ru-trust.png"
    },
    "ru-ubrd": {
      "name": "Уральский Банк Реконструкции и Развития",
      "nameEn": "UBRD",
      "url": "http://www.ubrr.ru/",
      "backgroundColor": "#ffd9e4",
      "backgroundColors": [
        "#ffd9e4",
        "#b6d1e3"
      ],
      "backgroundLightness": "light",
      "logoStyle": "black",
      "text": "#000",
      "alias": "ru-ubrd",
      "country": "ru",
      "logoPng": "ru-ubrd.png"
    },
    "ru-ucb": {
      "name": "ЮниКредит Банк",
      "nameEn": "UniCredit Bank",
      "url": "https://www.unicreditbank.ru/",
      "backgroundColor": "#250c0c",
      "backgroundColors": [
        "#402727",
        "#250c0c"
      ],
      "backgroundLightness": "dark",
      "logoStyle": "white",
      "text": "#fff",
      "alias": "ru-ucb",
      "country": "ru",
      "logoPng": "ru-ucb.png",
      "logoSvg": "ru-ucb.svg"
    },
    "ru-uralsib": {
      "name": "Банк Уралсиб",
      "nameEn": "Uralsib",
      "url": "https://www.uralsib.ru/",
      "backgroundColor": "#2c4257",
      "backgroundColors": [
        "#6289aa",
        "#2c4257"
      ],
      "backgroundLightness": "dark",
      "logoStyle": "white",
      "text": "#fff",
      "alias": "ru-uralsib",
      "country": "ru",
      "logoPng": "ru-uralsib.png",
      "logoSvg": "ru-uralsib.svg"
    },
    "ru-vbrr": {
      "name": "Всероссийский Банк Развития Регионов",
      "nameEn": "Russian Regional Development Bank",
      "url": "https://www.vbrr.ru/",
      "backgroundColor": "#173e6d",
      "backgroundColors": [
        "#4a5e75",
        "#173e6d"
      ],
      "backgroundLightness": "dark",
      "logoStyle": "white",
      "text": "#fff",
      "alias": "ru-vbrr",
      "country": "ru",
      "logoPng": "ru-vbrr.png",
      "logoSvg": "ru-vbrr.svg"
    },
    "ru-veb": {
      "name": "Восточный Экспресс Банк",
      "nameEn": "Eastern Express Bank",
      "url": "https://www.vostbank.ru/",
      "backgroundColor": "#004e96",
      "backgroundColors": [
        "#004e96",
        "#ee3224"
      ],
      "backgroundLightness": "dark",
      "logoStyle": "white",
      "text": "#fff",
      "alias": "ru-veb",
      "country": "ru",
      "logoPng": "ru-veb.png",
      "logoSvg": "ru-veb.svg"
    },
    "ru-vozrozhdenie": {
      "name": "Возрождение",
      "nameEn": "Bank Vozrozhdenie",
      "url": "http://www.vbank.ru/",
      "backgroundColor": "#cedae6",
      "backgroundColors": [
        "#cedae6",
        "#a4abb3"
      ],
      "backgroundLightness": "light",
      "logoStyle": "colored",
      "text": "#13427b",
      "alias": "ru-vozrozhdenie",
      "country": "ru",
      "logoPng": "ru-vozrozhdenie.png",
      "logoSvg": "ru-vozrozhdenie.svg"
    },
    "ru-vtb": {
      "name": "ВТБ Банк Москвы",
      "nameEn": "VTB Bank",
      "url": "http://www.vtb.ru/",
      "backgroundColor": "#1d2d70",
      "backgroundColors": [
        "#264489",
        "#1d2d70"
      ],
      "backgroundLightness": "dark",
      "logoStyle": "white",
      "text": "#fff",
      "alias": "ru-vtb",
      "country": "ru",
      "logoPng": "ru-vtb.png",
      "logoSvg": "ru-vtb.svg"
    },
    "ru-vtb24": {
      "name": "ВТБ 24",
      "nameEn": "VTB 24",
      "url": "https://www.vtb24.ru/",
      "backgroundColor": "#c4cde4",
      "backgroundColors": [
        "#c4cde4",
        "#9fabcc",
        "#dca9ad"
      ],
      "backgroundLightness": "light",
      "logoStyle": "colored",
      "text": "#0a2972",
      "alias": "ru-vtb24",
      "country": "ru",
      "logoPng": "ru-vtb24.png"
    },
    "ru-zenit": {
      "name": "Зенит",
      "nameEn": "Zenit",
      "url": "https://www.zenit.ru/",
      "backgroundColor": "#008c99",
      "backgroundColors": [
        "#3fc2ce",
        "#008c99"
      ],
      "backgroundLightness": "dark",
      "logoStyle": "white",
      "text": "#fff",
      "alias": "ru-zenit",
      "country": "ru",
      "logoPng": "ru-zenit.png",
      "logoSvg": "ru-zenit.svg"
    }
  };
  var prefixes = {
    "220001": "ru-gpb",
    "220003": "ru-psb",
    "220006": "ru-sviaz",
    "220008": "ru-rossiya",
    "220020": "ru-mib",
    "220022": "ru-binbank",
    "220023": "ru-avangard",
    "220030": "ru-raiffeisen",
    "220488": "ru-smp",
    "360769": "ru-rsb",
    "375117": "ru-rsb",
    "400079": "ru-akbars",
    "400171": "ru-reb",
    "400244": "ru-uralsib",
    "400812": "ru-rosbank",
    "400814": "ru-rosbank",
    "400866": "ru-rosbank",
    "401173": "ru-open",
    "402107": "ru-vtb",
    "402177": "ru-raiffeisen",
    "402178": "ru-raiffeisen",
    "402179": "ru-raiffeisen",
    "402311": "ru-otp",
    "402312": "ru-otp",
    "402313": "ru-otp",
    "402326": "ru-mib",
    "402327": "ru-mib",
    "402328": "ru-mib",
    "402333": "ru-sberbank",
    "402429": "ru-globex",
    "402457": "ru-novikom",
    "402507": "ru-psb",
    "402532": "ru-sovkom",
    "402533": "ru-sovkom",
    "402534": "ru-sovkom",
    "402549": "ru-mib",
    "402877": "ru-tcb",
    "402909": "ru-novikom",
    "402910": "ru-novikom",
    "402911": "ru-novikom",
    "402948": "ru-binbank",
    "402949": "ru-binbank",
    "403184": "ru-vozrozhdenie",
    "403218": "ru-roscap",
    "403324": "ru-globex",
    "403780": "ru-mkb",
    "403894": "ru-binbank",
    "403896": "ru-avangard",
    "403897": "ru-avangard",
    "403898": "ru-avangard",
    "404111": "ru-uralsib",
    "404114": "ru-avangard",
    "404136": "ru-gpb",
    "404204": "ru-mts",
    "404224": "ru-mts",
    "404266": "ru-mts",
    "404267": "ru-mts",
    "404268": "ru-mts",
    "404269": "ru-mts",
    "404270": "ru-gpb",
    "404586": "ru-open",
    "404807": "ru-raiffeisen",
    "404862": "ru-rosbank",
    "404863": "ru-rosbank",
    "404885": "ru-raiffeisen",
    "404890": "ru-rosbank",
    "404892": "ru-rosbank",
    "404906": "ru-psb",
    "405225": "ru-binbank",
    "405226": "ru-binbank",
    "405436": "ru-rosbank",
    "405658": "ru-open",
    "405665": "ru-roscap",
    "405666": "ru-roscap",
    "405667": "ru-roscap",
    "405669": "ru-roscap",
    "405870": "ru-open",
    "405990": "ru-pochta",
    "405991": "ru-pochta",
    "405992": "ru-pochta",
    "405993": "ru-pochta",
    "406140": "ru-vbrr",
    "406141": "ru-vbrr",
    "406356": "ru-mts",
    "406364": "ru-hcf",
    "406372": "ru-absolut",
    "406744": "ru-vtb24",
    "406767": "ru-rosbank",
    "406777": "ru-jugra",
    "406778": "ru-jugra",
    "406779": "ru-jugra",
    "406780": "ru-jugra",
    "406781": "ru-jugra",
    "406977": "ru-vtb24",
    "407178": "ru-open",
    "407564": "ru-rosbank",
    "408373": "ru-ceb",
    "408396": "ru-alfa",
    "408397": "ru-alfa",
    "409356": "ru-open",
    "409357": "ru-open",
    "409358": "ru-open",
    "409398": "ru-vtb24",
    "409681": "ru-otp",
    "409682": "ru-uralsib",
    "409794": "ru-binbank",
    "410085": "ru-binbank",
    "410086": "ru-binbank",
    "410213": "ru-uralsib",
    "410323": "ru-trust",
    "410584": "ru-alfa",
    "410695": "ru-skb",
    "410696": "ru-skb",
    "410730": "ru-vozrozhdenie",
    "410731": "ru-vozrozhdenie",
    "411641": "ru-binbank",
    "411647": "ru-ceb",
    "411648": "ru-ceb",
    "411649": "ru-ceb",
    "411669": "ru-mob",
    "411670": "ru-mob",
    "411671": "ru-mob",
    "411676": "ru-spb",
    "411790": "ru-rsb",
    "411791": "ru-psb",
    "411900": "ru-trust",
    "411945": "ru-roscap",
    "412434": "ru-zenit",
    "412519": "ru-rosbank",
    "412746": "ru-binbank",
    "412776": "ru-citi",
    "413047": "ru-ucb",
    "413052": "ru-vozrozhdenie",
    "413203": "ru-vbrr",
    "413204": "ru-vbrr",
    "413205": "ru-vbrr",
    "413877": "ru-skb",
    "413878": "ru-skb",
    "413879": "ru-skb",
    "414035": "ru-vozrozhdenie",
    "414076": "ru-open",
    "414379": "ru-rosbank",
    "414563": "ru-roscap",
    "414656": "ru-zenit",
    "414657": "ru-zenit",
    "414658": "ru-zenit",
    "414659": "ru-zenit",
    "415025": "ru-ubrd",
    "415400": "ru-alfa",
    "415428": "ru-alfa",
    "415429": "ru-alfa",
    "415430": "ru-raiffeisen",
    "415481": "ru-alfa",
    "415482": "ru-alfa",
    "415822": "ru-reb",
    "416132": "ru-absolut",
    "416700": "ru-binbank",
    "416701": "ru-binbank",
    "416702": "ru-binbank",
    "416703": "ru-binbank",
    "416790": "ru-binbank",
    "416791": "ru-binbank",
    "416792": "ru-binbank",
    "416920": "ru-ceb",
    "416927": "ru-vtb",
    "416928": "ru-vtb",
    "416982": "ru-rgs",
    "416983": "ru-rgs",
    "416984": "ru-rgs",
    "417250": "ru-rsb",
    "417251": "ru-rsb",
    "417252": "ru-rsb",
    "417253": "ru-rsb",
    "417254": "ru-rsb",
    "417291": "ru-rsb",
    "417398": "ru-sberbank",
    "417689": "ru-binbank",
    "418260": "ru-vtb",
    "418261": "ru-vtb",
    "418262": "ru-vtb",
    "418362": "ru-sovkom",
    "418363": "ru-sovkom",
    "418364": "ru-sovkom",
    "418384": "ru-rshb",
    "418385": "ru-rshb",
    "418386": "ru-rshb",
    "418387": "ru-rshb",
    "418388": "ru-rshb",
    "418831": "ru-vtb24",
    "418906": "ru-reb",
    "418907": "ru-reb",
    "418908": "ru-reb",
    "418909": "ru-reb",
    "419149": "ru-atb",
    "419150": "ru-atb",
    "419151": "ru-atb",
    "419152": "ru-atb",
    "419153": "ru-atb",
    "419163": "ru-avangard",
    "419164": "ru-avangard",
    "419292": "ru-mkb",
    "419293": "ru-citi",
    "419349": "ru-citi",
    "419370": "ru-uralsib",
    "419519": "ru-binbank",
    "419539": "ru-alfa",
    "419540": "ru-alfa",
    "419636": "ru-otp",
    "419718": "ru-rsb",
    "419804": "ru-uralsib",
    "419805": "ru-uralsib",
    "419810": "ru-uralsib",
    "419905": "ru-rossiya",
    "420336": "ru-absolut",
    "420337": "ru-absolut",
    "420705": "ru-raiffeisen",
    "421179": "ru-citi",
    "421394": "ru-rosbank",
    "421398": "ru-gpb",
    "421637": "ru-sovkom",
    "421647": "ru-sovkom",
    "421648": "ru-rosbank",
    "421651": "ru-binbank",
    "421919": "ru-absolut",
    "422096": "ru-sovkom",
    "422097": "ru-sovkom",
    "422098": "ru-binbank",
    "422104": "ru-binbank",
    "422105": "ru-binbank",
    "422287": "ru-raiffeisen",
    "422372": "ru-uralsib",
    "422608": "ru-rshb",
    "422838": "ru-vozrozhdenie",
    "422839": "ru-vozrozhdenie",
    "423078": "ru-sberbank",
    "423169": "ru-rosbank",
    "423197": "ru-spb",
    "423218": "ru-vozrozhdenie",
    "423569": "ru-absolut",
    "424204": "ru-uralsib",
    "424205": "ru-uralsib",
    "424206": "ru-uralsib",
    "424207": "ru-uralsib",
    "424290": "ru-uralsib",
    "424291": "ru-uralsib",
    "424436": "ru-akbars",
    "424437": "ru-akbars",
    "424438": "ru-akbars",
    "424439": "ru-akbars",
    "424440": "ru-akbars",
    "424473": "ru-uralsib",
    "424474": "ru-uralsib",
    "424475": "ru-uralsib",
    "424476": "ru-uralsib",
    "424553": "ru-trust",
    "424554": "ru-trust",
    "424555": "ru-trust",
    "424561": "ru-psb",
    "424562": "ru-psb",
    "424563": "ru-psb",
    "424901": "ru-sovkom",
    "424917": "ru-gpb",
    "424944": "ru-sovkom",
    "424974": "ru-gpb",
    "424975": "ru-gpb",
    "424976": "ru-gpb",
    "425153": "ru-rosbank",
    "425534": "ru-veb",
    "425535": "ru-veb",
    "425553": "ru-veb",
    "425620": "ru-raiffeisen",
    "425693": "ru-smp",
    "425694": "ru-smp",
    "425695": "ru-smp",
    "425696": "ru-smp",
    "425874": "ru-binbank",
    "425884": "ru-raiffeisen",
    "425885": "ru-raiffeisen",
    "426101": "ru-alfa",
    "426102": "ru-alfa",
    "426113": "ru-alfa",
    "426114": "ru-alfa",
    "426201": "ru-trust",
    "426334": "ru-trust",
    "426335": "ru-trust",
    "426390": "ru-uralsib",
    "426396": "ru-uralsib",
    "426803": "ru-psb",
    "426804": "ru-psb",
    "426809": "ru-rossiya",
    "426810": "ru-rossiya",
    "426811": "ru-rossiya",
    "426812": "ru-rossiya",
    "426813": "ru-rossiya",
    "426814": "ru-rossiya",
    "426815": "ru-rossiya",
    "426890": "ru-gpb",
    "427229": "ru-vtb24",
    "427230": "ru-vtb24",
    "427326": "ru-gpb",
    "427400": "ru-sberbank",
    "427401": "ru-sberbank",
    "427402": "ru-sberbank",
    "427403": "ru-sberbank",
    "427404": "ru-sberbank",
    "427405": "ru-sberbank",
    "427406": "ru-sberbank",
    "427407": "ru-sberbank",
    "427408": "ru-sberbank",
    "427409": "ru-sberbank",
    "427410": "ru-sberbank",
    "427411": "ru-sberbank",
    "427412": "ru-sberbank",
    "427413": "ru-sberbank",
    "427414": "ru-sberbank",
    "427415": "ru-sberbank",
    "427416": "ru-sberbank",
    "427417": "ru-sberbank",
    "427418": "ru-sberbank",
    "427419": "ru-sberbank",
    "427420": "ru-sberbank",
    "427421": "ru-sberbank",
    "427422": "ru-sberbank",
    "427423": "ru-sberbank",
    "427424": "ru-sberbank",
    "427425": "ru-sberbank",
    "427426": "ru-sberbank",
    "427427": "ru-sberbank",
    "427428": "ru-sberbank",
    "427429": "ru-sberbank",
    "427430": "ru-sberbank",
    "427431": "ru-sberbank",
    "427432": "ru-sberbank",
    "427433": "ru-sberbank",
    "427434": "ru-sberbank",
    "427435": "ru-sberbank",
    "427436": "ru-sberbank",
    "427437": "ru-sberbank",
    "427438": "ru-sberbank",
    "427439": "ru-sberbank",
    "427440": "ru-sberbank",
    "427441": "ru-sberbank",
    "427442": "ru-sberbank",
    "427443": "ru-sberbank",
    "427444": "ru-sberbank",
    "427445": "ru-sberbank",
    "427446": "ru-sberbank",
    "427447": "ru-sberbank",
    "427448": "ru-sberbank",
    "427449": "ru-sberbank",
    "427450": "ru-sberbank",
    "427451": "ru-sberbank",
    "427452": "ru-sberbank",
    "427453": "ru-sberbank",
    "427454": "ru-sberbank",
    "427455": "ru-sberbank",
    "427456": "ru-sberbank",
    "427457": "ru-sberbank",
    "427458": "ru-sberbank",
    "427459": "ru-sberbank",
    "427460": "ru-sberbank",
    "427461": "ru-sberbank",
    "427462": "ru-sberbank",
    "427463": "ru-sberbank",
    "427464": "ru-sberbank",
    "427465": "ru-sberbank",
    "427466": "ru-sberbank",
    "427467": "ru-sberbank",
    "427468": "ru-sberbank",
    "427469": "ru-sberbank",
    "427470": "ru-sberbank",
    "427471": "ru-sberbank",
    "427472": "ru-sberbank",
    "427473": "ru-sberbank",
    "427474": "ru-sberbank",
    "427475": "ru-sberbank",
    "427476": "ru-sberbank",
    "427477": "ru-sberbank",
    "427491": "ru-sberbank",
    "427499": "ru-sberbank",
    "427600": "ru-sberbank",
    "427601": "ru-sberbank",
    "427602": "ru-sberbank",
    "427603": "ru-sberbank",
    "427604": "ru-sberbank",
    "427605": "ru-sberbank",
    "427606": "ru-sberbank",
    "427607": "ru-sberbank",
    "427608": "ru-sberbank",
    "427609": "ru-sberbank",
    "427610": "ru-sberbank",
    "427611": "ru-sberbank",
    "427612": "ru-sberbank",
    "427613": "ru-sberbank",
    "427614": "ru-sberbank",
    "427615": "ru-sberbank",
    "427616": "ru-sberbank",
    "427617": "ru-sberbank",
    "427618": "ru-sberbank",
    "427619": "ru-sberbank",
    "427620": "ru-sberbank",
    "427621": "ru-sberbank",
    "427622": "ru-sberbank",
    "427623": "ru-sberbank",
    "427624": "ru-sberbank",
    "427625": "ru-sberbank",
    "427626": "ru-sberbank",
    "427627": "ru-sberbank",
    "427628": "ru-sberbank",
    "427629": "ru-sberbank",
    "427630": "ru-sberbank",
    "427631": "ru-sberbank",
    "427632": "ru-sberbank",
    "427633": "ru-sberbank",
    "427634": "ru-sberbank",
    "427635": "ru-sberbank",
    "427636": "ru-sberbank",
    "427637": "ru-sberbank",
    "427638": "ru-sberbank",
    "427639": "ru-sberbank",
    "427640": "ru-sberbank",
    "427641": "ru-sberbank",
    "427642": "ru-sberbank",
    "427643": "ru-sberbank",
    "427644": "ru-sberbank",
    "427645": "ru-sberbank",
    "427646": "ru-sberbank",
    "427647": "ru-sberbank",
    "427648": "ru-sberbank",
    "427649": "ru-sberbank",
    "427650": "ru-sberbank",
    "427651": "ru-sberbank",
    "427652": "ru-sberbank",
    "427653": "ru-sberbank",
    "427654": "ru-sberbank",
    "427655": "ru-sberbank",
    "427656": "ru-sberbank",
    "427657": "ru-sberbank",
    "427658": "ru-sberbank",
    "427659": "ru-sberbank",
    "427660": "ru-sberbank",
    "427661": "ru-sberbank",
    "427662": "ru-sberbank",
    "427663": "ru-sberbank",
    "427664": "ru-sberbank",
    "427665": "ru-sberbank",
    "427666": "ru-sberbank",
    "427667": "ru-sberbank",
    "427668": "ru-sberbank",
    "427669": "ru-sberbank",
    "427670": "ru-sberbank",
    "427671": "ru-sberbank",
    "427672": "ru-sberbank",
    "427673": "ru-sberbank",
    "427674": "ru-sberbank",
    "427675": "ru-sberbank",
    "427676": "ru-sberbank",
    "427677": "ru-sberbank",
    "427678": "ru-sberbank",
    "427679": "ru-sberbank",
    "427680": "ru-sberbank",
    "427681": "ru-sberbank",
    "427682": "ru-sberbank",
    "427683": "ru-sberbank",
    "427684": "ru-sberbank",
    "427685": "ru-sberbank",
    "427686": "ru-sberbank",
    "427687": "ru-sberbank",
    "427688": "ru-sberbank",
    "427689": "ru-sberbank",
    "427690": "ru-sberbank",
    "427692": "ru-sberbank",
    "427693": "ru-sberbank",
    "427694": "ru-sberbank",
    "427695": "ru-sberbank",
    "427696": "ru-sberbank",
    "427697": "ru-sberbank",
    "427699": "ru-sberbank",
    "427714": "ru-alfa",
    "427715": "ru-rosbank",
    "427725": "ru-binbank",
    "427760": "ru-citi",
    "427761": "ru-citi",
    "427806": "ru-roscap",
    "427807": "ru-roscap",
    "427808": "ru-roscap",
    "427827": "ru-uralsib",
    "427828": "ru-uralsib",
    "427853": "ru-sovkom",
    "427900": "ru-sberbank",
    "427901": "ru-sberbank",
    "427902": "ru-sberbank",
    "427903": "ru-sberbank",
    "427904": "ru-sberbank",
    "427905": "ru-sberbank",
    "427906": "ru-sberbank",
    "427907": "ru-sberbank",
    "427908": "ru-sberbank",
    "427909": "ru-sberbank",
    "427910": "ru-sberbank",
    "427911": "ru-sberbank",
    "427912": "ru-sberbank",
    "427913": "ru-sberbank",
    "427914": "ru-sberbank",
    "427915": "ru-sberbank",
    "427916": "ru-sberbank",
    "427917": "ru-sberbank",
    "427918": "ru-sberbank",
    "427919": "ru-sberbank",
    "427920": "ru-sberbank",
    "427921": "ru-sberbank",
    "427922": "ru-sberbank",
    "427923": "ru-sberbank",
    "427924": "ru-sberbank",
    "427925": "ru-sberbank",
    "427926": "ru-sberbank",
    "427927": "ru-sberbank",
    "427928": "ru-sberbank",
    "427929": "ru-sberbank",
    "427930": "ru-sberbank",
    "427931": "ru-sberbank",
    "427932": "ru-sberbank",
    "427933": "ru-sberbank",
    "427934": "ru-sberbank",
    "427935": "ru-sberbank",
    "427936": "ru-sberbank",
    "427937": "ru-sberbank",
    "427938": "ru-sberbank",
    "427939": "ru-sberbank",
    "427940": "ru-sberbank",
    "427941": "ru-sberbank",
    "427942": "ru-sberbank",
    "427943": "ru-sberbank",
    "427944": "ru-sberbank",
    "427945": "ru-sberbank",
    "427946": "ru-sberbank",
    "427947": "ru-sberbank",
    "427948": "ru-sberbank",
    "427949": "ru-sberbank",
    "427950": "ru-sberbank",
    "427951": "ru-sberbank",
    "427952": "ru-sberbank",
    "427953": "ru-sberbank",
    "427954": "ru-sberbank",
    "427955": "ru-sberbank",
    "427956": "ru-sberbank",
    "427957": "ru-sberbank",
    "427958": "ru-sberbank",
    "427959": "ru-sberbank",
    "427960": "ru-sberbank",
    "427961": "ru-sberbank",
    "427962": "ru-sberbank",
    "427963": "ru-sberbank",
    "427964": "ru-sberbank",
    "427965": "ru-sberbank",
    "427966": "ru-sberbank",
    "427967": "ru-sberbank",
    "427968": "ru-sberbank",
    "427969": "ru-sberbank",
    "427970": "ru-sberbank",
    "427971": "ru-sberbank",
    "427972": "ru-sberbank",
    "427973": "ru-sberbank",
    "427974": "ru-sberbank",
    "427975": "ru-sberbank",
    "427976": "ru-sberbank",
    "427977": "ru-sberbank",
    "427978": "ru-sberbank",
    "427979": "ru-sberbank",
    "427980": "ru-sberbank",
    "427981": "ru-sberbank",
    "427982": "ru-sberbank",
    "427983": "ru-sberbank",
    "427984": "ru-sberbank",
    "427985": "ru-sberbank",
    "427986": "ru-sberbank",
    "427987": "ru-sberbank",
    "427988": "ru-sberbank",
    "427989": "ru-sberbank",
    "427990": "ru-sberbank",
    "427991": "ru-sberbank",
    "427992": "ru-sberbank",
    "427993": "ru-sberbank",
    "427994": "ru-sberbank",
    "427995": "ru-sberbank",
    "427996": "ru-sberbank",
    "427997": "ru-sberbank",
    "427998": "ru-sberbank",
    "427999": "ru-sberbank",
    "428252": "ru-absolut",
    "428253": "ru-absolut",
    "428254": "ru-absolut",
    "428266": "ru-zenit",
    "428666": "ru-atb",
    "428804": "ru-alfa",
    "428905": "ru-alfa",
    "428906": "ru-alfa",
    "428925": "ru-spb",
    "429015": "ru-veb",
    "429016": "ru-veb",
    "429037": "ru-open",
    "429038": "ru-open",
    "429039": "ru-open",
    "429040": "ru-open",
    "429096": "ru-open",
    "429196": "ru-uralsib",
    "429197": "ru-uralsib",
    "429565": "ru-vtb24",
    "429749": "ru-vtb24",
    "429796": "ru-zenit",
    "429797": "ru-zenit",
    "429798": "ru-zenit",
    "429811": "ru-uralsib",
    "430081": "ru-rosbank",
    "430088": "ru-rosbank",
    "430180": "ru-ubrd",
    "430181": "ru-ubrd",
    "430289": "ru-sviaz",
    "430299": "ru-gpb",
    "430323": "ru-ucb",
    "430439": "ru-ubrd",
    "430708": "ru-rossiya",
    "430709": "ru-rossiya",
    "431112": "ru-uralsib",
    "431113": "ru-uralsib",
    "431114": "ru-uralsib",
    "431165": "ru-open",
    "431166": "ru-open",
    "431359": "ru-rgs",
    "431416": "ru-alfa",
    "431417": "ru-alfa",
    "431727": "ru-alfa",
    "431854": "ru-ren",
    "431855": "ru-ren",
    "431856": "ru-ren",
    "431857": "ru-ren",
    "431890": "ru-ren",
    "432050": "ru-globex",
    "432058": "ru-skb",
    "432158": "ru-ceb",
    "432169": "ru-uralsib",
    "432259": "ru-uralsib",
    "432260": "ru-uralsib",
    "432417": "ru-open",
    "432498": "ru-raiffeisen",
    "432560": "ru-ucb",
    "432638": "ru-rosbank",
    "432947": "ru-otp",
    "432948": "ru-otp",
    "432949": "ru-otp",
    "433011": "ru-uralsib",
    "433102": "ru-vozrozhdenie",
    "433300": "ru-ucb",
    "433316": "ru-gpb",
    "433336": "ru-ucb",
    "434135": "ru-alfa",
    "434146": "ru-open",
    "434147": "ru-open",
    "434148": "ru-open",
    "434149": "ru-uralsib",
    "435139": "ru-ubrd",
    "435986": "ru-rshb",
    "436100": "ru-rshb",
    "436104": "ru-rshb",
    "436398": "ru-novikom",
    "436865": "ru-otp",
    "437348": "ru-rsb",
    "437349": "ru-spb",
    "437524": "ru-skb",
    "437540": "ru-trust",
    "437541": "ru-trust",
    "437772": "ru-tinkoff",
    "437773": "ru-tinkoff",
    "437784": "ru-tinkoff",
    "438046": "ru-citi",
    "438143": "ru-alfa",
    "438254": "ru-vozrozhdenie",
    "438933": "ru-rosbank",
    "438970": "ru-rosbank",
    "438971": "ru-rosbank",
    "439000": "ru-alfa",
    "439054": "ru-sviaz",
    "439055": "ru-sviaz",
    "439056": "ru-sviaz",
    "439057": "ru-sviaz",
    "439077": "ru-alfa",
    "439243": "ru-globex",
    "439244": "ru-globex",
    "439245": "ru-globex",
    "439246": "ru-globex",
    "439250": "ru-globex",
    "439251": "ru-globex",
    "440237": "ru-alfa",
    "440399": "ru-vozrozhdenie",
    "440503": "ru-rosbank",
    "440504": "ru-rosbank",
    "440505": "ru-rosbank",
    "440540": "ru-rosbank",
    "440541": "ru-rosbank",
    "440610": "ru-uralsib",
    "440664": "ru-uralsib",
    "440665": "ru-uralsib",
    "440666": "ru-uralsib",
    "440668": "ru-uralsib",
    "440680": "ru-uralsib",
    "440682": "ru-uralsib",
    "440683": "ru-uralsib",
    "440689": "ru-uralsib",
    "440690": "ru-uralsib",
    "440849": "ru-rosbank",
    "440850": "ru-rosbank",
    "441108": "ru-globex",
    "441273": "ru-vbrr",
    "441318": "ru-sviaz",
    "442466": "ru-uralsib",
    "443222": "ru-mkb",
    "443223": "ru-mkb",
    "443271": "ru-mkb",
    "443272": "ru-mkb",
    "443273": "ru-mkb",
    "443274": "ru-mkb",
    "443275": "ru-roscap",
    "443306": "ru-absolut",
    "443307": "ru-absolut",
    "443308": "ru-absolut",
    "443309": "ru-absolut",
    "443884": "ru-veb",
    "443885": "ru-veb",
    "443886": "ru-veb",
    "443887": "ru-veb",
    "443888": "ru-veb",
    "444002": "ru-binbank",
    "444023": "ru-binbank",
    "444024": "ru-binbank",
    "444025": "ru-binbank",
    "444094": "ru-veb",
    "444238": "ru-smp",
    "444239": "ru-smp",
    "444240": "ru-smp",
    "444241": "ru-smp",
    "444429": "ru-rsb",
    "445433": "ru-hcf",
    "445434": "ru-hcf",
    "445435": "ru-hcf",
    "445436": "ru-hcf",
    "445977": "ru-raiffeisen",
    "446050": "ru-psb",
    "446065": "ru-open",
    "446098": "ru-hcf",
    "446320": "ru-veb",
    "446674": "ru-vtb",
    "446915": "ru-hcf",
    "446916": "ru-raiffeisen",
    "446917": "ru-raiffeisen",
    "446950": "ru-tcb",
    "447362": "ru-binbank",
    "447363": "ru-binbank",
    "447516": "ru-trust",
    "447603": "ru-raiffeisen",
    "447624": "ru-raiffeisen",
    "447817": "ru-psb",
    "447818": "ru-psb",
    "447824": "ru-psb",
    "448331": "ru-vtb24",
    "448343": "ru-vtb24",
    "448344": "ru-vtb24",
    "448346": "ru-vtb24",
    "448369": "ru-vtb24",
    "449572": "ru-hcf",
    "450251": "ru-rosbank",
    "451382": "ru-psb",
    "452235": "ru-rossiya",
    "452236": "ru-rossiya",
    "453558": "ru-uralsib",
    "453559": "ru-uralsib",
    "453560": "ru-uralsib",
    "453561": "ru-uralsib",
    "456515": "ru-trust",
    "456516": "ru-trust",
    "456587": "ru-ceb",
    "456588": "ru-ceb",
    "457647": "ru-rsb",
    "457802": "ru-mts",
    "457816": "ru-open",
    "457817": "ru-open",
    "457818": "ru-open",
    "457819": "ru-open",
    "458218": "ru-binbank",
    "458279": "ru-alfa",
    "458280": "ru-alfa",
    "458281": "ru-alfa",
    "458410": "ru-alfa",
    "458411": "ru-alfa",
    "458443": "ru-alfa",
    "458450": "ru-alfa",
    "458473": "ru-atb",
    "458488": "ru-atb",
    "458489": "ru-atb",
    "458490": "ru-atb",
    "458493": "ru-open",
    "458559": "ru-novikom",
    "458722": "ru-rossiya",
    "458723": "ru-rossiya",
    "458731": "ru-absolut",
    "459226": "ru-skb",
    "459230": "ru-otp",
    "459290": "ru-uralsib",
    "459328": "ru-roscap",
    "459937": "ru-rosbank",
    "460493": "ru-rosbank",
    "462013": "ru-mts",
    "462235": "ru-vtb24",
    "462729": "ru-raiffeisen",
    "462730": "ru-raiffeisen",
    "462758": "ru-raiffeisen",
    "462776": "ru-ucb",
    "462779": "ru-raiffeisen",
    "464405": "ru-vozrozhdenie",
    "464485": "ru-trust",
    "464636": "ru-akbars",
    "464787": "ru-vtb24",
    "464827": "ru-absolut",
    "464828": "ru-absolut",
    "464842": "ru-vtb24",
    "465203": "ru-binbank",
    "465204": "ru-binbank",
    "465205": "ru-binbank",
    "465227": "ru-alfa",
    "465578": "ru-raiffeisen",
    "465882": "ru-gpb",
    "466047": "ru-uralsib",
    "466048": "ru-uralsib",
    "466049": "ru-uralsib",
    "466050": "ru-uralsib",
    "466163": "ru-ren",
    "466164": "ru-ren",
    "466174": "ru-ren",
    "466500": "ru-roscap",
    "466505": "ru-roscap",
    "466511": "ru-roscap",
    "466512": "ru-roscap",
    "466513": "ru-roscap",
    "466514": "ru-roscap",
    "467033": "ru-trust",
    "467058": "ru-vtb24",
    "467485": "ru-open",
    "467486": "ru-open",
    "467487": "ru-open",
    "467564": "ru-sviaz",
    "467810": "ru-uralsib",
    "467811": "ru-uralsib",
    "467812": "ru-uralsib",
    "467933": "ru-roscap",
    "468596": "ru-smp",
    "469339": "ru-binbank",
    "469360": "ru-citi",
    "469362": "ru-ucb",
    "469376": "ru-globex",
    "469670": "ru-smp",
    "470127": "ru-tinkoff",
    "470342": "ru-uralsib",
    "470434": "ru-zenit",
    "470673": "ru-avangard",
    "470674": "ru-avangard",
    "470675": "ru-avangard",
    "471225": "ru-rgs",
    "471226": "ru-ubrd",
    "471358": "ru-mkb",
    "471436": "ru-novikom",
    "471439": "ru-uralsib",
    "471440": "ru-uralsib",
    "471441": "ru-uralsib",
    "471487": "ru-vtb24",
    "471499": "ru-uralsib",
    "472235": "ru-zenit",
    "472252": "ru-reb",
    "472313": "ru-vtb",
    "472345": "ru-psb",
    "472346": "ru-psb",
    "472347": "ru-psb",
    "472348": "ru-psb",
    "472445": "ru-hcf",
    "472446": "ru-ucb",
    "472480": "ru-mib",
    "472489": "ru-rgs",
    "472879": "ru-skb",
    "472933": "ru-veb",
    "472934": "ru-veb",
    "473841": "ru-rgs",
    "473849": "ru-citi",
    "473850": "ru-citi",
    "473853": "ru-rosbank",
    "473854": "ru-rosbank",
    "473855": "ru-rosbank",
    "473869": "ru-tcb",
    "474218": "ru-rosbank",
    "475098": "ru-sviaz",
    "475791": "ru-alfa",
    "476036": "ru-raiffeisen",
    "476206": "ru-psb",
    "476207": "ru-psb",
    "476208": "ru-psb",
    "476280": "ru-rossiya",
    "476804": "ru-veb",
    "476827": "ru-rosbank",
    "476946": "ru-rossiya",
    "477714": "ru-alfa",
    "477908": "ru-rosbank",
    "477932": "ru-alfa",
    "477960": "ru-alfa",
    "477964": "ru-alfa",
    "477986": "ru-rosbank",
    "478264": "ru-rosbank",
    "478265": "ru-rosbank",
    "478266": "ru-rosbank",
    "478273": "ru-avangard",
    "478387": "ru-atb",
    "478474": "ru-tcb",
    "478475": "ru-tcb",
    "478476": "ru-tcb",
    "478741": "ru-raiffeisen",
    "478752": "ru-alfa",
    "479004": "ru-alfa",
    "479087": "ru-alfa",
    "479713": "ru-spb",
    "479768": "ru-spb",
    "479769": "ru-spb",
    "479770": "ru-spb",
    "479771": "ru-spb",
    "479772": "ru-spb",
    "479773": "ru-spb",
    "479788": "ru-spb",
    "480232": "ru-zenit",
    "480623": "ru-alfa",
    "480938": "ru-mib",
    "481776": "ru-sberbank",
    "481779": "ru-sberbank",
    "481781": "ru-sberbank",
    "482413": "ru-psb",
    "483175": "ru-rsb",
    "483176": "ru-rsb",
    "483177": "ru-rsb",
    "483973": "ru-uralsib",
    "483974": "ru-uralsib",
    "483975": "ru-uralsib",
    "483976": "ru-uralsib",
    "483977": "ru-uralsib",
    "483979": "ru-uralsib",
    "483980": "ru-uralsib",
    "484800": "ru-open",
    "485071": "ru-rossiya",
    "485463": "ru-sberbank",
    "485467": "ru-citi",
    "485608": "ru-ucb",
    "485649": "ru-open",
    "486031": "ru-trust",
    "486065": "ru-rsb",
    "486322": "ru-mob",
    "486666": "ru-citi",
    "487415": "ru-gpb",
    "487416": "ru-gpb",
    "487417": "ru-gpb",
    "488951": "ru-skb",
    "489042": "ru-ucb",
    "489099": "ru-ucb",
    "489169": "ru-uralsib",
    "489186": "ru-reb",
    "489195": "ru-vtb",
    "489196": "ru-vtb",
    "489327": "ru-vtb24",
    "489347": "ru-vtb24",
    "489348": "ru-vtb24",
    "489349": "ru-vtb24",
    "489350": "ru-vtb24",
    "489354": "ru-gpb",
    "490736": "ru-vozrozhdenie",
    "490815": "ru-uralsib",
    "490816": "ru-raiffeisen",
    "490818": "ru-ucb",
    "490855": "ru-ucb",
    "490986": "ru-trust",
    "493475": "ru-trust",
    "494343": "ru-trust",
    "498629": "ru-vtb24",
    "498868": "ru-vozrozhdenie",
    "499932": "ru-rosbank",
    "499966": "ru-rosbank",
    "508406": "ru-raiffeisen",
    "510047": "ru-rsb",
    "510060": "ru-vtb",
    "510069": "ru-raiffeisen",
    "510070": "ru-raiffeisen",
    "510074": "ru-ucb",
    "510082": "ru-roscap",
    "510092": "ru-rsb",
    "510098": "ru-rosbank",
    "510125": "ru-roscap",
    "510126": "ru-alfa",
    "510144": "ru-vtb24",
    "510154": "ru-mib",
    "510162": "ru-roscap",
    "510166": "ru-roscap",
    "510172": "ru-uralsib",
    "510173": "ru-roscap",
    "510411": "ru-uralsib",
    "510412": "ru-uralsib",
    "510424": "ru-uralsib",
    "510429": "ru-uralsib",
    "510436": "ru-uralsib",
    "510444": "ru-uralsib",
    "510453": "ru-rosbank",
    "510464": "ru-zenit",
    "510469": "ru-zenit",
    "510483": "ru-uralsib",
    "510494": "ru-uralsib",
    "510495": "ru-vtb",
    "510499": "ru-uralsib",
    "510508": "ru-uralsib",
    "510511": "ru-mib",
    "511741": "ru-uralsib",
    "512003": "ru-rosbank",
    "512051": "ru-roscap",
    "512082": "ru-roscap",
    "512273": "ru-ceb",
    "512298": "ru-uralsib",
    "512347": "ru-roscap",
    "512378": "ru-vtb",
    "512394": "ru-uralsib",
    "512419": "ru-uralsib",
    "512424": "ru-uralsib",
    "512442": "ru-roscap",
    "512444": "ru-ren",
    "512449": "ru-zenit",
    "512450": "ru-vtb",
    "512478": "ru-rgs",
    "512510": "ru-uralsib",
    "512594": "ru-roscap",
    "512626": "ru-roscap",
    "512636": "ru-uralsib",
    "512641": "ru-roscap",
    "512643": "ru-roscap",
    "512741": "ru-uralsib",
    "512756": "ru-rosbank",
    "512762": "ru-citi",
    "512771": "ru-rosbank",
    "512777": "ru-uralsib",
    "512788": "ru-uralsib",
    "512808": "ru-rosbank",
    "512821": "ru-roscap",
    "513022": "ru-rosbank",
    "513222": "ru-uralsib",
    "513459": "ru-roscap",
    "513691": "ru-rsb",
    "513768": "ru-roscap",
    "513769": "ru-roscap",
    "514014": "ru-roscap",
    "514017": "ru-open",
    "514082": "ru-gpb",
    "514515": "ru-uralsib",
    "514529": "ru-rosbank",
    "514930": "ru-rosbank",
    "515243": "ru-open",
    "515548": "ru-sberbank",
    "515587": "ru-mib",
    "515605": "ru-rosbank",
    "515681": "ru-jugra",
    "515739": "ru-mib",
    "515760": "ru-zenit",
    "515764": "ru-smp",
    "515770": "ru-mkb",
    "515774": "ru-otp",
    "515777": "ru-uralsib",
    "515785": "ru-binbank",
    "515792": "ru-uralsib",
    "515840": "ru-uralsib",
    "515842": "ru-sberbank",
    "515844": "ru-uralsib",
    "515848": "ru-psb",
    "515854": "ru-citi",
    "515861": "ru-uralsib",
    "515862": "ru-roscap",
    "515876": "ru-raiffeisen",
    "515887": "ru-uralsib",
    "515899": "ru-open",
    "515900": "ru-uralsib",
    "516009": "ru-otp",
    "516025": "ru-uralsib",
    "516116": "ru-ren",
    "516150": "ru-ren",
    "516161": "ru-uralsib",
    "516206": "ru-uralsib",
    "516333": "ru-zenit",
    "516354": "ru-open",
    "516356": "ru-mib",
    "516358": "ru-zenit",
    "516372": "ru-zenit",
    "516387": "ru-open",
    "516444": "ru-hcf",
    "516445": "ru-uralsib",
    "516448": "ru-uralsib",
    "516454": "ru-gpb",
    "516456": "ru-zenit",
    "516473": "ru-psb",
    "516570": "ru-vtb",
    "516587": "ru-vtb",
    "516906": "ru-trust",
    "517202": "ru-otp",
    "517375": "ru-gpb",
    "517508": "ru-open",
    "517538": "ru-rosbank",
    "517583": "ru-rosbank",
    "517593": "ru-gpb",
    "517667": "ru-zenit",
    "517803": "ru-roscap",
    "517807": "ru-roscap",
    "517822": "ru-rosbank",
    "517955": "ru-mts",
    "518025": "ru-uralsib",
    "518038": "ru-rosbank",
    "518048": "ru-uralsib",
    "518079": "ru-rosbank",
    "518095": "ru-uralsib",
    "518223": "ru-uralsib",
    "518228": "ru-gpb",
    "518275": "ru-uralsib",
    "518316": "ru-uralsib",
    "518318": "ru-uralsib",
    "518331": "ru-roscap",
    "518365": "ru-roscap",
    "518372": "ru-uralsib",
    "518373": "ru-gpb",
    "518392": "ru-uralsib",
    "518406": "ru-rosbank",
    "518449": "ru-uralsib",
    "518499": "ru-uralsib",
    "518505": "ru-vtb",
    "518522": "ru-uralsib",
    "518533": "ru-uralsib",
    "518580": "ru-rosbank",
    "518586": "ru-binbank",
    "518591": "ru-vtb24",
    "518598": "ru-roscap",
    "518607": "ru-uralsib",
    "518621": "ru-uralsib",
    "518640": "ru-vtb24",
    "518642": "ru-rosbank",
    "518647": "ru-zenit",
    "518681": "ru-avangard",
    "518683": "ru-uralsib",
    "518704": "ru-gpb",
    "518714": "ru-rosbank",
    "518727": "ru-uralsib",
    "518753": "ru-trust",
    "518774": "ru-reb",
    "518781": "ru-reb",
    "518788": "ru-binbank",
    "518795": "ru-roscap",
    "518805": "ru-uralsib",
    "518816": "ru-gpb",
    "518820": "ru-smp",
    "518827": "ru-sviaz",
    "518864": "ru-rosbank",
    "518874": "ru-uralsib",
    "518876": "ru-binbank",
    "518882": "ru-rosbank",
    "518884": "ru-smp",
    "518885": "ru-trust",
    "518889": "ru-rosbank",
    "518901": "ru-tinkoff",
    "518902": "ru-gpb",
    "518909": "ru-uralsib",
    "518911": "ru-uralsib",
    "518916": "ru-roscap",
    "518946": "ru-psb",
    "518970": "ru-psb",
    "518971": "ru-sviaz",
    "518977": "ru-psb",
    "518981": "ru-psb",
    "518996": "ru-ucb",
    "518997": "ru-ucb",
    "519304": "ru-vtb24",
    "519327": "ru-roscap",
    "519333": "ru-vozrozhdenie",
    "519346": "ru-uralsib",
    "519350": "ru-roscap",
    "519747": "ru-alfa",
    "519778": "ru-alfa",
    "519998": "ru-vtb24",
    "520006": "ru-uralsib",
    "520035": "ru-uralsib",
    "520036": "ru-rosbank",
    "520047": "ru-rosbank",
    "520085": "ru-psb",
    "520088": "ru-psb",
    "520093": "ru-roscap",
    "520113": "ru-mib",
    "520305": "ru-citi",
    "520306": "ru-citi",
    "520328": "ru-binbank",
    "520348": "ru-roscap",
    "520350": "ru-zenit",
    "520373": "ru-citi",
    "520377": "ru-citi",
    "520633": "ru-sberbank",
    "520666": "ru-roscap",
    "520685": "ru-roscap",
    "520902": "ru-rosbank",
    "520905": "ru-ren",
    "520920": "ru-smp",
    "520935": "ru-akbars",
    "520957": "ru-citi",
    "520985": "ru-akbars",
    "520993": "ru-citi",
    "520996": "ru-uralsib",
    "521124": "ru-psb",
    "521144": "ru-ceb",
    "521155": "ru-gpb",
    "521159": "ru-mts",
    "521172": "ru-rgs",
    "521178": "ru-alfa",
    "521194": "ru-zenit",
    "521310": "ru-rgs",
    "521324": "ru-tinkoff",
    "521326": "ru-smp",
    "521330": "ru-otp",
    "521374": "ru-rosbank",
    "521379": "ru-uralsib",
    "521381": "ru-uralsib",
    "521508": "ru-rosbank",
    "521528": "ru-mob",
    "521589": "ru-zenit",
    "521658": "ru-uralsib",
    "521779": "ru-uralsib",
    "521801": "ru-mkb",
    "521820": "ru-uralsib",
    "521830": "ru-ceb",
    "521847": "ru-uralsib",
    "521879": "ru-uralsib",
    "522016": "ru-binbank",
    "522022": "ru-uralsib",
    "522042": "ru-roscap",
    "522083": "ru-uralsib",
    "522117": "ru-open",
    "522193": "ru-gpb",
    "522199": "ru-hcf",
    "522212": "ru-uralsib",
    "522223": "ru-avangard",
    "522224": "ru-avangard",
    "522230": "ru-uralsib",
    "522455": "ru-rsb",
    "522456": "ru-zenit",
    "522458": "ru-ucb",
    "522470": "ru-otp",
    "522477": "ru-gpb",
    "522511": "ru-rosbank",
    "522513": "ru-rosbank",
    "522588": "ru-rsb",
    "522592": "ru-cetelem",
    "522598": "ru-vtb24",
    "522705": "ru-rosbank",
    "522711": "ru-rosbank",
    "522826": "ru-gpb",
    "522828": "ru-alfa",
    "522833": "ru-roscap",
    "522851": "ru-zenit",
    "522858": "ru-spb",
    "522860": "ru-sberbank",
    "522862": "ru-roscap",
    "522881": "ru-sovkom",
    "522965": "ru-uralsib",
    "522970": "ru-uralsib",
    "522988": "ru-gpb",
    "522989": "ru-gpb",
    "523281": "ru-uralsib",
    "523436": "ru-roscap",
    "523546": "ru-roscap",
    "523558": "ru-roscap",
    "523559": "ru-roscap",
    "523688": "ru-psb",
    "523701": "ru-alfa",
    "523755": "ru-zenit",
    "523787": "ru-rosbank",
    "524001": "ru-rosbank",
    "524004": "ru-uralsib",
    "524381": "ru-rsb",
    "524390": "ru-uralsib",
    "524448": "ru-rshb",
    "524468": "ru-tinkoff",
    "524477": "ru-vtb",
    "524602": "ru-mts",
    "524614": "ru-rosbank",
    "524620": "ru-citi",
    "524655": "ru-mkb",
    "524665": "ru-ceb",
    "524776": "ru-uralsib",
    "524818": "ru-uralsib",
    "524829": "ru-sberbank",
    "524835": "ru-hcf",
    "524838": "ru-open",
    "524853": "ru-mib",
    "524856": "ru-roscap",
    "524861": "ru-rosbank",
    "524862": "ru-binbank",
    "524943": "ru-mob",
    "525236": "ru-uralsib",
    "525245": "ru-rosbank",
    "525247": "ru-rosbank",
    "525248": "ru-uralsib",
    "525443": "ru-uralsib",
    "525446": "ru-rshb",
    "525494": "ru-psb",
    "525689": "ru-citi",
    "525696": "ru-uralsib",
    "525714": "ru-uralsib",
    "525719": "ru-open",
    "525735": "ru-roscap",
    "525740": "ru-gpb",
    "525741": "ru-rosbank",
    "525744": "ru-binbank",
    "525751": "ru-uralsib",
    "525758": "ru-roscap",
    "525767": "ru-roscap",
    "525768": "ru-roscap",
    "525776": "ru-roscap",
    "525778": "ru-rosbank",
    "525781": "ru-roscap",
    "525784": "ru-gpb",
    "525794": "ru-rosbank",
    "525833": "ru-gpb",
    "525932": "ru-trust",
    "525933": "ru-hcf",
    "526090": "ru-roscap",
    "526280": "ru-psb",
    "526393": "ru-roscap",
    "526462": "ru-rosbank",
    "526469": "ru-vozrozhdenie",
    "526483": "ru-gpb",
    "526532": "ru-vtb",
    "526589": "ru-vtb24",
    "526818": "ru-rgs",
    "526839": "ru-otp",
    "526857": "ru-uralsib",
    "526891": "ru-zenit",
    "526940": "ru-roscap",
    "526981": "ru-rosbank",
    "526984": "ru-rosbank",
    "526992": "ru-uralsib",
    "527001": "ru-uralsib",
    "527023": "ru-mob",
    "527196": "ru-uralsib",
    "527348": "ru-sviaz",
    "527393": "ru-rosbank",
    "527415": "ru-roscap",
    "527444": "ru-gpb",
    "527450": "ru-binbank",
    "527574": "ru-uralsib",
    "527576": "ru-sberbank",
    "527594": "ru-citi",
    "527622": "ru-roscap",
    "527640": "ru-rosbank",
    "527643": "ru-rosbank",
    "527658": "ru-uralsib",
    "527663": "ru-rosbank",
    "527785": "ru-vtb",
    "527792": "ru-mib",
    "527798": "ru-vtb",
    "527883": "ru-vtb24",
    "528014": "ru-uralsib",
    "528015": "ru-rosbank",
    "528016": "ru-roscap",
    "528053": "ru-raiffeisen",
    "528068": "ru-uralsib",
    "528090": "ru-rosbank",
    "528154": "ru-vtb24",
    "528249": "ru-vbrr",
    "528270": "ru-rosbank",
    "528588": "ru-akbars",
    "528593": "ru-roscap",
    "528701": "ru-psb",
    "528704": "ru-uralsib",
    "528808": "ru-raiffeisen",
    "528809": "ru-raiffeisen",
    "528819": "ru-rosbank",
    "528933": "ru-rosbank",
    "529025": "ru-vtb24",
    "529071": "ru-roscap",
    "529100": "ru-rosbank",
    "529101": "ru-rosbank",
    "529160": "ru-psb",
    "529170": "ru-sovkom",
    "529208": "ru-zenit",
    "529247": "ru-rosbank",
    "529260": "ru-open",
    "529273": "ru-uralsib",
    "529278": "ru-gpb",
    "529293": "ru-uralsib",
    "529295": "ru-smp",
    "529426": "ru-roscap",
    "529436": "ru-uralsib",
    "529437": "ru-rosbank",
    "529446": "ru-roscap",
    "529448": "ru-roscap",
    "529450": "ru-uralsib",
    "529461": "ru-uralsib",
    "529488": "ru-gpb",
    "529497": "ru-roscap",
    "529813": "ru-rosbank",
    "529860": "ru-uralsib",
    "529862": "ru-rosbank",
    "529889": "ru-sviaz",
    "529938": "ru-vtb24",
    "529968": "ru-otp",
    "530035": "ru-uralsib",
    "530036": "ru-smp",
    "530078": "ru-roscap",
    "530114": "ru-gpb",
    "530142": "ru-uralsib",
    "530143": "ru-uralsib",
    "530145": "ru-uralsib",
    "530171": "ru-sviaz",
    "530172": "ru-ucb",
    "530183": "ru-open",
    "530184": "ru-vtb24",
    "530215": "ru-rosbank",
    "530229": "ru-vtb",
    "530266": "ru-citi",
    "530279": "ru-uralsib",
    "530403": "ru-open",
    "530412": "ru-rosbank",
    "530413": "ru-atb",
    "530416": "ru-rosbank",
    "530441": "ru-psb",
    "530445": "ru-sovkom",
    "530526": "ru-uralsib",
    "530527": "ru-absolut",
    "530595": "ru-roscap",
    "530758": "ru-uralsib",
    "530800": "ru-rosbank",
    "530827": "ru-alfa",
    "530867": "ru-raiffeisen",
    "530900": "ru-spb",
    "530979": "ru-uralsib",
    "530993": "ru-gpb",
    "531034": "ru-ceb",
    "531038": "ru-uralsib",
    "531073": "ru-uralsib",
    "531207": "ru-uralsib",
    "531222": "ru-rosbank",
    "531233": "ru-vtb24",
    "531236": "ru-ucb",
    "531237": "ru-alfa",
    "531305": "ru-gpb",
    "531310": "ru-sberbank",
    "531315": "ru-ren",
    "531316": "ru-avangard",
    "531318": "ru-trust",
    "531327": "ru-hcf",
    "531332": "ru-sviaz",
    "531344": "ru-ucb",
    "531351": "ru-binbank",
    "531425": "ru-binbank",
    "531428": "ru-otp",
    "531452": "ru-vtb",
    "531534": "ru-psb",
    "531562": "ru-roscap",
    "531652": "ru-roscap",
    "531657": "ru-uralsib",
    "531674": "ru-open",
    "531809": "ru-citi",
    "531853": "ru-binbank",
    "531858": "ru-uralsib",
    "531943": "ru-psb",
    "532058": "ru-rosbank",
    "532130": "ru-open",
    "532184": "ru-mkb",
    "532186": "ru-spb",
    "532301": "ru-open",
    "532310": "ru-roscap",
    "532315": "ru-ceb",
    "532320": "ru-uralsib",
    "532326": "ru-cetelem",
    "532328": "ru-uralsib",
    "532334": "ru-roscap",
    "532336": "ru-rosbank",
    "532356": "ru-vbrr",
    "532436": "ru-roscap",
    "532441": "ru-roscap",
    "532461": "ru-zenit",
    "532463": "ru-zenit",
    "532472": "ru-uralsib",
    "532475": "ru-uralsib",
    "532583": "ru-uralsib",
    "532684": "ru-gpb",
    "532809": "ru-rosbank",
    "532835": "ru-binbank",
    "532917": "ru-roscap",
    "532921": "ru-roscap",
    "532947": "ru-atb",
    "532974": "ru-citi",
    "533151": "ru-binbank",
    "533166": "ru-uralsib",
    "533201": "ru-citi",
    "533205": "ru-sberbank",
    "533206": "ru-avangard",
    "533213": "ru-mts",
    "533214": "ru-zenit",
    "533327": "ru-gpb",
    "533469": "ru-rsb",
    "533594": "ru-raiffeisen",
    "533595": "ru-sovkom",
    "533611": "ru-uralsib",
    "533614": "ru-binbank",
    "533616": "ru-raiffeisen",
    "533668": "ru-roscap",
    "533669": "ru-sberbank",
    "533681": "ru-citi",
    "533684": "ru-rosbank",
    "533685": "ru-otp",
    "533689": "ru-rsb",
    "533725": "ru-roscap",
    "533736": "ru-mts",
    "533794": "ru-roscap",
    "533795": "ru-rosbank",
    "533925": "ru-rosbank",
    "533954": "ru-zenit",
    "534128": "ru-uralsib",
    "534130": "ru-gpb",
    "534132": "ru-uralsib",
    "534134": "ru-roscap",
    "534136": "ru-uralsib",
    "534148": "ru-uralsib",
    "534156": "ru-uralsib",
    "534162": "ru-rshb",
    "534171": "ru-gpb",
    "534183": "ru-roscap",
    "534194": "ru-uralsib",
    "534196": "ru-gpb",
    "534251": "ru-rosbank",
    "534254": "ru-vozrozhdenie",
    "534266": "ru-rsb",
    "534293": "ru-rosbank",
    "534296": "ru-uralsib",
    "534297": "ru-rosbank",
    "534449": "ru-rosbank",
    "534462": "ru-psb",
    "534469": "ru-open",
    "534493": "ru-vtb",
    "534495": "ru-psb",
    "534577": "ru-rosbank",
    "534601": "ru-vtb",
    "534645": "ru-rosbank",
    "534661": "ru-open",
    "534669": "ru-open",
    "534921": "ru-rosbank",
    "534927": "ru-uralsib",
    "535023": "ru-psb",
    "535027": "ru-open",
    "535058": "ru-psb",
    "535082": "ru-vtb24",
    "535108": "ru-open",
    "535946": "ru-avangard",
    "536095": "ru-open",
    "536114": "ru-trust",
    "536176": "ru-uralsib",
    "536186": "ru-uralsib",
    "536370": "ru-roscap",
    "536392": "ru-raiffeisen",
    "536400": "ru-uralsib",
    "536409": "ru-rshb",
    "536443": "ru-roscap",
    "536454": "ru-uralsib",
    "536464": "ru-roscap",
    "536466": "ru-mib",
    "536500": "ru-hcf",
    "536511": "ru-hcf",
    "536554": "ru-roscap",
    "536569": "ru-rosbank",
    "536672": "ru-mts",
    "536829": "ru-vtb24",
    "536960": "ru-uralsib",
    "536995": "ru-gpb",
    "537627": "ru-gpb",
    "537643": "ru-alfa",
    "537705": "ru-uralsib",
    "537709": "ru-uralsib",
    "537713": "ru-roscap",
    "537715": "ru-uralsib",
    "537730": "ru-uralsib",
    "537734": "ru-uralsib",
    "537737": "ru-roscap",
    "537770": "ru-jugra",
    "537965": "ru-raiffeisen",
    "538010": "ru-rshb",
    "538395": "ru-roscap",
    "538397": "ru-uralsib",
    "538800": "ru-uralsib",
    "538828": "ru-roscap",
    "538998": "ru-uralsib",
    "539036": "ru-binbank",
    "539037": "ru-uralsib",
    "539102": "ru-rosbank",
    "539114": "ru-ceb",
    "539600": "ru-binbank",
    "539607": "ru-zenit",
    "539613": "ru-zenit",
    "539617": "ru-uralsib",
    "539621": "ru-psb",
    "539673": "ru-avangard",
    "539704": "ru-psb",
    "539710": "ru-uralsib",
    "539721": "ru-binbank",
    "539726": "ru-citi",
    "539839": "ru-gpb",
    "539850": "ru-zenit",
    "539852": "ru-uralsib",
    "539861": "ru-psb",
    "539864": "ru-roscap",
    "539865": "ru-roscap",
    "539869": "ru-roscap",
    "539898": "ru-zenit",
    "540014": "ru-roscap",
    "540035": "ru-rosbank",
    "540053": "ru-rosbank",
    "540111": "ru-uralsib",
    "540149": "ru-rosbank",
    "540169": "ru-vtb24",
    "540194": "ru-binbank",
    "540229": "ru-rosbank",
    "540308": "ru-roscap",
    "540400": "ru-uralsib",
    "540455": "ru-binbank",
    "540602": "ru-roscap",
    "540616": "ru-mts",
    "540642": "ru-binbank",
    "540664": "ru-gpb",
    "540674": "ru-gpb",
    "540687": "ru-uralsib",
    "540708": "ru-uralsib",
    "540768": "ru-uralsib",
    "540788": "ru-citi",
    "540794": "ru-uralsib",
    "540834": "ru-uralsib",
    "540923": "ru-uralsib",
    "540927": "ru-roscap",
    "541031": "ru-rosbank",
    "541152": "ru-binbank",
    "541269": "ru-psb",
    "541279": "ru-uralsib",
    "541294": "ru-binbank",
    "541354": "ru-uralsib",
    "541435": "ru-mts",
    "541450": "ru-ceb",
    "541456": "ru-uralsib",
    "541503": "ru-psb",
    "541600": "ru-spb",
    "541632": "ru-uralsib",
    "541754": "ru-zenit",
    "541778": "ru-zenit",
    "541789": "ru-uralsib",
    "541895": "ru-roscap",
    "541903": "ru-rosbank",
    "541904": "ru-rosbank",
    "541920": "ru-uralsib",
    "541975": "ru-roscap",
    "541983": "ru-uralsib",
    "541997": "ru-absolut",
    "542033": "ru-mkb",
    "542048": "ru-rsb",
    "542058": "ru-rosbank",
    "542112": "ru-uralsib",
    "542246": "ru-uralsib",
    "542247": "ru-roscap",
    "542255": "ru-gpb",
    "542289": "ru-open",
    "542340": "ru-psb",
    "542475": "ru-open",
    "542501": "ru-open",
    "542504": "ru-binbank",
    "542577": "ru-sberbank",
    "542581": "ru-roscap",
    "542600": "ru-roscap",
    "542654": "ru-atb",
    "542751": "ru-vbrr",
    "542772": "ru-raiffeisen",
    "542932": "ru-roscap",
    "542963": "ru-rosbank",
    "543015": "ru-uralsib",
    "543019": "ru-open",
    "543038": "ru-binbank",
    "543101": "ru-spb",
    "543127": "ru-rosbank",
    "543211": "ru-mkb",
    "543236": "ru-zenit",
    "543354": "ru-uralsib",
    "543366": "ru-binbank",
    "543367": "ru-roscap",
    "543435": "ru-uralsib",
    "543618": "ru-roscap",
    "543664": "ru-roscap",
    "543672": "ru-gpb",
    "543724": "ru-gpb",
    "543728": "ru-roscap",
    "543749": "ru-uralsib",
    "543762": "ru-gpb",
    "543763": "ru-sberbank",
    "543807": "ru-uralsib",
    "543874": "ru-psb",
    "543942": "ru-sberbank",
    "544025": "ru-zenit",
    "544026": "ru-gpb",
    "544069": "ru-roscap",
    "544092": "ru-open",
    "544117": "ru-binbank",
    "544123": "ru-mts",
    "544175": "ru-roscap",
    "544195": "ru-uralsib",
    "544212": "ru-roscap",
    "544218": "ru-open",
    "544237": "ru-raiffeisen",
    "544263": "ru-rosbank",
    "544270": "ru-roscap",
    "544272": "ru-uralsib",
    "544326": "ru-uralsib",
    "544331": "ru-sberbank",
    "544343": "ru-open",
    "544367": "ru-uralsib",
    "544369": "ru-uralsib",
    "544417": "ru-uralsib",
    "544429": "ru-rsb",
    "544439": "ru-uralsib",
    "544462": "ru-uralsib",
    "544491": "ru-rosbank",
    "544499": "ru-open",
    "544552": "ru-uralsib",
    "544561": "ru-gpb",
    "544573": "ru-open",
    "544754": "ru-roscap",
    "544800": "ru-psb",
    "544852": "ru-zenit",
    "544885": "ru-roscap",
    "544886": "ru-atb",
    "544905": "ru-rosbank",
    "544962": "ru-open",
    "545037": "ru-sberbank",
    "545101": "ru-gpb",
    "545115": "ru-raiffeisen",
    "545117": "ru-zenit",
    "545151": "ru-rosbank",
    "545152": "ru-sberbank",
    "545160": "ru-rsb",
    "545182": "ru-citi",
    "545200": "ru-uralsib",
    "545204": "ru-rosbank",
    "545214": "ru-otp",
    "545224": "ru-vtb24",
    "545266": "ru-uralsib",
    "545272": "ru-uralsib",
    "545350": "ru-psb",
    "545362": "ru-roscap",
    "545364": "ru-rosbank",
    "545379": "ru-rosbank",
    "545472": "ru-uralsib",
    "545490": "ru-roscap",
    "545511": "ru-roscap",
    "545529": "ru-rosbank",
    "545539": "ru-uralsib",
    "545540": "ru-uralsib",
    "545547": "ru-rosbank",
    "545572": "ru-rosbank",
    "545575": "ru-rosbank",
    "545592": "ru-uralsib",
    "545638": "ru-uralsib",
    "545655": "ru-uralsib",
    "545701": "ru-uralsib",
    "545742": "ru-uralsib",
    "545744": "ru-uralsib",
    "545761": "ru-uralsib",
    "545762": "ru-hcf",
    "545778": "ru-uralsib",
    "545789": "ru-uralsib",
    "545792": "ru-uralsib",
    "545799": "ru-uralsib",
    "545807": "ru-gpb",
    "545817": "ru-uralsib",
    "545840": "ru-sberbank",
    "545868": "ru-uralsib",
    "545896": "ru-zenit",
    "545916": "ru-uralsib",
    "545929": "ru-zenit",
    "546031": "ru-sberbank",
    "546339": "ru-uralsib",
    "546340": "ru-uralsib",
    "546468": "ru-uralsib",
    "546551": "ru-uralsib",
    "546593": "ru-uralsib",
    "546662": "ru-uralsib",
    "546679": "ru-uralsib",
    "546718": "ru-uralsib",
    "546766": "ru-psb",
    "546842": "ru-uralsib",
    "546844": "ru-uralsib",
    "546850": "ru-sovkom",
    "546901": "ru-sberbank",
    "546902": "ru-sberbank",
    "546903": "ru-sberbank",
    "546904": "ru-sberbank",
    "546905": "ru-sberbank",
    "546906": "ru-sberbank",
    "546907": "ru-sberbank",
    "546908": "ru-sberbank",
    "546909": "ru-sberbank",
    "546910": "ru-sberbank",
    "546911": "ru-sberbank",
    "546912": "ru-sberbank",
    "546913": "ru-sberbank",
    "546916": "ru-sberbank",
    "546917": "ru-sberbank",
    "546918": "ru-sberbank",
    "546920": "ru-sberbank",
    "546922": "ru-sberbank",
    "546925": "ru-sberbank",
    "546926": "ru-sberbank",
    "546927": "ru-sberbank",
    "546928": "ru-sberbank",
    "546929": "ru-sberbank",
    "546930": "ru-sberbank",
    "546931": "ru-sberbank",
    "546932": "ru-sberbank",
    "546933": "ru-sberbank",
    "546935": "ru-sberbank",
    "546936": "ru-sberbank",
    "546937": "ru-sberbank",
    "546938": "ru-sberbank",
    "546939": "ru-sberbank",
    "546940": "ru-sberbank",
    "546941": "ru-sberbank",
    "546942": "ru-sberbank",
    "546943": "ru-sberbank",
    "546944": "ru-sberbank",
    "546945": "ru-sberbank",
    "546946": "ru-sberbank",
    "546947": "ru-sberbank",
    "546948": "ru-sberbank",
    "546949": "ru-sberbank",
    "546950": "ru-sberbank",
    "546951": "ru-sberbank",
    "546952": "ru-sberbank",
    "546953": "ru-sberbank",
    "546954": "ru-sberbank",
    "546955": "ru-sberbank",
    "546956": "ru-sberbank",
    "546959": "ru-sberbank",
    "546960": "ru-sberbank",
    "546961": "ru-sberbank",
    "546962": "ru-sberbank",
    "546963": "ru-sberbank",
    "546964": "ru-sberbank",
    "546966": "ru-sberbank",
    "546967": "ru-sberbank",
    "546968": "ru-sberbank",
    "546969": "ru-sberbank",
    "546970": "ru-sberbank",
    "546972": "ru-sberbank",
    "546974": "ru-sberbank",
    "546975": "ru-sberbank",
    "546976": "ru-sberbank",
    "546977": "ru-sberbank",
    "546996": "ru-roscap",
    "546998": "ru-sberbank",
    "546999": "ru-sberbank",
    "547070": "ru-rosbank",
    "547151": "ru-roscap",
    "547228": "ru-uralsib",
    "547243": "ru-binbank",
    "547253": "ru-uralsib",
    "547257": "ru-uralsib",
    "547258": "ru-uralsib",
    "547262": "ru-rsb",
    "547298": "ru-uralsib",
    "547300": "ru-uralsib",
    "547306": "ru-uralsib",
    "547314": "ru-uralsib",
    "547319": "ru-uralsib",
    "547324": "ru-uralsib",
    "547329": "ru-psb",
    "547348": "ru-gpb",
    "547377": "ru-binbank",
    "547421": "ru-uralsib",
    "547447": "ru-uralsib",
    "547449": "ru-open",
    "547470": "ru-rosbank",
    "547490": "ru-citi",
    "547547": "ru-uralsib",
    "547550": "ru-ceb",
    "547563": "ru-uralsib",
    "547576": "ru-uralsib",
    "547580": "ru-uralsib",
    "547601": "ru-rshb",
    "547610": "ru-roscap",
    "547613": "ru-raiffeisen",
    "547616": "ru-open",
    "547665": "ru-uralsib",
    "547681": "ru-rosbank",
    "547699": "ru-uralsib",
    "547705": "ru-rosbank",
    "547728": "ru-ucb",
    "547743": "ru-vozrozhdenie",
    "547761": "ru-uralsib",
    "547796": "ru-uralsib",
    "547801": "ru-binbank",
    "547851": "ru-uralsib",
    "547859": "ru-roscap",
    "547901": "ru-sberbank",
    "547902": "ru-sberbank",
    "547905": "ru-sberbank",
    "547906": "ru-sberbank",
    "547907": "ru-sberbank",
    "547910": "ru-sberbank",
    "547911": "ru-sberbank",
    "547912": "ru-sberbank",
    "547913": "ru-sberbank",
    "547920": "ru-sberbank",
    "547922": "ru-sberbank",
    "547925": "ru-sberbank",
    "547926": "ru-sberbank",
    "547927": "ru-sberbank",
    "547928": "ru-sberbank",
    "547930": "ru-sberbank",
    "547931": "ru-sberbank",
    "547932": "ru-sberbank",
    "547935": "ru-sberbank",
    "547936": "ru-sberbank",
    "547937": "ru-sberbank",
    "547938": "ru-sberbank",
    "547940": "ru-sberbank",
    "547942": "ru-sberbank",
    "547943": "ru-sberbank",
    "547944": "ru-sberbank",
    "547945": "ru-sberbank",
    "547947": "ru-sberbank",
    "547948": "ru-sberbank",
    "547949": "ru-sberbank",
    "547950": "ru-sberbank",
    "547951": "ru-sberbank",
    "547952": "ru-sberbank",
    "547953": "ru-sberbank",
    "547954": "ru-sberbank",
    "547955": "ru-sberbank",
    "547956": "ru-sberbank",
    "547959": "ru-sberbank",
    "547960": "ru-sberbank",
    "547961": "ru-sberbank",
    "547962": "ru-sberbank",
    "547964": "ru-sberbank",
    "547966": "ru-sberbank",
    "547969": "ru-sberbank",
    "547972": "ru-sberbank",
    "547976": "ru-sberbank",
    "547998": "ru-sberbank",
    "547999": "ru-sberbank",
    "548027": "ru-gpb",
    "548035": "ru-mts",
    "548062": "ru-roscap",
    "548072": "ru-roscap",
    "548073": "ru-roscap",
    "548092": "ru-binbank",
    "548137": "ru-uralsib",
    "548138": "ru-uralsib",
    "548164": "ru-raiffeisen",
    "548172": "ru-psb",
    "548173": "ru-roscap",
    "548177": "ru-uralsib",
    "548186": "ru-roscap",
    "548204": "ru-roscap",
    "548205": "ru-uralsib",
    "548214": "ru-uralsib",
    "548225": "ru-rosbank",
    "548235": "ru-rsb",
    "548246": "ru-uralsib",
    "548249": "ru-uralsib",
    "548265": "ru-binbank",
    "548266": "ru-uralsib",
    "548268": "ru-uralsib",
    "548269": "ru-psb",
    "548270": "ru-binbank",
    "548272": "ru-uralsib",
    "548291": "ru-uralsib",
    "548294": "ru-uralsib",
    "548301": "ru-roscap",
    "548308": "ru-vozrozhdenie",
    "548309": "ru-vozrozhdenie",
    "548326": "ru-uralsib",
    "548328": "ru-roscap",
    "548335": "ru-roscap",
    "548351": "ru-mib",
    "548386": "ru-skb",
    "548387": "ru-tinkoff",
    "548393": "ru-uralsib",
    "548401": "ru-sberbank",
    "548402": "ru-sberbank",
    "548403": "ru-sberbank",
    "548404": "ru-roscap",
    "548405": "ru-sberbank",
    "548406": "ru-sberbank",
    "548407": "ru-sberbank",
    "548409": "ru-rosbank",
    "548410": "ru-sberbank",
    "548411": "ru-sberbank",
    "548412": "ru-sberbank",
    "548413": "ru-sberbank",
    "548416": "ru-sberbank",
    "548420": "ru-sberbank",
    "548422": "ru-sberbank",
    "548425": "ru-sberbank",
    "548426": "ru-sberbank",
    "548427": "ru-sberbank",
    "548428": "ru-sberbank",
    "548429": "ru-psb",
    "548430": "ru-sberbank",
    "548431": "ru-sberbank",
    "548432": "ru-sberbank",
    "548435": "ru-sberbank",
    "548436": "ru-sberbank",
    "548438": "ru-sberbank",
    "548440": "ru-sberbank",
    "548442": "ru-sberbank",
    "548443": "ru-sberbank",
    "548444": "ru-sberbank",
    "548445": "ru-sberbank",
    "548447": "ru-sberbank",
    "548448": "ru-sberbank",
    "548449": "ru-sberbank",
    "548450": "ru-sberbank",
    "548451": "ru-sberbank",
    "548452": "ru-sberbank",
    "548453": "ru-uralsib",
    "548454": "ru-sberbank",
    "548455": "ru-sberbank",
    "548456": "ru-sberbank",
    "548459": "ru-sberbank",
    "548460": "ru-sberbank",
    "548461": "ru-sberbank",
    "548462": "ru-sberbank",
    "548463": "ru-sberbank",
    "548464": "ru-sberbank",
    "548466": "ru-sberbank",
    "548468": "ru-sberbank",
    "548469": "ru-sberbank",
    "548470": "ru-sberbank",
    "548472": "ru-sberbank",
    "548476": "ru-sberbank",
    "548477": "ru-sberbank",
    "548484": "ru-open",
    "548490": "ru-roscap",
    "548498": "ru-sberbank",
    "548499": "ru-sberbank",
    "548504": "ru-uralsib",
    "548511": "ru-uralsib",
    "548554": "ru-roscap",
    "548571": "ru-uralsib",
    "548588": "ru-uralsib",
    "548601": "ru-alfa",
    "548655": "ru-alfa",
    "548673": "ru-alfa",
    "548674": "ru-alfa",
    "548704": "ru-uralsib",
    "548706": "ru-uralsib",
    "548713": "ru-uralsib",
    "548745": "ru-hcf",
    "548752": "ru-uralsib",
    "548753": "ru-roscap",
    "548754": "ru-roscap",
    "548755": "ru-roscap",
    "548767": "ru-zenit",
    "548768": "ru-zenit",
    "548771": "ru-zenit",
    "548777": "ru-roscap",
    "548783": "ru-roscap",
    "548784": "ru-roscap",
    "548785": "ru-roscap",
    "548791": "ru-roscap",
    "548796": "ru-rosbank",
    "548899": "ru-uralsib",
    "548921": "ru-rosbank",
    "548934": "ru-uralsib",
    "548996": "ru-uralsib",
    "548997": "ru-uralsib",
    "548999": "ru-gpb",
    "549000": "ru-gpb",
    "549014": "ru-uralsib",
    "549015": "ru-uralsib",
    "549024": "ru-open",
    "549025": "ru-open",
    "549068": "ru-rosbank",
    "549071": "ru-skb",
    "549074": "ru-roscap",
    "549081": "ru-rosbank",
    "549098": "ru-gpb",
    "549223": "ru-vtb24",
    "549229": "ru-uralsib",
    "549251": "ru-uralsib",
    "549255": "ru-uralsib",
    "549256": "ru-uralsib",
    "549257": "ru-uralsib",
    "549258": "ru-roscap",
    "549264": "ru-uralsib",
    "549268": "ru-rosbank",
    "549270": "ru-vtb24",
    "549274": "ru-uralsib",
    "549283": "ru-uralsib",
    "549285": "ru-uralsib",
    "549302": "ru-ucb",
    "549303": "ru-uralsib",
    "549306": "ru-uralsib",
    "549307": "ru-uralsib",
    "549314": "ru-roscap",
    "549347": "ru-uralsib",
    "549349": "ru-binbank",
    "549376": "ru-spb",
    "549401": "ru-uralsib",
    "549411": "ru-zenit",
    "549424": "ru-uralsib",
    "549425": "ru-psb",
    "549439": "ru-psb",
    "549447": "ru-uralsib",
    "549454": "ru-uralsib",
    "549470": "ru-roscap",
    "549475": "ru-rosbank",
    "549478": "ru-rosbank",
    "549483": "ru-uralsib",
    "549512": "ru-binbank",
    "549522": "ru-uralsib",
    "549523": "ru-binbank",
    "549524": "ru-psb",
    "549574": "ru-roscap",
    "549597": "ru-roscap",
    "549600": "ru-gpb",
    "549614": "ru-gpb",
    "549647": "ru-uralsib",
    "549654": "ru-uralsib",
    "549715": "ru-rshb",
    "549716": "ru-uralsib",
    "549822": "ru-rosbank",
    "549829": "ru-rosbank",
    "549830": "ru-uralsib",
    "549848": "ru-open",
    "549855": "ru-rosbank",
    "549865": "ru-rosbank",
    "549870": "ru-mib",
    "549873": "ru-uralsib",
    "549881": "ru-uralsib",
    "549882": "ru-zenit",
    "549887": "ru-roscap",
    "549888": "ru-zenit",
    "549935": "ru-roscap",
    "549965": "ru-jugra",
    "549966": "ru-jugra",
    "549969": "ru-roscap",
    "550006": "ru-uralsib",
    "550025": "ru-binbank",
    "550064": "ru-rosbank",
    "550070": "ru-roscap",
    "550143": "ru-rosbank",
    "550165": "ru-rosbank",
    "550210": "ru-rosbank",
    "550219": "ru-zenit",
    "550235": "ru-roscap",
    "550251": "ru-sberbank",
    "550446": "ru-open",
    "550467": "ru-rosbank",
    "550468": "ru-uralsib",
    "550484": "ru-raiffeisen",
    "550547": "ru-rosbank",
    "550583": "ru-mts",
    "551950": "ru-roscap",
    "551960": "ru-tinkoff",
    "551979": "ru-rosbank",
    "551985": "ru-rosbank",
    "551989": "ru-rosbank",
    "551993": "ru-rosbank",
    "551996": "ru-rosbank",
    "552055": "ru-gpb",
    "552151": "ru-rosbank",
    "552175": "ru-alfa",
    "552186": "ru-alfa",
    "552549": "ru-roscap",
    "552573": "ru-citi",
    "552574": "ru-citi",
    "552603": "ru-roscap",
    "552613": "ru-reb",
    "552618": "ru-mts",
    "552680": "ru-mkb",
    "552702": "ru-gpb",
    "552708": "ru-open",
    "552729": "ru-ren",
    "552845": "ru-uralsib",
    "552866": "ru-binbank",
    "552958": "ru-akbars",
    "553000": "ru-uralsib",
    "553069": "ru-rosbank",
    "553128": "ru-rosbank",
    "553420": "ru-tinkoff",
    "553496": "ru-raiffeisen",
    "553581": "ru-uralsib",
    "553584": "ru-uralsib",
    "553690": "ru-rosbank",
    "553909": "ru-rosbank",
    "553964": "ru-rosbank",
    "554279": "ru-psb",
    "554317": "ru-rosbank",
    "554324": "ru-rosbank",
    "554326": "ru-rosbank",
    "554364": "ru-roscap",
    "554365": "ru-roscap",
    "554372": "ru-binbank",
    "554373": "ru-binbank",
    "554384": "ru-vtb",
    "554386": "ru-vtb24",
    "554393": "ru-vtb24",
    "554524": "ru-smp",
    "554546": "ru-uralsib",
    "554549": "ru-rosbank",
    "554562": "ru-uralsib",
    "554581": "ru-uralsib",
    "554607": "ru-uralsib",
    "554615": "ru-uralsib",
    "554651": "ru-uralsib",
    "554713": "ru-rosbank",
    "554733": "ru-rosbank",
    "554759": "ru-psb",
    "554761": "ru-rosbank",
    "554780": "ru-zenit",
    "554781": "ru-psb",
    "554782": "ru-rosbank",
    "554844": "ru-rosbank",
    "555057": "ru-citi",
    "555058": "ru-citi",
    "555079": "ru-rosbank",
    "555156": "ru-alfa",
    "555921": "ru-alfa",
    "555928": "ru-alfa",
    "555933": "ru-alfa",
    "555947": "ru-alfa",
    "555949": "ru-alfa",
    "555957": "ru-alfa",
    "556052": "ru-gpb",
    "556056": "ru-sviaz",
    "556057": "ru-uralsib",
    "557029": "ru-zenit",
    "557030": "ru-zenit",
    "557036": "ru-uralsib",
    "557056": "ru-ceb",
    "557057": "ru-ceb",
    "557071": "ru-mib",
    "557072": "ru-mib",
    "557073": "ru-binbank",
    "557106": "ru-uralsib",
    "557107": "ru-uralsib",
    "557646": "ru-rosbank",
    "557724": "ru-rosbank",
    "557734": "ru-hcf",
    "557737": "ru-ren",
    "557808": "ru-trust",
    "557809": "ru-trust",
    "557841": "ru-rosbank",
    "557842": "ru-rosbank",
    "557848": "ru-rosbank",
    "557849": "ru-rosbank",
    "557942": "ru-zenit",
    "557944": "ru-zenit",
    "557946": "ru-open",
    "557948": "ru-open",
    "557959": "ru-roscap",
    "557960": "ru-zenit",
    "557969": "ru-roscap",
    "557970": "ru-uralsib",
    "557976": "ru-binbank",
    "557977": "ru-rosbank",
    "557980": "ru-rosbank",
    "557981": "ru-psb",
    "557986": "ru-mib",
    "558254": "ru-psb",
    "558258": "ru-rosbank",
    "558268": "ru-psb",
    "558273": "ru-raiffeisen",
    "558274": "ru-rosbank",
    "558275": "ru-uralsib",
    "558296": "ru-rosbank",
    "558298": "ru-trust",
    "558326": "ru-uralsib",
    "558334": "ru-alfa",
    "558354": "ru-uralsib",
    "558355": "ru-gpb",
    "558356": "ru-uralsib",
    "558374": "ru-uralsib",
    "558385": "ru-jugra",
    "558391": "ru-uralsib",
    "558416": "ru-rosbank",
    "558462": "ru-mib",
    "558463": "ru-uralsib",
    "558480": "ru-rosbank",
    "558488": "ru-roscap",
    "558504": "ru-rosbank",
    "558516": "ru-psb",
    "558518": "ru-vtb24",
    "558535": "ru-avangard",
    "558536": "ru-raiffeisen",
    "558605": "ru-rosbank",
    "558620": "ru-open",
    "558622": "ru-raiffeisen",
    "558625": "ru-binbank",
    "558636": "ru-binbank",
    "558651": "ru-uralsib",
    "558664": "ru-uralsib",
    "558672": "ru-psb",
    "558673": "ru-rosbank",
    "558690": "ru-uralsib",
    "558696": "ru-zenit",
    "558713": "ru-vbrr",
    "559066": "ru-vtb",
    "559255": "ru-gpb",
    "559264": "ru-open",
    "559448": "ru-rosbank",
    "559456": "ru-mib",
    "559476": "ru-rosbank",
    "559488": "ru-rosbank",
    "559596": "ru-rosbank",
    "559598": "ru-rosbank",
    "559615": "ru-rosbank",
    "559645": "ru-zenit",
    "559811": "ru-rosbank",
    "559813": "ru-ceb",
    "559814": "ru-rosbank",
    "559899": "ru-rosbank",
    "559901": "ru-sberbank",
    "559969": "ru-rosbank",
    "559992": "ru-gpb",
    "605461": "ru-sberbank",
    "605462": "ru-uralsib",
    "627119": "ru-alfa",
    "639002": "ru-sberbank",
    "670505": "ru-roscap",
    "670508": "ru-psb",
    "670512": "ru-zenit",
    "670518": "ru-open",
    "670521": "ru-roscap",
    "670550": "ru-rosbank",
    "670555": "ru-atb",
    "670556": "ru-roscap",
    "670557": "ru-rosbank",
    "670560": "ru-rosbank",
    "670567": "ru-rosbank",
    "670575": "ru-rosbank",
    "670583": "ru-psb",
    "670587": "ru-open",
    "670594": "ru-roscap",
    "670601": "ru-roscap",
    "670602": "ru-roscap",
    "670605": "ru-roscap",
    "670607": "ru-rosbank",
    "670611": "ru-psb",
    "670614": "ru-zenit",
    "670623": "ru-roscap",
    "670624": "ru-roscap",
    "670625": "ru-roscap",
    "670628": "ru-roscap",
    "670633": "ru-roscap",
    "670637": "ru-skb",
    "670638": "ru-roscap",
    "670646": "ru-rosbank",
    "670647": "ru-rosbank",
    "670652": "ru-rosbank",
    "670654": "ru-psb",
    "670661": "ru-psb",
    "670663": "ru-roscap",
    "670671": "ru-roscap",
    "670674": "ru-rosbank",
    "670676": "ru-roscap",
    "670694": "ru-rosbank",
    "670818": "ru-roscap",
    "670819": "ru-rosbank",
    "670828": "ru-rosbank",
    "670846": "ru-roscap",
    "670849": "ru-rosbank",
    "670851": "ru-rosbank",
    "670852": "ru-mob",
    "670869": "ru-rosbank",
    "670893": "ru-roscap",
    "670981": "ru-roscap",
    "670992": "ru-uralsib",
    "670995": "ru-uralsib",
    "670996": "ru-rosbank",
    "671106": "ru-uralsib",
    "671109": "ru-vtb",
    "671111": "ru-vtb",
    "671122": "ru-gpb",
    "671123": "ru-zenit",
    "671136": "ru-uralsib",
    "671137": "ru-rosbank",
    "671148": "ru-vtb",
    "671172": "ru-vtb",
    "676195": "ru-sberbank",
    "676196": "ru-sberbank",
    "676230": "ru-alfa",
    "676231": "ru-open",
    "676245": "ru-jugra",
    "676280": "ru-sberbank",
    "676333": "ru-raiffeisen",
    "676347": "ru-rosbank",
    "676371": "ru-roscap",
    "676397": "ru-vozrozhdenie",
    "676428": "ru-binbank",
    "676444": "ru-psb",
    "676445": "ru-roscap",
    "676450": "ru-rosbank",
    "676454": "ru-gpb",
    "676463": "ru-avangard",
    "676501": "ru-rosbank",
    "676523": "ru-zenit",
    "676528": "ru-uralsib",
    "676533": "ru-rosbank",
    "676565": "ru-rsb",
    "676586": "ru-ceb",
    "676625": "ru-raiffeisen",
    "676642": "ru-trust",
    "676664": "ru-rosbank",
    "676668": "ru-rosbank",
    "676672": "ru-ucb",
    "676697": "ru-open",
    "676800": "ru-vtb24",
    "676802": "ru-vtb24",
    "676803": "ru-vtb24",
    "676805": "ru-vtb24",
    "676845": "ru-vtb24",
    "676851": "ru-vtb24",
    "676859": "ru-roscap",
    "676860": "ru-vtb24",
    "676861": "ru-vtb24",
    "676881": "ru-reb",
    "676884": "ru-mts",
    "676888": "ru-vtb24",
    "676893": "ru-vtb24",
    "676896": "ru-vtb24",
    "676934": "ru-binbank",
    "676939": "ru-vtb24",
    "676946": "ru-rosbank",
    "676947": "ru-binbank",
    "676967": "ru-mkb",
    "676974": "ru-vtb24",
    "676979": "ru-roscap",
    "676984": "ru-uralsib",
    "676989": "ru-roscap",
    "676990": "ru-gpb",
    "676998": "ru-binbank",
    "677018": "ru-roscap",
    "677040": "ru-ren",
    "677058": "ru-binbank",
    "677076": "ru-rosbank",
    "677084": "ru-zenit",
    "677088": "ru-akbars",
    "677110": "ru-gpb",
    "677112": "ru-rosbank",
    "677128": "ru-sberbank",
    "677136": "ru-roscap",
    "677146": "ru-roscap",
    "677151": "ru-vtb",
    "677175": "ru-smp",
    "677189": "ru-rgs",
    "677194": "ru-vtb24",
    "677222": "ru-rosbank",
    "677223": "ru-roscap",
    "677228": "ru-roscap",
    "677229": "ru-roscap",
    "677234": "ru-rosbank",
    "677235": "ru-rosbank",
    "677240": "ru-rosbank",
    "677245": "ru-rosbank",
    "677257": "ru-roscap",
    "677260": "ru-zenit",
    "677261": "ru-uralsib",
    "677263": "ru-psb",
    "677267": "ru-roscap",
    "677271": "ru-vtb24",
    "677272": "ru-roscap",
    "677275": "ru-binbank",
    "677276": "ru-binbank",
    "677285": "ru-roscap",
    "677288": "ru-roscap",
    "677289": "ru-roscap",
    "677302": "ru-roscap",
    "677303": "ru-rosbank",
    "677305": "ru-roscap",
    "677309": "ru-rosbank",
    "677314": "ru-rosbank",
    "677315": "ru-rosbank",
    "677318": "ru-roscap",
    "677319": "ru-roscap",
    "677327": "ru-zenit",
    "677329": "ru-zenit",
    "677335": "ru-roscap",
    "677336": "ru-roscap",
    "677338": "ru-roscap",
    "677342": "ru-rosbank",
    "677343": "ru-rosbank",
    "677345": "ru-rosbank",
    "677349": "ru-roscap",
    "677358": "ru-binbank",
    "677359": "ru-rosbank",
    "677360": "ru-rosbank",
    "677363": "ru-trust",
    "677366": "ru-smp",
    "677367": "ru-sviaz",
    "677370": "ru-psb",
    "677371": "ru-psb",
    "677372": "ru-psb",
    "677374": "ru-roscap",
    "677375": "ru-rosbank",
    "677376": "ru-rosbank",
    "677380": "ru-zenit",
    "677382": "ru-uralsib",
    "677388": "ru-zenit",
    "677389": "ru-zenit",
    "677391": "ru-rsb",
    "677401": "ru-rosbank",
    "677405": "ru-psb",
    "677406": "ru-binbank",
    "677408": "ru-uralsib",
    "677424": "ru-roscap",
    "677428": "ru-roscap",
    "677430": "ru-uralsib",
    "677431": "ru-uralsib",
    "677444": "ru-roscap",
    "677456": "ru-roscap",
    "677457": "ru-roscap",
    "677458": "ru-zenit",
    "677459": "ru-zenit",
    "677461": "ru-psb",
    "677462": "ru-psb",
    "677466": "ru-roscap",
    "677467": "ru-rosbank",
    "677468": "ru-rosbank",
    "677470": "ru-vtb24",
    "677471": "ru-vtb24",
    "677484": "ru-gpb",
    "677493": "ru-zenit",
    "677496": "ru-mob",
    "677497": "ru-zenit",
    "677501": "ru-roscap",
    "677505": "ru-binbank",
    "677506": "ru-psb",
    "677507": "ru-rosbank",
    "677510": "ru-zenit",
    "677514": "ru-zenit",
    "677518": "ru-smp",
    "677578": "ru-roscap",
    "677579": "ru-rosbank",
    "677585": "ru-gpb",
    "677597": "ru-rosbank",
    "677600": "ru-roscap",
    "677611": "ru-roscap",
    "677617": "ru-rosbank",
    "677646": "ru-roscap",
    "677649": "ru-vbrr",
    "677655": "ru-roscap",
    "677656": "ru-roscap",
    "677659": "ru-zenit",
    "677660": "ru-zenit",
    "677684": "ru-mts",
    "677688": "ru-roscap",
    "677694": "ru-roscap",
    "677714": "ru-roscap",
    "677721": "ru-rosbank",
    "679074": "ru-uralsib"
  };
  {
    exports.CardInfo._banks = banks;
    exports.CardInfo._prefixes = prefixes;
  }
}());
});

// get all logos file from card-info plugin to use it further
var LogosRaw = require.context('card-info/dist/', true, /\.png/);
var LogosRawSvg = require.context('card-info/dist/', true, /\.svg/);
var Logos = {};

LogosRaw.keys().forEach(function (key) {
  var base64 = LogosRaw(key);
  Logos[key] = base64;
});

 // exception keys are: space, enter, backspace, left arrow, up arrow, right arrow, down arrow
var exceptionKeys = [32, 13, 8, 37, 38, 39, 40];

// if there are svg, ovverride png
LogosRawSvg.keys().forEach(function (key) {
  var base64 = LogosRawSvg(key);
  Logos[key] = base64;
});

var defaults = {
  labels: {
    cardNumber: 'Card number',
    month: 'Month',
    year: 'Year',
    cardHolder: 'Cardholder name',
    button: 'pay'
  },

  placeholders: {
    cardNumber: '0000 0000 0000 0000',
    month: '00',
    year: '00',
    cardHolder: 'JOHN DOE',
    cvv: '000'
  },

  showBank: true,
  showPaymentSystem: true
};

var VueCardPayment = {render: function(){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"cardWrap",class:{'valid' : _vm.valid},style:({
    background: _vm.systemSettings.showBank ? _vm.visual.backgroundGradient : ''
  })},[_c('form',{class:_vm.systemSettings.showBank ? _vm.bankInfo.backgroundLightness : '',on:{"submit":function($event){$event.preventDefault();return _vm.onBtn($event)}}},[_c('div',{staticClass:"bankLogo"},[(_vm.systemSettings.showBank)?_c('img',{attrs:{"src":_vm.getImage(_vm.bankInfo.bankLogo)}}):_vm._e()]),_vm._v(" "),_c('div',{staticClass:"row"},[_c('label',{attrs:{"for":"cardnumber"}},[_vm._v(_vm._s(_vm.systemSettings.labels.cardNumber))]),_vm._v(" "),_c('input',{directives:[{name:"model",rawName:"v-model",value:(_vm.card.number),expression:"card.number"}],attrs:{"type":"phone","placeholder":_vm.systemSettings.placeholders.cardNumber,"maxlength":"23","name":"cardnumber","autocomplete":"cc-number"},domProps:{"value":(_vm.card.number)},on:{"keydown":_vm.isNumber,"input":function($event){if($event.target.composing){ return; }_vm.$set(_vm.card, "number", $event.target.value);}}})]),_vm._v(" "),_c('div',{staticClass:"row"},[_c('div',{staticClass:"part"},[_c('label',{attrs:{"for":"cc-exp-month"}},[_vm._v(_vm._s(_vm.systemSettings.labels.month))]),_vm._v(" "),_c('input',{directives:[{name:"model",rawName:"v-model",value:(_vm.card.month),expression:"card.month"}],attrs:{"type":"number","placeholder":_vm.systemSettings.placeholders.month,"min":this.card.year == _vm.getCurrYear() ? _vm.getCurrMonth() : 1,"max":"12","name":"cc-exp-month","autocomplete":"cc-exp"},domProps:{"value":(_vm.card.month)},on:{"keydown":_vm.isNumber,"blur":_vm.trailingZero,"input":function($event){if($event.target.composing){ return; }_vm.$set(_vm.card, "month", $event.target.value);}}})]),_vm._v(" "),_vm._m(0),_vm._v(" "),_c('div',{staticClass:"part"},[_c('label',{attrs:{"for":"cc-exp"}},[_vm._v(_vm._s(_vm.systemSettings.labels.year))]),_vm._v(" "),_c('input',{directives:[{name:"model",rawName:"v-model",value:(_vm.card.year),expression:"card.year"}],attrs:{"type":"number","placeholder":_vm.systemSettings.placeholders.year,"min":_vm.getCurrYear(),"max":"99","name":"cc-exp","autocomplete":"cc-exp"},domProps:{"value":(_vm.card.year)},on:{"keydown":_vm.isNumber,"blur":_vm.trailingZero,"input":function($event){if($event.target.composing){ return; }_vm.$set(_vm.card, "year", $event.target.value);}}})]),_vm._v(" "),_c('div',{staticClass:"part right"},[_c('label',{attrs:{"for":"cvc"}},[_vm._v(_vm._s(_vm.bankInfo.codeName ? _vm.bankInfo.codeName : 'CVV'))]),_vm._v(" "),_c('input',{directives:[{name:"model",rawName:"v-model",value:(_vm.card.cvv),expression:"card.cvv"}],attrs:{"type":"password","placeholder":_vm.systemSettings.placeholders.cvv,"name":"cvc","maxlength":"3","autocomplete":"cc-cvc"},domProps:{"value":(_vm.card.cvv)},on:{"keydown":_vm.isNumber,"input":function($event){if($event.target.composing){ return; }_vm.$set(_vm.card, "cvv", $event.target.value);}}})])]),_vm._v(" "),_c('div',{staticClass:"row"},[_c('label',{attrs:{"for":"ccname"}},[_vm._v(_vm._s(_vm.systemSettings.labels.cardHolder))]),_vm._v(" "),_c('input',{directives:[{name:"model",rawName:"v-model",value:(_vm.card.name),expression:"card.name"}],attrs:{"type":"text","placeholder":_vm.systemSettings.placeholders.cardHolder,"name":"ccname","autocomplete":"cc-name"},domProps:{"value":(_vm.card.name)},on:{"keydown":_vm.onlyLetters,"input":function($event){if($event.target.composing){ return; }_vm.$set(_vm.card, "name", $event.target.value);}}}),_vm._v(" "),(_vm.systemSettings.showPaymentSystem)?_c('img',{staticClass:"brandLogo right",attrs:{"src":_vm.getImage(_vm.bankInfo.brandLogo)}}):_vm._e()]),_vm._v(" "),_c('div',{staticClass:"submit"},[_c('button',{attrs:{"type":"submit"}},[_vm._v(_vm._s(_vm.systemSettings.labels.button))])])])])},staticRenderFns: [function(){var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:"part sepLine"},[_c('span')])}],_scopeId: 'data-v-99ff58ae',
  name: 'VueCardPayment',
  props: {
    settings: {
      type: Object,
      default: Object
    }
  },

  created: function () {
    cardInfo.setDefaultOptions(this.visual);
    this.systemSettings = Object.assign({}, defaults, this.settings);
  },

  data: function data () {
    return {
      systemSettings: {},

      card: {
        number: '',
        name: '',
        month: '',
        year: '',
        cvv: ''
      },

      bankInfo: {},

      visual: {
        backgroundColor: '#eee',
        backgroundGradient: 'linear-gradient(135deg, #eeeeee, #dddddd)',
        banksLogosPath: 'banks-logos/',
        brandsLogosPath: 'brands-logos/'
      },

      valid: false
    }
  },

  methods: {
    getImage: function getImage (path) {
      if (path) {
        return Logos['./' + path]
      }
    },

    validateMonth: function validateMonth () {
      var currYear = this.getCurrYear();
      var currMonth = this.getCurrMonth();

      if (this.card.year === currYear && parseInt(this.card.month) < currMonth) {
        this.card.month = currMonth < 10 ? '0' + currMonth : currMonth;
      }
    },

    validateYear: function validateYear () {
      var currYear = this.getCurrYear();

      if (this.card.year.toString().length > 2) { this.card.year = this.card.year.toString().substring(0, 2); }
      if (parseInt(this.card.year) < currYear && this.card.year.length > 1) { this.card.year = currYear; }
    },

    getCurrYear: function getCurrYear () {
      return parseInt(new Date().getFullYear().toString().substr(2))
    },

    getCurrMonth: function getCurrMonth () {
      return new Date().getMonth()
    },

    passData: function passData () {
      var obj = this.card;
      obj.valid = this.valid;

      this.$emit('input', obj);
    },

    onBtn: function onBtn () {
      if (this.valid) {
        this.$emit('card-submit');
      }
    },

    isNumber: function isNumber (evt) {
      evt = (evt) || window.event;
      var charCode = (evt.which) ? evt.which : evt.keyCode;
      if (
        (charCode > 31 && ((charCode < 48 || charCode > 57) && (charCode < 96 || charCode > 105))) &&
        exceptionKeys.indexOf(charCode) === -1) {
        evt.preventDefault();
      } else {
        return true
      }
    },

    onlyLetters: function onlyLetters (evt) {
      evt = (evt) || window.event;
      var charCode = (evt.which) ? evt.which : evt.keyCode;

      // additional exceptions: ,-'.
      var exceptionKeysName = exceptionKeys.concat([188, 189, 222, 190]);

      if (!(charCode >= 65 && charCode <= 120) &&
         exceptionKeysName.indexOf(charCode) === -1) {
        evt.preventDefault();
      } else {
        return true
      }
    },

    trailingZero: function trailingZero (evt) {
      var val = evt.target ? evt.target.value : evt;

      if (parseInt(val, 10) < 10 && val.toString().charAt('0') !== '0') {
        if (evt.target.name === 'cc-exp') {
          this.card.year = "0" + val;
          this.validateYear();
        } else if (evt.target.name === 'cc-exp-month') {
          this.card.month = "0" + val;
          this.validateMonth();
        }
      }
    }
  },

  watch: {
    'card.number': function card_number () {
      this.bankInfo = new cardInfo(this.card.number);
      var niceNumber = this.bankInfo.numberNice;

      if (niceNumber.length > 19) { niceNumber = niceNumber.slice(0, 19) + ' ' + niceNumber.slice(19); }

      this.card.number = niceNumber;
    },

    'bankInfo': function bankInfo (newVal) {
      this.visual.backgroundGradient = newVal.backgroundGradient;
    },

    'card.name': function card_name () {
      this.card.name = this.card.name.toUpperCase().replace(/[^A-Z\s'-,.]/g, '');
    },

    'card.month': function card_month (newVal) {
      // limit chars to 2
      if (this.card.month.toString().length > 2) { this.card.month = this.card.month.toString().substring(0, 2); }
      if (parseInt(this.card.month) > 12) { this.card.month = 12; }
      if (newVal.length > 1) { this.validateMonth(); }
    },

    'card.cvv': function card_cvv (val) {
      this.card.cvv = val.replace(/\D/g, '');
    },

    'card.year': function card_year (newVal) {
      this.validateYear();
      this.validateMonth();
    },

    'card': {
      handler: function handler () {
        var validName = this.card.name && this.card.name.search(' ') > 0;

        this.valid = (
          cardValidator_1(this.card.number).isValid &&
          cardValidator_3(this.card.month).isValid &&
          cardValidator_4(this.card.year, new Date().getFullYear().toString().substring(2)).isValid &&
          cardValidator_5(this.card.cvv).isValid &&
          validName
        );

        this.passData();
      },

      deep: true
    }
  }
};

function plugin (Vue) {
  Vue.component('VueCardPayment', VueCardPayment);
}

// Install by default if using the script tag
if (typeof window !== 'undefined' && window.Vue) {
  window.Vue.use(plugin);
}

var version = '0.2.1';

export { VueCardPayment, version };export default plugin;