ethstats-server/web-app/.meteor/local/build/programs/server/packages/momentjs_moment.js.map

1 line
126 KiB
Plaintext

{"version":3,"sources":["momentjs:moment/moment.js","momentjs:moment/meteor/export.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,a;AACA,oB;AACA,8D;AACA,iB;AACA,gB;;AAEA,6B;AACA,+F;AACA,kE;AACA,6B;AACA,mC;;AAEA,qB;;AAEA,oC;AACA,mD;AACA,K;;AAEA,+D;AACA,8C;AACA,yC;AACA,gC;AACA,K;;AAEA,6B;AACA,0E;AACA,K;;AAEA,4B;AACA,kG;AACA,K;;AAEA,2B;AACA,wB;AACA,0C;AACA,oC;AACA,S;AACA,mB;AACA,K;;AAEA,+B;AACA,0D;AACA,K;;AAEA,2B;AACA,0B;AACA,mC;AACA,4B;AACA,a;AACA,S;;AAEA,wC;AACA,oC;AACA,S;;AAEA,uC;AACA,kC;AACA,S;;AAEA,iB;AACA,K;;AAEA,oE;AACA,2E;AACA,K;;AAEA,oC;AACA,6C;AACA,gB;AACA,oC;AACA,iC;AACA,iC;AACA,iC;AACA,gC;AACA,oC;AACA,mC;AACA,oC;AACA,oC;AACA,mC;AACA,U;AACA,K;;AAEA,iC;AACA,4B;AACA,0C;AACA,S;AACA,qB;AACA,K;;AAEA,gC;AACA,iC;AACA,2C;AACA,kD;AACA,qC;AACA,+B;AACA,sC;AACA,wC;AACA,mC;AACA,uC;AACA,uC;;AAEA,4B;AACA,0C;AACA,gD;AACA,sD;AACA,gD;AACA,a;AACA,S;AACA,0B;AACA,K;;AAEA,2C;AACA,2C;AACA,4B;AACA,8C;AACA,S;AACA,c;AACA,sD;AACA,S;;AAEA,iB;AACA,K;;AAEA,oE;;AAEA,mC;AACA,yB;;AAEA,2D;AACA,wD;AACA,S;AACA,6C;AACA,4B;AACA,S;AACA,6C;AACA,4B;AACA,S;AACA,6C;AACA,4B;AACA,S;AACA,kD;AACA,sC;AACA,S;AACA,+C;AACA,gC;AACA,S;AACA,iD;AACA,oC;AACA,S;AACA,kD;AACA,sC;AACA,S;AACA,8C;AACA,2C;AACA,S;AACA,kD;AACA,sC;AACA,S;;AAEA,0C;AACA,yC;AACA,2C;AACA,iC;AACA,iD;AACA,mC;AACA,iB;AACA,a;AACA,S;;AAEA,kB;AACA,K;;AAEA,iC;;AAEA,8B;AACA,6B;AACA,iC;AACA,0E;AACA,wE;AACA,mB;AACA,yC;AACA,oC;AACA,kD;AACA,qC;AACA,S;AACA,K;;AAEA,6B;AACA,sF;AACA,K;;AAEA,gC;AACA,yB;AACA,qC;AACA,gB;AACA,sC;AACA,S;AACA,K;;AAEA,yC;AACA,iD;AACA,sB;;AAEA,6D;AACA,4C;AACA,S;;AAEA,qB;AACA,K;;AAEA,yD;AACA,yD;AACA,iE;AACA,sB;AACA,c;AACA,mC;AACA,2D;AACA,0E;AACA,wB;AACA,a;AACA,S;AACA,kC;AACA,K;;AAEA,uB;AACA,K;;AAEA,qB;AACA,qB;;AAEA,mC;AACA,+D;AACA,K;;AAEA,qC;AACA,gG;AACA,mI;AACA,kC;AACA,0C;;AAEA,kC;AACA,yD;AACA,6B;AACA,iD;AACA,iD;AACA,2B;AACA,iE;AACA,6B;AACA,kC;AACA,iB;AACA,4F;AACA,0F;AACA,0B;AACA,iB;AACA,oB;AACA,a;AACA,gB;AACA,S;AACA,oB;AACA,K;;AAEA,+B;AACA,6B;AACA,+E;AACA,8D;AACA,2C;AACA,iB;AACA,+C;AACA,4C;AACA,iF;AACA,4D;AACA,8D;AACA,2B;AACA,S;AACA,6B;AACA,K;;AAEA,yE;AACA,2E;AACA,kB;AACA,+D;AACA,iB;AACA,kB;AACA,gD;AACA,sD;AACA,a;AACA,kB;AACA,iD;AACA,a;;AAEA,uB;AACA,mE;AACA,oC;AACA,a;AACA,S;;AAEA,kC;AACA,K;;AAEA,0C;AACA,8B;AACA,+B;AACA,0D;AACA,sC;;AAEA,4D;AACA,qD;;AAEA,iC;AACA,gB;AACA,iC;AACA,iC;AACA,wB;AACA,S;AACA,K;;AAEA,0B;AACA,8C;AACA,mB;;AAEA,sD;AACA,oC;AACA,S;;AAEA,mB;AACA,gC;AACA,S;;AAEA,4B;AACA,2C;AACA,qC;AACA,yB;AACA,8B;AACA,a;AACA,wB;AACA,S;;AAEA,iC;AACA,K;;AAEA,qB;;AAEA,6C;AACA,2C;AACA,kF;AACA,K;;AAEA,oC;AACA,sG;AACA,K;;AAEA,gD;AACA,iC;AACA,2B;AACA,iB;;AAEA,mC;AACA,gD;AACA,sD;AACA,qC;AACA,wE;AACA,iB;AACA,a;AACA,S;;AAEA,+B;AACA,K;;AAEA,0C;AACA,iC;AACA,gC;AACA,gD;AACA,gE;AACA,4B;AACA,oB;AACA,gD;AACA,a;AACA,U;AACA,K;;AAEA,uC;AACA,kE;AACA,K;;AAEA,8C;AACA,uE;AACA,K;;AAEA,c;;AAEA,oC;AACA,iB;AACA,wC;AACA,iC;AACA,4C;AACA,a;AACA,gB;AACA,0C;AACA,oD;AACA,0C;AACA,a;AACA,S;AACA,oB;AACA,K;;AAEA,wD;AACA,8C;AACA,0D;AACA,+B;AACA,sD;AACA,oF;AACA,K;;AAEA,gM;;AAEA,6E;;AAEA,6B;;AAEA,kC;;AAEA,oB;AACA,0B;AACA,qB;AACA,iD;AACA,gE;AACA,4B;AACA,2C;AACA,gC;AACA,wC;AACA,c;AACA,S;AACA,oB;AACA,+C;AACA,S;AACA,qB;AACA,2D;AACA,mF;AACA,c;AACA,S;AACA,sB;AACA,yD;AACA,qF;AACA,c;AACA,S;AACA,K;;AAEA,4C;AACA,sC;AACA,iD;AACA,S;AACA,wC;AACA,K;;AAEA,yC;AACA,8D;;AAEA,6D;AACA,iD;AACA,0D;AACA,oB;AACA,4D;AACA,a;AACA,S;;AAEA,+B;AACA,4B;AACA,0C;AACA,+F;AACA,a;AACA,0B;AACA,U;AACA,K;;AAEA,2C;AACA,sC;AACA,2B;AACA,gD;AACA,S;;AAEA,sD;AACA,wF;;AAEA,0C;AACA,K;;AAEA,2C;AACA,kB;;AAEA,qD;AACA,yD;AACA,S;;AAEA,4C;AACA,8D;AACA,wF;AACA,gD;AACA,mB;AACA,S;;AAEA,sB;AACA,K;;AAEA,wD;AACA,yD;AACA,0D;AACA,2D;AACA,6D;AACA,yD;AACA,0D;AACA,2D;AACA,6D;;AAEA,0D;AACA,0D;;AAEA,gF;;AAEA,2E;;AAEA,wF;AACA,uI;;AAEA,qB;;AAEA,+B;AACA,uD;AACA,2C;AACA,wE;AACA,K;;;AAGA,wD;AACA,0E;AACA,mE;AACA,U;AACA,K;;AAEA,oD;AACA,0C;AACA,qD;AACA,S;;AAEA,8D;AACA,K;;AAEA,2G;AACA,gC;AACA,sH;AACA,wC;AACA,qD;AACA,K;;AAEA,oB;;AAEA,8C;AACA,+B;AACA,wC;AACA,4B;AACA,S;AACA,2C;AACA,4C;AACA,+C;AACA,c;AACA,S;AACA,4C;AACA,oC;AACA,S;AACA,K;;AAEA,kD;AACA,qE;AACA,wC;AACA,sD;AACA,W;AACA,K;;AAEA,4D;AACA,yD;AACA,2D;AACA,S;AACA,K;;AAEA,iB;AACA,kB;AACA,iB;AACA,iB;AACA,mB;AACA,mB;AACA,wB;;AAEA,uC;AACA,mE;AACA,K;;AAEA,iB;;AAEA,sD;AACA,gC;AACA,O;;AAEA,mD;AACA,2D;AACA,O;;AAEA,oD;AACA,sD;AACA,O;;AAEA,c;;AAEA,+B;;AAEA,c;;AAEA,qC;AACA,6C;AACA,qC;AACA,qC;;AAEA,wD;AACA,wC;AACA,O;;AAEA,2E;AACA,6E;AACA,oE;AACA,4B;AACA,iC;AACA,gB;AACA,yD;AACA,S;AACA,O;;AAEA,c;;AAEA,iI;AACA,+B;AACA,uC;AACA,K;;AAEA,gG;AACA,oC;AACA,4C;AACA,K;;AAEA,4D;AACA,0B;;AAEA,iC;AACA,mC;AACA,uC;AACA,wC;AACA,S;;AAEA,kC;AACA,yD;AACA,mD;AACA,sD;AACA,8G;AACA,oH;AACA,a;AACA,mD;AACA,sF;AACA,+E;AACA,a;AACA,6B;AACA,0F;AACA,yB;AACA,iG;AACA,yB;AACA,yE;AACA,yB;AACA,a;AACA,S;AACA,K;;AAEA,c;;AAEA,oC;AACA,uB;;AAEA,uC;AACA,wC;AACA,wD;AACA,4C;AACA,4C;AACA,2B;AACA,a;AACA,S;;AAEA,0E;AACA,+E;AACA,mB;AACA,K;;AAEA,kC;AACA,4B;AACA,kC;AACA,wD;AACA,wB;AACA,gB;AACA,+C;AACA,S;AACA,K;;AAEA,gC;AACA,sD;AACA,K;;AAEA,gC;AACA,qB;AACA,qB;;AAEA,sD;AACA,sB;AACA,oE;AACA,8F;AACA,sJ;AACA,qE;AACA,qE;AACA,0E;AACA,mB;;AAEA,gG;AACA,gC;AACA,a;;AAEA,mD;AACA,S;;AAEA,iB;AACA,K;;AAEA,wB;AACA,yH;AACA,wD;AACA,S;AACA,K;;AAEA,iC;AACA,6B;;AAEA,mC;AACA,4B;AACA,uD;AACA,kC;AACA,a;AACA,6C;AACA,e;AACA,K;;AAEA,0B;;AAEA,yC;AACA,kC;AACA,sB;AACA,sC;AACA,S;AACA,K;;AAEA,2D;;AAEA,4K;;AAEA,oB;AACA,kD;AACA,4C;AACA,4C;AACA,uC;AACA,mC;AACA,M;;AAEA,mC;AACA,oB;AACA,sD;AACA,4C;AACA,oC;AACA,2B;AACA,M;;AAEA,gD;;AAEA,2B;AACA,oC;AACA,iB;AACA,+B;AACA,uD;;AAEA,oB;AACA,+C;AACA,0D;AACA,kD;AACA,+C;AACA,0B;AACA,iB;AACA,a;AACA,0D;AACA,kD;AACA,sD;AACA,oE;AACA,0B;AACA,iB;AACA,a;AACA,4C;AACA,iC;AACA,a;AACA,8C;AACA,gB;AACA,oC;AACA,S;AACA,K;;AAEA,uC;AACA,uC;AACA,sD;;AAEA,+B;AACA,8C;AACA,mB;AACA,S;;AAEA,8B;AACA,wC;AACA,mC;AACA,+D;AACA,S;AACA,K;;AAEA,2D;AACA,+D;AACA,8D;AACA,qC;AACA,sE;AACA,2B;AACA,6E;AACA,S;AACA,M;;AAEA,gD;AACA,8C;AACA,4H;AACA,kD;;AAEA,0D;AACA,uB;AACA,gC;AACA,S;AACA,oB;AACA,K;;AAEA,gC;AACA,6D;AACA,uB;AACA,mC;AACA,S;AACA,oB;AACA,K;;AAEA,iD;AACA,iC;AACA,O;;AAEA,sD;AACA,sD;AACA,sD;;AAEA,c;;AAEA,8B;;AAEA,c;;AAEA,yC;AACA,+C;AACA,+C;AACA,+C;AACA,+C;;AAEA,6C;AACA,mD;AACA,sG;AACA,O;AACA,iD;AACA,kE;AACA,O;;AAEA,c;;AAEA,+B;AACA,4C;AACA,K;;AAEA,+B;AACA,wE;AACA,K;;AAEA,Y;;AAEA,6D;AACA,gE;AACA,M;;AAEA,c;;AAEA,mD;;AAEA,+B;AACA,uC;AACA,K;;AAEA,iD;AACA,oD;;AAEA,c;;AAEA,8B;AACA,iC;;AAEA,c;;AAEA,mC;AACA,2C;AACA,mC;AACA,2C;;AAEA,qF;AACA,gD;AACA,O;;AAEA,c;;AAEA,4C;AACA,oE;AACA,sD;AACA,4C;AACA,8E;AACA,mD;AACA,4D;AACA,oE;AACA,wD;AACA,+D;AACA,2B;;;AAGA,oC;AACA,iC;AACA,S;;AAEA,wC;AACA,iC;AACA,S;;AAEA,2E;AACA,gB;AACA,4D;AACA,uC;AACA,U;AACA,K;;AAEA,c;;AAEA,+B;AACA,oE;AACA,K;;AAEA,6B;AACA,wD;AACA,iF;AACA,M;;AAEA,sC;AACA,8B;AACA,K;;AAEA,sC;AACA,8B;AACA,K;;AAEA,c;;AAEA,iC;AACA,gD;AACA,wE;AACA,K;;AAEA,oC;AACA,+C;AACA,wE;AACA,K;;AAEA,4D;;AAEA,c;;AAEA,qC;;AAEA,c;;AAEA,qC;AACA,kC;AACA,oE;AACA,yC;AACA,O;;AAEA,c;;AAEA,6G;AACA,4F;AACA,+I;AACA,iC;AACA,mB;AACA,S;;AAEA,iE;;AAEA,gE;;AAEA,gB;AACA,kD;AACA,oF;AACA,U;AACA,K;;AAEA,c;;AAEA,sC;AACA,6G;AACA,8E;AACA,K;;AAEA,wD;AACA,gC;AACA,wB;AACA,qB;AACA,S;AACA,wB;AACA,qB;AACA,S;AACA,iB;AACA,K;;AAEA,uC;AACA,6B;AACA,6B;AACA,+E;AACA,S;AACA,kE;AACA,K;;AAEA,kC;AACA,mD;AACA,iG;AACA,6D;AACA,uC;AACA,wD;;AAEA,wB;AACA,mB;AACA,S;;AAEA,+C;;AAEA,yD;AACA,+E;AACA,0C;AACA,S;;AAEA,8D;AACA,gC;AACA,qE;;AAEA,4D;AACA,kE;AACA,a;;AAEA,kE;AACA,kD;AACA,gD;AACA,S;;AAEA,mC;AACA,wE;AACA,6D;AACA,iD;AACA,qD;AACA,yD;AACA,qD;AACA,S;;AAEA,8D;AACA,4B;AACA,gG;AACA,S;;AAEA,iC;AACA,qC;AACA,0C;AACA,0C;AACA,+C;AACA,mC;AACA,gC;AACA,S;;AAEA,qF;AACA,gF;AACA,0B;AACA,kC;AACA,6E;AACA,S;;AAEA,8B;AACA,iC;AACA,S;AACA,K;;AAEA,4C;AACA,uD;;AAEA,sB;AACA,yD;AACA,oB;AACA,oB;;AAEA,iF;AACA,yE;AACA,gF;AACA,2B;AACA,oG;AACA,oC;AACA,uC;AACA,gB;AACA,2C;AACA,2C;;AAEA,wG;AACA,oC;;AAEA,8B;AACA,sE;AACA,8B;AACA,oC;AACA,2B;AACA,iB;AACA,qC;AACA,yE;AACA,oC;AACA,oB;AACA,8C;AACA,8B;AACA,a;AACA,S;AACA,qE;;AAEA,oC;AACA,2C;AACA,K;;AAEA,iD;;AAEA,yC;AACA,gD;AACA,wF;AACA,wD;AACA,kC;AACA,mB;AACA,S;;AAEA,uB;AACA,6C;;AAEA,kF;AACA,oC;AACA,mD;AACA,yC;AACA,uC;;AAEA,uF;;AAEA,6C;AACA,8B;AACA,wF;AACA,8B;AACA,wE;AACA,yC;AACA,sE;AACA,iB;AACA,wF;AACA,6D;AACA,a;AACA,oD;AACA,8C;AACA,kC;AACA,0D;AACA,iB;AACA,sB;AACA,qE;AACA,iB;AACA,oE;AACA,a;AACA,sD;AACA,iE;AACA,a;AACA,S;;AAEA,4D;AACA,sF;AACA,gC;AACA,6D;AACA,S;;AAEA,2C;AACA,uD;AACA,wC;AACA,sC;AACA,wD;AACA,S;AACA,0B;AACA,6F;;AAEA,gC;AACA,8B;AACA,K;;;AAGA,uD;AACA,iB;;AAEA,+B;AACA,4B;AACA,wB;AACA,S;AACA,0C;AACA,uD;AACA,yC;AACA,uB;AACA,yC;AACA,oC;AACA,2B;AACA,a;AACA,uC;AACA,yB;AACA,a;AACA,wB;AACA,gB;AACA,6C;AACA,wB;AACA,S;AACA,K;;AAEA,+C;AACA,uB;AACA,uB;;AAEA,wB;AACA,c;AACA,yB;;AAEA,qC;AACA,yD;AACA,sC;AACA,mB;AACA,S;;AAEA,gD;AACA,6B;AACA,gD;AACA,yC;AACA,oD;AACA,a;AACA,yC;AACA,kD;;AAEA,8C;AACA,yB;AACA,a;;AAEA,sF;AACA,sE;;AAEA,uB;AACA,iF;;AAEA,6D;;AAEA,oE;AACA,2C;AACA,wC;AACA,a;AACA,S;;AAEA,iD;AACA,K;;AAEA,uC;AACA,wB;AACA,mB;AACA,S;;AAEA,gD;AACA,kG;;AAEA,gC;AACA,K;;AAEA,wC;AACA,mE;AACA,2B;AACA,gD;AACA,4B;AACA,qC;AACA,S;;AAEA,mB;AACA,K;;AAEA,qC;AACA,8B;AACA,+B;;AAEA,gF;;AAEA,uE;AACA,2D;AACA,S;;AAEA,wC;AACA,+D;AACA,S;;AAEA,8B;AACA,oD;AACA,qC;AACA,6C;AACA,4B;AACA,8C;AACA,mC;AACA,8B;AACA,gB;AACA,oC;AACA,S;;AAEA,sB;AACA,K;;AAEA,sC;AACA,8B;AACA,kC;AACA,mC;AACA,mC;AACA,yC;AACA,+C;AACA,qC;AACA,oC;AACA,4D;AACA,yC;AACA,e;AACA,oC;AACA,gD;AACA,qC;AACA,gD;AACA,gC;AACA,wC;AACA,gB;AACA,+D;AACA,S;AACA,K;;AAEA,sE;AACA,mB;;AAEA,2C;AACA,4B;AACA,+B;AACA,S;AACA,qD;AACA,uD;AACA,kC;AACA,qC;AACA,sB;AACA,qB;AACA,sB;AACA,2B;;AAEA,mC;AACA,K;;AAEA,iE;AACA,sE;AACA,K;;AAEA,iC;AACA,4G;AACA,sB;AACA,mE;AACA,gD;AACA,U;AACA,O;;AAEA,iC;AACA,2G;AACA,qB;AACA,kE;AACA,+C;AACA,S;AACA,M;;AAEA,wE;AACA,8D;AACA,M;AACA,6E;AACA,mD;AACA,kC;AACA,mB;AACA,0D;AACA,iC;AACA,S;AACA,8B;AACA,wC;AACA,S;AACA,yB;AACA,8C;AACA,+D;AACA,iC;AACA,a;AACA,S;AACA,mB;AACA,K;;AAEA,iC;AACA,qB;AACA,+C;;AAEA,wC;AACA,K;;AAEA,qB;AACA,+C;;AAEA,uC;AACA,K;;AAEA,kC;AACA,6D;AACA,8C;AACA,oD;AACA,gD;AACA,8C;AACA,4C;AACA,8C;AACA,kD;AACA,kD;AACA,4D;;AAEA,2C;AACA,4C;AACA,mC;AACA,wC;AACA,2C;AACA,uE;AACA,wE;AACA,4B;AACA,sB;AACA,sE;AACA,sE;AACA,yB;AACA,gC;AACA,0B;AACA,uB;;AAEA,wB;;AAEA,mD;;AAEA,uB;AACA,K;;AAEA,+B;AACA,uC;AACA,K;;AAEA,wC;AACA,iD;AACA,0C;AACA,2B;AACA,6B;AACA,iC;AACA,2B;AACA,a;AACA,kG;AACA,W;AACA,K;;AAEA,qB;AACA,qB;;AAEA,c;;AAEA,qC;AACA,qC;AACA,gE;AACA,8B;AACA,8C;AACA,O;;AAEA,c;;AAEA,uB;AACA,+B;AACA,+B;AACA,wC;;AAEA,uC;AACA,gE;AACA,wD;AACA,qE;AACA,yD;;AAEA,qD;AACA,K;;AAEA,8E;AACA,4C;AACA,sB;AACA,2B;AACA,gC;AACA,qG;AACA,mE;AACA,2C;AACA,wD;AACA,uB;AACA,gB;AACA,qD;AACA,S;AACA,K;;AAEA,gC;AACA,yE;AACA,qD;AACA,+D;AACA,K;;AAEA,Y;;AAEA,iE;AACA,mE;AACA,qD;;AAEA,c;;AAEA,mE;AACA,2E;AACA,0E;AACA,2D;AACA,M;AACA,0D;AACA,yE;AACA,oE;AACA,sE;AACA,mD;AACA,kD;AACA,uC;AACA,wB;AACA,4B;AACA,4C;AACA,gD;AACA,a;AACA,uC;AACA,mC;AACA,a;AACA,gD;AACA,kD;AACA,a;AACA,iC;AACA,+B;AACA,sC;AACA,2C;AACA,a;AACA,mC;AACA,+D;AACA,2G;AACA,qD;AACA,kD;AACA,gE;AACA,kD;AACA,iB;AACA,a;AACA,wB;AACA,gB;AACA,8D;AACA,S;AACA,K;;AAEA,gD;AACA,4B;AACA,4C;AACA,+B;AACA,a;;AAEA,iD;;AAEA,wB;AACA,gB;AACA,qC;AACA,S;AACA,K;;AAEA,6C;AACA,gD;AACA,K;;AAEA,+C;AACA,0B;AACA,6C;AACA,gC;;AAEA,gC;AACA,wD;AACA,a;AACA,S;AACA,oB;AACA,K;;AAEA,yC;AACA,wB;AACA,sC;AACA,iD;AACA,sD;AACA,S;AACA,oB;AACA,K;;AAEA,2C;AACA,kE;;AAEA,qD;AACA,K;;AAEA,sC;AACA,gB;AACA,mE;AACA,gE;AACA,U;AACA,K;;AAEA,6C;AACA,wD;AACA,sC;AACA,S;;AAEA,mB;;AAEA,4B;AACA,6B;;AAEA,mB;AACA,0F;AACA,kD;AACA,yD;AACA,gB;AACA,uC;AACA,S;;AAEA,kC;AACA,K;;AAEA,yB;AACA,4B;AACA,K;;AAEA,6B;AACA,2B;AACA,K;;AAEA,uB;AACA,iD;AACA,K;;AAEA,6E;;AAEA,gG;AACA,gF;AACA,2J;;AAEA,kD;AACA,6B;AACA,oE;AACA,yB;AACA,iB;AACA,gB;AACA,oB;;AAEA,gC;AACA,wB;AACA,yC;AACA,iC;AACA,kC;AACA,c;AACA,+C;AACA,0B;AACA,sB;AACA,sC;AACA,oB;AACA,8C;AACA,a;AACA,yD;AACA,+C;AACA,wB;AACA,uB;AACA,sD;AACA,sD;AACA,sD;AACA,sD;AACA,qD;AACA,c;AACA,8D;AACA,+C;AACA,wB;AACA,6C;AACA,6C;AACA,6C;AACA,6C;AACA,6C;AACA,6C;AACA,4C;AACA,c;AACA,qE;AACA,0B;AACA,8F;AACA,4G;;AAEA,0B;AACA,+C;AACA,wC;AACA,S;;AAEA,qC;;AAEA,gE;AACA,wC;AACA,S;;AAEA,mB;AACA,K;;AAEA,mD;;AAEA,mC;AACA,sE;AACA,mC;AACA,kE;AACA,2D;AACA,uC;AACA,6C;AACA,K;;AAEA,qD;AACA,+C;;AAEA,mD;AACA,8C;AACA,+D;AACA,yB;AACA,S;;AAEA,yE;;AAEA,mB;AACA,K;;AAEA,6C;AACA,gB;AACA,6C;AACA,mC;AACA,yD;AACA,gB;AACA,yD;AACA,iD;AACA,qC;AACA,S;;AAEA,mB;AACA,K;;AAEA,2C;AACA,uC;AACA,yB;AACA,yD;AACA,qD;AACA,iJ;AACA,sD;AACA,a;;AAEA,uD;AACA,sD;AACA,4D;AACA,wB;AACA,U;AACA,K;;AAEA,gF;AACA,kD;AACA,kC;AACA,sC;AACA,kE;;AAEA,2B;AACA,8D;AACA,S;AACA,mB;AACA,mF;AACA,S;AACA,qB;AACA,0E;AACA,S;AACA,2B;AACA,iE;AACA,S;AACA,K;;AAEA,uD;AACA,6D;;AAEA,wD;AACA,0D;AACA,mF;AACA,+C;AACA,4D;AACA,gD;AACA,6C;AACA,wC;AACA,sC;AACA,sC;AACA,sC;AACA,mD;AACA,4H;AACA,K;;AAEA,uB;AACA,gC;AACA,K;;AAEA,qC;AACA,oB;AACA,qF;AACA,sC;AACA,wE;AACA,kC;AACA,gB;AACA,4E;AACA,0D;AACA,S;AACA,K;;AAEA,sC;AACA,oB;AACA,qF;AACA,sC;AACA,wE;AACA,kC;AACA,gB;AACA,4E;AACA,wD;AACA,S;AACA,K;;AAEA,0C;AACA,qE;AACA,K;;AAEA,oC;AACA,oB;AACA,uD;AACA,sC;AACA,wE;AACA,oC;AACA,gB;AACA,iD;AACA,wG;AACA,S;AACA,K;;AAEA,2C;AACA,gD;AACA,oE;AACA,0B;;AAEA,sC;;AAEA,2E;AACA,2C;AACA,sC;AACA,oC;AACA,0C;AACA,qC;AACA,a;AACA,gB;AACA,gC;AACA,+D;AACA,+D;AACA,mE;AACA,kG;AACA,wG;AACA,sB;AACA,S;AACA,mD;AACA,K;;AAEA,+B;AACA,+B;AACA,oF;AACA,2D;AACA,6D;AACA,4B;;AAEA,6B;AACA,kE;AACA,sC;AACA,uD;AACA,gB;AACA,kE;AACA,sC;AACA,uD;AACA,S;;AAEA,0C;AACA,K;;AAEA,8D;;AAEA,0B;AACA,oF;AACA,K;;AAEA,4C;AACA,mC;AACA,+C;AACA,mE;AACA,2E;AACA,mD;AACA,oB;AACA,uE;AACA,a;AACA,gB;AACA,qE;AACA,S;AACA,K;;AAEA,mC;AACA,yF;AACA,oD;AACA,K;;AAEA,yC;AACA,8B;AACA,mD;AACA,S;AACA,6G;AACA,K;;AAEA,sC;AACA,8D;AACA,K;;AAEA,uC;AACA,8B;AACA,mD;AACA,S;AACA,6G;AACA,K;;AAEA,oC;AACA,4D;AACA,K;;AAEA,2B;AACA,0B;;AAEA,gC;AACA,sC;AACA,gB;AACA,2D;AACA,wC;AACA,6C;AACA,a;AACA,wB;AACA,S;AACA,K;;AAEA,yB;AACA,0J;AACA,wB;AACA,oC;AACA,yC;AACA,oB;AACA,wC;AACA,a;AACA,S;AACA,M;;AAEA,4B;AACA,4B;AACA,K;;AAEA,8B;AACA,sC;AACA,kE;AACA,gD;AACA,wB;AACA,oB;AACA,0B;AACA,+B;AACA,uB;AACA,qB;AACA,yB;AACA,+B;AACA,oB;AACA,uB;AACA,mB;AACA,0B;AACA,+B;AACA,oB;AACA,4B;AACA,+B;AACA,sB;AACA,4B;AACA,+B;AACA,sB;AACA,iC;AACA,S;;AAEA,mC;AACA,+B;AACA,4B;AACA,S;AACA,kC;AACA,+B;AACA,S;;AAEA,oC;AACA,kC;AACA,yD;AACA,S;;AAEA,oB;AACA,K;;AAEA,4B;AACA,sC;AACA,6D;AACA,wB;AACA,S;AACA,oG;AACA,K;;AAEA,kC;AACA,wD;AACA,K;;AAEA,sB;AACA,wC;AACA,K;;AAEA,wB;AACA,wD;AACA,K;;AAEA,yB;AACA,qB;AACA,kG;AACA,K;;AAEA,0B;AACA,qB;AACA,gB;AACA,4B;AACA,8B;AACA,2B;AACA,6B;AACA,iC;AACA,iC;AACA,0C;AACA,U;AACA,K;;AAEA,uC;AACA,oC;AACA,K;;AAEA,8B;AACA,iD;AACA,K;;AAEA,2B;AACA,8C;AACA,K;;AAEA,iD;AACA,qC;AACA,O;;AAEA,iD;AACA,wC;AACA,O;;AAEA,qD;AACA,4D;AACA,K;;AAEA,mD;AACA,mD;AACA,mD;AACA,mD;;AAEA,c;;AAEA,mC;AACA,sC;;AAEA,c;;AAEA,yC;AACA,yC;AACA,+C;AACA,+C;AACA,+C;AACA,+C;AACA,+C;AACA,+C;;AAEA,iG;AACA,gD;AACA,O;;AAEA,2E;AACA,kE;AACA,O;;AAEA,c;;AAEA,0C;AACA,yF;AACA,K;;AAEA,c;;AAEA,qC;AACA,mG;AACA,oE;AACA,K;;AAEA,wC;AACA,+C;AACA,oE;AACA,K;;AAEA,mC;AACA,8C;AACA,K;;AAEA,gC;AACA,+C;AACA,oE;AACA,K;;AAEA,yC;;AAEA,c;;AAEA,iC;;AAEA,c;;AAEA,+B;AACA,gD;AACA,8C;AACA,O;;AAEA,c;;AAEA,oC;AACA,kH;AACA,K;;AAEA,iD;;AAEA,c;;AAEA,8B;;AAEA,c;;AAEA,mC;AACA,2C;AACA,qD;AACA,6E;AACA,O;;AAEA,qC;AACA,iD;AACA,2D;AACA,O;;AAEA,c;;AAEA,oD;;AAEA,wC;;AAEA,kD;AACA,2D;AACA,O;;AAEA,mD;AACA,6D;AACA,O;;AAEA,oD;AACA,wD;AACA,O;;AAEA,yC;AACA,4C;;AAEA,c;;AAEA,6B;AACA,iC;AACA,oC;;AAEA,c;;AAEA,qC;AACA,qC;AACA,qC;AACA,qC;AACA,qC;AACA,qC;;AAEA,6E;AACA,0D;AACA,oE;AACA,8B;AACA,6B;AACA,gB;AACA,2D;AACA,S;AACA,O;;AAEA,8E;AACA,mC;AACA,O;;AAEA,c;;AAEA,0C;AACA,wC;AACA,yB;AACA,S;;AAEA,4B;AACA,uC;AACA,S;;AAEA,4C;AACA,wC;AACA,yB;AACA,S;;AAEA,oB;AACA,K;;AAEA,c;;AAEA,sG;AACA,iC;AACA,uC;AACA,K;;AAEA,8E;AACA,sC;AACA,4C;AACA,K;;AAEA,qE;AACA,oC;AACA,0C;AACA,K;;AAEA,gD;AACA,0B;;AAEA,wD;;AAEA,iC;AACA,yD;AACA,0C;AACA,2D;AACA,6H;AACA,iF;AACA,a;AACA,6B;AACA,2D;AACA,yB;AACA,a;AACA,S;AACA,K;;AAEA,c;;AAEA,sC;AACA,uE;AACA,4B;AACA,2D;AACA,8C;AACA,gB;AACA,uB;AACA,S;AACA,K;;AAEA,4C;AACA,yE;AACA,wE;AACA,K;;AAEA,yC;AACA,gD;AACA,yE;AACA,kE;AACA,8F;AACA,K;;AAEA,8C;AACA,mD;AACA,uC;AACA,O;;AAEA,0C;AACA,iD;AACA,uF;AACA,W;AACA,K;;AAEA,wB;AACA,yB;;AAEA,c;;AAEA,8B;;AAEA,c;;AAEA,+C;AACA,qC;AACA,K;;AAEA,uC;AACA,uC;AACA,mC;AACA,mC;AACA,2C;AACA,2C;;AAEA,qC;AACA,+D;AACA,kD;AACA,iC;AACA,O;AACA,gE;AACA,mC;AACA,+C;AACA,O;;AAEA,c;;AAEA,iC;AACA,0F;AACA,kD;AACA,8D;AACA,K;;AAEA,qD;AACA,uD;AACA,yB;AACA,yC;AACA,gB;AACA,yC;AACA,S;AACA,K;;;AAGA,c;;AAEA,yE;AACA,6E;AACA,4E;AACA,iB;AACA,+C;;AAEA,gD;;AAEA,c;;AAEA,gC;;AAEA,c;;AAEA,mC;AACA,2C;AACA,uC;;AAEA,c;;AAEA,oD;;AAEA,gD;;AAEA,c;;AAEA,gC;;AAEA,c;;AAEA,mC;AACA,2C;AACA,uC;;AAEA,c;;AAEA,oD;;AAEA,2C;AACA,4C;AACA,O;;AAEA,iD;AACA,2C;AACA,O;;AAEA,oD;AACA,mD;AACA,uC;AACA,O;AACA,oD;AACA,wC;AACA,O;AACA,qD;AACA,yC;AACA,O;AACA,sD;AACA,0C;AACA,O;AACA,uD;AACA,2C;AACA,O;AACA,wD;AACA,4C;AACA,O;;;AAGA,c;;AAEA,sC;;AAEA,c;;AAEA,6C;AACA,6C;AACA,6C;;AAEA,c;AACA,2D;AACA,4C;AACA,K;;AAEA,oC;AACA,0D;AACA,K;;AAEA,wD;AACA,sC;AACA,K;AACA,c;;AAEA,8D;;AAEA,2C;AACA,2C;;AAEA,c;;AAEA,6B;AACA,wC;AACA,K;;AAEA,6B;AACA,+D;AACA,K;;AAEA,kD;;AAEA,4D;AACA,oE;AACA,gD;AACA,+C;AACA,gD;AACA,iD;AACA,+C;AACA,kD;AACA,6C;AACA,gD;AACA,iD;AACA,oD;AACA,kD;AACA,mD;AACA,oD;AACA,iD;AACA,gE;AACA,+C;AACA,iD;AACA,qD;AACA,uD;AACA,uD;AACA,uD;AACA,iD;AACA,kD;AACA,iE;AACA,kD;AACA,mD;AACA,iD;AACA,qE;AACA,qE;AACA,mD;AACA,+C;AACA,2D;;AAEA,W;AACA,mD;AACA,sD;;AAEA,gB;AACA,wD;AACA,2D;;AAEA,c;AACA,qF;;AAEA,Y;AACA,qD;AACA,wD;;AAEA,W;AACA,6F;AACA,gG;AACA,2D;AACA,8D;;AAEA,U;AACA,yD;AACA,kG;AACA,8D;AACA,2D;AACA,wD;;AAEA,W;AACA,4E;;AAEA,a;AACA,kF;;AAEA,a;AACA,kF;;AAEA,kB;AACA,iG;;AAEA,a;AACA,+D;AACA,iE;AACA,mE;AACA,0E;AACA,uE;AACA,uE;AACA,8E;AACA,0D;AACA,8D;AACA,wD;AACA,wD;;AAEA,e;AACA,kD;AACA,kD;;AAEA,mB;AACA,mH;AACA,+G;AACA,4G;AACA,uK;;AAEA,iD;;AAEA,yC;AACA,gD;AACA,K;;AAEA,sC;AACA,qE;AACA,K;;AAEA,2B;AACA,kC;AACA,qC;AACA,kC;AACA,sC;AACA,yC;AACA,sB;AACA,M;;AAEA,wD;AACA,yC;AACA,6E;AACA,K;;AAEA,iC;AACA,2B;AACA,wB;AACA,4B;AACA,8B;AACA,qC;AACA,0C;AACA,M;;AAEA,mC;AACA,+C;AACA,kE;;AAEA,qC;AACA,0B;AACA,S;;AAEA,4F;AACA,gC;AACA,W;;AAEA,yC;AACA,K;;AAEA,4C;;AAEA,6B;AACA,iC;AACA,K;;AAEA,8B;AACA,wC;;AAEA,+B;AACA,mD;AACA,K;;AAEA,0C;AACA,sB;AACA,K;;AAEA,+B;AACA,yB;AACA,0B;AACA,6B;AACA,wB;AACA,0B;AACA,uB;AACA,wB;AACA,qB;AACA,uB;AACA,uB;AACA,yB;AACA,sB;AACA,uB;AACA,M;;AAEA,+E;AACA,gD;AACA,+C;AACA,6D;AACA,0C;AACA,K;;AAEA,wC;AACA,sE;AACA,6F;AACA,K;;AAEA,uC;AACA,oB;AACA,2B;AACA,6B;AACA,6C;AACA,+B;AACA,oB;AACA,qC;AACA,a;AACA,S;AACA,uE;AACA,sE;AACA,qG;AACA,K;;AAEA,4C;;AAEA,uD;AACA,iE;AACA,6D;AACA,sD;AACA,0D;AACA,mD;AACA,sD;AACA,+C;AACA,2D;AACA,0D;AACA,0D;AACA,2D;AACA,8D;AACA,kD;AACA,uD;;AAEA,Y;AACA,wD;AACA,wD;AACA,6D;AACA,6D;AACA,6D;;AAEA,W;AACA,uC;AACA,+C;AACA,2D;AACA,2D;;AAEA,kB;AACA,4D;AACA,4D;AACA,+D;AACA,+D;AACA,iE;AACA,iE;AACA,iE;;AAEA,Y;AACA,uC;AACA,iE;AACA,+C;;AAEA,wD;AACA,iD;AACA,6D;AACA,0C;AACA,K;;AAEA,yD;AACA,yC;AACA,2B;AACA,+B;AACA,S;;AAEA,8B;;AAEA,4B;AACA,4D;AACA,S;;AAEA,c;AACA,qB;AACA,qC;AACA,0D;AACA,S;AACA,mB;AACA,K;;AAEA,gD;AACA,0D;AACA,K;;AAEA,qD;AACA,+D;AACA,K;;AAEA,kD;AACA,yD;AACA,K;;AAEA,uD;AACA,8D;AACA,K;;AAEA,qD;AACA,4D;AACA,K;;AAEA,8C;AACA,6C;AACA,qC;AACA,gC;AACA,kE;AACA,kC;AACA,kC;AACA,wC;AACA,mC;AACA,S;AACA,O;;AAEA,0B;AACA,qI;AACA,wI;;AAEA,2B;;AAEA,mC;AACA,wC;;AAEA,yD;AACA,iD;AACA,mD;;AAEA,wD;AACA,mD;AACA,mD;AACA,iD;AACA,kD;AACA,iD;;AAEA,oB;AACA,K;;AAEA,qF;AACA,yD;;AAEA,kE;AACA,0D;AACA,4D;;AAEA,kC;AACA,K;;AAEA,2D;AACA,wD;AACA,yE;AACA,K;;AAEA,qE;AACA,6D;AACA,0E;AACA,K;;AAEA,+B;AACA,yB;AACA,sC;AACA,gB;AACA,qC;AACA,S;AACA,K;;AAEA,wB;AACA,8C;AACA,sC;AACA,wC;AACA,sC;AACA,2D;;AAEA,8E;AACA,8D;AACA,gE;AACA,mE;AACA,yE;AACA,qB;AACA,uB;AACA,S;;AAEA,kE;AACA,uC;AACA,gD;;AAEA,0D;AACA,yC;;AAEA,mD;AACA,yC;;AAEA,mD;AACA,uC;;AAEA,qC;;AAEA,iC;AACA,sD;AACA,iC;AACA,sD;;AAEA,8B;AACA,sC;AACA,qB;;AAEA,2B;AACA,6B;AACA,4B;;AAEA,oB;AACA,K;;AAEA,kC;AACA,2E;AACA,4C;AACA,oC;AACA,K;;AAEA,oC;AACA,sC;AACA,sC;AACA,K;;AAEA,yB;AACA,iB;AACA,mB;AACA,8C;;AAEA,sC;;AAEA,oD;AACA,yD;AACA,uD;AACA,4D;AACA,gB;AACA,iG;AACA,uE;AACA,4B;AACA,4E;AACA,2E;AACA,0E;AACA,yE;AACA,0E;AACA,sE;AACA,mF;AACA,kE;AACA,a;AACA,S;AACA,K;;AAEA,+B;AACA,sC;AACA,gB;AACA,gC;AACA,gC;AACA,0C;AACA,8C;AACA,U;AACA,K;;AAEA,6B;AACA,4B;AACA,kC;AACA,U;AACA,K;;AAEA,sC;AACA,qC;AACA,qC;AACA,qC;AACA,qC;AACA,qC;AACA,qC;AACA,qC;;AAEA,wC;AACA,sC;AACA,mC;AACA,K;;AAEA,+B;AACA,4B;AACA,oC;AACA,U;AACA,K;;AAEA,kD;AACA,6C;AACA,6C;AACA,2C;AACA,0C;AACA,4C;AACA,2C;;AAEA,uB;AACA,yC;AACA,K;;AAEA,2B;AACA,sB;AACA,oC;AACA,kC;AACA,+B;AACA,gC;AACA,iC;AACA,M;;AAEA,6F;AACA,iF;AACA,mF;AACA,K;;AAEA,sF;AACA,oE;AACA,+C;AACA,+C;AACA,+C;AACA,+C;AACA,+C;AACA,+C;;AAEA,4D;AACA,4D;AACA,4D;AACA,4D;AACA,4D;AACA,4D;AACA,4D;AACA,4D;AACA,4D;AACA,2E;;AAEA,6B;AACA,mC;AACA,sB;AACA,gD;AACA,K;;AAEA,4E;AACA,gF;AACA,kD;AACA,yB;AACA,S;AACA,kC;AACA,yC;AACA,S;AACA,sC;AACA,oB;AACA,K;;AAEA,oC;AACA,uC;AACA,gF;;AAEA,yB;AACA,sD;AACA,S;;AAEA,yC;AACA,K;;AAEA,mC;;AAEA,wC;AACA,mE;AACA,4D;AACA,uC;AACA,sD;AACA,qF;AACA,mC;AACA,sE;AACA,iE;AACA,uD;AACA,yD;AACA,kC;;AAEA,+C;AACA,mD;AACA,mD;AACA,sB;AACA,sB;;AAEA,8B;AACA,uC;AACA,qB;;;AAGA,uG;AACA,sB;AACA,uB;AACA,qB;AACA,sB;AACA,wB;AACA,wB;AACA,qC;;AAEA,qB;AACA,sE;AACA,2C;AACA,yB;AACA,S;;AAEA,uC;AACA,iB;AACA,gC;AACA,gC;AACA,gC;AACA,wC;AACA,gC;AACA,gC;AACA,+B;AACA,K;;AAEA,uD;;AAEA,iE;AACA,0E;AACA,+E;AACA,kD;AACA,8D;AACA,yD;AACA,yD;AACA,uD;AACA,sD;AACA,uD;AACA,wD;AACA,uD;AACA,oE;AACA,sD;AACA,iE;AACA,4D;AACA,uD;AACA,uD;AACA,qD;AACA,oD;AACA,qD;AACA,sD;AACA,qD;AACA,wD;AACA,uE;AACA,uE;AACA,uE;AACA,sD;AACA,0D;;AAEA,mB;AACA,sK;AACA,0C;;AAEA,0B;;AAEA,sC;AACA,yC;;AAEA,c;;AAEA,oC;AACA,uC;AACA,wD;AACA,2D;AACA,O;AACA,wD;AACA,2C;AACA,O;;AAEA,0B;;;AAGA,0C;;AAEA,wC;;AAEA,+D;AACA,mD;AACA,mD;AACA,qE;AACA,kE;AACA,iE;AACA,sD;AACA,kF;AACA,oE;AACA,sE;AACA,wD;AACA,mE;AACA,oE;AACA,yE;AACA,0D;AACA,sE;AACA,sE;AACA,4D;AACA,wE;AACA,8D;AACA,8F;;AAEA,qC;;AAEA,mB;;AAEA,I;;;;;;;;;;;;;;;;;;AC1nGA,uH;AACA,qB;AACA,K;AACA,uB;AACA,a;AACA,C","file":"/packages/momentjs_moment.js","sourcesContent":["//! moment.js\n//! version : 2.10.6\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n global.moment = factory()\n}(this, function () { 'use strict';\n\n var hookCallback;\n\n function utils_hooks__hooks () {\n return hookCallback.apply(null, arguments);\n }\n\n // This is done to register the method called with moment()\n // without creating circular dependencies.\n function setHookCallback (callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return Object.prototype.toString.call(input) === '[object Array]';\n }\n\n function isDate(input) {\n return input instanceof Date || Object.prototype.toString.call(input) === '[object Date]';\n }\n\n function map(arr, fn) {\n var res = [], i;\n for (i = 0; i < arr.length; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function create_utc__createUTC (input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty : false,\n unusedTokens : [],\n unusedInput : [],\n overflow : -2,\n charsLeftOver : 0,\n nullInput : false,\n invalidMonth : null,\n invalidFormat : false,\n userInvalidated : false,\n iso : false\n };\n }\n\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n }\n\n function valid__isValid(m) {\n if (m._isValid == null) {\n var flags = getParsingFlags(m);\n m._isValid = !isNaN(m._d.getTime()) &&\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated;\n\n if (m._strict) {\n m._isValid = m._isValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n }\n return m._isValid;\n }\n\n function valid__createInvalid (flags) {\n var m = create_utc__createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n }\n else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n }\n\n var momentProperties = utils_hooks__hooks.momentProperties = [];\n\n function copyConfig(to, from) {\n var i, prop, val;\n\n if (typeof from._isAMomentObject !== 'undefined') {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (typeof from._i !== 'undefined') {\n to._i = from._i;\n }\n if (typeof from._f !== 'undefined') {\n to._f = from._f;\n }\n if (typeof from._l !== 'undefined') {\n to._l = from._l;\n }\n if (typeof from._strict !== 'undefined') {\n to._strict = from._strict;\n }\n if (typeof from._tzm !== 'undefined') {\n to._tzm = from._tzm;\n }\n if (typeof from._isUTC !== 'undefined') {\n to._isUTC = from._isUTC;\n }\n if (typeof from._offset !== 'undefined') {\n to._offset = from._offset;\n }\n if (typeof from._pf !== 'undefined') {\n to._pf = getParsingFlags(from);\n }\n if (typeof from._locale !== 'undefined') {\n to._locale = from._locale;\n }\n\n if (momentProperties.length > 0) {\n for (i in momentProperties) {\n prop = momentProperties[i];\n val = from[prop];\n if (typeof val !== 'undefined') {\n to[prop] = val;\n }\n }\n }\n\n return to;\n }\n\n var updateInProgress = false;\n\n // Moment prototype object\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n utils_hooks__hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment (obj) {\n return obj instanceof Moment || (obj != null && obj._isAMomentObject != null);\n }\n\n function absFloor (number) {\n if (number < 0) {\n return Math.ceil(number);\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if ((dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n }\n\n function Locale() {\n }\n\n var locales = {};\n var globalLocale;\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n }\n\n // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n function chooseLocale(names) {\n var i = 0, j, next, locale, split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (next && next.length >= j && compareArrays(split, next, true) >= j - 1) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return null;\n }\n\n function loadLocale(name) {\n var oldLocale = null;\n // TODO: Find a better way to register and load all the locales in Node\n if (!locales[name] && typeof module !== 'undefined' &&\n module && module.exports) {\n try {\n oldLocale = globalLocale._abbr;\n require('./locale/' + name);\n // because defineLocale currently also sets the global locale, we\n // want to undo that for lazy loaded locales\n locale_locales__getSetGlobalLocale(oldLocale);\n } catch (e) { }\n }\n return locales[name];\n }\n\n // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n function locale_locales__getSetGlobalLocale (key, values) {\n var data;\n if (key) {\n if (typeof values === 'undefined') {\n data = locale_locales__getLocale(key);\n }\n else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale (name, values) {\n if (values !== null) {\n values.abbr = name;\n locales[name] = locales[name] || new Locale();\n locales[name].set(values);\n\n // backwards compat for now: also set the locale\n locale_locales__getSetGlobalLocale(name);\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n // returns locale data\n function locale_locales__getLocale (key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n var aliases = {};\n\n function addUnitAlias (unit, shorthand) {\n var lowerCase = unit.toLowerCase();\n aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n }\n\n function normalizeUnits(units) {\n return typeof units === 'string' ? aliases[units] || aliases[units.toLowerCase()] : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n function makeGetSet (unit, keepTime) {\n return function (value) {\n if (value != null) {\n get_set__set(this, unit, value);\n utils_hooks__hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get_set__get(this, unit);\n }\n };\n }\n\n function get_set__get (mom, unit) {\n return mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]();\n }\n\n function get_set__set (mom, unit, value) {\n return mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n }\n\n // MOMENTS\n\n function getSet (units, value) {\n var unit;\n if (typeof units === 'object') {\n for (unit in units) {\n this.set(unit, units[unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (typeof this[units] === 'function') {\n return this[units](value);\n }\n }\n return this;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + absNumber;\n }\n\n var formattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Q|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g;\n\n var localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g;\n\n var formatFunctions = {};\n\n var formatTokenFunctions = {};\n\n // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n function addFormatToken (token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(func.apply(this, arguments), token);\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens), i, length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '';\n for (i = 0; i < length; i++) {\n output += array[i] instanceof Function ? array[i].call(mom, format) : array[i];\n }\n return output;\n };\n }\n\n // format date using native date object\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] = formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(localFormattingTokens, replaceLongDateFormatTokens);\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var match1 = /\\d/; // 0 - 9\n var match2 = /\\d\\d/; // 00 - 99\n var match3 = /\\d{3}/; // 000 - 999\n var match4 = /\\d{4}/; // 0000 - 9999\n var match6 = /[+-]?\\d{6}/; // -999999 - 999999\n var match1to2 = /\\d\\d?/; // 0 - 99\n var match1to3 = /\\d{1,3}/; // 0 - 999\n var match1to4 = /\\d{1,4}/; // 0 - 9999\n var match1to6 = /[+-]?\\d{1,6}/; // -999999 - 999999\n\n var matchUnsigned = /\\d+/; // 0 - inf\n var matchSigned = /[+-]?\\d+/; // -inf - inf\n\n var matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi; // +00:00 -00:00 +0000 -0000 or Z\n\n var matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/; // 123456789 123456789.123\n\n // any word (or two) characters or numbers including two/three word month in arabic.\n var matchWord = /[0-9]*['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]+|[\\u0600-\\u06FF\\/]+(\\s*?[\\u0600-\\u06FF]+){1,2}/i;\n\n var regexes = {};\n\n function isFunction (sth) {\n // https://github.com/moment/moment/issues/2325\n return typeof sth === 'function' &&\n Object.prototype.toString.call(sth) === '[object Function]';\n }\n\n\n function addRegexToken (token, regex, strictRegex) {\n regexes[token] = isFunction(regex) ? regex : function (isStrict) {\n return (isStrict && strictRegex) ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken (token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n }\n\n // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n function unescapeFormat(s) {\n return s.replace('\\\\', '').replace(/\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g, function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }).replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n var tokens = {};\n\n function addParseToken (token, callback) {\n var i, func = callback;\n if (typeof token === 'string') {\n token = [token];\n }\n if (typeof callback === 'number') {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n for (i = 0; i < token.length; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken (token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n var YEAR = 0;\n var MONTH = 1;\n var DATE = 2;\n var HOUR = 3;\n var MINUTE = 4;\n var SECOND = 5;\n var MILLISECOND = 6;\n\n function daysInMonth(year, month) {\n return new Date(Date.UTC(year, month + 1, 0)).getUTCDate();\n }\n\n // FORMATTING\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n // ALIASES\n\n addUnitAlias('month', 'M');\n\n // PARSING\n\n addRegexToken('M', match1to2);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', matchWord);\n addRegexToken('MMMM', matchWord);\n\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n });\n\n // LOCALES\n\n var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_');\n function localeMonths (m) {\n return this._months[m.month()];\n }\n\n var defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_');\n function localeMonthsShort (m) {\n return this._monthsShort[m.month()];\n }\n\n function localeMonthsParse (monthName, format, strict) {\n var i, mom, regex;\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = create_utc__createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp('^' + this.months(mom, '').replace('.', '') + '$', 'i');\n this._shortMonthsParse[i] = new RegExp('^' + this.monthsShort(mom, '').replace('.', '') + '$', 'i');\n }\n if (!strict && !this._monthsParse[i]) {\n regex = '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (strict && format === 'MMMM' && this._longMonthsParse[i].test(monthName)) {\n return i;\n } else if (strict && format === 'MMM' && this._shortMonthsParse[i].test(monthName)) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function setMonth (mom, value) {\n var dayOfMonth;\n\n // TODO: Move this out of here!\n if (typeof value === 'string') {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (typeof value !== 'number') {\n return mom;\n }\n }\n\n dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n return mom;\n }\n\n function getSetMonth (value) {\n if (value != null) {\n setMonth(this, value);\n utils_hooks__hooks.updateOffset(this, true);\n return this;\n } else {\n return get_set__get(this, 'Month');\n }\n }\n\n function getDaysInMonth () {\n return daysInMonth(this.year(), this.month());\n }\n\n function checkOverflow (m) {\n var overflow;\n var a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11 ? MONTH :\n a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) ? DATE :\n a[HOUR] < 0 || a[HOUR] > 24 || (a[HOUR] === 24 && (a[MINUTE] !== 0 || a[SECOND] !== 0 || a[MILLISECOND] !== 0)) ? HOUR :\n a[MINUTE] < 0 || a[MINUTE] > 59 ? MINUTE :\n a[SECOND] < 0 || a[SECOND] > 59 ? SECOND :\n a[MILLISECOND] < 0 || a[MILLISECOND] > 999 ? MILLISECOND :\n -1;\n\n if (getParsingFlags(m)._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) {\n overflow = DATE;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n }\n\n function warn(msg) {\n if (utils_hooks__hooks.suppressDeprecationWarnings === false && typeof console !== 'undefined' && console.warn) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (firstTime) {\n warn(msg + '\\n' + (new Error()).stack);\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n utils_hooks__hooks.suppressDeprecationWarnings = false;\n\n var from_string__isoRegex = /^\\s*(?:[+-]\\d{6}|\\d{4})-(?:(\\d\\d-\\d\\d)|(W\\d\\d$)|(W\\d\\d-\\d)|(\\d\\d\\d))((T| )(\\d\\d(:\\d\\d(:\\d\\d(\\.\\d+)?)?)?)?([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/;\n\n var isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d{2}-\\d{2}/],\n ['YYYY-MM-DD', /\\d{4}-\\d{2}-\\d{2}/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d{2}-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d{2}/],\n ['YYYY-DDD', /\\d{4}-\\d{3}/]\n ];\n\n // iso time formats and regexes\n var isoTimes = [\n ['HH:mm:ss.SSSS', /(T| )\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss', /(T| )\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /(T| )\\d\\d:\\d\\d/],\n ['HH', /(T| )\\d\\d/]\n ];\n\n var aspNetJsonRegex = /^\\/?Date\\((\\-?\\d+)/i;\n\n // date from iso format\n function configFromISO(config) {\n var i, l,\n string = config._i,\n match = from_string__isoRegex.exec(string);\n\n if (match) {\n getParsingFlags(config).iso = true;\n for (i = 0, l = isoDates.length; i < l; i++) {\n if (isoDates[i][1].exec(string)) {\n config._f = isoDates[i][0];\n break;\n }\n }\n for (i = 0, l = isoTimes.length; i < l; i++) {\n if (isoTimes[i][1].exec(string)) {\n // match[6] should be 'T' or space\n config._f += (match[6] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (string.match(matchOffset)) {\n config._f += 'Z';\n }\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n // date from iso format or fallback\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n utils_hooks__hooks.createFromInputFallback(config);\n }\n }\n\n utils_hooks__hooks.createFromInputFallback = deprecate(\n 'moment construction falls back to js Date. This is ' +\n 'discouraged and will be removed in upcoming major ' +\n 'release. Please refer to ' +\n 'https://github.com/moment/moment/issues/1407 for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n );\n\n function createDate (y, m, d, h, M, s, ms) {\n //can't just apply() to create a date:\n //http://stackoverflow.com/questions/181348/instantiating-a-javascript-object-by-calling-prototype-constructor-apply\n var date = new Date(y, m, d, h, M, s, ms);\n\n //the date constructor doesn't accept years < 1970\n if (y < 1970) {\n date.setFullYear(y);\n }\n return date;\n }\n\n function createUTCDate (y) {\n var date = new Date(Date.UTC.apply(null, arguments));\n if (y < 1970) {\n date.setUTCFullYear(y);\n }\n return date;\n }\n\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n // ALIASES\n\n addUnitAlias('year', 'y');\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] = input.length === 2 ? utils_hooks__hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = utils_hooks__hooks.parseTwoDigitYear(input);\n });\n\n // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n }\n\n // HOOKS\n\n utils_hooks__hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n };\n\n // MOMENTS\n\n var getSetYear = makeGetSet('FullYear', false);\n\n function getIsLeapYear () {\n return isLeapYear(this.year());\n }\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n // ALIASES\n\n addUnitAlias('week', 'w');\n addUnitAlias('isoWeek', 'W');\n\n // PARSING\n\n addRegexToken('w', match1to2);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(['w', 'ww', 'W', 'WW'], function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n });\n\n // HELPERS\n\n // firstDayOfWeek 0 = sun, 6 = sat\n // the day of the week that starts the week\n // (usually sunday or monday)\n // firstDayOfWeekOfYear 0 = sun, 6 = sat\n // the first week is the week that contains the first\n // of this day of the week\n // (eg. ISO weeks use thursday (4))\n function weekOfYear(mom, firstDayOfWeek, firstDayOfWeekOfYear) {\n var end = firstDayOfWeekOfYear - firstDayOfWeek,\n daysToDayOfWeek = firstDayOfWeekOfYear - mom.day(),\n adjustedMoment;\n\n\n if (daysToDayOfWeek > end) {\n daysToDayOfWeek -= 7;\n }\n\n if (daysToDayOfWeek < end - 7) {\n daysToDayOfWeek += 7;\n }\n\n adjustedMoment = local__createLocal(mom).add(daysToDayOfWeek, 'd');\n return {\n week: Math.ceil(adjustedMoment.dayOfYear() / 7),\n year: adjustedMoment.year()\n };\n }\n\n // LOCALES\n\n function localeWeek (mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow : 0, // Sunday is the first day of the week.\n doy : 6 // The week that contains Jan 1st is the first week of the year.\n };\n\n function localeFirstDayOfWeek () {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear () {\n return this._week.doy;\n }\n\n // MOMENTS\n\n function getSetWeek (input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek (input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n // ALIASES\n\n addUnitAlias('dayOfYear', 'DDD');\n\n // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n // HELPERS\n\n //http://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n function dayOfYearFromWeeks(year, week, weekday, firstDayOfWeekOfYear, firstDayOfWeek) {\n var week1Jan = 6 + firstDayOfWeek - firstDayOfWeekOfYear, janX = createUTCDate(year, 0, 1 + week1Jan), d = janX.getUTCDay(), dayOfYear;\n if (d < firstDayOfWeek) {\n d += 7;\n }\n\n weekday = weekday != null ? 1 * weekday : firstDayOfWeek;\n\n dayOfYear = 1 + week1Jan + 7 * (week - 1) - d + weekday;\n\n return {\n year: dayOfYear > 0 ? year : year - 1,\n dayOfYear: dayOfYear > 0 ? dayOfYear : daysInYear(year - 1) + dayOfYear\n };\n }\n\n // MOMENTS\n\n function getSetDayOfYear (input) {\n var dayOfYear = Math.round((this.clone().startOf('day') - this.clone().startOf('year')) / 864e5) + 1;\n return input == null ? dayOfYear : this.add((input - dayOfYear), 'd');\n }\n\n // Pick the first defined of two or three arguments.\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n }\n\n function currentDateArray(config) {\n var now = new Date();\n if (config._useUTC) {\n return [now.getUTCFullYear(), now.getUTCMonth(), now.getUTCDate()];\n }\n return [now.getFullYear(), now.getMonth(), now.getDate()];\n }\n\n // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n function configFromArray (config) {\n var i, date, input = [], currentDate, yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (config._dayOfYear > daysInYear(yearToUse)) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] = (config._a[i] == null) ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(null, input);\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(w.GG, config._a[YEAR], weekOfYear(local__createLocal(), 1, 4).year);\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n weekYear = defaults(w.gg, config._a[YEAR], weekOfYear(local__createLocal(), dow, doy).year);\n week = defaults(w.w, 1);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < dow) {\n ++week;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from begining of week\n weekday = w.e + dow;\n } else {\n // default to begining of week\n weekday = dow;\n }\n }\n temp = dayOfYearFromWeeks(weekYear, week, weekday, doy, dow);\n\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n\n utils_hooks__hooks.ISO_8601 = function () {};\n\n // date from string and format string\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === utils_hooks__hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i, parsedInput, tokens, token, skipped,\n stringLength = string.length,\n totalParsedInputLength = 0;\n\n tokens = expandFormat(config._f, config._locale).match(formattingTokens) || [];\n\n for (i = 0; i < tokens.length; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) || [])[0];\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(string.indexOf(parsedInput) + parsedInput.length);\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n }\n else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n }\n else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver = stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (getParsingFlags(config).bigHour === true &&\n config._a[HOUR] <= 12 &&\n config._a[HOUR] > 0) {\n getParsingFlags(config).bigHour = undefined;\n }\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(config._locale, config._a[HOUR], config._meridiem);\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n\n function meridiemFixWrap (locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n }\n\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n\n scoreToBeat,\n i,\n currentScore;\n\n if (config._f.length === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < config._f.length; i++) {\n currentScore = 0;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (!valid__isValid(tempConfig)) {\n continue;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (scoreToBeat == null || currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i);\n config._a = [i.year, i.month, i.day || i.date, i.hour, i.minute, i.second, i.millisecond];\n\n configFromArray(config);\n }\n\n function createFromConfig (config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig (config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || locale_locales__getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return valid__createInvalid({nullInput: true});\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else if (isDate(input)) {\n config._d = input;\n } else {\n configFromInput(config);\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n if (input === undefined) {\n config._d = new Date();\n } else if (isDate(input)) {\n config._d = new Date(+input);\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (typeof(input) === 'object') {\n configFromObject(config);\n } else if (typeof(input) === 'number') {\n // from milliseconds\n config._d = new Date(input);\n } else {\n utils_hooks__hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC (input, format, locale, strict, isUTC) {\n var c = {};\n\n if (typeof(locale) === 'boolean') {\n strict = locale;\n locale = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n }\n\n function local__createLocal (input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.min instead. https://github.com/moment/moment/issues/1548',\n function () {\n var other = local__createLocal.apply(null, arguments);\n return other < this ? this : other;\n }\n );\n\n var prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.max instead. https://github.com/moment/moment/issues/1548',\n function () {\n var other = local__createLocal.apply(null, arguments);\n return other > this ? this : other;\n }\n );\n\n // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n function pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return local__createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n }\n\n // TODO: Use [].sort instead?\n function min () {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n }\n\n function max () {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n }\n\n function Duration (duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n // representation for dateAddRemove\n this._milliseconds = +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 36e5; // 1000 * 60 * 60\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days +\n weeks * 7;\n // It is impossible translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months +\n quarters * 3 +\n years * 12;\n\n this._data = {};\n\n this._locale = locale_locales__getLocale();\n\n this._bubble();\n }\n\n function isDuration (obj) {\n return obj instanceof Duration;\n }\n\n function offset (token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset();\n var sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return sign + zeroFill(~~(offset / 60), 2) + separator + zeroFill(~~(offset) % 60, 2);\n });\n }\n\n offset('Z', ':');\n offset('ZZ', '');\n\n // PARSING\n\n addRegexToken('Z', matchOffset);\n addRegexToken('ZZ', matchOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(input);\n });\n\n // HELPERS\n\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(string) {\n var matches = ((string || '').match(matchOffset) || []);\n var chunk = matches[matches.length - 1] || [];\n var parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n var minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return parts[0] === '+' ? minutes : -minutes;\n }\n\n // Return a moment from input, that is local/utc/zone equivalent to model.\n function cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff = (isMoment(input) || isDate(input) ? +input : +local__createLocal(input)) - (+res);\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(+res._d + diff);\n utils_hooks__hooks.updateOffset(res, false);\n return res;\n } else {\n return local__createLocal(input).local();\n }\n }\n\n function getDateOffset (m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset() / 15) * 15;\n }\n\n // HOOKS\n\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n utils_hooks__hooks.updateOffset = function () {};\n\n // MOMENTS\n\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n function getSetOffset (input, keepLocalTime) {\n var offset = this._offset || 0,\n localAdjust;\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(input);\n }\n if (Math.abs(input) < 16) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n add_subtract__addSubtract(this, create__createDuration(input - offset, 'm'), 1, false);\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n utils_hooks__hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone (input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC (keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal (keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n }\n\n function setOffsetToParsedOffset () {\n if (this._tzm) {\n this.utcOffset(this._tzm);\n } else if (typeof this._i === 'string') {\n this.utcOffset(offsetFromString(this._i));\n }\n return this;\n }\n\n function hasAlignedHourOffset (input) {\n input = input ? local__createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime () {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n }\n\n function isDaylightSavingTimeShifted () {\n if (typeof this._isDSTShifted !== 'undefined') {\n return this._isDSTShifted;\n }\n\n var c = {};\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n var other = c._isUTC ? create_utc__createUTC(c._a) : local__createLocal(c._a);\n this._isDSTShifted = this.isValid() &&\n compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal () {\n return !this._isUTC;\n }\n\n function isUtcOffset () {\n return this._isUTC;\n }\n\n function isUtc () {\n return this._isUTC && this._offset === 0;\n }\n\n var aspNetRegex = /(\\-)?(?:(\\d*)\\.)?(\\d+)\\:(\\d+)(?:\\:(\\d+)\\.?(\\d{3})?)?/;\n\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n var create__isoRegex = /^(-)?P(?:(?:([0-9,.]*)Y)?(?:([0-9,.]*)M)?(?:([0-9,.]*)D)?(?:T(?:([0-9,.]*)H)?(?:([0-9,.]*)M)?(?:([0-9,.]*)S)?)?|([0-9,.]*)W)$/;\n\n function create__createDuration (input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms : input._milliseconds,\n d : input._days,\n M : input._months\n };\n } else if (typeof input === 'number') {\n duration = {};\n if (key) {\n duration[key] = input;\n } else {\n duration.milliseconds = input;\n }\n } else if (!!(match = aspNetRegex.exec(input))) {\n sign = (match[1] === '-') ? -1 : 1;\n duration = {\n y : 0,\n d : toInt(match[DATE]) * sign,\n h : toInt(match[HOUR]) * sign,\n m : toInt(match[MINUTE]) * sign,\n s : toInt(match[SECOND]) * sign,\n ms : toInt(match[MILLISECOND]) * sign\n };\n } else if (!!(match = create__isoRegex.exec(input))) {\n sign = (match[1] === '-') ? -1 : 1;\n duration = {\n y : parseIso(match[2], sign),\n M : parseIso(match[3], sign),\n d : parseIso(match[4], sign),\n h : parseIso(match[5], sign),\n m : parseIso(match[6], sign),\n s : parseIso(match[7], sign),\n w : parseIso(match[8], sign)\n };\n } else if (duration == null) {// checks for null or undefined\n duration = {};\n } else if (typeof duration === 'object' && ('from' in duration || 'to' in duration)) {\n diffRes = momentsDifference(local__createLocal(duration.from), local__createLocal(duration.to));\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n return ret;\n }\n\n create__createDuration.fn = Duration.prototype;\n\n function parseIso (inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {milliseconds: 0, months: 0};\n\n res.months = other.month() - base.month() +\n (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +(base.clone().add(res.months, 'M'));\n\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n }\n\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(name, 'moment().' + name + '(period, number) is deprecated. Please use moment().' + name + '(number, period).');\n tmp = val; val = period; period = tmp;\n }\n\n val = typeof val === 'string' ? +val : val;\n dur = create__createDuration(val, period);\n add_subtract__addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function add_subtract__addSubtract (mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = duration._days,\n months = duration._months;\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (milliseconds) {\n mom._d.setTime(+mom._d + milliseconds * isAdding);\n }\n if (days) {\n get_set__set(mom, 'Date', get_set__get(mom, 'Date') + days * isAdding);\n }\n if (months) {\n setMonth(mom, get_set__get(mom, 'Month') + months * isAdding);\n }\n if (updateOffset) {\n utils_hooks__hooks.updateOffset(mom, days || months);\n }\n }\n\n var add_subtract__add = createAdder(1, 'add');\n var add_subtract__subtract = createAdder(-1, 'subtract');\n\n function moment_calendar__calendar (time, formats) {\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || local__createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n diff = this.diff(sod, 'days', true),\n format = diff < -6 ? 'sameElse' :\n diff < -1 ? 'lastWeek' :\n diff < 0 ? 'lastDay' :\n diff < 1 ? 'sameDay' :\n diff < 2 ? 'nextDay' :\n diff < 7 ? 'nextWeek' : 'sameElse';\n return this.format(formats && formats[format] || this.localeData().calendar(format, this, local__createLocal(now)));\n }\n\n function clone () {\n return new Moment(this);\n }\n\n function isAfter (input, units) {\n var inputMs;\n units = normalizeUnits(typeof units !== 'undefined' ? units : 'millisecond');\n if (units === 'millisecond') {\n input = isMoment(input) ? input : local__createLocal(input);\n return +this > +input;\n } else {\n inputMs = isMoment(input) ? +input : +local__createLocal(input);\n return inputMs < +this.clone().startOf(units);\n }\n }\n\n function isBefore (input, units) {\n var inputMs;\n units = normalizeUnits(typeof units !== 'undefined' ? units : 'millisecond');\n if (units === 'millisecond') {\n input = isMoment(input) ? input : local__createLocal(input);\n return +this < +input;\n } else {\n inputMs = isMoment(input) ? +input : +local__createLocal(input);\n return +this.clone().endOf(units) < inputMs;\n }\n }\n\n function isBetween (from, to, units) {\n return this.isAfter(from, units) && this.isBefore(to, units);\n }\n\n function isSame (input, units) {\n var inputMs;\n units = normalizeUnits(units || 'millisecond');\n if (units === 'millisecond') {\n input = isMoment(input) ? input : local__createLocal(input);\n return +this === +input;\n } else {\n inputMs = +local__createLocal(input);\n return +(this.clone().startOf(units)) <= inputMs && inputMs <= +(this.clone().endOf(units));\n }\n }\n\n function diff (input, units, asFloat) {\n var that = cloneWithOffset(input, this),\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4,\n delta, output;\n\n units = normalizeUnits(units);\n\n if (units === 'year' || units === 'month' || units === 'quarter') {\n output = monthDiff(this, that);\n if (units === 'quarter') {\n output = output / 3;\n } else if (units === 'year') {\n output = output / 12;\n }\n } else {\n delta = this - that;\n output = units === 'second' ? delta / 1e3 : // 1000\n units === 'minute' ? delta / 6e4 : // 1000 * 60\n units === 'hour' ? delta / 36e5 : // 1000 * 60 * 60\n units === 'day' ? (delta - zoneDelta) / 864e5 : // 1000 * 60 * 60 * 24, negate dst\n units === 'week' ? (delta - zoneDelta) / 6048e5 : // 1000 * 60 * 60 * 24 * 7, negate dst\n delta;\n }\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff (a, b) {\n // difference in months\n var wholeMonthDiff = ((b.year() - a.year()) * 12) + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2, adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n return -(wholeMonthDiff + adjust);\n }\n\n utils_hooks__hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n\n function toString () {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function moment_format__toISOString () {\n var m = this.clone().utc();\n if (0 < m.year() && m.year() <= 9999) {\n if ('function' === typeof Date.prototype.toISOString) {\n // native implementation is ~50x faster, use it when we can\n return this.toDate().toISOString();\n } else {\n return formatMoment(m, 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]');\n }\n } else {\n return formatMoment(m, 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]');\n }\n }\n\n function format (inputString) {\n var output = formatMoment(this, inputString || utils_hooks__hooks.defaultFormat);\n return this.localeData().postformat(output);\n }\n\n function from (time, withoutSuffix) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n return create__createDuration({to: this, from: time}).locale(this.locale()).humanize(!withoutSuffix);\n }\n\n function fromNow (withoutSuffix) {\n return this.from(local__createLocal(), withoutSuffix);\n }\n\n function to (time, withoutSuffix) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n return create__createDuration({from: this, to: time}).locale(this.locale()).humanize(!withoutSuffix);\n }\n\n function toNow (withoutSuffix) {\n return this.to(local__createLocal(), withoutSuffix);\n }\n\n function locale (key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = locale_locales__getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n }\n\n var lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n );\n\n function localeData () {\n return this._locale;\n }\n\n function startOf (units) {\n units = normalizeUnits(units);\n // the following switch intentionally omits break keywords\n // to utilize falling through the cases.\n switch (units) {\n case 'year':\n this.month(0);\n /* falls through */\n case 'quarter':\n case 'month':\n this.date(1);\n /* falls through */\n case 'week':\n case 'isoWeek':\n case 'day':\n this.hours(0);\n /* falls through */\n case 'hour':\n this.minutes(0);\n /* falls through */\n case 'minute':\n this.seconds(0);\n /* falls through */\n case 'second':\n this.milliseconds(0);\n }\n\n // weeks are a special case\n if (units === 'week') {\n this.weekday(0);\n }\n if (units === 'isoWeek') {\n this.isoWeekday(1);\n }\n\n // quarters are also special\n if (units === 'quarter') {\n this.month(Math.floor(this.month() / 3) * 3);\n }\n\n return this;\n }\n\n function endOf (units) {\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond') {\n return this;\n }\n return this.startOf(units).add(1, (units === 'isoWeek' ? 'week' : units)).subtract(1, 'ms');\n }\n\n function to_type__valueOf () {\n return +this._d - ((this._offset || 0) * 60000);\n }\n\n function unix () {\n return Math.floor(+this / 1000);\n }\n\n function toDate () {\n return this._offset ? new Date(+this) : this._d;\n }\n\n function toArray () {\n var m = this;\n return [m.year(), m.month(), m.date(), m.hour(), m.minute(), m.second(), m.millisecond()];\n }\n\n function toObject () {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds()\n };\n }\n\n function moment_valid__isValid () {\n return valid__isValid(this);\n }\n\n function parsingFlags () {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt () {\n return getParsingFlags(this).overflow;\n }\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken (token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n // ALIASES\n\n addUnitAlias('weekYear', 'gg');\n addUnitAlias('isoWeekYear', 'GG');\n\n // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n\n addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n });\n\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = utils_hooks__hooks.parseTwoDigitYear(input);\n });\n\n // HELPERS\n\n function weeksInYear(year, dow, doy) {\n return weekOfYear(local__createLocal([year, 11, 31 + dow - doy]), dow, doy).week;\n }\n\n // MOMENTS\n\n function getSetWeekYear (input) {\n var year = weekOfYear(this, this.localeData()._week.dow, this.localeData()._week.doy).year;\n return input == null ? year : this.add((input - year), 'y');\n }\n\n function getSetISOWeekYear (input) {\n var year = weekOfYear(this, 1, 4).year;\n return input == null ? year : this.add((input - year), 'y');\n }\n\n function getISOWeeksInYear () {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getWeeksInYear () {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n addFormatToken('Q', 0, 0, 'quarter');\n\n // ALIASES\n\n addUnitAlias('quarter', 'Q');\n\n // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n // MOMENTS\n\n function getSetQuarter (input) {\n return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3);\n }\n\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // ALIASES\n\n addUnitAlias('date', 'D');\n\n // PARSING\n\n addRegexToken('D', match1to2);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n return isStrict ? locale._ordinalParse : locale._ordinalParseLenient;\n });\n\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0], 10);\n });\n\n // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n addFormatToken('d', 0, 'do', 'day');\n\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday');\n\n // ALIASES\n\n addUnitAlias('day', 'd');\n addUnitAlias('weekday', 'e');\n addUnitAlias('isoWeekday', 'E');\n\n // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', matchWord);\n addRegexToken('ddd', matchWord);\n addRegexToken('dddd', matchWord);\n\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config) {\n var weekday = config._locale.weekdaysParse(input);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n });\n\n // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n // LOCALES\n\n var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_');\n function localeWeekdays (m) {\n return this._weekdays[m.day()];\n }\n\n var defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_');\n function localeWeekdaysShort (m) {\n return this._weekdaysShort[m.day()];\n }\n\n var defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_');\n function localeWeekdaysMin (m) {\n return this._weekdaysMin[m.day()];\n }\n\n function localeWeekdaysParse (weekdayName) {\n var i, mom, regex;\n\n this._weekdaysParse = this._weekdaysParse || [];\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n if (!this._weekdaysParse[i]) {\n mom = local__createLocal([2000, 1]).day(i);\n regex = '^' + this.weekdays(mom, '') + '|^' + this.weekdaysShort(mom, '') + '|^' + this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function getSetDayOfWeek (input) {\n var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek (input) {\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek (input) {\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n return input == null ? this.day() || 7 : this.day(this.day() % 7 ? input : input - 7);\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, function () {\n return this.hours() % 12 || 12;\n });\n\n function meridiem (token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(this.hours(), this.minutes(), lowercase);\n });\n }\n\n meridiem('a', true);\n meridiem('A', false);\n\n // ALIASES\n\n addUnitAlias('hour', 'h');\n\n // PARSING\n\n function matchMeridiem (isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2);\n addRegexToken('h', match1to2);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n\n // LOCALES\n\n function localeIsPM (input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return ((input + '').toLowerCase().charAt(0) === 'p');\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i;\n function localeMeridiem (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n\n // MOMENTS\n\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour he wants. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n var getSetHour = makeGetSet('Hours', true);\n\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n // ALIASES\n\n addUnitAlias('minute', 'm');\n\n // PARSING\n\n addRegexToken('m', match1to2);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n // ALIASES\n\n addUnitAlias('second', 's');\n\n // PARSING\n\n addRegexToken('s', match1to2);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n });\n\n\n // ALIASES\n\n addUnitAlias('millisecond', 'ms');\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n var token;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n // MOMENTS\n\n var getSetMillisecond = makeGetSet('Milliseconds', false);\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName');\n\n // MOMENTS\n\n function getZoneAbbr () {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName () {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var momentPrototype__proto = Moment.prototype;\n\n momentPrototype__proto.add = add_subtract__add;\n momentPrototype__proto.calendar = moment_calendar__calendar;\n momentPrototype__proto.clone = clone;\n momentPrototype__proto.diff = diff;\n momentPrototype__proto.endOf = endOf;\n momentPrototype__proto.format = format;\n momentPrototype__proto.from = from;\n momentPrototype__proto.fromNow = fromNow;\n momentPrototype__proto.to = to;\n momentPrototype__proto.toNow = toNow;\n momentPrototype__proto.get = getSet;\n momentPrototype__proto.invalidAt = invalidAt;\n momentPrototype__proto.isAfter = isAfter;\n momentPrototype__proto.isBefore = isBefore;\n momentPrototype__proto.isBetween = isBetween;\n momentPrototype__proto.isSame = isSame;\n momentPrototype__proto.isValid = moment_valid__isValid;\n momentPrototype__proto.lang = lang;\n momentPrototype__proto.locale = locale;\n momentPrototype__proto.localeData = localeData;\n momentPrototype__proto.max = prototypeMax;\n momentPrototype__proto.min = prototypeMin;\n momentPrototype__proto.parsingFlags = parsingFlags;\n momentPrototype__proto.set = getSet;\n momentPrototype__proto.startOf = startOf;\n momentPrototype__proto.subtract = add_subtract__subtract;\n momentPrototype__proto.toArray = toArray;\n momentPrototype__proto.toObject = toObject;\n momentPrototype__proto.toDate = toDate;\n momentPrototype__proto.toISOString = moment_format__toISOString;\n momentPrototype__proto.toJSON = moment_format__toISOString;\n momentPrototype__proto.toString = toString;\n momentPrototype__proto.unix = unix;\n momentPrototype__proto.valueOf = to_type__valueOf;\n\n // Year\n momentPrototype__proto.year = getSetYear;\n momentPrototype__proto.isLeapYear = getIsLeapYear;\n\n // Week Year\n momentPrototype__proto.weekYear = getSetWeekYear;\n momentPrototype__proto.isoWeekYear = getSetISOWeekYear;\n\n // Quarter\n momentPrototype__proto.quarter = momentPrototype__proto.quarters = getSetQuarter;\n\n // Month\n momentPrototype__proto.month = getSetMonth;\n momentPrototype__proto.daysInMonth = getDaysInMonth;\n\n // Week\n momentPrototype__proto.week = momentPrototype__proto.weeks = getSetWeek;\n momentPrototype__proto.isoWeek = momentPrototype__proto.isoWeeks = getSetISOWeek;\n momentPrototype__proto.weeksInYear = getWeeksInYear;\n momentPrototype__proto.isoWeeksInYear = getISOWeeksInYear;\n\n // Day\n momentPrototype__proto.date = getSetDayOfMonth;\n momentPrototype__proto.day = momentPrototype__proto.days = getSetDayOfWeek;\n momentPrototype__proto.weekday = getSetLocaleDayOfWeek;\n momentPrototype__proto.isoWeekday = getSetISODayOfWeek;\n momentPrototype__proto.dayOfYear = getSetDayOfYear;\n\n // Hour\n momentPrototype__proto.hour = momentPrototype__proto.hours = getSetHour;\n\n // Minute\n momentPrototype__proto.minute = momentPrototype__proto.minutes = getSetMinute;\n\n // Second\n momentPrototype__proto.second = momentPrototype__proto.seconds = getSetSecond;\n\n // Millisecond\n momentPrototype__proto.millisecond = momentPrototype__proto.milliseconds = getSetMillisecond;\n\n // Offset\n momentPrototype__proto.utcOffset = getSetOffset;\n momentPrototype__proto.utc = setOffsetToUTC;\n momentPrototype__proto.local = setOffsetToLocal;\n momentPrototype__proto.parseZone = setOffsetToParsedOffset;\n momentPrototype__proto.hasAlignedHourOffset = hasAlignedHourOffset;\n momentPrototype__proto.isDST = isDaylightSavingTime;\n momentPrototype__proto.isDSTShifted = isDaylightSavingTimeShifted;\n momentPrototype__proto.isLocal = isLocal;\n momentPrototype__proto.isUtcOffset = isUtcOffset;\n momentPrototype__proto.isUtc = isUtc;\n momentPrototype__proto.isUTC = isUtc;\n\n // Timezone\n momentPrototype__proto.zoneAbbr = getZoneAbbr;\n momentPrototype__proto.zoneName = getZoneName;\n\n // Deprecations\n momentPrototype__proto.dates = deprecate('dates accessor is deprecated. Use date instead.', getSetDayOfMonth);\n momentPrototype__proto.months = deprecate('months accessor is deprecated. Use month instead', getSetMonth);\n momentPrototype__proto.years = deprecate('years accessor is deprecated. Use year instead', getSetYear);\n momentPrototype__proto.zone = deprecate('moment().zone is deprecated, use moment().utcOffset instead. https://github.com/moment/moment/issues/1779', getSetZone);\n\n var momentPrototype = momentPrototype__proto;\n\n function moment__createUnix (input) {\n return local__createLocal(input * 1000);\n }\n\n function moment__createInZone () {\n return local__createLocal.apply(null, arguments).parseZone();\n }\n\n var defaultCalendar = {\n sameDay : '[Today at] LT',\n nextDay : '[Tomorrow at] LT',\n nextWeek : 'dddd [at] LT',\n lastDay : '[Yesterday at] LT',\n lastWeek : '[Last] dddd [at] LT',\n sameElse : 'L'\n };\n\n function locale_calendar__calendar (key, mom, now) {\n var output = this._calendar[key];\n return typeof output === 'function' ? output.call(mom, now) : output;\n }\n\n var defaultLongDateFormat = {\n LTS : 'h:mm:ss A',\n LT : 'h:mm A',\n L : 'MM/DD/YYYY',\n LL : 'MMMM D, YYYY',\n LLL : 'MMMM D, YYYY h:mm A',\n LLLL : 'dddd, MMMM D, YYYY h:mm A'\n };\n\n function longDateFormat (key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper.replace(/MMMM|MM|DD|dddd/g, function (val) {\n return val.slice(1);\n });\n\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate () {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d';\n var defaultOrdinalParse = /\\d{1,2}/;\n\n function ordinal (number) {\n return this._ordinal.replace('%d', number);\n }\n\n function preParsePostFormat (string) {\n return string;\n }\n\n var defaultRelativeTime = {\n future : 'in %s',\n past : '%s ago',\n s : 'a few seconds',\n m : 'a minute',\n mm : '%d minutes',\n h : 'an hour',\n hh : '%d hours',\n d : 'a day',\n dd : '%d days',\n M : 'a month',\n MM : '%d months',\n y : 'a year',\n yy : '%d years'\n };\n\n function relative__relativeTime (number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return (typeof output === 'function') ?\n output(number, withoutSuffix, string, isFuture) :\n output.replace(/%d/i, number);\n }\n\n function pastFuture (diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return typeof format === 'function' ? format(output) : format.replace(/%s/i, output);\n }\n\n function locale_set__set (config) {\n var prop, i;\n for (i in config) {\n prop = config[i];\n if (typeof prop === 'function') {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _ordinalParseLenient.\n this._ordinalParseLenient = new RegExp(this._ordinalParse.source + '|' + (/\\d{1,2}/).source);\n }\n\n var prototype__proto = Locale.prototype;\n\n prototype__proto._calendar = defaultCalendar;\n prototype__proto.calendar = locale_calendar__calendar;\n prototype__proto._longDateFormat = defaultLongDateFormat;\n prototype__proto.longDateFormat = longDateFormat;\n prototype__proto._invalidDate = defaultInvalidDate;\n prototype__proto.invalidDate = invalidDate;\n prototype__proto._ordinal = defaultOrdinal;\n prototype__proto.ordinal = ordinal;\n prototype__proto._ordinalParse = defaultOrdinalParse;\n prototype__proto.preparse = preParsePostFormat;\n prototype__proto.postformat = preParsePostFormat;\n prototype__proto._relativeTime = defaultRelativeTime;\n prototype__proto.relativeTime = relative__relativeTime;\n prototype__proto.pastFuture = pastFuture;\n prototype__proto.set = locale_set__set;\n\n // Month\n prototype__proto.months = localeMonths;\n prototype__proto._months = defaultLocaleMonths;\n prototype__proto.monthsShort = localeMonthsShort;\n prototype__proto._monthsShort = defaultLocaleMonthsShort;\n prototype__proto.monthsParse = localeMonthsParse;\n\n // Week\n prototype__proto.week = localeWeek;\n prototype__proto._week = defaultLocaleWeek;\n prototype__proto.firstDayOfYear = localeFirstDayOfYear;\n prototype__proto.firstDayOfWeek = localeFirstDayOfWeek;\n\n // Day of Week\n prototype__proto.weekdays = localeWeekdays;\n prototype__proto._weekdays = defaultLocaleWeekdays;\n prototype__proto.weekdaysMin = localeWeekdaysMin;\n prototype__proto._weekdaysMin = defaultLocaleWeekdaysMin;\n prototype__proto.weekdaysShort = localeWeekdaysShort;\n prototype__proto._weekdaysShort = defaultLocaleWeekdaysShort;\n prototype__proto.weekdaysParse = localeWeekdaysParse;\n\n // Hours\n prototype__proto.isPM = localeIsPM;\n prototype__proto._meridiemParse = defaultLocaleMeridiemParse;\n prototype__proto.meridiem = localeMeridiem;\n\n function lists__get (format, index, field, setter) {\n var locale = locale_locales__getLocale();\n var utc = create_utc__createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function list (format, index, field, count, setter) {\n if (typeof format === 'number') {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return lists__get(format, index, field, setter);\n }\n\n var i;\n var out = [];\n for (i = 0; i < count; i++) {\n out[i] = lists__get(format, i, field, setter);\n }\n return out;\n }\n\n function lists__listMonths (format, index) {\n return list(format, index, 'months', 12, 'month');\n }\n\n function lists__listMonthsShort (format, index) {\n return list(format, index, 'monthsShort', 12, 'month');\n }\n\n function lists__listWeekdays (format, index) {\n return list(format, index, 'weekdays', 7, 'day');\n }\n\n function lists__listWeekdaysShort (format, index) {\n return list(format, index, 'weekdaysShort', 7, 'day');\n }\n\n function lists__listWeekdaysMin (format, index) {\n return list(format, index, 'weekdaysMin', 7, 'day');\n }\n\n locale_locales__getSetGlobalLocale('en', {\n ordinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal : function (number) {\n var b = number % 10,\n output = (toInt(number % 100 / 10) === 1) ? 'th' :\n (b === 1) ? 'st' :\n (b === 2) ? 'nd' :\n (b === 3) ? 'rd' : 'th';\n return number + output;\n }\n });\n\n // Side effect imports\n utils_hooks__hooks.lang = deprecate('moment.lang is deprecated. Use moment.locale instead.', locale_locales__getSetGlobalLocale);\n utils_hooks__hooks.langData = deprecate('moment.langData is deprecated. Use moment.localeData instead.', locale_locales__getLocale);\n\n var mathAbs = Math.abs;\n\n function duration_abs__abs () {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n }\n\n function duration_add_subtract__addSubtract (duration, input, value, direction) {\n var other = create__createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n }\n\n // supports only 2.0-style add(1, 's') or add(duration)\n function duration_add_subtract__add (input, value) {\n return duration_add_subtract__addSubtract(this, input, value, 1);\n }\n\n // supports only 2.0-style subtract(1, 's') or subtract(duration)\n function duration_add_subtract__subtract (input, value) {\n return duration_add_subtract__addSubtract(this, input, value, -1);\n }\n\n function absCeil (number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble () {\n var milliseconds = this._milliseconds;\n var days = this._days;\n var months = this._months;\n var data = this._data;\n var seconds, minutes, hours, years, monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (!((milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0))) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n }\n\n function daysToMonths (days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return days * 4800 / 146097;\n }\n\n function monthsToDays (months) {\n // the reverse of daysToMonths\n return months * 146097 / 4800;\n }\n\n function as (units) {\n var days;\n var months;\n var milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n return units === 'month' ? months : months / 12;\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week' : return days / 7 + milliseconds / 6048e5;\n case 'day' : return days + milliseconds / 864e5;\n case 'hour' : return days * 24 + milliseconds / 36e5;\n case 'minute' : return days * 1440 + milliseconds / 6e4;\n case 'second' : return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond': return Math.floor(days * 864e5) + milliseconds;\n default: throw new Error('Unknown unit ' + units);\n }\n }\n }\n\n // TODO: Use this.as('ms')?\n function duration_as__valueOf () {\n return (\n this._milliseconds +\n this._days * 864e5 +\n (this._months % 12) * 2592e6 +\n toInt(this._months / 12) * 31536e6\n );\n }\n\n function makeAs (alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms');\n var asSeconds = makeAs('s');\n var asMinutes = makeAs('m');\n var asHours = makeAs('h');\n var asDays = makeAs('d');\n var asWeeks = makeAs('w');\n var asMonths = makeAs('M');\n var asYears = makeAs('y');\n\n function duration_get__get (units) {\n units = normalizeUnits(units);\n return this[units + 's']();\n }\n\n function makeGetter(name) {\n return function () {\n return this._data[name];\n };\n }\n\n var milliseconds = makeGetter('milliseconds');\n var seconds = makeGetter('seconds');\n var minutes = makeGetter('minutes');\n var hours = makeGetter('hours');\n var days = makeGetter('days');\n var months = makeGetter('months');\n var years = makeGetter('years');\n\n function weeks () {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round;\n var thresholds = {\n s: 45, // seconds to minute\n m: 45, // minutes to hour\n h: 22, // hours to day\n d: 26, // days to month\n M: 11 // months to year\n };\n\n // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function duration_humanize__relativeTime (posNegDuration, withoutSuffix, locale) {\n var duration = create__createDuration(posNegDuration).abs();\n var seconds = round(duration.as('s'));\n var minutes = round(duration.as('m'));\n var hours = round(duration.as('h'));\n var days = round(duration.as('d'));\n var months = round(duration.as('M'));\n var years = round(duration.as('y'));\n\n var a = seconds < thresholds.s && ['s', seconds] ||\n minutes === 1 && ['m'] ||\n minutes < thresholds.m && ['mm', minutes] ||\n hours === 1 && ['h'] ||\n hours < thresholds.h && ['hh', hours] ||\n days === 1 && ['d'] ||\n days < thresholds.d && ['dd', days] ||\n months === 1 && ['M'] ||\n months < thresholds.M && ['MM', months] ||\n years === 1 && ['y'] || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n }\n\n // This function allows you to set a threshold for relative time strings\n function duration_humanize__getSetRelativeTimeThreshold (threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n return true;\n }\n\n function humanize (withSuffix) {\n var locale = this.localeData();\n var output = duration_humanize__relativeTime(this, !withSuffix, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var iso_string__abs = Math.abs;\n\n function iso_string__toISOString() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n var seconds = iso_string__abs(this._milliseconds) / 1000;\n var days = iso_string__abs(this._days);\n var months = iso_string__abs(this._months);\n var minutes, hours, years;\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n var Y = years;\n var M = months;\n var D = days;\n var h = hours;\n var m = minutes;\n var s = seconds;\n var total = this.asSeconds();\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n return (total < 0 ? '-' : '') +\n 'P' +\n (Y ? Y + 'Y' : '') +\n (M ? M + 'M' : '') +\n (D ? D + 'D' : '') +\n ((h || m || s) ? 'T' : '') +\n (h ? h + 'H' : '') +\n (m ? m + 'M' : '') +\n (s ? s + 'S' : '');\n }\n\n var duration_prototype__proto = Duration.prototype;\n\n duration_prototype__proto.abs = duration_abs__abs;\n duration_prototype__proto.add = duration_add_subtract__add;\n duration_prototype__proto.subtract = duration_add_subtract__subtract;\n duration_prototype__proto.as = as;\n duration_prototype__proto.asMilliseconds = asMilliseconds;\n duration_prototype__proto.asSeconds = asSeconds;\n duration_prototype__proto.asMinutes = asMinutes;\n duration_prototype__proto.asHours = asHours;\n duration_prototype__proto.asDays = asDays;\n duration_prototype__proto.asWeeks = asWeeks;\n duration_prototype__proto.asMonths = asMonths;\n duration_prototype__proto.asYears = asYears;\n duration_prototype__proto.valueOf = duration_as__valueOf;\n duration_prototype__proto._bubble = bubble;\n duration_prototype__proto.get = duration_get__get;\n duration_prototype__proto.milliseconds = milliseconds;\n duration_prototype__proto.seconds = seconds;\n duration_prototype__proto.minutes = minutes;\n duration_prototype__proto.hours = hours;\n duration_prototype__proto.days = days;\n duration_prototype__proto.weeks = weeks;\n duration_prototype__proto.months = months;\n duration_prototype__proto.years = years;\n duration_prototype__proto.humanize = humanize;\n duration_prototype__proto.toISOString = iso_string__toISOString;\n duration_prototype__proto.toString = iso_string__toISOString;\n duration_prototype__proto.toJSON = iso_string__toISOString;\n duration_prototype__proto.locale = locale;\n duration_prototype__proto.localeData = localeData;\n\n // Deprecations\n duration_prototype__proto.toIsoString = deprecate('toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', iso_string__toISOString);\n duration_prototype__proto.lang = lang;\n\n // Side effect imports\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf');\n\n // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input, 10) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n // Side effect imports\n\n\n utils_hooks__hooks.version = '2.10.6';\n\n setHookCallback(local__createLocal);\n\n utils_hooks__hooks.fn = momentPrototype;\n utils_hooks__hooks.min = min;\n utils_hooks__hooks.max = max;\n utils_hooks__hooks.utc = create_utc__createUTC;\n utils_hooks__hooks.unix = moment__createUnix;\n utils_hooks__hooks.months = lists__listMonths;\n utils_hooks__hooks.isDate = isDate;\n utils_hooks__hooks.locale = locale_locales__getSetGlobalLocale;\n utils_hooks__hooks.invalid = valid__createInvalid;\n utils_hooks__hooks.duration = create__createDuration;\n utils_hooks__hooks.isMoment = isMoment;\n utils_hooks__hooks.weekdays = lists__listWeekdays;\n utils_hooks__hooks.parseZone = moment__createInZone;\n utils_hooks__hooks.localeData = locale_locales__getLocale;\n utils_hooks__hooks.isDuration = isDuration;\n utils_hooks__hooks.monthsShort = lists__listMonthsShort;\n utils_hooks__hooks.weekdaysMin = lists__listWeekdaysMin;\n utils_hooks__hooks.defineLocale = defineLocale;\n utils_hooks__hooks.weekdaysShort = lists__listWeekdaysShort;\n utils_hooks__hooks.normalizeUnits = normalizeUnits;\n utils_hooks__hooks.relativeTimeThreshold = duration_humanize__getSetRelativeTimeThreshold;\n\n var _moment = utils_hooks__hooks;\n\n return _moment;\n\n}));","// moment.js makes `moment` global on the window (or global) object, while Meteor expects a file-scoped global variable\nmoment = this.moment;\ntry {\n delete this.moment;\n} catch (e) {\n}\n"]}