diff --git a/app/angular/controller.js b/app/angular/controller.js
index f34f49b..511f635 100644
--- a/app/angular/controller.js
+++ b/app/angular/controller.js
@@ -5,8 +5,9 @@
     /* jshint validthis: true */
     var vm = this;
     vm.config = {
-      delay: 2,
+      delay: 1,
       shots: 3,
+      countdown : 3,
       flashFallbackUrl: 'vendors/webcamjs/webcam.swf',
       shutterUrl: 'shutter.mp3',
       flashNotDetectedText: 'Seu browser não atende os requisitos mínimos para utilização da camera. ' +
diff --git a/dist/ng-webcam.js b/dist/ng-webcam.js
index 91c9f35..49e02fe 100644
--- a/dist/ng-webcam.js
+++ b/dist/ng-webcam.js
@@ -40,9 +40,9 @@
     };
 
     function template(element, attrs) {
-      return ['<div class="ng-webcam no-overlay" ng-class="{\'no-overlay\' : vm.counter === 0 || vm.config.countdown === 0}">',
-        '<span ng-show="vm.webcamLive === true && vm.config.countdown > 0 && vm.counter > 0" id="ng-webcam-counter">{{vm.counter}}</span>',
-        '<img ng-show="vm.webcamLive === true" id="ng-webcam-overlay" src="{{vm.config.overlay}}" />',
+      return ['<div class="ng-webcam" ng-class="{\'no-overlay\' : vm.counter === 0 || vm.config.countdown === 0}">',
+        '<span ng-show="vm.webcamLive === true && vm.config.countdown > 0 && vm.counter > 0" id="counter">{{vm.counter}}</span>',
+        '<img ng-show="vm.webcamLive === true" id="ng-webcam-overlay" ng-src="{{vm.config.overlay}}" />',
         '<div id="ng-webcam-container"></div>',
         '</div>'].join('');
     }
@@ -63,7 +63,7 @@
       var images = [];
       vm.webcamLoaded = false;
       vm.webcamLive = false;
-      vm.counter = 3;
+      vm.counter = 0;
       vm.init = init;
       vm.destroy = destroy;
       /**
@@ -103,13 +103,13 @@
       function init() {
         vm.config = vm.config || {};
         if(window.localStorage) window.localStorage.setItem('visited', '1');
-        if(angular.isUndefined(vm.config.viewerWidth)) vm.config.viewerWidth = 'auto';
-        if(angular.isUndefined(vm.config.viewerHeight)) vm.config.viewerHeight = 'auto';
+        if(angular.isUndefined(vm.config.viewerWidth)) vm.config.viewerWidth = 320;
+        if(angular.isUndefined(vm.config.viewerHeight)) vm.config.viewerHeight = 240;
         if(angular.isUndefined(vm.config.outputWidth)) vm.config.outputWidth = 320;
         if(angular.isUndefined(vm.config.outputHeight)) vm.config.outputHeight = 240;
         if(angular.isUndefined(vm.config.delay)) vm.config.delay = 0;
         if(angular.isUndefined(vm.config.shots)) vm.config.shots = 1;
-        if(angular.isUndefined(vm.config.countdown)) vm.config.countdown = 0;
+	    if(angular.isUndefined(vm.config.countdown)){ vm.config.countdown = 0; } else {vm.counter = vm.config.countdown; }
         configureListeners();
         configure();
       }
@@ -126,7 +126,7 @@
           $interval.cancel(countdownTimer);
           countdownTimer = undefined;
         }
-        vm.counter = 3;
+        vm.counter = 0;
 
       }
 
@@ -203,7 +203,7 @@
       }
 
       function onWebcamCapture() {
-        if(angular.isUndefined(vm.config.countdown)) {
+        if(!vm.config.countdown) {
           var count = 0;
           snapshotTimer = $interval(function() {
             capture(count);
@@ -211,20 +211,23 @@
           }, (vm.config.delay * 1000), vm.config.shots);
         } else {
           if(countdownTimer !== undefined) return;
-          vm.counter = 3;
+          vm.counter = vm.config.countdown;
           countdownTimer = $interval(function() {
             vm.counter = vm.counter - 1;
             if(vm.counter === 0) {
               if(countdownTimer) {
                 $interval.cancel(countdownTimer);
               }
-              var count = 0;
+              
+              //snap first
+	          capture(0);
+              var count = 1;
               snapshotTimer = $interval(function() {
-                capture(count);
-                count++;
-              }, (vm.config.delay * 1000), vm.config.shots);
+	              capture(count);
+                  count++;
+              }, (vm.config.delay * 1000), vm.config.shots - 1);
             }
-          }, 1000, 3);
+          }, 1000, vm.config.countdown);
         }
       }
 
diff --git a/dist/ng-webcam.min.js b/dist/ng-webcam.min.js
index 964ceb8..6558a85 100644
--- a/dist/ng-webcam.min.js
+++ b/dist/ng-webcam.min.js
@@ -1,2 +1,2 @@
-!function(){"use strict";function n(){function n(n,e){return['<div class="ng-webcam no-overlay" ng-class="{\'no-overlay\' : vm.counter === 0 || vm.config.countdown === 0}">','<span ng-show="vm.webcamLive === true && vm.config.countdown > 0 && vm.counter > 0" id="ng-webcam-counter">{{vm.counter}}</span>','<img ng-show="vm.webcamLive === true" id="ng-webcam-overlay" src="{{vm.config.overlay}}" />','<div id="ng-webcam-container"></div>',"</div>"].join("")}function e(n,e,o,i){i.init(),n.$on("$destroy",function(){i.destroy()})}function o(n,e){function o(){l.config=l.config||{},window.localStorage&&window.localStorage.setItem("visited","1"),angular.isUndefined(l.config.viewerWidth)&&(l.config.viewerWidth="auto"),angular.isUndefined(l.config.viewerHeight)&&(l.config.viewerHeight="auto"),angular.isUndefined(l.config.outputWidth)&&(l.config.outputWidth=320),angular.isUndefined(l.config.outputHeight)&&(l.config.outputHeight=240),angular.isUndefined(l.config.delay)&&(l.config.delay=0),angular.isUndefined(l.config.shots)&&(l.config.shots=1),angular.isUndefined(l.config.countdown)&&(l.config.countdown=0),c(),t()}function i(){l.webcamLive&&Webcam.reset(),l.webcamLive=!1,l.webcamLoaded=!1,angular.isDefined(s)&&(e.cancel(s),s=void 0),angular.isDefined(d)&&(e.cancel(d),d=void 0),l.counter=3}function t(){angular.isDefined(l.config.shutterUrl)&&(u=new Audio,u.autoplay=!1,navigator.userAgent.match(/Firefox/)?u.src=l.config.shutterUrl.split(".")[0]+".ogg":u.src=l.config.shutterUrl),Webcam.set({width:l.config.viewerWidth,height:l.config.viewerHeight,dest_width:l.config.outputWidth,dest_height:l.config.outputHeight,force_flash:!1,image_format:"jpeg",jpeg_quality:100,flip_horiz:!0}),angular.isDefined(l.config.flashNotDetectedText)&&Webcam.set("flashNotDetectedText",l.config.flashNotDetectedText),angular.isDefined(l.config.flashFallbackUrl)&&Webcam.setSWFLocation(l.config.flashFallbackUrl),Webcam.attach("#ng-webcam-container")}function c(){Webcam.on("load",function(){n.$apply(function(){l.webcamLoaded=!0,angular.isDefined(l.onLoad)&&l.onLoad()})}),Webcam.on("live",function(){n.$apply(function(){l.webcamLive=!0,angular.isDefined(l.onLive)&&l.onLive()})}),Webcam.on("error",function(n){angular.isDefined(l.onError)&&l.onError({err:n})})}function a(n){u&&u.play(),n===l.config.shots-1&&e.cancel(s),Webcam.snap(function(e){if(m[n]=e,n<l.config.shots-1&&angular.isDefined(l.onCaptureProgress)){var o=Math.round(100*(n+1)/l.config.shots);l.onCaptureProgress({src:e,progress:o})}if(n===l.config.shots-1&&angular.isDefined(l.onCaptureComplete))return l.onCaptureComplete({src:m})})}function r(){if(angular.isUndefined(l.config.countdown)){var n=0;s=e(function(){a(n),n++},1e3*l.config.delay,l.config.shots)}else{if(void 0!==d)return;l.counter=3,d=e(function(){if(l.counter=l.counter-1,0===l.counter){d&&e.cancel(d);var n=0;s=e(function(){a(n),n++},1e3*l.config.delay,l.config.shots)}},1e3,3)}}function f(){Webcam.attach("#ng-webcam-container")}function g(){i()}var u,s,d,l=this,m=[];l.webcamLoaded=!1,l.webcamLive=!1,l.counter=3,l.init=o,l.destroy=i,n.$on("ngWebcam_capture",r),n.$on("ngWebcam_on",f),n.$on("ngWebcam_off",g)}var i={restrict:"E",template:n,link:e,bindToController:!0,controller:o,controllerAs:"vm",scope:{config:"=",onCaptureComplete:"&",onError:"&",onLoad:"&",onCaptureProgress:"&",onLive:"&"}};return o.$inject=["$scope","$interval"],i}angular.module("ng-webcam",[]).directive("ngWebcam",n),n.$inject=[]}();
-//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5nLXdlYmNhbS5qcyJdLCJuYW1lcyI6WyJuZ1dlYmNhbSIsInRlbXBsYXRlIiwiZWxlbWVudCIsImF0dHJzIiwiam9pbiIsImxpbmsiLCJzY29wZSIsImN0cmwiLCJpbml0IiwiJG9uIiwiZGVzdHJveSIsIm5nV2ViY2FtQ29udHJvbGxlciIsIiRzY29wZSIsIiRpbnRlcnZhbCIsInZtIiwiY29uZmlnIiwid2luZG93IiwibG9jYWxTdG9yYWdlIiwic2V0SXRlbSIsImFuZ3VsYXIiLCJpc1VuZGVmaW5lZCIsInZpZXdlcldpZHRoIiwidmlld2VySGVpZ2h0Iiwib3V0cHV0V2lkdGgiLCJvdXRwdXRIZWlnaHQiLCJkZWxheSIsInNob3RzIiwiY291bnRkb3duIiwiY29uZmlndXJlTGlzdGVuZXJzIiwiY29uZmlndXJlIiwid2ViY2FtTGl2ZSIsIldlYmNhbSIsInJlc2V0Iiwid2ViY2FtTG9hZGVkIiwiaXNEZWZpbmVkIiwic25hcHNob3RUaW1lciIsImNhbmNlbCIsInVuZGVmaW5lZCIsImNvdW50ZG93blRpbWVyIiwiY291bnRlciIsInNodXR0ZXJVcmwiLCJzb3VuZCIsIkF1ZGlvIiwiYXV0b3BsYXkiLCJuYXZpZ2F0b3IiLCJ1c2VyQWdlbnQiLCJtYXRjaCIsInNyYyIsInNwbGl0Iiwic2V0Iiwid2lkdGgiLCJoZWlnaHQiLCJkZXN0X3dpZHRoIiwiZGVzdF9oZWlnaHQiLCJmb3JjZV9mbGFzaCIsImltYWdlX2Zvcm1hdCIsImpwZWdfcXVhbGl0eSIsImZsaXBfaG9yaXoiLCJmbGFzaE5vdERldGVjdGVkVGV4dCIsImZsYXNoRmFsbGJhY2tVcmwiLCJzZXRTV0ZMb2NhdGlvbiIsImF0dGFjaCIsIm9uIiwiJGFwcGx5Iiwib25Mb2FkIiwib25MaXZlIiwiZXJyIiwib25FcnJvciIsImNhcHR1cmUiLCJpbmRleCIsInBsYXkiLCJzbmFwIiwiZGF0YV91cmkiLCJpbWFnZXMiLCJvbkNhcHR1cmVQcm9ncmVzcyIsInByb2dyZXNzIiwiTWF0aCIsInJvdW5kIiwib25DYXB0dXJlQ29tcGxldGUiLCJvbldlYmNhbUNhcHR1cmUiLCJjb3VudCIsIm9uV2ViY2FtT24iLCJvbldlYmNhbU9mZiIsInRoaXMiLCJkaXJlY3RpdmUiLCJyZXN0cmljdCIsImJpbmRUb0NvbnRyb2xsZXIiLCJjb250cm9sbGVyIiwiY29udHJvbGxlckFzIiwiJGluamVjdCIsIm1vZHVsZSJdLCJtYXBwaW5ncyI6IkNBQUEsV0FDQSxZQXNCQSxTQUFBQSxLQWtCQSxRQUFBQyxHQUFBQyxFQUFBQyxHQUNBLE9BQUEsaUhBQ0EsbUlBQ0EsOEZBQ0EsdUNBQ0EsVUFBQUMsS0FBQSxJQUdBLFFBQUFDLEdBQUFDLEVBQUFKLEVBQUFDLEVBQUFJLEdBQ0FBLEVBQUFDLE9BQ0FGLEVBQUFHLElBQUEsV0FBQSxXQUNBRixFQUFBRyxZQU1BLFFBQUFDLEdBQUFDLEVBQUFDLEdBNENBLFFBQUFMLEtBQ0FNLEVBQUFDLE9BQUFELEVBQUFDLFdBQ0FDLE9BQUFDLGNBQUFELE9BQUFDLGFBQUFDLFFBQUEsVUFBQSxLQUNBQyxRQUFBQyxZQUFBTixFQUFBQyxPQUFBTSxlQUFBUCxFQUFBQyxPQUFBTSxZQUFBLFFBQ0FGLFFBQUFDLFlBQUFOLEVBQUFDLE9BQUFPLGdCQUFBUixFQUFBQyxPQUFBTyxhQUFBLFFBQ0FILFFBQUFDLFlBQUFOLEVBQUFDLE9BQUFRLGVBQUFULEVBQUFDLE9BQUFRLFlBQUEsS0FDQUosUUFBQUMsWUFBQU4sRUFBQUMsT0FBQVMsZ0JBQUFWLEVBQUFDLE9BQUFTLGFBQUEsS0FDQUwsUUFBQUMsWUFBQU4sRUFBQUMsT0FBQVUsU0FBQVgsRUFBQUMsT0FBQVUsTUFBQSxHQUNBTixRQUFBQyxZQUFBTixFQUFBQyxPQUFBVyxTQUFBWixFQUFBQyxPQUFBVyxNQUFBLEdBQ0FQLFFBQUFDLFlBQUFOLEVBQUFDLE9BQUFZLGFBQUFiLEVBQUFDLE9BQUFZLFVBQUEsR0FDQUMsSUFDQUMsSUFHQSxRQUFBbkIsS0FDQUksRUFBQWdCLFlBQUFDLE9BQUFDLFFBQ0FsQixFQUFBZ0IsWUFBQSxFQUNB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K0IsR0FBQU4sRUFBQUcsRUFEQXhCLEVBQUFxRSxLQUVBVixJQUNBM0QsR0FBQW1CLGNBQUEsRUFDQW5CLEVBQUFnQixZQUFBLEVBQ0FoQixFQUFBeUIsUUFBQSxFQUNBekIsRUFBQU4sS0FBQUEsRUFDQU0sRUFBQUosUUFBQUEsRUFXQUUsRUFBQUgsSUFBQSxtQkFBQXNFLEdBV0FuRSxFQUFBSCxJQUFBLGNBQUF3RSxHQVdBckUsRUFBQUgsSUFBQSxlQUFBeUUsR0E1RUEsR0FBQUUsSUFDQUMsU0FBQSxJQUNBcEYsU0FBQUEsRUFDQUksS0FBQUEsRUFDQWlGLGtCQUFBLEVBQ0FDLFdBQUE1RSxFQUNBNkUsYUFBQSxLQUNBbEYsT0FDQVMsT0FBQSxJQUNBK0Qsa0JBQUEsSUFDQVgsUUFBQSxJQUNBSCxPQUFBLElBQ0FVLGtCQUFBLElBQ0FULE9BQUEsS0F5TUEsT0F0TEF0RCxHQUFBOEUsU0FBQSxTQUFBLGFBc0xBTCxFQTVPQWpFLFFBQUF1RSxPQUFBLGdCQUFBTixVQUFBLFdBQUFwRixHQUNBQSxFQUFBeUYiLCJmaWxlIjoibmctd2ViY2FtLm1pbi5qcyIsInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbigpIHtcclxuICAndXNlIHN0cmljdCc7XHJcbiAgYW5ndWxhci5tb2R1bGUoJ25nLXdlYmNhbScsIFtdKS5kaXJlY3RpdmUoJ25nV2ViY2FtJywgbmdXZWJjYW0pO1xyXG4gIG5nV2ViY2FtLiRpbmplY3QgPSBbXTtcclxuICAvKipcclxuICAgKiAgQG5nZG9jIERpcmVjdGl2ZVxyXG4gICAqICBAbmFtZSBuZy13ZWJjYW1cclxuICAgKiAgQGRlc2NyaXB0aW9uXHJcbiAgICpcclxuICAgKiAgRGlyZWN0aXZlIGZvciBjYXB0dXJpbmcgaW1hZ2VzIGZyb20geW91ciBjb21wdXRlcidzIGNhbWVyYSwgYW5kIGRlbGl2ZXJ5IHRoZW4gdG8geW91IGFzIGRhdGEgdXJpXHJcbiAgICpcclxuICAgKiAgQHVzYWdlXHJcbiAgICogIGBgYGh0bWxcclxuICAgKiAgPG5nLXdlYmNhbVxyXG4gICAqICAgIGNvbmZpZz1cInZtLmNvbmZpZ1wiXHJcbiAgICogICAgb24tZXJyb3I9XCJ2bS5vbkVycm9yKGVycilcIlxyXG4gICAqICAgIG9uLWxvYWQ9XCJ2bS5vbkxvYWQoKVwiXHJcbiAgICogICAgb24tbGl2ZT1cInZtLm9uTGl2ZSgpXCJcclxuICAgKiAgICBvbi1jYXB0dXJlLXByb2dyZXNzPVwidm0ub25DYXB0dXJlUHJvZ3Jlc3Moc3JjLCBwcm9ncmVzcylcIlxyXG4gICAqICAgIG9uLWNhcHR1cmUtY29tcGxldGU9XCJ2bS5vbkNhcHR1cmVDb21wbGV0ZShzcmMpXCI+XHJcbiAgICogIDwvbmctd2ViY2FtPlxyXG4gICAqICBgYGBcclxuICAgKi9cclxuICBmdW5jdGlvbiBuZ1dlYmNhbSgpIHtcclxuICAgIHZhciBkaXJlY3RpdmUgPSB7XHJcbiAgICAgIHJlc3RyaWN0OiAnRScsXHJcbiAgICAgIHRlbXBsYXRlOiB0ZW1wbGF0ZSxcclxuICAgICAgbGluazogbGluayxcclxuICAgICAgYmluZFRvQ29udHJvbGxlcjogdHJ1ZSxcclxuICAgICAgY29udHJvbGxlcjogbmdXZWJjYW1Db250cm9sbGVyLFxyXG4gICAgICBjb250cm9sbGVyQXM6ICd2bScsXHJcbiAgICAgIHNjb3BlOiB7XHJcbiAgICAgICAgY29uZmlnOiAnPScsXHJcbiAgICAgICAgb25DYXB0dXJlQ29tcGxldGU6ICcmJyxcclxuICAgICAgICBvbkVycm9yOiAnJicsXHJcbiAgICAgICAgb25Mb2FkOiAnJicsXHJcbiAgICAgICAgb25DYXB0dXJlUHJvZ3Jlc3M6ICcmJyxcclxuICAgICAgICBvbkxpdmU6ICcmJ1xyXG4gICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIGZ1bmN0aW9uIHRlbXBsYXRlKGVsZW1lbnQsIGF0dHJzKSB7XHJcbiAgICAgIHJldHVybiBbJzxkaXYgY2xhc3M9XCJuZy13ZWJjYW0gbm8tb3ZlcmxheVwiIG5nLWNsYXNzPVwie1xcJ25vLW92ZXJsYXlcXCcgOiB2bS5jb3VudGVyID09PSAwIHx8IHZtLmNvbmZpZy5jb3VudGRvd24gPT09IDB9XCI+JyxcclxuICAgICAgICAnPHNwYW4gbmctc2hvdz1cInZtLndlYmNhbUxpdmUgPT09IHRydWUgJiYgdm0uY29uZmlnLmNvdW50ZG93biA+IDAgJiYgdm0uY291bnRlciA+IDBcIiBpZD1cIm5nLXdlYmNhbS1jb3VudGVyXCI+e3t2bS5jb3VudGVyfX08L3NwYW4+JyxcclxuICAgICAgICAnPGltZyBuZy1zaG93PVwidm0ud2ViY2FtTGl2ZSA9PT0gdHJ1ZVwiIGlkPVwibmctd2ViY2FtLW92ZXJsYXlcIiBzcmM9XCJ7e3ZtLmNvbmZpZy5vdmVybGF5fX1cIiAvPicsXHJcbiAgICAgICAgJzxkaXYgaWQ9XCJuZy13ZWJjYW0tY29udGFpbmVyXCI+PC9kaXY+JyxcclxuICAgICAgICAnPC9kaXY+J10uam9pbignJyk7XHJcbiAgICB9XHJcblxyXG4gICAgZnVuY3Rpb24gbGluayhzY29wZSwgZWxlbWVudCwgYXR0cnMsIGN0cmwpIHtcclxuICAgICAgY3RybC5pbml0KCk7XHJcbiAgICAgIHNjb3BlLiRvbignJGRlc3Ryb3knLCBmdW5jdGlvbigpIHtcclxuICAgICAgICBjdHJsLmRlc3Ryb3koKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdXZWJjYW1Db250cm9sbGVyLiRpbmplY3QgPSBbJyRzY29wZScsICckaW50ZXJ2YWwnXTtcclxuXHJcbiAgICBmdW5jdGlvbiBuZ1dlYmNhbUNvbnRyb2xsZXIoJHNjb3BlLCAkaW50ZXJ2YWwpIHtcclxuICAgICAgLypqc2hpbnQgdmFsaWR0aGlzOiB0cnVlICovXHJcbiAgICAgIHZhciB2bSA9IHRoaXM7XHJcbiAgICAgIHZhciBzb3VuZCwgc25hcHNob3RUaW1lciwgY291bnRkb3duVGltZXI7XHJcbiAgICAgIHZhciBpbWFnZXMgPSBbXTtcclxuICAgICAgdm0ud2ViY2FtTG9hZGVkID0gZmFsc2U7XHJcbiAgICAgIHZtLndlYmNhbUxpdmUgPSBmYWxzZTtcclxuICAgICAgdm0uY291bnRlciA9IDM7XHJcbiAgICAgIHZtLmluaXQgPSBpbml0O1xyXG4gICAgICB2bS5kZXN0cm95ID0gZGVzdHJveTtcclxuICAgICAgLyoqXHJcbiAgICAgICAqICBAbmdkb2MgbGlzdGVuZXJcclxuICAgICAgICogIEBuYW1lIG5nV2ViY2FtX2NhcHR1cmVcclxuICAgICAgICogIEBkZXNjcmlwdGlvblxyXG4gICAgICAgKlxyXG4gICAgICAgKiAgTGlzdGVuZXIgZm9yIGNhcHR1cmUgdXNlciBhY3Rpb25cclxuICAgICAgICpcclxuICAgICAgICogIEB1c2FnZVxyXG4gICAgICAgKiAgYCRzY29wZS4kYnJvYWRjYXN0KCduZ1dlYmNhbV9jYXB0dXJlJyk7YFxyXG4gICAgICAgKi9cclxuICAgICAgJHNjb3BlLiRvbignbmdXZWJjYW1fY2FwdHVyZScsIG9uV2ViY2FtQ2FwdHVyZSk7XHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiAgQG5nZG9jIGxpc3RlbmVyXHJcbiAgICAgICAqICBAbmFtZSBuZ1dlYmNhbV9vblxyXG4gICAgICAgKiAgQGRlc2NyaXB0aW9uXHJcbiAgICAgICAqXHJcbiAgICAgICAqICBMaXN0ZW5lciBmb3IgY2FtZXJhIG9uIHVzZXIgYWN0aW9uXHJcbiAgICAgICAqXHJcbiAgICAgICAqICBAdXNhZ2VcclxuICAgICAgICogIGAkc2NvcGUuJGJyb2FkY2FzdCgnbmdXZWJjYW1fb24nKTtgXHJcbiAgICAgICAqL1xyXG4gICAgICAkc2NvcGUuJG9uKCduZ1dlYmNhbV9vbicsIG9uV2ViY2FtT24pO1xyXG4gICAgICAvKipcclxuICAgICAgICogIEBuZ2RvYyBsaXN0ZW5lclxyXG4gICAgICAgKiAgQG5hbWUgbmdXZWJjYW1fb2ZmXHJcbiAgICAgICAqICBAZGVzY3JpcHRpb25cclxuICAgICAgICpcclxuICAgICAgICogIExpc3RlbmVyIGZvciBjYW1lcmEgb2ZmIHVzZXIgYWN0aW9uXHJcbiAgICAgICAqXHJcbiAgICAgICAqICBAdXNhZ2VcclxuICAgICAgICogIGAkc2NvcGUuJGJyb2FkY2FzdCgnbmdXZWJjYW1fb2ZmJyk7YFxyXG4gICAgICAgKi9cclxuICAgICAgJHNjb3BlLiRvbignbmdXZWJjYW1fb2ZmJywgb25XZWJjYW1PZmYpO1xyXG5cclxuICAgICAgZnVuY3Rpb24gaW5pdCgpIHtcclxuICAgICAgICB2bS5jb25maWcgPSB2bS5jb25maWcgfHwge307XHJcbiAgICAgICAgaWYod2luZG93LmxvY2FsU3RvcmFnZSkgd2luZG93LmxvY2FsU3RvcmFnZS5zZXRJdGVtKCd2aXNpdGVkJywgJzEnKTtcclxuICAgICAgICBpZihhbmd1bGFyLmlzVW5kZWZpbmVkKHZtLmNvbmZpZy52aWV3ZXJXaWR0aCkpIHZtLmNvbmZpZy52aWV3ZXJXaWR0aCA9ICdhdXRvJztcclxuICAgICAgICBpZihhbmd1bGFyLmlzVW5kZWZpbmVkKHZtLmNvbmZpZy52aWV3ZXJIZWlnaHQpKSB2bS5jb25maWcudmlld2VySGVpZ2h0ID0gJ2F1dG8nO1xyXG4gICAgICAgIGlmKGFuZ3VsYXIuaXNVbmRlZmluZWQodm0uY29uZmlnLm91dHB1dFdpZHRoKSkgdm0uY29uZmlnLm91dHB1dFdpZHRoID0gMzIwO1xyXG4gICAgICAgIGlmKGFuZ3VsYXIuaXNVbmRlZmluZWQodm0uY29uZmlnLm91dHB1dEhlaWdodCkpIHZtLmNvbmZpZy5vdXRwdXRIZWlnaHQgPSAyNDA7XHJcbiAgICAgICAgaWYoYW5ndWxhci5pc1VuZGVmaW5lZCh2bS5jb25maWcuZGVsYXkpKSB2bS5jb25maWcuZGVsYXkgPSAwO1xyXG4gICAgICAgIGlmKGFuZ3VsYXIuaXNVbmRlZmluZWQodm0uY29uZmlnLnNob3RzKSkgdm0uY29uZmlnLnNob3RzID0gMTtcclxuICAgICAgICBpZihhbmd1bGFyLmlzVW5kZWZpbmVkKHZtLmNvbmZpZy5jb3VudGRvd24pKSB2bS5jb25maWcuY291bnRkb3duID0gMDtcclxuICAgICAgICBjb25maWd1cmVMaXN0ZW5lcnMoKTtcclxuICAgICAgICBjb25maWd1cmUoKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgZnVuY3Rpb24gZGVzdHJveSgpIHtcclxuICAgICAgICBpZih2bS53ZWJjYW1MaXZlKSBXZWJjYW0ucmVzZXQoKTtcclxuICAgICAgICB2bS53ZWJjYW1MaXZlID0gZmFsc2U7XHJcbiAgICAgICAgdm0ud2ViY2FtTG9hZGVkID0gZmFsc2U7XHJcbiAgICAgICAgaWYoYW5ndWxhci5pc0RlZmluZWQoc25hcHNob3RUaW1lcikpIHtcclxuICAgICAgICAgICRpbnRlcnZhbC5jYW5jZWwoc25hcHNob3RUaW1lcik7XHJcbiAgICAgICAgICBzbmFwc2hvdFRpbWVyID0gdW5kZWZpbmVkO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZihhbmd1bGFyLmlzRGVmaW5lZChjb3VudGRvd25UaW1lcikpIHtcclxuICAgICAgICAgICRpbnRlcnZhbC5jYW5jZWwoY291bnRkb3duVGltZXIpO1xyXG4gICAgICAgICAgY291bnRkb3duVGltZXIgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHZtLmNvdW50ZXIgPSAzO1xyXG5cclxuICAgICAgfVxyXG5cclxuICAgICAgZnVuY3Rpb24gY29uZmlndXJlKCkge1xyXG4gICAgICAgIGlmKGFuZ3VsYXIuaXNEZWZpbmVkKHZtLmNvbmZpZy5zaHV0dGVyVXJsKSkge1xyXG4gICAgICAgICAgc291bmQgPSBuZXcgQXVkaW8oKTtcclxuICAgICAgICAgIHNvdW5kLmF1dG9wbGF5ID0gZmFsc2U7XHJcbiAgICAgICAgICBpZihuYXZpZ2F0b3IudXNlckFnZW50Lm1hdGNoKC9GaXJlZm94LykpIHtcclxuICAgICAgICAgICAgc291bmQuc3JjID0gdm0uY29uZmlnLnNodXR0ZXJVcmwuc3BsaXQoJy4nKVswXSArICcub2dnJztcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHNvdW5kLnNyYyA9IHZtLmNvbmZpZy5zaHV0dGVyVXJsO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBXZWJjYW0uc2V0KHtcclxuICAgICAgICAgIHdpZHRoOiB2bS5jb25maWcudmlld2VyV2lkdGgsXHJcbiAgICAgICAgICBoZWlnaHQ6IHZtLmNvbmZpZy52aWV3ZXJIZWlnaHQsXHJcbiAgICAgICAgICBkZXN0X3dpZHRoOiB2bS5jb25maWcub3V0cHV0V2lkdGgsXHJcbiAgICAgICAgICBkZXN0X2hlaWdodDogdm0uY29uZmlnLm91dHB1dEhlaWdodCxcclxuICAgICAgICAgIGZvcmNlX2ZsYXNoOiBmYWxzZSxcclxuICAgICAgICAgIGltYWdlX2Zvcm1hdDogJ2pwZWcnLFxyXG4gICAgICAgICAganBlZ19xdWFsaXR5OiAxMDAsXHJcbiAgICAgICAgICBmbGlwX2hvcml6OiB0cnVlXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgaWYoYW5ndWxhci5pc0RlZmluZWQodm0uY29uZmlnLmZsYXNoTm90RGV0ZWN0ZWRUZXh0KSkge1xyXG4gICAgICAgICAgV2ViY2FtLnNldCgnZmxhc2hOb3REZXRlY3RlZFRleHQnLCB2bS5jb25maWcuZmxhc2hOb3REZXRlY3RlZFRleHQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZihhbmd1bGFyLmlzRGVmaW5lZCh2bS5jb25maWcuZmxhc2hGYWxsYmFja1VybCkpIHtcclxuICAgICAgICAgIFdlYmNhbS5zZXRTV0ZMb2NhdGlvbih2bS5jb25maWcuZmxhc2hGYWxsYmFja1VybCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFdlYmNhbS5hdHRhY2goJyNuZy13ZWJjYW0tY29udGFpbmVyJyk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGZ1bmN0aW9uIGNvbmZpZ3VyZUxpc3RlbmVycygpIHtcclxuICAgICAgICBXZWJjYW0ub24oJ2xvYWQnLCBmdW5jdGlvbigpIHtcclxuICAgICAgICAgICRzY29wZS4kYXBwbHkoZnVuY3Rpb24oKSB7XHJcbiAgICAgICAgICAgIHZtLndlYmNhbUxvYWRlZCA9IHRydWU7XHJcbiAgICAgICAgICAgIGlmKGFuZ3VsYXIuaXNEZWZpbmVkKHZtLm9uTG9hZCkpIHtcclxuICAgICAgICAgICAgICB2bS5vbkxvYWQoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgV2ViY2FtLm9uKCdsaXZlJywgZnVuY3Rpb24oKSB7XHJcbiAgICAgICAgICAkc2NvcGUuJGFwcGx5KGZ1bmN0aW9uKCkge1xyXG4gICAgICAgICAgICB2bS53ZWJjYW1MaXZlID0gdHJ1ZTtcclxuICAgICAgICAgICAgaWYoYW5ndWxhci5pc0RlZmluZWQodm0ub25MaXZlKSkge1xyXG4gICAgICAgICAgICAgIHZtLm9uTGl2ZSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9KTtcclxuICAgICAgICBXZWJjYW0ub24oJ2Vycm9yJywgZnVuY3Rpb24oZXJyKSB7XHJcbiAgICAgICAgICBpZihhbmd1bGFyLmlzRGVmaW5lZCh2bS5vbkVycm9yKSkge1xyXG4gICAgICAgICAgICB2bS5vbkVycm9yKHtlcnI6ZXJyfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGZ1bmN0aW9uIGNhcHR1cmUoaW5kZXgpIHtcclxuICAgICAgICBpZihzb3VuZCkge1xyXG4gICAgICAgICAgc291bmQucGxheSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZihpbmRleCA9PT0gKHZtLmNvbmZpZy5zaG90cy0xKSkge1xyXG4gICAgICAgICAgJGludGVydmFsLmNhbmNlbChzbmFwc2hvdFRpbWVyKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgV2ViY2FtLnNuYXAoZnVuY3Rpb24oZGF0YV91cmkpIHtcclxuICAgICAgICAgIGltYWdlc1tpbmRleF0gPSBkYXRhX3VyaTtcclxuICAgICAgICAgIGlmKGluZGV4IDwgKHZtLmNvbmZpZy5zaG90cy0xKSAmJiBhbmd1bGFyLmlzRGVmaW5lZCh2bS5vbkNhcHR1cmVQcm9ncmVzcykpIHtcclxuICAgICAgICAgICAgdmFyIHByb2dyZXNzID0gTWF0aC5yb3VuZCgoKGluZGV4KzEpICogMTAwKSAvIHZtLmNvbmZpZy5zaG90cyk7XHJcbiAgICAgICAgICAgIHZtLm9uQ2FwdHVyZVByb2dyZXNzKHtzcmM6IGRhdGFfdXJpLHByb2dyZXNzOiBwcm9ncmVzc30pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYoaW5kZXggPT09ICh2bS5jb25maWcuc2hvdHMtMSkgJiYgYW5ndWxhci5pc0RlZmluZWQodm0ub25DYXB0dXJlQ29tcGxldGUpKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB2bS5vbkNhcHR1cmVDb21wbGV0ZSh7c3JjOiBpbWFnZXN9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG5cclxuICAgICAgZnVuY3Rpb24gb25XZWJjYW1DYXB0dXJlKCkge1xyXG4gICAgICAgIGlmKGFuZ3VsYXIuaXNVbmRlZmluZWQodm0uY29uZmlnLmNvdW50ZG93bikpIHtcclxuICAgICAgICAgIHZhciBjb3VudCA9IDA7XHJcbiAgICAgICAgICBzbmFwc2hvdFRpbWVyID0gJGludGVydmFsKGZ1bmN0aW9uKCkge1xyXG4gICAgICAgICAgICBjYXB0dXJlKGNvdW50KTtcclxuICAgICAgICAgICAgY291bnQrKztcclxuICAgICAgICAgIH0sICh2bS5jb25maWcuZGVsYXkgKiAxMDAwKSwgdm0uY29uZmlnLnNob3RzKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgaWYoY291bnRkb3duVGltZXIgIT09IHVuZGVmaW5lZCkgcmV0dXJuO1xyXG4gICAgICAgICAgdm0uY291bnRlciA9IDM7XHJcbiAgICAgICAgICBjb3VudGRvd25UaW1lciA9ICRpbnRlcnZhbChmdW5jdGlvbigpIHtcclxuICAgICAgICAgICAgdm0uY291bnRlciA9IHZtLmNvdW50ZXIgLSAxO1xyXG4gICAgICAgICAgICBpZih2bS5jb3VudGVyID09PSAwKSB7XHJcbiAgICAgICAgICAgICAgaWYoY291bnRkb3duVGltZXIpIHtcclxuICAgICAgICAgICAgICAgICRpbnRlcnZhbC5jYW5jZWwoY291bnRkb3duVGltZXIpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB2YXIgY291bnQgPSAwO1xyXG4gICAgICAgICAgICAgIHNuYXBzaG90VGltZXIgPSAkaW50ZXJ2YWwoZnVuY3Rpb24oKSB7XHJcbiAgICAgICAgICAgICAgICBjYXB0dXJlKGNvdW50KTtcclxuICAgICAgICAgICAgICAgIGNvdW50Kys7XHJcbiAgICAgICAgICAgICAgfSwgKHZtLmNvbmZpZy5kZWxheSAqIDEwMDApLCB2bS5jb25maWcuc2hvdHMpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9LCAxMDAwLCAzKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGZ1bmN0aW9uIG9uV2ViY2FtT24oKSB7XHJcbiAgICAgICAgV2ViY2FtLmF0dGFjaCgnI25nLXdlYmNhbS1jb250YWluZXInKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgZnVuY3Rpb24gb25XZWJjYW1PZmYoKSB7XHJcbiAgICAgICAgZGVzdHJveSgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZGlyZWN0aXZlO1xyXG4gIH1cclxufSkoKTsiXSwic291cmNlUm9vdCI6Ii9zb3VyY2UvIn0=
+!function(){"use strict";function n(){function n(n,e){return['<div class="ng-webcam" ng-class="{\'no-overlay\' : vm.counter === 0 || vm.config.countdown === 0}">','<span ng-show="vm.webcamLive === true && vm.config.countdown > 0 && vm.counter > 0" id="counter">{{vm.counter}}</span>','<img ng-show="vm.webcamLive === true" id="ng-webcam-overlay" ng-src="{{vm.config.overlay}}" />','<div id="ng-webcam-container"></div>',"</div>"].join("")}function e(n,e,o,i){i.init(),n.$on("$destroy",function(){i.destroy()})}function o(n,e){function o(){l.config=l.config||{},window.localStorage&&window.localStorage.setItem("visited","1"),angular.isUndefined(l.config.viewerWidth)&&(l.config.viewerWidth=320),angular.isUndefined(l.config.viewerHeight)&&(l.config.viewerHeight=240),angular.isUndefined(l.config.outputWidth)&&(l.config.outputWidth=320),angular.isUndefined(l.config.outputHeight)&&(l.config.outputHeight=240),angular.isUndefined(l.config.delay)&&(l.config.delay=0),angular.isUndefined(l.config.shots)&&(l.config.shots=1),angular.isUndefined(l.config.countdown)?l.config.countdown=0:l.counter=l.config.countdown,c(),t()}function i(){l.webcamLive&&Webcam.reset(),l.webcamLive=!1,l.webcamLoaded=!1,angular.isDefined(s)&&(e.cancel(s),s=void 0),angular.isDefined(d)&&(e.cancel(d),d=void 0),l.counter=0}function t(){angular.isDefined(l.config.shutterUrl)&&(u=new Audio,u.autoplay=!1,navigator.userAgent.match(/Firefox/)?u.src=l.config.shutterUrl.split(".")[0]+".ogg":u.src=l.config.shutterUrl),Webcam.set({width:l.config.viewerWidth,height:l.config.viewerHeight,dest_width:l.config.outputWidth,dest_height:l.config.outputHeight,force_flash:!1,image_format:"jpeg",jpeg_quality:100,flip_horiz:!0}),angular.isDefined(l.config.flashNotDetectedText)&&Webcam.set("flashNotDetectedText",l.config.flashNotDetectedText),angular.isDefined(l.config.flashFallbackUrl)&&Webcam.setSWFLocation(l.config.flashFallbackUrl),Webcam.attach("#ng-webcam-container")}function c(){Webcam.on("load",function(){n.$apply(function(){l.webcamLoaded=!0,angular.isDefined(l.onLoad)&&l.onLoad()})}),Webcam.on("live",function(){n.$apply(function(){l.webcamLive=!0,angular.isDefined(l.onLive)&&l.onLive()})}),Webcam.on("error",function(n){angular.isDefined(l.onError)&&l.onError({err:n})})}function a(n){u&&u.play(),n===l.config.shots-1&&e.cancel(s),Webcam.snap(function(e){if(m[n]=e,n<l.config.shots-1&&angular.isDefined(l.onCaptureProgress)){var o=Math.round(100*(n+1)/l.config.shots);l.onCaptureProgress({src:e,progress:o})}if(n===l.config.shots-1&&angular.isDefined(l.onCaptureComplete))return l.onCaptureComplete({src:m})})}function r(){if(l.config.countdown){if(void 0!==d)return;l.counter=l.config.countdown,d=e(function(){if(l.counter=l.counter-1,0===l.counter){d&&e.cancel(d),a(0);var n=1;s=e(function(){a(n),n++},1e3*l.config.delay,l.config.shots-1)}},1e3,l.config.countdown)}else{var n=0;s=e(function(){a(n),n++},1e3*l.config.delay,l.config.shots)}}function f(){Webcam.attach("#ng-webcam-container")}function g(){i()}var u,s,d,l=this,m=[];l.webcamLoaded=!1,l.webcamLive=!1,l.counter=0,l.init=o,l.destroy=i,n.$on("ngWebcam_capture",r),n.$on("ngWebcam_on",f),n.$on("ngWebcam_off",g)}var i={restrict:"E",template:n,link:e,bindToController:!0,controller:o,controllerAs:"vm",scope:{config:"=",onCaptureComplete:"&",onError:"&",onLoad:"&",onCaptureProgress:"&",onLive:"&"}};return o.$inject=["$scope","$interval"],i}angular.module("ng-webcam",[]).directive("ngWebcam",n),n.$inject=[]}();
+//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5nLXdlYmNhbS5qcyJdLCJuYW1lcyI6WyJuZ1dlYmNhbSIsInRlbXBsYXRlIiwiZWxlbWVudCIsImF0dHJzIiwiam9pbiIsImxpbmsiLCJzY29wZSIsImN0cmwiLCJpbml0IiwiJG9uIiwiZGVzdHJveSIsIm5nV2ViY2FtQ29udHJvbGxlciIsIiRzY29wZSIsIiRpbnRlcnZhbCIsInZtIiwiY29uZmlnIiwid2luZG93IiwibG9jYWxTdG9yYWdlIiwic2V0SXRlbSIsImFuZ3VsYXIiLCJpc1VuZGVmaW5lZCIsInZpZXdlcldpZHRoIiwidmlld2VySGVpZ2h0Iiwib3V0cHV0V2lkdGgiLCJvdXRwdXRIZWlnaHQiLCJkZWxheSIsInNob3RzIiwiY291bnRkb3duIiwiY291bnRlciIsImNvbmZpZ3VyZUxpc3RlbmVycyIsImNvbmZpZ3VyZSIsIndlYmNhbUxpdmUiLCJXZWJjYW0iLCJyZXNldCIsIndlYmNhbUxvYWRlZCIsImlzRGVmaW5lZCIsInNuYXBzaG90VGltZXIiLCJjYW5jZWwiLCJ1bmRlZmluZWQiLCJjb3VudGRvd25UaW1lciIsInNodXR0ZXJVcmwiLCJzb3VuZCIsIkF1ZGlvIiwiYXV0b3BsYXkiLCJuYXZpZ2F0b3IiLCJ1c2VyQWdlbnQiLCJtYXRjaCIsInNyYyIsInNwbGl0Iiwic2V0Iiwid2lkdGgiLCJoZWlnaHQiLCJkZXN0X3dpZHRoIiwiZGVzdF9oZWlnaHQiLCJmb3JjZV9mbGFzaCIsImltYWdlX2Zvcm1hdCIsImpwZWdfcXVhbGl0eSIsImZsaXBfaG9yaXoiLCJmbGFzaE5vdERldGVjdGVkVGV4dCIsImZsYXNoRmFsbGJhY2tVcmwiLCJzZXRTV0ZMb2NhdGlvbiIsImF0dGFjaCIsIm9uIiwiJGFwcGx5Iiwib25Mb2FkIiwib25MaXZlIiwiZXJyIiwib25FcnJvciIsImNhcHR1cmUiLCJpbmRleCIsInBsYXkiLCJzbmFwIiwiZGF0YV91cmkiLCJpbWFnZXMiLCJvbkNhcHR1cmVQcm9ncmVzcyIsInByb2dyZXNzIiwiTWF0aCIsInJvdW5kIiwib25DYXB0dXJlQ29tcGxldGUiLCJvbldlYmNhbUNhcHR1cmUiLCJjb3VudCIsIm9uV2ViY2FtT24iLCJvbldlYmNhbU9mZiIsInRoaXMiLCJkaXJlY3RpdmUiLCJyZXN0cmljdCIsImJpbmRUb0NvbnRyb2xsZXIiLCJjb250cm9sbGVyIiwiY29udHJvbGxlckFzIiwiJGluamVjdCIsIm1vZHVsZSJdLCJtYXBwaW5ncyI6IkNBQUEsV0FDQSxZQXNCQSxTQUFBQSxLQWtCQSxRQUFBQyxHQUFBQyxFQUFBQyxHQUNBLE9BQUEsc0dBQ0EseUhBQ0EsaUdBQ0EsdUNBQ0EsVUFBQUMsS0FBQSxJQUdBLFFBQUFDLEdBQUFDLEVBQUFKLEVBQUFDLEVBQUFJLEdBQ0FBLEVBQUFDLE9BQ0FGLEVBQUFHLElBQUEsV0FBQSxXQUNBRixFQUFBRyxZQU1BLFFBQUFDLEdBQUFDLEVBQUFDLEdBNENBLFFBQUFMLEtBQ0FNLEVBQUFDLE9BQUFELEVBQUFDLFdBQ0FDLE9BQUFDLGNBQUFELE9BQUFDLGFBQUFDLFFBQUEsVUFBQSxLQUNBQyxRQUFBQyxZQUFBTixFQUFBQyxPQUFBTSxlQUFBUCxFQUFBQyxPQUFBTSxZQUFBLEtBQ0FGLFFBQUFDLFlBQUFOLEVBQUFDLE9BQUFPLGdCQUFBUixFQUFBQyxPQUFBTyxhQUFBLEtBQ0FILFFBQUFDLFlBQUFOLEVBQUFDLE9BQUFRLGVBQUFULEVBQUFDLE9BQUFRLFlBQUEsS0FDQUosUUFBQUMsWUFBQU4sRUFBQUMsT0FBQVMsZ0JBQUFWLEVBQUFDLE9BQUFTLGFBQUEsS0FDQUwsUUFBQUMsWUFBQU4sRUFBQUMsT0FBQVUsU0FBQVgsRUFBQUMsT0FBQVUsTUFBQSxHQUNBTixRQUFBQyxZQUFBTixFQUFBQyxPQUFBVyxTQUFBWixFQUFBQyxPQUFBVyxNQUFBLEdBQ0FQLFFBQUFDLFlBQUFOLEVBQUFDLE9BQUFZLFdBQUFiLEVBQUFDLE9BQUFZLFVBQUEsRUFBQWIsRUFBQWMsUUFBQWQsRUFBQUMsT0FBQVksVUFDQUUsSUFDQUMsSUFHQSxRQUFBcEIsS0FDQUksRUFBQWlCLFlBQUFD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QVcsUUF1QkEsUUFBQXVELEtBQ0FqRCxPQUFBNkIsT0FBQSx3QkFHQSxRQUFBcUIsS0FDQXhFLElBbExBLEdBQ0ErQixHQUFBTCxFQUFBRyxFQURBekIsRUFBQXFFLEtBRUFWLElBQ0EzRCxHQUFBb0IsY0FBQSxFQUNBcEIsRUFBQWlCLFlBQUEsRUFDQWpCLEVBQUFjLFFBQUEsRUFDQWQsRUFBQU4sS0FBQUEsRUFDQU0sRUFBQUosUUFBQUEsRUFXQUUsRUFBQUgsSUFBQSxtQkFBQXNFLEdBV0FuRSxFQUFBSCxJQUFBLGNBQUF3RSxHQVdBckUsRUFBQUgsSUFBQSxlQUFBeUUsR0E1RUEsR0FBQUUsSUFDQUMsU0FBQSxJQUNBcEYsU0FBQUEsRUFDQUksS0FBQUEsRUFDQWlGLGtCQUFBLEVBQ0FDLFdBQUE1RSxFQUNBNkUsYUFBQSxLQUNBbEYsT0FDQVMsT0FBQSxJQUNBK0Qsa0JBQUEsSUFDQVgsUUFBQSxJQUNBSCxPQUFBLElBQ0FVLGtCQUFBLElBQ0FULE9BQUEsS0E0TUEsT0F6TEF0RCxHQUFBOEUsU0FBQSxTQUFBLGFBeUxBTCxFQS9PQWpFLFFBQUF1RSxPQUFBLGdCQUFBTixVQUFBLFdBQUFwRixHQUNBQSxFQUFBeUYiLCJmaWxlIjoibmctd2ViY2FtLm1pbi5qcyIsInNvdXJjZXNDb250ZW50IjpbIihmdW5jdGlvbigpIHtcbiAgJ3VzZSBzdHJpY3QnO1xuICBhbmd1bGFyLm1vZHVsZSgnbmctd2ViY2FtJywgW10pLmRpcmVjdGl2ZSgnbmdXZWJjYW0nLCBuZ1dlYmNhbSk7XG4gIG5nV2ViY2FtLiRpbmplY3QgPSBbXTtcbiAgLyoqXG4gICAqICBAbmdkb2MgRGlyZWN0aXZlXG4gICAqICBAbmFtZSBuZy13ZWJjYW1cbiAgICogIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiAgRGlyZWN0aXZlIGZvciBjYXB0dXJpbmcgaW1hZ2VzIGZyb20geW91ciBjb21wdXRlcidzIGNhbWVyYSwgYW5kIGRlbGl2ZXJ5IHRoZW4gdG8geW91IGFzIGRhdGEgdXJpXG4gICAqXG4gICAqICBAdXNhZ2VcbiAgICogIGBgYGh0bWxcbiAgICogIDxuZy13ZWJjYW1cbiAgICogICAgY29uZmlnPVwidm0uY29uZmlnXCJcbiAgICogICAgb24tZXJyb3I9XCJ2bS5vbkVycm9yKGVycilcIlxuICAgKiAgICBvbi1sb2FkPVwidm0ub25Mb2FkKClcIlxuICAgKiAgICBvbi1saXZlPVwidm0ub25MaXZlKClcIlxuICAgKiAgICBvbi1jYXB0dXJlLXByb2dyZXNzPVwidm0ub25DYXB0dXJlUHJvZ3Jlc3Moc3JjLCBwcm9ncmVzcylcIlxuICAgKiAgICBvbi1jYXB0dXJlLWNvbXBsZXRlPVwidm0ub25DYXB0dXJlQ29tcGxldGUoc3JjKVwiPlxuICAgKiAgPC9uZy13ZWJjYW0+XG4gICAqICBgYGBcbiAgICovXG4gIGZ1bmN0aW9uIG5nV2ViY2FtKCkge1xuICAgIHZhciBkaXJlY3RpdmUgPSB7XG4gICAgICByZXN0cmljdDogJ0UnLFxuICAgICAgdGVtcGxhdGU6IHRlbXBsYXRlLFxuICAgICAgbGluazogbGluayxcbiAgICAgIGJpbmRUb0NvbnRyb2xsZXI6IHRydWUsXG4gICAgICBjb250cm9sbGVyOiBuZ1dlYmNhbUNvbnRyb2xsZXIsXG4gICAgICBjb250cm9sbGVyQXM6ICd2bScsXG4gICAgICBzY29wZToge1xuICAgICAgICBjb25maWc6ICc9JyxcbiAgICAgICAgb25DYXB0dXJlQ29tcGxldGU6ICcmJyxcbiAgICAgICAgb25FcnJvcjogJyYnLFxuICAgICAgICBvbkxvYWQ6ICcmJyxcbiAgICAgICAgb25DYXB0dXJlUHJvZ3Jlc3M6ICcmJyxcbiAgICAgICAgb25MaXZlOiAnJidcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgZnVuY3Rpb24gdGVtcGxhdGUoZWxlbWVudCwgYXR0cnMpIHtcbiAgICAgIHJldHVybiBbJzxkaXYgY2xhc3M9XCJuZy13ZWJjYW1cIiBuZy1jbGFzcz1cIntcXCduby1vdmVybGF5XFwnIDogdm0uY291bnRlciA9PT0gMCB8fCB2bS5jb25maWcuY291bnRkb3duID09PSAwfVwiPicsXG4gICAgICAgICc8c3BhbiBuZy1zaG93PVwidm0ud2ViY2FtTGl2ZSA9PT0gdHJ1ZSAmJiB2bS5jb25maWcuY291bnRkb3duID4gMCAmJiB2bS5jb3VudGVyID4gMFwiIGlkPVwiY291bnRlclwiPnt7dm0uY291bnRlcn19PC9zcGFuPicsXG4gICAgICAgICc8aW1nIG5nLXNob3c9XCJ2bS53ZWJjYW1MaXZlID09PSB0cnVlXCIgaWQ9XCJuZy13ZWJjYW0tb3ZlcmxheVwiIG5nLXNyYz1cInt7dm0uY29uZmlnLm92ZXJsYXl9fVwiIC8+JyxcbiAgICAgICAgJzxkaXYgaWQ9XCJuZy13ZWJjYW0tY29udGFpbmVyXCI+PC9kaXY+JyxcbiAgICAgICAgJzwvZGl2PiddLmpvaW4oJycpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGxpbmsoc2NvcGUsIGVsZW1lbnQsIGF0dHJzLCBjdHJsKSB7XG4gICAgICBjdHJsLmluaXQoKTtcbiAgICAgIHNjb3BlLiRvbignJGRlc3Ryb3knLCBmdW5jdGlvbigpIHtcbiAgICAgICAgY3RybC5kZXN0cm95KCk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ1dlYmNhbUNvbnRyb2xsZXIuJGluamVjdCA9IFsnJHNjb3BlJywgJyRpbnRlcnZhbCddO1xuXG4gICAgZnVuY3Rpb24gbmdXZWJjYW1Db250cm9sbGVyKCRzY29wZSwgJGludGVydmFsKSB7XG4gICAgICAvKmpzaGludCB2YWxpZHRoaXM6IHRydWUgKi9cbiAgICAgIHZhciB2bSA9IHRoaXM7XG4gICAgICB2YXIgc291bmQsIHNuYXBzaG90VGltZXIsIGNvdW50ZG93blRpbWVyO1xuICAgICAgdmFyIGltYWdlcyA9IFtdO1xuICAgICAgdm0ud2ViY2FtTG9hZGVkID0gZmFsc2U7XG4gICAgICB2bS53ZWJjYW1MaXZlID0gZmFsc2U7XG4gICAgICB2bS5jb3VudGVyID0gMDtcbiAgICAgIHZtLmluaXQgPSBpbml0O1xuICAgICAgdm0uZGVzdHJveSA9IGRlc3Ryb3k7XG4gICAgICAvKipcbiAgICAgICAqICBAbmdkb2MgbGlzdGVuZXJcbiAgICAgICAqICBAbmFtZSBuZ1dlYmNhbV9jYXB0dXJlXG4gICAgICAgKiAgQGRlc2NyaXB0aW9uXG4gICAgICAgKlxuICAgICAgICogIExpc3RlbmVyIGZvciBjYXB0dXJlIHVzZXIgYWN0aW9uXG4gICAgICAgKlxuICAgICAgICogIEB1c2FnZVxuICAgICAgICogIGAkc2NvcGUuJGJyb2FkY2FzdCgnbmdXZWJjYW1fY2FwdHVyZScpO2BcbiAgICAgICAqL1xuICAgICAgJHNjb3BlLiRvbignbmdXZWJjYW1fY2FwdHVyZScsIG9uV2ViY2FtQ2FwdHVyZSk7XG4gICAgICAvKipcbiAgICAgICAqICBAbmdkb2MgbGlzdGVuZXJcbiAgICAgICAqICBAbmFtZSBuZ1dlYmNhbV9vblxuICAgICAgICogIEBkZXNjcmlwdGlvblxuICAgICAgICpcbiAgICAgICAqICBMaXN0ZW5lciBmb3IgY2FtZXJhIG9uIHVzZXIgYWN0aW9uXG4gICAgICAgKlxuICAgICAgICogIEB1c2FnZVxuICAgICAgICogIGAkc2NvcGUuJGJyb2FkY2FzdCgnbmdXZWJjYW1fb24nKTtgXG4gICAgICAgKi9cbiAgICAgICRzY29wZS4kb24oJ25nV2ViY2FtX29uJywgb25XZWJjYW1Pbik7XG4gICAgICAvKipcbiAgICAgICAqICBAbmdkb2MgbGlzdGVuZXJcbiAgICAgICAqICBAbmFtZSBuZ1dlYmNhbV9vZmZcbiAgICAgICAqICBAZGVzY3JpcHRpb25cbiAgICAgICAqXG4gICAgICAgKiAgTGlzdGVuZXIgZm9yIGNhbWVyYSBvZmYgdXNlciBhY3Rpb25cbiAgICAgICAqXG4gICAgICAgKiAgQHVzYWdlXG4gICAgICAgKiAgYCRzY29wZS4kYnJvYWRjYXN0KCduZ1dlYmNhbV9vZmYnKTtgXG4gICAgICAgKi9cbiAgICAgICRzY29wZS4kb24oJ25nV2ViY2FtX29mZicsIG9uV2ViY2FtT2ZmKTtcblxuICAgICAgZnVuY3Rpb24gaW5pdCgpIHtcbiAgICAgICAgdm0uY29uZmlnID0gdm0uY29uZmlnIHx8IHt9O1xuICAgICAgICBpZih3aW5kb3cubG9jYWxTdG9yYWdlKSB3aW5kb3cubG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3Zpc2l0ZWQnLCAnMScpO1xuICAgICAgICBpZihhbmd1bGFyLmlzVW5kZWZpbmVkKHZtLmNvbmZpZy52aWV3ZXJXaWR0aCkpIHZtLmNvbmZpZy52aWV3ZXJXaWR0aCA9IDMyMDtcbiAgICAgICAgaWYoYW5ndWxhci5pc1VuZGVmaW5lZCh2bS5jb25maWcudmlld2VySGVpZ2h0KSkgdm0uY29uZmlnLnZpZXdlckhlaWdodCA9IDI0MDtcbiAgICAgICAgaWYoYW5ndWxhci5pc1VuZGVmaW5lZCh2bS5jb25maWcub3V0cHV0V2lkdGgpKSB2bS5jb25maWcub3V0cHV0V2lkdGggPSAzMjA7XG4gICAgICAgIGlmKGFuZ3VsYXIuaXNVbmRlZmluZWQodm0uY29uZmlnLm91dHB1dEhlaWdodCkpIHZtLmNvbmZpZy5vdXRwdXRIZWlnaHQgPSAyNDA7XG4gICAgICAgIGlmKGFuZ3VsYXIuaXNVbmRlZmluZWQodm0uY29uZmlnLmRlbGF5KSkgdm0uY29uZmlnLmRlbGF5ID0gMDtcbiAgICAgICAgaWYoYW5ndWxhci5pc1VuZGVmaW5lZCh2bS5jb25maWcuc2hvdHMpKSB2bS5jb25maWcuc2hvdHMgPSAxO1xuXHQgICAgaWYoYW5ndWxhci5pc1VuZGVmaW5lZCh2bS5jb25maWcuY291bnRkb3duKSl7IHZtLmNvbmZpZy5jb3VudGRvd24gPSAwOyB9IGVsc2Uge3ZtLmNvdW50ZXIgPSB2bS5jb25maWcuY291bnRkb3duOyB9XG4gICAgICAgIGNvbmZpZ3VyZUxpc3RlbmVycygpO1xuICAgICAgICBjb25maWd1cmUoKTtcbiAgICAgIH1cblxuICAgICAgZnVuY3Rpb24gZGVzdHJveSgpIHtcbiAgICAgICAgaWYodm0ud2ViY2FtTGl2ZSkgV2ViY2FtLnJlc2V0KCk7XG4gICAgICAgIHZtLndlYmNhbUxpdmUgPSBmYWxzZTtcbiAgICAgICAgdm0ud2ViY2FtTG9hZGVkID0gZmFsc2U7XG4gICAgICAgIGlmKGFuZ3VsYXIuaXNEZWZpbmVkKHNuYXBzaG90VGltZXIpKSB7XG4gICAgICAgICAgJGludGVydmFsLmNhbmNlbChzbmFwc2hvdFRpbWVyKTtcbiAgICAgICAgICBzbmFwc2hvdFRpbWVyID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIGlmKGFuZ3VsYXIuaXNEZWZpbmVkKGNvdW50ZG93blRpbWVyKSkge1xuICAgICAgICAgICRpbnRlcnZhbC5jYW5jZWwoY291bnRkb3duVGltZXIpO1xuICAgICAgICAgIGNvdW50ZG93blRpbWVyID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIHZtLmNvdW50ZXIgPSAwO1xuXG4gICAgICB9XG5cbiAgICAgIGZ1bmN0aW9uIGNvbmZpZ3VyZSgpIHtcbiAgICAgICAgaWYoYW5ndWxhci5pc0RlZmluZWQodm0uY29uZmlnLnNodXR0ZXJVcmwpKSB7XG4gICAgICAgICAgc291bmQgPSBuZXcgQXVkaW8oKTtcbiAgICAgICAgICBzb3VuZC5hdXRvcGxheSA9IGZhbHNlO1xuICAgICAgICAgIGlmKG5hdmlnYXRvci51c2VyQWdlbnQubWF0Y2goL0ZpcmVmb3gvKSkge1xuICAgICAgICAgICAgc291bmQuc3JjID0gdm0uY29uZmlnLnNodXR0ZXJVcmwuc3BsaXQoJy4nKVswXSArICcub2dnJztcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc291bmQuc3JjID0gdm0uY29uZmlnLnNodXR0ZXJVcmw7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIFdlYmNhbS5zZXQoe1xuICAgICAgICAgIHdpZHRoOiB2bS5jb25maWcudmlld2VyV2lkdGgsXG4gICAgICAgICAgaGVpZ2h0OiB2bS5jb25maWcudmlld2VySGVpZ2h0LFxuICAgICAgICAgIGRlc3Rfd2lkdGg6IHZtLmNvbmZpZy5vdXRwdXRXaWR0aCxcbiAgICAgICAgICBkZXN0X2hlaWdodDogdm0uY29uZmlnLm91dHB1dEhlaWdodCxcbiAgICAgICAgICBmb3JjZV9mbGFzaDogZmFsc2UsXG4gICAgICAgICAgaW1hZ2VfZm9ybWF0OiAnanBlZycsXG4gICAgICAgICAganBlZ19xdWFsaXR5OiAxMDAsXG4gICAgICAgICAgZmxpcF9ob3JpejogdHJ1ZVxuICAgICAgICB9KTtcbiAgICAgICAgaWYoYW5ndWxhci5pc0RlZmluZWQodm0uY29uZmlnLmZsYXNoTm90RGV0ZWN0ZWRUZXh0KSkge1xuICAgICAgICAgIFdlYmNhbS5zZXQoJ2ZsYXNoTm90RGV0ZWN0ZWRUZXh0Jywgdm0uY29uZmlnLmZsYXNoTm90RGV0ZWN0ZWRUZXh0KTtcbiAgICAgICAgfVxuICAgICAgICBpZihhbmd1bGFyLmlzRGVmaW5lZCh2bS5jb25maWcuZmxhc2hGYWxsYmFja1VybCkpIHtcbiAgICAgICAgICBXZWJjYW0uc2V0U1dGTG9jYXRpb24odm0uY29uZmlnLmZsYXNoRmFsbGJhY2tVcmwpO1xuICAgICAgICB9XG4gICAgICAgIFdlYmNhbS5hdHRhY2goJyNuZy13ZWJjYW0tY29udGFpbmVyJyk7XG4gICAgICB9XG5cbiAgICAgIGZ1bmN0aW9uIGNvbmZpZ3VyZUxpc3RlbmVycygpIHtcbiAgICAgICAgV2ViY2FtLm9uKCdsb2FkJywgZnVuY3Rpb24oKSB7XG4gICAgICAgICAgJHNjb3BlLiRhcHBseShmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHZtLndlYmNhbUxvYWRlZCA9IHRydWU7XG4gICAgICAgICAgICBpZihhbmd1bGFyLmlzRGVmaW5lZCh2bS5vbkxvYWQpKSB7XG4gICAgICAgICAgICAgIHZtLm9uTG9hZCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgICAgV2ViY2FtLm9uKCdsaXZlJywgZnVuY3Rpb24oKSB7XG4gICAgICAgICAgJHNjb3BlLiRhcHBseShmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHZtLndlYmNhbUxpdmUgPSB0cnVlO1xuICAgICAgICAgICAgaWYoYW5ndWxhci5pc0RlZmluZWQodm0ub25MaXZlKSkge1xuICAgICAgICAgICAgICB2bS5vbkxpdmUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICAgIFdlYmNhbS5vbignZXJyb3InLCBmdW5jdGlvbihlcnIpIHtcbiAgICAgICAgICBpZihhbmd1bGFyLmlzRGVmaW5lZCh2bS5vbkVycm9yKSkge1xuICAgICAgICAgICAgdm0ub25FcnJvcih7ZXJyOmVycn0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGZ1bmN0aW9uIGNhcHR1cmUoaW5kZXgpIHtcbiAgICAgICAgaWYoc291bmQpIHtcbiAgICAgICAgICBzb3VuZC5wbGF5KCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYoaW5kZXggPT09ICh2bS5jb25maWcuc2hvdHMtMSkpIHtcbiAgICAgICAgICAkaW50ZXJ2YWwuY2FuY2VsKHNuYXBzaG90VGltZXIpO1xuICAgICAgICB9XG4gICAgICAgIFdlYmNhbS5zbmFwKGZ1bmN0aW9uKGRhdGFfdXJpKSB7XG4gICAgICAgICAgaW1hZ2VzW2luZGV4XSA9IGRhdGFfdXJpO1xuICAgICAgICAgIGlmKGluZGV4IDwgKHZtLmNvbmZpZy5zaG90cy0xKSAmJiBhbmd1bGFyLmlzRGVmaW5lZCh2bS5vbkNhcHR1cmVQcm9ncmVzcykpIHtcbiAgICAgICAgICAgIHZhciBwcm9ncmVzcyA9IE1hdGgucm91bmQoKChpbmRleCsxKSAqIDEwMCkgLyB2bS5jb25maWcuc2hvdHMpO1xuICAgICAgICAgICAgdm0ub25DYXB0dXJlUHJvZ3Jlc3Moe3NyYzogZGF0YV91cmkscHJvZ3Jlc3M6IHByb2dyZXNzfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmKGluZGV4ID09PSAodm0uY29uZmlnLnNob3RzLTEpICYmIGFuZ3VsYXIuaXNEZWZpbmVkKHZtLm9uQ2FwdHVyZUNvbXBsZXRlKSkge1xuICAgICAgICAgICAgcmV0dXJuIHZtLm9uQ2FwdHVyZUNvbXBsZXRlKHtzcmM6IGltYWdlc30pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGZ1bmN0aW9uIG9uV2ViY2FtQ2FwdHVyZSgpIHtcbiAgICAgICAgaWYoIXZtLmNvbmZpZy5jb3VudGRvd24pIHtcbiAgICAgICAgICB2YXIgY291bnQgPSAwO1xuICAgICAgICAgIHNuYXBzaG90VGltZXIgPSAkaW50ZXJ2YWwoZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICBjYXB0dXJlKGNvdW50KTtcbiAgICAgICAgICAgIGNvdW50Kys7XG4gICAgICAgICAgfSwgKHZtLmNvbmZpZy5kZWxheSAqIDEwMDApLCB2bS5jb25maWcuc2hvdHMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlmKGNvdW50ZG93blRpbWVyICE9PSB1bmRlZmluZWQpIHJldHVybjtcbiAgICAgICAgICB2bS5jb3VudGVyID0gdm0uY29uZmlnLmNvdW50ZG93bjtcbiAgICAgICAgICBjb3VudGRvd25UaW1lciA9ICRpbnRlcnZhbChmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHZtLmNvdW50ZXIgPSB2bS5jb3VudGVyIC0gMTtcbiAgICAgICAgICAgIGlmKHZtLmNvdW50ZXIgPT09IDApIHtcbiAgICAgICAgICAgICAgaWYoY291bnRkb3duVGltZXIpIHtcbiAgICAgICAgICAgICAgICAkaW50ZXJ2YWwuY2FuY2VsKGNvdW50ZG93blRpbWVyKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgLy9zbmFwIGZpcnN0XG5cdCAgICAgICAgICBjYXB0dXJlKDApO1xuICAgICAgICAgICAgICB2YXIgY291bnQgPSAxO1xuICAgICAgICAgICAgICBzbmFwc2hvdFRpbWVyID0gJGludGVydmFsKGZ1bmN0aW9uKCkge1xuXHQgICAgICAgICAgICAgIGNhcHR1cmUoY291bnQpO1xuICAgICAgICAgICAgICAgICAgY291bnQrKztcbiAgICAgICAgICAgICAgfSwgKHZtLmNvbmZpZy5kZWxheSAqIDEwMDApLCB2bS5jb25maWcuc2hvdHMgLSAxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LCAxMDAwLCB2bS5jb25maWcuY291bnRkb3duKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBmdW5jdGlvbiBvbldlYmNhbU9uKCkge1xuICAgICAgICBXZWJjYW0uYXR0YWNoKCcjbmctd2ViY2FtLWNvbnRhaW5lcicpO1xuICAgICAgfVxuXG4gICAgICBmdW5jdGlvbiBvbldlYmNhbU9mZigpIHtcbiAgICAgICAgZGVzdHJveSgpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZGlyZWN0aXZlO1xuICB9XG59KSgpOyJdfQ==
diff --git a/src/ng-webcam.js b/src/ng-webcam.js
index 91c9f35..49e02fe 100644
--- a/src/ng-webcam.js
+++ b/src/ng-webcam.js
@@ -40,9 +40,9 @@
     };
 
     function template(element, attrs) {
-      return ['<div class="ng-webcam no-overlay" ng-class="{\'no-overlay\' : vm.counter === 0 || vm.config.countdown === 0}">',
-        '<span ng-show="vm.webcamLive === true && vm.config.countdown > 0 && vm.counter > 0" id="ng-webcam-counter">{{vm.counter}}</span>',
-        '<img ng-show="vm.webcamLive === true" id="ng-webcam-overlay" src="{{vm.config.overlay}}" />',
+      return ['<div class="ng-webcam" ng-class="{\'no-overlay\' : vm.counter === 0 || vm.config.countdown === 0}">',
+        '<span ng-show="vm.webcamLive === true && vm.config.countdown > 0 && vm.counter > 0" id="counter">{{vm.counter}}</span>',
+        '<img ng-show="vm.webcamLive === true" id="ng-webcam-overlay" ng-src="{{vm.config.overlay}}" />',
         '<div id="ng-webcam-container"></div>',
         '</div>'].join('');
     }
@@ -63,7 +63,7 @@
       var images = [];
       vm.webcamLoaded = false;
       vm.webcamLive = false;
-      vm.counter = 3;
+      vm.counter = 0;
       vm.init = init;
       vm.destroy = destroy;
       /**
@@ -103,13 +103,13 @@
       function init() {
         vm.config = vm.config || {};
         if(window.localStorage) window.localStorage.setItem('visited', '1');
-        if(angular.isUndefined(vm.config.viewerWidth)) vm.config.viewerWidth = 'auto';
-        if(angular.isUndefined(vm.config.viewerHeight)) vm.config.viewerHeight = 'auto';
+        if(angular.isUndefined(vm.config.viewerWidth)) vm.config.viewerWidth = 320;
+        if(angular.isUndefined(vm.config.viewerHeight)) vm.config.viewerHeight = 240;
         if(angular.isUndefined(vm.config.outputWidth)) vm.config.outputWidth = 320;
         if(angular.isUndefined(vm.config.outputHeight)) vm.config.outputHeight = 240;
         if(angular.isUndefined(vm.config.delay)) vm.config.delay = 0;
         if(angular.isUndefined(vm.config.shots)) vm.config.shots = 1;
-        if(angular.isUndefined(vm.config.countdown)) vm.config.countdown = 0;
+	    if(angular.isUndefined(vm.config.countdown)){ vm.config.countdown = 0; } else {vm.counter = vm.config.countdown; }
         configureListeners();
         configure();
       }
@@ -126,7 +126,7 @@
           $interval.cancel(countdownTimer);
           countdownTimer = undefined;
         }
-        vm.counter = 3;
+        vm.counter = 0;
 
       }
 
@@ -203,7 +203,7 @@
       }
 
       function onWebcamCapture() {
-        if(angular.isUndefined(vm.config.countdown)) {
+        if(!vm.config.countdown) {
           var count = 0;
           snapshotTimer = $interval(function() {
             capture(count);
@@ -211,20 +211,23 @@
           }, (vm.config.delay * 1000), vm.config.shots);
         } else {
           if(countdownTimer !== undefined) return;
-          vm.counter = 3;
+          vm.counter = vm.config.countdown;
           countdownTimer = $interval(function() {
             vm.counter = vm.counter - 1;
             if(vm.counter === 0) {
               if(countdownTimer) {
                 $interval.cancel(countdownTimer);
               }
-              var count = 0;
+              
+              //snap first
+	          capture(0);
+              var count = 1;
               snapshotTimer = $interval(function() {
-                capture(count);
-                count++;
-              }, (vm.config.delay * 1000), vm.config.shots);
+	              capture(count);
+                  count++;
+              }, (vm.config.delay * 1000), vm.config.shots - 1);
             }
-          }, 1000, 3);
+          }, 1000, vm.config.countdown);
         }
       }