module.exports = "(function(e,r,i){var s=i(54),n=i(6975),d=e.exports=s.extensions.SchemaReference=s.extend({validate:function(){throw new Error(\"Trying to validate unresolved schema reference.\")},resolve:function(e){var r=s.fromJS(e);for(var i in r)r[i]instanceof Function?this[i]=r[i].bind(r):this[i]=r[i];delete this.resolve},publicFunctions:[\"resolve\"]});n.reference=function(e){return new d},s.self=n.self=function e(r){return r.resolve=function(){return s.self=n.self=e(new d),d.prototype.resolve.apply(this,arguments)},r}(new d),s.fromJSON.def((function(e){if(null!=e.id||null!=e.$ref){var r,i=s.session;if(i.deserialized||(i.deserialized={references:{},subscribers:{}}),null!=e.id){r=e.id,delete e.id;var n=s.fromJSON(e);return e.id=r,i.deserialized.references[r]=n,(i.deserialized.subscribers[r]||[]).forEach((function(e){e(n)})),n}if(r=e.$ref,i.deserialized.references[r])return i.deserialized.references[r];i.deserialized.subscribers[r]||(i.deserialized.subscribers[r]=[]);var l=new d;return i.deserialized.subscribers[r].push(l.resolve.bind(l)),l}}))})";