{"version":3,"file":"js/npm.select2.ede7e26a0097e736f076.js","mappings":"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AU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,KACV,IAAU,KACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,KACV,IAAU,KACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,KACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,KACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,KACV,IAAU,KACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,KACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,KACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,KACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,KACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,KACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,KACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IAAU,IACV,IA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","sources":["webpack:///../node_modules/select2/dist/css/select2.css","webpack:///../node_modules/select2/dist/js/select2.full.js","webpack:///../node_modules/select2/dist/css/select2.css?055f"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".select2-container {\\n box-sizing: border-box;\\n display: inline-block;\\n margin: 0;\\n position: relative;\\n vertical-align: middle; }\\n .select2-container .select2-selection--single {\\n box-sizing: border-box;\\n cursor: pointer;\\n display: block;\\n height: 28px;\\n user-select: none;\\n -webkit-user-select: none; }\\n .select2-container .select2-selection--single .select2-selection__rendered {\\n display: block;\\n padding-left: 8px;\\n padding-right: 20px;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap; }\\n .select2-container .select2-selection--single .select2-selection__clear {\\n position: relative; }\\n .select2-container[dir=\\\"rtl\\\"] .select2-selection--single .select2-selection__rendered {\\n padding-right: 8px;\\n padding-left: 20px; }\\n .select2-container .select2-selection--multiple {\\n box-sizing: border-box;\\n cursor: pointer;\\n display: block;\\n min-height: 32px;\\n user-select: none;\\n -webkit-user-select: none; }\\n .select2-container .select2-selection--multiple .select2-selection__rendered {\\n display: inline-block;\\n overflow: hidden;\\n padding-left: 8px;\\n text-overflow: ellipsis;\\n white-space: nowrap; }\\n .select2-container .select2-search--inline {\\n float: left; }\\n .select2-container .select2-search--inline .select2-search__field {\\n box-sizing: border-box;\\n border: none;\\n font-size: 100%;\\n margin-top: 5px;\\n padding: 0; }\\n .select2-container .select2-search--inline .select2-search__field::-webkit-search-cancel-button {\\n -webkit-appearance: none; }\\n\\n.select2-dropdown {\\n background-color: white;\\n border: 1px solid #aaa;\\n border-radius: 4px;\\n box-sizing: border-box;\\n display: block;\\n position: absolute;\\n left: -100000px;\\n width: 100%;\\n z-index: 1051; }\\n\\n.select2-results {\\n display: block; }\\n\\n.select2-results__options {\\n list-style: none;\\n margin: 0;\\n padding: 0; }\\n\\n.select2-results__option {\\n padding: 6px;\\n user-select: none;\\n -webkit-user-select: none; }\\n .select2-results__option[aria-selected] {\\n cursor: pointer; }\\n\\n.select2-container--open .select2-dropdown {\\n left: 0; }\\n\\n.select2-container--open .select2-dropdown--above {\\n border-bottom: none;\\n border-bottom-left-radius: 0;\\n border-bottom-right-radius: 0; }\\n\\n.select2-container--open .select2-dropdown--below {\\n border-top: none;\\n border-top-left-radius: 0;\\n border-top-right-radius: 0; }\\n\\n.select2-search--dropdown {\\n display: block;\\n padding: 4px; }\\n .select2-search--dropdown .select2-search__field {\\n padding: 4px;\\n width: 100%;\\n box-sizing: border-box; }\\n .select2-search--dropdown .select2-search__field::-webkit-search-cancel-button {\\n -webkit-appearance: none; }\\n .select2-search--dropdown.select2-search--hide {\\n display: none; }\\n\\n.select2-close-mask {\\n border: 0;\\n margin: 0;\\n padding: 0;\\n display: block;\\n position: fixed;\\n left: 0;\\n top: 0;\\n min-height: 100%;\\n min-width: 100%;\\n height: auto;\\n width: auto;\\n opacity: 0;\\n z-index: 99;\\n background-color: #fff;\\n filter: alpha(opacity=0); }\\n\\n.select2-hidden-accessible {\\n border: 0 !important;\\n clip: rect(0 0 0 0) !important;\\n -webkit-clip-path: inset(50%) !important;\\n clip-path: inset(50%) !important;\\n height: 1px !important;\\n overflow: hidden !important;\\n padding: 0 !important;\\n position: absolute !important;\\n width: 1px !important;\\n white-space: nowrap !important; }\\n\\n.select2-container--default .select2-selection--single {\\n background-color: #fff;\\n border: 1px solid #aaa;\\n border-radius: 4px; }\\n .select2-container--default .select2-selection--single .select2-selection__rendered {\\n color: #444;\\n line-height: 28px; }\\n .select2-container--default .select2-selection--single .select2-selection__clear {\\n cursor: pointer;\\n float: right;\\n font-weight: bold; }\\n .select2-container--default .select2-selection--single .select2-selection__placeholder {\\n color: #999; }\\n .select2-container--default .select2-selection--single .select2-selection__arrow {\\n height: 26px;\\n position: absolute;\\n top: 1px;\\n right: 1px;\\n width: 20px; }\\n .select2-container--default .select2-selection--single .select2-selection__arrow b {\\n border-color: #888 transparent transparent transparent;\\n border-style: solid;\\n border-width: 5px 4px 0 4px;\\n height: 0;\\n left: 50%;\\n margin-left: -4px;\\n margin-top: -2px;\\n position: absolute;\\n top: 50%;\\n width: 0; }\\n\\n.select2-container--default[dir=\\\"rtl\\\"] .select2-selection--single .select2-selection__clear {\\n float: left; }\\n\\n.select2-container--default[dir=\\\"rtl\\\"] .select2-selection--single .select2-selection__arrow {\\n left: 1px;\\n right: auto; }\\n\\n.select2-container--default.select2-container--disabled .select2-selection--single {\\n background-color: #eee;\\n cursor: default; }\\n .select2-container--default.select2-container--disabled .select2-selection--single .select2-selection__clear {\\n display: none; }\\n\\n.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b {\\n border-color: transparent transparent #888 transparent;\\n border-width: 0 4px 5px 4px; }\\n\\n.select2-container--default .select2-selection--multiple {\\n background-color: white;\\n border: 1px solid #aaa;\\n border-radius: 4px;\\n cursor: text; }\\n .select2-container--default .select2-selection--multiple .select2-selection__rendered {\\n box-sizing: border-box;\\n list-style: none;\\n margin: 0;\\n padding: 0 5px;\\n width: 100%; }\\n .select2-container--default .select2-selection--multiple .select2-selection__rendered li {\\n list-style: none; }\\n .select2-container--default .select2-selection--multiple .select2-selection__clear {\\n cursor: pointer;\\n float: right;\\n font-weight: bold;\\n margin-top: 5px;\\n margin-right: 10px;\\n padding: 1px; }\\n .select2-container--default .select2-selection--multiple .select2-selection__choice {\\n background-color: #e4e4e4;\\n border: 1px solid #aaa;\\n border-radius: 4px;\\n cursor: default;\\n float: left;\\n margin-right: 5px;\\n margin-top: 5px;\\n padding: 0 5px; }\\n .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\\n color: #999;\\n cursor: pointer;\\n display: inline-block;\\n font-weight: bold;\\n margin-right: 2px; }\\n .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\\n color: #333; }\\n\\n.select2-container--default[dir=\\\"rtl\\\"] .select2-selection--multiple .select2-selection__choice, .select2-container--default[dir=\\\"rtl\\\"] .select2-selection--multiple .select2-search--inline {\\n float: right; }\\n\\n.select2-container--default[dir=\\\"rtl\\\"] .select2-selection--multiple .select2-selection__choice {\\n margin-left: 5px;\\n margin-right: auto; }\\n\\n.select2-container--default[dir=\\\"rtl\\\"] .select2-selection--multiple .select2-selection__choice__remove {\\n margin-left: 2px;\\n margin-right: auto; }\\n\\n.select2-container--default.select2-container--focus .select2-selection--multiple {\\n border: solid black 1px;\\n outline: 0; }\\n\\n.select2-container--default.select2-container--disabled .select2-selection--multiple {\\n background-color: #eee;\\n cursor: default; }\\n\\n.select2-container--default.select2-container--disabled .select2-selection__choice__remove {\\n display: none; }\\n\\n.select2-container--default.select2-container--open.select2-container--above .select2-selection--single, .select2-container--default.select2-container--open.select2-container--above .select2-selection--multiple {\\n border-top-left-radius: 0;\\n border-top-right-radius: 0; }\\n\\n.select2-container--default.select2-container--open.select2-container--below .select2-selection--single, .select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple {\\n border-bottom-left-radius: 0;\\n border-bottom-right-radius: 0; }\\n\\n.select2-container--default .select2-search--dropdown .select2-search__field {\\n border: 1px solid #aaa; }\\n\\n.select2-container--default .select2-search--inline .select2-search__field {\\n background: transparent;\\n border: none;\\n outline: 0;\\n box-shadow: none;\\n -webkit-appearance: textfield; }\\n\\n.select2-container--default .select2-results > .select2-results__options {\\n max-height: 200px;\\n overflow-y: auto; }\\n\\n.select2-container--default .select2-results__option[role=group] {\\n padding: 0; }\\n\\n.select2-container--default .select2-results__option[aria-disabled=true] {\\n color: #999; }\\n\\n.select2-container--default .select2-results__option[aria-selected=true] {\\n background-color: #ddd; }\\n\\n.select2-container--default .select2-results__option .select2-results__option {\\n padding-left: 1em; }\\n .select2-container--default .select2-results__option .select2-results__option .select2-results__group {\\n padding-left: 0; }\\n .select2-container--default .select2-results__option .select2-results__option .select2-results__option {\\n margin-left: -1em;\\n padding-left: 2em; }\\n .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option {\\n margin-left: -2em;\\n padding-left: 3em; }\\n .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {\\n margin-left: -3em;\\n padding-left: 4em; }\\n .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {\\n margin-left: -4em;\\n padding-left: 5em; }\\n .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {\\n margin-left: -5em;\\n padding-left: 6em; }\\n\\n.select2-container--default .select2-results__option--highlighted[aria-selected] {\\n background-color: #5897fb;\\n color: white; }\\n\\n.select2-container--default .select2-results__group {\\n cursor: default;\\n display: block;\\n padding: 6px; }\\n\\n.select2-container--classic .select2-selection--single {\\n background-color: #f7f7f7;\\n border: 1px solid #aaa;\\n border-radius: 4px;\\n outline: 0;\\n background-image: -webkit-linear-gradient(top, white 50%, #eeeeee 100%);\\n background-image: -o-linear-gradient(top, white 50%, #eeeeee 100%);\\n background-image: linear-gradient(to bottom, white 50%, #eeeeee 100%);\\n background-repeat: repeat-x;\\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0); }\\n .select2-container--classic .select2-selection--single:focus {\\n border: 1px solid #5897fb; }\\n .select2-container--classic .select2-selection--single .select2-selection__rendered {\\n color: #444;\\n line-height: 28px; }\\n .select2-container--classic .select2-selection--single .select2-selection__clear {\\n cursor: pointer;\\n float: right;\\n font-weight: bold;\\n margin-right: 10px; }\\n .select2-container--classic .select2-selection--single .select2-selection__placeholder {\\n color: #999; }\\n .select2-container--classic .select2-selection--single .select2-selection__arrow {\\n background-color: #ddd;\\n border: none;\\n border-left: 1px solid #aaa;\\n border-top-right-radius: 4px;\\n border-bottom-right-radius: 4px;\\n height: 26px;\\n position: absolute;\\n top: 1px;\\n right: 1px;\\n width: 20px;\\n background-image: -webkit-linear-gradient(top, #eeeeee 50%, #cccccc 100%);\\n background-image: -o-linear-gradient(top, #eeeeee 50%, #cccccc 100%);\\n background-image: linear-gradient(to bottom, #eeeeee 50%, #cccccc 100%);\\n background-repeat: repeat-x;\\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFCCCCCC', GradientType=0); }\\n .select2-container--classic .select2-selection--single .select2-selection__arrow b {\\n border-color: #888 transparent transparent transparent;\\n border-style: solid;\\n border-width: 5px 4px 0 4px;\\n height: 0;\\n left: 50%;\\n margin-left: -4px;\\n margin-top: -2px;\\n position: absolute;\\n top: 50%;\\n width: 0; }\\n\\n.select2-container--classic[dir=\\\"rtl\\\"] .select2-selection--single .select2-selection__clear {\\n float: left; }\\n\\n.select2-container--classic[dir=\\\"rtl\\\"] .select2-selection--single .select2-selection__arrow {\\n border: none;\\n border-right: 1px solid #aaa;\\n border-radius: 0;\\n border-top-left-radius: 4px;\\n border-bottom-left-radius: 4px;\\n left: 1px;\\n right: auto; }\\n\\n.select2-container--classic.select2-container--open .select2-selection--single {\\n border: 1px solid #5897fb; }\\n .select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow {\\n background: transparent;\\n border: none; }\\n .select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow b {\\n border-color: transparent transparent #888 transparent;\\n border-width: 0 4px 5px 4px; }\\n\\n.select2-container--classic.select2-container--open.select2-container--above .select2-selection--single {\\n border-top: none;\\n border-top-left-radius: 0;\\n border-top-right-radius: 0;\\n background-image: -webkit-linear-gradient(top, white 0%, #eeeeee 50%);\\n background-image: -o-linear-gradient(top, white 0%, #eeeeee 50%);\\n background-image: linear-gradient(to bottom, white 0%, #eeeeee 50%);\\n background-repeat: repeat-x;\\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0); }\\n\\n.select2-container--classic.select2-container--open.select2-container--below .select2-selection--single {\\n border-bottom: none;\\n border-bottom-left-radius: 0;\\n border-bottom-right-radius: 0;\\n background-image: -webkit-linear-gradient(top, #eeeeee 50%, white 100%);\\n background-image: -o-linear-gradient(top, #eeeeee 50%, white 100%);\\n background-image: linear-gradient(to bottom, #eeeeee 50%, white 100%);\\n background-repeat: repeat-x;\\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFFFFFFF', GradientType=0); }\\n\\n.select2-container--classic .select2-selection--multiple {\\n background-color: white;\\n border: 1px solid #aaa;\\n border-radius: 4px;\\n cursor: text;\\n outline: 0; }\\n .select2-container--classic .select2-selection--multiple:focus {\\n border: 1px solid #5897fb; }\\n .select2-container--classic .select2-selection--multiple .select2-selection__rendered {\\n list-style: none;\\n margin: 0;\\n padding: 0 5px; }\\n .select2-container--classic .select2-selection--multiple .select2-selection__clear {\\n display: none; }\\n .select2-container--classic .select2-selection--multiple .select2-selection__choice {\\n background-color: #e4e4e4;\\n border: 1px solid #aaa;\\n border-radius: 4px;\\n cursor: default;\\n float: left;\\n margin-right: 5px;\\n margin-top: 5px;\\n padding: 0 5px; }\\n .select2-container--classic .select2-selection--multiple .select2-selection__choice__remove {\\n color: #888;\\n cursor: pointer;\\n display: inline-block;\\n font-weight: bold;\\n margin-right: 2px; }\\n .select2-container--classic .select2-selection--multiple .select2-selection__choice__remove:hover {\\n color: #555; }\\n\\n.select2-container--classic[dir=\\\"rtl\\\"] .select2-selection--multiple .select2-selection__choice {\\n float: right;\\n margin-left: 5px;\\n margin-right: auto; }\\n\\n.select2-container--classic[dir=\\\"rtl\\\"] .select2-selection--multiple .select2-selection__choice__remove {\\n margin-left: 2px;\\n margin-right: auto; }\\n\\n.select2-container--classic.select2-container--open .select2-selection--multiple {\\n border: 1px solid #5897fb; }\\n\\n.select2-container--classic.select2-container--open.select2-container--above .select2-selection--multiple {\\n border-top: none;\\n border-top-left-radius: 0;\\n border-top-right-radius: 0; }\\n\\n.select2-container--classic.select2-container--open.select2-container--below .select2-selection--multiple {\\n border-bottom: none;\\n border-bottom-left-radius: 0;\\n border-bottom-right-radius: 0; }\\n\\n.select2-container--classic .select2-search--dropdown .select2-search__field {\\n border: 1px solid #aaa;\\n outline: 0; }\\n\\n.select2-container--classic .select2-search--inline .select2-search__field {\\n outline: 0;\\n box-shadow: none; }\\n\\n.select2-container--classic .select2-dropdown {\\n background-color: white;\\n border: 1px solid transparent; }\\n\\n.select2-container--classic .select2-dropdown--above {\\n border-bottom: none; }\\n\\n.select2-container--classic .select2-dropdown--below {\\n border-top: none; }\\n\\n.select2-container--classic .select2-results > .select2-results__options {\\n max-height: 200px;\\n overflow-y: auto; }\\n\\n.select2-container--classic .select2-results__option[role=group] {\\n padding: 0; }\\n\\n.select2-container--classic .select2-results__option[aria-disabled=true] {\\n color: grey; }\\n\\n.select2-container--classic .select2-results__option--highlighted[aria-selected] {\\n background-color: #3875d7;\\n color: white; }\\n\\n.select2-container--classic .select2-results__group {\\n cursor: default;\\n display: block;\\n padding: 6px; }\\n\\n.select2-container--classic.select2-container--open .select2-dropdown {\\n border-color: #5897fb; }\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./../node_modules/select2/dist/css/select2.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,sBAAsB;EACtB,qBAAqB;EACrB,SAAS;EACT,kBAAkB;EAClB,sBAAsB,EAAE;EACxB;IACE,sBAAsB;IACtB,eAAe;IACf,cAAc;IACd,YAAY;IACZ,iBAAiB;IACjB,yBAAyB,EAAE;IAC3B;MACE,cAAc;MACd,iBAAiB;MACjB,mBAAmB;MACnB,gBAAgB;MAChB,uBAAuB;MACvB,mBAAmB,EAAE;IACvB;MACE,kBAAkB,EAAE;EACxB;IACE,kBAAkB;IAClB,kBAAkB,EAAE;EACtB;IACE,sBAAsB;IACtB,eAAe;IACf,cAAc;IACd,gBAAgB;IAChB,iBAAiB;IACjB,yBAAyB,EAAE;IAC3B;MACE,qBAAqB;MACrB,gBAAgB;MAChB,iBAAiB;MACjB,uBAAuB;MACvB,mBAAmB,EAAE;EACzB;IACE,WAAW,EAAE;IACb;MACE,sBAAsB;MACtB,YAAY;MACZ,eAAe;MACf,eAAe;MACf,UAAU,EAAE;MACZ;QACE,wBAAwB,EAAE;;AAElC;EACE,uBAAuB;EACvB,sBAAsB;EACtB,kBAAkB;EAClB,sBAAsB;EACtB,cAAc;EACd,kBAAkB;EAClB,eAAe;EACf,WAAW;EACX,aAAa,EAAE;;AAEjB;EACE,cAAc,EAAE;;AAElB;EACE,gBAAgB;EAChB,SAAS;EACT,UAAU,EAAE;;AAEd;EACE,YAAY;EACZ,iBAAiB;EACjB,yBAAyB,EAAE;EAC3B;IACE,eAAe,EAAE;;AAErB;EACE,OAAO,EAAE;;AAEX;EACE,mBAAmB;EACnB,4BAA4B;EAC5B,6BAA6B,EAAE;;AAEjC;EACE,gBAAgB;EAChB,yBAAyB;EACzB,0BAA0B,EAAE;;AAE9B;EACE,cAAc;EACd,YAAY,EAAE;EACd;IACE,YAAY;IACZ,WAAW;IACX,sBAAsB,EAAE;IACxB;MACE,wBAAwB,EAAE;EAC9B;IACE,aAAa,EAAE;;AAEnB;EACE,SAAS;EACT,SAAS;EACT,UAAU;EACV,cAAc;EACd,eAAe;EACf,OAAO;EACP,MAAM;EACN,gBAAgB;EAChB,eAAe;EACf,YAAY;EACZ,WAAW;EACX,UAAU;EACV,WAAW;EACX,sBAAsB;EACtB,wBAAwB,EAAE;;AAE5B;EACE,oBAAoB;EACpB,8BAA8B;EAC9B,wCAAwC;EACxC,gCAAgC;EAChC,sBAAsB;EACtB,2BAA2B;EAC3B,qBAAqB;EACrB,6BAA6B;EAC7B,qBAAqB;EACrB,8BAA8B,EAAE;;AAElC;EACE,sBAAsB;EACtB,sBAAsB;EACtB,kBAAkB,EAAE;EACpB;IACE,WAAW;IACX,iBAAiB,EAAE;EACrB;IACE,eAAe;IACf,YAAY;IACZ,iBAAiB,EAAE;EACrB;IACE,WAAW,EAAE;EACf;IACE,YAAY;IACZ,kBAAkB;IAClB,QAAQ;IACR,UAAU;IACV,WAAW,EAAE;IACb;MACE,sDAAsD;MACtD,mBAAmB;MACnB,2BAA2B;MAC3B,SAAS;MACT,SAAS;MACT,iBAAiB;MACjB,gBAAgB;MAChB,kBAAkB;MAClB,QAAQ;MACR,QAAQ,EAAE;;AAEhB;EACE,WAAW,EAAE;;AAEf;EACE,SAAS;EACT,WAAW,EAAE;;AAEf;EACE,sBAAsB;EACtB,eAAe,EAAE;EACjB;IACE,aAAa,EAAE;;AAEnB;EACE,sDAAsD;EACtD,2BAA2B,EAAE;;AAE/B;EACE,uBAAuB;EACvB,sBAAsB;EACtB,kBAAkB;EAClB,YAAY,EAAE;EACd;IACE,sBAAsB;IACtB,gBAAgB;IAChB,SAAS;IACT,cAAc;IACd,WAAW,EAAE;IACb;MACE,gBAAgB,EAAE;EACtB;IACE,eAAe;IACf,YAAY;IACZ,iBAAiB;IACjB,eAAe;IACf,kBAAkB;IAClB,YAAY,EAAE;EAChB;IACE,yBAAyB;IACzB,sBAAsB;IACtB,kBAAkB;IAClB,eAAe;IACf,WAAW;IACX,iBAAiB;IACjB,eAAe;IACf,cAAc,EAAE;EAClB;IACE,WAAW;IACX,eAAe;IACf,qBAAqB;IACrB,iBAAiB;IACjB,iBAAiB,EAAE;IACnB;MACE,WAAW,EAAE;;AAEnB;EACE,YAAY,EAAE;;AAEhB;EACE,gBAAgB;EAChB,kBAAkB,EAAE;;AAEtB;EACE,gBAAgB;EAChB,kBAAkB,EAAE;;AAEtB;EACE,uBAAuB;EACvB,UAAU,EAAE;;AAEd;EACE,sBAAsB;EACtB,eAAe,EAAE;;AAEnB;EACE,aAAa,EAAE;;AAEjB;EACE,yBAAyB;EACzB,0BAA0B,EAAE;;AAE9B;EACE,4BAA4B;EAC5B,6BAA6B,EAAE;;AAEjC;EACE,sBAAsB,EAAE;;AAE1B;EACE,uBAAuB;EACvB,YAAY;EACZ,UAAU;EACV,gBAAgB;EAChB,6BAA6B,EAAE;;AAEjC;EACE,iBAAiB;EACjB,gBAAgB,EAAE;;AAEpB;EACE,UAAU,EAAE;;AAEd;EACE,WAAW,EAAE;;AAEf;EACE,sBAAsB,EAAE;;AAE1B;EACE,iBAAiB,EAAE;EACnB;IACE,eAAe,EAAE;EACnB;IACE,iBAAiB;IACjB,iBAAiB,EAAE;IACnB;MACE,iBAAiB;MACjB,iBAAiB,EAAE;MACnB;QACE,iBAAiB;QACjB,iBAAiB,EAAE;QACnB;UACE,iBAAiB;UACjB,iBAAiB,EAAE;UACnB;YACE,iBAAiB;YACjB,iBAAiB,EAAE;;AAE/B;EACE,yBAAyB;EACzB,YAAY,EAAE;;AAEhB;EACE,eAAe;EACf,cAAc;EACd,YAAY,EAAE;;AAEhB;EACE,yBAAyB;EACzB,sBAAsB;EACtB,kBAAkB;EAClB,UAAU;EACV,uEAAuE;EACvE,kEAAkE;EAClE,qEAAqE;EACrE,2BAA2B;EAC3B,sHAAsH,EAAE;EACxH;IACE,yBAAyB,EAAE;EAC7B;IACE,WAAW;IACX,iBAAiB,EAAE;EACrB;IACE,eAAe;IACf,YAAY;IACZ,iBAAiB;IACjB,kBAAkB,EAAE;EACtB;IACE,WAAW,EAAE;EACf;IACE,sBAAsB;IACtB,YAAY;IACZ,2BAA2B;IAC3B,4BAA4B;IAC5B,+BAA+B;IAC/B,YAAY;IACZ,kBAAkB;IAClB,QAAQ;IACR,UAAU;IACV,WAAW;IACX,yEAAyE;IACzE,oEAAoE;IACpE,uEAAuE;IACvE,2BAA2B;IAC3B,sHAAsH,EAAE;IACxH;MACE,sDAAsD;MACtD,mBAAmB;MACnB,2BAA2B;MAC3B,SAAS;MACT,SAAS;MACT,iBAAiB;MACjB,gBAAgB;MAChB,kBAAkB;MAClB,QAAQ;MACR,QAAQ,EAAE;;AAEhB;EACE,WAAW,EAAE;;AAEf;EACE,YAAY;EACZ,4BAA4B;EAC5B,gBAAgB;EAChB,2BAA2B;EAC3B,8BAA8B;EAC9B,SAAS;EACT,WAAW,EAAE;;AAEf;EACE,yBAAyB,EAAE;EAC3B;IACE,uBAAuB;IACvB,YAAY,EAAE;IACd;MACE,sDAAsD;MACtD,2BAA2B,EAAE;;AAEnC;EACE,gBAAgB;EAChB,yBAAyB;EACzB,0BAA0B;EAC1B,qEAAqE;EACrE,gEAAgE;EAChE,mEAAmE;EACnE,2BAA2B;EAC3B,sHAAsH,EAAE;;AAE1H;EACE,mBAAmB;EACnB,4BAA4B;EAC5B,6BAA6B;EAC7B,uEAAuE;EACvE,kEAAkE;EAClE,qEAAqE;EACrE,2BAA2B;EAC3B,sHAAsH,EAAE;;AAE1H;EACE,uBAAuB;EACvB,sBAAsB;EACtB,kBAAkB;EAClB,YAAY;EACZ,UAAU,EAAE;EACZ;IACE,yBAAyB,EAAE;EAC7B;IACE,gBAAgB;IAChB,SAAS;IACT,cAAc,EAAE;EAClB;IACE,aAAa,EAAE;EACjB;IACE,yBAAyB;IACzB,sBAAsB;IACtB,kBAAkB;IAClB,eAAe;IACf,WAAW;IACX,iBAAiB;IACjB,eAAe;IACf,cAAc,EAAE;EAClB;IACE,WAAW;IACX,eAAe;IACf,qBAAqB;IACrB,iBAAiB;IACjB,iBAAiB,EAAE;IACnB;MACE,WAAW,EAAE;;AAEnB;EACE,YAAY;EACZ,gBAAgB;EAChB,kBAAkB,EAAE;;AAEtB;EACE,gBAAgB;EAChB,kBAAkB,EAAE;;AAEtB;EACE,yBAAyB,EAAE;;AAE7B;EACE,gBAAgB;EAChB,yBAAyB;EACzB,0BAA0B,EAAE;;AAE9B;EACE,mBAAmB;EACnB,4BAA4B;EAC5B,6BAA6B,EAAE;;AAEjC;EACE,sBAAsB;EACtB,UAAU,EAAE;;AAEd;EACE,UAAU;EACV,gBAAgB,EAAE;;AAEpB;EACE,uBAAuB;EACvB,6BAA6B,EAAE;;AAEjC;EACE,mBAAmB,EAAE;;AAEvB;EACE,gBAAgB,EAAE;;AAEpB;EACE,iBAAiB;EACjB,gBAAgB,EAAE;;AAEpB;EACE,UAAU,EAAE;;AAEd;EACE,WAAW,EAAE;;AAEf;EACE,yBAAyB;EACzB,YAAY,EAAE;;AAEhB;EACE,eAAe;EACf,cAAc;EACd,YAAY,EAAE;;AAEhB;EACE,qBAAqB,EAAE\",\"sourcesContent\":[\".select2-container {\\n box-sizing: border-box;\\n display: inline-block;\\n margin: 0;\\n position: relative;\\n vertical-align: middle; }\\n .select2-container .select2-selection--single {\\n box-sizing: border-box;\\n cursor: pointer;\\n display: block;\\n height: 28px;\\n user-select: none;\\n -webkit-user-select: none; }\\n .select2-container .select2-selection--single .select2-selection__rendered {\\n display: block;\\n padding-left: 8px;\\n padding-right: 20px;\\n overflow: hidden;\\n text-overflow: ellipsis;\\n white-space: nowrap; }\\n .select2-container .select2-selection--single .select2-selection__clear {\\n position: relative; }\\n .select2-container[dir=\\\"rtl\\\"] .select2-selection--single .select2-selection__rendered {\\n padding-right: 8px;\\n padding-left: 20px; }\\n .select2-container .select2-selection--multiple {\\n box-sizing: border-box;\\n cursor: pointer;\\n display: block;\\n min-height: 32px;\\n user-select: none;\\n -webkit-user-select: none; }\\n .select2-container .select2-selection--multiple .select2-selection__rendered {\\n display: inline-block;\\n overflow: hidden;\\n padding-left: 8px;\\n text-overflow: ellipsis;\\n white-space: nowrap; }\\n .select2-container .select2-search--inline {\\n float: left; }\\n .select2-container .select2-search--inline .select2-search__field {\\n box-sizing: border-box;\\n border: none;\\n font-size: 100%;\\n margin-top: 5px;\\n padding: 0; }\\n .select2-container .select2-search--inline .select2-search__field::-webkit-search-cancel-button {\\n -webkit-appearance: none; }\\n\\n.select2-dropdown {\\n background-color: white;\\n border: 1px solid #aaa;\\n border-radius: 4px;\\n box-sizing: border-box;\\n display: block;\\n position: absolute;\\n left: -100000px;\\n width: 100%;\\n z-index: 1051; }\\n\\n.select2-results {\\n display: block; }\\n\\n.select2-results__options {\\n list-style: none;\\n margin: 0;\\n padding: 0; }\\n\\n.select2-results__option {\\n padding: 6px;\\n user-select: none;\\n -webkit-user-select: none; }\\n .select2-results__option[aria-selected] {\\n cursor: pointer; }\\n\\n.select2-container--open .select2-dropdown {\\n left: 0; }\\n\\n.select2-container--open .select2-dropdown--above {\\n border-bottom: none;\\n border-bottom-left-radius: 0;\\n border-bottom-right-radius: 0; }\\n\\n.select2-container--open .select2-dropdown--below {\\n border-top: none;\\n border-top-left-radius: 0;\\n border-top-right-radius: 0; }\\n\\n.select2-search--dropdown {\\n display: block;\\n padding: 4px; }\\n .select2-search--dropdown .select2-search__field {\\n padding: 4px;\\n width: 100%;\\n box-sizing: border-box; }\\n .select2-search--dropdown .select2-search__field::-webkit-search-cancel-button {\\n -webkit-appearance: none; }\\n .select2-search--dropdown.select2-search--hide {\\n display: none; }\\n\\n.select2-close-mask {\\n border: 0;\\n margin: 0;\\n padding: 0;\\n display: block;\\n position: fixed;\\n left: 0;\\n top: 0;\\n min-height: 100%;\\n min-width: 100%;\\n height: auto;\\n width: auto;\\n opacity: 0;\\n z-index: 99;\\n background-color: #fff;\\n filter: alpha(opacity=0); }\\n\\n.select2-hidden-accessible {\\n border: 0 !important;\\n clip: rect(0 0 0 0) !important;\\n -webkit-clip-path: inset(50%) !important;\\n clip-path: inset(50%) !important;\\n height: 1px !important;\\n overflow: hidden !important;\\n padding: 0 !important;\\n position: absolute !important;\\n width: 1px !important;\\n white-space: nowrap !important; }\\n\\n.select2-container--default .select2-selection--single {\\n background-color: #fff;\\n border: 1px solid #aaa;\\n border-radius: 4px; }\\n .select2-container--default .select2-selection--single .select2-selection__rendered {\\n color: #444;\\n line-height: 28px; }\\n .select2-container--default .select2-selection--single .select2-selection__clear {\\n cursor: pointer;\\n float: right;\\n font-weight: bold; }\\n .select2-container--default .select2-selection--single .select2-selection__placeholder {\\n color: #999; }\\n .select2-container--default .select2-selection--single .select2-selection__arrow {\\n height: 26px;\\n position: absolute;\\n top: 1px;\\n right: 1px;\\n width: 20px; }\\n .select2-container--default .select2-selection--single .select2-selection__arrow b {\\n border-color: #888 transparent transparent transparent;\\n border-style: solid;\\n border-width: 5px 4px 0 4px;\\n height: 0;\\n left: 50%;\\n margin-left: -4px;\\n margin-top: -2px;\\n position: absolute;\\n top: 50%;\\n width: 0; }\\n\\n.select2-container--default[dir=\\\"rtl\\\"] .select2-selection--single .select2-selection__clear {\\n float: left; }\\n\\n.select2-container--default[dir=\\\"rtl\\\"] .select2-selection--single .select2-selection__arrow {\\n left: 1px;\\n right: auto; }\\n\\n.select2-container--default.select2-container--disabled .select2-selection--single {\\n background-color: #eee;\\n cursor: default; }\\n .select2-container--default.select2-container--disabled .select2-selection--single .select2-selection__clear {\\n display: none; }\\n\\n.select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b {\\n border-color: transparent transparent #888 transparent;\\n border-width: 0 4px 5px 4px; }\\n\\n.select2-container--default .select2-selection--multiple {\\n background-color: white;\\n border: 1px solid #aaa;\\n border-radius: 4px;\\n cursor: text; }\\n .select2-container--default .select2-selection--multiple .select2-selection__rendered {\\n box-sizing: border-box;\\n list-style: none;\\n margin: 0;\\n padding: 0 5px;\\n width: 100%; }\\n .select2-container--default .select2-selection--multiple .select2-selection__rendered li {\\n list-style: none; }\\n .select2-container--default .select2-selection--multiple .select2-selection__clear {\\n cursor: pointer;\\n float: right;\\n font-weight: bold;\\n margin-top: 5px;\\n margin-right: 10px;\\n padding: 1px; }\\n .select2-container--default .select2-selection--multiple .select2-selection__choice {\\n background-color: #e4e4e4;\\n border: 1px solid #aaa;\\n border-radius: 4px;\\n cursor: default;\\n float: left;\\n margin-right: 5px;\\n margin-top: 5px;\\n padding: 0 5px; }\\n .select2-container--default .select2-selection--multiple .select2-selection__choice__remove {\\n color: #999;\\n cursor: pointer;\\n display: inline-block;\\n font-weight: bold;\\n margin-right: 2px; }\\n .select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover {\\n color: #333; }\\n\\n.select2-container--default[dir=\\\"rtl\\\"] .select2-selection--multiple .select2-selection__choice, .select2-container--default[dir=\\\"rtl\\\"] .select2-selection--multiple .select2-search--inline {\\n float: right; }\\n\\n.select2-container--default[dir=\\\"rtl\\\"] .select2-selection--multiple .select2-selection__choice {\\n margin-left: 5px;\\n margin-right: auto; }\\n\\n.select2-container--default[dir=\\\"rtl\\\"] .select2-selection--multiple .select2-selection__choice__remove {\\n margin-left: 2px;\\n margin-right: auto; }\\n\\n.select2-container--default.select2-container--focus .select2-selection--multiple {\\n border: solid black 1px;\\n outline: 0; }\\n\\n.select2-container--default.select2-container--disabled .select2-selection--multiple {\\n background-color: #eee;\\n cursor: default; }\\n\\n.select2-container--default.select2-container--disabled .select2-selection__choice__remove {\\n display: none; }\\n\\n.select2-container--default.select2-container--open.select2-container--above .select2-selection--single, .select2-container--default.select2-container--open.select2-container--above .select2-selection--multiple {\\n border-top-left-radius: 0;\\n border-top-right-radius: 0; }\\n\\n.select2-container--default.select2-container--open.select2-container--below .select2-selection--single, .select2-container--default.select2-container--open.select2-container--below .select2-selection--multiple {\\n border-bottom-left-radius: 0;\\n border-bottom-right-radius: 0; }\\n\\n.select2-container--default .select2-search--dropdown .select2-search__field {\\n border: 1px solid #aaa; }\\n\\n.select2-container--default .select2-search--inline .select2-search__field {\\n background: transparent;\\n border: none;\\n outline: 0;\\n box-shadow: none;\\n -webkit-appearance: textfield; }\\n\\n.select2-container--default .select2-results > .select2-results__options {\\n max-height: 200px;\\n overflow-y: auto; }\\n\\n.select2-container--default .select2-results__option[role=group] {\\n padding: 0; }\\n\\n.select2-container--default .select2-results__option[aria-disabled=true] {\\n color: #999; }\\n\\n.select2-container--default .select2-results__option[aria-selected=true] {\\n background-color: #ddd; }\\n\\n.select2-container--default .select2-results__option .select2-results__option {\\n padding-left: 1em; }\\n .select2-container--default .select2-results__option .select2-results__option .select2-results__group {\\n padding-left: 0; }\\n .select2-container--default .select2-results__option .select2-results__option .select2-results__option {\\n margin-left: -1em;\\n padding-left: 2em; }\\n .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option {\\n margin-left: -2em;\\n padding-left: 3em; }\\n .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {\\n margin-left: -3em;\\n padding-left: 4em; }\\n .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {\\n margin-left: -4em;\\n padding-left: 5em; }\\n .select2-container--default .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option .select2-results__option {\\n margin-left: -5em;\\n padding-left: 6em; }\\n\\n.select2-container--default .select2-results__option--highlighted[aria-selected] {\\n background-color: #5897fb;\\n color: white; }\\n\\n.select2-container--default .select2-results__group {\\n cursor: default;\\n display: block;\\n padding: 6px; }\\n\\n.select2-container--classic .select2-selection--single {\\n background-color: #f7f7f7;\\n border: 1px solid #aaa;\\n border-radius: 4px;\\n outline: 0;\\n background-image: -webkit-linear-gradient(top, white 50%, #eeeeee 100%);\\n background-image: -o-linear-gradient(top, white 50%, #eeeeee 100%);\\n background-image: linear-gradient(to bottom, white 50%, #eeeeee 100%);\\n background-repeat: repeat-x;\\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0); }\\n .select2-container--classic .select2-selection--single:focus {\\n border: 1px solid #5897fb; }\\n .select2-container--classic .select2-selection--single .select2-selection__rendered {\\n color: #444;\\n line-height: 28px; }\\n .select2-container--classic .select2-selection--single .select2-selection__clear {\\n cursor: pointer;\\n float: right;\\n font-weight: bold;\\n margin-right: 10px; }\\n .select2-container--classic .select2-selection--single .select2-selection__placeholder {\\n color: #999; }\\n .select2-container--classic .select2-selection--single .select2-selection__arrow {\\n background-color: #ddd;\\n border: none;\\n border-left: 1px solid #aaa;\\n border-top-right-radius: 4px;\\n border-bottom-right-radius: 4px;\\n height: 26px;\\n position: absolute;\\n top: 1px;\\n right: 1px;\\n width: 20px;\\n background-image: -webkit-linear-gradient(top, #eeeeee 50%, #cccccc 100%);\\n background-image: -o-linear-gradient(top, #eeeeee 50%, #cccccc 100%);\\n background-image: linear-gradient(to bottom, #eeeeee 50%, #cccccc 100%);\\n background-repeat: repeat-x;\\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFCCCCCC', GradientType=0); }\\n .select2-container--classic .select2-selection--single .select2-selection__arrow b {\\n border-color: #888 transparent transparent transparent;\\n border-style: solid;\\n border-width: 5px 4px 0 4px;\\n height: 0;\\n left: 50%;\\n margin-left: -4px;\\n margin-top: -2px;\\n position: absolute;\\n top: 50%;\\n width: 0; }\\n\\n.select2-container--classic[dir=\\\"rtl\\\"] .select2-selection--single .select2-selection__clear {\\n float: left; }\\n\\n.select2-container--classic[dir=\\\"rtl\\\"] .select2-selection--single .select2-selection__arrow {\\n border: none;\\n border-right: 1px solid #aaa;\\n border-radius: 0;\\n border-top-left-radius: 4px;\\n border-bottom-left-radius: 4px;\\n left: 1px;\\n right: auto; }\\n\\n.select2-container--classic.select2-container--open .select2-selection--single {\\n border: 1px solid #5897fb; }\\n .select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow {\\n background: transparent;\\n border: none; }\\n .select2-container--classic.select2-container--open .select2-selection--single .select2-selection__arrow b {\\n border-color: transparent transparent #888 transparent;\\n border-width: 0 4px 5px 4px; }\\n\\n.select2-container--classic.select2-container--open.select2-container--above .select2-selection--single {\\n border-top: none;\\n border-top-left-radius: 0;\\n border-top-right-radius: 0;\\n background-image: -webkit-linear-gradient(top, white 0%, #eeeeee 50%);\\n background-image: -o-linear-gradient(top, white 0%, #eeeeee 50%);\\n background-image: linear-gradient(to bottom, white 0%, #eeeeee 50%);\\n background-repeat: repeat-x;\\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFFFFFFF', endColorstr='#FFEEEEEE', GradientType=0); }\\n\\n.select2-container--classic.select2-container--open.select2-container--below .select2-selection--single {\\n border-bottom: none;\\n border-bottom-left-radius: 0;\\n border-bottom-right-radius: 0;\\n background-image: -webkit-linear-gradient(top, #eeeeee 50%, white 100%);\\n background-image: -o-linear-gradient(top, #eeeeee 50%, white 100%);\\n background-image: linear-gradient(to bottom, #eeeeee 50%, white 100%);\\n background-repeat: repeat-x;\\n filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFEEEEEE', endColorstr='#FFFFFFFF', GradientType=0); }\\n\\n.select2-container--classic .select2-selection--multiple {\\n background-color: white;\\n border: 1px solid #aaa;\\n border-radius: 4px;\\n cursor: text;\\n outline: 0; }\\n .select2-container--classic .select2-selection--multiple:focus {\\n border: 1px solid #5897fb; }\\n .select2-container--classic .select2-selection--multiple .select2-selection__rendered {\\n list-style: none;\\n margin: 0;\\n padding: 0 5px; }\\n .select2-container--classic .select2-selection--multiple .select2-selection__clear {\\n display: none; }\\n .select2-container--classic .select2-selection--multiple .select2-selection__choice {\\n background-color: #e4e4e4;\\n border: 1px solid #aaa;\\n border-radius: 4px;\\n cursor: default;\\n float: left;\\n margin-right: 5px;\\n margin-top: 5px;\\n padding: 0 5px; }\\n .select2-container--classic .select2-selection--multiple .select2-selection__choice__remove {\\n color: #888;\\n cursor: pointer;\\n display: inline-block;\\n font-weight: bold;\\n margin-right: 2px; }\\n .select2-container--classic .select2-selection--multiple .select2-selection__choice__remove:hover {\\n color: #555; }\\n\\n.select2-container--classic[dir=\\\"rtl\\\"] .select2-selection--multiple .select2-selection__choice {\\n float: right;\\n margin-left: 5px;\\n margin-right: auto; }\\n\\n.select2-container--classic[dir=\\\"rtl\\\"] .select2-selection--multiple .select2-selection__choice__remove {\\n margin-left: 2px;\\n margin-right: auto; }\\n\\n.select2-container--classic.select2-container--open .select2-selection--multiple {\\n border: 1px solid #5897fb; }\\n\\n.select2-container--classic.select2-container--open.select2-container--above .select2-selection--multiple {\\n border-top: none;\\n border-top-left-radius: 0;\\n border-top-right-radius: 0; }\\n\\n.select2-container--classic.select2-container--open.select2-container--below .select2-selection--multiple {\\n border-bottom: none;\\n border-bottom-left-radius: 0;\\n border-bottom-right-radius: 0; }\\n\\n.select2-container--classic .select2-search--dropdown .select2-search__field {\\n border: 1px solid #aaa;\\n outline: 0; }\\n\\n.select2-container--classic .select2-search--inline .select2-search__field {\\n outline: 0;\\n box-shadow: none; }\\n\\n.select2-container--classic .select2-dropdown {\\n background-color: white;\\n border: 1px solid transparent; }\\n\\n.select2-container--classic .select2-dropdown--above {\\n border-bottom: none; }\\n\\n.select2-container--classic .select2-dropdown--below {\\n border-top: none; }\\n\\n.select2-container--classic .select2-results > .select2-results__options {\\n max-height: 200px;\\n overflow-y: auto; }\\n\\n.select2-container--classic .select2-results__option[role=group] {\\n padding: 0; }\\n\\n.select2-container--classic .select2-results__option[aria-disabled=true] {\\n color: grey; }\\n\\n.select2-container--classic .select2-results__option--highlighted[aria-selected] {\\n background-color: #3875d7;\\n color: white; }\\n\\n.select2-container--classic .select2-results__group {\\n cursor: default;\\n display: block;\\n padding: 6px; }\\n\\n.select2-container--classic.select2-container--open .select2-dropdown {\\n border-color: #5897fb; }\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","/*!\n * Select2 4.0.13\n * https://select2.github.io\n *\n * Released under the MIT license\n * https://github.com/select2/select2/blob/master/LICENSE.md\n */\n;(function (factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(['jquery'], factory);\n } else if (typeof module === 'object' && module.exports) {\n // Node/CommonJS\n module.exports = function (root, jQuery) {\n if (jQuery === undefined) {\n // require('jQuery') returns a factory that requires window to\n // build a jQuery instance, we normalize how we use modules\n // that require this pattern but the window provided is a noop\n // if it's defined (how jquery works)\n if (typeof window !== 'undefined') {\n jQuery = require('jquery');\n }\n else {\n jQuery = require('jquery')(root);\n }\n }\n factory(jQuery);\n return jQuery;\n };\n } else {\n // Browser globals\n factory(jQuery);\n }\n} (function (jQuery) {\n // This is needed so we can catch the AMD loader configuration and use it\n // The inner file should be wrapped (by `banner.start.js`) in a function that\n // returns the AMD loader references.\n var S2 =(function () {\n // Restore the Select2 AMD loader so it can be used\n // Needed mostly in the language files, where the loader is not inserted\n if (jQuery && jQuery.fn && jQuery.fn.select2 && jQuery.fn.select2.amd) {\n var S2 = jQuery.fn.select2.amd;\n }\nvar S2;(function () { if (!S2 || !S2.requirejs) {\nif (!S2) { S2 = {}; } else { require = S2; }\n/**\n * @license almond 0.3.3 Copyright jQuery Foundation and other contributors.\n * Released under MIT license, http://github.com/requirejs/almond/LICENSE\n */\n//Going sloppy to avoid 'use strict' string cost, but strict practices should\n//be followed.\n/*global setTimeout: false */\n\nvar requirejs, require, define;\n(function (undef) {\n var main, req, makeMap, handlers,\n defined = {},\n waiting = {},\n config = {},\n defining = {},\n hasOwn = Object.prototype.hasOwnProperty,\n aps = [].slice,\n jsSuffixRegExp = /\\.js$/;\n\n function hasProp(obj, prop) {\n return hasOwn.call(obj, prop);\n }\n\n /**\n * Given a relative module name, like ./something, normalize it to\n * a real name that can be mapped to a path.\n * @param {String} name the relative name\n * @param {String} baseName a real name that the name arg is relative\n * to.\n * @returns {String} normalized name\n */\n function normalize(name, baseName) {\n var nameParts, nameSegment, mapValue, foundMap, lastIndex,\n foundI, foundStarMap, starI, i, j, part, normalizedBaseParts,\n baseParts = baseName && baseName.split(\"/\"),\n map = config.map,\n starMap = (map && map['*']) || {};\n\n //Adjust any relative paths.\n if (name) {\n name = name.split('/');\n lastIndex = name.length - 1;\n\n // If wanting node ID compatibility, strip .js from end\n // of IDs. Have to do this here, and not in nameToUrl\n // because node allows either .js or non .js to map\n // to same file.\n if (config.nodeIdCompat && jsSuffixRegExp.test(name[lastIndex])) {\n name[lastIndex] = name[lastIndex].replace(jsSuffixRegExp, '');\n }\n\n // Starts with a '.' so need the baseName\n if (name[0].charAt(0) === '.' && baseParts) {\n //Convert baseName to array, and lop off the last part,\n //so that . matches that 'directory' and not name of the baseName's\n //module. For instance, baseName of 'one/two/three', maps to\n //'one/two/three.js', but we want the directory, 'one/two' for\n //this normalization.\n normalizedBaseParts = baseParts.slice(0, baseParts.length - 1);\n name = normalizedBaseParts.concat(name);\n }\n\n //start trimDots\n for (i = 0; i < name.length; i++) {\n part = name[i];\n if (part === '.') {\n name.splice(i, 1);\n i -= 1;\n } else if (part === '..') {\n // If at the start, or previous value is still ..,\n // keep them so that when converted to a path it may\n // still work when converted to a path, even though\n // as an ID it is less than ideal. In larger point\n // releases, may be better to just kick out an error.\n if (i === 0 || (i === 1 && name[2] === '..') || name[i - 1] === '..') {\n continue;\n } else if (i > 0) {\n name.splice(i - 1, 2);\n i -= 2;\n }\n }\n }\n //end trimDots\n\n name = name.join('/');\n }\n\n //Apply map config if available.\n if ((baseParts || starMap) && map) {\n nameParts = name.split('/');\n\n for (i = nameParts.length; i > 0; i -= 1) {\n nameSegment = nameParts.slice(0, i).join(\"/\");\n\n if (baseParts) {\n //Find the longest baseName segment match in the config.\n //So, do joins on the biggest to smallest lengths of baseParts.\n for (j = baseParts.length; j > 0; j -= 1) {\n mapValue = map[baseParts.slice(0, j).join('/')];\n\n //baseName segment has config, find if it has one for\n //this name.\n if (mapValue) {\n mapValue = mapValue[nameSegment];\n if (mapValue) {\n //Match, update name to the new value.\n foundMap = mapValue;\n foundI = i;\n break;\n }\n }\n }\n }\n\n if (foundMap) {\n break;\n }\n\n //Check for a star map match, but just hold on to it,\n //if there is a shorter segment match later in a matching\n //config, then favor over this star map.\n if (!foundStarMap && starMap && starMap[nameSegment]) {\n foundStarMap = starMap[nameSegment];\n starI = i;\n }\n }\n\n if (!foundMap && foundStarMap) {\n foundMap = foundStarMap;\n foundI = starI;\n }\n\n if (foundMap) {\n nameParts.splice(0, foundI, foundMap);\n name = nameParts.join('/');\n }\n }\n\n return name;\n }\n\n function makeRequire(relName, forceSync) {\n return function () {\n //A version of a require function that passes a moduleName\n //value for items that may need to\n //look up paths relative to the moduleName\n var args = aps.call(arguments, 0);\n\n //If first arg is not require('string'), and there is only\n //one arg, it is the array form without a callback. Insert\n //a null so that the following concat is correct.\n if (typeof args[0] !== 'string' && args.length === 1) {\n args.push(null);\n }\n return req.apply(undef, args.concat([relName, forceSync]));\n };\n }\n\n function makeNormalize(relName) {\n return function (name) {\n return normalize(name, relName);\n };\n }\n\n function makeLoad(depName) {\n return function (value) {\n defined[depName] = value;\n };\n }\n\n function callDep(name) {\n if (hasProp(waiting, name)) {\n var args = waiting[name];\n delete waiting[name];\n defining[name] = true;\n main.apply(undef, args);\n }\n\n if (!hasProp(defined, name) && !hasProp(defining, name)) {\n throw new Error('No ' + name);\n }\n return defined[name];\n }\n\n //Turns a plugin!resource to [plugin, resource]\n //with the plugin being undefined if the name\n //did not have a plugin prefix.\n function splitPrefix(name) {\n var prefix,\n index = name ? name.indexOf('!') : -1;\n if (index > -1) {\n prefix = name.substring(0, index);\n name = name.substring(index + 1, name.length);\n }\n return [prefix, name];\n }\n\n //Creates a parts array for a relName where first part is plugin ID,\n //second part is resource ID. Assumes relName has already been normalized.\n function makeRelParts(relName) {\n return relName ? splitPrefix(relName) : [];\n }\n\n /**\n * Makes a name map, normalizing the name, and using a plugin\n * for normalization if necessary. Grabs a ref to plugin\n * too, as an optimization.\n */\n makeMap = function (name, relParts) {\n var plugin,\n parts = splitPrefix(name),\n prefix = parts[0],\n relResourceName = relParts[1];\n\n name = parts[1];\n\n if (prefix) {\n prefix = normalize(prefix, relResourceName);\n plugin = callDep(prefix);\n }\n\n //Normalize according\n if (prefix) {\n if (plugin && plugin.normalize) {\n name = plugin.normalize(name, makeNormalize(relResourceName));\n } else {\n name = normalize(name, relResourceName);\n }\n } else {\n name = normalize(name, relResourceName);\n parts = splitPrefix(name);\n prefix = parts[0];\n name = parts[1];\n if (prefix) {\n plugin = callDep(prefix);\n }\n }\n\n //Using ridiculous property names for space reasons\n return {\n f: prefix ? prefix + '!' + name : name, //fullName\n n: name,\n pr: prefix,\n p: plugin\n };\n };\n\n function makeConfig(name) {\n return function () {\n return (config && config.config && config.config[name]) || {};\n };\n }\n\n handlers = {\n require: function (name) {\n return makeRequire(name);\n },\n exports: function (name) {\n var e = defined[name];\n if (typeof e !== 'undefined') {\n return e;\n } else {\n return (defined[name] = {});\n }\n },\n module: function (name) {\n return {\n id: name,\n uri: '',\n exports: defined[name],\n config: makeConfig(name)\n };\n }\n };\n\n main = function (name, deps, callback, relName) {\n var cjsModule, depName, ret, map, i, relParts,\n args = [],\n callbackType = typeof callback,\n usingExports;\n\n //Use name if no relName\n relName = relName || name;\n relParts = makeRelParts(relName);\n\n //Call the callback to define the module, if necessary.\n if (callbackType === 'undefined' || callbackType === 'function') {\n //Pull out the defined dependencies and pass the ordered\n //values to the callback.\n //Default to [require, exports, module] if no deps\n deps = !deps.length && callback.length ? ['require', 'exports', 'module'] : deps;\n for (i = 0; i < deps.length; i += 1) {\n map = makeMap(deps[i], relParts);\n depName = map.f;\n\n //Fast path CommonJS standard dependencies.\n if (depName === \"require\") {\n args[i] = handlers.require(name);\n } else if (depName === \"exports\") {\n //CommonJS module spec 1.1\n args[i] = handlers.exports(name);\n usingExports = true;\n } else if (depName === \"module\") {\n //CommonJS module spec 1.1\n cjsModule = args[i] = handlers.module(name);\n } else if (hasProp(defined, depName) ||\n hasProp(waiting, depName) ||\n hasProp(defining, depName)) {\n args[i] = callDep(depName);\n } else if (map.p) {\n map.p.load(map.n, makeRequire(relName, true), makeLoad(depName), {});\n args[i] = defined[depName];\n } else {\n throw new Error(name + ' missing ' + depName);\n }\n }\n\n ret = callback ? callback.apply(defined[name], args) : undefined;\n\n if (name) {\n //If setting exports via \"module\" is in play,\n //favor that over return value and exports. After that,\n //favor a non-undefined return value over exports use.\n if (cjsModule && cjsModule.exports !== undef &&\n cjsModule.exports !== defined[name]) {\n defined[name] = cjsModule.exports;\n } else if (ret !== undef || !usingExports) {\n //Use the return value from the function.\n defined[name] = ret;\n }\n }\n } else if (name) {\n //May just be an object definition for the module. Only\n //worry about defining if have a module name.\n defined[name] = callback;\n }\n };\n\n requirejs = require = req = function (deps, callback, relName, forceSync, alt) {\n if (typeof deps === \"string\") {\n if (handlers[deps]) {\n //callback in this case is really relName\n return handlers[deps](callback);\n }\n //Just return the module wanted. In this scenario, the\n //deps arg is the module name, and second arg (if passed)\n //is just the relName.\n //Normalize module name, if it contains . or ..\n return callDep(makeMap(deps, makeRelParts(callback)).f);\n } else if (!deps.splice) {\n //deps is a config object, not an array.\n config = deps;\n if (config.deps) {\n req(config.deps, config.callback);\n }\n if (!callback) {\n return;\n }\n\n if (callback.splice) {\n //callback is an array, which means it is a dependency list.\n //Adjust args if there are dependencies\n deps = callback;\n callback = relName;\n relName = null;\n } else {\n deps = undef;\n }\n }\n\n //Support require(['a'])\n callback = callback || function () {};\n\n //If relName is a function, it is an errback handler,\n //so remove it.\n if (typeof relName === 'function') {\n relName = forceSync;\n forceSync = alt;\n }\n\n //Simulate async callback;\n if (forceSync) {\n main(undef, deps, callback, relName);\n } else {\n //Using a non-zero value because of concern for what old browsers\n //do, and latest browsers \"upgrade\" to 4 if lower value is used:\n //http://www.whatwg.org/specs/web-apps/current-work/multipage/timers.html#dom-windowtimers-settimeout:\n //If want a value immediately, use require('id') instead -- something\n //that works in almond on the global level, but not guaranteed and\n //unlikely to work in other AMD implementations.\n setTimeout(function () {\n main(undef, deps, callback, relName);\n }, 4);\n }\n\n return req;\n };\n\n /**\n * Just drops the config on the floor, but returns req in case\n * the config return value is used.\n */\n req.config = function (cfg) {\n return req(cfg);\n };\n\n /**\n * Expose module registry for debugging and tooling\n */\n requirejs._defined = defined;\n\n define = function (name, deps, callback) {\n if (typeof name !== 'string') {\n throw new Error('See almond README: incorrect module build, no module name');\n }\n\n //This module may not have dependencies\n if (!deps.splice) {\n //deps is not an array, so probably means\n //an object literal or factory function for\n //the value. Adjust args.\n callback = deps;\n deps = [];\n }\n\n if (!hasProp(defined, name) && !hasProp(waiting, name)) {\n waiting[name] = [name, deps, callback];\n }\n };\n\n define.amd = {\n jQuery: true\n };\n}());\n\nS2.requirejs = requirejs;S2.require = require;S2.define = define;\n}\n}());\nS2.define(\"almond\", function(){});\n\n/* global jQuery:false, $:false */\nS2.define('jquery',[],function () {\n var _$ = jQuery || $;\n\n if (_$ == null && console && console.error) {\n console.error(\n 'Select2: An instance of jQuery or a jQuery-compatible library was not ' +\n 'found. Make sure that you are including jQuery before Select2 on your ' +\n 'web page.'\n );\n }\n\n return _$;\n});\n\nS2.define('select2/utils',[\n 'jquery'\n], function ($) {\n var Utils = {};\n\n Utils.Extend = function (ChildClass, SuperClass) {\n var __hasProp = {}.hasOwnProperty;\n\n function BaseConstructor () {\n this.constructor = ChildClass;\n }\n\n for (var key in SuperClass) {\n if (__hasProp.call(SuperClass, key)) {\n ChildClass[key] = SuperClass[key];\n }\n }\n\n BaseConstructor.prototype = SuperClass.prototype;\n ChildClass.prototype = new BaseConstructor();\n ChildClass.__super__ = SuperClass.prototype;\n\n return ChildClass;\n };\n\n function getMethods (theClass) {\n var proto = theClass.prototype;\n\n var methods = [];\n\n for (var methodName in proto) {\n var m = proto[methodName];\n\n if (typeof m !== 'function') {\n continue;\n }\n\n if (methodName === 'constructor') {\n continue;\n }\n\n methods.push(methodName);\n }\n\n return methods;\n }\n\n Utils.Decorate = function (SuperClass, DecoratorClass) {\n var decoratedMethods = getMethods(DecoratorClass);\n var superMethods = getMethods(SuperClass);\n\n function DecoratedClass () {\n var unshift = Array.prototype.unshift;\n\n var argCount = DecoratorClass.prototype.constructor.length;\n\n var calledConstructor = SuperClass.prototype.constructor;\n\n if (argCount > 0) {\n unshift.call(arguments, SuperClass.prototype.constructor);\n\n calledConstructor = DecoratorClass.prototype.constructor;\n }\n\n calledConstructor.apply(this, arguments);\n }\n\n DecoratorClass.displayName = SuperClass.displayName;\n\n function ctr () {\n this.constructor = DecoratedClass;\n }\n\n DecoratedClass.prototype = new ctr();\n\n for (var m = 0; m < superMethods.length; m++) {\n var superMethod = superMethods[m];\n\n DecoratedClass.prototype[superMethod] =\n SuperClass.prototype[superMethod];\n }\n\n var calledMethod = function (methodName) {\n // Stub out the original method if it's not decorating an actual method\n var originalMethod = function () {};\n\n if (methodName in DecoratedClass.prototype) {\n originalMethod = DecoratedClass.prototype[methodName];\n }\n\n var decoratedMethod = DecoratorClass.prototype[methodName];\n\n return function () {\n var unshift = Array.prototype.unshift;\n\n unshift.call(arguments, originalMethod);\n\n return decoratedMethod.apply(this, arguments);\n };\n };\n\n for (var d = 0; d < decoratedMethods.length; d++) {\n var decoratedMethod = decoratedMethods[d];\n\n DecoratedClass.prototype[decoratedMethod] = calledMethod(decoratedMethod);\n }\n\n return DecoratedClass;\n };\n\n var Observable = function () {\n this.listeners = {};\n };\n\n Observable.prototype.on = function (event, callback) {\n this.listeners = this.listeners || {};\n\n if (event in this.listeners) {\n this.listeners[event].push(callback);\n } else {\n this.listeners[event] = [callback];\n }\n };\n\n Observable.prototype.trigger = function (event) {\n var slice = Array.prototype.slice;\n var params = slice.call(arguments, 1);\n\n this.listeners = this.listeners || {};\n\n // Params should always come in as an array\n if (params == null) {\n params = [];\n }\n\n // If there are no arguments to the event, use a temporary object\n if (params.length === 0) {\n params.push({});\n }\n\n // Set the `_type` of the first object to the event\n params[0]._type = event;\n\n if (event in this.listeners) {\n this.invoke(this.listeners[event], slice.call(arguments, 1));\n }\n\n if ('*' in this.listeners) {\n this.invoke(this.listeners['*'], arguments);\n }\n };\n\n Observable.prototype.invoke = function (listeners, params) {\n for (var i = 0, len = listeners.length; i < len; i++) {\n listeners[i].apply(this, params);\n }\n };\n\n Utils.Observable = Observable;\n\n Utils.generateChars = function (length) {\n var chars = '';\n\n for (var i = 0; i < length; i++) {\n var randomChar = Math.floor(Math.random() * 36);\n chars += randomChar.toString(36);\n }\n\n return chars;\n };\n\n Utils.bind = function (func, context) {\n return function () {\n func.apply(context, arguments);\n };\n };\n\n Utils._convertData = function (data) {\n for (var originalKey in data) {\n var keys = originalKey.split('-');\n\n var dataLevel = data;\n\n if (keys.length === 1) {\n continue;\n }\n\n for (var k = 0; k < keys.length; k++) {\n var key = keys[k];\n\n // Lowercase the first letter\n // By default, dash-separated becomes camelCase\n key = key.substring(0, 1).toLowerCase() + key.substring(1);\n\n if (!(key in dataLevel)) {\n dataLevel[key] = {};\n }\n\n if (k == keys.length - 1) {\n dataLevel[key] = data[originalKey];\n }\n\n dataLevel = dataLevel[key];\n }\n\n delete data[originalKey];\n }\n\n return data;\n };\n\n Utils.hasScroll = function (index, el) {\n // Adapted from the function created by @ShadowScripter\n // and adapted by @BillBarry on the Stack Exchange Code Review website.\n // The original code can be found at\n // http://codereview.stackexchange.com/q/13338\n // and was designed to be used with the Sizzle selector engine.\n\n var $el = $(el);\n var overflowX = el.style.overflowX;\n var overflowY = el.style.overflowY;\n\n //Check both x and y declarations\n if (overflowX === overflowY &&\n (overflowY === 'hidden' || overflowY === 'visible')) {\n return false;\n }\n\n if (overflowX === 'scroll' || overflowY === 'scroll') {\n return true;\n }\n\n return ($el.innerHeight() < el.scrollHeight ||\n $el.innerWidth() < el.scrollWidth);\n };\n\n Utils.escapeMarkup = function (markup) {\n var replaceMap = {\n '\\\\': '\',\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n '\\'': ''',\n '/': '/'\n };\n\n // Do not try to escape the markup if it's not a string\n if (typeof markup !== 'string') {\n return markup;\n }\n\n return String(markup).replace(/[&<>\"'\\/\\\\]/g, function (match) {\n return replaceMap[match];\n });\n };\n\n // Append an array of jQuery nodes to a given element.\n Utils.appendMany = function ($element, $nodes) {\n // jQuery 1.7.x does not support $.fn.append() with an array\n // Fall back to a jQuery object collection using $.fn.add()\n if ($.fn.jquery.substr(0, 3) === '1.7') {\n var $jqNodes = $();\n\n $.map($nodes, function (node) {\n $jqNodes = $jqNodes.add(node);\n });\n\n $nodes = $jqNodes;\n }\n\n $element.append($nodes);\n };\n\n // Cache objects in Utils.__cache instead of $.data (see #4346)\n Utils.__cache = {};\n\n var id = 0;\n Utils.GetUniqueElementId = function (element) {\n // Get a unique element Id. If element has no id,\n // creates a new unique number, stores it in the id\n // attribute and returns the new id.\n // If an id already exists, it simply returns it.\n\n var select2Id = element.getAttribute('data-select2-id');\n if (select2Id == null) {\n // If element has id, use it.\n if (element.id) {\n select2Id = element.id;\n element.setAttribute('data-select2-id', select2Id);\n } else {\n element.setAttribute('data-select2-id', ++id);\n select2Id = id.toString();\n }\n }\n return select2Id;\n };\n\n Utils.StoreData = function (element, name, value) {\n // Stores an item in the cache for a specified element.\n // name is the cache key.\n var id = Utils.GetUniqueElementId(element);\n if (!Utils.__cache[id]) {\n Utils.__cache[id] = {};\n }\n\n Utils.__cache[id][name] = value;\n };\n\n Utils.GetData = function (element, name) {\n // Retrieves a value from the cache by its key (name)\n // name is optional. If no name specified, return\n // all cache items for the specified element.\n // and for a specified element.\n var id = Utils.GetUniqueElementId(element);\n if (name) {\n if (Utils.__cache[id]) {\n if (Utils.__cache[id][name] != null) {\n return Utils.__cache[id][name];\n }\n return $(element).data(name); // Fallback to HTML5 data attribs.\n }\n return $(element).data(name); // Fallback to HTML5 data attribs.\n } else {\n return Utils.__cache[id];\n }\n };\n\n Utils.RemoveData = function (element) {\n // Removes all cached items for a specified element.\n var id = Utils.GetUniqueElementId(element);\n if (Utils.__cache[id] != null) {\n delete Utils.__cache[id];\n }\n\n element.removeAttribute('data-select2-id');\n };\n\n return Utils;\n});\n\nS2.define('select2/results',[\n 'jquery',\n './utils'\n], function ($, Utils) {\n function Results ($element, options, dataAdapter) {\n this.$element = $element;\n this.data = dataAdapter;\n this.options = options;\n\n Results.__super__.constructor.call(this);\n }\n\n Utils.Extend(Results, Utils.Observable);\n\n Results.prototype.render = function () {\n var $results = $(\n ''\n );\n\n if (this.options.get('multiple')) {\n $results.attr('aria-multiselectable', 'true');\n }\n\n this.$results = $results;\n\n return $results;\n };\n\n Results.prototype.clear = function () {\n this.$results.empty();\n };\n\n Results.prototype.displayMessage = function (params) {\n var escapeMarkup = this.options.get('escapeMarkup');\n\n this.clear();\n this.hideLoading();\n\n var $message = $(\n '
  • '\n );\n\n var message = this.options.get('translations').get(params.message);\n\n $message.append(\n escapeMarkup(\n message(params.args)\n )\n );\n\n $message[0].className += ' select2-results__message';\n\n this.$results.append($message);\n };\n\n Results.prototype.hideMessages = function () {\n this.$results.find('.select2-results__message').remove();\n };\n\n Results.prototype.append = function (data) {\n this.hideLoading();\n\n var $options = [];\n\n if (data.results == null || data.results.length === 0) {\n if (this.$results.children().length === 0) {\n this.trigger('results:message', {\n message: 'noResults'\n });\n }\n\n return;\n }\n\n data.results = this.sort(data.results);\n\n for (var d = 0; d < data.results.length; d++) {\n var item = data.results[d];\n\n var $option = this.option(item);\n\n $options.push($option);\n }\n\n this.$results.append($options);\n };\n\n Results.prototype.position = function ($results, $dropdown) {\n var $resultsContainer = $dropdown.find('.select2-results');\n $resultsContainer.append($results);\n };\n\n Results.prototype.sort = function (data) {\n var sorter = this.options.get('sorter');\n\n return sorter(data);\n };\n\n Results.prototype.highlightFirstItem = function () {\n var $options = this.$results\n .find('.select2-results__option[aria-selected]');\n\n var $selected = $options.filter('[aria-selected=true]');\n\n // Check if there are any selected options\n if ($selected.length > 0) {\n // If there are selected options, highlight the first\n $selected.first().trigger('mouseenter');\n } else {\n // If there are no selected options, highlight the first option\n // in the dropdown\n $options.first().trigger('mouseenter');\n }\n\n this.ensureHighlightVisible();\n };\n\n Results.prototype.setClasses = function () {\n var self = this;\n\n this.data.current(function (selected) {\n var selectedIds = $.map(selected, function (s) {\n return s.id.toString();\n });\n\n var $options = self.$results\n .find('.select2-results__option[aria-selected]');\n\n $options.each(function () {\n var $option = $(this);\n\n var item = Utils.GetData(this, 'data');\n\n // id needs to be converted to a string when comparing\n var id = '' + item.id;\n\n if ((item.element != null && item.element.selected) ||\n (item.element == null && $.inArray(id, selectedIds) > -1)) {\n $option.attr('aria-selected', 'true');\n } else {\n $option.attr('aria-selected', 'false');\n }\n });\n\n });\n };\n\n Results.prototype.showLoading = function (params) {\n this.hideLoading();\n\n var loadingMore = this.options.get('translations').get('searching');\n\n var loading = {\n disabled: true,\n loading: true,\n text: loadingMore(params)\n };\n var $loading = this.option(loading);\n $loading.className += ' loading-results';\n\n this.$results.prepend($loading);\n };\n\n Results.prototype.hideLoading = function () {\n this.$results.find('.loading-results').remove();\n };\n\n Results.prototype.option = function (data) {\n var option = document.createElement('li');\n option.className = 'select2-results__option';\n\n var attrs = {\n 'role': 'option',\n 'aria-selected': 'false'\n };\n\n var matches = window.Element.prototype.matches ||\n window.Element.prototype.msMatchesSelector ||\n window.Element.prototype.webkitMatchesSelector;\n\n if ((data.element != null && matches.call(data.element, ':disabled')) ||\n (data.element == null && data.disabled)) {\n delete attrs['aria-selected'];\n attrs['aria-disabled'] = 'true';\n }\n\n if (data.id == null) {\n delete attrs['aria-selected'];\n }\n\n if (data._resultId != null) {\n option.id = data._resultId;\n }\n\n if (data.title) {\n option.title = data.title;\n }\n\n if (data.children) {\n attrs.role = 'group';\n attrs['aria-label'] = data.text;\n delete attrs['aria-selected'];\n }\n\n for (var attr in attrs) {\n var val = attrs[attr];\n\n option.setAttribute(attr, val);\n }\n\n if (data.children) {\n var $option = $(option);\n\n var label = document.createElement('strong');\n label.className = 'select2-results__group';\n\n var $label = $(label);\n this.template(data, label);\n\n var $children = [];\n\n for (var c = 0; c < data.children.length; c++) {\n var child = data.children[c];\n\n var $child = this.option(child);\n\n $children.push($child);\n }\n\n var $childrenContainer = $('', {\n 'class': 'select2-results__options select2-results__options--nested'\n });\n\n $childrenContainer.append($children);\n\n $option.append(label);\n $option.append($childrenContainer);\n } else {\n this.template(data, option);\n }\n\n Utils.StoreData(option, 'data', data);\n\n return option;\n };\n\n Results.prototype.bind = function (container, $container) {\n var self = this;\n\n var id = container.id + '-results';\n\n this.$results.attr('id', id);\n\n container.on('results:all', function (params) {\n self.clear();\n self.append(params.data);\n\n if (container.isOpen()) {\n self.setClasses();\n self.highlightFirstItem();\n }\n });\n\n container.on('results:append', function (params) {\n self.append(params.data);\n\n if (container.isOpen()) {\n self.setClasses();\n }\n });\n\n container.on('query', function (params) {\n self.hideMessages();\n self.showLoading(params);\n });\n\n container.on('select', function () {\n if (!container.isOpen()) {\n return;\n }\n\n self.setClasses();\n\n if (self.options.get('scrollAfterSelect')) {\n self.highlightFirstItem();\n }\n });\n\n container.on('unselect', function () {\n if (!container.isOpen()) {\n return;\n }\n\n self.setClasses();\n\n if (self.options.get('scrollAfterSelect')) {\n self.highlightFirstItem();\n }\n });\n\n container.on('open', function () {\n // When the dropdown is open, aria-expended=\"true\"\n self.$results.attr('aria-expanded', 'true');\n self.$results.attr('aria-hidden', 'false');\n\n self.setClasses();\n self.ensureHighlightVisible();\n });\n\n container.on('close', function () {\n // When the dropdown is closed, aria-expended=\"false\"\n self.$results.attr('aria-expanded', 'false');\n self.$results.attr('aria-hidden', 'true');\n self.$results.removeAttr('aria-activedescendant');\n });\n\n container.on('results:toggle', function () {\n var $highlighted = self.getHighlightedResults();\n\n if ($highlighted.length === 0) {\n return;\n }\n\n $highlighted.trigger('mouseup');\n });\n\n container.on('results:select', function () {\n var $highlighted = self.getHighlightedResults();\n\n if ($highlighted.length === 0) {\n return;\n }\n\n var data = Utils.GetData($highlighted[0], 'data');\n\n if ($highlighted.attr('aria-selected') == 'true') {\n self.trigger('close', {});\n } else {\n self.trigger('select', {\n data: data\n });\n }\n });\n\n container.on('results:previous', function () {\n var $highlighted = self.getHighlightedResults();\n\n var $options = self.$results.find('[aria-selected]');\n\n var currentIndex = $options.index($highlighted);\n\n // If we are already at the top, don't move further\n // If no options, currentIndex will be -1\n if (currentIndex <= 0) {\n return;\n }\n\n var nextIndex = currentIndex - 1;\n\n // If none are highlighted, highlight the first\n if ($highlighted.length === 0) {\n nextIndex = 0;\n }\n\n var $next = $options.eq(nextIndex);\n\n $next.trigger('mouseenter');\n\n var currentOffset = self.$results.offset().top;\n var nextTop = $next.offset().top;\n var nextOffset = self.$results.scrollTop() + (nextTop - currentOffset);\n\n if (nextIndex === 0) {\n self.$results.scrollTop(0);\n } else if (nextTop - currentOffset < 0) {\n self.$results.scrollTop(nextOffset);\n }\n });\n\n container.on('results:next', function () {\n var $highlighted = self.getHighlightedResults();\n\n var $options = self.$results.find('[aria-selected]');\n\n var currentIndex = $options.index($highlighted);\n\n var nextIndex = currentIndex + 1;\n\n // If we are at the last option, stay there\n if (nextIndex >= $options.length) {\n return;\n }\n\n var $next = $options.eq(nextIndex);\n\n $next.trigger('mouseenter');\n\n var currentOffset = self.$results.offset().top +\n self.$results.outerHeight(false);\n var nextBottom = $next.offset().top + $next.outerHeight(false);\n var nextOffset = self.$results.scrollTop() + nextBottom - currentOffset;\n\n if (nextIndex === 0) {\n self.$results.scrollTop(0);\n } else if (nextBottom > currentOffset) {\n self.$results.scrollTop(nextOffset);\n }\n });\n\n container.on('results:focus', function (params) {\n params.element.addClass('select2-results__option--highlighted');\n });\n\n container.on('results:message', function (params) {\n self.displayMessage(params);\n });\n\n if ($.fn.mousewheel) {\n this.$results.on('mousewheel', function (e) {\n var top = self.$results.scrollTop();\n\n var bottom = self.$results.get(0).scrollHeight - top + e.deltaY;\n\n var isAtTop = e.deltaY > 0 && top - e.deltaY <= 0;\n var isAtBottom = e.deltaY < 0 && bottom <= self.$results.height();\n\n if (isAtTop) {\n self.$results.scrollTop(0);\n\n e.preventDefault();\n e.stopPropagation();\n } else if (isAtBottom) {\n self.$results.scrollTop(\n self.$results.get(0).scrollHeight - self.$results.height()\n );\n\n e.preventDefault();\n e.stopPropagation();\n }\n });\n }\n\n this.$results.on('mouseup', '.select2-results__option[aria-selected]',\n function (evt) {\n var $this = $(this);\n\n var data = Utils.GetData(this, 'data');\n\n if ($this.attr('aria-selected') === 'true') {\n if (self.options.get('multiple')) {\n self.trigger('unselect', {\n originalEvent: evt,\n data: data\n });\n } else {\n self.trigger('close', {});\n }\n\n return;\n }\n\n self.trigger('select', {\n originalEvent: evt,\n data: data\n });\n });\n\n this.$results.on('mouseenter', '.select2-results__option[aria-selected]',\n function (evt) {\n var data = Utils.GetData(this, 'data');\n\n self.getHighlightedResults()\n .removeClass('select2-results__option--highlighted');\n\n self.trigger('results:focus', {\n data: data,\n element: $(this)\n });\n });\n };\n\n Results.prototype.getHighlightedResults = function () {\n var $highlighted = this.$results\n .find('.select2-results__option--highlighted');\n\n return $highlighted;\n };\n\n Results.prototype.destroy = function () {\n this.$results.remove();\n };\n\n Results.prototype.ensureHighlightVisible = function () {\n var $highlighted = this.getHighlightedResults();\n\n if ($highlighted.length === 0) {\n return;\n }\n\n var $options = this.$results.find('[aria-selected]');\n\n var currentIndex = $options.index($highlighted);\n\n var currentOffset = this.$results.offset().top;\n var nextTop = $highlighted.offset().top;\n var nextOffset = this.$results.scrollTop() + (nextTop - currentOffset);\n\n var offsetDelta = nextTop - currentOffset;\n nextOffset -= $highlighted.outerHeight(false) * 2;\n\n if (currentIndex <= 2) {\n this.$results.scrollTop(0);\n } else if (offsetDelta > this.$results.outerHeight() || offsetDelta < 0) {\n this.$results.scrollTop(nextOffset);\n }\n };\n\n Results.prototype.template = function (result, container) {\n var template = this.options.get('templateResult');\n var escapeMarkup = this.options.get('escapeMarkup');\n\n var content = template(result, container);\n\n if (content == null) {\n container.style.display = 'none';\n } else if (typeof content === 'string') {\n container.innerHTML = escapeMarkup(content);\n } else {\n $(container).append(content);\n }\n };\n\n return Results;\n});\n\nS2.define('select2/keys',[\n\n], function () {\n var KEYS = {\n BACKSPACE: 8,\n TAB: 9,\n ENTER: 13,\n SHIFT: 16,\n CTRL: 17,\n ALT: 18,\n ESC: 27,\n SPACE: 32,\n PAGE_UP: 33,\n PAGE_DOWN: 34,\n END: 35,\n HOME: 36,\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40,\n DELETE: 46\n };\n\n return KEYS;\n});\n\nS2.define('select2/selection/base',[\n 'jquery',\n '../utils',\n '../keys'\n], function ($, Utils, KEYS) {\n function BaseSelection ($element, options) {\n this.$element = $element;\n this.options = options;\n\n BaseSelection.__super__.constructor.call(this);\n }\n\n Utils.Extend(BaseSelection, Utils.Observable);\n\n BaseSelection.prototype.render = function () {\n var $selection = $(\n '' +\n ''\n );\n\n this._tabindex = 0;\n\n if (Utils.GetData(this.$element[0], 'old-tabindex') != null) {\n this._tabindex = Utils.GetData(this.$element[0], 'old-tabindex');\n } else if (this.$element.attr('tabindex') != null) {\n this._tabindex = this.$element.attr('tabindex');\n }\n\n $selection.attr('title', this.$element.attr('title'));\n $selection.attr('tabindex', this._tabindex);\n $selection.attr('aria-disabled', 'false');\n\n this.$selection = $selection;\n\n return $selection;\n };\n\n BaseSelection.prototype.bind = function (container, $container) {\n var self = this;\n\n var resultsId = container.id + '-results';\n\n this.container = container;\n\n this.$selection.on('focus', function (evt) {\n self.trigger('focus', evt);\n });\n\n this.$selection.on('blur', function (evt) {\n self._handleBlur(evt);\n });\n\n this.$selection.on('keydown', function (evt) {\n self.trigger('keypress', evt);\n\n if (evt.which === KEYS.SPACE) {\n evt.preventDefault();\n }\n });\n\n container.on('results:focus', function (params) {\n self.$selection.attr('aria-activedescendant', params.data._resultId);\n });\n\n container.on('selection:update', function (params) {\n self.update(params.data);\n });\n\n container.on('open', function () {\n // When the dropdown is open, aria-expanded=\"true\"\n self.$selection.attr('aria-expanded', 'true');\n self.$selection.attr('aria-owns', resultsId);\n\n self._attachCloseHandler(container);\n });\n\n container.on('close', function () {\n // When the dropdown is closed, aria-expanded=\"false\"\n self.$selection.attr('aria-expanded', 'false');\n self.$selection.removeAttr('aria-activedescendant');\n self.$selection.removeAttr('aria-owns');\n\n self.$selection.trigger('focus');\n\n self._detachCloseHandler(container);\n });\n\n container.on('enable', function () {\n self.$selection.attr('tabindex', self._tabindex);\n self.$selection.attr('aria-disabled', 'false');\n });\n\n container.on('disable', function () {\n self.$selection.attr('tabindex', '-1');\n self.$selection.attr('aria-disabled', 'true');\n });\n };\n\n BaseSelection.prototype._handleBlur = function (evt) {\n var self = this;\n\n // This needs to be delayed as the active element is the body when the tab\n // key is pressed, possibly along with others.\n window.setTimeout(function () {\n // Don't trigger `blur` if the focus is still in the selection\n if (\n (document.activeElement == self.$selection[0]) ||\n ($.contains(self.$selection[0], document.activeElement))\n ) {\n return;\n }\n\n self.trigger('blur', evt);\n }, 1);\n };\n\n BaseSelection.prototype._attachCloseHandler = function (container) {\n\n $(document.body).on('mousedown.select2.' + container.id, function (e) {\n var $target = $(e.target);\n\n var $select = $target.closest('.select2');\n\n var $all = $('.select2.select2-container--open');\n\n $all.each(function () {\n if (this == $select[0]) {\n return;\n }\n\n var $element = Utils.GetData(this, 'element');\n\n $element.select2('close');\n });\n });\n };\n\n BaseSelection.prototype._detachCloseHandler = function (container) {\n $(document.body).off('mousedown.select2.' + container.id);\n };\n\n BaseSelection.prototype.position = function ($selection, $container) {\n var $selectionContainer = $container.find('.selection');\n $selectionContainer.append($selection);\n };\n\n BaseSelection.prototype.destroy = function () {\n this._detachCloseHandler(this.container);\n };\n\n BaseSelection.prototype.update = function (data) {\n throw new Error('The `update` method must be defined in child classes.');\n };\n\n /**\n * Helper method to abstract the \"enabled\" (not \"disabled\") state of this\n * object.\n *\n * @return {true} if the instance is not disabled.\n * @return {false} if the instance is disabled.\n */\n BaseSelection.prototype.isEnabled = function () {\n return !this.isDisabled();\n };\n\n /**\n * Helper method to abstract the \"disabled\" state of this object.\n *\n * @return {true} if the disabled option is true.\n * @return {false} if the disabled option is false.\n */\n BaseSelection.prototype.isDisabled = function () {\n return this.options.get('disabled');\n };\n\n return BaseSelection;\n});\n\nS2.define('select2/selection/single',[\n 'jquery',\n './base',\n '../utils',\n '../keys'\n], function ($, BaseSelection, Utils, KEYS) {\n function SingleSelection () {\n SingleSelection.__super__.constructor.apply(this, arguments);\n }\n\n Utils.Extend(SingleSelection, BaseSelection);\n\n SingleSelection.prototype.render = function () {\n var $selection = SingleSelection.__super__.render.call(this);\n\n $selection.addClass('select2-selection--single');\n\n $selection.html(\n '' +\n '' +\n '' +\n ''\n );\n\n return $selection;\n };\n\n SingleSelection.prototype.bind = function (container, $container) {\n var self = this;\n\n SingleSelection.__super__.bind.apply(this, arguments);\n\n var id = container.id + '-container';\n\n this.$selection.find('.select2-selection__rendered')\n .attr('id', id)\n .attr('role', 'textbox')\n .attr('aria-readonly', 'true');\n this.$selection.attr('aria-labelledby', id);\n\n this.$selection.on('mousedown', function (evt) {\n // Only respond to left clicks\n if (evt.which !== 1) {\n return;\n }\n\n self.trigger('toggle', {\n originalEvent: evt\n });\n });\n\n this.$selection.on('focus', function (evt) {\n // User focuses on the container\n });\n\n this.$selection.on('blur', function (evt) {\n // User exits the container\n });\n\n container.on('focus', function (evt) {\n if (!container.isOpen()) {\n self.$selection.trigger('focus');\n }\n });\n };\n\n SingleSelection.prototype.clear = function () {\n var $rendered = this.$selection.find('.select2-selection__rendered');\n $rendered.empty();\n $rendered.removeAttr('title'); // clear tooltip on empty\n };\n\n SingleSelection.prototype.display = function (data, container) {\n var template = this.options.get('templateSelection');\n var escapeMarkup = this.options.get('escapeMarkup');\n\n return escapeMarkup(template(data, container));\n };\n\n SingleSelection.prototype.selectionContainer = function () {\n return $('');\n };\n\n SingleSelection.prototype.update = function (data) {\n if (data.length === 0) {\n this.clear();\n return;\n }\n\n var selection = data[0];\n\n var $rendered = this.$selection.find('.select2-selection__rendered');\n var formatted = this.display(selection, $rendered);\n\n $rendered.empty().append(formatted);\n\n var title = selection.title || selection.text;\n\n if (title) {\n $rendered.attr('title', title);\n } else {\n $rendered.removeAttr('title');\n }\n };\n\n return SingleSelection;\n});\n\nS2.define('select2/selection/multiple',[\n 'jquery',\n './base',\n '../utils'\n], function ($, BaseSelection, Utils) {\n function MultipleSelection ($element, options) {\n MultipleSelection.__super__.constructor.apply(this, arguments);\n }\n\n Utils.Extend(MultipleSelection, BaseSelection);\n\n MultipleSelection.prototype.render = function () {\n var $selection = MultipleSelection.__super__.render.call(this);\n\n $selection.addClass('select2-selection--multiple');\n\n $selection.html(\n ''\n );\n\n return $selection;\n };\n\n MultipleSelection.prototype.bind = function (container, $container) {\n var self = this;\n\n MultipleSelection.__super__.bind.apply(this, arguments);\n\n this.$selection.on('click', function (evt) {\n self.trigger('toggle', {\n originalEvent: evt\n });\n });\n\n this.$selection.on(\n 'click',\n '.select2-selection__choice__remove',\n function (evt) {\n // Ignore the event if it is disabled\n if (self.isDisabled()) {\n return;\n }\n\n var $remove = $(this);\n var $selection = $remove.parent();\n\n var data = Utils.GetData($selection[0], 'data');\n\n self.trigger('unselect', {\n originalEvent: evt,\n data: data\n });\n }\n );\n };\n\n MultipleSelection.prototype.clear = function () {\n var $rendered = this.$selection.find('.select2-selection__rendered');\n $rendered.empty();\n $rendered.removeAttr('title');\n };\n\n MultipleSelection.prototype.display = function (data, container) {\n var template = this.options.get('templateSelection');\n var escapeMarkup = this.options.get('escapeMarkup');\n\n return escapeMarkup(template(data, container));\n };\n\n MultipleSelection.prototype.selectionContainer = function () {\n var $container = $(\n '
  • ' +\n '' +\n '×' +\n '' +\n '
  • '\n );\n\n return $container;\n };\n\n MultipleSelection.prototype.update = function (data) {\n this.clear();\n\n if (data.length === 0) {\n return;\n }\n\n var $selections = [];\n\n for (var d = 0; d < data.length; d++) {\n var selection = data[d];\n\n var $selection = this.selectionContainer();\n var formatted = this.display(selection, $selection);\n\n $selection.append(formatted);\n\n var title = selection.title || selection.text;\n\n if (title) {\n $selection.attr('title', title);\n }\n\n Utils.StoreData($selection[0], 'data', selection);\n\n $selections.push($selection);\n }\n\n var $rendered = this.$selection.find('.select2-selection__rendered');\n\n Utils.appendMany($rendered, $selections);\n };\n\n return MultipleSelection;\n});\n\nS2.define('select2/selection/placeholder',[\n '../utils'\n], function (Utils) {\n function Placeholder (decorated, $element, options) {\n this.placeholder = this.normalizePlaceholder(options.get('placeholder'));\n\n decorated.call(this, $element, options);\n }\n\n Placeholder.prototype.normalizePlaceholder = function (_, placeholder) {\n if (typeof placeholder === 'string') {\n placeholder = {\n id: '',\n text: placeholder\n };\n }\n\n return placeholder;\n };\n\n Placeholder.prototype.createPlaceholder = function (decorated, placeholder) {\n var $placeholder = this.selectionContainer();\n\n $placeholder.html(this.display(placeholder));\n $placeholder.addClass('select2-selection__placeholder')\n .removeClass('select2-selection__choice');\n\n return $placeholder;\n };\n\n Placeholder.prototype.update = function (decorated, data) {\n var singlePlaceholder = (\n data.length == 1 && data[0].id != this.placeholder.id\n );\n var multipleSelections = data.length > 1;\n\n if (multipleSelections || singlePlaceholder) {\n return decorated.call(this, data);\n }\n\n this.clear();\n\n var $placeholder = this.createPlaceholder(this.placeholder);\n\n this.$selection.find('.select2-selection__rendered').append($placeholder);\n };\n\n return Placeholder;\n});\n\nS2.define('select2/selection/allowClear',[\n 'jquery',\n '../keys',\n '../utils'\n], function ($, KEYS, Utils) {\n function AllowClear () { }\n\n AllowClear.prototype.bind = function (decorated, container, $container) {\n var self = this;\n\n decorated.call(this, container, $container);\n\n if (this.placeholder == null) {\n if (this.options.get('debug') && window.console && console.error) {\n console.error(\n 'Select2: The `allowClear` option should be used in combination ' +\n 'with the `placeholder` option.'\n );\n }\n }\n\n this.$selection.on('mousedown', '.select2-selection__clear',\n function (evt) {\n self._handleClear(evt);\n });\n\n container.on('keypress', function (evt) {\n self._handleKeyboardClear(evt, container);\n });\n };\n\n AllowClear.prototype._handleClear = function (_, evt) {\n // Ignore the event if it is disabled\n if (this.isDisabled()) {\n return;\n }\n\n var $clear = this.$selection.find('.select2-selection__clear');\n\n // Ignore the event if nothing has been selected\n if ($clear.length === 0) {\n return;\n }\n\n evt.stopPropagation();\n\n var data = Utils.GetData($clear[0], 'data');\n\n var previousVal = this.$element.val();\n this.$element.val(this.placeholder.id);\n\n var unselectData = {\n data: data\n };\n this.trigger('clear', unselectData);\n if (unselectData.prevented) {\n this.$element.val(previousVal);\n return;\n }\n\n for (var d = 0; d < data.length; d++) {\n unselectData = {\n data: data[d]\n };\n\n // Trigger the `unselect` event, so people can prevent it from being\n // cleared.\n this.trigger('unselect', unselectData);\n\n // If the event was prevented, don't clear it out.\n if (unselectData.prevented) {\n this.$element.val(previousVal);\n return;\n }\n }\n\n this.$element.trigger('input').trigger('change');\n\n this.trigger('toggle', {});\n };\n\n AllowClear.prototype._handleKeyboardClear = function (_, evt, container) {\n if (container.isOpen()) {\n return;\n }\n\n if (evt.which == KEYS.DELETE || evt.which == KEYS.BACKSPACE) {\n this._handleClear(evt);\n }\n };\n\n AllowClear.prototype.update = function (decorated, data) {\n decorated.call(this, data);\n\n if (this.$selection.find('.select2-selection__placeholder').length > 0 ||\n data.length === 0) {\n return;\n }\n\n var removeAll = this.options.get('translations').get('removeAllItems');\n\n var $remove = $(\n '' +\n '×' +\n ''\n );\n Utils.StoreData($remove[0], 'data', data);\n\n this.$selection.find('.select2-selection__rendered').prepend($remove);\n };\n\n return AllowClear;\n});\n\nS2.define('select2/selection/search',[\n 'jquery',\n '../utils',\n '../keys'\n], function ($, Utils, KEYS) {\n function Search (decorated, $element, options) {\n decorated.call(this, $element, options);\n }\n\n Search.prototype.render = function (decorated) {\n var $search = $(\n ''\n );\n\n this.$searchContainer = $search;\n this.$search = $search.find('input');\n\n var $rendered = decorated.call(this);\n\n this._transferTabIndex();\n\n return $rendered;\n };\n\n Search.prototype.bind = function (decorated, container, $container) {\n var self = this;\n\n var resultsId = container.id + '-results';\n\n decorated.call(this, container, $container);\n\n container.on('open', function () {\n self.$search.attr('aria-controls', resultsId);\n self.$search.trigger('focus');\n });\n\n container.on('close', function () {\n self.$search.val('');\n self.$search.removeAttr('aria-controls');\n self.$search.removeAttr('aria-activedescendant');\n self.$search.trigger('focus');\n });\n\n container.on('enable', function () {\n self.$search.prop('disabled', false);\n\n self._transferTabIndex();\n });\n\n container.on('disable', function () {\n self.$search.prop('disabled', true);\n });\n\n container.on('focus', function (evt) {\n self.$search.trigger('focus');\n });\n\n container.on('results:focus', function (params) {\n if (params.data._resultId) {\n self.$search.attr('aria-activedescendant', params.data._resultId);\n } else {\n self.$search.removeAttr('aria-activedescendant');\n }\n });\n\n this.$selection.on('focusin', '.select2-search--inline', function (evt) {\n self.trigger('focus', evt);\n });\n\n this.$selection.on('focusout', '.select2-search--inline', function (evt) {\n self._handleBlur(evt);\n });\n\n this.$selection.on('keydown', '.select2-search--inline', function (evt) {\n evt.stopPropagation();\n\n self.trigger('keypress', evt);\n\n self._keyUpPrevented = evt.isDefaultPrevented();\n\n var key = evt.which;\n\n if (key === KEYS.BACKSPACE && self.$search.val() === '') {\n var $previousChoice = self.$searchContainer\n .prev('.select2-selection__choice');\n\n if ($previousChoice.length > 0) {\n var item = Utils.GetData($previousChoice[0], 'data');\n\n self.searchRemoveChoice(item);\n\n evt.preventDefault();\n }\n }\n });\n\n this.$selection.on('click', '.select2-search--inline', function (evt) {\n if (self.$search.val()) {\n evt.stopPropagation();\n }\n });\n\n // Try to detect the IE version should the `documentMode` property that\n // is stored on the document. This is only implemented in IE and is\n // slightly cleaner than doing a user agent check.\n // This property is not available in Edge, but Edge also doesn't have\n // this bug.\n var msie = document.documentMode;\n var disableInputEvents = msie && msie <= 11;\n\n // Workaround for browsers which do not support the `input` event\n // This will prevent double-triggering of events for browsers which support\n // both the `keyup` and `input` events.\n this.$selection.on(\n 'input.searchcheck',\n '.select2-search--inline',\n function (evt) {\n // IE will trigger the `input` event when a placeholder is used on a\n // search box. To get around this issue, we are forced to ignore all\n // `input` events in IE and keep using `keyup`.\n if (disableInputEvents) {\n self.$selection.off('input.search input.searchcheck');\n return;\n }\n\n // Unbind the duplicated `keyup` event\n self.$selection.off('keyup.search');\n }\n );\n\n this.$selection.on(\n 'keyup.search input.search',\n '.select2-search--inline',\n function (evt) {\n // IE will trigger the `input` event when a placeholder is used on a\n // search box. To get around this issue, we are forced to ignore all\n // `input` events in IE and keep using `keyup`.\n if (disableInputEvents && evt.type === 'input') {\n self.$selection.off('input.search input.searchcheck');\n return;\n }\n\n var key = evt.which;\n\n // We can freely ignore events from modifier keys\n if (key == KEYS.SHIFT || key == KEYS.CTRL || key == KEYS.ALT) {\n return;\n }\n\n // Tabbing will be handled during the `keydown` phase\n if (key == KEYS.TAB) {\n return;\n }\n\n self.handleSearch(evt);\n }\n );\n };\n\n /**\n * This method will transfer the tabindex attribute from the rendered\n * selection to the search box. This allows for the search box to be used as\n * the primary focus instead of the selection container.\n *\n * @private\n */\n Search.prototype._transferTabIndex = function (decorated) {\n this.$search.attr('tabindex', this.$selection.attr('tabindex'));\n this.$selection.attr('tabindex', '-1');\n };\n\n Search.prototype.createPlaceholder = function (decorated, placeholder) {\n this.$search.attr('placeholder', placeholder.text);\n };\n\n Search.prototype.update = function (decorated, data) {\n var searchHadFocus = this.$search[0] == document.activeElement;\n\n this.$search.attr('placeholder', '');\n\n decorated.call(this, data);\n\n this.$selection.find('.select2-selection__rendered')\n .append(this.$searchContainer);\n\n this.resizeSearch();\n if (searchHadFocus) {\n this.$search.trigger('focus');\n }\n };\n\n Search.prototype.handleSearch = function () {\n this.resizeSearch();\n\n if (!this._keyUpPrevented) {\n var input = this.$search.val();\n\n this.trigger('query', {\n term: input\n });\n }\n\n this._keyUpPrevented = false;\n };\n\n Search.prototype.searchRemoveChoice = function (decorated, item) {\n this.trigger('unselect', {\n data: item\n });\n\n this.$search.val(item.text);\n this.handleSearch();\n };\n\n Search.prototype.resizeSearch = function () {\n this.$search.css('width', '25px');\n\n var width = '';\n\n if (this.$search.attr('placeholder') !== '') {\n width = this.$selection.find('.select2-selection__rendered').width();\n } else {\n var minimumWidth = this.$search.val().length + 1;\n\n width = (minimumWidth * 0.75) + 'em';\n }\n\n this.$search.css('width', width);\n };\n\n return Search;\n});\n\nS2.define('select2/selection/eventRelay',[\n 'jquery'\n], function ($) {\n function EventRelay () { }\n\n EventRelay.prototype.bind = function (decorated, container, $container) {\n var self = this;\n var relayEvents = [\n 'open', 'opening',\n 'close', 'closing',\n 'select', 'selecting',\n 'unselect', 'unselecting',\n 'clear', 'clearing'\n ];\n\n var preventableEvents = [\n 'opening', 'closing', 'selecting', 'unselecting', 'clearing'\n ];\n\n decorated.call(this, container, $container);\n\n container.on('*', function (name, params) {\n // Ignore events that should not be relayed\n if ($.inArray(name, relayEvents) === -1) {\n return;\n }\n\n // The parameters should always be an object\n params = params || {};\n\n // Generate the jQuery event for the Select2 event\n var evt = $.Event('select2:' + name, {\n params: params\n });\n\n self.$element.trigger(evt);\n\n // Only handle preventable events if it was one\n if ($.inArray(name, preventableEvents) === -1) {\n return;\n }\n\n params.prevented = evt.isDefaultPrevented();\n });\n };\n\n return EventRelay;\n});\n\nS2.define('select2/translation',[\n 'jquery',\n 'require'\n], function ($, require) {\n function Translation (dict) {\n this.dict = dict || {};\n }\n\n Translation.prototype.all = function () {\n return this.dict;\n };\n\n Translation.prototype.get = function (key) {\n return this.dict[key];\n };\n\n Translation.prototype.extend = function (translation) {\n this.dict = $.extend({}, translation.all(), this.dict);\n };\n\n // Static functions\n\n Translation._cache = {};\n\n Translation.loadPath = function (path) {\n if (!(path in Translation._cache)) {\n var translations = require(path);\n\n Translation._cache[path] = translations;\n }\n\n return new Translation(Translation._cache[path]);\n };\n\n return Translation;\n});\n\nS2.define('select2/diacritics',[\n\n], function () {\n var diacritics = {\n '\\u24B6': 'A',\n '\\uFF21': 'A',\n '\\u00C0': 'A',\n '\\u00C1': 'A',\n '\\u00C2': 'A',\n '\\u1EA6': 'A',\n '\\u1EA4': 'A',\n '\\u1EAA': 'A',\n '\\u1EA8': 'A',\n '\\u00C3': 'A',\n '\\u0100': 'A',\n '\\u0102': 'A',\n '\\u1EB0': 'A',\n '\\u1EAE': 'A',\n '\\u1EB4': 'A',\n '\\u1EB2': 'A',\n '\\u0226': 'A',\n '\\u01E0': 'A',\n '\\u00C4': 'A',\n '\\u01DE': 'A',\n '\\u1EA2': 'A',\n '\\u00C5': 'A',\n '\\u01FA': 'A',\n '\\u01CD': 'A',\n '\\u0200': 'A',\n '\\u0202': 'A',\n '\\u1EA0': 'A',\n '\\u1EAC': 'A',\n '\\u1EB6': 'A',\n '\\u1E00': 'A',\n '\\u0104': 'A',\n '\\u023A': 'A',\n '\\u2C6F': 'A',\n '\\uA732': 'AA',\n '\\u00C6': 'AE',\n '\\u01FC': 'AE',\n '\\u01E2': 'AE',\n '\\uA734': 'AO',\n '\\uA736': 'AU',\n '\\uA738': 'AV',\n '\\uA73A': 'AV',\n '\\uA73C': 'AY',\n '\\u24B7': 'B',\n '\\uFF22': 'B',\n '\\u1E02': 'B',\n '\\u1E04': 'B',\n '\\u1E06': 'B',\n '\\u0243': 'B',\n '\\u0182': 'B',\n '\\u0181': 'B',\n '\\u24B8': 'C',\n '\\uFF23': 'C',\n '\\u0106': 'C',\n '\\u0108': 'C',\n '\\u010A': 'C',\n '\\u010C': 'C',\n '\\u00C7': 'C',\n '\\u1E08': 'C',\n '\\u0187': 'C',\n '\\u023B': 'C',\n '\\uA73E': 'C',\n '\\u24B9': 'D',\n '\\uFF24': 'D',\n '\\u1E0A': 'D',\n '\\u010E': 'D',\n '\\u1E0C': 'D',\n '\\u1E10': 'D',\n '\\u1E12': 'D',\n '\\u1E0E': 'D',\n '\\u0110': 'D',\n '\\u018B': 'D',\n '\\u018A': 'D',\n '\\u0189': 'D',\n '\\uA779': 'D',\n '\\u01F1': 'DZ',\n '\\u01C4': 'DZ',\n '\\u01F2': 'Dz',\n '\\u01C5': 'Dz',\n '\\u24BA': 'E',\n '\\uFF25': 'E',\n '\\u00C8': 'E',\n '\\u00C9': 'E',\n '\\u00CA': 'E',\n '\\u1EC0': 'E',\n '\\u1EBE': 'E',\n '\\u1EC4': 'E',\n '\\u1EC2': 'E',\n '\\u1EBC': 'E',\n '\\u0112': 'E',\n '\\u1E14': 'E',\n '\\u1E16': 'E',\n '\\u0114': 'E',\n '\\u0116': 'E',\n '\\u00CB': 'E',\n '\\u1EBA': 'E',\n '\\u011A': 'E',\n '\\u0204': 'E',\n '\\u0206': 'E',\n '\\u1EB8': 'E',\n '\\u1EC6': 'E',\n '\\u0228': 'E',\n '\\u1E1C': 'E',\n '\\u0118': 'E',\n '\\u1E18': 'E',\n '\\u1E1A': 'E',\n '\\u0190': 'E',\n '\\u018E': 'E',\n '\\u24BB': 'F',\n '\\uFF26': 'F',\n '\\u1E1E': 'F',\n '\\u0191': 'F',\n '\\uA77B': 'F',\n '\\u24BC': 'G',\n '\\uFF27': 'G',\n '\\u01F4': 'G',\n '\\u011C': 'G',\n '\\u1E20': 'G',\n '\\u011E': 'G',\n '\\u0120': 'G',\n '\\u01E6': 'G',\n '\\u0122': 'G',\n '\\u01E4': 'G',\n '\\u0193': 'G',\n '\\uA7A0': 'G',\n '\\uA77D': 'G',\n '\\uA77E': 'G',\n '\\u24BD': 'H',\n '\\uFF28': 'H',\n '\\u0124': 'H',\n '\\u1E22': 'H',\n '\\u1E26': 'H',\n '\\u021E': 'H',\n '\\u1E24': 'H',\n '\\u1E28': 'H',\n '\\u1E2A': 'H',\n '\\u0126': 'H',\n '\\u2C67': 'H',\n '\\u2C75': 'H',\n '\\uA78D': 'H',\n '\\u24BE': 'I',\n '\\uFF29': 'I',\n '\\u00CC': 'I',\n '\\u00CD': 'I',\n '\\u00CE': 'I',\n '\\u0128': 'I',\n '\\u012A': 'I',\n '\\u012C': 'I',\n '\\u0130': 'I',\n '\\u00CF': 'I',\n '\\u1E2E': 'I',\n '\\u1EC8': 'I',\n '\\u01CF': 'I',\n '\\u0208': 'I',\n '\\u020A': 'I',\n '\\u1ECA': 'I',\n '\\u012E': 'I',\n '\\u1E2C': 'I',\n '\\u0197': 'I',\n '\\u24BF': 'J',\n '\\uFF2A': 'J',\n '\\u0134': 'J',\n '\\u0248': 'J',\n '\\u24C0': 'K',\n '\\uFF2B': 'K',\n '\\u1E30': 'K',\n '\\u01E8': 'K',\n '\\u1E32': 'K',\n '\\u0136': 'K',\n '\\u1E34': 'K',\n '\\u0198': 'K',\n '\\u2C69': 'K',\n '\\uA740': 'K',\n '\\uA742': 'K',\n '\\uA744': 'K',\n '\\uA7A2': 'K',\n '\\u24C1': 'L',\n '\\uFF2C': 'L',\n '\\u013F': 'L',\n '\\u0139': 'L',\n '\\u013D': 'L',\n '\\u1E36': 'L',\n '\\u1E38': 'L',\n '\\u013B': 'L',\n '\\u1E3C': 'L',\n '\\u1E3A': 'L',\n '\\u0141': 'L',\n '\\u023D': 'L',\n '\\u2C62': 'L',\n '\\u2C60': 'L',\n '\\uA748': 'L',\n '\\uA746': 'L',\n '\\uA780': 'L',\n '\\u01C7': 'LJ',\n '\\u01C8': 'Lj',\n '\\u24C2': 'M',\n '\\uFF2D': 'M',\n '\\u1E3E': 'M',\n '\\u1E40': 'M',\n '\\u1E42': 'M',\n '\\u2C6E': 'M',\n '\\u019C': 'M',\n '\\u24C3': 'N',\n '\\uFF2E': 'N',\n '\\u01F8': 'N',\n '\\u0143': 'N',\n '\\u00D1': 'N',\n '\\u1E44': 'N',\n '\\u0147': 'N',\n '\\u1E46': 'N',\n '\\u0145': 'N',\n '\\u1E4A': 'N',\n '\\u1E48': 'N',\n '\\u0220': 'N',\n '\\u019D': 'N',\n '\\uA790': 'N',\n '\\uA7A4': 'N',\n '\\u01CA': 'NJ',\n '\\u01CB': 'Nj',\n '\\u24C4': 'O',\n '\\uFF2F': 'O',\n '\\u00D2': 'O',\n '\\u00D3': 'O',\n '\\u00D4': 'O',\n '\\u1ED2': 'O',\n '\\u1ED0': 'O',\n '\\u1ED6': 'O',\n '\\u1ED4': 'O',\n '\\u00D5': 'O',\n '\\u1E4C': 'O',\n '\\u022C': 'O',\n '\\u1E4E': 'O',\n '\\u014C': 'O',\n '\\u1E50': 'O',\n '\\u1E52': 'O',\n '\\u014E': 'O',\n '\\u022E': 'O',\n '\\u0230': 'O',\n '\\u00D6': 'O',\n '\\u022A': 'O',\n '\\u1ECE': 'O',\n '\\u0150': 'O',\n '\\u01D1': 'O',\n '\\u020C': 'O',\n '\\u020E': 'O',\n '\\u01A0': 'O',\n '\\u1EDC': 'O',\n '\\u1EDA': 'O',\n '\\u1EE0': 'O',\n '\\u1EDE': 'O',\n '\\u1EE2': 'O',\n '\\u1ECC': 'O',\n '\\u1ED8': 'O',\n '\\u01EA': 'O',\n '\\u01EC': 'O',\n '\\u00D8': 'O',\n '\\u01FE': 'O',\n '\\u0186': 'O',\n '\\u019F': 'O',\n '\\uA74A': 'O',\n '\\uA74C': 'O',\n '\\u0152': 'OE',\n '\\u01A2': 'OI',\n '\\uA74E': 'OO',\n '\\u0222': 'OU',\n '\\u24C5': 'P',\n '\\uFF30': 'P',\n '\\u1E54': 'P',\n '\\u1E56': 'P',\n '\\u01A4': 'P',\n '\\u2C63': 'P',\n '\\uA750': 'P',\n '\\uA752': 'P',\n '\\uA754': 'P',\n '\\u24C6': 'Q',\n '\\uFF31': 'Q',\n '\\uA756': 'Q',\n '\\uA758': 'Q',\n '\\u024A': 'Q',\n '\\u24C7': 'R',\n '\\uFF32': 'R',\n '\\u0154': 'R',\n '\\u1E58': 'R',\n '\\u0158': 'R',\n '\\u0210': 'R',\n '\\u0212': 'R',\n '\\u1E5A': 'R',\n '\\u1E5C': 'R',\n '\\u0156': 'R',\n '\\u1E5E': 'R',\n '\\u024C': 'R',\n '\\u2C64': 'R',\n '\\uA75A': 'R',\n '\\uA7A6': 'R',\n '\\uA782': 'R',\n '\\u24C8': 'S',\n '\\uFF33': 'S',\n '\\u1E9E': 'S',\n '\\u015A': 'S',\n '\\u1E64': 'S',\n '\\u015C': 'S',\n '\\u1E60': 'S',\n '\\u0160': 'S',\n '\\u1E66': 'S',\n '\\u1E62': 'S',\n '\\u1E68': 'S',\n '\\u0218': 'S',\n '\\u015E': 'S',\n '\\u2C7E': 'S',\n '\\uA7A8': 'S',\n '\\uA784': 'S',\n '\\u24C9': 'T',\n '\\uFF34': 'T',\n '\\u1E6A': 'T',\n '\\u0164': 'T',\n '\\u1E6C': 'T',\n '\\u021A': 'T',\n '\\u0162': 'T',\n '\\u1E70': 'T',\n '\\u1E6E': 'T',\n '\\u0166': 'T',\n '\\u01AC': 'T',\n '\\u01AE': 'T',\n '\\u023E': 'T',\n '\\uA786': 'T',\n '\\uA728': 'TZ',\n '\\u24CA': 'U',\n '\\uFF35': 'U',\n '\\u00D9': 'U',\n '\\u00DA': 'U',\n '\\u00DB': 'U',\n '\\u0168': 'U',\n '\\u1E78': 'U',\n '\\u016A': 'U',\n '\\u1E7A': 'U',\n '\\u016C': 'U',\n '\\u00DC': 'U',\n '\\u01DB': 'U',\n '\\u01D7': 'U',\n '\\u01D5': 'U',\n '\\u01D9': 'U',\n '\\u1EE6': 'U',\n '\\u016E': 'U',\n '\\u0170': 'U',\n '\\u01D3': 'U',\n '\\u0214': 'U',\n '\\u0216': 'U',\n '\\u01AF': 'U',\n '\\u1EEA': 'U',\n '\\u1EE8': 'U',\n '\\u1EEE': 'U',\n '\\u1EEC': 'U',\n '\\u1EF0': 'U',\n '\\u1EE4': 'U',\n '\\u1E72': 'U',\n '\\u0172': 'U',\n '\\u1E76': 'U',\n '\\u1E74': 'U',\n '\\u0244': 'U',\n '\\u24CB': 'V',\n '\\uFF36': 'V',\n '\\u1E7C': 'V',\n '\\u1E7E': 'V',\n '\\u01B2': 'V',\n '\\uA75E': 'V',\n '\\u0245': 'V',\n '\\uA760': 'VY',\n '\\u24CC': 'W',\n '\\uFF37': 'W',\n '\\u1E80': 'W',\n '\\u1E82': 'W',\n '\\u0174': 'W',\n '\\u1E86': 'W',\n '\\u1E84': 'W',\n '\\u1E88': 'W',\n '\\u2C72': 'W',\n '\\u24CD': 'X',\n '\\uFF38': 'X',\n '\\u1E8A': 'X',\n '\\u1E8C': 'X',\n '\\u24CE': 'Y',\n '\\uFF39': 'Y',\n '\\u1EF2': 'Y',\n '\\u00DD': 'Y',\n '\\u0176': 'Y',\n '\\u1EF8': 'Y',\n '\\u0232': 'Y',\n '\\u1E8E': 'Y',\n '\\u0178': 'Y',\n '\\u1EF6': 'Y',\n '\\u1EF4': 'Y',\n '\\u01B3': 'Y',\n '\\u024E': 'Y',\n '\\u1EFE': 'Y',\n '\\u24CF': 'Z',\n '\\uFF3A': 'Z',\n '\\u0179': 'Z',\n '\\u1E90': 'Z',\n '\\u017B': 'Z',\n '\\u017D': 'Z',\n '\\u1E92': 'Z',\n '\\u1E94': 'Z',\n '\\u01B5': 'Z',\n '\\u0224': 'Z',\n '\\u2C7F': 'Z',\n '\\u2C6B': 'Z',\n '\\uA762': 'Z',\n '\\u24D0': 'a',\n '\\uFF41': 'a',\n '\\u1E9A': 'a',\n '\\u00E0': 'a',\n '\\u00E1': 'a',\n '\\u00E2': 'a',\n '\\u1EA7': 'a',\n '\\u1EA5': 'a',\n '\\u1EAB': 'a',\n '\\u1EA9': 'a',\n '\\u00E3': 'a',\n '\\u0101': 'a',\n '\\u0103': 'a',\n '\\u1EB1': 'a',\n '\\u1EAF': 'a',\n '\\u1EB5': 'a',\n '\\u1EB3': 'a',\n '\\u0227': 'a',\n '\\u01E1': 'a',\n '\\u00E4': 'a',\n '\\u01DF': 'a',\n '\\u1EA3': 'a',\n '\\u00E5': 'a',\n '\\u01FB': 'a',\n '\\u01CE': 'a',\n '\\u0201': 'a',\n '\\u0203': 'a',\n '\\u1EA1': 'a',\n '\\u1EAD': 'a',\n '\\u1EB7': 'a',\n '\\u1E01': 'a',\n '\\u0105': 'a',\n '\\u2C65': 'a',\n '\\u0250': 'a',\n '\\uA733': 'aa',\n '\\u00E6': 'ae',\n '\\u01FD': 'ae',\n '\\u01E3': 'ae',\n '\\uA735': 'ao',\n '\\uA737': 'au',\n '\\uA739': 'av',\n '\\uA73B': 'av',\n '\\uA73D': 'ay',\n '\\u24D1': 'b',\n '\\uFF42': 'b',\n '\\u1E03': 'b',\n '\\u1E05': 'b',\n '\\u1E07': 'b',\n '\\u0180': 'b',\n '\\u0183': 'b',\n '\\u0253': 'b',\n '\\u24D2': 'c',\n '\\uFF43': 'c',\n '\\u0107': 'c',\n '\\u0109': 'c',\n '\\u010B': 'c',\n '\\u010D': 'c',\n '\\u00E7': 'c',\n '\\u1E09': 'c',\n '\\u0188': 'c',\n '\\u023C': 'c',\n '\\uA73F': 'c',\n '\\u2184': 'c',\n '\\u24D3': 'd',\n '\\uFF44': 'd',\n '\\u1E0B': 'd',\n '\\u010F': 'd',\n '\\u1E0D': 'd',\n '\\u1E11': 'd',\n '\\u1E13': 'd',\n '\\u1E0F': 'd',\n '\\u0111': 'd',\n '\\u018C': 'd',\n '\\u0256': 'd',\n '\\u0257': 'd',\n '\\uA77A': 'd',\n '\\u01F3': 'dz',\n '\\u01C6': 'dz',\n '\\u24D4': 'e',\n '\\uFF45': 'e',\n '\\u00E8': 'e',\n '\\u00E9': 'e',\n '\\u00EA': 'e',\n '\\u1EC1': 'e',\n '\\u1EBF': 'e',\n '\\u1EC5': 'e',\n '\\u1EC3': 'e',\n '\\u1EBD': 'e',\n '\\u0113': 'e',\n '\\u1E15': 'e',\n '\\u1E17': 'e',\n '\\u0115': 'e',\n '\\u0117': 'e',\n '\\u00EB': 'e',\n '\\u1EBB': 'e',\n '\\u011B': 'e',\n '\\u0205': 'e',\n '\\u0207': 'e',\n '\\u1EB9': 'e',\n '\\u1EC7': 'e',\n '\\u0229': 'e',\n '\\u1E1D': 'e',\n '\\u0119': 'e',\n '\\u1E19': 'e',\n '\\u1E1B': 'e',\n '\\u0247': 'e',\n '\\u025B': 'e',\n '\\u01DD': 'e',\n '\\u24D5': 'f',\n '\\uFF46': 'f',\n '\\u1E1F': 'f',\n '\\u0192': 'f',\n '\\uA77C': 'f',\n '\\u24D6': 'g',\n '\\uFF47': 'g',\n '\\u01F5': 'g',\n '\\u011D': 'g',\n '\\u1E21': 'g',\n '\\u011F': 'g',\n '\\u0121': 'g',\n '\\u01E7': 'g',\n '\\u0123': 'g',\n '\\u01E5': 'g',\n '\\u0260': 'g',\n '\\uA7A1': 'g',\n '\\u1D79': 'g',\n '\\uA77F': 'g',\n '\\u24D7': 'h',\n '\\uFF48': 'h',\n '\\u0125': 'h',\n '\\u1E23': 'h',\n '\\u1E27': 'h',\n '\\u021F': 'h',\n '\\u1E25': 'h',\n '\\u1E29': 'h',\n '\\u1E2B': 'h',\n '\\u1E96': 'h',\n '\\u0127': 'h',\n '\\u2C68': 'h',\n '\\u2C76': 'h',\n '\\u0265': 'h',\n '\\u0195': 'hv',\n '\\u24D8': 'i',\n '\\uFF49': 'i',\n '\\u00EC': 'i',\n '\\u00ED': 'i',\n '\\u00EE': 'i',\n '\\u0129': 'i',\n '\\u012B': 'i',\n '\\u012D': 'i',\n '\\u00EF': 'i',\n '\\u1E2F': 'i',\n '\\u1EC9': 'i',\n '\\u01D0': 'i',\n '\\u0209': 'i',\n '\\u020B': 'i',\n '\\u1ECB': 'i',\n '\\u012F': 'i',\n '\\u1E2D': 'i',\n '\\u0268': 'i',\n '\\u0131': 'i',\n '\\u24D9': 'j',\n '\\uFF4A': 'j',\n '\\u0135': 'j',\n '\\u01F0': 'j',\n '\\u0249': 'j',\n '\\u24DA': 'k',\n '\\uFF4B': 'k',\n '\\u1E31': 'k',\n '\\u01E9': 'k',\n '\\u1E33': 'k',\n '\\u0137': 'k',\n '\\u1E35': 'k',\n '\\u0199': 'k',\n '\\u2C6A': 'k',\n '\\uA741': 'k',\n '\\uA743': 'k',\n '\\uA745': 'k',\n '\\uA7A3': 'k',\n '\\u24DB': 'l',\n '\\uFF4C': 'l',\n '\\u0140': 'l',\n '\\u013A': 'l',\n '\\u013E': 'l',\n '\\u1E37': 'l',\n '\\u1E39': 'l',\n '\\u013C': 'l',\n '\\u1E3D': 'l',\n '\\u1E3B': 'l',\n '\\u017F': 'l',\n '\\u0142': 'l',\n '\\u019A': 'l',\n '\\u026B': 'l',\n '\\u2C61': 'l',\n '\\uA749': 'l',\n '\\uA781': 'l',\n '\\uA747': 'l',\n '\\u01C9': 'lj',\n '\\u24DC': 'm',\n '\\uFF4D': 'm',\n '\\u1E3F': 'm',\n '\\u1E41': 'm',\n '\\u1E43': 'm',\n '\\u0271': 'm',\n '\\u026F': 'm',\n '\\u24DD': 'n',\n '\\uFF4E': 'n',\n '\\u01F9': 'n',\n '\\u0144': 'n',\n '\\u00F1': 'n',\n '\\u1E45': 'n',\n '\\u0148': 'n',\n '\\u1E47': 'n',\n '\\u0146': 'n',\n '\\u1E4B': 'n',\n '\\u1E49': 'n',\n '\\u019E': 'n',\n '\\u0272': 'n',\n '\\u0149': 'n',\n '\\uA791': 'n',\n '\\uA7A5': 'n',\n '\\u01CC': 'nj',\n '\\u24DE': 'o',\n '\\uFF4F': 'o',\n '\\u00F2': 'o',\n '\\u00F3': 'o',\n '\\u00F4': 'o',\n '\\u1ED3': 'o',\n '\\u1ED1': 'o',\n '\\u1ED7': 'o',\n '\\u1ED5': 'o',\n '\\u00F5': 'o',\n '\\u1E4D': 'o',\n '\\u022D': 'o',\n '\\u1E4F': 'o',\n '\\u014D': 'o',\n '\\u1E51': 'o',\n '\\u1E53': 'o',\n '\\u014F': 'o',\n '\\u022F': 'o',\n '\\u0231': 'o',\n '\\u00F6': 'o',\n '\\u022B': 'o',\n '\\u1ECF': 'o',\n '\\u0151': 'o',\n '\\u01D2': 'o',\n '\\u020D': 'o',\n '\\u020F': 'o',\n '\\u01A1': 'o',\n '\\u1EDD': 'o',\n '\\u1EDB': 'o',\n '\\u1EE1': 'o',\n '\\u1EDF': 'o',\n '\\u1EE3': 'o',\n '\\u1ECD': 'o',\n '\\u1ED9': 'o',\n '\\u01EB': 'o',\n '\\u01ED': 'o',\n '\\u00F8': 'o',\n '\\u01FF': 'o',\n '\\u0254': 'o',\n '\\uA74B': 'o',\n '\\uA74D': 'o',\n '\\u0275': 'o',\n '\\u0153': 'oe',\n '\\u01A3': 'oi',\n '\\u0223': 'ou',\n '\\uA74F': 'oo',\n '\\u24DF': 'p',\n '\\uFF50': 'p',\n '\\u1E55': 'p',\n '\\u1E57': 'p',\n '\\u01A5': 'p',\n '\\u1D7D': 'p',\n '\\uA751': 'p',\n '\\uA753': 'p',\n '\\uA755': 'p',\n '\\u24E0': 'q',\n '\\uFF51': 'q',\n '\\u024B': 'q',\n '\\uA757': 'q',\n '\\uA759': 'q',\n '\\u24E1': 'r',\n '\\uFF52': 'r',\n '\\u0155': 'r',\n '\\u1E59': 'r',\n '\\u0159': 'r',\n '\\u0211': 'r',\n '\\u0213': 'r',\n '\\u1E5B': 'r',\n '\\u1E5D': 'r',\n '\\u0157': 'r',\n '\\u1E5F': 'r',\n '\\u024D': 'r',\n '\\u027D': 'r',\n '\\uA75B': 'r',\n '\\uA7A7': 'r',\n '\\uA783': 'r',\n '\\u24E2': 's',\n '\\uFF53': 's',\n '\\u00DF': 's',\n '\\u015B': 's',\n '\\u1E65': 's',\n '\\u015D': 's',\n '\\u1E61': 's',\n '\\u0161': 's',\n '\\u1E67': 's',\n '\\u1E63': 's',\n '\\u1E69': 's',\n '\\u0219': 's',\n '\\u015F': 's',\n '\\u023F': 's',\n '\\uA7A9': 's',\n '\\uA785': 's',\n '\\u1E9B': 's',\n '\\u24E3': 't',\n '\\uFF54': 't',\n '\\u1E6B': 't',\n '\\u1E97': 't',\n '\\u0165': 't',\n '\\u1E6D': 't',\n '\\u021B': 't',\n '\\u0163': 't',\n '\\u1E71': 't',\n '\\u1E6F': 't',\n '\\u0167': 't',\n '\\u01AD': 't',\n '\\u0288': 't',\n '\\u2C66': 't',\n '\\uA787': 't',\n '\\uA729': 'tz',\n '\\u24E4': 'u',\n '\\uFF55': 'u',\n '\\u00F9': 'u',\n '\\u00FA': 'u',\n '\\u00FB': 'u',\n '\\u0169': 'u',\n '\\u1E79': 'u',\n '\\u016B': 'u',\n '\\u1E7B': 'u',\n '\\u016D': 'u',\n '\\u00FC': 'u',\n '\\u01DC': 'u',\n '\\u01D8': 'u',\n '\\u01D6': 'u',\n '\\u01DA': 'u',\n '\\u1EE7': 'u',\n '\\u016F': 'u',\n '\\u0171': 'u',\n '\\u01D4': 'u',\n '\\u0215': 'u',\n '\\u0217': 'u',\n '\\u01B0': 'u',\n '\\u1EEB': 'u',\n '\\u1EE9': 'u',\n '\\u1EEF': 'u',\n '\\u1EED': 'u',\n '\\u1EF1': 'u',\n '\\u1EE5': 'u',\n '\\u1E73': 'u',\n '\\u0173': 'u',\n '\\u1E77': 'u',\n '\\u1E75': 'u',\n '\\u0289': 'u',\n '\\u24E5': 'v',\n '\\uFF56': 'v',\n '\\u1E7D': 'v',\n '\\u1E7F': 'v',\n '\\u028B': 'v',\n '\\uA75F': 'v',\n '\\u028C': 'v',\n '\\uA761': 'vy',\n '\\u24E6': 'w',\n '\\uFF57': 'w',\n '\\u1E81': 'w',\n '\\u1E83': 'w',\n '\\u0175': 'w',\n '\\u1E87': 'w',\n '\\u1E85': 'w',\n '\\u1E98': 'w',\n '\\u1E89': 'w',\n '\\u2C73': 'w',\n '\\u24E7': 'x',\n '\\uFF58': 'x',\n '\\u1E8B': 'x',\n '\\u1E8D': 'x',\n '\\u24E8': 'y',\n '\\uFF59': 'y',\n '\\u1EF3': 'y',\n '\\u00FD': 'y',\n '\\u0177': 'y',\n '\\u1EF9': 'y',\n '\\u0233': 'y',\n '\\u1E8F': 'y',\n '\\u00FF': 'y',\n '\\u1EF7': 'y',\n '\\u1E99': 'y',\n '\\u1EF5': 'y',\n '\\u01B4': 'y',\n '\\u024F': 'y',\n '\\u1EFF': 'y',\n '\\u24E9': 'z',\n '\\uFF5A': 'z',\n '\\u017A': 'z',\n '\\u1E91': 'z',\n '\\u017C': 'z',\n '\\u017E': 'z',\n '\\u1E93': 'z',\n '\\u1E95': 'z',\n '\\u01B6': 'z',\n '\\u0225': 'z',\n '\\u0240': 'z',\n '\\u2C6C': 'z',\n '\\uA763': 'z',\n '\\u0386': '\\u0391',\n '\\u0388': '\\u0395',\n '\\u0389': '\\u0397',\n '\\u038A': '\\u0399',\n '\\u03AA': '\\u0399',\n '\\u038C': '\\u039F',\n '\\u038E': '\\u03A5',\n '\\u03AB': '\\u03A5',\n '\\u038F': '\\u03A9',\n '\\u03AC': '\\u03B1',\n '\\u03AD': '\\u03B5',\n '\\u03AE': '\\u03B7',\n '\\u03AF': '\\u03B9',\n '\\u03CA': '\\u03B9',\n '\\u0390': '\\u03B9',\n '\\u03CC': '\\u03BF',\n '\\u03CD': '\\u03C5',\n '\\u03CB': '\\u03C5',\n '\\u03B0': '\\u03C5',\n '\\u03CE': '\\u03C9',\n '\\u03C2': '\\u03C3',\n '\\u2019': '\\''\n };\n\n return diacritics;\n});\n\nS2.define('select2/data/base',[\n '../utils'\n], function (Utils) {\n function BaseAdapter ($element, options) {\n BaseAdapter.__super__.constructor.call(this);\n }\n\n Utils.Extend(BaseAdapter, Utils.Observable);\n\n BaseAdapter.prototype.current = function (callback) {\n throw new Error('The `current` method must be defined in child classes.');\n };\n\n BaseAdapter.prototype.query = function (params, callback) {\n throw new Error('The `query` method must be defined in child classes.');\n };\n\n BaseAdapter.prototype.bind = function (container, $container) {\n // Can be implemented in subclasses\n };\n\n BaseAdapter.prototype.destroy = function () {\n // Can be implemented in subclasses\n };\n\n BaseAdapter.prototype.generateResultId = function (container, data) {\n var id = container.id + '-result-';\n\n id += Utils.generateChars(4);\n\n if (data.id != null) {\n id += '-' + data.id.toString();\n } else {\n id += '-' + Utils.generateChars(4);\n }\n return id;\n };\n\n return BaseAdapter;\n});\n\nS2.define('select2/data/select',[\n './base',\n '../utils',\n 'jquery'\n], function (BaseAdapter, Utils, $) {\n function SelectAdapter ($element, options) {\n this.$element = $element;\n this.options = options;\n\n SelectAdapter.__super__.constructor.call(this);\n }\n\n Utils.Extend(SelectAdapter, BaseAdapter);\n\n SelectAdapter.prototype.current = function (callback) {\n var data = [];\n var self = this;\n\n this.$element.find(':selected').each(function () {\n var $option = $(this);\n\n var option = self.item($option);\n\n data.push(option);\n });\n\n callback(data);\n };\n\n SelectAdapter.prototype.select = function (data) {\n var self = this;\n\n data.selected = true;\n\n // If data.element is a DOM node, use it instead\n if ($(data.element).is('option')) {\n data.element.selected = true;\n\n this.$element.trigger('input').trigger('change');\n\n return;\n }\n\n if (this.$element.prop('multiple')) {\n this.current(function (currentData) {\n var val = [];\n\n data = [data];\n data.push.apply(data, currentData);\n\n for (var d = 0; d < data.length; d++) {\n var id = data[d].id;\n\n if ($.inArray(id, val) === -1) {\n val.push(id);\n }\n }\n\n self.$element.val(val);\n self.$element.trigger('input').trigger('change');\n });\n } else {\n var val = data.id;\n\n this.$element.val(val);\n this.$element.trigger('input').trigger('change');\n }\n };\n\n SelectAdapter.prototype.unselect = function (data) {\n var self = this;\n\n if (!this.$element.prop('multiple')) {\n return;\n }\n\n data.selected = false;\n\n if ($(data.element).is('option')) {\n data.element.selected = false;\n\n this.$element.trigger('input').trigger('change');\n\n return;\n }\n\n this.current(function (currentData) {\n var val = [];\n\n for (var d = 0; d < currentData.length; d++) {\n var id = currentData[d].id;\n\n if (id !== data.id && $.inArray(id, val) === -1) {\n val.push(id);\n }\n }\n\n self.$element.val(val);\n\n self.$element.trigger('input').trigger('change');\n });\n };\n\n SelectAdapter.prototype.bind = function (container, $container) {\n var self = this;\n\n this.container = container;\n\n container.on('select', function (params) {\n self.select(params.data);\n });\n\n container.on('unselect', function (params) {\n self.unselect(params.data);\n });\n };\n\n SelectAdapter.prototype.destroy = function () {\n // Remove anything added to child elements\n this.$element.find('*').each(function () {\n // Remove any custom data set by Select2\n Utils.RemoveData(this);\n });\n };\n\n SelectAdapter.prototype.query = function (params, callback) {\n var data = [];\n var self = this;\n\n var $options = this.$element.children();\n\n $options.each(function () {\n var $option = $(this);\n\n if (!$option.is('option') && !$option.is('optgroup')) {\n return;\n }\n\n var option = self.item($option);\n\n var matches = self.matches(params, option);\n\n if (matches !== null) {\n data.push(matches);\n }\n });\n\n callback({\n results: data\n });\n };\n\n SelectAdapter.prototype.addOptions = function ($options) {\n Utils.appendMany(this.$element, $options);\n };\n\n SelectAdapter.prototype.option = function (data) {\n var option;\n\n if (data.children) {\n option = document.createElement('optgroup');\n option.label = data.text;\n } else {\n option = document.createElement('option');\n\n if (option.textContent !== undefined) {\n option.textContent = data.text;\n } else {\n option.innerText = data.text;\n }\n }\n\n if (data.id !== undefined) {\n option.value = data.id;\n }\n\n if (data.disabled) {\n option.disabled = true;\n }\n\n if (data.selected) {\n option.selected = true;\n }\n\n if (data.title) {\n option.title = data.title;\n }\n\n var $option = $(option);\n\n var normalizedData = this._normalizeItem(data);\n normalizedData.element = option;\n\n // Override the option's data with the combined data\n Utils.StoreData(option, 'data', normalizedData);\n\n return $option;\n };\n\n SelectAdapter.prototype.item = function ($option) {\n var data = {};\n\n data = Utils.GetData($option[0], 'data');\n\n if (data != null) {\n return data;\n }\n\n if ($option.is('option')) {\n data = {\n id: $option.val(),\n text: $option.text(),\n disabled: $option.prop('disabled'),\n selected: $option.prop('selected'),\n title: $option.prop('title')\n };\n } else if ($option.is('optgroup')) {\n data = {\n text: $option.prop('label'),\n children: [],\n title: $option.prop('title')\n };\n\n var $children = $option.children('option');\n var children = [];\n\n for (var c = 0; c < $children.length; c++) {\n var $child = $($children[c]);\n\n var child = this.item($child);\n\n children.push(child);\n }\n\n data.children = children;\n }\n\n data = this._normalizeItem(data);\n data.element = $option[0];\n\n Utils.StoreData($option[0], 'data', data);\n\n return data;\n };\n\n SelectAdapter.prototype._normalizeItem = function (item) {\n if (item !== Object(item)) {\n item = {\n id: item,\n text: item\n };\n }\n\n item = $.extend({}, {\n text: ''\n }, item);\n\n var defaults = {\n selected: false,\n disabled: false\n };\n\n if (item.id != null) {\n item.id = item.id.toString();\n }\n\n if (item.text != null) {\n item.text = item.text.toString();\n }\n\n if (item._resultId == null && item.id && this.container != null) {\n item._resultId = this.generateResultId(this.container, item);\n }\n\n return $.extend({}, defaults, item);\n };\n\n SelectAdapter.prototype.matches = function (params, data) {\n var matcher = this.options.get('matcher');\n\n return matcher(params, data);\n };\n\n return SelectAdapter;\n});\n\nS2.define('select2/data/array',[\n './select',\n '../utils',\n 'jquery'\n], function (SelectAdapter, Utils, $) {\n function ArrayAdapter ($element, options) {\n this._dataToConvert = options.get('data') || [];\n\n ArrayAdapter.__super__.constructor.call(this, $element, options);\n }\n\n Utils.Extend(ArrayAdapter, SelectAdapter);\n\n ArrayAdapter.prototype.bind = function (container, $container) {\n ArrayAdapter.__super__.bind.call(this, container, $container);\n\n this.addOptions(this.convertToOptions(this._dataToConvert));\n };\n\n ArrayAdapter.prototype.select = function (data) {\n var $option = this.$element.find('option').filter(function (i, elm) {\n return elm.value == data.id.toString();\n });\n\n if ($option.length === 0) {\n $option = this.option(data);\n\n this.addOptions($option);\n }\n\n ArrayAdapter.__super__.select.call(this, data);\n };\n\n ArrayAdapter.prototype.convertToOptions = function (data) {\n var self = this;\n\n var $existing = this.$element.find('option');\n var existingIds = $existing.map(function () {\n return self.item($(this)).id;\n }).get();\n\n var $options = [];\n\n // Filter out all items except for the one passed in the argument\n function onlyItem (item) {\n return function () {\n return $(this).val() == item.id;\n };\n }\n\n for (var d = 0; d < data.length; d++) {\n var item = this._normalizeItem(data[d]);\n\n // Skip items which were pre-loaded, only merge the data\n if ($.inArray(item.id, existingIds) >= 0) {\n var $existingOption = $existing.filter(onlyItem(item));\n\n var existingData = this.item($existingOption);\n var newData = $.extend(true, {}, item, existingData);\n\n var $newOption = this.option(newData);\n\n $existingOption.replaceWith($newOption);\n\n continue;\n }\n\n var $option = this.option(item);\n\n if (item.children) {\n var $children = this.convertToOptions(item.children);\n\n Utils.appendMany($option, $children);\n }\n\n $options.push($option);\n }\n\n return $options;\n };\n\n return ArrayAdapter;\n});\n\nS2.define('select2/data/ajax',[\n './array',\n '../utils',\n 'jquery'\n], function (ArrayAdapter, Utils, $) {\n function AjaxAdapter ($element, options) {\n this.ajaxOptions = this._applyDefaults(options.get('ajax'));\n\n if (this.ajaxOptions.processResults != null) {\n this.processResults = this.ajaxOptions.processResults;\n }\n\n AjaxAdapter.__super__.constructor.call(this, $element, options);\n }\n\n Utils.Extend(AjaxAdapter, ArrayAdapter);\n\n AjaxAdapter.prototype._applyDefaults = function (options) {\n var defaults = {\n data: function (params) {\n return $.extend({}, params, {\n q: params.term\n });\n },\n transport: function (params, success, failure) {\n var $request = $.ajax(params);\n\n $request.then(success);\n $request.fail(failure);\n\n return $request;\n }\n };\n\n return $.extend({}, defaults, options, true);\n };\n\n AjaxAdapter.prototype.processResults = function (results) {\n return results;\n };\n\n AjaxAdapter.prototype.query = function (params, callback) {\n var matches = [];\n var self = this;\n\n if (this._request != null) {\n // JSONP requests cannot always be aborted\n if ($.isFunction(this._request.abort)) {\n this._request.abort();\n }\n\n this._request = null;\n }\n\n var options = $.extend({\n type: 'GET'\n }, this.ajaxOptions);\n\n if (typeof options.url === 'function') {\n options.url = options.url.call(this.$element, params);\n }\n\n if (typeof options.data === 'function') {\n options.data = options.data.call(this.$element, params);\n }\n\n function request () {\n var $request = options.transport(options, function (data) {\n var results = self.processResults(data, params);\n\n if (self.options.get('debug') && window.console && console.error) {\n // Check to make sure that the response included a `results` key.\n if (!results || !results.results || !$.isArray(results.results)) {\n console.error(\n 'Select2: The AJAX results did not return an array in the ' +\n '`results` key of the response.'\n );\n }\n }\n\n callback(results);\n }, function () {\n // Attempt to detect if a request was aborted\n // Only works if the transport exposes a status property\n if ('status' in $request &&\n ($request.status === 0 || $request.status === '0')) {\n return;\n }\n\n self.trigger('results:message', {\n message: 'errorLoading'\n });\n });\n\n self._request = $request;\n }\n\n if (this.ajaxOptions.delay && params.term != null) {\n if (this._queryTimeout) {\n window.clearTimeout(this._queryTimeout);\n }\n\n this._queryTimeout = window.setTimeout(request, this.ajaxOptions.delay);\n } else {\n request();\n }\n };\n\n return AjaxAdapter;\n});\n\nS2.define('select2/data/tags',[\n 'jquery'\n], function ($) {\n function Tags (decorated, $element, options) {\n var tags = options.get('tags');\n\n var createTag = options.get('createTag');\n\n if (createTag !== undefined) {\n this.createTag = createTag;\n }\n\n var insertTag = options.get('insertTag');\n\n if (insertTag !== undefined) {\n this.insertTag = insertTag;\n }\n\n decorated.call(this, $element, options);\n\n if ($.isArray(tags)) {\n for (var t = 0; t < tags.length; t++) {\n var tag = tags[t];\n var item = this._normalizeItem(tag);\n\n var $option = this.option(item);\n\n this.$element.append($option);\n }\n }\n }\n\n Tags.prototype.query = function (decorated, params, callback) {\n var self = this;\n\n this._removeOldTags();\n\n if (params.term == null || params.page != null) {\n decorated.call(this, params, callback);\n return;\n }\n\n function wrapper (obj, child) {\n var data = obj.results;\n\n for (var i = 0; i < data.length; i++) {\n var option = data[i];\n\n var checkChildren = (\n option.children != null &&\n !wrapper({\n results: option.children\n }, true)\n );\n\n var optionText = (option.text || '').toUpperCase();\n var paramsTerm = (params.term || '').toUpperCase();\n\n var checkText = optionText === paramsTerm;\n\n if (checkText || checkChildren) {\n if (child) {\n return false;\n }\n\n obj.data = data;\n callback(obj);\n\n return;\n }\n }\n\n if (child) {\n return true;\n }\n\n var tag = self.createTag(params);\n\n if (tag != null) {\n var $option = self.option(tag);\n $option.attr('data-select2-tag', true);\n\n self.addOptions([$option]);\n\n self.insertTag(data, tag);\n }\n\n obj.results = data;\n\n callback(obj);\n }\n\n decorated.call(this, params, wrapper);\n };\n\n Tags.prototype.createTag = function (decorated, params) {\n var term = $.trim(params.term);\n\n if (term === '') {\n return null;\n }\n\n return {\n id: term,\n text: term\n };\n };\n\n Tags.prototype.insertTag = function (_, data, tag) {\n data.unshift(tag);\n };\n\n Tags.prototype._removeOldTags = function (_) {\n var $options = this.$element.find('option[data-select2-tag]');\n\n $options.each(function () {\n if (this.selected) {\n return;\n }\n\n $(this).remove();\n });\n };\n\n return Tags;\n});\n\nS2.define('select2/data/tokenizer',[\n 'jquery'\n], function ($) {\n function Tokenizer (decorated, $element, options) {\n var tokenizer = options.get('tokenizer');\n\n if (tokenizer !== undefined) {\n this.tokenizer = tokenizer;\n }\n\n decorated.call(this, $element, options);\n }\n\n Tokenizer.prototype.bind = function (decorated, container, $container) {\n decorated.call(this, container, $container);\n\n this.$search = container.dropdown.$search || container.selection.$search ||\n $container.find('.select2-search__field');\n };\n\n Tokenizer.prototype.query = function (decorated, params, callback) {\n var self = this;\n\n function createAndSelect (data) {\n // Normalize the data object so we can use it for checks\n var item = self._normalizeItem(data);\n\n // Check if the data object already exists as a tag\n // Select it if it doesn't\n var $existingOptions = self.$element.find('option').filter(function () {\n return $(this).val() === item.id;\n });\n\n // If an existing option wasn't found for it, create the option\n if (!$existingOptions.length) {\n var $option = self.option(item);\n $option.attr('data-select2-tag', true);\n\n self._removeOldTags();\n self.addOptions([$option]);\n }\n\n // Select the item, now that we know there is an option for it\n select(item);\n }\n\n function select (data) {\n self.trigger('select', {\n data: data\n });\n }\n\n params.term = params.term || '';\n\n var tokenData = this.tokenizer(params, this.options, createAndSelect);\n\n if (tokenData.term !== params.term) {\n // Replace the search term if we have the search box\n if (this.$search.length) {\n this.$search.val(tokenData.term);\n this.$search.trigger('focus');\n }\n\n params.term = tokenData.term;\n }\n\n decorated.call(this, params, callback);\n };\n\n Tokenizer.prototype.tokenizer = function (_, params, options, callback) {\n var separators = options.get('tokenSeparators') || [];\n var term = params.term;\n var i = 0;\n\n var createTag = this.createTag || function (params) {\n return {\n id: params.term,\n text: params.term\n };\n };\n\n while (i < term.length) {\n var termChar = term[i];\n\n if ($.inArray(termChar, separators) === -1) {\n i++;\n\n continue;\n }\n\n var part = term.substr(0, i);\n var partParams = $.extend({}, params, {\n term: part\n });\n\n var data = createTag(partParams);\n\n if (data == null) {\n i++;\n continue;\n }\n\n callback(data);\n\n // Reset the term to not include the tokenized portion\n term = term.substr(i + 1) || '';\n i = 0;\n }\n\n return {\n term: term\n };\n };\n\n return Tokenizer;\n});\n\nS2.define('select2/data/minimumInputLength',[\n\n], function () {\n function MinimumInputLength (decorated, $e, options) {\n this.minimumInputLength = options.get('minimumInputLength');\n\n decorated.call(this, $e, options);\n }\n\n MinimumInputLength.prototype.query = function (decorated, params, callback) {\n params.term = params.term || '';\n\n if (params.term.length < this.minimumInputLength) {\n this.trigger('results:message', {\n message: 'inputTooShort',\n args: {\n minimum: this.minimumInputLength,\n input: params.term,\n params: params\n }\n });\n\n return;\n }\n\n decorated.call(this, params, callback);\n };\n\n return MinimumInputLength;\n});\n\nS2.define('select2/data/maximumInputLength',[\n\n], function () {\n function MaximumInputLength (decorated, $e, options) {\n this.maximumInputLength = options.get('maximumInputLength');\n\n decorated.call(this, $e, options);\n }\n\n MaximumInputLength.prototype.query = function (decorated, params, callback) {\n params.term = params.term || '';\n\n if (this.maximumInputLength > 0 &&\n params.term.length > this.maximumInputLength) {\n this.trigger('results:message', {\n message: 'inputTooLong',\n args: {\n maximum: this.maximumInputLength,\n input: params.term,\n params: params\n }\n });\n\n return;\n }\n\n decorated.call(this, params, callback);\n };\n\n return MaximumInputLength;\n});\n\nS2.define('select2/data/maximumSelectionLength',[\n\n], function (){\n function MaximumSelectionLength (decorated, $e, options) {\n this.maximumSelectionLength = options.get('maximumSelectionLength');\n\n decorated.call(this, $e, options);\n }\n\n MaximumSelectionLength.prototype.bind =\n function (decorated, container, $container) {\n var self = this;\n\n decorated.call(this, container, $container);\n\n container.on('select', function () {\n self._checkIfMaximumSelected();\n });\n };\n\n MaximumSelectionLength.prototype.query =\n function (decorated, params, callback) {\n var self = this;\n\n this._checkIfMaximumSelected(function () {\n decorated.call(self, params, callback);\n });\n };\n\n MaximumSelectionLength.prototype._checkIfMaximumSelected =\n function (_, successCallback) {\n var self = this;\n\n this.current(function (currentData) {\n var count = currentData != null ? currentData.length : 0;\n if (self.maximumSelectionLength > 0 &&\n count >= self.maximumSelectionLength) {\n self.trigger('results:message', {\n message: 'maximumSelected',\n args: {\n maximum: self.maximumSelectionLength\n }\n });\n return;\n }\n\n if (successCallback) {\n successCallback();\n }\n });\n };\n\n return MaximumSelectionLength;\n});\n\nS2.define('select2/dropdown',[\n 'jquery',\n './utils'\n], function ($, Utils) {\n function Dropdown ($element, options) {\n this.$element = $element;\n this.options = options;\n\n Dropdown.__super__.constructor.call(this);\n }\n\n Utils.Extend(Dropdown, Utils.Observable);\n\n Dropdown.prototype.render = function () {\n var $dropdown = $(\n '' +\n '' +\n ''\n );\n\n $dropdown.attr('dir', this.options.get('dir'));\n\n this.$dropdown = $dropdown;\n\n return $dropdown;\n };\n\n Dropdown.prototype.bind = function () {\n // Should be implemented in subclasses\n };\n\n Dropdown.prototype.position = function ($dropdown, $container) {\n // Should be implemented in subclasses\n };\n\n Dropdown.prototype.destroy = function () {\n // Remove the dropdown from the DOM\n this.$dropdown.remove();\n };\n\n return Dropdown;\n});\n\nS2.define('select2/dropdown/search',[\n 'jquery',\n '../utils'\n], function ($, Utils) {\n function Search () { }\n\n Search.prototype.render = function (decorated) {\n var $rendered = decorated.call(this);\n\n var $search = $(\n '' +\n '' +\n ''\n );\n\n this.$searchContainer = $search;\n this.$search = $search.find('input');\n\n $rendered.prepend($search);\n\n return $rendered;\n };\n\n Search.prototype.bind = function (decorated, container, $container) {\n var self = this;\n\n var resultsId = container.id + '-results';\n\n decorated.call(this, container, $container);\n\n this.$search.on('keydown', function (evt) {\n self.trigger('keypress', evt);\n\n self._keyUpPrevented = evt.isDefaultPrevented();\n });\n\n // Workaround for browsers which do not support the `input` event\n // This will prevent double-triggering of events for browsers which support\n // both the `keyup` and `input` events.\n this.$search.on('input', function (evt) {\n // Unbind the duplicated `keyup` event\n $(this).off('keyup');\n });\n\n this.$search.on('keyup input', function (evt) {\n self.handleSearch(evt);\n });\n\n container.on('open', function () {\n self.$search.attr('tabindex', 0);\n self.$search.attr('aria-controls', resultsId);\n\n self.$search.trigger('focus');\n\n window.setTimeout(function () {\n self.$search.trigger('focus');\n }, 0);\n });\n\n container.on('close', function () {\n self.$search.attr('tabindex', -1);\n self.$search.removeAttr('aria-controls');\n self.$search.removeAttr('aria-activedescendant');\n\n self.$search.val('');\n self.$search.trigger('blur');\n });\n\n container.on('focus', function () {\n if (!container.isOpen()) {\n self.$search.trigger('focus');\n }\n });\n\n container.on('results:all', function (params) {\n if (params.query.term == null || params.query.term === '') {\n var showSearch = self.showSearch(params);\n\n if (showSearch) {\n self.$searchContainer.removeClass('select2-search--hide');\n } else {\n self.$searchContainer.addClass('select2-search--hide');\n }\n }\n });\n\n container.on('results:focus', function (params) {\n if (params.data._resultId) {\n self.$search.attr('aria-activedescendant', params.data._resultId);\n } else {\n self.$search.removeAttr('aria-activedescendant');\n }\n });\n };\n\n Search.prototype.handleSearch = function (evt) {\n if (!this._keyUpPrevented) {\n var input = this.$search.val();\n\n this.trigger('query', {\n term: input\n });\n }\n\n this._keyUpPrevented = false;\n };\n\n Search.prototype.showSearch = function (_, params) {\n return true;\n };\n\n return Search;\n});\n\nS2.define('select2/dropdown/hidePlaceholder',[\n\n], function () {\n function HidePlaceholder (decorated, $element, options, dataAdapter) {\n this.placeholder = this.normalizePlaceholder(options.get('placeholder'));\n\n decorated.call(this, $element, options, dataAdapter);\n }\n\n HidePlaceholder.prototype.append = function (decorated, data) {\n data.results = this.removePlaceholder(data.results);\n\n decorated.call(this, data);\n };\n\n HidePlaceholder.prototype.normalizePlaceholder = function (_, placeholder) {\n if (typeof placeholder === 'string') {\n placeholder = {\n id: '',\n text: placeholder\n };\n }\n\n return placeholder;\n };\n\n HidePlaceholder.prototype.removePlaceholder = function (_, data) {\n var modifiedData = data.slice(0);\n\n for (var d = data.length - 1; d >= 0; d--) {\n var item = data[d];\n\n if (this.placeholder.id === item.id) {\n modifiedData.splice(d, 1);\n }\n }\n\n return modifiedData;\n };\n\n return HidePlaceholder;\n});\n\nS2.define('select2/dropdown/infiniteScroll',[\n 'jquery'\n], function ($) {\n function InfiniteScroll (decorated, $element, options, dataAdapter) {\n this.lastParams = {};\n\n decorated.call(this, $element, options, dataAdapter);\n\n this.$loadingMore = this.createLoadingMore();\n this.loading = false;\n }\n\n InfiniteScroll.prototype.append = function (decorated, data) {\n this.$loadingMore.remove();\n this.loading = false;\n\n decorated.call(this, data);\n\n if (this.showLoadingMore(data)) {\n this.$results.append(this.$loadingMore);\n this.loadMoreIfNeeded();\n }\n };\n\n InfiniteScroll.prototype.bind = function (decorated, container, $container) {\n var self = this;\n\n decorated.call(this, container, $container);\n\n container.on('query', function (params) {\n self.lastParams = params;\n self.loading = true;\n });\n\n container.on('query:append', function (params) {\n self.lastParams = params;\n self.loading = true;\n });\n\n this.$results.on('scroll', this.loadMoreIfNeeded.bind(this));\n };\n\n InfiniteScroll.prototype.loadMoreIfNeeded = function () {\n var isLoadMoreVisible = $.contains(\n document.documentElement,\n this.$loadingMore[0]\n );\n\n if (this.loading || !isLoadMoreVisible) {\n return;\n }\n\n var currentOffset = this.$results.offset().top +\n this.$results.outerHeight(false);\n var loadingMoreOffset = this.$loadingMore.offset().top +\n this.$loadingMore.outerHeight(false);\n\n if (currentOffset + 50 >= loadingMoreOffset) {\n this.loadMore();\n }\n };\n\n InfiniteScroll.prototype.loadMore = function () {\n this.loading = true;\n\n var params = $.extend({}, {page: 1}, this.lastParams);\n\n params.page++;\n\n this.trigger('query:append', params);\n };\n\n InfiniteScroll.prototype.showLoadingMore = function (_, data) {\n return data.pagination && data.pagination.more;\n };\n\n InfiniteScroll.prototype.createLoadingMore = function () {\n var $option = $(\n '
  • '\n );\n\n var message = this.options.get('translations').get('loadingMore');\n\n $option.html(message(this.lastParams));\n\n return $option;\n };\n\n return InfiniteScroll;\n});\n\nS2.define('select2/dropdown/attachBody',[\n 'jquery',\n '../utils'\n], function ($, Utils) {\n function AttachBody (decorated, $element, options) {\n this.$dropdownParent = $(options.get('dropdownParent') || document.body);\n\n decorated.call(this, $element, options);\n }\n\n AttachBody.prototype.bind = function (decorated, container, $container) {\n var self = this;\n\n decorated.call(this, container, $container);\n\n container.on('open', function () {\n self._showDropdown();\n self._attachPositioningHandler(container);\n\n // Must bind after the results handlers to ensure correct sizing\n self._bindContainerResultHandlers(container);\n });\n\n container.on('close', function () {\n self._hideDropdown();\n self._detachPositioningHandler(container);\n });\n\n this.$dropdownContainer.on('mousedown', function (evt) {\n evt.stopPropagation();\n });\n };\n\n AttachBody.prototype.destroy = function (decorated) {\n decorated.call(this);\n\n this.$dropdownContainer.remove();\n };\n\n AttachBody.prototype.position = function (decorated, $dropdown, $container) {\n // Clone all of the container classes\n $dropdown.attr('class', $container.attr('class'));\n\n $dropdown.removeClass('select2');\n $dropdown.addClass('select2-container--open');\n\n $dropdown.css({\n position: 'absolute',\n top: -999999\n });\n\n this.$container = $container;\n };\n\n AttachBody.prototype.render = function (decorated) {\n var $container = $('');\n\n var $dropdown = decorated.call(this);\n $container.append($dropdown);\n\n this.$dropdownContainer = $container;\n\n return $container;\n };\n\n AttachBody.prototype._hideDropdown = function (decorated) {\n this.$dropdownContainer.detach();\n };\n\n AttachBody.prototype._bindContainerResultHandlers =\n function (decorated, container) {\n\n // These should only be bound once\n if (this._containerResultsHandlersBound) {\n return;\n }\n\n var self = this;\n\n container.on('results:all', function () {\n self._positionDropdown();\n self._resizeDropdown();\n });\n\n container.on('results:append', function () {\n self._positionDropdown();\n self._resizeDropdown();\n });\n\n container.on('results:message', function () {\n self._positionDropdown();\n self._resizeDropdown();\n });\n\n container.on('select', function () {\n self._positionDropdown();\n self._resizeDropdown();\n });\n\n container.on('unselect', function () {\n self._positionDropdown();\n self._resizeDropdown();\n });\n\n this._containerResultsHandlersBound = true;\n };\n\n AttachBody.prototype._attachPositioningHandler =\n function (decorated, container) {\n var self = this;\n\n var scrollEvent = 'scroll.select2.' + container.id;\n var resizeEvent = 'resize.select2.' + container.id;\n var orientationEvent = 'orientationchange.select2.' + container.id;\n\n var $watchers = this.$container.parents().filter(Utils.hasScroll);\n $watchers.each(function () {\n Utils.StoreData(this, 'select2-scroll-position', {\n x: $(this).scrollLeft(),\n y: $(this).scrollTop()\n });\n });\n\n $watchers.on(scrollEvent, function (ev) {\n var position = Utils.GetData(this, 'select2-scroll-position');\n $(this).scrollTop(position.y);\n });\n\n $(window).on(scrollEvent + ' ' + resizeEvent + ' ' + orientationEvent,\n function (e) {\n self._positionDropdown();\n self._resizeDropdown();\n });\n };\n\n AttachBody.prototype._detachPositioningHandler =\n function (decorated, container) {\n var scrollEvent = 'scroll.select2.' + container.id;\n var resizeEvent = 'resize.select2.' + container.id;\n var orientationEvent = 'orientationchange.select2.' + container.id;\n\n var $watchers = this.$container.parents().filter(Utils.hasScroll);\n $watchers.off(scrollEvent);\n\n $(window).off(scrollEvent + ' ' + resizeEvent + ' ' + orientationEvent);\n };\n\n AttachBody.prototype._positionDropdown = function () {\n var $window = $(window);\n\n var isCurrentlyAbove = this.$dropdown.hasClass('select2-dropdown--above');\n var isCurrentlyBelow = this.$dropdown.hasClass('select2-dropdown--below');\n\n var newDirection = null;\n\n var offset = this.$container.offset();\n\n offset.bottom = offset.top + this.$container.outerHeight(false);\n\n var container = {\n height: this.$container.outerHeight(false)\n };\n\n container.top = offset.top;\n container.bottom = offset.top + container.height;\n\n var dropdown = {\n height: this.$dropdown.outerHeight(false)\n };\n\n var viewport = {\n top: $window.scrollTop(),\n bottom: $window.scrollTop() + $window.height()\n };\n\n var enoughRoomAbove = viewport.top < (offset.top - dropdown.height);\n var enoughRoomBelow = viewport.bottom > (offset.bottom + dropdown.height);\n\n var css = {\n left: offset.left,\n top: container.bottom\n };\n\n // Determine what the parent element is to use for calculating the offset\n var $offsetParent = this.$dropdownParent;\n\n // For statically positioned elements, we need to get the element\n // that is determining the offset\n if ($offsetParent.css('position') === 'static') {\n $offsetParent = $offsetParent.offsetParent();\n }\n\n var parentOffset = {\n top: 0,\n left: 0\n };\n\n if (\n $.contains(document.body, $offsetParent[0]) ||\n $offsetParent[0].isConnected\n ) {\n parentOffset = $offsetParent.offset();\n }\n\n css.top -= parentOffset.top;\n css.left -= parentOffset.left;\n\n if (!isCurrentlyAbove && !isCurrentlyBelow) {\n newDirection = 'below';\n }\n\n if (!enoughRoomBelow && enoughRoomAbove && !isCurrentlyAbove) {\n newDirection = 'above';\n } else if (!enoughRoomAbove && enoughRoomBelow && isCurrentlyAbove) {\n newDirection = 'below';\n }\n\n if (newDirection == 'above' ||\n (isCurrentlyAbove && newDirection !== 'below')) {\n css.top = container.top - parentOffset.top - dropdown.height;\n }\n\n if (newDirection != null) {\n this.$dropdown\n .removeClass('select2-dropdown--below select2-dropdown--above')\n .addClass('select2-dropdown--' + newDirection);\n this.$container\n .removeClass('select2-container--below select2-container--above')\n .addClass('select2-container--' + newDirection);\n }\n\n this.$dropdownContainer.css(css);\n };\n\n AttachBody.prototype._resizeDropdown = function () {\n var css = {\n width: this.$container.outerWidth(false) + 'px'\n };\n\n if (this.options.get('dropdownAutoWidth')) {\n css.minWidth = css.width;\n css.position = 'relative';\n css.width = 'auto';\n }\n\n this.$dropdown.css(css);\n };\n\n AttachBody.prototype._showDropdown = function (decorated) {\n this.$dropdownContainer.appendTo(this.$dropdownParent);\n\n this._positionDropdown();\n this._resizeDropdown();\n };\n\n return AttachBody;\n});\n\nS2.define('select2/dropdown/minimumResultsForSearch',[\n\n], function () {\n function countResults (data) {\n var count = 0;\n\n for (var d = 0; d < data.length; d++) {\n var item = data[d];\n\n if (item.children) {\n count += countResults(item.children);\n } else {\n count++;\n }\n }\n\n return count;\n }\n\n function MinimumResultsForSearch (decorated, $element, options, dataAdapter) {\n this.minimumResultsForSearch = options.get('minimumResultsForSearch');\n\n if (this.minimumResultsForSearch < 0) {\n this.minimumResultsForSearch = Infinity;\n }\n\n decorated.call(this, $element, options, dataAdapter);\n }\n\n MinimumResultsForSearch.prototype.showSearch = function (decorated, params) {\n if (countResults(params.data.results) < this.minimumResultsForSearch) {\n return false;\n }\n\n return decorated.call(this, params);\n };\n\n return MinimumResultsForSearch;\n});\n\nS2.define('select2/dropdown/selectOnClose',[\n '../utils'\n], function (Utils) {\n function SelectOnClose () { }\n\n SelectOnClose.prototype.bind = function (decorated, container, $container) {\n var self = this;\n\n decorated.call(this, container, $container);\n\n container.on('close', function (params) {\n self._handleSelectOnClose(params);\n });\n };\n\n SelectOnClose.prototype._handleSelectOnClose = function (_, params) {\n if (params && params.originalSelect2Event != null) {\n var event = params.originalSelect2Event;\n\n // Don't select an item if the close event was triggered from a select or\n // unselect event\n if (event._type === 'select' || event._type === 'unselect') {\n return;\n }\n }\n\n var $highlightedResults = this.getHighlightedResults();\n\n // Only select highlighted results\n if ($highlightedResults.length < 1) {\n return;\n }\n\n var data = Utils.GetData($highlightedResults[0], 'data');\n\n // Don't re-select already selected resulte\n if (\n (data.element != null && data.element.selected) ||\n (data.element == null && data.selected)\n ) {\n return;\n }\n\n this.trigger('select', {\n data: data\n });\n };\n\n return SelectOnClose;\n});\n\nS2.define('select2/dropdown/closeOnSelect',[\n\n], function () {\n function CloseOnSelect () { }\n\n CloseOnSelect.prototype.bind = function (decorated, container, $container) {\n var self = this;\n\n decorated.call(this, container, $container);\n\n container.on('select', function (evt) {\n self._selectTriggered(evt);\n });\n\n container.on('unselect', function (evt) {\n self._selectTriggered(evt);\n });\n };\n\n CloseOnSelect.prototype._selectTriggered = function (_, evt) {\n var originalEvent = evt.originalEvent;\n\n // Don't close if the control key is being held\n if (originalEvent && (originalEvent.ctrlKey || originalEvent.metaKey)) {\n return;\n }\n\n this.trigger('close', {\n originalEvent: originalEvent,\n originalSelect2Event: evt\n });\n };\n\n return CloseOnSelect;\n});\n\nS2.define('select2/i18n/en',[],function () {\n // English\n return {\n errorLoading: function () {\n return 'The results could not be loaded.';\n },\n inputTooLong: function (args) {\n var overChars = args.input.length - args.maximum;\n\n var message = 'Please delete ' + overChars + ' character';\n\n if (overChars != 1) {\n message += 's';\n }\n\n return message;\n },\n inputTooShort: function (args) {\n var remainingChars = args.minimum - args.input.length;\n\n var message = 'Please enter ' + remainingChars + ' or more characters';\n\n return message;\n },\n loadingMore: function () {\n return 'Loading more results…';\n },\n maximumSelected: function (args) {\n var message = 'You can only select ' + args.maximum + ' item';\n\n if (args.maximum != 1) {\n message += 's';\n }\n\n return message;\n },\n noResults: function () {\n return 'No results found';\n },\n searching: function () {\n return 'Searching…';\n },\n removeAllItems: function () {\n return 'Remove all items';\n }\n };\n});\n\nS2.define('select2/defaults',[\n 'jquery',\n 'require',\n\n './results',\n\n './selection/single',\n './selection/multiple',\n './selection/placeholder',\n './selection/allowClear',\n './selection/search',\n './selection/eventRelay',\n\n './utils',\n './translation',\n './diacritics',\n\n './data/select',\n './data/array',\n './data/ajax',\n './data/tags',\n './data/tokenizer',\n './data/minimumInputLength',\n './data/maximumInputLength',\n './data/maximumSelectionLength',\n\n './dropdown',\n './dropdown/search',\n './dropdown/hidePlaceholder',\n './dropdown/infiniteScroll',\n './dropdown/attachBody',\n './dropdown/minimumResultsForSearch',\n './dropdown/selectOnClose',\n './dropdown/closeOnSelect',\n\n './i18n/en'\n], function ($, require,\n\n ResultsList,\n\n SingleSelection, MultipleSelection, Placeholder, AllowClear,\n SelectionSearch, EventRelay,\n\n Utils, Translation, DIACRITICS,\n\n SelectData, ArrayData, AjaxData, Tags, Tokenizer,\n MinimumInputLength, MaximumInputLength, MaximumSelectionLength,\n\n Dropdown, DropdownSearch, HidePlaceholder, InfiniteScroll,\n AttachBody, MinimumResultsForSearch, SelectOnClose, CloseOnSelect,\n\n EnglishTranslation) {\n function Defaults () {\n this.reset();\n }\n\n Defaults.prototype.apply = function (options) {\n options = $.extend(true, {}, this.defaults, options);\n\n if (options.dataAdapter == null) {\n if (options.ajax != null) {\n options.dataAdapter = AjaxData;\n } else if (options.data != null) {\n options.dataAdapter = ArrayData;\n } else {\n options.dataAdapter = SelectData;\n }\n\n if (options.minimumInputLength > 0) {\n options.dataAdapter = Utils.Decorate(\n options.dataAdapter,\n MinimumInputLength\n );\n }\n\n if (options.maximumInputLength > 0) {\n options.dataAdapter = Utils.Decorate(\n options.dataAdapter,\n MaximumInputLength\n );\n }\n\n if (options.maximumSelectionLength > 0) {\n options.dataAdapter = Utils.Decorate(\n options.dataAdapter,\n MaximumSelectionLength\n );\n }\n\n if (options.tags) {\n options.dataAdapter = Utils.Decorate(options.dataAdapter, Tags);\n }\n\n if (options.tokenSeparators != null || options.tokenizer != null) {\n options.dataAdapter = Utils.Decorate(\n options.dataAdapter,\n Tokenizer\n );\n }\n\n if (options.query != null) {\n var Query = require(options.amdBase + 'compat/query');\n\n options.dataAdapter = Utils.Decorate(\n options.dataAdapter,\n Query\n );\n }\n\n if (options.initSelection != null) {\n var InitSelection = require(options.amdBase + 'compat/initSelection');\n\n options.dataAdapter = Utils.Decorate(\n options.dataAdapter,\n InitSelection\n );\n }\n }\n\n if (options.resultsAdapter == null) {\n options.resultsAdapter = ResultsList;\n\n if (options.ajax != null) {\n options.resultsAdapter = Utils.Decorate(\n options.resultsAdapter,\n InfiniteScroll\n );\n }\n\n if (options.placeholder != null) {\n options.resultsAdapter = Utils.Decorate(\n options.resultsAdapter,\n HidePlaceholder\n );\n }\n\n if (options.selectOnClose) {\n options.resultsAdapter = Utils.Decorate(\n options.resultsAdapter,\n SelectOnClose\n );\n }\n }\n\n if (options.dropdownAdapter == null) {\n if (options.multiple) {\n options.dropdownAdapter = Dropdown;\n } else {\n var SearchableDropdown = Utils.Decorate(Dropdown, DropdownSearch);\n\n options.dropdownAdapter = SearchableDropdown;\n }\n\n if (options.minimumResultsForSearch !== 0) {\n options.dropdownAdapter = Utils.Decorate(\n options.dropdownAdapter,\n MinimumResultsForSearch\n );\n }\n\n if (options.closeOnSelect) {\n options.dropdownAdapter = Utils.Decorate(\n options.dropdownAdapter,\n CloseOnSelect\n );\n }\n\n if (\n options.dropdownCssClass != null ||\n options.dropdownCss != null ||\n options.adaptDropdownCssClass != null\n ) {\n var DropdownCSS = require(options.amdBase + 'compat/dropdownCss');\n\n options.dropdownAdapter = Utils.Decorate(\n options.dropdownAdapter,\n DropdownCSS\n );\n }\n\n options.dropdownAdapter = Utils.Decorate(\n options.dropdownAdapter,\n AttachBody\n );\n }\n\n if (options.selectionAdapter == null) {\n if (options.multiple) {\n options.selectionAdapter = MultipleSelection;\n } else {\n options.selectionAdapter = SingleSelection;\n }\n\n // Add the placeholder mixin if a placeholder was specified\n if (options.placeholder != null) {\n options.selectionAdapter = Utils.Decorate(\n options.selectionAdapter,\n Placeholder\n );\n }\n\n if (options.allowClear) {\n options.selectionAdapter = Utils.Decorate(\n options.selectionAdapter,\n AllowClear\n );\n }\n\n if (options.multiple) {\n options.selectionAdapter = Utils.Decorate(\n options.selectionAdapter,\n SelectionSearch\n );\n }\n\n if (\n options.containerCssClass != null ||\n options.containerCss != null ||\n options.adaptContainerCssClass != null\n ) {\n var ContainerCSS = require(options.amdBase + 'compat/containerCss');\n\n options.selectionAdapter = Utils.Decorate(\n options.selectionAdapter,\n ContainerCSS\n );\n }\n\n options.selectionAdapter = Utils.Decorate(\n options.selectionAdapter,\n EventRelay\n );\n }\n\n // If the defaults were not previously applied from an element, it is\n // possible for the language option to have not been resolved\n options.language = this._resolveLanguage(options.language);\n\n // Always fall back to English since it will always be complete\n options.language.push('en');\n\n var uniqueLanguages = [];\n\n for (var l = 0; l < options.language.length; l++) {\n var language = options.language[l];\n\n if (uniqueLanguages.indexOf(language) === -1) {\n uniqueLanguages.push(language);\n }\n }\n\n options.language = uniqueLanguages;\n\n options.translations = this._processTranslations(\n options.language,\n options.debug\n );\n\n return options;\n };\n\n Defaults.prototype.reset = function () {\n function stripDiacritics (text) {\n // Used 'uni range + named function' from http://jsperf.com/diacritics/18\n function match(a) {\n return DIACRITICS[a] || a;\n }\n\n return text.replace(/[^\\u0000-\\u007E]/g, match);\n }\n\n function matcher (params, data) {\n // Always return the object if there is nothing to compare\n if ($.trim(params.term) === '') {\n return data;\n }\n\n // Do a recursive check for options with children\n if (data.children && data.children.length > 0) {\n // Clone the data object if there are children\n // This is required as we modify the object to remove any non-matches\n var match = $.extend(true, {}, data);\n\n // Check each child of the option\n for (var c = data.children.length - 1; c >= 0; c--) {\n var child = data.children[c];\n\n var matches = matcher(params, child);\n\n // If there wasn't a match, remove the object in the array\n if (matches == null) {\n match.children.splice(c, 1);\n }\n }\n\n // If any children matched, return the new object\n if (match.children.length > 0) {\n return match;\n }\n\n // If there were no matching children, check just the plain object\n return matcher(params, match);\n }\n\n var original = stripDiacritics(data.text).toUpperCase();\n var term = stripDiacritics(params.term).toUpperCase();\n\n // Check if the text contains the term\n if (original.indexOf(term) > -1) {\n return data;\n }\n\n // If it doesn't contain the term, don't return anything\n return null;\n }\n\n this.defaults = {\n amdBase: './',\n amdLanguageBase: './i18n/',\n closeOnSelect: true,\n debug: false,\n dropdownAutoWidth: false,\n escapeMarkup: Utils.escapeMarkup,\n language: {},\n matcher: matcher,\n minimumInputLength: 0,\n maximumInputLength: 0,\n maximumSelectionLength: 0,\n minimumResultsForSearch: 0,\n selectOnClose: false,\n scrollAfterSelect: false,\n sorter: function (data) {\n return data;\n },\n templateResult: function (result) {\n return result.text;\n },\n templateSelection: function (selection) {\n return selection.text;\n },\n theme: 'default',\n width: 'resolve'\n };\n };\n\n Defaults.prototype.applyFromElement = function (options, $element) {\n var optionLanguage = options.language;\n var defaultLanguage = this.defaults.language;\n var elementLanguage = $element.prop('lang');\n var parentLanguage = $element.closest('[lang]').prop('lang');\n\n var languages = Array.prototype.concat.call(\n this._resolveLanguage(elementLanguage),\n this._resolveLanguage(optionLanguage),\n this._resolveLanguage(defaultLanguage),\n this._resolveLanguage(parentLanguage)\n );\n\n options.language = languages;\n\n return options;\n };\n\n Defaults.prototype._resolveLanguage = function (language) {\n if (!language) {\n return [];\n }\n\n if ($.isEmptyObject(language)) {\n return [];\n }\n\n if ($.isPlainObject(language)) {\n return [language];\n }\n\n var languages;\n\n if (!$.isArray(language)) {\n languages = [language];\n } else {\n languages = language;\n }\n\n var resolvedLanguages = [];\n\n for (var l = 0; l < languages.length; l++) {\n resolvedLanguages.push(languages[l]);\n\n if (typeof languages[l] === 'string' && languages[l].indexOf('-') > 0) {\n // Extract the region information if it is included\n var languageParts = languages[l].split('-');\n var baseLanguage = languageParts[0];\n\n resolvedLanguages.push(baseLanguage);\n }\n }\n\n return resolvedLanguages;\n };\n\n Defaults.prototype._processTranslations = function (languages, debug) {\n var translations = new Translation();\n\n for (var l = 0; l < languages.length; l++) {\n var languageData = new Translation();\n\n var language = languages[l];\n\n if (typeof language === 'string') {\n try {\n // Try to load it with the original name\n languageData = Translation.loadPath(language);\n } catch (e) {\n try {\n // If we couldn't load it, check if it wasn't the full path\n language = this.defaults.amdLanguageBase + language;\n languageData = Translation.loadPath(language);\n } catch (ex) {\n // The translation could not be loaded at all. Sometimes this is\n // because of a configuration problem, other times this can be\n // because of how Select2 helps load all possible translation files\n if (debug && window.console && console.warn) {\n console.warn(\n 'Select2: The language file for \"' + language + '\" could ' +\n 'not be automatically loaded. A fallback will be used instead.'\n );\n }\n }\n }\n } else if ($.isPlainObject(language)) {\n languageData = new Translation(language);\n } else {\n languageData = language;\n }\n\n translations.extend(languageData);\n }\n\n return translations;\n };\n\n Defaults.prototype.set = function (key, value) {\n var camelKey = $.camelCase(key);\n\n var data = {};\n data[camelKey] = value;\n\n var convertedData = Utils._convertData(data);\n\n $.extend(true, this.defaults, convertedData);\n };\n\n var defaults = new Defaults();\n\n return defaults;\n});\n\nS2.define('select2/options',[\n 'require',\n 'jquery',\n './defaults',\n './utils'\n], function (require, $, Defaults, Utils) {\n function Options (options, $element) {\n this.options = options;\n\n if ($element != null) {\n this.fromElement($element);\n }\n\n if ($element != null) {\n this.options = Defaults.applyFromElement(this.options, $element);\n }\n\n this.options = Defaults.apply(this.options);\n\n if ($element && $element.is('input')) {\n var InputCompat = require(this.get('amdBase') + 'compat/inputData');\n\n this.options.dataAdapter = Utils.Decorate(\n this.options.dataAdapter,\n InputCompat\n );\n }\n }\n\n Options.prototype.fromElement = function ($e) {\n var excludedData = ['select2'];\n\n if (this.options.multiple == null) {\n this.options.multiple = $e.prop('multiple');\n }\n\n if (this.options.disabled == null) {\n this.options.disabled = $e.prop('disabled');\n }\n\n if (this.options.dir == null) {\n if ($e.prop('dir')) {\n this.options.dir = $e.prop('dir');\n } else if ($e.closest('[dir]').prop('dir')) {\n this.options.dir = $e.closest('[dir]').prop('dir');\n } else {\n this.options.dir = 'ltr';\n }\n }\n\n $e.prop('disabled', this.options.disabled);\n $e.prop('multiple', this.options.multiple);\n\n if (Utils.GetData($e[0], 'select2Tags')) {\n if (this.options.debug && window.console && console.warn) {\n console.warn(\n 'Select2: The `data-select2-tags` attribute has been changed to ' +\n 'use the `data-data` and `data-tags=\"true\"` attributes and will be ' +\n 'removed in future versions of Select2.'\n );\n }\n\n Utils.StoreData($e[0], 'data', Utils.GetData($e[0], 'select2Tags'));\n Utils.StoreData($e[0], 'tags', true);\n }\n\n if (Utils.GetData($e[0], 'ajaxUrl')) {\n if (this.options.debug && window.console && console.warn) {\n console.warn(\n 'Select2: The `data-ajax-url` attribute has been changed to ' +\n '`data-ajax--url` and support for the old attribute will be removed' +\n ' in future versions of Select2.'\n );\n }\n\n $e.attr('ajax--url', Utils.GetData($e[0], 'ajaxUrl'));\n Utils.StoreData($e[0], 'ajax-Url', Utils.GetData($e[0], 'ajaxUrl'));\n }\n\n var dataset = {};\n\n function upperCaseLetter(_, letter) {\n return letter.toUpperCase();\n }\n\n // Pre-load all of the attributes which are prefixed with `data-`\n for (var attr = 0; attr < $e[0].attributes.length; attr++) {\n var attributeName = $e[0].attributes[attr].name;\n var prefix = 'data-';\n\n if (attributeName.substr(0, prefix.length) == prefix) {\n // Get the contents of the attribute after `data-`\n var dataName = attributeName.substring(prefix.length);\n\n // Get the data contents from the consistent source\n // This is more than likely the jQuery data helper\n var dataValue = Utils.GetData($e[0], dataName);\n\n // camelCase the attribute name to match the spec\n var camelDataName = dataName.replace(/-([a-z])/g, upperCaseLetter);\n\n // Store the data attribute contents into the dataset since\n dataset[camelDataName] = dataValue;\n }\n }\n\n // Prefer the element's `dataset` attribute if it exists\n // jQuery 1.x does not correctly handle data attributes with multiple dashes\n if ($.fn.jquery && $.fn.jquery.substr(0, 2) == '1.' && $e[0].dataset) {\n dataset = $.extend(true, {}, $e[0].dataset, dataset);\n }\n\n // Prefer our internal data cache if it exists\n var data = $.extend(true, {}, Utils.GetData($e[0]), dataset);\n\n data = Utils._convertData(data);\n\n for (var key in data) {\n if ($.inArray(key, excludedData) > -1) {\n continue;\n }\n\n if ($.isPlainObject(this.options[key])) {\n $.extend(this.options[key], data[key]);\n } else {\n this.options[key] = data[key];\n }\n }\n\n return this;\n };\n\n Options.prototype.get = function (key) {\n return this.options[key];\n };\n\n Options.prototype.set = function (key, val) {\n this.options[key] = val;\n };\n\n return Options;\n});\n\nS2.define('select2/core',[\n 'jquery',\n './options',\n './utils',\n './keys'\n], function ($, Options, Utils, KEYS) {\n var Select2 = function ($element, options) {\n if (Utils.GetData($element[0], 'select2') != null) {\n Utils.GetData($element[0], 'select2').destroy();\n }\n\n this.$element = $element;\n\n this.id = this._generateId($element);\n\n options = options || {};\n\n this.options = new Options(options, $element);\n\n Select2.__super__.constructor.call(this);\n\n // Set up the tabindex\n\n var tabindex = $element.attr('tabindex') || 0;\n Utils.StoreData($element[0], 'old-tabindex', tabindex);\n $element.attr('tabindex', '-1');\n\n // Set up containers and adapters\n\n var DataAdapter = this.options.get('dataAdapter');\n this.dataAdapter = new DataAdapter($element, this.options);\n\n var $container = this.render();\n\n this._placeContainer($container);\n\n var SelectionAdapter = this.options.get('selectionAdapter');\n this.selection = new SelectionAdapter($element, this.options);\n this.$selection = this.selection.render();\n\n this.selection.position(this.$selection, $container);\n\n var DropdownAdapter = this.options.get('dropdownAdapter');\n this.dropdown = new DropdownAdapter($element, this.options);\n this.$dropdown = this.dropdown.render();\n\n this.dropdown.position(this.$dropdown, $container);\n\n var ResultsAdapter = this.options.get('resultsAdapter');\n this.results = new ResultsAdapter($element, this.options, this.dataAdapter);\n this.$results = this.results.render();\n\n this.results.position(this.$results, this.$dropdown);\n\n // Bind events\n\n var self = this;\n\n // Bind the container to all of the adapters\n this._bindAdapters();\n\n // Register any DOM event handlers\n this._registerDomEvents();\n\n // Register any internal event handlers\n this._registerDataEvents();\n this._registerSelectionEvents();\n this._registerDropdownEvents();\n this._registerResultsEvents();\n this._registerEvents();\n\n // Set the initial state\n this.dataAdapter.current(function (initialData) {\n self.trigger('selection:update', {\n data: initialData\n });\n });\n\n // Hide the original select\n $element.addClass('select2-hidden-accessible');\n $element.attr('aria-hidden', 'true');\n\n // Synchronize any monitored attributes\n this._syncAttributes();\n\n Utils.StoreData($element[0], 'select2', this);\n\n // Ensure backwards compatibility with $element.data('select2').\n $element.data('select2', this);\n };\n\n Utils.Extend(Select2, Utils.Observable);\n\n Select2.prototype._generateId = function ($element) {\n var id = '';\n\n if ($element.attr('id') != null) {\n id = $element.attr('id');\n } else if ($element.attr('name') != null) {\n id = $element.attr('name') + '-' + Utils.generateChars(2);\n } else {\n id = Utils.generateChars(4);\n }\n\n id = id.replace(/(:|\\.|\\[|\\]|,)/g, '');\n id = 'select2-' + id;\n\n return id;\n };\n\n Select2.prototype._placeContainer = function ($container) {\n $container.insertAfter(this.$element);\n\n var width = this._resolveWidth(this.$element, this.options.get('width'));\n\n if (width != null) {\n $container.css('width', width);\n }\n };\n\n Select2.prototype._resolveWidth = function ($element, method) {\n var WIDTH = /^width:(([-+]?([0-9]*\\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i;\n\n if (method == 'resolve') {\n var styleWidth = this._resolveWidth($element, 'style');\n\n if (styleWidth != null) {\n return styleWidth;\n }\n\n return this._resolveWidth($element, 'element');\n }\n\n if (method == 'element') {\n var elementWidth = $element.outerWidth(false);\n\n if (elementWidth <= 0) {\n return 'auto';\n }\n\n return elementWidth + 'px';\n }\n\n if (method == 'style') {\n var style = $element.attr('style');\n\n if (typeof(style) !== 'string') {\n return null;\n }\n\n var attrs = style.split(';');\n\n for (var i = 0, l = attrs.length; i < l; i = i + 1) {\n var attr = attrs[i].replace(/\\s/g, '');\n var matches = attr.match(WIDTH);\n\n if (matches !== null && matches.length >= 1) {\n return matches[1];\n }\n }\n\n return null;\n }\n\n if (method == 'computedstyle') {\n var computedStyle = window.getComputedStyle($element[0]);\n\n return computedStyle.width;\n }\n\n return method;\n };\n\n Select2.prototype._bindAdapters = function () {\n this.dataAdapter.bind(this, this.$container);\n this.selection.bind(this, this.$container);\n\n this.dropdown.bind(this, this.$container);\n this.results.bind(this, this.$container);\n };\n\n Select2.prototype._registerDomEvents = function () {\n var self = this;\n\n this.$element.on('change.select2', function () {\n self.dataAdapter.current(function (data) {\n self.trigger('selection:update', {\n data: data\n });\n });\n });\n\n this.$element.on('focus.select2', function (evt) {\n self.trigger('focus', evt);\n });\n\n this._syncA = Utils.bind(this._syncAttributes, this);\n this._syncS = Utils.bind(this._syncSubtree, this);\n\n if (this.$element[0].attachEvent) {\n this.$element[0].attachEvent('onpropertychange', this._syncA);\n }\n\n var observer = window.MutationObserver ||\n window.WebKitMutationObserver ||\n window.MozMutationObserver\n ;\n\n if (observer != null) {\n this._observer = new observer(function (mutations) {\n self._syncA();\n self._syncS(null, mutations);\n });\n this._observer.observe(this.$element[0], {\n attributes: true,\n childList: true,\n subtree: false\n });\n } else if (this.$element[0].addEventListener) {\n this.$element[0].addEventListener(\n 'DOMAttrModified',\n self._syncA,\n false\n );\n this.$element[0].addEventListener(\n 'DOMNodeInserted',\n self._syncS,\n false\n );\n this.$element[0].addEventListener(\n 'DOMNodeRemoved',\n self._syncS,\n false\n );\n }\n };\n\n Select2.prototype._registerDataEvents = function () {\n var self = this;\n\n this.dataAdapter.on('*', function (name, params) {\n self.trigger(name, params);\n });\n };\n\n Select2.prototype._registerSelectionEvents = function () {\n var self = this;\n var nonRelayEvents = ['toggle', 'focus'];\n\n this.selection.on('toggle', function () {\n self.toggleDropdown();\n });\n\n this.selection.on('focus', function (params) {\n self.focus(params);\n });\n\n this.selection.on('*', function (name, params) {\n if ($.inArray(name, nonRelayEvents) !== -1) {\n return;\n }\n\n self.trigger(name, params);\n });\n };\n\n Select2.prototype._registerDropdownEvents = function () {\n var self = this;\n\n this.dropdown.on('*', function (name, params) {\n self.trigger(name, params);\n });\n };\n\n Select2.prototype._registerResultsEvents = function () {\n var self = this;\n\n this.results.on('*', function (name, params) {\n self.trigger(name, params);\n });\n };\n\n Select2.prototype._registerEvents = function () {\n var self = this;\n\n this.on('open', function () {\n self.$container.addClass('select2-container--open');\n });\n\n this.on('close', function () {\n self.$container.removeClass('select2-container--open');\n });\n\n this.on('enable', function () {\n self.$container.removeClass('select2-container--disabled');\n });\n\n this.on('disable', function () {\n self.$container.addClass('select2-container--disabled');\n });\n\n this.on('blur', function () {\n self.$container.removeClass('select2-container--focus');\n });\n\n this.on('query', function (params) {\n if (!self.isOpen()) {\n self.trigger('open', {});\n }\n\n this.dataAdapter.query(params, function (data) {\n self.trigger('results:all', {\n data: data,\n query: params\n });\n });\n });\n\n this.on('query:append', function (params) {\n this.dataAdapter.query(params, function (data) {\n self.trigger('results:append', {\n data: data,\n query: params\n });\n });\n });\n\n this.on('keypress', function (evt) {\n var key = evt.which;\n\n if (self.isOpen()) {\n if (key === KEYS.ESC || key === KEYS.TAB ||\n (key === KEYS.UP && evt.altKey)) {\n self.close(evt);\n\n evt.preventDefault();\n } else if (key === KEYS.ENTER) {\n self.trigger('results:select', {});\n\n evt.preventDefault();\n } else if ((key === KEYS.SPACE && evt.ctrlKey)) {\n self.trigger('results:toggle', {});\n\n evt.preventDefault();\n } else if (key === KEYS.UP) {\n self.trigger('results:previous', {});\n\n evt.preventDefault();\n } else if (key === KEYS.DOWN) {\n self.trigger('results:next', {});\n\n evt.preventDefault();\n }\n } else {\n if (key === KEYS.ENTER || key === KEYS.SPACE ||\n (key === KEYS.DOWN && evt.altKey)) {\n self.open();\n\n evt.preventDefault();\n }\n }\n });\n };\n\n Select2.prototype._syncAttributes = function () {\n this.options.set('disabled', this.$element.prop('disabled'));\n\n if (this.isDisabled()) {\n if (this.isOpen()) {\n this.close();\n }\n\n this.trigger('disable', {});\n } else {\n this.trigger('enable', {});\n }\n };\n\n Select2.prototype._isChangeMutation = function (evt, mutations) {\n var changed = false;\n var self = this;\n\n // Ignore any mutation events raised for elements that aren't options or\n // optgroups. This handles the case when the select element is destroyed\n if (\n evt && evt.target && (\n evt.target.nodeName !== 'OPTION' && evt.target.nodeName !== 'OPTGROUP'\n )\n ) {\n return;\n }\n\n if (!mutations) {\n // If mutation events aren't supported, then we can only assume that the\n // change affected the selections\n changed = true;\n } else if (mutations.addedNodes && mutations.addedNodes.length > 0) {\n for (var n = 0; n < mutations.addedNodes.length; n++) {\n var node = mutations.addedNodes[n];\n\n if (node.selected) {\n changed = true;\n }\n }\n } else if (mutations.removedNodes && mutations.removedNodes.length > 0) {\n changed = true;\n } else if ($.isArray(mutations)) {\n $.each(mutations, function(evt, mutation) {\n if (self._isChangeMutation(evt, mutation)) {\n // We've found a change mutation.\n // Let's escape from the loop and continue\n changed = true;\n return false;\n }\n });\n }\n return changed;\n };\n\n Select2.prototype._syncSubtree = function (evt, mutations) {\n var changed = this._isChangeMutation(evt, mutations);\n var self = this;\n\n // Only re-pull the data if we think there is a change\n if (changed) {\n this.dataAdapter.current(function (currentData) {\n self.trigger('selection:update', {\n data: currentData\n });\n });\n }\n };\n\n /**\n * Override the trigger method to automatically trigger pre-events when\n * there are events that can be prevented.\n */\n Select2.prototype.trigger = function (name, args) {\n var actualTrigger = Select2.__super__.trigger;\n var preTriggerMap = {\n 'open': 'opening',\n 'close': 'closing',\n 'select': 'selecting',\n 'unselect': 'unselecting',\n 'clear': 'clearing'\n };\n\n if (args === undefined) {\n args = {};\n }\n\n if (name in preTriggerMap) {\n var preTriggerName = preTriggerMap[name];\n var preTriggerArgs = {\n prevented: false,\n name: name,\n args: args\n };\n\n actualTrigger.call(this, preTriggerName, preTriggerArgs);\n\n if (preTriggerArgs.prevented) {\n args.prevented = true;\n\n return;\n }\n }\n\n actualTrigger.call(this, name, args);\n };\n\n Select2.prototype.toggleDropdown = function () {\n if (this.isDisabled()) {\n return;\n }\n\n if (this.isOpen()) {\n this.close();\n } else {\n this.open();\n }\n };\n\n Select2.prototype.open = function () {\n if (this.isOpen()) {\n return;\n }\n\n if (this.isDisabled()) {\n return;\n }\n\n this.trigger('query', {});\n };\n\n Select2.prototype.close = function (evt) {\n if (!this.isOpen()) {\n return;\n }\n\n this.trigger('close', { originalEvent : evt });\n };\n\n /**\n * Helper method to abstract the \"enabled\" (not \"disabled\") state of this\n * object.\n *\n * @return {true} if the instance is not disabled.\n * @return {false} if the instance is disabled.\n */\n Select2.prototype.isEnabled = function () {\n return !this.isDisabled();\n };\n\n /**\n * Helper method to abstract the \"disabled\" state of this object.\n *\n * @return {true} if the disabled option is true.\n * @return {false} if the disabled option is false.\n */\n Select2.prototype.isDisabled = function () {\n return this.options.get('disabled');\n };\n\n Select2.prototype.isOpen = function () {\n return this.$container.hasClass('select2-container--open');\n };\n\n Select2.prototype.hasFocus = function () {\n return this.$container.hasClass('select2-container--focus');\n };\n\n Select2.prototype.focus = function (data) {\n // No need to re-trigger focus events if we are already focused\n if (this.hasFocus()) {\n return;\n }\n\n this.$container.addClass('select2-container--focus');\n this.trigger('focus', {});\n };\n\n Select2.prototype.enable = function (args) {\n if (this.options.get('debug') && window.console && console.warn) {\n console.warn(\n 'Select2: The `select2(\"enable\")` method has been deprecated and will' +\n ' be removed in later Select2 versions. Use $element.prop(\"disabled\")' +\n ' instead.'\n );\n }\n\n if (args == null || args.length === 0) {\n args = [true];\n }\n\n var disabled = !args[0];\n\n this.$element.prop('disabled', disabled);\n };\n\n Select2.prototype.data = function () {\n if (this.options.get('debug') &&\n arguments.length > 0 && window.console && console.warn) {\n console.warn(\n 'Select2: Data can no longer be set using `select2(\"data\")`. You ' +\n 'should consider setting the value instead using `$element.val()`.'\n );\n }\n\n var data = [];\n\n this.dataAdapter.current(function (currentData) {\n data = currentData;\n });\n\n return data;\n };\n\n Select2.prototype.val = function (args) {\n if (this.options.get('debug') && window.console && console.warn) {\n console.warn(\n 'Select2: The `select2(\"val\")` method has been deprecated and will be' +\n ' removed in later Select2 versions. Use $element.val() instead.'\n );\n }\n\n if (args == null || args.length === 0) {\n return this.$element.val();\n }\n\n var newVal = args[0];\n\n if ($.isArray(newVal)) {\n newVal = $.map(newVal, function (obj) {\n return obj.toString();\n });\n }\n\n this.$element.val(newVal).trigger('input').trigger('change');\n };\n\n Select2.prototype.destroy = function () {\n this.$container.remove();\n\n if (this.$element[0].detachEvent) {\n this.$element[0].detachEvent('onpropertychange', this._syncA);\n }\n\n if (this._observer != null) {\n this._observer.disconnect();\n this._observer = null;\n } else if (this.$element[0].removeEventListener) {\n this.$element[0]\n .removeEventListener('DOMAttrModified', this._syncA, false);\n this.$element[0]\n .removeEventListener('DOMNodeInserted', this._syncS, false);\n this.$element[0]\n .removeEventListener('DOMNodeRemoved', this._syncS, false);\n }\n\n this._syncA = null;\n this._syncS = null;\n\n this.$element.off('.select2');\n this.$element.attr('tabindex',\n Utils.GetData(this.$element[0], 'old-tabindex'));\n\n this.$element.removeClass('select2-hidden-accessible');\n this.$element.attr('aria-hidden', 'false');\n Utils.RemoveData(this.$element[0]);\n this.$element.removeData('select2');\n\n this.dataAdapter.destroy();\n this.selection.destroy();\n this.dropdown.destroy();\n this.results.destroy();\n\n this.dataAdapter = null;\n this.selection = null;\n this.dropdown = null;\n this.results = null;\n };\n\n Select2.prototype.render = function () {\n var $container = $(\n '' +\n '' +\n '' +\n ''\n );\n\n $container.attr('dir', this.options.get('dir'));\n\n this.$container = $container;\n\n this.$container.addClass('select2-container--' + this.options.get('theme'));\n\n Utils.StoreData($container[0], 'element', this.$element);\n\n return $container;\n };\n\n return Select2;\n});\n\nS2.define('select2/compat/utils',[\n 'jquery'\n], function ($) {\n function syncCssClasses ($dest, $src, adapter) {\n var classes, replacements = [], adapted;\n\n classes = $.trim($dest.attr('class'));\n\n if (classes) {\n classes = '' + classes; // for IE which returns object\n\n $(classes.split(/\\s+/)).each(function () {\n // Save all Select2 classes\n if (this.indexOf('select2-') === 0) {\n replacements.push(this);\n }\n });\n }\n\n classes = $.trim($src.attr('class'));\n\n if (classes) {\n classes = '' + classes; // for IE which returns object\n\n $(classes.split(/\\s+/)).each(function () {\n // Only adapt non-Select2 classes\n if (this.indexOf('select2-') !== 0) {\n adapted = adapter(this);\n\n if (adapted != null) {\n replacements.push(adapted);\n }\n }\n });\n }\n\n $dest.attr('class', replacements.join(' '));\n }\n\n return {\n syncCssClasses: syncCssClasses\n };\n});\n\nS2.define('select2/compat/containerCss',[\n 'jquery',\n './utils'\n], function ($, CompatUtils) {\n // No-op CSS adapter that discards all classes by default\n function _containerAdapter (clazz) {\n return null;\n }\n\n function ContainerCSS () { }\n\n ContainerCSS.prototype.render = function (decorated) {\n var $container = decorated.call(this);\n\n var containerCssClass = this.options.get('containerCssClass') || '';\n\n if ($.isFunction(containerCssClass)) {\n containerCssClass = containerCssClass(this.$element);\n }\n\n var containerCssAdapter = this.options.get('adaptContainerCssClass');\n containerCssAdapter = containerCssAdapter || _containerAdapter;\n\n if (containerCssClass.indexOf(':all:') !== -1) {\n containerCssClass = containerCssClass.replace(':all:', '');\n\n var _cssAdapter = containerCssAdapter;\n\n containerCssAdapter = function (clazz) {\n var adapted = _cssAdapter(clazz);\n\n if (adapted != null) {\n // Append the old one along with the adapted one\n return adapted + ' ' + clazz;\n }\n\n return clazz;\n };\n }\n\n var containerCss = this.options.get('containerCss') || {};\n\n if ($.isFunction(containerCss)) {\n containerCss = containerCss(this.$element);\n }\n\n CompatUtils.syncCssClasses($container, this.$element, containerCssAdapter);\n\n $container.css(containerCss);\n $container.addClass(containerCssClass);\n\n return $container;\n };\n\n return ContainerCSS;\n});\n\nS2.define('select2/compat/dropdownCss',[\n 'jquery',\n './utils'\n], function ($, CompatUtils) {\n // No-op CSS adapter that discards all classes by default\n function _dropdownAdapter (clazz) {\n return null;\n }\n\n function DropdownCSS () { }\n\n DropdownCSS.prototype.render = function (decorated) {\n var $dropdown = decorated.call(this);\n\n var dropdownCssClass = this.options.get('dropdownCssClass') || '';\n\n if ($.isFunction(dropdownCssClass)) {\n dropdownCssClass = dropdownCssClass(this.$element);\n }\n\n var dropdownCssAdapter = this.options.get('adaptDropdownCssClass');\n dropdownCssAdapter = dropdownCssAdapter || _dropdownAdapter;\n\n if (dropdownCssClass.indexOf(':all:') !== -1) {\n dropdownCssClass = dropdownCssClass.replace(':all:', '');\n\n var _cssAdapter = dropdownCssAdapter;\n\n dropdownCssAdapter = function (clazz) {\n var adapted = _cssAdapter(clazz);\n\n if (adapted != null) {\n // Append the old one along with the adapted one\n return adapted + ' ' + clazz;\n }\n\n return clazz;\n };\n }\n\n var dropdownCss = this.options.get('dropdownCss') || {};\n\n if ($.isFunction(dropdownCss)) {\n dropdownCss = dropdownCss(this.$element);\n }\n\n CompatUtils.syncCssClasses($dropdown, this.$element, dropdownCssAdapter);\n\n $dropdown.css(dropdownCss);\n $dropdown.addClass(dropdownCssClass);\n\n return $dropdown;\n };\n\n return DropdownCSS;\n});\n\nS2.define('select2/compat/initSelection',[\n 'jquery'\n], function ($) {\n function InitSelection (decorated, $element, options) {\n if (options.get('debug') && window.console && console.warn) {\n console.warn(\n 'Select2: The `initSelection` option has been deprecated in favor' +\n ' of a custom data adapter that overrides the `current` method. ' +\n 'This method is now called multiple times instead of a single ' +\n 'time when the instance is initialized. Support will be removed ' +\n 'for the `initSelection` option in future versions of Select2'\n );\n }\n\n this.initSelection = options.get('initSelection');\n this._isInitialized = false;\n\n decorated.call(this, $element, options);\n }\n\n InitSelection.prototype.current = function (decorated, callback) {\n var self = this;\n\n if (this._isInitialized) {\n decorated.call(this, callback);\n\n return;\n }\n\n this.initSelection.call(null, this.$element, function (data) {\n self._isInitialized = true;\n\n if (!$.isArray(data)) {\n data = [data];\n }\n\n callback(data);\n });\n };\n\n return InitSelection;\n});\n\nS2.define('select2/compat/inputData',[\n 'jquery',\n '../utils'\n], function ($, Utils) {\n function InputData (decorated, $element, options) {\n this._currentData = [];\n this._valueSeparator = options.get('valueSeparator') || ',';\n\n if ($element.prop('type') === 'hidden') {\n if (options.get('debug') && console && console.warn) {\n console.warn(\n 'Select2: Using a hidden input with Select2 is no longer ' +\n 'supported and may stop working in the future. It is recommended ' +\n 'to use a `