(function(e){window.angular==undefined?function(){throw new Error("Angular should be loaded before loading the plugin")}():false;window.requirejs==undefined?function(){e();window.require=function(e,t){"use strict;";var n=document.createElement("script");n.src=e[0];document.head.appendChild(n);t()}}():function(){window.define(e)}()})(function(){"use strict";var e=window.angular;var t=e.module("ui.route.Injector",[]);var n=function(){var e=this;e.$get=function(){return e};e.config=function(){var t="",n="",r=function(r){t=r.view;n=r.controller;return e},i=function(){return t},s=function(){return n};return{directories:r,getControllersDirectory:s,getViewsDirectory:i}}();e.setHandler=function(t){if(window.requirejs!=undefined){window.requirejs.s.contexts._.defined["$ControlInjector"]=t.register}else{window.angular["$ControlInjector"]=t.register}return e.$get()};this.route=function(e){var t=function(t,r){if(window.requirejs!=undefined){if(window.requirejs.s.contexts._.defined["$ControlInjector"]==undefined||window.requirejs.s.contexts._.defined["$ControlInjector"]==null){throw new Error("$routeInjectorProvider - setHandler : Set the control handler API: $routeInjectorProvider.setHandler('undefined')");return null}}else if(window.requirejs==undefined&&window.angular.$ControlInjector==undefined){throw new Error(" $routeInjectorProvider - setHandler : Set the control handler API: $routeInjectorProvider.setHandler('undefined')");return null}r=!r?new Object:r;var i={};i.url=(r.url!=undefined&&r.url!=null?r.url:"/"+t).replace("//","/");i.templateUrl=(e.getViewsDirectory()+"/"+(r.templateUrl!=undefined&&r.templateUrl!=null?r.templateUrl:"")+t+".html").replace("//","/");i.controller=t+"Controller";i.resolve={$moduleInject:function(i,s){var o=[(e.getControllersDirectory()+"/"+(r.controllerPath!=undefined&&r.controllerPath!=null?r.controllerPath:"")+"/"+t+".js").replace("//","/")];return n(i,s,o)}};if((Object.getOwnPropertyNames!=undefined&&r.resolve!=undefined&&r.resolve!=null?Object.getOwnPropertyNames(r.resolve).length!=0:function(){for(var e in r.resolve)break;return e!=null&&e!=undefined}())&&r.resolve!=undefined){for(var s in r.resolve){i.resolve[s]=r.resolve[s]}}return i},n=function(e,t,n){var r=e.defer();require(n,function(){r.resolve();if(!t.$$phase){t.$apply()}});return r.promise};return{resolve:t}}(this.config)};t.provider("$routeInjector",n)})