%PDF- %PDF-
Direktori : /var/www/cwg/wp-content/plugins/codepress-admin-columns/assets/js/ |
Current File : //var/www/cwg/wp-content/plugins/codepress-admin-columns/assets/js/select2.js |
/*! Select2 4.0.12 | https://github.com/select2/select2/blob/master/LICENSE.md */ !function( n ) {"function" == typeof define && define.amd ? define( ["jquery"], n ) : "object" == typeof module && module.exports ? module.exports = function( e, t ) {return void 0 === t && (t = "undefined" != typeof window ? require( "jquery" ) : require( "jquery" )( e )), n( t ), t} : n( jQuery )}( function( d ) { var e = function() { if ( d && d.fn && d.fn.select2 && d.fn.select2.amd ) var e = d.fn.select2.amd; var t, n, i, h, o, s, f, g, m, v, y, _, r, a, w, l; function b( e, t ) {return r.call( e, t )} function c( e, t ) { var n, i, r, o, s, a, l, c, u, d, p, h = t && t.split( "/" ), f = y.map, g = f && f[ "*" ] || {}; if ( e ) { for ( s = (e = e.split( "/" )).length - 1, y.nodeIdCompat && w.test( e[ s ] ) && (e[ s ] = e[ s ].replace( w, "" )), "." === e[ 0 ].charAt( 0 ) && h && (e = h.slice( 0, h.length - 1 ).concat( e )), u = 0; u < e.length; u++ ) if ( "." === (p = e[ u ]) ) e.splice( u, 1 ), u -= 1; else if ( ".." === p ) { if ( 0 === u || 1 === u && ".." === e[ 2 ] || ".." === e[ u - 1 ] ) continue; 0 < u && (e.splice( u - 1, 2 ), u -= 2) } e = e.join( "/" ) } if ( (h || g) && f ) { for ( u = (n = e.split( "/" )).length; 0 < u; u -= 1 ) { if ( i = n.slice( 0, u ).join( "/" ), h ) for ( d = h.length; 0 < d; d -= 1 ) if ( r = (r = f[ h.slice( 0, d ).join( "/" ) ]) && r[ i ] ) { o = r, a = u; break } if ( o ) break; !l && g && g[ i ] && (l = g[ i ], c = u) } !o && l && (o = l, a = c), o && (n.splice( 0, a, o ), e = n.join( "/" )) } return e } function A( t, n ) { return function() { var e = a.call( arguments, 0 ); return "string" != typeof e[ 0 ] && 1 === e.length && e.push( null ), s.apply( h, e.concat( [t, n] ) ) } } function x( t ) {return function( e ) {m[ t ] = e}} function S( e ) { if ( b( v, e ) ) { var t = v[ e ]; delete v[ e ], _[ e ] = !0, o.apply( h, t ) } if ( !b( m, e ) && !b( _, e ) ) throw new Error( "No " + e ); return m[ e ] } function u( e ) { var t, n = e ? e.indexOf( "!" ) : -1; return -1 < n && (t = e.substring( 0, n ), e = e.substring( n + 1, e.length )), [t, e] } function D( e ) {return e ? u( e ) : []} return e && e.requirejs || (e ? n = e : e = {}, m = {}, v = {}, y = {}, _ = {}, r = Object.prototype.hasOwnProperty, a = [].slice, w = /\.js$/, f = function( e, t ) { var n, i = u( e ), r = i[ 0 ], o = t[ 1 ]; return e = i[ 1 ], r && (n = S( r = c( r, o ) )), r ? e = n && n.normalize ? n.normalize( e, function( t ) {return function( e ) {return c( e, t )}}( o ) ) : c( e, o ) : (r = (i = u( e = c( e, o ) ))[ 0 ], e = i[ 1 ], r && (n = S( r ))), { f : r ? r + "!" + e : e, n : e, pr : r, p : n } }, g = { require : function( e ) {return A( e )}, exports : function( e ) { var t = m[ e ]; return void 0 !== t ? t : m[ e ] = {} }, module : function( e ) {return { id : e, uri : "", exports : m[ e ], config : function( e ) {return function() {return y && y.config && y.config[ e ] || {}}}( e ) }} }, o = function( e, t, n, i ) { var r, o, s, a, l, c, u, d = [], p = typeof n; if ( c = D( i = i || e ), "undefined" == p || "function" == p ) { for ( t = !t.length && n.length ? ["require", "exports", "module"] : t, l = 0; l < t.length; l += 1 ) if ( "require" === (o = (a = f( t[ l ], c )).f) ) d[ l ] = g.require( e ); else if ( "exports" === o ) d[ l ] = g.exports( e ), u = !0; else if ( "module" === o ) r = d[ l ] = g.module( e ); else if ( b( m, o ) || b( v, o ) || b( _, o ) ) d[ l ] = S( o ); else { if ( !a.p ) throw new Error( e + " missing " + o ); a.p.load( a.n, A( i, !0 ), x( o ), {} ), d[ l ] = m[ o ] } s = n ? n.apply( m[ e ], d ) : void 0, e && (r && r.exports !== h && r.exports !== m[ e ] ? m[ e ] = r.exports : s === h && u || (m[ e ] = s)) } else e && (m[ e ] = n) }, t = n = s = function( e, t, n, i, r ) { if ( "string" == typeof e ) return g[ e ] ? g[ e ]( t ) : S( f( e, D( t ) ).f ); if ( !e.splice ) { if ( (y = e).deps && s( y.deps, y.callback ), !t ) return; t.splice ? (e = t, t = n, n = null) : e = h } return t = t || function() {}, "function" == typeof n && (n = i, i = r), i ? o( h, e, t, n ) : setTimeout( function() {o( h, e, t, n )}, 4 ), s }, s.config = function( e ) {return s( e )}, t._defined = m, (i = function( e, t, n ) { if ( "string" != typeof e ) throw new Error( "See almond README: incorrect module build, no module name" ); t.splice || (n = t, t = []), b( m, e ) || b( v, e ) || (v[ e ] = [e, t, n]) }).amd = { jQuery : !0 }, e.requirejs = t, e.require = n, e.define = i), e.define( "almond", function() {} ), e.define( "jquery", [], function() { var e = d || $; return null == e && console && console.error && console.error( "Select2: An instance of jQuery or a jQuery-compatible library was not found. Make sure that you are including jQuery before Select2 on your web page." ), e } ), e.define( "select2/utils", ["jquery"], function( o ) { var r = {}; function u( e ) { var t = e.prototype, n = []; for ( var i in t ) { "function" == typeof t[ i ] && "constructor" !== i && n.push( i ) } return n } r.Extend = function( e, t ) { var n = {}.hasOwnProperty; function i() {this.constructor = e} for ( var r in t ) n.call( t, r ) && (e[ r ] = t[ r ]); return i.prototype = t.prototype, e.prototype = new i, e.__super__ = t.prototype, e }, r.Decorate = function( i, r ) { var e = u( r ), t = u( i ); function o() { var e = Array.prototype.unshift, t = r.prototype.constructor.length, n = i.prototype.constructor; 0 < t && (e.call( arguments, i.prototype.constructor ), n = r.prototype.constructor), n.apply( this, arguments ) } r.displayName = i.displayName, o.prototype = new function() {this.constructor = o}; for ( var n = 0; n < t.length; n++ ) { var s = t[ n ]; o.prototype[ s ] = i.prototype[ s ] } function a( e ) { var t = function() {}; e in o.prototype && (t = o.prototype[ e ]); var n = r.prototype[ e ]; return function() {return Array.prototype.unshift.call( arguments, t ), n.apply( this, arguments )} } for ( var l = 0; l < e.length; l++ ) { var c = e[ l ]; o.prototype[ c ] = a( c ) } return o }; function e() {this.listeners = {}} e.prototype.on = function( e, t ) {this.listeners = this.listeners || {}, e in this.listeners ? this.listeners[ e ].push( t ) : this.listeners[ e ] = [t]}, e.prototype.trigger = function( e ) { var t = Array.prototype.slice, n = t.call( arguments, 1 ); this.listeners = this.listeners || {}, null == n && (n = []), 0 === n.length && n.push( {} ), (n[ 0 ]._type = e) in this.listeners && this.invoke( this.listeners[ e ], t.call( arguments, 1 ) ), "*" in this.listeners && this.invoke( this.listeners[ "*" ], arguments ) }, e.prototype.invoke = function( e, t ) {for ( var n = 0, i = e.length; n < i; n++ ) e[ n ].apply( this, t )}, r.Observable = e, r.generateChars = function( e ) { for ( var t = "", n = 0; n < e; n++ ) { t += Math.floor( 36 * Math.random() ).toString( 36 ) } return t }, r.bind = function( e, t ) {return function() {e.apply( t, arguments )}}, r._convertData = function( e ) { for ( var t in e ) { var n = t.split( "-" ), i = e; if ( 1 !== n.length ) { for ( var r = 0; r < n.length; r++ ) { var o = n[ r ]; (o = o.substring( 0, 1 ).toLowerCase() + o.substring( 1 )) in i || (i[ o ] = {}), r == n.length - 1 && (i[ o ] = e[ t ]), i = i[ o ] } delete e[ t ] } } return e }, r.hasScroll = function( e, t ) { var n = o( t ), i = t.style.overflowX, r = t.style.overflowY; return (i !== r || "hidden" !== r && "visible" !== r) && ("scroll" === i || "scroll" === r || (n.innerHeight() < t.scrollHeight || n.innerWidth() < t.scrollWidth)) }, r.escapeMarkup = function( e ) { var t = { "\\" : "\", "&" : "&", "<" : "<", ">" : ">", '"' : """, "'" : "'", "/" : "/" }; return "string" != typeof e ? e : String( e ).replace( /[&<>"'\/\\]/g, function( e ) {return t[ e ]} ) }, r.appendMany = function( e, t ) { if ( "1.7" === o.fn.jquery.substr( 0, 3 ) ) { var n = o(); o.map( t, function( e ) {n = n.add( e )} ), t = n } e.append( t ) }, r.__cache = {}; var n = 0; return r.GetUniqueElementId = function( e ) { var t = e.getAttribute( "data-select2-id" ); return null == t && (e.id ? (t = e.id, e.setAttribute( "data-select2-id", t )) : (e.setAttribute( "data-select2-id", ++n ), t = n.toString())), t }, r.StoreData = function( e, t, n ) { var i = r.GetUniqueElementId( e ); r.__cache[ i ] || (r.__cache[ i ] = {}), r.__cache[ i ][ t ] = n }, r.GetData = function( e, t ) { var n = r.GetUniqueElementId( e ); return t ? r.__cache[ n ] && null != r.__cache[ n ][ t ] ? r.__cache[ n ][ t ] : o( e ).data( t ) : r.__cache[ n ] }, r.RemoveData = function( e ) { var t = r.GetUniqueElementId( e ); null != r.__cache[ t ] && delete r.__cache[ t ], e.removeAttribute( "data-select2-id" ) }, r } ), e.define( "select2/results", ["jquery", "./utils"], function( h, f ) { function i( e, t, n ) {this.$element = e, this.data = n, this.options = t, i.__super__.constructor.call( this )} return f.Extend( i, f.Observable ), i.prototype.render = function() { var e = h( '<ul class="select2-results__options" role="listbox"></ul>' ); return this.options.get( "multiple" ) && e.attr( "aria-multiselectable", "true" ), this.$results = e }, i.prototype.clear = function() {this.$results.empty()}, i.prototype.displayMessage = function( e ) { var t = this.options.get( "escapeMarkup" ); this.clear(), this.hideLoading(); var n = h( '<li role="alert" aria-live="assertive" class="select2-results__option"></li>' ), i = this.options.get( "translations" ).get( e.message ); n.append( t( i( e.args ) ) ), n[ 0 ].className += " select2-results__message", this.$results.append( n ) }, i.prototype.hideMessages = function() {this.$results.find( ".select2-results__message" ).remove()}, i.prototype.append = function( e ) { this.hideLoading(); var t = []; if ( null != e.results && 0 !== e.results.length ) { e.results = this.sort( e.results ); for ( var n = 0; n < e.results.length; n++ ) { var i = e.results[ n ], r = this.option( i ); t.push( r ) } this.$results.append( t ) } else 0 === this.$results.children().length && this.trigger( "results:message", { message : "noResults" } ) }, i.prototype.position = function( e, t ) {t.find( ".select2-results" ).append( e )}, i.prototype.sort = function( e ) {return this.options.get( "sorter" )( e )}, i.prototype.highlightFirstItem = function() { var e = this.$results.find( ".select2-results__option[aria-selected]" ), t = e.filter( "[aria-selected=true]" ); 0 < t.length ? t.first().trigger( "mouseenter" ) : e.first().trigger( "mouseenter" ), this.ensureHighlightVisible() }, i.prototype.setClasses = function() { var t = this; this.data.current( function( e ) { var i = h.map( e, function( e ) {return e.id.toString()} ); t.$results.find( ".select2-results__option[aria-selected]" ).each( function() { var e = h( this ), t = f.GetData( this, "data" ), n = "" + t.id; null != t.element && t.element.selected || null == t.element && -1 < h.inArray( n, i ) ? e.attr( "aria-selected", "true" ) : e.attr( "aria-selected", "false" ) } ) } ) }, i.prototype.showLoading = function( e ) { this.hideLoading(); var t = { disabled : !0, loading : !0, text : this.options.get( "translations" ).get( "searching" )( e ) }, n = this.option( t ); n.className += " loading-results", this.$results.prepend( n ) }, i.prototype.hideLoading = function() {this.$results.find( ".loading-results" ).remove()}, i.prototype.option = function( e ) { var t = document.createElement( "li" ); t.className = "select2-results__option"; var n = { role : "option", "aria-selected" : "false" }, i = window.Element.prototype.matches || window.Element.prototype.msMatchesSelector || window.Element.prototype.webkitMatchesSelector; for ( var r in (null != e.element && i.call( e.element, ":disabled" ) || null == e.element && e.disabled) && (delete n[ "aria-selected" ], n[ "aria-disabled" ] = "true"), null == e.id && delete n[ "aria-selected" ], null != e._resultId && (t.id = e._resultId), e.title && (t.title = e.title), e.children && (n.role = "group", n[ "aria-label" ] = e.text, delete n[ "aria-selected" ]), n ) { var o = n[ r ]; t.setAttribute( r, o ) } if ( e.children ) { var s = h( t ), a = document.createElement( "strong" ); a.className = "select2-results__group"; h( a ); this.template( e, a ); for ( var l = [], c = 0; c < e.children.length; c++ ) { var u = e.children[ c ], d = this.option( u ); l.push( d ) } var p = h( "<ul></ul>", { class : "select2-results__options select2-results__options--nested" } ); p.append( l ), s.append( a ), s.append( p ) } else this.template( e, t ); return f.StoreData( t, "data", e ), t }, i.prototype.bind = function( t, e ) { var l = this, n = t.id + "-results"; this.$results.attr( "id", n ), t.on( "results:all", function( e ) {l.clear(), l.append( e.data ), t.isOpen() && (l.setClasses(), l.highlightFirstItem())} ), t.on( "results:append", function( e ) {l.append( e.data ), t.isOpen() && l.setClasses()} ), t.on( "query", function( e ) {l.hideMessages(), l.showLoading( e )} ), t.on( "select", function() {t.isOpen() && (l.setClasses(), l.options.get( "scrollAfterSelect" ) && l.highlightFirstItem())} ), t.on( "unselect", function() {t.isOpen() && (l.setClasses(), l.options.get( "scrollAfterSelect" ) && l.highlightFirstItem())} ), t.on( "open", function() {l.$results.attr( "aria-expanded", "true" ), l.$results.attr( "aria-hidden", "false" ), l.setClasses(), l.ensureHighlightVisible()} ), t.on( "close", function() {l.$results.attr( "aria-expanded", "false" ), l.$results.attr( "aria-hidden", "true" ), l.$results.removeAttr( "aria-activedescendant" )} ), t.on( "results:toggle", function() { var e = l.getHighlightedResults(); 0 !== e.length && e.trigger( "mouseup" ) } ), t.on( "results:select", function() { var e = l.getHighlightedResults(); if ( 0 !== e.length ) { var t = f.GetData( e[ 0 ], "data" ); "true" == e.attr( "aria-selected" ) ? l.trigger( "close", {} ) : l.trigger( "select", { data : t } ) } } ), t.on( "results:previous", function() { var e = l.getHighlightedResults(), t = l.$results.find( "[aria-selected]" ), n = t.index( e ); if ( !(n <= 0) ) { var i = n - 1; 0 === e.length && (i = 0); var r = t.eq( i ); r.trigger( "mouseenter" ); var o = l.$results.offset().top, s = r.offset().top, a = l.$results.scrollTop() + (s - o); 0 === i ? l.$results.scrollTop( 0 ) : s - o < 0 && l.$results.scrollTop( a ) } } ), t.on( "results:next", function() { var e = l.getHighlightedResults(), t = l.$results.find( "[aria-selected]" ), n = t.index( e ) + 1; if ( !(n >= t.length) ) { var i = t.eq( n ); i.trigger( "mouseenter" ); var r = l.$results.offset().top + l.$results.outerHeight( !1 ), o = i.offset().top + i.outerHeight( !1 ), s = l.$results.scrollTop() + o - r; 0 === n ? l.$results.scrollTop( 0 ) : r < o && l.$results.scrollTop( s ) } } ), t.on( "results:focus", function( e ) {e.element.addClass( "select2-results__option--highlighted" )} ), t.on( "results:message", function( e ) {l.displayMessage( e )} ), h.fn.mousewheel && this.$results.on( "mousewheel", function( e ) { var t = l.$results.scrollTop(), n = l.$results.get( 0 ).scrollHeight - t + e.deltaY, i = 0 < e.deltaY && t - e.deltaY <= 0, r = e.deltaY < 0 && n <= l.$results.height(); i ? (l.$results.scrollTop( 0 ), e.preventDefault(), e.stopPropagation()) : r && (l.$results.scrollTop( l.$results.get( 0 ).scrollHeight - l.$results.height() ), e.preventDefault(), e.stopPropagation()) } ), this.$results.on( "mouseup", ".select2-results__option[aria-selected]", function( e ) { var t = h( this ), n = f.GetData( this, "data" ); "true" !== t.attr( "aria-selected" ) ? l.trigger( "select", { originalEvent : e, data : n } ) : l.options.get( "multiple" ) ? l.trigger( "unselect", { originalEvent : e, data : n } ) : l.trigger( "close", {} ) } ), this.$results.on( "mouseenter", ".select2-results__option[aria-selected]", function( e ) { var t = f.GetData( this, "data" ); l.getHighlightedResults().removeClass( "select2-results__option--highlighted" ), l.trigger( "results:focus", { data : t, element : h( this ) } ) } ) }, i.prototype.getHighlightedResults = function() {return this.$results.find( ".select2-results__option--highlighted" )}, i.prototype.destroy = function() {this.$results.remove()}, i.prototype.ensureHighlightVisible = function() { var e = this.getHighlightedResults(); if ( 0 !== e.length ) { var t = this.$results.find( "[aria-selected]" ).index( e ), n = this.$results.offset().top, i = e.offset().top, r = this.$results.scrollTop() + (i - n), o = i - n; r -= 2 * e.outerHeight( !1 ), t <= 2 ? this.$results.scrollTop( 0 ) : (o > this.$results.outerHeight() || o < 0) && this.$results.scrollTop( r ) } }, i.prototype.template = function( e, t ) { var n = this.options.get( "templateResult" ), i = this.options.get( "escapeMarkup" ), r = n( e, t ); null == r ? t.style.display = "none" : "string" == typeof r ? t.innerHTML = i( r ) : h( t ).append( r ) }, i } ), e.define( "select2/keys", [], function() {return { BACKSPACE : 8, TAB : 9, ENTER : 13, SHIFT : 16, CTRL : 17, ALT : 18, ESC : 27, SPACE : 32, PAGE_UP : 33, PAGE_DOWN : 34, END : 35, HOME : 36, LEFT : 37, UP : 38, RIGHT : 39, DOWN : 40, DELETE : 46 }} ), e.define( "select2/selection/base", ["jquery", "../utils", "../keys"], function( n, i, r ) { function o( e, t ) {this.$element = e, this.options = t, o.__super__.constructor.call( this )} return i.Extend( o, i.Observable ), o.prototype.render = function() { var e = n( '<span class="select2-selection" role="combobox" aria-haspopup="true" aria-expanded="false"></span>' ); return this._tabindex = 0, null != i.GetData( this.$element[ 0 ], "old-tabindex" ) ? this._tabindex = i.GetData( this.$element[ 0 ], "old-tabindex" ) : null != this.$element.attr( "tabindex" ) && (this._tabindex = this.$element.attr( "tabindex" )), e.attr( "title", this.$element.attr( "title" ) ), e.attr( "tabindex", this._tabindex ), e.attr( "aria-disabled", "false" ), this.$selection = e }, o.prototype.bind = function( e, t ) { var n = this, i = e.id + "-results"; this.container = e, this.$selection.on( "focus", function( e ) {n.trigger( "focus", e )} ), this.$selection.on( "blur", function( e ) {n._handleBlur( e )} ), this.$selection.on( "keydown", function( e ) {n.trigger( "keypress", e ), e.which === r.SPACE && e.preventDefault()} ), e.on( "results:focus", function( e ) {n.$selection.attr( "aria-activedescendant", e.data._resultId )} ), e.on( "selection:update", function( e ) {n.update( e.data )} ), e.on( "open", function() {n.$selection.attr( "aria-expanded", "true" ), n.$selection.attr( "aria-owns", i ), n._attachCloseHandler( e )} ), e.on( "close", function() {n.$selection.attr( "aria-expanded", "false" ), n.$selection.removeAttr( "aria-activedescendant" ), n.$selection.removeAttr( "aria-owns" ), n.$selection.trigger( "focus" ), n._detachCloseHandler( e )} ), e.on( "enable", function() {n.$selection.attr( "tabindex", n._tabindex ), n.$selection.attr( "aria-disabled", "false" )} ), e.on( "disable", function() {n.$selection.attr( "tabindex", "-1" ), n.$selection.attr( "aria-disabled", "true" )} ) }, o.prototype._handleBlur = function( e ) { var t = this; window.setTimeout( function() {document.activeElement == t.$selection[ 0 ] || n.contains( t.$selection[ 0 ], document.activeElement ) || t.trigger( "blur", e )}, 1 ) }, o.prototype._attachCloseHandler = function( e ) { n( document.body ).on( "mousedown.select2." + e.id, function( e ) { var t = n( e.target ).closest( ".select2" ); n( ".select2.select2-container--open" ).each( function() {this != t[ 0 ] && i.GetData( this, "element" ).select2( "close" )} ) } ) }, o.prototype._detachCloseHandler = function( e ) {n( document.body ).off( "mousedown.select2." + e.id )}, o.prototype.position = function( e, t ) {t.find( ".selection" ).append( e )}, o.prototype.destroy = function() {this._detachCloseHandler( this.container )}, o.prototype.update = function( e ) {throw new Error( "The `update` method must be defined in child classes." )}, o } ), e.define( "select2/selection/single", ["jquery", "./base", "../utils", "../keys"], function( e, t, n, i ) { function r() {r.__super__.constructor.apply( this, arguments )} return n.Extend( r, t ), r.prototype.render = function() { var e = r.__super__.render.call( this ); return e.addClass( "select2-selection--single" ), e.html( '<span class="select2-selection__rendered"></span><span class="select2-selection__arrow" role="presentation"><b role="presentation"></b></span>' ), e }, r.prototype.bind = function( t, e ) { var n = this; r.__super__.bind.apply( this, arguments ); var i = t.id + "-container"; this.$selection.find( ".select2-selection__rendered" ).attr( "id", i ).attr( "role", "textbox" ).attr( "aria-readonly", "true" ), this.$selection.attr( "aria-labelledby", i ), this.$selection.on( "mousedown", function( e ) {1 === e.which && n.trigger( "toggle", { originalEvent : e } )} ), this.$selection.on( "focus", function( e ) {} ), this.$selection.on( "blur", function( e ) {} ), t.on( "focus", function( e ) {t.isOpen() || n.$selection.trigger( "focus" )} ) }, r.prototype.clear = function() { var e = this.$selection.find( ".select2-selection__rendered" ); e.empty(), e.removeAttr( "title" ) }, r.prototype.display = function( e, t ) { var n = this.options.get( "templateSelection" ); return this.options.get( "escapeMarkup" )( n( e, t ) ) }, r.prototype.selectionContainer = function() {return e( "<span></span>" )}, r.prototype.update = function( e ) { if ( 0 !== e.length ) { var t = e[ 0 ], n = this.$selection.find( ".select2-selection__rendered" ), i = this.display( t, n ); n.empty().append( i ); var r = t.title || t.text; r ? n.attr( "title", r ) : n.removeAttr( "title" ) } else this.clear() }, r } ), e.define( "select2/selection/multiple", ["jquery", "./base", "../utils"], function( r, e, l ) { function n( e, t ) {n.__super__.constructor.apply( this, arguments )} return l.Extend( n, e ), n.prototype.render = function() { var e = n.__super__.render.call( this ); return e.addClass( "select2-selection--multiple" ), e.html( '<ul class="select2-selection__rendered"></ul>' ), e }, n.prototype.bind = function( e, t ) { var i = this; n.__super__.bind.apply( this, arguments ), this.$selection.on( "click", function( e ) {i.trigger( "toggle", { originalEvent : e } )} ), this.$selection.on( "click", ".select2-selection__choice__remove", function( e ) { if ( !i.options.get( "disabled" ) ) { var t = r( this ).parent(), n = l.GetData( t[ 0 ], "data" ); i.trigger( "unselect", { originalEvent : e, data : n } ) } } ) }, n.prototype.clear = function() { var e = this.$selection.find( ".select2-selection__rendered" ); e.empty(), e.removeAttr( "title" ) }, n.prototype.display = function( e, t ) { var n = this.options.get( "templateSelection" ); return this.options.get( "escapeMarkup" )( n( e, t ) ) }, n.prototype.selectionContainer = function() {return r( '<li class="select2-selection__choice"><span class="select2-selection__choice__remove" role="presentation">×</span></li>' )}, n.prototype.update = function( e ) { if ( this.clear(), 0 !== e.length ) { for ( var t = [], n = 0; n < e.length; n++ ) { var i = e[ n ], r = this.selectionContainer(), o = this.display( i, r ); r.append( o ); var s = i.title || i.text; s && r.attr( "title", s ), l.StoreData( r[ 0 ], "data", i ), t.push( r ) } var a = this.$selection.find( ".select2-selection__rendered" ); l.appendMany( a, t ) } }, n } ), e.define( "select2/selection/placeholder", ["../utils"], function( e ) { function t( e, t, n ) {this.placeholder = this.normalizePlaceholder( n.get( "placeholder" ) ), e.call( this, t, n )} return t.prototype.normalizePlaceholder = function( e, t ) {return "string" == typeof t && (t = { id : "", text : t }), t}, t.prototype.createPlaceholder = function( e, t ) { var n = this.selectionContainer(); return n.html( this.display( t ) ), n.addClass( "select2-selection__placeholder" ).removeClass( "select2-selection__choice" ), n }, t.prototype.update = function( e, t ) { var n = 1 == t.length && t[ 0 ].id != this.placeholder.id; if ( 1 < t.length || n ) return e.call( this, t ); this.clear(); var i = this.createPlaceholder( this.placeholder ); this.$selection.find( ".select2-selection__rendered" ).append( i ) }, t } ), e.define( "select2/selection/allowClear", ["jquery", "../keys", "../utils"], function( r, i, a ) { function e() {} return e.prototype.bind = function( e, t, n ) { var i = this; e.call( this, t, n ), null == this.placeholder && this.options.get( "debug" ) && window.console && console.error && console.error( "Select2: The `allowClear` option should be used in combination with the `placeholder` option." ), this.$selection.on( "mousedown", ".select2-selection__clear", function( e ) {i._handleClear( e )} ), t.on( "keypress", function( e ) {i._handleKeyboardClear( e, t )} ) }, e.prototype._handleClear = function( e, t ) { if ( !this.options.get( "disabled" ) ) { var n = this.$selection.find( ".select2-selection__clear" ); if ( 0 !== n.length ) { t.stopPropagation(); var i = a.GetData( n[ 0 ], "data" ), r = this.$element.val(); this.$element.val( this.placeholder.id ); var o = { data : i }; if ( this.trigger( "clear", o ), o.prevented ) this.$element.val( r ); else { for ( var s = 0; s < i.length; s++ ) if ( o = { data : i[ s ] }, this.trigger( "unselect", o ), o.prevented ) return void this.$element.val( r ); this.$element.trigger( "change" ), this.trigger( "toggle", {} ) } } } }, e.prototype._handleKeyboardClear = function( e, t, n ) {n.isOpen() || t.which != i.DELETE && t.which != i.BACKSPACE || this._handleClear( t )}, e.prototype.update = function( e, t ) { if ( e.call( this, t ), !(0 < this.$selection.find( ".select2-selection__placeholder" ).length || 0 === t.length) ) { var n = this.options.get( "translations" ).get( "removeAllItems" ), i = r( '<span class="select2-selection__clear" title="' + n() + '">×</span>' ); a.StoreData( i[ 0 ], "data", t ), this.$selection.find( ".select2-selection__rendered" ).prepend( i ) } }, e } ), e.define( "select2/selection/search", ["jquery", "../utils", "../keys"], function( i, a, l ) { function e( e, t, n ) {e.call( this, t, n )} return e.prototype.render = function( e ) { var t = i( '<li class="select2-search select2-search--inline"><input class="select2-search__field" type="search" tabindex="-1" autocomplete="off" autocorrect="off" autocapitalize="none" spellcheck="false" role="searchbox" aria-autocomplete="list" /></li>' ); this.$searchContainer = t, this.$search = t.find( "input" ); var n = e.call( this ); return this._transferTabIndex(), n }, e.prototype.bind = function( e, t, n ) { var i = this, r = t.id + "-results"; e.call( this, t, n ), t.on( "open", function() {i.$search.attr( "aria-controls", r ), i.$search.trigger( "focus" )} ), t.on( "close", function() {i.$search.val( "" ), i.$search.removeAttr( "aria-controls" ), i.$search.removeAttr( "aria-activedescendant" ), i.$search.trigger( "focus" )} ), t.on( "enable", function() {i.$search.prop( "disabled", !1 ), i._transferTabIndex()} ), t.on( "disable", function() {i.$search.prop( "disabled", !0 )} ), t.on( "focus", function( e ) {i.$search.trigger( "focus" )} ), t.on( "results:focus", function( e ) {e.data._resultId ? i.$search.attr( "aria-activedescendant", e.data._resultId ) : i.$search.removeAttr( "aria-activedescendant" )} ), this.$selection.on( "focusin", ".select2-search--inline", function( e ) {i.trigger( "focus", e )} ), this.$selection.on( "focusout", ".select2-search--inline", function( e ) {i._handleBlur( e )} ), this.$selection.on( "keydown", ".select2-search--inline", function( e ) { if ( e.stopPropagation(), i.trigger( "keypress", e ), i._keyUpPrevented = e.isDefaultPrevented(), e.which === l.BACKSPACE && "" === i.$search.val() ) { var t = i.$searchContainer.prev( ".select2-selection__choice" ); if ( 0 < t.length ) { var n = a.GetData( t[ 0 ], "data" ); i.searchRemoveChoice( n ), e.preventDefault() } } } ), this.$selection.on( "click", ".select2-search--inline", function( e ) {i.$search.val() && e.stopPropagation()} ); var o = document.documentMode, s = o && o <= 11; this.$selection.on( "input.searchcheck", ".select2-search--inline", function( e ) {s ? i.$selection.off( "input.search input.searchcheck" ) : i.$selection.off( "keyup.search" )} ), this.$selection.on( "keyup.search input.search", ".select2-search--inline", function( e ) { if ( s && "input" === e.type ) i.$selection.off( "input.search input.searchcheck" ); else { var t = e.which; t != l.SHIFT && t != l.CTRL && t != l.ALT && t != l.TAB && i.handleSearch( e ) } } ) }, e.prototype._transferTabIndex = function( e ) {this.$search.attr( "tabindex", this.$selection.attr( "tabindex" ) ), this.$selection.attr( "tabindex", "-1" )}, e.prototype.createPlaceholder = function( e, t ) {this.$search.attr( "placeholder", t.text )}, e.prototype.update = function( e, t ) { var n = this.$search[ 0 ] == document.activeElement; this.$search.attr( "placeholder", "" ), e.call( this, t ), this.$selection.find( ".select2-selection__rendered" ).append( this.$searchContainer ), this.resizeSearch(), n && this.$search.trigger( "focus" ) }, e.prototype.handleSearch = function() { if ( this.resizeSearch(), !this._keyUpPrevented ) { var e = this.$search.val(); this.trigger( "query", { term : e } ) } this._keyUpPrevented = !1 }, e.prototype.searchRemoveChoice = function( e, t ) {this.trigger( "unselect", { data : t } ), this.$search.val( t.text ), this.handleSearch()}, e.prototype.resizeSearch = function() { this.$search.css( "width", "25px" ); var e = ""; "" !== this.$search.attr( "placeholder" ) ? e = this.$selection.find( ".select2-selection__rendered" ).width() : e = .75 * (this.$search.val().length + 1) + "em"; this.$search.css( "width", e ) }, e } ), e.define( "select2/selection/eventRelay", ["jquery"], function( s ) { function e() {} return e.prototype.bind = function( e, t, n ) { var i = this, r = ["open", "opening", "close", "closing", "select", "selecting", "unselect", "unselecting", "clear", "clearing"], o = ["opening", "closing", "selecting", "unselecting", "clearing"]; e.call( this, t, n ), t.on( "*", function( e, t ) { if ( -1 !== s.inArray( e, r ) ) { t = t || {}; var n = s.Event( "select2:" + e, { params : t } ); i.$element.trigger( n ), -1 !== s.inArray( e, o ) && (t.prevented = n.isDefaultPrevented()) } } ) }, e } ), e.define( "select2/translation", ["jquery", "require"], function( t, n ) { function i( e ) {this.dict = e || {}} return i.prototype.all = function() {return this.dict}, i.prototype.get = function( e ) {return this.dict[ e ]}, i.prototype.extend = function( e ) {this.dict = t.extend( {}, e.all(), this.dict )}, i._cache = {}, i.loadPath = function( e ) { if ( !(e in i._cache) ) { var t = n( e ); i._cache[ e ] = t } return new i( i._cache[ e ] ) }, i } ), e.define( "select2/diacritics", [], function() { return { "Ⓐ" : "A", "A" : "A", "À" : "A", "Á" : "A", "Â" : "A", "Ầ" : "A", "Ấ" : "A", "Ẫ" : "A", "Ẩ" : "A", "Ã" : "A", "Ā" : "A", "Ă" : "A", "Ằ" : "A", "Ắ" : "A", "Ẵ" : "A", "Ẳ" : "A", "Ȧ" : "A", "Ǡ" : "A", "Ä" : "A", "Ǟ" : "A", "Ả" : "A", "Å" : "A", "Ǻ" : "A", "Ǎ" : "A", "Ȁ" : "A", "Ȃ" : "A", "Ạ" : "A", "Ậ" : "A", "Ặ" : "A", "Ḁ" : "A", "Ą" : "A", "Ⱥ" : "A", "Ɐ" : "A", "Ꜳ" : "AA", "Æ" : "AE", "Ǽ" : "AE", "Ǣ" : "AE", "Ꜵ" : "AO", "Ꜷ" : "AU", "Ꜹ" : "AV", "Ꜻ" : "AV", "Ꜽ" : "AY", "Ⓑ" : "B", "B" : "B", "Ḃ" : "B", "Ḅ" : "B", "Ḇ" : "B", "Ƀ" : "B", "Ƃ" : "B", "Ɓ" : "B", "Ⓒ" : "C", "C" : "C", "Ć" : "C", "Ĉ" : "C", "Ċ" : "C", "Č" : "C", "Ç" : "C", "Ḉ" : "C", "Ƈ" : "C", "Ȼ" : "C", "Ꜿ" : "C", "Ⓓ" : "D", "D" : "D", "Ḋ" : "D", "Ď" : "D", "Ḍ" : "D", "Ḑ" : "D", "Ḓ" : "D", "Ḏ" : "D", "Đ" : "D", "Ƌ" : "D", "Ɗ" : "D", "Ɖ" : "D", "Ꝺ" : "D", "DZ" : "DZ", "DŽ" : "DZ", "Dz" : "Dz", "Dž" : "Dz", "Ⓔ" : "E", "E" : "E", "È" : "E", "É" : "E", "Ê" : "E", "Ề" : "E", "Ế" : "E", "Ễ" : "E", "Ể" : "E", "Ẽ" : "E", "Ē" : "E", "Ḕ" : "E", "Ḗ" : "E", "Ĕ" : "E", "Ė" : "E", "Ë" : "E", "Ẻ" : "E", "Ě" : "E", "Ȅ" : "E", "Ȇ" : "E", "Ẹ" : "E", "Ệ" : "E", "Ȩ" : "E", "Ḝ" : "E", "Ę" : "E", "Ḙ" : "E", "Ḛ" : "E", "Ɛ" : "E", "Ǝ" : "E", "Ⓕ" : "F", "F" : "F", "Ḟ" : "F", "Ƒ" : "F", "Ꝼ" : "F", "Ⓖ" : "G", "G" : "G", "Ǵ" : "G", "Ĝ" : "G", "Ḡ" : "G", "Ğ" : "G", "Ġ" : "G", "Ǧ" : "G", "Ģ" : "G", "Ǥ" : "G", "Ɠ" : "G", "Ꞡ" : "G", "Ᵹ" : "G", "Ꝿ" : "G", "Ⓗ" : "H", "H" : "H", "Ĥ" : "H", "Ḣ" : "H", "Ḧ" : "H", "Ȟ" : "H", "Ḥ" : "H", "Ḩ" : "H", "Ḫ" : "H", "Ħ" : "H", "Ⱨ" : "H", "Ⱶ" : "H", "Ɥ" : "H", "Ⓘ" : "I", "I" : "I", "Ì" : "I", "Í" : "I", "Î" : "I", "Ĩ" : "I", "Ī" : "I", "Ĭ" : "I", "İ" : "I", "Ï" : "I", "Ḯ" : "I", "Ỉ" : "I", "Ǐ" : "I", "Ȉ" : "I", "Ȋ" : "I", "Ị" : "I", "Į" : "I", "Ḭ" : "I", "Ɨ" : "I", "Ⓙ" : "J", "J" : "J", "Ĵ" : "J", "Ɉ" : "J", "Ⓚ" : "K", "K" : "K", "Ḱ" : "K", "Ǩ" : "K", "Ḳ" : "K", "Ķ" : "K", "Ḵ" : "K", "Ƙ" : "K", "Ⱪ" : "K", "Ꝁ" : "K", "Ꝃ" : "K", "Ꝅ" : "K", "Ꞣ" : "K", "Ⓛ" : "L", "L" : "L", "Ŀ" : "L", "Ĺ" : "L", "Ľ" : "L", "Ḷ" : "L", "Ḹ" : "L", "Ļ" : "L", "Ḽ" : "L", "Ḻ" : "L", "Ł" : "L", "Ƚ" : "L", "Ɫ" : "L", "Ⱡ" : "L", "Ꝉ" : "L", "Ꝇ" : "L", "Ꞁ" : "L", "LJ" : "LJ", "Lj" : "Lj", "Ⓜ" : "M", "M" : "M", "Ḿ" : "M", "Ṁ" : "M", "Ṃ" : "M", "Ɱ" : "M", "Ɯ" : "M", "Ⓝ" : "N", "N" : "N", "Ǹ" : "N", "Ń" : "N", "Ñ" : "N", "Ṅ" : "N", "Ň" : "N", "Ṇ" : "N", "Ņ" : "N", "Ṋ" : "N", "Ṉ" : "N", "Ƞ" : "N", "Ɲ" : "N", "Ꞑ" : "N", "Ꞥ" : "N", "NJ" : "NJ", "Nj" : "Nj", "Ⓞ" : "O", "O" : "O", "Ò" : "O", "Ó" : "O", "Ô" : "O", "Ồ" : "O", "Ố" : "O", "Ỗ" : "O", "Ổ" : "O", "Õ" : "O", "Ṍ" : "O", "Ȭ" : "O", "Ṏ" : "O", "Ō" : "O", "Ṑ" : "O", "Ṓ" : "O", "Ŏ" : "O", "Ȯ" : "O", "Ȱ" : "O", "Ö" : "O", "Ȫ" : "O", "Ỏ" : "O", "Ő" : "O", "Ǒ" : "O", "Ȍ" : "O", "Ȏ" : "O", "Ơ" : "O", "Ờ" : "O", "Ớ" : "O", "Ỡ" : "O", "Ở" : "O", "Ợ" : "O", "Ọ" : "O", "Ộ" : "O", "Ǫ" : "O", "Ǭ" : "O", "Ø" : "O", "Ǿ" : "O", "Ɔ" : "O", "Ɵ" : "O", "Ꝋ" : "O", "Ꝍ" : "O", "Œ" : "OE", "Ƣ" : "OI", "Ꝏ" : "OO", "Ȣ" : "OU", "Ⓟ" : "P", "P" : "P", "Ṕ" : "P", "Ṗ" : "P", "Ƥ" : "P", "Ᵽ" : "P", "Ꝑ" : "P", "Ꝓ" : "P", "Ꝕ" : "P", "Ⓠ" : "Q", "Q" : "Q", "Ꝗ" : "Q", "Ꝙ" : "Q", "Ɋ" : "Q", "Ⓡ" : "R", "R" : "R", "Ŕ" : "R", "Ṙ" : "R", "Ř" : "R", "Ȑ" : "R", "Ȓ" : "R", "Ṛ" : "R", "Ṝ" : "R", "Ŗ" : "R", "Ṟ" : "R", "Ɍ" : "R", "Ɽ" : "R", "Ꝛ" : "R", "Ꞧ" : "R", "Ꞃ" : "R", "Ⓢ" : "S", "S" : "S", "ẞ" : "S", "Ś" : "S", "Ṥ" : "S", "Ŝ" : "S", "Ṡ" : "S", "Š" : "S", "Ṧ" : "S", "Ṣ" : "S", "Ṩ" : "S", "Ș" : "S", "Ş" : "S", "Ȿ" : "S", "Ꞩ" : "S", "Ꞅ" : "S", "Ⓣ" : "T", "T" : "T", "Ṫ" : "T", "Ť" : "T", "Ṭ" : "T", "Ț" : "T", "Ţ" : "T", "Ṱ" : "T", "Ṯ" : "T", "Ŧ" : "T", "Ƭ" : "T", "Ʈ" : "T", "Ⱦ" : "T", "Ꞇ" : "T", "Ꜩ" : "TZ", "Ⓤ" : "U", "U" : "U", "Ù" : "U", "Ú" : "U", "Û" : "U", "Ũ" : "U", "Ṹ" : "U", "Ū" : "U", "Ṻ" : "U", "Ŭ" : "U", "Ü" : "U", "Ǜ" : "U", "Ǘ" : "U", "Ǖ" : "U", "Ǚ" : "U", "Ủ" : "U", "Ů" : "U", "Ű" : "U", "Ǔ" : "U", "Ȕ" : "U", "Ȗ" : "U", "Ư" : "U", "Ừ" : "U", "Ứ" : "U", "Ữ" : "U", "Ử" : "U", "Ự" : "U", "Ụ" : "U", "Ṳ" : "U", "Ų" : "U", "Ṷ" : "U", "Ṵ" : "U", "Ʉ" : "U", "Ⓥ" : "V", "V" : "V", "Ṽ" : "V", "Ṿ" : "V", "Ʋ" : "V", "Ꝟ" : "V", "Ʌ" : "V", "Ꝡ" : "VY", "Ⓦ" : "W", "W" : "W", "Ẁ" : "W", "Ẃ" : "W", "Ŵ" : "W", "Ẇ" : "W", "Ẅ" : "W", "Ẉ" : "W", "Ⱳ" : "W", "Ⓧ" : "X", "X" : "X", "Ẋ" : "X", "Ẍ" : "X", "Ⓨ" : "Y", "Y" : "Y", "Ỳ" : "Y", "Ý" : "Y", "Ŷ" : "Y", "Ỹ" : "Y", "Ȳ" : "Y", "Ẏ" : "Y", "Ÿ" : "Y", "Ỷ" : "Y", "Ỵ" : "Y", "Ƴ" : "Y", "Ɏ" : "Y", "Ỿ" : "Y", "Ⓩ" : "Z", "Z" : "Z", "Ź" : "Z", "Ẑ" : "Z", "Ż" : "Z", "Ž" : "Z", "Ẓ" : "Z", "Ẕ" : "Z", "Ƶ" : "Z", "Ȥ" : "Z", "Ɀ" : "Z", "Ⱬ" : "Z", "Ꝣ" : "Z", "ⓐ" : "a", "a" : "a", "ẚ" : "a", "à" : "a", "á" : "a", "â" : "a", "ầ" : "a", "ấ" : "a", "ẫ" : "a", "ẩ" : "a", "ã" : "a", "ā" : "a", "ă" : "a", "ằ" : "a", "ắ" : "a", "ẵ" : "a", "ẳ" : "a", "ȧ" : "a", "ǡ" : "a", "ä" : "a", "ǟ" : "a", "ả" : "a", "å" : "a", "ǻ" : "a", "ǎ" : "a", "ȁ" : "a", "ȃ" : "a", "ạ" : "a", "ậ" : "a", "ặ" : "a", "ḁ" : "a", "ą" : "a", "ⱥ" : "a", "ɐ" : "a", "ꜳ" : "aa", "æ" : "ae", "ǽ" : "ae", "ǣ" : "ae", "ꜵ" : "ao", "ꜷ" : "au", "ꜹ" : "av", "ꜻ" : "av", "ꜽ" : "ay", "ⓑ" : "b", "b" : "b", "ḃ" : "b", "ḅ" : "b", "ḇ" : "b", "ƀ" : "b", "ƃ" : "b", "ɓ" : "b", "ⓒ" : "c", "c" : "c", "ć" : "c", "ĉ" : "c", "ċ" : "c", "č" : "c", "ç" : "c", "ḉ" : "c", "ƈ" : "c", "ȼ" : "c", "ꜿ" : "c", "ↄ" : "c", "ⓓ" : "d", "d" : "d", "ḋ" : "d", "ď" : "d", "ḍ" : "d", "ḑ" : "d", "ḓ" : "d", "ḏ" : "d", "đ" : "d", "ƌ" : "d", "ɖ" : "d", "ɗ" : "d", "ꝺ" : "d", "dz" : "dz", "dž" : "dz", "ⓔ" : "e", "e" : "e", "è" : "e", "é" : "e", "ê" : "e", "ề" : "e", "ế" : "e", "ễ" : "e", "ể" : "e", "ẽ" : "e", "ē" : "e", "ḕ" : "e", "ḗ" : "e", "ĕ" : "e", "ė" : "e", "ë" : "e", "ẻ" : "e", "ě" : "e", "ȅ" : "e", "ȇ" : "e", "ẹ" : "e", "ệ" : "e", "ȩ" : "e", "ḝ" : "e", "ę" : "e", "ḙ" : "e", "ḛ" : "e", "ɇ" : "e", "ɛ" : "e", "ǝ" : "e", "ⓕ" : "f", "f" : "f", "ḟ" : "f", "ƒ" : "f", "ꝼ" : "f", "ⓖ" : "g", "g" : "g", "ǵ" : "g", "ĝ" : "g", "ḡ" : "g", "ğ" : "g", "ġ" : "g", "ǧ" : "g", "ģ" : "g", "ǥ" : "g", "ɠ" : "g", "ꞡ" : "g", "ᵹ" : "g", "ꝿ" : "g", "ⓗ" : "h", "h" : "h", "ĥ" : "h", "ḣ" : "h", "ḧ" : "h", "ȟ" : "h", "ḥ" : "h", "ḩ" : "h", "ḫ" : "h", "ẖ" : "h", "ħ" : "h", "ⱨ" : "h", "ⱶ" : "h", "ɥ" : "h", "ƕ" : "hv", "ⓘ" : "i", "i" : "i", "ì" : "i", "í" : "i", "î" : "i", "ĩ" : "i", "ī" : "i", "ĭ" : "i", "ï" : "i", "ḯ" : "i", "ỉ" : "i", "ǐ" : "i", "ȉ" : "i", "ȋ" : "i", "ị" : "i", "į" : "i", "ḭ" : "i", "ɨ" : "i", "ı" : "i", "ⓙ" : "j", "j" : "j", "ĵ" : "j", "ǰ" : "j", "ɉ" : "j", "ⓚ" : "k", "k" : "k", "ḱ" : "k", "ǩ" : "k", "ḳ" : "k", "ķ" : "k", "ḵ" : "k", "ƙ" : "k", "ⱪ" : "k", "ꝁ" : "k", "ꝃ" : "k", "ꝅ" : "k", "ꞣ" : "k", "ⓛ" : "l", "l" : "l", "ŀ" : "l", "ĺ" : "l", "ľ" : "l", "ḷ" : "l", "ḹ" : "l", "ļ" : "l", "ḽ" : "l", "ḻ" : "l", "ſ" : "l", "ł" : "l", "ƚ" : "l", "ɫ" : "l", "ⱡ" : "l", "ꝉ" : "l", "ꞁ" : "l", "ꝇ" : "l", "lj" : "lj", "ⓜ" : "m", "m" : "m", "ḿ" : "m", "ṁ" : "m", "ṃ" : "m", "ɱ" : "m", "ɯ" : "m", "ⓝ" : "n", "n" : "n", "ǹ" : "n", "ń" : "n", "ñ" : "n", "ṅ" : "n", "ň" : "n", "ṇ" : "n", "ņ" : "n", "ṋ" : "n", "ṉ" : "n", "ƞ" : "n", "ɲ" : "n", "ʼn" : "n", "ꞑ" : "n", "ꞥ" : "n", "nj" : "nj", "ⓞ" : "o", "o" : "o", "ò" : "o", "ó" : "o", "ô" : "o", "ồ" : "o", "ố" : "o", "ỗ" : "o", "ổ" : "o", "õ" : "o", "ṍ" : "o", "ȭ" : "o", "ṏ" : "o", "ō" : "o", "ṑ" : "o", "ṓ" : "o", "ŏ" : "o", "ȯ" : "o", "ȱ" : "o", "ö" : "o", "ȫ" : "o", "ỏ" : "o", "ő" : "o", "ǒ" : "o", "ȍ" : "o", "ȏ" : "o", "ơ" : "o", "ờ" : "o", "ớ" : "o", "ỡ" : "o", "ở" : "o", "ợ" : "o", "ọ" : "o", "ộ" : "o", "ǫ" : "o", "ǭ" : "o", "ø" : "o", "ǿ" : "o", "ɔ" : "o", "ꝋ" : "o", "ꝍ" : "o", "ɵ" : "o", "œ" : "oe", "ƣ" : "oi", "ȣ" : "ou", "ꝏ" : "oo", "ⓟ" : "p", "p" : "p", "ṕ" : "p", "ṗ" : "p", "ƥ" : "p", "ᵽ" : "p", "ꝑ" : "p", "ꝓ" : "p", "ꝕ" : "p", "ⓠ" : "q", "q" : "q", "ɋ" : "q", "ꝗ" : "q", "ꝙ" : "q", "ⓡ" : "r", "r" : "r", "ŕ" : "r", "ṙ" : "r", "ř" : "r", "ȑ" : "r", "ȓ" : "r", "ṛ" : "r", "ṝ" : "r", "ŗ" : "r", "ṟ" : "r", "ɍ" : "r", "ɽ" : "r", "ꝛ" : "r", "ꞧ" : "r", "ꞃ" : "r", "ⓢ" : "s", "s" : "s", "ß" : "s", "ś" : "s", "ṥ" : "s", "ŝ" : "s", "ṡ" : "s", "š" : "s", "ṧ" : "s", "ṣ" : "s", "ṩ" : "s", "ș" : "s", "ş" : "s", "ȿ" : "s", "ꞩ" : "s", "ꞅ" : "s", "ẛ" : "s", "ⓣ" : "t", "t" : "t", "ṫ" : "t", "ẗ" : "t", "ť" : "t", "ṭ" : "t", "ț" : "t", "ţ" : "t", "ṱ" : "t", "ṯ" : "t", "ŧ" : "t", "ƭ" : "t", "ʈ" : "t", "ⱦ" : "t", "ꞇ" : "t", "ꜩ" : "tz", "ⓤ" : "u", "u" : "u", "ù" : "u", "ú" : "u", "û" : "u", "ũ" : "u", "ṹ" : "u", "ū" : "u", "ṻ" : "u", "ŭ" : "u", "ü" : "u", "ǜ" : "u", "ǘ" : "u", "ǖ" : "u", "ǚ" : "u", "ủ" : "u", "ů" : "u", "ű" : "u", "ǔ" : "u", "ȕ" : "u", "ȗ" : "u", "ư" : "u", "ừ" : "u", "ứ" : "u", "ữ" : "u", "ử" : "u", "ự" : "u", "ụ" : "u", "ṳ" : "u", "ų" : "u", "ṷ" : "u", "ṵ" : "u", "ʉ" : "u", "ⓥ" : "v", "v" : "v", "ṽ" : "v", "ṿ" : "v", "ʋ" : "v", "ꝟ" : "v", "ʌ" : "v", "ꝡ" : "vy", "ⓦ" : "w", "w" : "w", "ẁ" : "w", "ẃ" : "w", "ŵ" : "w", "ẇ" : "w", "ẅ" : "w", "ẘ" : "w", "ẉ" : "w", "ⱳ" : "w", "ⓧ" : "x", "x" : "x", "ẋ" : "x", "ẍ" : "x", "ⓨ" : "y", "y" : "y", "ỳ" : "y", "ý" : "y", "ŷ" : "y", "ỹ" : "y", "ȳ" : "y", "ẏ" : "y", "ÿ" : "y", "ỷ" : "y", "ẙ" : "y", "ỵ" : "y", "ƴ" : "y", "ɏ" : "y", "ỿ" : "y", "ⓩ" : "z", "z" : "z", "ź" : "z", "ẑ" : "z", "ż" : "z", "ž" : "z", "ẓ" : "z", "ẕ" : "z", "ƶ" : "z", "ȥ" : "z", "ɀ" : "z", "ⱬ" : "z", "ꝣ" : "z", "Ά" : "Α", "Έ" : "Ε", "Ή" : "Η", "Ί" : "Ι", "Ϊ" : "Ι", "Ό" : "Ο", "Ύ" : "Υ", "Ϋ" : "Υ", "Ώ" : "Ω", "ά" : "α", "έ" : "ε", "ή" : "η", "ί" : "ι", "ϊ" : "ι", "ΐ" : "ι", "ό" : "ο", "ύ" : "υ", "ϋ" : "υ", "ΰ" : "υ", "ώ" : "ω", "ς" : "σ", "’" : "'" } } ), e.define( "select2/data/base", ["../utils"], function( i ) { function n( e, t ) {n.__super__.constructor.call( this )} return i.Extend( n, i.Observable ), n.prototype.current = function( e ) {throw new Error( "The `current` method must be defined in child classes." )}, n.prototype.query = function( e, t ) {throw new Error( "The `query` method must be defined in child classes." )}, n.prototype.bind = function( e, t ) {}, n.prototype.destroy = function() {}, n.prototype.generateResultId = function( e, t ) { var n = e.id + "-result-"; return n += i.generateChars( 4 ), null != t.id ? n += "-" + t.id.toString() : n += "-" + i.generateChars( 4 ), n }, n } ), e.define( "select2/data/select", ["./base", "../utils", "jquery"], function( e, a, l ) { function n( e, t ) {this.$element = e, this.options = t, n.__super__.constructor.call( this )} return a.Extend( n, e ), n.prototype.current = function( e ) { var n = [], i = this; this.$element.find( ":selected" ).each( function() { var e = l( this ), t = i.item( e ); n.push( t ) } ), e( n ) }, n.prototype.select = function( r ) { var o = this; if ( r.selected = !0, l( r.element ).is( "option" ) ) return r.element.selected = !0, void this.$element.trigger( "change" ); if ( this.$element.prop( "multiple" ) ) this.current( function( e ) { var t = []; (r = [r]).push.apply( r, e ); for ( var n = 0; n < r.length; n++ ) { var i = r[ n ].id; -1 === l.inArray( i, t ) && t.push( i ) } o.$element.val( t ), o.$element.trigger( "change" ) } ); else { var e = r.id; this.$element.val( e ), this.$element.trigger( "change" ) } }, n.prototype.unselect = function( r ) { var o = this; if ( this.$element.prop( "multiple" ) ) { if ( r.selected = !1, l( r.element ).is( "option" ) ) return r.element.selected = !1, void this.$element.trigger( "change" ); this.current( function( e ) { for ( var t = [], n = 0; n < e.length; n++ ) { var i = e[ n ].id; i !== r.id && -1 === l.inArray( i, t ) && t.push( i ) } o.$element.val( t ), o.$element.trigger( "change" ) } ) } }, n.prototype.bind = function( e, t ) { var n = this; (this.container = e).on( "select", function( e ) {n.select( e.data )} ), e.on( "unselect", function( e ) {n.unselect( e.data )} ) }, n.prototype.destroy = function() {this.$element.find( "*" ).each( function() {a.RemoveData( this )} )}, n.prototype.query = function( i, e ) { var r = [], o = this; this.$element.children().each( function() { var e = l( this ); if ( e.is( "option" ) || e.is( "optgroup" ) ) { var t = o.item( e ), n = o.matches( i, t ); null !== n && r.push( n ) } } ), e( { results : r } ) }, n.prototype.addOptions = function( e ) {a.appendMany( this.$element, e )}, n.prototype.option = function( e ) { var t; e.children ? (t = document.createElement( "optgroup" )).label = e.text : void 0 !== (t = document.createElement( "option" )).textContent ? t.textContent = e.text : t.innerText = e.text, void 0 !== e.id && (t.value = e.id), e.disabled && (t.disabled = !0), e.selected && (t.selected = !0), e.title && (t.title = e.title); var n = l( t ), i = this._normalizeItem( e ); return i.element = t, a.StoreData( t, "data", i ), n }, n.prototype.item = function( e ) { var t = {}; if ( null != (t = a.GetData( e[ 0 ], "data" )) ) return t; if ( e.is( "option" ) ) t = { id : e.val(), text : e.text(), disabled : e.prop( "disabled" ), selected : e.prop( "selected" ), title : e.prop( "title" ) }; else if ( e.is( "optgroup" ) ) { t = { text : e.prop( "label" ), children : [], title : e.prop( "title" ) }; for ( var n = e.children( "option" ), i = [], r = 0; r < n.length; r++ ) { var o = l( n[ r ] ), s = this.item( o ); i.push( s ) } t.children = i } return (t = this._normalizeItem( t )).element = e[ 0 ], a.StoreData( e[ 0 ], "data", t ), t }, n.prototype._normalizeItem = function( e ) { e !== Object( e ) && (e = { id : e, text : e }); return null != (e = l.extend( {}, { text : "" }, e )).id && (e.id = e.id.toString()), null != e.text && (e.text = e.text.toString()), null == e._resultId && e.id && null != this.container && (e._resultId = this.generateResultId( this.container, e )), l.extend( {}, { selected : !1, disabled : !1 }, e ) }, n.prototype.matches = function( e, t ) {return this.options.get( "matcher" )( e, t )}, n } ), e.define( "select2/data/array", ["./select", "../utils", "jquery"], function( e, f, g ) { function i( e, t ) {this._dataToConvert = t.get( "data" ) || [], i.__super__.constructor.call( this, e, t )} return f.Extend( i, e ), i.prototype.bind = function( e, t ) {i.__super__.bind.call( this, e, t ), this.addOptions( this.convertToOptions( this._dataToConvert ) )}, i.prototype.select = function( n ) { var e = this.$element.find( "option" ).filter( function( e, t ) {return t.value == n.id.toString()} ); 0 === e.length && (e = this.option( n ), this.addOptions( e )), i.__super__.select.call( this, n ) }, i.prototype.convertToOptions = function( e ) { var t = this, n = this.$element.find( "option" ), i = n.map( function() {return t.item( g( this ) ).id} ).get(), r = []; function o( e ) {return function() {return g( this ).val() == e.id}} for ( var s = 0; s < e.length; s++ ) { var a = this._normalizeItem( e[ s ] ); if ( 0 <= g.inArray( a.id, i ) ) { var l = n.filter( o( a ) ), c = this.item( l ), u = g.extend( !0, {}, a, c ), d = this.option( u ); l.replaceWith( d ) } else { var p = this.option( a ); if ( a.children ) { var h = this.convertToOptions( a.children ); f.appendMany( p, h ) } r.push( p ) } } return r }, i } ), e.define( "select2/data/ajax", ["./array", "../utils", "jquery"], function( e, t, o ) { function n( e, t ) {this.ajaxOptions = this._applyDefaults( t.get( "ajax" ) ), null != this.ajaxOptions.processResults && (this.processResults = this.ajaxOptions.processResults), n.__super__.constructor.call( this, e, t )} return t.Extend( n, e ), n.prototype._applyDefaults = function( e ) { var t = { data : function( e ) {return o.extend( {}, e, { q : e.term } )}, transport : function( e, t, n ) { var i = o.ajax( e ); return i.then( t ), i.fail( n ), i } }; return o.extend( {}, t, e, !0 ) }, n.prototype.processResults = function( e ) {return e}, n.prototype.query = function( n, i ) { var r = this; null != this._request && (o.isFunction( this._request.abort ) && this._request.abort(), this._request = null); var t = o.extend( { type : "GET" }, this.ajaxOptions ); function e() { var e = t.transport( t, function( e ) { var t = r.processResults( e, n ); r.options.get( "debug" ) && window.console && console.error && (t && t.results && o.isArray( t.results ) || console.error( "Select2: The AJAX results did not return an array in the `results` key of the response." )), i( t ) }, function() {"status" in e && (0 === e.status || "0" === e.status) || r.trigger( "results:message", { message : "errorLoading" } )} ); r._request = e } "function" == typeof t.url && (t.url = t.url.call( this.$element, n )), "function" == typeof t.data && (t.data = t.data.call( this.$element, n )), this.ajaxOptions.delay && null != n.term ? (this._queryTimeout && window.clearTimeout( this._queryTimeout ), this._queryTimeout = window.setTimeout( e, this.ajaxOptions.delay )) : e() }, n } ), e.define( "select2/data/tags", ["jquery"], function( u ) { function e( e, t, n ) { var i = n.get( "tags" ), r = n.get( "createTag" ); void 0 !== r && (this.createTag = r); var o = n.get( "insertTag" ); if ( void 0 !== o && (this.insertTag = o), e.call( this, t, n ), u.isArray( i ) ) for ( var s = 0; s < i.length; s++ ) { var a = i[ s ], l = this._normalizeItem( a ), c = this.option( l ); this.$element.append( c ) } } return e.prototype.query = function( e, c, u ) { var d = this; this._removeOldTags(), null != c.term && null == c.page ? e.call( this, c, function e( t, n ) { for ( var i = t.results, r = 0; r < i.length; r++ ) { var o = i[ r ], s = null != o.children && !e( { results : o.children }, !0 ); if ( (o.text || "").toUpperCase() === (c.term || "").toUpperCase() || s ) return !n && (t.data = i, void u( t )) } if ( n ) return !0; var a = d.createTag( c ); if ( null != a ) { var l = d.option( a ); l.attr( "data-select2-tag", !0 ), d.addOptions( [l] ), d.insertTag( i, a ) } t.results = i, u( t ) } ) : e.call( this, c, u ) }, e.prototype.createTag = function( e, t ) { var n = u.trim( t.term ); return "" === n ? null : { id : n, text : n } }, e.prototype.insertTag = function( e, t, n ) {t.unshift( n )}, e.prototype._removeOldTags = function( e ) {this.$element.find( "option[data-select2-tag]" ).each( function() {this.selected || u( this ).remove()} )}, e } ), e.define( "select2/data/tokenizer", ["jquery"], function( d ) { function e( e, t, n ) { var i = n.get( "tokenizer" ); void 0 !== i && (this.tokenizer = i), e.call( this, t, n ) } return e.prototype.bind = function( e, t, n ) {e.call( this, t, n ), this.$search = t.dropdown.$search || t.selection.$search || n.find( ".select2-search__field" )}, e.prototype.query = function( e, t, n ) { var i = this; t.term = t.term || ""; var r = this.tokenizer( t, this.options, function( e ) { var t = i._normalizeItem( e ); if ( !i.$element.find( "option" ).filter( function() {return d( this ).val() === t.id} ).length ) { var n = i.option( t ); n.attr( "data-select2-tag", !0 ), i._removeOldTags(), i.addOptions( [n] ) } !function( e ) {i.trigger( "select", { data : e } )}( t ) } ); r.term !== t.term && (this.$search.length && (this.$search.val( r.term ), this.$search.trigger( "focus" )), t.term = r.term), e.call( this, t, n ) }, e.prototype.tokenizer = function( e, t, n, i ) { for ( var r = n.get( "tokenSeparators" ) || [], o = t.term, s = 0, a = this.createTag || function( e ) {return { id : e.term, text : e.term }}; s < o.length; ) { var l = o[ s ]; if ( -1 !== d.inArray( l, r ) ) { var c = o.substr( 0, s ), u = a( d.extend( {}, t, { term : c } ) ); null != u ? (i( u ), o = o.substr( s + 1 ) || "", s = 0) : s++ } else s++ } return { term : o } }, e } ), e.define( "select2/data/minimumInputLength", [], function() { function e( e, t, n ) {this.minimumInputLength = n.get( "minimumInputLength" ), e.call( this, t, n )} return e.prototype.query = function( e, t, n ) {t.term = t.term || "", t.term.length < this.minimumInputLength ? this.trigger( "results:message", { message : "inputTooShort", args : { minimum : this.minimumInputLength, input : t.term, params : t } } ) : e.call( this, t, n )}, e } ), e.define( "select2/data/maximumInputLength", [], function() { function e( e, t, n ) {this.maximumInputLength = n.get( "maximumInputLength" ), e.call( this, t, n )} return e.prototype.query = function( e, t, n ) {t.term = t.term || "", 0 < this.maximumInputLength && t.term.length > this.maximumInputLength ? this.trigger( "results:message", { message : "inputTooLong", args : { maximum : this.maximumInputLength, input : t.term, params : t } } ) : e.call( this, t, n )}, e } ), e.define( "select2/data/maximumSelectionLength", [], function() { function e( e, t, n ) {this.maximumSelectionLength = n.get( "maximumSelectionLength" ), e.call( this, t, n )} return e.prototype.bind = function( e, t, n ) { var i = this; e.call( this, t, n ), t.on( "select", function() {i._checkIfMaximumSelected()} ) }, e.prototype.query = function( e, t, n ) { var i = this; this._checkIfMaximumSelected( function() {e.call( i, t, n )} ) }, e.prototype._checkIfMaximumSelected = function( e, n ) { var i = this; this.current( function( e ) { var t = null != e ? e.length : 0; 0 < i.maximumSelectionLength && t >= i.maximumSelectionLength ? i.trigger( "results:message", { message : "maximumSelected", args : { maximum : i.maximumSelectionLength } } ) : n && n() } ) }, e } ), e.define( "select2/dropdown", ["jquery", "./utils"], function( t, e ) { function n( e, t ) {this.$element = e, this.options = t, n.__super__.constructor.call( this )} return e.Extend( n, e.Observable ), n.prototype.render = function() { var e = t( '<span class="select2-dropdown"><span class="select2-results"></span></span>' ); return e.attr( "dir", this.options.get( "dir" ) ), this.$dropdown = e }, n.prototype.bind = function() {}, n.prototype.position = function( e, t ) {}, n.prototype.destroy = function() {this.$dropdown.remove()}, n } ), e.define( "select2/dropdown/search", ["jquery", "../utils"], function( o, e ) { function t() {} return t.prototype.render = function( e ) { var t = e.call( this ), n = o( '<span class="select2-search select2-search--dropdown"><input class="select2-search__field" type="search" tabindex="-1" autocomplete="off" autocorrect="off" autocapitalize="none" spellcheck="false" role="searchbox" aria-autocomplete="list" /></span>' ); return this.$searchContainer = n, this.$search = n.find( "input" ), t.prepend( n ), t }, t.prototype.bind = function( e, t, n ) { var i = this, r = t.id + "-results"; e.call( this, t, n ), this.$search.on( "keydown", function( e ) {i.trigger( "keypress", e ), i._keyUpPrevented = e.isDefaultPrevented()} ), this.$search.on( "input", function( e ) {o( this ).off( "keyup" )} ), this.$search.on( "keyup input", function( e ) {i.handleSearch( e )} ), t.on( "open", function() {i.$search.attr( "tabindex", 0 ), i.$search.attr( "aria-controls", r ), i.$search.trigger( "focus" ), window.setTimeout( function() {i.$search.trigger( "focus" )}, 0 )} ), t.on( "close", function() {i.$search.attr( "tabindex", -1 ), i.$search.removeAttr( "aria-controls" ), i.$search.removeAttr( "aria-activedescendant" ), i.$search.val( "" ), i.$search.trigger( "blur" )} ), t.on( "focus", function() {t.isOpen() || i.$search.trigger( "focus" )} ), t.on( "results:all", function( e ) {null != e.query.term && "" !== e.query.term || (i.showSearch( e ) ? i.$searchContainer.removeClass( "select2-search--hide" ) : i.$searchContainer.addClass( "select2-search--hide" ))} ), t.on( "results:focus", function( e ) {e.data._resultId ? i.$search.attr( "aria-activedescendant", e.data._resultId ) : i.$search.removeAttr( "aria-activedescendant" )} ) }, t.prototype.handleSearch = function( e ) { if ( !this._keyUpPrevented ) { var t = this.$search.val(); this.trigger( "query", { term : t } ) } this._keyUpPrevented = !1 }, t.prototype.showSearch = function( e, t ) {return !0}, t } ), e.define( "select2/dropdown/hidePlaceholder", [], function() { function e( e, t, n, i ) {this.placeholder = this.normalizePlaceholder( n.get( "placeholder" ) ), e.call( this, t, n, i )} return e.prototype.append = function( e, t ) {t.results = this.removePlaceholder( t.results ), e.call( this, t )}, e.prototype.normalizePlaceholder = function( e, t ) {return "string" == typeof t && (t = { id : "", text : t }), t}, e.prototype.removePlaceholder = function( e, t ) { for ( var n = t.slice( 0 ), i = t.length - 1; 0 <= i; i-- ) { var r = t[ i ]; this.placeholder.id === r.id && n.splice( i, 1 ) } return n }, e } ), e.define( "select2/dropdown/infiniteScroll", ["jquery"], function( n ) { function e( e, t, n, i ) {this.lastParams = {}, e.call( this, t, n, i ), this.$loadingMore = this.createLoadingMore(), this.loading = !1} return e.prototype.append = function( e, t ) {this.$loadingMore.remove(), this.loading = !1, e.call( this, t ), this.showLoadingMore( t ) && (this.$results.append( this.$loadingMore ), this.loadMoreIfNeeded())}, e.prototype.bind = function( e, t, n ) { var i = this; e.call( this, t, n ), t.on( "query", function( e ) {i.lastParams = e, i.loading = !0} ), t.on( "query:append", function( e ) {i.lastParams = e, i.loading = !0} ), this.$results.on( "scroll", this.loadMoreIfNeeded.bind( this ) ) }, e.prototype.loadMoreIfNeeded = function() { var e = n.contains( document.documentElement, this.$loadingMore[ 0 ] ); if ( !this.loading && e ) { var t = this.$results.offset().top + this.$results.outerHeight( !1 ); this.$loadingMore.offset().top + this.$loadingMore.outerHeight( !1 ) <= t + 50 && this.loadMore() } }, e.prototype.loadMore = function() { this.loading = !0; var e = n.extend( {}, { page : 1 }, this.lastParams ); e.page++, this.trigger( "query:append", e ) }, e.prototype.showLoadingMore = function( e, t ) {return t.pagination && t.pagination.more}, e.prototype.createLoadingMore = function() { var e = n( '<li class="select2-results__option select2-results__option--load-more"role="option" aria-disabled="true"></li>' ), t = this.options.get( "translations" ).get( "loadingMore" ); return e.html( t( this.lastParams ) ), e }, e } ), e.define( "select2/dropdown/attachBody", ["jquery", "../utils"], function( f, a ) { function e( e, t, n ) {this.$dropdownParent = f( n.get( "dropdownParent" ) || document.body ), e.call( this, t, n )} return e.prototype.bind = function( e, t, n ) { var i = this; e.call( this, t, n ), t.on( "open", function() {i._showDropdown(), i._attachPositioningHandler( t ), i._bindContainerResultHandlers( t )} ), t.on( "close", function() {i._hideDropdown(), i._detachPositioningHandler( t )} ), this.$dropdownContainer.on( "mousedown", function( e ) {e.stopPropagation()} ) }, e.prototype.destroy = function( e ) {e.call( this ), this.$dropdownContainer.remove()}, e.prototype.position = function( e, t, n ) {t.attr( "class", n.attr( "class" ) ), t.removeClass( "select2" ), t.addClass( "select2-container--open" ), t.css( { position : "absolute", top : -999999 } ), this.$container = n}, e.prototype.render = function( e ) { var t = f( "<span></span>" ), n = e.call( this ); return t.append( n ), this.$dropdownContainer = t }, e.prototype._hideDropdown = function( e ) {this.$dropdownContainer.detach()}, e.prototype._bindContainerResultHandlers = function( e, t ) { if ( !this._containerResultsHandlersBound ) { var n = this; t.on( "results:all", function() {n._positionDropdown(), n._resizeDropdown()} ), t.on( "results:append", function() {n._positionDropdown(), n._resizeDropdown()} ), t.on( "results:message", function() {n._positionDropdown(), n._resizeDropdown()} ), t.on( "select", function() {n._positionDropdown(), n._resizeDropdown()} ), t.on( "unselect", function() {n._positionDropdown(), n._resizeDropdown()} ), this._containerResultsHandlersBound = !0 } }, e.prototype._attachPositioningHandler = function( e, t ) { var n = this, i = "scroll.select2." + t.id, r = "resize.select2." + t.id, o = "orientationchange.select2." + t.id, s = this.$container.parents().filter( a.hasScroll ); s.each( function() {a.StoreData( this, "select2-scroll-position", { x : f( this ).scrollLeft(), y : f( this ).scrollTop() } )} ), s.on( i, function( e ) { var t = a.GetData( this, "select2-scroll-position" ); f( this ).scrollTop( t.y ) } ), f( window ).on( i + " " + r + " " + o, function( e ) {n._positionDropdown(), n._resizeDropdown()} ) }, e.prototype._detachPositioningHandler = function( e, t ) { var n = "scroll.select2." + t.id, i = "resize.select2." + t.id, r = "orientationchange.select2." + t.id; this.$container.parents().filter( a.hasScroll ).off( n ), f( window ).off( n + " " + i + " " + r ) }, e.prototype._positionDropdown = function() { var e = f( window ), t = this.$dropdown.hasClass( "select2-dropdown--above" ), n = this.$dropdown.hasClass( "select2-dropdown--below" ), i = null, r = this.$container.offset(); r.bottom = r.top + this.$container.outerHeight( !1 ); var o = { height : this.$container.outerHeight( !1 ) }; o.top = r.top, o.bottom = r.top + o.height; var s = this.$dropdown.outerHeight( !1 ), a = e.scrollTop(), l = e.scrollTop() + e.height(), c = a < r.top - s, u = l > r.bottom + s, d = { left : r.left, top : o.bottom }, p = this.$dropdownParent; "static" === p.css( "position" ) && (p = p.offsetParent()); var h = { top : 0, left : 0 }; (f.contains( document.body, p[ 0 ] ) || p[ 0 ].isConnected) && (h = p.offset()), d.top -= h.top, d.left -= h.left, t || n || (i = "below"), u || !c || t ? !c && u && t && (i = "below") : i = "above", ("above" == i || t && "below" !== i) && (d.top = o.top - h.top - s), null != i && (this.$dropdown.removeClass( "select2-dropdown--below select2-dropdown--above" ).addClass( "select2-dropdown--" + i ), this.$container.removeClass( "select2-container--below select2-container--above" ).addClass( "select2-container--" + i )), this.$dropdownContainer.css( d ) }, e.prototype._resizeDropdown = function() { var e = { width : this.$container.outerWidth( !1 ) + "px" }; this.options.get( "dropdownAutoWidth" ) && (e.minWidth = e.width, e.position = "relative", e.width = "auto"), this.$dropdown.css( e ) }, e.prototype._showDropdown = function( e ) {this.$dropdownContainer.appendTo( this.$dropdownParent ), this._positionDropdown(), this._resizeDropdown()}, e } ), e.define( "select2/dropdown/minimumResultsForSearch", [], function() { function e( e, t, n, i ) {this.minimumResultsForSearch = n.get( "minimumResultsForSearch" ), this.minimumResultsForSearch < 0 && (this.minimumResultsForSearch = 1 / 0), e.call( this, t, n, i )} return e.prototype.showSearch = function( e, t ) { return !(function e( t ) { for ( var n = 0, i = 0; i < t.length; i++ ) { var r = t[ i ]; r.children ? n += e( r.children ) : n++ } return n }( t.data.results ) < this.minimumResultsForSearch) && e.call( this, t ) }, e } ), e.define( "select2/dropdown/selectOnClose", ["../utils"], function( o ) { function e() {} return e.prototype.bind = function( e, t, n ) { var i = this; e.call( this, t, n ), t.on( "close", function( e ) {i._handleSelectOnClose( e )} ) }, e.prototype._handleSelectOnClose = function( e, t ) { if ( t && null != t.originalSelect2Event ) { var n = t.originalSelect2Event; if ( "select" === n._type || "unselect" === n._type ) return } var i = this.getHighlightedResults(); if ( !(i.length < 1) ) { var r = o.GetData( i[ 0 ], "data" ); null != r.element && r.element.selected || null == r.element && r.selected || this.trigger( "select", { data : r } ) } }, e } ), e.define( "select2/dropdown/closeOnSelect", [], function() { function e() {} return e.prototype.bind = function( e, t, n ) { var i = this; e.call( this, t, n ), t.on( "select", function( e ) {i._selectTriggered( e )} ), t.on( "unselect", function( e ) {i._selectTriggered( e )} ) }, e.prototype._selectTriggered = function( e, t ) { var n = t.originalEvent; n && (n.ctrlKey || n.metaKey) || this.trigger( "close", { originalEvent : n, originalSelect2Event : t } ) }, e } ), e.define( "select2/i18n/en", [], function() { return { errorLoading : function() {return "The results could not be loaded."}, inputTooLong : function( e ) { var t = e.input.length - e.maximum, n = "Please delete " + t + " character"; return 1 != t && (n += "s"), n }, inputTooShort : function( e ) {return "Please enter " + (e.minimum - e.input.length) + " or more characters"}, loadingMore : function() {return "Loading more results…"}, maximumSelected : function( e ) { var t = "You can only select " + e.maximum + " item"; return 1 != e.maximum && (t += "s"), t }, noResults : function() {return "No results found"}, searching : function() {return "Searching…"}, removeAllItems : function() {return "Remove all items"} } } ), e.define( "select2/defaults", ["jquery", "require", "./results", "./selection/single", "./selection/multiple", "./selection/placeholder", "./selection/allowClear", "./selection/search", "./selection/eventRelay", "./utils", "./translation", "./diacritics", "./data/select", "./data/array", "./data/ajax", "./data/tags", "./data/tokenizer", "./data/minimumInputLength", "./data/maximumInputLength", "./data/maximumSelectionLength", "./dropdown", "./dropdown/search", "./dropdown/hidePlaceholder", "./dropdown/infiniteScroll", "./dropdown/attachBody", "./dropdown/minimumResultsForSearch", "./dropdown/selectOnClose", "./dropdown/closeOnSelect", "./i18n/en"], function( c, u, d, p, h, f, g, m, v, y, s, t, _, w, $, b, A, x, S, D, C, E, O, T, q, j, L, I, e ) { function n() {this.reset()} return n.prototype.apply = function( e ) { if ( null == (e = c.extend( !0, {}, this.defaults, e )).dataAdapter ) { if ( null != e.ajax ? e.dataAdapter = $ : null != e.data ? e.dataAdapter = w : e.dataAdapter = _, 0 < e.minimumInputLength && (e.dataAdapter = y.Decorate( e.dataAdapter, x )), 0 < e.maximumInputLength && (e.dataAdapter = y.Decorate( e.dataAdapter, S )), 0 < e.maximumSelectionLength && (e.dataAdapter = y.Decorate( e.dataAdapter, D )), e.tags && (e.dataAdapter = y.Decorate( e.dataAdapter, b )), null == e.tokenSeparators && null == e.tokenizer || (e.dataAdapter = y.Decorate( e.dataAdapter, A )), null != e.query ) { var t = u( e.amdBase + "compat/query" ); e.dataAdapter = y.Decorate( e.dataAdapter, t ) } if ( null != e.initSelection ) { var n = u( e.amdBase + "compat/initSelection" ); e.dataAdapter = y.Decorate( e.dataAdapter, n ) } } if ( null == e.resultsAdapter && (e.resultsAdapter = d, null != e.ajax && (e.resultsAdapter = y.Decorate( e.resultsAdapter, T )), null != e.placeholder && (e.resultsAdapter = y.Decorate( e.resultsAdapter, O )), e.selectOnClose && (e.resultsAdapter = y.Decorate( e.resultsAdapter, L ))), null == e.dropdownAdapter ) { if ( e.multiple ) e.dropdownAdapter = C; else { var i = y.Decorate( C, E ); e.dropdownAdapter = i } if ( 0 !== e.minimumResultsForSearch && (e.dropdownAdapter = y.Decorate( e.dropdownAdapter, j )), e.closeOnSelect && (e.dropdownAdapter = y.Decorate( e.dropdownAdapter, I )), null != e.dropdownCssClass || null != e.dropdownCss || null != e.adaptDropdownCssClass ) { var r = u( e.amdBase + "compat/dropdownCss" ); e.dropdownAdapter = y.Decorate( e.dropdownAdapter, r ) } e.dropdownAdapter = y.Decorate( e.dropdownAdapter, q ) } if ( null == e.selectionAdapter ) { if ( e.multiple ? e.selectionAdapter = h : e.selectionAdapter = p, null != e.placeholder && (e.selectionAdapter = y.Decorate( e.selectionAdapter, f )), e.allowClear && (e.selectionAdapter = y.Decorate( e.selectionAdapter, g )), e.multiple && (e.selectionAdapter = y.Decorate( e.selectionAdapter, m )), null != e.containerCssClass || null != e.containerCss || null != e.adaptContainerCssClass ) { var o = u( e.amdBase + "compat/containerCss" ); e.selectionAdapter = y.Decorate( e.selectionAdapter, o ) } e.selectionAdapter = y.Decorate( e.selectionAdapter, v ) } e.language = this._resolveLanguage( e.language ), e.language.push( "en" ); for ( var s = [], a = 0; a < e.language.length; a++ ) { var l = e.language[ a ]; -1 === s.indexOf( l ) && s.push( l ) } return e.language = s, e.translations = this._processTranslations( e.language, e.debug ), e }, n.prototype.reset = function() { function a( e ) {return e.replace( /[^\u0000-\u007E]/g, function( e ) {return t[ e ] || e} )} this.defaults = { amdBase : "./", amdLanguageBase : "./i18n/", closeOnSelect : !0, debug : !1, dropdownAutoWidth : !1, escapeMarkup : y.escapeMarkup, language : {}, matcher : function e( t, n ) { if ( "" === c.trim( t.term ) ) return n; if ( n.children && 0 < n.children.length ) { for ( var i = c.extend( !0, {}, n ), r = n.children.length - 1; 0 <= r; r-- ) null == e( t, n.children[ r ] ) && i.children.splice( r, 1 ); return 0 < i.children.length ? i : e( t, i ) } var o = a( n.text ).toUpperCase(), s = a( t.term ).toUpperCase(); return -1 < o.indexOf( s ) ? n : null }, minimumInputLength : 0, maximumInputLength : 0, maximumSelectionLength : 0, minimumResultsForSearch : 0, selectOnClose : !1, scrollAfterSelect : !1, sorter : function( e ) {return e}, templateResult : function( e ) {return e.text}, templateSelection : function( e ) {return e.text}, theme : "default", width : "resolve" } }, n.prototype.applyFromElement = function( e, t ) { var n = e.language, i = this.defaults.language, r = t.prop( "lang" ), o = t.closest( "[lang]" ).prop( "lang" ), s = Array.prototype.concat.call( this._resolveLanguage( r ), this._resolveLanguage( n ), this._resolveLanguage( i ), this._resolveLanguage( o ) ); return e.language = s, e }, n.prototype._resolveLanguage = function( e ) { if ( !e ) return []; if ( c.isEmptyObject( e ) ) return []; if ( c.isPlainObject( e ) ) return [e]; var t; t = c.isArray( e ) ? e : [e]; for ( var n = [], i = 0; i < t.length; i++ ) if ( n.push( t[ i ] ), "string" == typeof t[ i ] && 0 < t[ i ].indexOf( "-" ) ) { var r = t[ i ].split( "-" )[ 0 ]; n.push( r ) } return n }, n.prototype._processTranslations = function( e, t ) { for ( var n = new s, i = 0; i < e.length; i++ ) { var r = new s, o = e[ i ]; if ( "string" == typeof o ) try { r = s.loadPath( o ) } catch ( e ) { try { o = this.defaults.amdLanguageBase + o, r = s.loadPath( o ) } catch ( e ) { t && window.console && console.warn && console.warn( 'Select2: The language file for "' + o + '" could not be automatically loaded. A fallback will be used instead.' ) } } else r = c.isPlainObject( o ) ? new s( o ) : o; n.extend( r ) } return n }, n.prototype.set = function( e, t ) { var n = {}; n[ c.camelCase( e ) ] = t; var i = y._convertData( n ); c.extend( !0, this.defaults, i ) }, new n } ), e.define( "select2/options", ["require", "jquery", "./defaults", "./utils"], function( i, d, r, p ) { function e( e, t ) { if ( this.options = e, null != t && this.fromElement( t ), null != t && (this.options = r.applyFromElement( this.options, t )), this.options = r.apply( this.options ), t && t.is( "input" ) ) { var n = i( this.get( "amdBase" ) + "compat/inputData" ); this.options.dataAdapter = p.Decorate( this.options.dataAdapter, n ) } } return e.prototype.fromElement = function( e ) { var t = ["select2"]; null == this.options.multiple && (this.options.multiple = e.prop( "multiple" )), null == this.options.disabled && (this.options.disabled = e.prop( "disabled" )), null == this.options.dir && (e.prop( "dir" ) ? this.options.dir = e.prop( "dir" ) : e.closest( "[dir]" ).prop( "dir" ) ? this.options.dir = e.closest( "[dir]" ).prop( "dir" ) : this.options.dir = "ltr"), e.prop( "disabled", this.options.disabled ), e.prop( "multiple", this.options.multiple ), p.GetData( e[ 0 ], "select2Tags" ) && (this.options.debug && window.console && console.warn && console.warn( 'Select2: The `data-select2-tags` attribute has been changed to use the `data-data` and `data-tags="true"` attributes and will be removed in future versions of Select2.' ), p.StoreData( e[ 0 ], "data", p.GetData( e[ 0 ], "select2Tags" ) ), p.StoreData( e[ 0 ], "tags", !0 )), p.GetData( e[ 0 ], "ajaxUrl" ) && (this.options.debug && window.console && console.warn && console.warn( "Select2: The `data-ajax-url` attribute has been changed to `data-ajax--url` and support for the old attribute will be removed in future versions of Select2." ), e.attr( "ajax--url", p.GetData( e[ 0 ], "ajaxUrl" ) ), p.StoreData( e[ 0 ], "ajax-Url", p.GetData( e[ 0 ], "ajaxUrl" ) )); var n = {}; function i( e, t ) {return t.toUpperCase()} for ( var r = 0; r < e[ 0 ].attributes.length; r++ ) { var o = e[ 0 ].attributes[ r ].name, s = "data-"; if ( o.substr( 0, s.length ) == s ) { var a = o.substring( s.length ), l = p.GetData( e[ 0 ], a ); n[ a.replace( /-([a-z])/g, i ) ] = l } } d.fn.jquery && "1." == d.fn.jquery.substr( 0, 2 ) && e[ 0 ].dataset && (n = d.extend( !0, {}, e[ 0 ].dataset, n )); var c = d.extend( !0, {}, p.GetData( e[ 0 ] ), n ); for ( var u in c = p._convertData( c ) ) -1 < d.inArray( u, t ) || (d.isPlainObject( this.options[ u ] ) ? d.extend( this.options[ u ], c[ u ] ) : this.options[ u ] = c[ u ]); return this }, e.prototype.get = function( e ) {return this.options[ e ]}, e.prototype.set = function( e, t ) {this.options[ e ] = t}, e } ), e.define( "select2/core", ["jquery", "./options", "./utils", "./keys"], function( r, c, u, i ) { var d = function( e, t ) { null != u.GetData( e[ 0 ], "select2" ) && u.GetData( e[ 0 ], "select2" ).destroy(), this.$element = e, this.id = this._generateId( e ), t = t || {}, this.options = new c( t, e ), d.__super__.constructor.call( this ); var n = e.attr( "tabindex" ) || 0; u.StoreData( e[ 0 ], "old-tabindex", n ), e.attr( "tabindex", "-1" ); var i = this.options.get( "dataAdapter" ); this.dataAdapter = new i( e, this.options ); var r = this.render(); this._placeContainer( r ); var o = this.options.get( "selectionAdapter" ); this.selection = new o( e, this.options ), this.$selection = this.selection.render(), this.selection.position( this.$selection, r ); var s = this.options.get( "dropdownAdapter" ); this.dropdown = new s( e, this.options ), this.$dropdown = this.dropdown.render(), this.dropdown.position( this.$dropdown, r ); var a = this.options.get( "resultsAdapter" ); this.results = new a( e, this.options, this.dataAdapter ), this.$results = this.results.render(), this.results.position( this.$results, this.$dropdown ); var l = this; this._bindAdapters(), this._registerDomEvents(), this._registerDataEvents(), this._registerSelectionEvents(), this._registerDropdownEvents(), this._registerResultsEvents(), this._registerEvents(), this.dataAdapter.current( function( e ) {l.trigger( "selection:update", { data : e } )} ), e.addClass( "select2-hidden-accessible" ), e.attr( "aria-hidden", "true" ), this._syncAttributes(), u.StoreData( e[ 0 ], "select2", this ), e.data( "select2", this ) }; return u.Extend( d, u.Observable ), d.prototype._generateId = function( e ) {return "select2-" + (null != e.attr( "id" ) ? e.attr( "id" ) : null != e.attr( "name" ) ? e.attr( "name" ) + "-" + u.generateChars( 2 ) : u.generateChars( 4 )).replace( /(:|\.|\[|\]|,)/g, "" )}, d.prototype._placeContainer = function( e ) { e.insertAfter( this.$element ); var t = this._resolveWidth( this.$element, this.options.get( "width" ) ); null != t && e.css( "width", t ) }, d.prototype._resolveWidth = function( e, t ) { var n = /^width:(([-+]?([0-9]*\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i; if ( "resolve" == t ) { var i = this._resolveWidth( e, "style" ); return null != i ? i : this._resolveWidth( e, "element" ) } if ( "element" == t ) { var r = e.outerWidth( !1 ); return r <= 0 ? "auto" : r + "px" } if ( "style" != t ) return "computedstyle" != t ? t : window.getComputedStyle( e[ 0 ] ).width; var o = e.attr( "style" ); if ( "string" != typeof o ) return null; for ( var s = o.split( ";" ), a = 0, l = s.length; a < l; a += 1 ) { var c = s[ a ].replace( /\s/g, "" ).match( n ); if ( null !== c && 1 <= c.length ) return c[ 1 ] } return null }, d.prototype._bindAdapters = function() {this.dataAdapter.bind( this, this.$container ), this.selection.bind( this, this.$container ), this.dropdown.bind( this, this.$container ), this.results.bind( this, this.$container )}, d.prototype._registerDomEvents = function() { var t = this; this.$element.on( "change.select2", function() {t.dataAdapter.current( function( e ) {t.trigger( "selection:update", { data : e } )} )} ), this.$element.on( "focus.select2", function( e ) {t.trigger( "focus", e )} ), this._syncA = u.bind( this._syncAttributes, this ), this._syncS = u.bind( this._syncSubtree, this ), this.$element[ 0 ].attachEvent && this.$element[ 0 ].attachEvent( "onpropertychange", this._syncA ); var e = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver; null != e ? (this._observer = new e( function( e ) {r.each( e, t._syncA ), r.each( e, t._syncS )} ), this._observer.observe( this.$element[ 0 ], { attributes : !0, childList : !0, subtree : !1 } )) : this.$element[ 0 ].addEventListener && (this.$element[ 0 ].addEventListener( "DOMAttrModified", t._syncA, !1 ), this.$element[ 0 ].addEventListener( "DOMNodeInserted", t._syncS, !1 ), this.$element[ 0 ].addEventListener( "DOMNodeRemoved", t._syncS, !1 )) }, d.prototype._registerDataEvents = function() { var n = this; this.dataAdapter.on( "*", function( e, t ) {n.trigger( e, t )} ) }, d.prototype._registerSelectionEvents = function() { var n = this, i = ["toggle", "focus"]; this.selection.on( "toggle", function() {n.toggleDropdown()} ), this.selection.on( "focus", function( e ) {n.focus( e )} ), this.selection.on( "*", function( e, t ) {-1 === r.inArray( e, i ) && n.trigger( e, t )} ) }, d.prototype._registerDropdownEvents = function() { var n = this; this.dropdown.on( "*", function( e, t ) {n.trigger( e, t )} ) }, d.prototype._registerResultsEvents = function() { var n = this; this.results.on( "*", function( e, t ) {n.trigger( e, t )} ) }, d.prototype._registerEvents = function() { var n = this; this.on( "open", function() {n.$container.addClass( "select2-container--open" )} ), this.on( "close", function() {n.$container.removeClass( "select2-container--open" )} ), this.on( "enable", function() {n.$container.removeClass( "select2-container--disabled" )} ), this.on( "disable", function() {n.$container.addClass( "select2-container--disabled" )} ), this.on( "blur", function() {n.$container.removeClass( "select2-container--focus" )} ), this.on( "query", function( t ) {n.isOpen() || n.trigger( "open", {} ), this.dataAdapter.query( t, function( e ) {n.trigger( "results:all", { data : e, query : t } )} )} ), this.on( "query:append", function( t ) {this.dataAdapter.query( t, function( e ) {n.trigger( "results:append", { data : e, query : t } )} )} ), this.on( "keypress", function( e ) { var t = e.which; n.isOpen() ? t === i.ESC || t === i.TAB || t === i.UP && e.altKey ? (n.close(), e.preventDefault()) : t === i.ENTER ? (n.trigger( "results:select", {} ), e.preventDefault()) : t === i.SPACE && e.ctrlKey ? (n.trigger( "results:toggle", {} ), e.preventDefault()) : t === i.UP ? (n.trigger( "results:previous", {} ), e.preventDefault()) : t === i.DOWN && (n.trigger( "results:next", {} ), e.preventDefault()) : (t === i.ENTER || t === i.SPACE || t === i.DOWN && e.altKey) && (n.open(), e.preventDefault()) } ) }, d.prototype._syncAttributes = function() {this.options.set( "disabled", this.$element.prop( "disabled" ) ), this.options.get( "disabled" ) ? (this.isOpen() && this.close(), this.trigger( "disable", {} )) : this.trigger( "enable", {} )}, d.prototype._syncSubtree = function( e, t ) { var n = !1, i = this; if ( !e || !e.target || "OPTION" === e.target.nodeName || "OPTGROUP" === e.target.nodeName ) { if ( t ) if ( t.addedNodes && 0 < t.addedNodes.length ) for ( var r = 0; r < t.addedNodes.length; r++ ) { t.addedNodes[ r ].selected && (n = !0) } else t.removedNodes && 0 < t.removedNodes.length && (n = !0); else n = !0; n && this.dataAdapter.current( function( e ) {i.trigger( "selection:update", { data : e } )} ) } }, d.prototype.trigger = function( e, t ) { var n = d.__super__.trigger, i = { open : "opening", close : "closing", select : "selecting", unselect : "unselecting", clear : "clearing" }; if ( void 0 === t && (t = {}), e in i ) { var r = i[ e ], o = { prevented : !1, name : e, args : t }; if ( n.call( this, r, o ), o.prevented ) return void (t.prevented = !0) } n.call( this, e, t ) }, d.prototype.toggleDropdown = function() {this.options.get( "disabled" ) || (this.isOpen() ? this.close() : this.open())}, d.prototype.open = function() {this.isOpen() || this.trigger( "query", {} )}, d.prototype.close = function() {this.isOpen() && this.trigger( "close", {} )}, d.prototype.isOpen = function() {return this.$container.hasClass( "select2-container--open" )}, d.prototype.hasFocus = function() {return this.$container.hasClass( "select2-container--focus" )}, d.prototype.focus = function( e ) {this.hasFocus() || (this.$container.addClass( "select2-container--focus" ), this.trigger( "focus", {} ))}, d.prototype.enable = function( e ) { this.options.get( "debug" ) && window.console && console.warn && console.warn( 'Select2: The `select2("enable")` method has been deprecated and will be removed in later Select2 versions. Use $element.prop("disabled") instead.' ), null != e && 0 !== e.length || (e = [!0]); var t = !e[ 0 ]; this.$element.prop( "disabled", t ) }, d.prototype.data = function() { this.options.get( "debug" ) && 0 < arguments.length && window.console && console.warn && console.warn( 'Select2: Data can no longer be set using `select2("data")`. You should consider setting the value instead using `$element.val()`.' ); var t = []; return this.dataAdapter.current( function( e ) {t = e} ), t }, d.prototype.val = function( e ) { if ( this.options.get( "debug" ) && window.console && console.warn && console.warn( 'Select2: The `select2("val")` method has been deprecated and will be removed in later Select2 versions. Use $element.val() instead.' ), null == e || 0 === e.length ) return this.$element.val(); var t = e[ 0 ]; r.isArray( t ) && (t = r.map( t, function( e ) {return e.toString()} )), this.$element.val( t ).trigger( "change" ) }, d.prototype.destroy = function() {this.$container.remove(), this.$element[ 0 ].detachEvent && this.$element[ 0 ].detachEvent( "onpropertychange", this._syncA ), null != this._observer ? (this._observer.disconnect(), this._observer = null) : this.$element[ 0 ].removeEventListener && (this.$element[ 0 ].removeEventListener( "DOMAttrModified", this._syncA, !1 ), this.$element[ 0 ].removeEventListener( "DOMNodeInserted", this._syncS, !1 ), this.$element[ 0 ].removeEventListener( "DOMNodeRemoved", this._syncS, !1 )), this._syncA = null, this._syncS = null, this.$element.off( ".select2" ), this.$element.attr( "tabindex", u.GetData( this.$element[ 0 ], "old-tabindex" ) ), this.$element.removeClass( "select2-hidden-accessible" ), this.$element.attr( "aria-hidden", "false" ), u.RemoveData( this.$element[ 0 ] ), this.$element.removeData( "select2" ), this.dataAdapter.destroy(), this.selection.destroy(), this.dropdown.destroy(), this.results.destroy(), this.dataAdapter = null, this.selection = null, this.dropdown = null, this.results = null}, d.prototype.render = function() { var e = r( '<span class="select2 select2-container"><span class="selection"></span><span class="dropdown-wrapper" aria-hidden="true"></span></span>' ); return e.attr( "dir", this.options.get( "dir" ) ), this.$container = e, this.$container.addClass( "select2-container--" + this.options.get( "theme" ) ), u.StoreData( e[ 0 ], "element", this.$element ), e }, d } ), e.define( "select2/compat/utils", ["jquery"], function( s ) { return { syncCssClasses : function( e, t, n ) { var i, r, o = []; (i = s.trim( e.attr( "class" ) )) && s( (i = "" + i).split( /\s+/ ) ).each( function() {0 === this.indexOf( "select2-" ) && o.push( this )} ), (i = s.trim( t.attr( "class" ) )) && s( (i = "" + i).split( /\s+/ ) ).each( function() {0 !== this.indexOf( "select2-" ) && null != (r = n( this )) && o.push( r )} ), e.attr( "class", o.join( " " ) ) } } } ), e.define( "select2/compat/containerCss", ["jquery", "./utils"], function( s, a ) { function l( e ) {return null} function e() {} return e.prototype.render = function( e ) { var t = e.call( this ), n = this.options.get( "containerCssClass" ) || ""; s.isFunction( n ) && (n = n( this.$element )); var i = this.options.get( "adaptContainerCssClass" ); if ( i = i || l, -1 !== n.indexOf( ":all:" ) ) { n = n.replace( ":all:", "" ); var r = i; i = function( e ) { var t = r( e ); return null != t ? t + " " + e : e } } var o = this.options.get( "containerCss" ) || {}; return s.isFunction( o ) && (o = o( this.$element )), a.syncCssClasses( t, this.$element, i ), t.css( o ), t.addClass( n ), t }, e } ), e.define( "select2/compat/dropdownCss", ["jquery", "./utils"], function( s, a ) { function l( e ) {return null} function e() {} return e.prototype.render = function( e ) { var t = e.call( this ), n = this.options.get( "dropdownCssClass" ) || ""; s.isFunction( n ) && (n = n( this.$element )); var i = this.options.get( "adaptDropdownCssClass" ); if ( i = i || l, -1 !== n.indexOf( ":all:" ) ) { n = n.replace( ":all:", "" ); var r = i; i = function( e ) { var t = r( e ); return null != t ? t + " " + e : e } } var o = this.options.get( "dropdownCss" ) || {}; return s.isFunction( o ) && (o = o( this.$element )), a.syncCssClasses( t, this.$element, i ), t.css( o ), t.addClass( n ), t }, e } ), e.define( "select2/compat/initSelection", ["jquery"], function( i ) { function e( e, t, n ) {n.get( "debug" ) && window.console && console.warn && console.warn( "Select2: The `initSelection` option has been deprecated in favor of a custom data adapter that overrides the `current` method. This method is now called multiple times instead of a single time when the instance is initialized. Support will be removed for the `initSelection` option in future versions of Select2" ), this.initSelection = n.get( "initSelection" ), this._isInitialized = !1, e.call( this, t, n )} return e.prototype.current = function( e, t ) { var n = this; this._isInitialized ? e.call( this, t ) : this.initSelection.call( null, this.$element, function( e ) {n._isInitialized = !0, i.isArray( e ) || (e = [e]), t( e )} ) }, e } ), e.define( "select2/compat/inputData", ["jquery", "../utils"], function( s, i ) { function e( e, t, n ) {this._currentData = [], this._valueSeparator = n.get( "valueSeparator" ) || ",", "hidden" === t.prop( "type" ) && n.get( "debug" ) && console && console.warn && console.warn( "Select2: Using a hidden input with Select2 is no longer supported and may stop working in the future. It is recommended to use a `<select>` element instead." ), e.call( this, t, n )} return e.prototype.current = function( e, t ) { function i( e, t ) { var n = []; return e.selected || -1 !== s.inArray( e.id, t ) ? (e.selected = !0, n.push( e )) : e.selected = !1, e.children && n.push.apply( n, i( e.children, t ) ), n } for ( var n = [], r = 0; r < this._currentData.length; r++ ) { var o = this._currentData[ r ]; n.push.apply( n, i( o, this.$element.val().split( this._valueSeparator ) ) ) } t( n ) }, e.prototype.select = function( e, t ) { if ( this.options.get( "multiple" ) ) { var n = this.$element.val(); n += this._valueSeparator + t.id, this.$element.val( n ), this.$element.trigger( "change" ) } else this.current( function( e ) {s.map( e, function( e ) {e.selected = !1} )} ), this.$element.val( t.id ), this.$element.trigger( "change" ) }, e.prototype.unselect = function( e, r ) { var o = this; r.selected = !1, this.current( function( e ) { for ( var t = [], n = 0; n < e.length; n++ ) { var i = e[ n ]; r.id != i.id && t.push( i.id ) } o.$element.val( t.join( o._valueSeparator ) ), o.$element.trigger( "change" ) } ) }, e.prototype.query = function( e, t, n ) { for ( var i = [], r = 0; r < this._currentData.length; r++ ) { var o = this._currentData[ r ], s = this.matches( t, o ); null !== s && i.push( s ) } n( { results : i } ) }, e.prototype.addOptions = function( e, t ) { var n = s.map( t, function( e ) {return i.GetData( e[ 0 ], "data" )} ); this._currentData.push.apply( this._currentData, n ) }, e } ), e.define( "select2/compat/matcher", ["jquery"], function( s ) { return function( o ) { return function( e, t ) { var n = s.extend( !0, {}, t ); if ( null == e.term || "" === s.trim( e.term ) ) return n; if ( t.children ) { for ( var i = t.children.length - 1; 0 <= i; i-- ) { var r = t.children[ i ]; o( e.term, r.text, r ) || n.children.splice( i, 1 ) } if ( 0 < n.children.length ) return n } return o( e.term, t.text, t ) ? n : null } } } ), e.define( "select2/compat/query", [], function() { function e( e, t, n ) {n.get( "debug" ) && window.console && console.warn && console.warn( "Select2: The `query` option has been deprecated in favor of a custom data adapter that overrides the `query` method. Support will be removed for the `query` option in future versions of Select2." ), e.call( this, t, n )} return e.prototype.query = function( e, t, n ) {t.callback = n, this.options.get( "query" ).call( null, t )}, e } ), e.define( "select2/dropdown/attachContainer", [], function() { function e( e, t, n ) {e.call( this, t, n )} return e.prototype.position = function( e, t, n ) {n.find( ".dropdown-wrapper" ).append( t ), t.addClass( "select2-dropdown--below" ), n.addClass( "select2-container--below" )}, e } ), e.define( "select2/dropdown/stopPropagation", [], function() { function e() {} return e.prototype.bind = function( e, t, n ) { e.call( this, t, n ); this.$dropdown.on( ["blur", "change", "click", "dblclick", "focus", "focusin", "focusout", "input", "keydown", "keyup", "keypress", "mousedown", "mouseenter", "mouseleave", "mousemove", "mouseover", "mouseup", "search", "touchend", "touchstart"].join( " " ), function( e ) {e.stopPropagation()} ) }, e } ), e.define( "select2/selection/stopPropagation", [], function() { function e() {} return e.prototype.bind = function( e, t, n ) { e.call( this, t, n ); this.$selection.on( ["blur", "change", "click", "dblclick", "focus", "focusin", "focusout", "input", "keydown", "keyup", "keypress", "mousedown", "mouseenter", "mouseleave", "mousemove", "mouseover", "mouseup", "search", "touchend", "touchstart"].join( " " ), function( e ) {e.stopPropagation()} ) }, e } ), l = function( p ) { var h, f, e = ["wheel", "mousewheel", "DOMMouseScroll", "MozMousePixelScroll"], t = "onwheel" in document || 9 <= document.documentMode ? ["wheel"] : ["mousewheel", "DomMouseScroll", "MozMousePixelScroll"], g = Array.prototype.slice; if ( p.event.fixHooks ) for ( var n = e.length; n; ) p.event.fixHooks[ e[ --n ] ] = p.event.mouseHooks; var m = p.event.special.mousewheel = { version : "3.1.12", setup : function() { if ( this.addEventListener ) for ( var e = t.length; e; ) this.addEventListener( t[ --e ], i, !1 ); else this.onmousewheel = i; p.data( this, "mousewheel-line-height", m.getLineHeight( this ) ), p.data( this, "mousewheel-page-height", m.getPageHeight( this ) ) }, teardown : function() { if ( this.removeEventListener ) for ( var e = t.length; e; ) this.removeEventListener( t[ --e ], i, !1 ); else this.onmousewheel = null; p.removeData( this, "mousewheel-line-height" ), p.removeData( this, "mousewheel-page-height" ) }, getLineHeight : function( e ) { var t = p( e ), n = t[ "offsetParent" in p.fn ? "offsetParent" : "parent" ](); return n.length || (n = p( "body" )), parseInt( n.css( "fontSize" ), 10 ) || parseInt( t.css( "fontSize" ), 10 ) || 16 }, getPageHeight : function( e ) {return p( e ).height()}, settings : { adjustOldDeltas : !0, normalizeOffset : !0 } }; function i( e ) { var t, n = e || window.event, i = g.call( arguments, 1 ), r = 0, o = 0, s = 0, a = 0, l = 0; if ( (e = p.event.fix( n )).type = "mousewheel", "detail" in n && (s = -1 * n.detail), "wheelDelta" in n && (s = n.wheelDelta), "wheelDeltaY" in n && (s = n.wheelDeltaY), "wheelDeltaX" in n && (o = -1 * n.wheelDeltaX), "axis" in n && n.axis === n.HORIZONTAL_AXIS && (o = -1 * s, s = 0), r = 0 === s ? o : s, "deltaY" in n && (r = s = -1 * n.deltaY), "deltaX" in n && (o = n.deltaX, 0 === s && (r = -1 * o)), 0 !== s || 0 !== o ) { if ( 1 === n.deltaMode ) { var c = p.data( this, "mousewheel-line-height" ); r *= c, s *= c, o *= c } else if ( 2 === n.deltaMode ) { var u = p.data( this, "mousewheel-page-height" ); r *= u, s *= u, o *= u } if ( t = Math.max( Math.abs( s ), Math.abs( o ) ), (!f || t < f) && y( n, f = t ) && (f /= 40), y( n, t ) && (r /= 40, o /= 40, s /= 40), r = Math[ 1 <= r ? "floor" : "ceil" ]( r / f ), o = Math[ 1 <= o ? "floor" : "ceil" ]( o / f ), s = Math[ 1 <= s ? "floor" : "ceil" ]( s / f ), m.settings.normalizeOffset && this.getBoundingClientRect ) { var d = this.getBoundingClientRect(); a = e.clientX - d.left, l = e.clientY - d.top } return e.deltaX = o, e.deltaY = s, e.deltaFactor = f, e.offsetX = a, e.offsetY = l, e.deltaMode = 0, i.unshift( e, r, o, s ), h && clearTimeout( h ), h = setTimeout( v, 200 ), (p.event.dispatch || p.event.handle).apply( this, i ) } } function v() {f = null} function y( e, t ) {return m.settings.adjustOldDeltas && "mousewheel" === e.type && t % 120 == 0} p.fn.extend( { mousewheel : function( e ) {return e ? this.bind( "mousewheel", e ) : this.trigger( "mousewheel" )}, unmousewheel : function( e ) {return this.unbind( "mousewheel", e )} } ) }, "function" == typeof e.define && e.define.amd ? e.define( "jquery-mousewheel", ["jquery"], l ) : "object" == typeof exports ? module.exports = l : l( d ), e.define( "jquery.select2", ["jquery", "jquery-mousewheel", "./select2/core", "./select2/defaults", "./select2/utils"], function( r, e, o, t, s ) { if ( null == r.fn.select2 ) { var a = ["open", "close", "destroy"]; r.fn.select2 = function( t ) { if ( "object" == typeof (t = t || {}) ) return this.each( function() { var e = r.extend( !0, {}, t ); new o( r( this ), e ) } ), this; if ( "string" != typeof t ) throw new Error( "Invalid arguments for Select2: " + t ); var n, i = Array.prototype.slice.call( arguments, 1 ); return this.each( function() { var e = s.GetData( this, "select2" ); null == e && window.console && console.error && console.error( "The select2('" + t + "') method was called on an element that is not using Select2." ), n = e[ t ].apply( e, i ) } ), -1 < r.inArray( t, a ) ? this : n } } return null == r.fn.select2.defaults && (r.fn.select2.defaults = t), o } ), { define : e.define, require : e.require } }(), t = e.require( "jquery.select2" ); return d.fn.select2.amd = e, t } );