// Path: jrand-core/src/main/java/me/xdrop/jrand/CharUtils.java
// public class CharUtils {
// 
//     public static String capitalize(String in) {
//         if (in.length() > 1) {
//             return in.substring(0, 1).toUpperCase() + in.substring(1);
//         } else {
//             return in.toUpperCase();
//         }
//     }
// 
//     public static String join(List<String> in, String sep) {
//         int size = in.size();
//         StringBuilder sbr = new StringBuilder(size * 2);
// 
//         for (int i = 1; i <= size; i++) {
//             sbr.append(in.get(i - 1));
//             if (i != size){
//                 sbr.append(sep);
//             }
//         }
// 
//         return sbr.toString();
// 
//     }
// 
//     public static String join(List<String> in, String sep, String fin) {
//         return join(in, sep) + fin;
//     }
// 
// 
// }
// 
// Path: jrand-core/src/main/java/me/xdrop/jrand/model/money/IINRange.java
// public class IINRange {
// 
//     public int getBegin() {
//         return begin;
//     }
// 
//     public int getEnd() {
//         return end;
//     }
// 
//     private int begin;
//     private int end;
// 
//     private IINRange(int begin, int end) {
//         this.begin = begin;
//         this.end = end;
//     }
// 
//     static IINRange from(int begin, int end) {
//         return new IINRange(begin, end);
//     }
// 
//     static IINRange from(int begin) {
//         return new IINRange(begin, -1);
//     }
// 
//     public String toString(){
//         if (end == -1){
//             return "" + begin;
//         } else {
//             return begin + "-" + end;
//         }
//     }
// 
// }


import me.xdrop.jrand.CharUtils;
import me.xdrop.jrand.model.money.IINRange;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
    }

    public List<IINRange> getIinRange() {
        return iinRange;
    }

    public int[] getLengths() {
        return lengths;
    }

    public String getSymbol() {
        return symbol;
    }

    public String getFullname() {
        return fullname;
    }


    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder(64);

        sb.append(getFullname());
        sb.append(" [").append(getSymbol()).append("] ");
        sb.append("Prefixes: ");
        List<String> prefixes = new ArrayList<>();
        for (IINRange range : getIinRange()){
            prefixes.add(range.toString());
        }
// Path: jrand-core/src/main/java/me/xdrop/jrand/CharUtils.java
// public class CharUtils {
// 
//     public static String capitalize(String in) {
//         if (in.length() > 1) {
//             return in.substring(0, 1).toUpperCase() + in.substring(1);
//         } else {
//             return in.toUpperCase();
//         }
//     }
// 
//     public static String join(List<String> in, String sep) {
//         int size = in.size();
//         StringBuilder sbr = new StringBuilder(size * 2);
// 
//         for (int i = 1; i <= size; i++) {
//             sbr.append(in.get(i - 1));
//             if (i != size){
//                 sbr.append(sep);
//             }
//         }
// 
//         return sbr.toString();
// 
//     }
// 
//     public static String join(List<String> in, String sep, String fin) {
//         return join(in, sep) + fin;
//     }
// 
// 
// }
// 
// Path: jrand-core/src/main/java/me/xdrop/jrand/model/money/IINRange.java
// public class IINRange {
// 
//     public int getBegin() {
//         return begin;
//     }
// 
//     public int getEnd() {
//         return end;
//     }
// 
//     private int begin;
//     private int end;
// 
//     private IINRange(int begin, int end) {
//         this.begin = begin;
//         this.end = end;
//     }
// 
//     static IINRange from(int begin, int end) {
//         return new IINRange(begin, end);
//     }
// 
//     static IINRange from(int begin) {
//         return new IINRange(begin, -1);
//     }
// 
//     public String toString(){
//         if (end == -1){
//             return "" + begin;
//         } else {
//             return begin + "-" + end;
//         }
//     }
// 
// }


// Path: jrand-core/src/main/java/me/xdrop/jrand/model/money/CardType.java
import me.xdrop.jrand.CharUtils;
import me.xdrop.jrand.model.money.IINRange;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;

    }

    public List<IINRange> getIinRange() {
        return iinRange;
    }

    public int[] getLengths() {
        return lengths;
    }

    public String getSymbol() {
        return symbol;
    }

    public String getFullname() {
        return fullname;
    }


    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder(64);

        sb.append(getFullname());
        sb.append(" [").append(getSymbol()).append("] ");
        sb.append("Prefixes: ");
        List<String> prefixes = new ArrayList<>();
        for (IINRange range : getIinRange()){
            prefixes.add(range.toString());
        }
        String join = CharUtils.join(prefixes, ",");