-
Notifications
You must be signed in to change notification settings - Fork 10
/
Copy pathapp.js
2 lines (2 loc) · 34.4 KB
/
app.js
1
2
!function(){"use strict";angular.module("app",["ui.router","angular-loading-bar","ngSanitize","ui.bootstrap","ngAnimate","ui.router.title"])}(),function(){"use strict"}(),function(){"use strict";angular.module("app").config(["$locationProvider","$stateProvider","$urlRouterProvider",function(t,e,r){t.html5Mode({enabled:!0,requireBase:!1}),r.otherwise("/home"),e.state("home",{url:"/",templateUrl:"partials/home.html"}).state("home.more",{templateUrl:"partials/home.more.html"}).state("home.features",{templateUrl:"partials/home.features.html"}).state("about",{url:"/about",views:{"":{templateUrl:"partials/about.html"},"columnOne@about":{template:"Look I am a column!"},"columnTwo@about":{template:"Look I am a column!"}},resolve:{$title:function(){return"About"}}}).state("posts",{url:"/posts",resolve:{posts:["PostsService",function(t){return t.getPosts()}],allposts:["PostsService",function(t){return t.getAllPosts()}],$title:function(){return"Posts"}},templateUrl:"partials/posts.html",controller:"PostsController",controllerAs:"posts"}).state("post",{url:"/post/:slug",resolve:{post:["$stateParams","PostsService",function(t,e){return e.getPost(t)}],$title:["post",function(t){return t.data[0].title.rendered}]},templateUrl:"partials/single.html",controller:"PostController",controllerAs:"posts"}).state("pages",{url:"/pages",resolve:{posts:["$stateParams","PostsService",function(t,e){return e.getPages()}],$title:function(){return"Pages"}},templateUrl:"partials/posts.html",controller:"PostsController",controllerAs:"posts"}).state("page",{url:"/page/:slug",resolve:{post:["$stateParams","PostsService",function(t,e){return e.getPage(t)}],$title:["post",function(t){return t.data[0].title.rendered}]},templateUrl:"partials/single.html",controller:"PostController",controllerAs:"posts"}).state("pagination",{url:"/posts/page/:number",resolve:{posts:["$stateParams","PostsService",function(t,e){return e.postsPagination(t)}],allposts:["PostsService",function(t){return t.getAllPosts()}],$title:["$stateParams",function(t){return"Posts ("+t.number+")"}]},templateUrl:"partials/posts.html",controller:"PostsController",controllerAs:"posts"}).state("search",{url:"/search/:query",resolve:{posts:["$stateParams","PostsService","$state",function(t,e,r){return e.getSearchResult(t)}],allposts:["PostsService",function(t){return t.getAllPosts()}],$title:["$stateParams",function(t){return t.query}]},templateUrl:"partials/search.html",controller:"PostsController",controllerAs:"posts"})}]),angular.module("app").run(["$rootScope","$anchorScroll",function(t,e){t.$on("$stateChangeStart",function(t,r,s,o,n){e()})}])}(),function(){"use strict";function t(t){this.post=t.data[0]}t.$inject=["post"],angular.module("app").controller("PostController",t)}(),function(){"use strict";function t(t,e,r){this.posts=e.data,this.allPosts=t.data.length}t.$inject=["allposts","posts","$stateParams"],angular.module("app").controller("PostsController",t)}(),function(){"use strict";function t(){return{restrict:"EA",templateUrl:"partials/pagination-directive.html",controller:["$scope","$stateParams",function(t,e){var r=void 0===e.number?1:e.number,s="/posts/page/",o=t.posts.allPosts;t.postsNavLink={prevLink:s+(parseInt(r)-1),nextLink:s+(parseInt(r)+1),currentPage:r,postsCount:o/10}}]}}angular.module("app").directive("postsNavLink",t)}(),function(){"use strict";function t(){function t(t,e,r){t.getQuery=function(t){return e.queryPosts(t).then(function(t){return t.data})},t.onSelect=function(e,s,o){t.$item=e,t.$model=s,t.$label=o,r.go("search",{query:t.$label})},t.onSubmit=function(){r.go("search",{query:t.searchQuery})}}return t.$inject=["$scope","PostsService","$state"],{restrict:"EA",templateUrl:"partials/search-form-directive.html",controller:t}}angular.module("app").directive("searchForm",t)}(),function(){"use strict";function t(t){var e=this,r="http://dev:8888/wp-json/wp/v2/";e.getPosts=function(){return t.get(r+"posts")},e.getAllPosts=function(){return t.get(r+"posts?filter[posts_per_page]=-1")},e.getPost=function(e){return t.get(r+"posts?filter[name]="+e.slug)},e.getPages=function(){return t.get(r+"pages?filter[posts_per_page]=-1")},e.getPage=function(e){return t.get(r+"pages?filter[name]="+e.slug)},e.getSearchResult=function(e){return t.get(r+"posts?filter[s]="+e.query+"&filter[posts_per_page]=-1")},e.queryPosts=function(e){return t.get(r+"posts?filter[s]="+e+"&filter[posts_per_page]=-1")},e.postsPagination=function(e){return t.get(r+"posts?page="+e.number)}}t.$inject=["$http"],angular.module("app").service("PostsService",t)}();
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm1vZHVsZS5qcyIsImxvYWRlci5qcyIsInJvdXRlcy5qcyIsImNvbnRyb2xsZXJzL3Bvc3QtY29udHJvbGxlci5qcyIsImNvbnRyb2xsZXJzL3Bvc3RzLWNvbnRyb2xsZXIuanMiLCJkaXJlY3RpdmVzL3BhZ2luYXRpb24tZGlyZWN0aXZlLmpzIiwiZGlyZWN0aXZlcy9zZWFyY2gtZGlyZWN0aXZlLmpzIiwic2VydmljZXMvcG9zdHMtc2VydmljZS5qcyIsImFwcC5qcyJdLCJuYW1lcyI6WyJhbmd1bGFyIiwibW9kdWxlIiwiY29uZmlnIiwiJGxvY2F0aW9uUHJvdmlkZXIiLCIkc3RhdGVQcm92aWRlciIsIiR1cmxSb3V0ZXJQcm92aWRlciIsImh0bWw1TW9kZSIsImVuYWJsZWQiLCJyZXF1aXJlQmFzZSIsIm90aGVyd2lzZSIsInN0YXRlIiwidXJsIiwidGVtcGxhdGVVcmwiLCJ2aWV3cyIsIiIsImNvbHVtbk9uZUBhYm91dCIsInRlbXBsYXRlIiwiY29sdW1uVHdvQGFib3V0IiwicmVzb2x2ZSIsIiR0aXRsZSIsInBvc3RzIiwiUG9zdHNTZXJ2aWNlIiwiZ2V0UG9zdHMiLCJhbGxwb3N0cyIsImdldEFsbFBvc3RzIiwiY29udHJvbGxlciIsImNvbnRyb2xsZXJBcyIsInBvc3QiLCIkc3RhdGVQYXJhbXMiLCJnZXRQb3N0IiwiZGF0YSIsInRpdGxlIiwicmVuZGVyZWQiLCJnZXRQYWdlcyIsImdldFBhZ2UiLCJwb3N0c1BhZ2luYXRpb24iLCJudW1iZXIiLCIkc3RhdGUiLCJnZXRTZWFyY2hSZXN1bHQiLCJxdWVyeSIsInJ1biIsIiRyb290U2NvcGUiLCIkYW5jaG9yU2Nyb2xsIiwiJG9uIiwiZSIsInRvU3RhdGUiLCJ0b1BhcmFtcyIsImZyb21TdGF0ZSIsImZyb21QYXJhbXMiLCJQb3N0Q29udHJvbGxlciIsInRoaXMiLCIkaW5qZWN0IiwiUG9zdHNDb250cm9sbGVyIiwiYWxsUG9zdHMiLCJsZW5ndGgiLCJwb3N0c05hdkxpbmsiLCJyZXN0cmljdCIsIiRzY29wZSIsImN1cnJlbnRQYWdlIiwidW5kZWZpbmVkIiwibGlua1ByZWZpeCIsInBvc3RzQ291bnQiLCJwcmV2TGluayIsInBhcnNlSW50IiwibmV4dExpbmsiLCJkaXJlY3RpdmUiLCJzZWFyY2hGb3JtIiwic2VhcmNoRm9ybUNvbnRyb2xsZXIiLCJnZXRRdWVyeSIsInF1ZXJ5UG9zdHMiLCJ0aGVuIiwib25TZWxlY3QiLCIkaXRlbSIsIiRtb2RlbCIsIiRsYWJlbCIsImdvIiwib25TdWJtaXQiLCJzZWFyY2hRdWVyeSIsIiRodHRwIiwic2VsZiIsImdldCIsIm5hbWUiLCJzbHVnIiwicyIsInBhZ2UiLCJzZXJ2aWNlIl0sIm1hcHBpbmdzIjoiQ0FBQSxXQUNBLFlBQ0FBLFNBQUFDLE9BQUEsT0FBQSxZQUFBLHNCQUFBLGFBQUEsZUFBQSxZQUFBLHVCQ0ZBLFdBQ0EsZ0JDREEsV0FDQSxZQUNBRCxTQUFBQyxPQUFBLE9BQ0FDLFFBQUEsb0JBQUEsaUJBQUEscUJBQUEsU0FBQUMsRUFBQUMsRUFBQUMsR0FHQUYsRUFBQUcsV0FDQUMsU0FBQSxFQUNBQyxhQUFBLElBR0FILEVBQUFJLFVBQUEsU0FFQUwsRUFFQU0sTUFBQSxRQUNBQyxJQUFBLElBQ0FDLFlBQUEsdUJBR0FGLE1BQUEsYUFDQUUsWUFBQSw0QkFHQUYsTUFBQSxpQkFDQUUsWUFBQSxnQ0FHQUYsTUFBQSxTQUNBQyxJQUFBLFNBQ0FFLE9BQ0FDLElBQUFGLFlBQUEsdUJBQ0FHLG1CQUFBQyxTQUFBLHVCQUNBQyxtQkFBQUQsU0FBQSx3QkFHQUUsU0FDQUMsT0FBQSxXQUFBLE1BQUEsWUFLQVQsTUFBQSxTQUNBQyxJQUFBLFNBQ0FPLFNBQ0FFLE9BQUEsZUFBQSxTQUFBQyxHQUNBLE1BQUFBLEdBQUFDLGFBRUFDLFVBQUEsZUFBQSxTQUFBRixHQUNBLE1BQUFBLEdBQUFHLGdCQUVBTCxPQUFBLFdBQ0EsTUFBQSxVQUdBUCxZQUFBLHNCQUNBYSxXQUFBLGtCQUNBQyxhQUFBLFVBR0FoQixNQUFBLFFBQ0FDLElBQUEsY0FDQU8sU0FDQVMs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IjtcbnZhciBhcHAgPSBhbmd1bGFyLm1vZHVsZSgnYXBwJywgWyd1aS5yb3V0ZXInLCAnYW5ndWxhci1sb2FkaW5nLWJhcicsICduZ1Nhbml0aXplJywgJ3VpLmJvb3RzdHJhcCcsICduZ0FuaW1hdGUnLCAndWkucm91dGVyLnRpdGxlJ10pXG5cbn0pKCk7IiwiKGZ1bmN0aW9uKCl7XG5cInVzZSBzdHJpY3RcIjtcbi8vIGFuZ3VsYXIubW9kdWxlKCdhcHAnKVxuLy8gVHVybiBvZmYgdGhlIHNwaW5uZXIgZm9yIHRoZSBsb2FkZXJcbi8vICAgLmNvbmZpZyggZnVuY3Rpb24oY2ZwTG9hZGluZ0JhclByb3ZpZGVyKSB7XG4vLyAgICAgY2ZwTG9hZGluZ0JhclByb3ZpZGVyLmluY2x1ZGVTcGlubmVyID0gZmFsc2U7XG4vLyAgIH0pO1xufSkoKTsiLCIoZnVuY3Rpb24oKXtcblwidXNlIHN0cmljdFwiO1xuYW5ndWxhci5tb2R1bGUoJ2FwcCcpXG4uY29uZmlnKCBmdW5jdGlvbigkbG9jYXRpb25Qcm92aWRlciwgJHN0YXRlUHJvdmlkZXIsICR1cmxSb3V0ZXJQcm92aWRlcikge1xuXG4gICAgLy8gUmVtb3ZlIHRoZSAjIGZyb20gdGhlIFVSTFxuICAgICRsb2NhdGlvblByb3ZpZGVyLmh0bWw1TW9kZSh7XG4gICAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgICAgIHJlcXVpcmVCYXNlOiBmYWxzZVxuICAgIH0pO1xuICAgIFxuICAgJHVybFJvdXRlclByb3ZpZGVyLm90aGVyd2lzZShcIi9ob21lXCIpO1xuXG4gICAgJHN0YXRlUHJvdmlkZXJcbiAgICAgICAgLy8gQWxsIHRoZSBkaWZmZXJlbnQgcm91dGVzXG4gICAgICAgIC5zdGF0ZSgnaG9tZScsIHtcbiAgICAgICAgICAgIHVybDogJy8nLFxuICAgICAgICAgICAgdGVtcGxhdGVVcmw6ICdwYXJ0aWFscy9ob21lLmh0bWwnXG4gICAgICAgIH0pXG5cbiAgICAgICAgLnN0YXRlKCdob21lLm1vcmUnLCB7XG4gICAgICAgICAgICB0ZW1wbGF0ZVVybDogJ3BhcnRpYWxzL2hvbWUubW9yZS5odG1sJyxcbiAgICAgICAgfSlcblxuICAgICAgICAuc3RhdGUoJ2hvbWUuZmVhdHVyZXMnLCB7XG4gICAgICAgICAgICB0ZW1wbGF0ZVVybDogJ3BhcnRpYWxzL2hvbWUuZmVhdHVyZXMuaHRtbCcsXG4gICAgICAgIH0pXG5cbiAgICAgICAgLnN0YXRlKCdhYm91dCcsIHtcbiAgICAgICAgICAgIHVybDogJy9hYm91dCcsXG4gICAgICAgICAgICB2aWV3czoge1xuICAgICAgICAgICAgICAgICcnOiB7IHRlbXBsYXRlVXJsOiAncGFydGlhbHMvYWJvdXQuaHRtbCcgfSxcbiAgICAgICAgICAgICAgICAnY29sdW1uT25lQGFib3V0JzogeyB0ZW1wbGF0ZTogJ0xvb2sgSSBhbSBhIGNvbHVtbiEnIH0sXG4gICAgICAgICAgICAgICAgJ2NvbHVtblR3b0BhYm91dCc6IHsgdGVtcGxhdGU6ICdMb29rIEkgYW0gYSBjb2x1bW4hJ1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByZXNvbHZlOiB7XG4gICAgICAgICAgICAgICR0aXRsZTogZnVuY3Rpb24oKSB7IHJldHVybiAnQWJvdXQnOyB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBcbiAgICAgICAgfSlcblxuICAgICAgICAuc3RhdGUoJ3Bvc3RzJywge1xuICAgICAgICAgICAgdXJsOiAnL3Bvc3RzJyxcbiAgICAgICAgICAgIHJlc29sdmU6IHtcbiAgICAgICAgICAgICAgICBwb3N0czogZnVuY3Rpb24oUG9zdHNTZXJ2aWNlKSB7XG4gICAgICAgICAgICAgICAgICAgcmV0dXJuIFBvc3RzU2VydmljZS5nZXRQb3N0cygpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgYWxscG9zdHM6IGZ1bmN0aW9uKFBvc3RzU2VydmljZSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gUG9zdHNTZXJ2aWNlLmdldEFsbFBvc3RzKCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAkdGl0bGU6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1Bvc3RzJztcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHRlbXBsYXRlVXJsOiAncGFydGlhbHMvcG9zdHMuaHRtbCcsXG4gICAgICAgICAgICBjb250cm9sbGVyOiAnUG9zdHNDb250cm9sbGVyJyxcbiAgICAgICAgICAgIGNvbnRyb2xsZXJBczogJ3Bvc3RzJyxcbiAgICAgICAgfSlcblxuICAgICAgICAuc3RhdGUoJ3Bvc3QnLCB7XG4gICAgICAgICAgICB1cmw6ICcvcG9zdC86c2x1ZycsXG4gICAgICAgICAgICByZXNvbHZlOiB7XG4gICAgICAgICAgICAgICAgcG9zdDogZnVuY3Rpb24oJHN0YXRlUGFyYW1zLCBQb3N0c1NlcnZpY2UpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFBvc3RzU2VydmljZS5nZXRQb3N0KCRzdGF0ZVBhcmFtcyk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAkdGl0bGU6IGZ1bmN0aW9uKHBvc3QpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHBvc3QuZGF0YVswXS50aXRsZS5yZW5kZXJlZDtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHRlbXBsYXRlVXJsOiAncGFydGlhbHMvc2luZ2xlLmh0bWwnLFxuICAgICAgICAgICAgY29udHJvbGxlcjogJ1Bvc3RDb250cm9sbGVyJyxcbiAgICAgICAgICAgIGNvbnRyb2xsZXJBczogJ3Bvc3RzJ1xuICAgICAgICB9KVxuXG4gICAgICAgIC5zdGF0ZSgncGFnZXMnLCB7XG4gICAgICAgICAgICB1cmw6ICcvcGFnZXMnLFxuICAgICAgICAgICAgcmVzb2x2ZToge1xuICAgICAgICAgICAgICAgIHBvc3RzOiBmdW5jdGlvbigkc3RhdGVQYXJhbXMsIFBvc3RzU2VydmljZSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gUG9zdHNTZXJ2aWNlLmdldFBhZ2VzKCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAkdGl0bGU6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1BhZ2VzJztcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHRlbXBsYXRlVXJsOiAncGFydGlhbHMvcG9zdHMuaHRtbCcsXG4gICAgICAgICAgICBjb250cm9sbGVyOiAnUG9zdHNDb250cm9sbGVyJyxcbiAgICAgICAgICAgIGNvbnRyb2xsZXJBczogJ3Bvc3RzJ1xuICAgICAgICB9KVxuXG4gICAgICAgIC5zdGF0ZSgncGFnZScsIHtcbiAgICAgICAgICAgIHVybDogJy9wYWdlLzpzbHVnJyxcbiAgICAgICAgICAgIHJlc29sdmU6IHtcbiAgICAgICAgICAgICAgICBwb3N0OiBmdW5jdGlvbigkc3RhdGVQYXJhbXMsIFBvc3RzU2VydmljZSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gUG9zdHNTZXJ2aWNlLmdldFBhZ2UoJHN0YXRlUGFyYW1zKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICR0aXRsZTogZnVuY3Rpb24ocG9zdCkge1xuICAgICAgICAgICAgICAgICAgIHJldHVybiBwb3N0LmRhdGFbMF0udGl0bGUucmVuZGVyZWQ7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB0ZW1wbGF0ZVVybDogJ3BhcnRpYWxzL3NpbmdsZS5odG1sJyxcbiAgICAgICAgICAgIGNvbnRyb2xsZXI6ICdQb3N0Q29udHJvbGxlcicsXG4gICAgICAgICAgICBjb250cm9sbGVyQXM6ICdwb3N0cydcbiAgICAgICAgfSlcblxuICAgICAgICAuc3RhdGUoJ3BhZ2luYXRpb24nLCB7XG4gICAgICAgICAgICB1cmw6ICcvcG9zdHMvcGFnZS86bnVtYmVyJyxcbiAgICAgICAgICAgIHJlc29sdmU6IHtcbiAgICAgICAgICAgICAgICBwb3N0czogZnVuY3Rpb24oJHN0YXRlUGFyYW1zLCBQb3N0c1NlcnZpY2UpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFBvc3RzU2VydmljZS5wb3N0c1BhZ2luYXRpb24oJHN0YXRlUGFyYW1zKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGFsbHBvc3RzOiBmdW5jdGlvbihQb3N0c1NlcnZpY2UpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFBvc3RzU2VydmljZS5nZXRBbGxQb3N0cygpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgJHRpdGxlOiBmdW5jdGlvbigkc3RhdGVQYXJhbXMpIHtcbiAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1Bvc3RzICgnICsgJHN0YXRlUGFyYW1zLm51bWJlciArICcpJyA7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB0ZW1wbGF0ZVVybDogJ3BhcnRpYWxzL3Bvc3RzLmh0bWwnLFxuICAgICAgICAgICAgY29udHJvbGxlcjogJ1Bvc3RzQ29udHJvbGxlcicsXG4gICAgICAgICAgICBjb250cm9sbGVyQXM6ICdwb3N0cydcbiAgICAgICAgfSlcblxuICAgICAgICAuc3RhdGUoJ3NlYXJjaCcsIHtcbiAgICAgICAgICAgIHVybDogJy9zZWFyY2gvOnF1ZXJ5JyxcbiAgICAgICAgICAgIHJlc29sdmU6IHtcbiAgICAgICAgICAgICAgICBwb3N0czogZnVuY3Rpb24oJHN0YXRlUGFyYW1zLCBQb3N0c1NlcnZpY2UsICRzdGF0ZSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gUG9zdHNTZXJ2aWNlLmdldFNlYXJjaFJlc3VsdCgkc3RhdGVQYXJhbXMpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgYWxscG9zdHM6IGZ1bmN0aW9uKFBvc3RzU2VydmljZSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gUG9zdHNTZXJ2aWNlLmdldEFsbFBvc3RzKCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAkdGl0bGU6IGZ1bmN0aW9uKCRzdGF0ZVBhcmFtcykge1xuICAgICAgICAgICAgICAgICAgIHJldHVybiAkc3RhdGVQYXJhbXMucXVlcnk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB0ZW1wbGF0ZVVybDogJ3BhcnRpYWxzL3NlYXJjaC5odG1sJyxcbiAgICAgICAgICAgIGNvbnRyb2xsZXI6ICdQb3N0c0NvbnRyb2xsZXInLFxuICAgICAgICAgICAgY29udHJvbGxlckFzOiAncG9zdHMnXG4gICAgICAgIH0pO1xuXG59KTtcblxuYW5ndWxhci5tb2R1bGUoJ2FwcCcpXG4ucnVuKGZ1bmN0aW9uKCRyb290U2NvcGUsICRhbmNob3JTY3JvbGwpe1xuICAgIC8vIFNjcm9sbCB0byB0aGUgdG9wIG9mIHRoZSBwYWdlIHdoZW4gcm91dGUgY2hhbmdlc1xuICAgICAgJHJvb3RTY29wZS4kb24oJyRzdGF0ZUNoYW5nZVN0YXJ0JywgZnVuY3Rpb24oZSwgdG9TdGF0ZSwgdG9QYXJhbXMsIGZyb21TdGF0ZSwgZnJvbVBhcmFtcykge1xuICAgICAgICAkYW5jaG9yU2Nyb2xsKCk7XG4gICAgICB9KTtcbiAgICB9KTtcbn0pKCk7IiwiKGZ1bmN0aW9uKCl7XG5cInVzZSBzdHJpY3RcIjtcbmZ1bmN0aW9uIFBvc3RDb250cm9sbGVyKHBvc3QpIHtcblxuXHQvLyBHZXQgdGhlIHNpbmdsZSBwb3N0IGRhdGFcblx0dGhpcy5wb3N0ID0gcG9zdC5kYXRhWzBdO1xuXG5cdC8vY29uc29sZS5sb2cocG9zdCk7IFxuXG59XG5cbmFuZ3VsYXJcbiAgLm1vZHVsZSgnYXBwJylcbiAgLmNvbnRyb2xsZXIoJ1Bvc3RDb250cm9sbGVyJywgUG9zdENvbnRyb2xsZXIpO1xuXG59KSgpOyIsIihmdW5jdGlvbigpe1xuXCJ1c2Ugc3RyaWN0XCI7XG5mdW5jdGlvbiBQb3N0c0NvbnRyb2xsZXIoYWxscG9zdHMsIHBvc3RzLCAkc3RhdGVQYXJhbXMpIHtcblxuXHQvLyBHZXQgMTAgcG9zdHMgYXQgYSB0aW1lLi5cblx0dGhpcy5wb3N0cyA9IHBvc3RzLmRhdGE7XG5cblx0Ly8gR2V0IGFsbCBwb3N0cyBzbyB3ZSBjYW4gY291bnQgZm9yIHBhZ2luYXRpb24uLiBcbiAgIFx0dGhpcy5hbGxQb3N0cyA9IGFsbHBvc3RzLmRhdGEubGVuZ3RoO1xuXG4gICBcdC8vY29uc29sZS5sb2codGhpcy5wb3N0cyk7XG5cbn1cblxuYW5ndWxhclxuICAubW9kdWxlKCdhcHAnKVxuICAuY29udHJvbGxlcignUG9zdHNDb250cm9sbGVyJywgUG9zdHNDb250cm9sbGVyKTtcblxuXG59KSgpOyIsIihmdW5jdGlvbigpe1xuXCJ1c2Ugc3RyaWN0XCI7XG4vL3Bvc3RzTmF2TGluayBEaXJlY3RpdmVcbmZ1bmN0aW9uIHBvc3RzTmF2TGluaygpIHtcblxuXHRyZXR1cm4ge1xuXHRcdHJlc3RyaWN0OiAnRUEnLFxuXHRcdHRlbXBsYXRlVXJsOiAncGFydGlhbHMvcGFnaW5hdGlvbi1kaXJlY3RpdmUuaHRtbCcsXG5cdFx0Ly8gQG5nSW5qZWN0XG5cdFx0Y29udHJvbGxlcjogIGZ1bmN0aW9uKCRzY29wZSwgJHN0YXRlUGFyYW1zKSB7XG5cblx0XHRcdHZhciBjdXJyZW50UGFnZSA9ICgkc3RhdGVQYXJhbXMubnVtYmVyID09PSB1bmRlZmluZWQpID8gMSA6ICRzdGF0ZVBhcmFtcy5udW1iZXIsXG5cdFx0XHRcdGxpbmtQcmVmaXggPSAnL3Bvc3RzL3BhZ2UvJyxcblx0XHRcdFx0cG9zdHNDb3VudCA9ICRzY29wZS5wb3N0cy5hbGxQb3N0cztcblxuXHRcdFx0JHNjb3BlLnBvc3RzTmF2TGluayA9IHtcblx0XHRcdFx0cHJldkxpbms6IGxpbmtQcmVmaXggKyAocGFyc2VJbnQoY3VycmVudFBhZ2UpIC0gMSksXG5cdFx0XHRcdG5leHRMaW5rOiBsaW5rUHJlZml4ICsgKHBhcnNlSW50KGN1cnJlbnRQYWdlKSArIDEpLFxuXHRcdFx0XHRjdXJyZW50UGFnZTogY3VycmVudFBhZ2UsXG5cdFx0XHRcdHBvc3RzQ291bnQ6IChwb3N0c0NvdW50IC8gMTApXG5cdFx0XHR9O1xuXHRcdH1cblx0fTtcblxufVxuXG5hbmd1bGFyXG5cdC5tb2R1bGUoJ2FwcCcpXG5cdC5kaXJlY3RpdmUoJ3Bvc3RzTmF2TGluaycsIHBvc3RzTmF2TGluaylcblxuXG59KSgpOyIsIihmdW5jdGlvbigpe1xuXCJ1c2Ugc3RyaWN0XCI7XG4vL3NlYXJjaEZvcm0gRGlyZWN0aXZlXG5mdW5jdGlvbiBzZWFyY2hGb3JtKCkge1xuXG5cdC8qKlxuICAgICAqIEBuZ0luamVjdFxuICAgICAqL1xuXHRmdW5jdGlvbiBzZWFyY2hGb3JtQ29udHJvbGxlcigkc2NvcGUsIFBvc3RzU2VydmljZSwgJHN0YXRlKSB7XG5cblx0XHQkc2NvcGUuZ2V0UXVlcnkgPSBmdW5jdGlvbihxdWVyeSkge1xuXHRcdFx0cmV0dXJuIFBvc3RzU2VydmljZS5xdWVyeVBvc3RzKHF1ZXJ5KVxuXHRcdFx0XHQudGhlbihmdW5jdGlvbihkYXRhKSB7XG5cdFx0XHRcdFx0Ly9yZXR1cm4gbGltaXRUb0ZpbHRlcihkYXRhLmRhdGEsIDUpO1xuICAgICAgICAgICAgXHRcdHJldHVybiBkYXRhLmRhdGE7XG4gICAgICAgICAgICBcdFx0Ly9jb25zb2xlLmxvZyhkYXRhLmRhdGEpO1xuXG4gICAgICAgIFx0XHR9KTtcblx0XHR9O1xuXG5cdFx0JHNjb3BlLm9uU2VsZWN0ID0gZnVuY3Rpb24gKCRpdGVtLCAkbW9kZWwsICRsYWJlbCkge1xuXHRcdCAgICRzY29wZS4kaXRlbSA9ICRpdGVtO1xuXHRcdCAgICRzY29wZS4kbW9kZWwgPSAkbW9kZWw7XG5cdFx0ICAgJHNjb3BlLiRsYWJlbCA9ICRsYWJlbDtcblx0XHQgICAgXHQkc3RhdGUuZ28oJ3NlYXJjaCcsIHtxdWVyeTogJHNjb3BlLiRsYWJlbH0pXG5cdFx0ICAgICAgICAvL2NvbnNvbGUubG9nKCRzY29wZS4kbGFiZWwpO1xuXHRcdH07XG5cblx0XHQkc2NvcGUub25TdWJtaXQgPSBmdW5jdGlvbigpIHtcblx0XHRcdCRzdGF0ZS5nbygnc2VhcmNoJywge3F1ZXJ5OiAkc2NvcGUuc2VhcmNoUXVlcnl9KVxuXHRcdFx0Ly9jb25zb2xlLmxvZygkc2NvcGUuc2VhcmNoUXVlcnkpO1xuXHRcdH07XG5cblx0fVxuXG5cdHJldHVybiB7XG5cdFx0cmVzdHJpY3Q6ICdFQScsXG5cdFx0dGVtcGxhdGVVcmw6ICdwYXJ0aWFscy9zZWFyY2gtZm9ybS1kaXJlY3RpdmUuaHRtbCcsIFxuXHRcdGNvbnRyb2xsZXI6IHNlYXJjaEZvcm1Db250cm9sbGVyXG5cdH1cblxufVxuXG5hbmd1bGFyXG5cdC5tb2R1bGUoJ2FwcCcpXG5cdC5kaXJlY3RpdmUoJ3NlYXJjaEZvcm0nLCBzZWFyY2hGb3JtKVxuXG5cblxuXG5cblxuICBcbn0pKCk7IiwiKGZ1bmN0aW9uKCl7XG5cInVzZSBzdHJpY3RcIjtcbmZ1bmN0aW9uIFBvc3RzU2VydmljZSgkaHR0cCkge1xuXG4gICAgdmFyIHNlbGYgPSB0aGlzO1xuICAgIHZhciB1cmwgPSAnaHR0cDovL2Rldjo4ODg4L3dwLWpzb24vd3AvdjIvJztcblxuICAgIHNlbGYuZ2V0UG9zdHMgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuICRodHRwLmdldCggdXJsICsgJ3Bvc3RzJyApO1xuICAgIH07XG5cbiAgICBzZWxmLmdldEFsbFBvc3RzID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiAkaHR0cC5nZXQoIHVybCArICdwb3N0cycgKyAnP2ZpbHRlcltwb3N0c19wZXJfcGFnZV09LTEnICk7XG4gICAgfTtcblxuICAgIHNlbGYuZ2V0UG9zdCA9IGZ1bmN0aW9uKG5hbWUpIHtcbiAgICAgICAgcmV0dXJuICRodHRwLmdldCggdXJsICsgJ3Bvc3RzJyArICc/ZmlsdGVyW25hbWVdPScgKyBuYW1lLnNsdWcgKTtcbiAgICB9O1xuXG4gICAgc2VsZi5nZXRQYWdlcyA9IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gJGh0dHAuZ2V0KCB1cmwgKyAncGFnZXMnICsgJz9maWx0ZXJbcG9zdHNfcGVyX3BhZ2VdPS0xJyApO1xuICAgIH07XG5cbiAgICBzZWxmLmdldFBhZ2UgPSBmdW5jdGlvbihuYW1lKSB7XG4gICAgICAgIHJldHVybiAkaHR0cC5nZXQoIHVybCArICdwYWdlcycgKyAnP2ZpbHRlcltuYW1lXT0nICsgbmFtZS5zbHVnICk7XG4gICAgfTtcblxuICAgIHNlbGYuZ2V0U2VhcmNoUmVzdWx0ID0gZnVuY3Rpb24ocykge1xuICAgICAgICByZXR1cm4gJGh0dHAuZ2V0KCB1cmwgKyAncG9zdHMnICsgJz9maWx0ZXJbc109JyArIHMucXVlcnkgKyAnJmZpbHRlcltwb3N0c19wZXJfcGFnZV09LTEnKTtcbiAgICB9O1xuXG4gICAgc2VsZi5xdWVyeVBvc3RzID0gZnVuY3Rpb24ocykge1xuICAgICAgICByZXR1cm4gJGh0dHAuZ2V0KCB1cmwgKyAncG9zdHMnICsgJz9maWx0ZXJbc109JyArIHMgKyAnJmZpbHRlcltwb3N0c19wZXJfcGFnZV09LTEnKTtcbiAgICB9O1xuXG4gICAgc2VsZi5wb3N0c1BhZ2luYXRpb24gPSBmdW5jdGlvbihwYWdlKSB7XG4gICAgICAgIHJldHVybiAkaHR0cC5nZXQoIHVybCArICdwb3N0cz9wYWdlPScgKyBwYWdlLm51bWJlciApO1xuICAgIH07XG5cbn1cblxuYW5ndWxhclxuICAgIC5tb2R1bGUoJ2FwcCcpXG4gICAgLnNlcnZpY2UoJ1Bvc3RzU2VydmljZScsIFBvc3RzU2VydmljZSlcbn0pKCk7IiwiKGZ1bmN0aW9uKCl7XG5cInVzZSBzdHJpY3RcIjtcbnZhciBhcHAgPSBhbmd1bGFyLm1vZHVsZSgnYXBwJywgWyd1aS5yb3V0ZXInLCAnYW5ndWxhci1sb2FkaW5nLWJhcicsICduZ1Nhbml0aXplJywgJ3VpLmJvb3RzdHJhcCcsICduZ0FuaW1hdGUnLCAndWkucm91dGVyLnRpdGxlJ10pXG5cbn0pKCk7XG4oZnVuY3Rpb24oKXtcblwidXNlIHN0cmljdFwiO1xuLy8gYW5ndWxhci5tb2R1bGUoJ2FwcCcpXG4vLyBUdXJuIG9mZiB0aGUgc3Bpbm5lciBmb3IgdGhlIGxvYWRlclxuLy8gICAuY29uZmlnKCBmdW5jdGlvbihjZnBMb2FkaW5nQmFyUHJvdmlkZXIpIHtcbi8vICAgICBjZnBMb2FkaW5nQmFyUHJvdmlkZXIuaW5jbHVkZVNwaW5uZXIgPSBmYWxzZTtcbi8vICAgfSk7XG59KSgpO1xuKGZ1bmN0aW9uKCl7XG5cInVzZSBzdHJpY3RcIjtcbmFuZ3VsYXIubW9kdWxlKCdhcHAnKVxuLmNvbmZpZyggW1wiJGxvY2F0aW9uUHJvdmlkZXJcIiwgXCIkc3RhdGVQcm92aWRlclwiLCBcIiR1cmxSb3V0ZXJQcm92aWRlclwiLCBmdW5jdGlvbigkbG9jYXRpb25Qcm92aWRlciwgJHN0YXRlUHJvdmlkZXIsICR1cmxSb3V0ZXJQcm92aWRlcikge1xuXG4gICAgLy8gUmVtb3ZlIHRoZSAjIGZyb20gdGhlIFVSTFxuICAgICRsb2NhdGlvblByb3ZpZGVyLmh0bWw1TW9kZSh7XG4gICAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgICAgIHJlcXVpcmVCYXNlOiBmYWxzZVxuICAgIH0pO1xuICAgIFxuICAgJHVybFJvdXRlclByb3ZpZGVyLm90aGVyd2lzZShcIi9ob21lXCIpO1xuXG4gICAgJHN0YXRlUHJvdmlkZXJcbiAgICAgICAgLy8gQWxsIHRoZSBkaWZmZXJlbnQgcm91dGVzXG4gICAgICAgIC5zdGF0ZSgnaG9tZScsIHtcbiAgICAgICAgICAgIHVybDogJy8nLFxuICAgICAgICAgICAgdGVtcGxhdGVVcmw6ICdwYXJ0aWFscy9ob21lLmh0bWwnXG4gICAgICAgIH0pXG5cbiAgICAgICAgLnN0YXRlKCdob21lLm1vcmUnLCB7XG4gICAgICAgICAgICB0ZW1wbGF0ZVVybDogJ3BhcnRpYWxzL2hvbWUubW9yZS5odG1sJyxcbiAgICAgICAgfSlcblxuICAgICAgICAuc3RhdGUoJ2hvbWUuZmVhdHVyZXMnLCB7XG4gICAgICAgICAgICB0ZW1wbGF0ZVVybDogJ3BhcnRpYWxzL2hvbWUuZmVhdHVyZXMuaHRtbCcsXG4gICAgICAgIH0pXG5cbiAgICAgICAgLnN0YXRlKCdhYm91dCcsIHtcbiAgICAgICAgICAgIHVybDogJy9hYm91dCcsXG4gICAgICAgICAgICB2aWV3czoge1xuICAgICAgICAgICAgICAgICcnOiB7IHRlbXBsYXRlVXJsOiAncGFydGlhbHMvYWJvdXQuaHRtbCcgfSxcbiAgICAgICAgICAgICAgICAnY29sdW1uT25lQGFib3V0JzogeyB0ZW1wbGF0ZTogJ0xvb2sgSSBhbSBhIGNvbHVtbiEnIH0sXG4gICAgICAgICAgICAgICAgJ2NvbHVtblR3b0BhYm91dCc6IHsgdGVtcGxhdGU6ICdMb29rIEkgYW0gYSBjb2x1bW4hJ1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByZXNvbHZlOiB7XG4gICAgICAgICAgICAgICR0aXRsZTogZnVuY3Rpb24oKSB7IHJldHVybiAnQWJvdXQnOyB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBcbiAgICAgICAgfSlcblxuICAgICAgICAuc3RhdGUoJ3Bvc3RzJywge1xuICAgICAgICAgICAgdXJsOiAnL3Bvc3RzJyxcbiAgICAgICAgICAgIHJlc29sdmU6IHtcbiAgICAgICAgICAgICAgICBwb3N0czogW1wiUG9zdHNTZXJ2aWNlXCIsIGZ1bmN0aW9uKFBvc3RzU2VydmljZSkge1xuICAgICAgICAgICAgICAgICAgIHJldHVybiBQb3N0c1NlcnZpY2UuZ2V0UG9zdHMoKTtcbiAgICAgICAgICAgICAgICB9XSxcbiAgICAgICAgICAgICAgICBhbGxwb3N0czogW1wiUG9zdHNTZXJ2aWNlXCIsIGZ1bmN0aW9uKFBvc3RzU2VydmljZSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gUG9zdHNTZXJ2aWNlLmdldEFsbFBvc3RzKCk7XG4gICAgICAgICAgICAgICAgfV0sXG4gICAgICAgICAgICAgICAgJHRpdGxlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdQb3N0cyc7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB0ZW1wbGF0ZVVybDogJ3BhcnRpYWxzL3Bvc3RzLmh0bWwnLFxuICAgICAgICAgICAgY29udHJvbGxlcjogJ1Bvc3RzQ29udHJvbGxlcicsXG4gICAgICAgICAgICBjb250cm9sbGVyQXM6ICdwb3N0cycsXG4gICAgICAgIH0pXG5cbiAgICAgICAgLnN0YXRlKCdwb3N0Jywge1xuICAgICAgICAgICAgdXJsOiAnL3Bvc3QvOnNsdWcnLFxuICAgICAgICAgICAgcmVzb2x2ZToge1xuICAgICAgICAgICAgICAgIHBvc3Q6IFtcIiRzdGF0ZVBhcmFtc1wiLCBcIlBvc3RzU2VydmljZVwiLCBmdW5jdGlvbigkc3RhdGVQYXJhbXMsIFBvc3RzU2VydmljZSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gUG9zdHNTZXJ2aWNlLmdldFBvc3QoJHN0YXRlUGFyYW1zKTtcbiAgICAgICAgICAgICAgICB9XSxcbiAgICAgICAgICAgICAgICAkdGl0bGU6IFtcInBvc3RcIiwgZnVuY3Rpb24ocG9zdCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcG9zdC5kYXRhWzBdLnRpdGxlLnJlbmRlcmVkO1xuICAgICAgICAgICAgICAgIH1dLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHRlbXBsYXRlVXJsOiAncGFydGlhbHMvc2luZ2xlLmh0bWwnLFxuICAgICAgICAgICAgY29udHJvbGxlcjogJ1Bvc3RDb250cm9sbGVyJyxcbiAgICAgICAgICAgIGNvbnRyb2xsZXJBczogJ3Bvc3RzJ1xuICAgICAgICB9KVxuXG4gICAgICAgIC5zdGF0ZSgncGFnZXMnLCB7XG4gICAgICAgICAgICB1cmw6ICcvcGFnZXMnLFxuICAgICAgICAgICAgcmVzb2x2ZToge1xuICAgICAgICAgICAgICAgIHBvc3RzOiBbXCIkc3RhdGVQYXJhbXNcIiwgXCJQb3N0c1NlcnZpY2VcIiwgZnVuY3Rpb24oJHN0YXRlUGFyYW1zLCBQb3N0c1NlcnZpY2UpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFBvc3RzU2VydmljZS5nZXRQYWdlcygpO1xuICAgICAgICAgICAgICAgIH1dLFxuICAgICAgICAgICAgICAgICR0aXRsZTogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAnUGFnZXMnO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdGVtcGxhdGVVcmw6ICdwYXJ0aWFscy9wb3N0cy5odG1sJyxcbiAgICAgICAgICAgIGNvbnRyb2xsZXI6ICdQb3N0c0NvbnRyb2xsZXInLFxuICAgICAgICAgICAgY29udHJvbGxlckFzOiAncG9zdHMnXG4gICAgICAgIH0pXG5cbiAgICAgICAgLnN0YXRlKCdwYWdlJywge1xuICAgICAgICAgICAgdXJsOiAnL3BhZ2UvOnNsdWcnLFxuICAgICAgICAgICAgcmVzb2x2ZToge1xuICAgICAgICAgICAgICAgIHBvc3Q6IFtcIiRzdGF0ZVBhcmFtc1wiLCBcIlBvc3RzU2VydmljZVwiLCBmdW5jdGlvbigkc3RhdGVQYXJhbXMsIFBvc3RzU2VydmljZSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gUG9zdHNTZXJ2aWNlLmdldFBhZ2UoJHN0YXRlUGFyYW1zKTtcbiAgICAgICAgICAgICAgICB9XSxcbiAgICAgICAgICAgICAgICAkdGl0bGU6IFtcInBvc3RcIiwgZnVuY3Rpb24ocG9zdCkge1xuICAgICAgICAgICAgICAgICAgIHJldHVybiBwb3N0LmRhdGFbMF0udGl0bGUucmVuZGVyZWQ7XG4gICAgICAgICAgICAgICAgfV0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdGVtcGxhdGVVcmw6ICdwYXJ0aWFscy9zaW5nbGUuaHRtbCcsXG4gICAgICAgICAgICBjb250cm9sbGVyOiAnUG9zdENvbnRyb2xsZXInLFxuICAgICAgICAgICAgY29udHJvbGxlckFzOiAncG9zdHMnXG4gICAgICAgIH0pXG5cbiAgICAgICAgLnN0YXRlKCdwYWdpbmF0aW9uJywge1xuICAgICAgICAgICAgdXJsOiAnL3Bvc3RzL3BhZ2UvOm51bWJlcicsXG4gICAgICAgICAgICByZXNvbHZlOiB7XG4gICAgICAgICAgICAgICAgcG9zdHM6IFtcIiRzdGF0ZVBhcmFtc1wiLCBcIlBvc3RzU2VydmljZVwiLCBmdW5jdGlvbigkc3RhdGVQYXJhbXMsIFBvc3RzU2VydmljZSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gUG9zdHNTZXJ2aWNlLnBvc3RzUGFnaW5hdGlvbigkc3RhdGVQYXJhbXMpO1xuICAgICAgICAgICAgICAgIH1dLFxuICAgICAgICAgICAgICAgIGFsbHBvc3RzOiBbXCJQb3N0c1NlcnZpY2VcIiwgZnVuY3Rpb24oUG9zdHNTZXJ2aWNlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBQb3N0c1NlcnZpY2UuZ2V0QWxsUG9zdHMoKTtcbiAgICAgICAgICAgICAgICB9XSxcbiAgICAgICAgICAgICAgICAkdGl0bGU6IFtcIiRzdGF0ZVBhcmFtc1wiLCBmdW5jdGlvbigkc3RhdGVQYXJhbXMpIHtcbiAgICAgICAgICAgICAgICAgICByZXR1cm4gJ1Bvc3RzICgnICsgJHN0YXRlUGFyYW1zLm51bWJlciArICcpJyA7XG4gICAgICAgICAgICAgICAgfV0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdGVtcGxhdGVVcmw6ICdwYXJ0aWFscy9wb3N0cy5odG1sJyxcbiAgICAgICAgICAgIGNvbnRyb2xsZXI6ICdQb3N0c0NvbnRyb2xsZXInLFxuICAgICAgICAgICAgY29udHJvbGxlckFzOiAncG9zdHMnXG4gICAgICAgIH0pXG5cbiAgICAgICAgLnN0YXRlKCdzZWFyY2gnLCB7XG4gICAgICAgICAgICB1cmw6ICcvc2VhcmNoLzpxdWVyeScsXG4gICAgICAgICAgICByZXNvbHZlOiB7XG4gICAgICAgICAgICAgICAgcG9zdHM6IFtcIiRzdGF0ZVBhcmFtc1wiLCBcIlBvc3RzU2VydmljZVwiLCBcIiRzdGF0ZVwiLCBmdW5jdGlvbigkc3RhdGVQYXJhbXMsIFBvc3RzU2VydmljZSwgJHN0YXRlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBQb3N0c1NlcnZpY2UuZ2V0U2VhcmNoUmVzdWx0KCRzdGF0ZVBhcmFtcyk7XG4gICAgICAgICAgICAgICAgfV0sXG4gICAgICAgICAgICAgICAgYWxscG9zdHM6IFtcIlBvc3RzU2VydmljZVwiLCBmdW5jdGlvbihQb3N0c1NlcnZpY2UpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFBvc3RzU2VydmljZS5nZXRBbGxQb3N0cygpO1xuICAgICAgICAgICAgICAgIH1dLFxuICAgICAgICAgICAgICAgICR0aXRsZTogW1wiJHN0YXRlUGFyYW1zXCIsIGZ1bmN0aW9uKCRzdGF0ZVBhcmFtcykge1xuICAgICAgICAgICAgICAgICAgIHJldHVybiAkc3RhdGVQYXJhbXMucXVlcnk7XG4gICAgICAgICAgICAgICAgfV0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdGVtcGxhdGVVcmw6ICdwYXJ0aWFscy9zZWFyY2guaHRtbCcsXG4gICAgICAgICAgICBjb250cm9sbGVyOiAnUG9zdHNDb250cm9sbGVyJyxcbiAgICAgICAgICAgIGNvbnRyb2xsZXJBczogJ3Bvc3RzJ1xuICAgICAgICB9KTtcblxufV0pO1xuXG5hbmd1bGFyLm1vZHVsZSgnYXBwJylcbi5ydW4oW1wiJHJvb3RTY29wZVwiLCBcIiRhbmNob3JTY3JvbGxcIiwgZnVuY3Rpb24oJHJvb3RTY29wZSwgJGFuY2hvclNjcm9sbCl7XG4gICAgLy8gU2Nyb2xsIHRvIHRoZSB0b3Agb2YgdGhlIHBhZ2Ugd2hlbiByb3V0ZSBjaGFuZ2VzXG4gICAgICAkcm9vdFNjb3BlLiRvbignJHN0YXRlQ2hhbmdlU3RhcnQnLCBmdW5jdGlvbihlLCB0b1N0YXRlLCB0b1BhcmFtcywgZnJvbVN0YXRlLCBmcm9tUGFyYW1zKSB7XG4gICAgICAgICRhbmNob3JTY3JvbGwoKTtcbiAgICAgIH0pO1xuICAgIH1dKTtcbn0pKCk7XG4oZnVuY3Rpb24oKXtcblwidXNlIHN0cmljdFwiO1xuZnVuY3Rpb24gUG9zdENvbnRyb2xsZXIocG9zdCkge1xuXG5cdC8vIEdldCB0aGUgc2luZ2xlIHBvc3QgZGF0YVxuXHR0aGlzLnBvc3QgPSBwb3N0LmRhdGFbMF07XG5cblx0Ly9jb25zb2xlLmxvZyhwb3N0KTsgXG5cbn1cblBvc3RDb250cm9sbGVyLiRpbmplY3QgPSBbXCJwb3N0XCJdO1xuXG5hbmd1bGFyXG4gIC5tb2R1bGUoJ2FwcCcpXG4gIC5jb250cm9sbGVyKCdQb3N0Q29udHJvbGxlcicsIFBvc3RDb250cm9sbGVyKTtcblxufSkoKTtcbihmdW5jdGlvbigpe1xuXCJ1c2Ugc3RyaWN0XCI7XG5mdW5jdGlvbiBQb3N0c0NvbnRyb2xsZXIoYWxscG9zdHMsIHBvc3RzLCAkc3RhdGVQYXJhbXMpIHtcblxuXHQvLyBHZXQgMTAgcG9zdHMgYXQgYSB0aW1lLi5cblx0dGhpcy5wb3N0cyA9IHBvc3RzLmRhdGE7XG5cblx0Ly8gR2V0IGFsbCBwb3N0cyBzbyB3ZSBjYW4gY291bnQgZm9yIHBhZ2luYXRpb24uLiBcbiAgIFx0dGhpcy5hbGxQb3N0cyA9IGFsbHBvc3RzLmRhdGEubGVuZ3RoO1xuXG4gICBcdC8vY29uc29sZS5sb2codGhpcy5wb3N0cyk7XG5cbn1cblBvc3RzQ29udHJvbGxlci4kaW5qZWN0ID0gW1wiYWxscG9zdHNcIiwgXCJwb3N0c1wiLCBcIiRzdGF0ZVBhcmFtc1wiXTtcblxuYW5ndWxhclxuICAubW9kdWxlKCdhcHAnKVxuICAuY29udHJvbGxlcignUG9zdHNDb250cm9sbGVyJywgUG9zdHNDb250cm9sbGVyKTtcblxuXG59KSgpO1xuKGZ1bmN0aW9uKCl7XG5cInVzZSBzdHJpY3RcIjtcbi8vcG9zdHNOYXZMaW5rIERpcmVjdGl2ZVxuZnVuY3Rpb24gcG9zdHNOYXZMaW5rKCkge1xuXG5cdHJldHVybiB7XG5cdFx0cmVzdHJpY3Q6ICdFQScsXG5cdFx0dGVtcGxhdGVVcmw6ICdwYXJ0aWFscy9wYWdpbmF0aW9uLWRpcmVjdGl2ZS5odG1sJyxcblx0XHQvLyBAbmdJbmplY3Rcblx0XHRjb250cm9sbGVyOiAgW1wiJHNjb3BlXCIsIFwiJHN0YXRlUGFyYW1zXCIsIGZ1bmN0aW9uKCRzY29wZSwgJHN0YXRlUGFyYW1zKSB7XG5cblx0XHRcdHZhciBjdXJyZW50UGFnZSA9ICgkc3RhdGVQYXJhbXMubnVtYmVyID09PSB1bmRlZmluZWQpID8gMSA6ICRzdGF0ZVBhcmFtcy5udW1iZXIsXG5cdFx0XHRcdGxpbmtQcmVmaXggPSAnL3Bvc3RzL3BhZ2UvJyxcblx0XHRcdFx0cG9zdHNDb3VudCA9ICRzY29wZS5wb3N0cy5hbGxQb3N0cztcblxuXHRcdFx0JHNjb3BlLnBvc3RzTmF2TGluayA9IHtcblx0XHRcdFx0cHJldkxpbms6IGxpbmtQcmVmaXggKyAocGFyc2VJbnQoY3VycmVudFBhZ2UpIC0gMSksXG5cdFx0XHRcdG5leHRMaW5rOiBsaW5rUHJlZml4ICsgKHBhcnNlSW50KGN1cnJlbnRQYWdlKSArIDEpLFxuXHRcdFx0XHRjdXJyZW50UGFnZTogY3VycmVudFBhZ2UsXG5cdFx0XHRcdHBvc3RzQ291bnQ6IChwb3N0c0NvdW50IC8gMTApXG5cdFx0XHR9O1xuXHRcdH1dXG5cdH07XG5cbn1cblxuYW5ndWxhclxuXHQubW9kdWxlKCdhcHAnKVxuXHQuZGlyZWN0aXZlKCdwb3N0c05hdkxpbmsnLCBwb3N0c05hdkxpbmspXG5cblxufSkoKTtcbihmdW5jdGlvbigpe1xuXCJ1c2Ugc3RyaWN0XCI7XG4vL3NlYXJjaEZvcm0gRGlyZWN0aXZlXG5mdW5jdGlvbiBzZWFyY2hGb3JtKCkge1xuXG5cdC8qKlxuICAgICAqIEBuZ0luamVjdFxuICAgICAqL1xuXHRmdW5jdGlvbiBzZWFyY2hGb3JtQ29udHJvbGxlcigkc2NvcGUsIFBvc3RzU2VydmljZSwgJHN0YXRlKSB7XG5cblx0XHQkc2NvcGUuZ2V0UXVlcnkgPSBmdW5jdGlvbihxdWVyeSkge1xuXHRcdFx0cmV0dXJuIFBvc3RzU2VydmljZS5xdWVyeVBvc3RzKHF1ZXJ5KVxuXHRcdFx0XHQudGhlbihmdW5jdGlvbihkYXRhKSB7XG5cdFx0XHRcdFx0Ly9yZXR1cm4gbGltaXRUb0ZpbHRlcihkYXRhLmRhdGEsIDUpO1xuICAgICAgICAgICAgXHRcdHJldHVybiBkYXRhLmRhdGE7XG4gICAgICAgICAgICBcdFx0Ly9jb25zb2xlLmxvZyhkYXRhLmRhdGEpO1xuXG4gICAgICAgIFx0XHR9KTtcblx0XHR9O1xuXG5cdFx0JHNjb3BlLm9uU2VsZWN0ID0gZnVuY3Rpb24gKCRpdGVtLCAkbW9kZWwsICRsYWJlbCkge1xuXHRcdCAgICRzY29wZS4kaXRlbSA9ICRpdGVtO1xuXHRcdCAgICRzY29wZS4kbW9kZWwgPSAkbW9kZWw7XG5cdFx0ICAgJHNjb3BlLiRsYWJlbCA9ICRsYWJlbDtcblx0XHQgICAgXHQkc3RhdGUuZ28oJ3NlYXJjaCcsIHtxdWVyeTogJHNjb3BlLiRsYWJlbH0pXG5cdFx0ICAgICAgICAvL2NvbnNvbGUubG9nKCRzY29wZS4kbGFiZWwpO1xuXHRcdH07XG5cblx0XHQkc2NvcGUub25TdWJtaXQgPSBmdW5jdGlvbigpIHtcblx0XHRcdCRzdGF0ZS5nbygnc2VhcmNoJywge3F1ZXJ5OiAkc2NvcGUuc2VhcmNoUXVlcnl9KVxuXHRcdFx0Ly9jb25zb2xlLmxvZygkc2NvcGUuc2VhcmNoUXVlcnkpO1xuXHRcdH07XG5cblx0fVxuXHRzZWFyY2hGb3JtQ29udHJvbGxlci4kaW5qZWN0ID0gW1wiJHNjb3BlXCIsIFwiUG9zdHNTZXJ2aWNlXCIsIFwiJHN0YXRlXCJdO1xuXG5cdHJldHVybiB7XG5cdFx0cmVzdHJpY3Q6ICdFQScsXG5cdFx0dGVtcGxhdGVVcmw6ICdwYXJ0aWFscy9zZWFyY2gtZm9ybS1kaXJlY3RpdmUuaHRtbCcsIFxuXHRcdGNvbnRyb2xsZXI6IHNlYXJjaEZvcm1Db250cm9sbGVyXG5cdH1cblxufVxuXG5hbmd1bGFyXG5cdC5tb2R1bGUoJ2FwcCcpXG5cdC5kaXJlY3RpdmUoJ3NlYXJjaEZvcm0nLCBzZWFyY2hGb3JtKVxuXG5cblxuXG5cblxuICBcbn0pKCk7XG4oZnVuY3Rpb24oKXtcblwidXNlIHN0cmljdFwiO1xuZnVuY3Rpb24gUG9zdHNTZXJ2aWNlKCRodHRwKSB7XG5cbiAgICB2YXIgc2VsZiA9IHRoaXM7XG4gICAgdmFyIHVybCA9ICdodHRwOi8vZGV2Ojg4ODgvd3AtanNvbi93cC92Mi8nO1xuXG4gICAgc2VsZi5nZXRQb3N0cyA9IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gJGh0dHAuZ2V0KCB1cmwgKyAncG9zdHMnICk7XG4gICAgfTtcblxuICAgIHNlbGYuZ2V0QWxsUG9zdHMgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuICRodHRwLmdldCggdXJsICsgJ3Bvc3RzJyArICc/ZmlsdGVyW3Bvc3RzX3Blcl9wYWdlXT0tMScgKTtcbiAgICB9O1xuXG4gICAgc2VsZi5nZXRQb3N0ID0gZnVuY3Rpb24obmFtZSkge1xuICAgICAgICByZXR1cm4gJGh0dHAuZ2V0KCB1cmwgKyAncG9zdHMnICsgJz9maWx0ZXJbbmFtZV09JyArIG5hbWUuc2x1ZyApO1xuICAgIH07XG5cbiAgICBzZWxmLmdldFBhZ2VzID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiAkaHR0cC5nZXQoIHVybCArICdwYWdlcycgKyAnP2ZpbHRlcltwb3N0c19wZXJfcGFnZV09LTEnICk7XG4gICAgfTtcblxuICAgIHNlbGYuZ2V0UGFnZSA9IGZ1bmN0aW9uKG5hbWUpIHtcbiAgICAgICAgcmV0dXJuICRodHRwLmdldCggdXJsICsgJ3BhZ2VzJyArICc/ZmlsdGVyW25hbWVdPScgKyBuYW1lLnNsdWcgKTtcbiAgICB9O1xuXG4gICAgc2VsZi5nZXRTZWFyY2hSZXN1bHQgPSBmdW5jdGlvbihzKSB7XG4gICAgICAgIHJldHVybiAkaHR0cC5nZXQoIHVybCArICdwb3N0cycgKyAnP2ZpbHRlcltzXT0nICsgcy5xdWVyeSArICcmZmlsdGVyW3Bvc3RzX3Blcl9wYWdlXT0tMScpO1xuICAgIH07XG5cbiAgICBzZWxmLnF1ZXJ5UG9zdHMgPSBmdW5jdGlvbihzKSB7XG4gICAgICAgIHJldHVybiAkaHR0cC5nZXQoIHVybCArICdwb3N0cycgKyAnP2ZpbHRlcltzXT0nICsgcyArICcmZmlsdGVyW3Bvc3RzX3Blcl9wYWdlXT0tMScpO1xuICAgIH07XG5cbiAgICBzZWxmLnBvc3RzUGFnaW5hdGlvbiA9IGZ1bmN0aW9uKHBhZ2UpIHtcbiAgICAgICAgcmV0dXJuICRodHRwLmdldCggdXJsICsgJ3Bvc3RzP3BhZ2U9JyArIHBhZ2UubnVtYmVyICk7XG4gICAgfTtcblxufVxuUG9zdHNTZXJ2aWNlLiRpbmplY3QgPSBbXCIkaHR0cFwiXTtcblxuYW5ndWxhclxuICAgIC5tb2R1bGUoJ2FwcCcpXG4gICAgLnNlcnZpY2UoJ1Bvc3RzU2VydmljZScsIFBvc3RzU2VydmljZSlcbn0pKCk7Il0sInNvdXJjZVJvb3QiOiIvc291cmNlLyJ9