module.exports = "(function(e,t,r){var n=r(54),i=r(462),a=r(1864).instance,s=e.exports=n.extensions.ArraySchema=n.extend({initialize:function(e,t,r){this.itemSchema=e||a,this.min=r||0,this.max=t||1/0},errors:function(e){if(!(e instanceof Array))return e+\" is not an instance of Array\";if(this.min===this.max){if(e.length!==this.min)return\"Array length should be equal to \"+this.min+\" and is \"+e.length}else{if(this.min>0&&e.length<this.min)return\"Array length should not be less than \"+this.min+\" and is \"+e.length;if(this.max<1/0&&e.length>this.max)return\"Array length should not be more than \"+this.max+\" and is \"+e.length}for(var t={},r=0;r<e.length;r++){var n=this.itemSchema.errors(e[r]);n&&(t[r]=n)}return Object.keys(t).length>0&&t},validate:function(e){if(!(e instanceof Array))return!1;if(this.min===this.max){if(e.length!==this.min)return!1}else{if(this.min>0&&e.length<this.min)return!1;if(this.max<1/0&&e.length>this.max)return!1}for(var t=0;t<e.length;t++)if(!this.itemSchema.validate(e[t]))return!1;return!0},toJSON:n.session((function(){var e=n.prototype.toJSON.call(this,!0);return null!=e.$ref||(e.type=\"array\",this.min>0&&(e.minItems=this.min),this.max<1/0&&(e.maxItems=this.max),this.itemSchema!==a&&(e.items=this.itemSchema.toJSON())),e}))});n.fromJSON.def((function(e){if(e&&\"array\"===e.type&&!(e.items instanceof Array))return new s(n.fromJSON(e.items),e.maxItems,e.minItems)})),Array.of=function(){var e=Array.prototype.slice.call(arguments).reverse();if(3==e.length){if(\"number\"!=typeof e[2])throw new Error(\"3 arguments were passed to Array.of and 1st argument (minLength) SHOULD be number NOT \"+e[2]);if(\"number\"!=typeof e[1])throw new Error(\"3 arguments were passed to Array.of and 2nd argument (maxLength) SHOULD be number NOT \"+e[1])}if(2===e.length){if(\"number\"!=typeof e[1])throw new Error(\"2 arguments were passed to Array.of and 1nd argument (length) SHOULD be number NOT \"+e[1]);e[2]=e[1]}return new s(n.fromJS(e[0]),e[1],e[2]).wrap()},Array.like=function(e){return new i(e).wrap()},Array.schema=(new s).wrap()})";