@tubular/time
Version:
Date/time, IANA timezones, leap seconds, TAI/UTC conversions, calendar with settable Julian/Gregorian switchover
113 lines • 657 kB
JavaScript
import{floor as M,div_rd as c,div_tt0 as z,mod as b,mod2 as o,round as e,abs as A,min as p,max as a,ceil as O,sign as i}from"@tubular/math";import{toNumber as n,isNumber as t,convertDigitsToAscii as r,padLeft as q,isString as d,isObject as s,isArray as l,last as L,clone as W,isEqual as u,compareStrings as N,forEach as f,flatten as T,isBoolean as B}from"@tubular/util"
;const m=-271820,X=275759,R=6e4,h=36e5,E=864e5,S=86400,g=1440,C=2440587.5,D=2451545,y=32.184/S,k=2400000.5,w=["BC","AD","Before Christ","Anno Domini"],P=["January","February","March","April","May","June","July","August","September","October","November","December"],I=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],_=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],U=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],v=["Su","Mo","Tu","We","Th","Fr","Sa"];let G
;let F
;const j=[["y","year"],["q","quarter"],["m","month"],["d","day"],["dow","dayOfWeek"],["dowmi","dayOfWeekMonthIndex"],["dy","dayOfYear"],["n","epochDay"],["j","isJulian"],["yw","yearByWeek"],["w","week"],["dw","dayByWeek"],["ywl","yearByWeekLocale"],["wl","weekLocale"],["dwl","dayByWeekLocale"],["hrs","hour"],["min","minute"],["sec","second"]],H=["y","q","m","d","dow","dowmi","dy","n","j","year","quarter","month","day","dayOfWeek","dayOfWeekMonthIndex","dayOfYear","epochDay","isJulian","yw","w","dw","yearByWeek","week","dayByWeek","ywl","wl","dwl","yearByWeekLocale","weekLocale","dayByWeekLocale","hrs","min","sec","hour","minute","second","millis","utcOffset","dstOffset","occurrence","deltaTai","jde","mjde","jdu","mjdu","error"]
;function K(M){for(const[c,z]of j)M.hasOwnProperty(c)?M[z]=M[c]:M.hasOwnProperty(z)&&(M[c]=M[z]);return M}function V(M,c=!1){for(const[z,b]of j)delete M[c?z:b];return M}const x=new Set(["y","year","m","month","d","day","hrs","hour","min","minute","sec","second","millis"]);const Y=new Error("Invalid ISO date/time");function J(c,z=!1){var b,o,e,A,p,a,O,i,t,r,q,d,s,l;let L;c=c.trim();let W=/^([-+]?\d+)-(\d{1,2}(?=\D|$))(?:-(\d{1,2}))?/.exec(c)
;if(W||(W=/^([-+]?\d{1,5}(?=[^-+:.Ww\d]|$))/.exec(c))||(W=/^([-+]?\d{4,})(\d\d)(\d\d)/.exec(c))?L={y:n(W[1]),m:Number(null!==(b=W[2])&&void 0!==b?b:1),d:Number(null!==(o=W[3])&&void 0!==o?o:1)}:(W=/^([-+]?\d+)-(W)(\d+)(?:-(\d))?/i.exec(c))||(W=/^([-+]?\d{4,})(W)(\d\d)(\d)?/i.exec(c))?L="W"===W[2]?{yw:n(W[1]),w:Number(W[3]),dw:Number(null!==(e=W[4])&&void 0!==e?e:1)}:{ywl:n(W[1]),wl:Number(W[3]),dwl:Number(null!==(A=W[4])&&void 0!==A?A:1)}:(W=/^(\d+)-(\d+)/.exec(c))||(W=/^(\d{4})(\d{3})/.exec(c))?L={
y:n(W[1]),dy:Number(W[2])}:(W=[""],L={}),(c=c.substr(W[0].length).trim().replace(/^T\s*/i,""))?((W=/^(\d{1,2})(?::(\d{1,2}))(?::(?:(\d{1,2})(?:[.,](\d+))?))?(?=\D|$)/.exec(c))||(W=/^(\d\d)(?:(\d\d)(?:(\d\d)(?:[.,](\d+))?)?)?(?=\D|$)/.exec(c)))&&(Object.assign(L,{hrs:Number(W[1]),min:Number(null!==(p=W[2])&&void 0!==p?p:0),sec:Number(null!==(a=W[3])&&void 0!==a?a:0),millis:Number((null!==(O=W[4])&&void 0!==O?O:"0").padEnd(3,"0").substr(0,3))}),null==W[4]&&0===L.millis&&delete L.millis,
c=c.substr(W[0].length).trim()):Object.assign(L,{hrs:0,min:0,sec:0}),W=/^([-+]\d\d(\d{4}|\d\d|:\d\d(:\d\d)?)?)$/i.exec(c),W)L.utcOffset=Q(W[1]);else if(c)throw Y;const u=null!==(r=null!==(t=null!==(i=L.y)&&void 0!==i?i:L.yw)&&void 0!==t?t:L.ywl)&&void 0!==r?r:0,N=null!==(q=L.m)&&void 0!==q?q:1,f=null!==(s=null!==(d=L.w)&&void 0!==d?d:L.wl)&&void 0!==s?s:1,T=null!==(l=L.d)&&void 0!==l?l:1;if(u<m||u>X)throw new Error(`Invalid year: ${u}`);if(N>13)throw new Error(`Invalid month: ${N}`)
;if(f>53)throw new Error(`Invalid week: ${f}`);if(T>32)throw new Error(`Invalid day of month: ${T}`);if(L.hrs>23)throw new Error(`Invalid hour: ${L.hrs}`);if(L.min>59)throw new Error(`Invalid minute: ${L.min}`);if(L.sec>+z+59)throw new Error(`Invalid second: ${L.sec}`);if(L.utcOffset&&(L.utcOffset<-57600||L.utcOffset>57600))throw new Error(`Invalid UTC offset: ${W[1]}`);return null!=L.m&&(L.q=M((L.m-1)/3)+1),K(L)}function Q(M,c=!1){var z;let b=1;M.startsWith("-")?(b=-1,
M=M.substr(1)):M.startsWith("+")&&(M=M.substr(1));const o=M.includes(":")?M.split(":"):M.match(/../g);let e=60*(60*Number(o[0])+Number(null!==(z=o[1])&&void 0!==z?z:0));if(o[2]){const M=Number(o[2]);e+=c?M<30?0:60:M}return b*e}function Z(M,c,z){const b=M instanceof Intl.DateTimeFormat?M.formatToParts(c):M;z=null!=z?z:c;const o=b.find((M=>M.type===z));return o?o.value:"???"}function $(M,c,z){return n(r(Z(M,c,z)))}var MM;!function(M){M[M.PURE_GREGORIAN=0]="PURE_GREGORIAN",M[M.PURE_JULIAN=1]="PURE_JULIAN"
}(MM||(MM={}));const cM=300,zM=3900,bM=0,oM=1,eM=2,AM=3,pM=4,aM=5,OM=6;var iM,nM;!function(M){M[M.SUNDAY=0]="SUNDAY",M[M.MONDAY=1]="MONDAY",M[M.TUESDAY=2]="TUESDAY",M[M.WEDNESDAY=3]="WEDNESDAY",M[M.THURSDAY=4]="THURSDAY",M[M.FRIDAY=5]="FRIDAY",M[M.SATURDAY=6]="SATURDAY"}(iM||(iM={})),function(M){M[M.JANUARY=1]="JANUARY",M[M.FEBRUARY=2]="FEBRUARY",M[M.MARCH=3]="MARCH",M[M.APRIL=4]="APRIL",M[M.MAY=5]="MAY",M[M.JUNE=6]="JUNE",M[M.JULY=7]="JULY",M[M.AUGUST=8]="AUGUST",M[M.SEPTEMBER=9]="SEPTEMBER",
M[M.OCTOBER=10]="OCTOBER",M[M.NOVEMBER=11]="NOVEMBER",M[M.DECEMBER=12]="DECEMBER"}(nM||(nM={}));const tM=6,rM=-9999999,qM=9999999,dM=-141427;const sM=new Error("This DateTime instance is locked and immutable");function lM(M,c,z,b,o=!1){let e,A,p,a;if(t(M))p=M;else{if(l(M)&&M.length>=3&&t(M[0]))return M;s(M)&&(K(M),e=M.n,A=o?void 0:M.j,p=M.y,a=M.dy,c=M.m,z=M.d)}if(null==p){if(null!=e){if("g"===b||!1===A)return lM(wM(e));if("j"===b||!0===A)return lM(PM(e));if(b){++b.computeWeekValues
;const M=lM(b.getDateFromDayNumber(e));return--b.computeWeekValues,M}return lM(kM(e))}throw new Error("Calendar: Invalid date arguments")}if(null==c&&null==z&&null!=a){if("g"===b||!1===A)return lM(wM(uM(p,1,0)+a));if("j"===b||!0===A)return lM(PM(NM(p,1,0)+a));if(b){++b.computeWeekValues;const M=lM(b.getDateFromDayNumber(b.getDayNumber(p,1,0)+a));return--b.computeWeekValues,M}return lM(kM(WM(p,1,0)+a))}return[p,c=null!=c?c:1,z=null!=z?z:1,null==A?-1:+A]}function LM(M,c,z){let b,o;return[b,c,z,o]=lM(M,c,z),
1===o||b<1582||1582===b&&(c<10||10===c&&z<15)}function WM(M,c,z){let b,o;for([b,c,z,o]=lM(M,c,z);c<1;)c+=12,--b;for(;c>12;)c-=12,++b;return 1===o||0!==o&&LM(b,c,z)?NM(b,c,z):uM(b,c,z)}function uM(M,b,o){let e;for([e,b,o]=lM(M,b,o,"g");b<1;)b+=12,--e;for(;b>12;)b-=12,++e;return 367*e-c(7*(e+z(b+9,12)),4)-z(3*(z(e+z(b-9,7),100)+1),4)+z(275*b,9)+o-719559}function NM(M,b,o){let e;for([e,b,o]=lM(M,b,o,"j");b<1;)b+=12,--e;for(;b>12;)b-=12,++e;return 367*e-c(7*(e+z(b+9,12)),4)+z(275*b,9)+o-719561}
function fM(M,c){return 1}function TM(M,c){return 9===c||4===c||6===c||11===c?30:2!==c?31:M%4==0&&(M<1583||M%100!=0||M%400==0)?29:28}function BM(M,c){return 9===c||4===c||6===c||11===c?30:2!==c?31:M%4!=0||M%100==0&&M%400!=0?28:29}function mM(M,c){return 9===c||4===c||6===c||11===c?30:2!==c?31:M%4==0?29:28}function XM(M,c){return 1582===M&&10===c?21:9===c||4===c||6===c||11===c?30:2!==c?31:WM(M,3,1)-WM(M,2,1)}function RM(M){return WM(M+1,1,1)-WM(M,1,1)}function hM(M){return b(M+4,7)}function EM(M,c,z){
return t(M)&&null==c?b(M+4,7):hM(WM(M,c,z))}function SM(M,c,z,o){const e=o>=tM;let A=WM(M,c,1);const p=hM(A);let a,O=0;if(p===z&&1===o)return 1;for(A+=b(z-p,7),a=kM(A);a.m===c;){if(O=a.d,0==--o)return O;A+=7,a=kM(A)}return e?O:0}function gM(M,c,b){const o=WM(M,c,SM(M,c,b,1)),e=WM(M,c+1,1);return z(e-o-1,7)+1}function CM(M,c,z,o){const e=WM(M,c,o),A=hM(e),p=b(z-A,7);if(1582===M&&10===c){const z=kM(e+p);o=z.y!==M||z.m!==c?0:z.d}else(o+=p)>TM(M,c)&&(o=0);return o}function DM(M,c,z,o){
const e=WM(M,c,o),A=hM(e),p=b(A-z,7);if(1582===M&&10===c){const z=kM(e-p);o=z.y!==M||z.m!==c?0:z.d}else(o-=p)<0&&(o=0);return o}function yM(M,c,z,b){return kM(WM(c,z,b)+M)}function kM(M){return M>=dM?wM(M):PM(M)}function wM(M){let c,z,b,o,e;for(c=Math.floor((M+719528)/365.2425);M<uM(c,1,1);)--c;for(;M>=uM(c+1,1,1);)++c;for(b=o=M-uM(c,1,1)+1,z=1;b>(e=BM(c,z));++z)b-=e;return K({y:c,m:z,d:b,dy:o,n:M,j:!1})}function PM(M){let c,z,b,o;for(c=Math.floor((M+719530)/365.25);M<NM(c,1,1);)--c
;for(;M>=NM(c+1,1,1);)++c;for(b=M-NM(c,1,1)+1,z=1;b>(o=mM(c,z));++z)b-=o;return K({y:c,m:z,d:b,n:M,j:!0})}function IM(M,c,z,b,o,e,A){return(A=A||0)+1e3*(e=e||0)+o*R+b*h+WM(M,c,z)*E}function _M(M){const z=kM(c(M,E));return z.millis=b(M,1e3),M=c(M,1e3),z.sec=b(M,60),M=c(M,60),z.min=b(M,60),M=c(M,60),z.hrs=b(M,24),z.utcOffset=0,z.dstOffset=0,z.occurrence=1,K(z)}function UM(M,c,z){const[b,o,e,A]=lM(M,c,z);let p;const a=WM({y:b,m:o,d:e,j:A<0?null:!!A});return p=A<0?kM(a):0===A?wM(a):PM(a),
b===p.y&&o===p.m&&e===p.d}function vM(M,c,z){let b;[b,c,z]=lM(M,c,z,"g");const o=wM(uM(b,c,z));return b===o.y&&c===o.m&&z===o.d}function GM(M,c,z){let b;[b,c,z]=lM(M,c,z,"j");const o=PM(NM(b,c,z));return b===o.y&&c===o.m&&z===o.d}function FM(M,c,z){let b;[b,c,z]=lM(M,c,z);return(b<0?"-":"")+q(Math.abs(b),4,"0")+"-"+q(c,2,"0")+"-"+q(z,2,"0")}function jM(M){var c,z;let b=1;(M=M.trim()).startsWith("-")&&(b=-1,M=M.substring(1).trim());let o=/^(\d+)-(\d{1,2}(?=\D))(?:-(\d+))?$/.exec(M)
;if(o||(o=/^(\d{1,5})$/.exec(M)),o||(o=/^(\d{4,})(\d\d)(\d\d)$/.exec(M)),!o)throw new Error("Invalid ISO date");return K({y:Number(o[1])*b,m:Number(null!==(c=o[2])&&void 0!==c?c:1),d:Number(null!==(z=o[3])&&void 0!==z?z:1)})}class HM{constructor(M,c,z){this.gcYear=1582,this.gcMonth=10,this.gcDate=15,this.firstGregorianDay=dM,this.firstDateInGCChangeMonth=1,this.lengthOfGCChangeMonth=21,this.lastJulianYear=Number.MIN_SAFE_INTEGER,this.lastJulianMonth=Number.MIN_SAFE_INTEGER,this.lastJulianDate=4,
this._locked=!1,this.lock=()=>this._lock(),this.computeWeekValues=0,M===MM.PURE_GREGORIAN?this.setGregorianChange(rM,0,0):M===MM.PURE_JULIAN?this.setGregorianChange(qM,0,0):0===arguments.length||null==M?this.setGregorianChange(1582,10,15):this.setGregorianChange(M,c,z)}_lock(M=!0){return this._locked=this._locked||M,this}get locked(){return this._locked}setPureGregorian(M){if(this.locked)throw sM;return M?this.setGregorianChange(rM,0,0):this.setGregorianChange(1582,10,15),this}isPureGregorian(){
return this.gcYear<=rM}setPureJulian(M){if(this.locked)throw sM;return M?this.setGregorianChange(qM,0,0):this.setGregorianChange(1582,10,15),this}isPureJulian(){return this.gcYear>=qM}setGregorianChange(M,c,z){if(this.locked)throw sM;if("g"===M||"G"===M)return this.setPureGregorian(!0),this;if("j"===M||"J"===M)return this.setPureJulian(!0),this;if(d(M))M=jM(M);else if(s(M)&&!l(M)&&(null==M.y||null==M.m||null==M.d||M.j))throw new Error("Gregorian change date must be an explicit non-Julian y-m-d date");let b
;if([b,c,z]=lM(M,c,z,this),b<300){if((0!==c||0!==z)&&b>rM)throw new Error("Calendar: Gregorian change year cannot be less than 300");this.firstGregorianDay=Number.MIN_SAFE_INTEGER,this.gcYear=rM}else if(b>zM){if((0!==c||0!==z)&&b<qM)throw new Error("Calendar: Gregorian change year cannot be greater than "+zM);this.firstGregorianDay=Number.MAX_SAFE_INTEGER,this.gcYear=qM}else if(!vM(b,c,z))throw new Error("Calendar: Invalid Gregorian date: "+FM(b,c,z));this.gcYear=b,this.gcMonth=c,this.gcDate=z,
this.firstGregorianDay=uM(b,c,z);const o=PM(this.firstGregorianDay-1);return this.lastJulianDate=o.d,this.lengthOfGCChangeMonth=BM(b,c),o.y===b&&o.m===c?(this.lastJulianYear=Number.MIN_SAFE_INTEGER,this.lastJulianMonth=Number.MIN_SAFE_INTEGER,this.firstDateInGCChangeMonth=1,this.lengthOfGCChangeMonth-=z-this.lastJulianDate-1):(this.lastJulianYear=o.y,this.lastJulianMonth=o.m,this.firstDateInGCChangeMonth=z,this.lengthOfGCChangeMonth-=z-1),this}getGregorianChange(){return K({y:this.gcYear,m:this.gcMonth,
d:this.gcDate,n:this.firstGregorianDay,j:!1})}isJulianCalendarDate(M,c,z){let b,o;return[b,c,z,o]=lM(M,c,z,this),1===o||b<this.gcYear||b===this.gcYear&&(c<this.gcMonth||c===this.gcMonth&&z<this.gcDate)}getDayNumber(M,c,z){var b,o,e;if(s(M)&&!l(M))if(K(M),null!=M.y||null==M.yw&&null==M.ywl)null!=M.y&&null==M.m&&null!=M.dy&&(M=this.addDaysToDate(M.dy-1,{y:M.y,m:1,d:1}));else{
const A=null!=M.ywl,p=null!==(b=M.ywl)&&void 0!==b?b:M.yw,a=A&&null!=c?c:1,O=A&&null!=z?z:4,i=null!==(o=A?M.wl:M.w)&&void 0!==o?o:1,n=null!==(e=A?M.dwl:M.dw)&&void 0!==e?e:1;++this.computeWeekValues;const t=this.getStartDateOfFirstWeekOfYear(p,a,O).n+7*(i-1)+n-1;M=this.getDateFromDayNumber(t),--this.computeWeekValues}let A,p;for([A,c,z,p]=lM(M,c,z,this);c<1;)c+=12,--A;for(;c>12;)c-=12,++A
;return p<0&&(A===this.lastJulianYear&&c===this.lastJulianMonth?z>this.lastJulianDate&&(z=this.lastJulianDate):A===this.gcYear&&c===this.gcMonth&&(z>this.lastJulianDate||this.lastJulianMonth!==this.gcMonth&&this.lastJulianMonth>0)&&z<this.gcDate&&(z=this.gcDate)),1===p||0!==p&&this.isJulianCalendarDate(A,c,z)?NM(A,c,z):uM(A,c,z)}getDateFromDayNumber(M,c,z){let b;return b=M>=this.firstGregorianDay?wM(M):PM(M),0===this.computeWeekValues&&([b.yw,b.w,b.dw]=this.getYearWeekAndWeekday(b,c,z)),K(b)}
getFirstDateInMonth(M,c){return M===this.gcYear&&c===this.gcMonth?this.firstDateInGCChangeMonth:1}getLastDateInMonth(M,c){return 0===c?(c=12,--M):13===c&&(c=1,++M),M===this.lastJulianYear&&c===this.lastJulianMonth?this.lastJulianDate:9===c||4===c||6===c||11===c?30:2!==c?31:M%4==0&&(M<this.gcYear||M===this.gcYear&&this.gcMonth>2||M%100!=0||M%400==0)?29:28}getDaysInMonth(M,c){return 0===c?(c=12,--M):13===c&&(c=1,++M),
M===this.gcYear&&c===this.gcMonth?this.lengthOfGCChangeMonth:M===this.lastJulianYear&&c===this.lastJulianMonth?this.lastJulianDate:9===c||4===c||6===c||11===c?30:2!==c?31:this.getDayNumber(M,3,1)-this.getDayNumber(M,2,1)}getDaysInYear(M){return this.getDayNumber(M+1,1,1)-this.getDayNumber(M,1,1)}getDayOfWeek(M,c,z){return t(M)&&null==c?hM(M):hM(this.getDayNumber(M,c,z))}getDateOfNthWeekdayOfMonth(M,c,z,o){const e=o>=tM;let A=this.getDayNumber(M,c,1);const p=hM(A);let a,O=0;if(p===z&&1===o)return 1
;for(A+=b(z-p,7),a=this.getDateFromDayNumber(A);a.m===c;){if(O=a.d,0==--o)return O;A+=7,a=this.getDateFromDayNumber(A)}return e?O:0}getDayOfWeekInMonthCount(M,c,b){const o=this.getDayNumber(M,c,this.getDateOfNthWeekdayOfMonth(M,c,b,1)),e=this.getDayNumber(M,c+1,1);return z(e-o-1,7)+1}getDayOfWeekInMonthIndex(M,z,b){let o;[o,z,b]=lM(M,z,b,this);const e=this.getDayNumber(o,z,1),A=this.getDayNumber(o,z,b);return c(A-e,7)+1}getDayOnOrAfter(M,c,z,o){const e=this.getDayNumber(M,c,o),A=hM(e),p=b(z-A,7)
;if(M===this.gcYear&&c===this.gcDate){const z=this.getDateFromDayNumber(e+p);o=z.y!==M||z.m!==c?0:z.d}else(o+=p)>this.getLastDateInMonth(M,c)&&(o=0);return o}getDayOnOrBefore(M,c,z,o){const e=this.getDayNumber(M,c,o),A=hM(e),p=b(A-z,7);if(M===this.gcYear&&c===this.gcDate){const z=this.getDateFromDayNumber(e-p);o=z.y!==M||z.m!==c?0:z.d}else(o-=p)<0&&(o=0);return o}addDaysToDate(M,c,z,b){return this.getDateFromDayNumber(this.getDayNumber(c,z,b)+M)}getCalendarMonth(M,c,z){z=null!=z?z:0;const o=[]
;let e,A,p,a=this.getDayNumber(M,c,this.getFirstDateInMonth(M,c));e=b(z-hM(a),-7),a+=e,A=this.getDateFromDayNumber(a,z);do{o.push(A),++a,++e,A=this.getDateFromDayNumber(a),p=A.m}while(e<1||p===c||hM(a)!==z);return o}isValidDate(M,c,z){let b;[b,c,z]=lM(M,c,z,this,!0);const o=this.getDateFromDayNumber(this.getDayNumber(b,c,z));return b===o.y&&c===o.m&&z===o.d}normalizeDate(M,c,z){let b;if([b,c,z]=lM(M,c,z,this,!0),c<1?(c+=12,b-=1):c>12&&(c-=12,b+=1),!this.isValidDate(b,c,z)){let M
;if(z<(M=this.getFirstDateInMonth(b,c)))z=M;else if(z>(M=this.getLastDateInMonth(b,c)))z=M;else{const o=this.getMissingDateRange(b,c);z=null!=o?o[1]+1:M}}return K({y:b,m:c,d:z})}getMissingDateRange(M,c){if(M===this.lastJulianYear&&c===this.lastJulianMonth){const z=mM(M,c);if(z>this.lastJulianDate)return[this.lastJulianDate+1,z]}else if(M===this.gcYear&&c===this.gcMonth&&this.gcDate>1&&this.gcDate>this.lastJulianDate+1)return[this.lastJulianDate+1,this.gcDate-1];return null}
getStartDateOfFirstWeekOfYear(M,c=1,z=4){let o=1;7===z&&(++o,--z);const e=b(this.getDayOfWeek(M,1,o)-c,7);return this.addDaysToDate((e>7-z?7:0)-e,M,1,o)}getWeeksInYear(M,c=1,z=4){const b=this.getStartDateOfFirstWeekOfYear(M,c,z);return(this.getStartDateOfFirstWeekOfYear(M+1,c,z).n-b.n)/7}getYearWeekAndWeekday(c,z,o,e,A){const[p,a,O]=lM(c,z,o,this,!0);s(c)&&(e=z,A=o),e=null!=e?e:1,A=null!=A?A:4,++this.computeWeekValues;let i=p,n=this.getStartDateOfFirstWeekOfYear(p,e,A)
;const t=this.getStartDateOfFirstWeekOfYear(p+1,e,A),r=this.getDayNumber(p,a,O);return n.n>r?(n=this.getStartDateOfFirstWeekOfYear(p-1,e,A),--i):t.n<=r&&(n=t,++i),--this.computeWeekValues,[i,M((r-n.n)/7)+1,b(r-n.n,7)+1]}}var KM,VM=Intl.DateTimeFormat;let xM=!1,YM=!0,JM="en";try{if(xM="undefined"!=typeof Intl&&!!(null===Intl||void 0===Intl?void 0:Intl.DateTimeFormat),xM){const M=new VM("en-us",{dateStyle:"full"}).format(0);YM=M!==new VM("en-us",{dateStyle:"short"}).format(0),
YM||console.warn("Intl.DateTimeFormatOptions dateStyle and timeStyle not available")}else console.warn("Intl.DateTimeFormat not available")}catch(M){xM=!1,console.warn("Intl.DateTimeFormat not available: %s",M.message||M.toString())}try{xM?JM=(new Intl.DateTimeFormat).resolvedOptions().locale:"object"==typeof process&&(null===(KM=process.env)||void 0===KM?void 0:KM.LANG)?JM=process.env.LANG.replace(/\..*$/,"").replace(/_/g,"-"):"object"==typeof navigator&&navigator.language&&(JM=navigator.language)
}catch(M){JM="en"}const QM=xM,ZM=YM,$M=JM,Mc={full:{year:"numeric",month:"long",day:"numeric",weekday:"long"},long:{year:"numeric",month:"long",day:"numeric"},medium:{year:"numeric",month:"short",day:"numeric"},short:{year:"2-digit",month:"numeric",day:"numeric"}},cc={full:{hour:"numeric",minute:"2-digit",second:"2-digit",timeZoneName:"long"},long:{hour:"numeric",minute:"2-digit",second:"2-digit",timeZoneName:"short"},medium:{hour:"numeric",minute:"2-digit",second:"2-digit"},short:{hour:"numeric",
minute:"2-digit"}};function zc(M,c){Object.keys(c).forEach((z=>{var b;return M[z]=null!==(b=M[z])&&void 0!==b?b:c[z]}))}function bc(M){return QM&&M?(d(M)&&M.includes(",")&&(M=M.split(",").map((M=>M.trim().replace(/-u-.*$/,"")))),l(M)?0===M.length?"en":1===M.length?bc(M[0]):M.map((M=>bc(M))):M.replace(/_/g,"-").toLowerCase()):"en-us"}function oc(M){return M.replace(/-[^-]*?$/i,"")}function ec(M,c){let z;M=bc(M),l(M)||(M=[M]);for(let b of M){let M;do{z=c[b],M=oc(b)}while(!z&&b.includes("-")&&(b=M))
;if(z)break}return z}
Object.freeze(["af","ar","ar-dz","ar-kw","ar-ly","ar-ma","ar-sa","ar-tn","az","be","bg","bm","bn","bn-bd","bo","br","bs","ca","cs","cy","da","de","de-at","de-ch","el","en","en-au","en-ca","en-gb","en-ie","en-il","en-in","en-nz","en-sg","eo","es","es-do","es-mx","es-us","et","eu","fa","fi","fil","fo","fr","fr-ca","fr-ch","fy","ga","gd","gl","gu","hi","hr","hu","hy-am","is","it","it-ch","ja","jv","ka","kk","km","kn","ko","ku","ky","lb","lo","lt","lv","mi","mk","ml","mn","mr","ms","ms-my","mt","my","nb","ne","nl","nl-be","nn","pl","pt","pt-br","ro","ru","sd","se","si","sk","sl","sq","sr","sv","sw","ta","te","tg","th","tk","tr","tzm","ug-cn","uk","ur","uz","vi","yo","zh-cn","zh-hk","zh-tw"])
;const Ac={af:[["vm","VM"],["nm","NM"]],ar:[["ص"],["م"]],az:[["gecə"],["gecə"],["gecə"],["gecə"],["səhər"],["səhər"],["səhər"],["səhər"],["səhər"],["səhər"],["səhər"],["səhər"],["gündüz"],["gündüz"],["gündüz"],["gündüz"],["gündüz"],["axşam"],["axşam"],["axşam"],["axşam"],["axşam"],["axşam"],["axşam"]],
be:[["ночы"],["ночы"],["ночы"],["ночы"],["раніцы"],["раніцы"],["раніцы"],["раніцы"],["раніцы"],["раніцы"],["раніцы"],["раніцы"],["дня"],["дня"],["дня"],["дня"],["дня"],["вечара"],["вечара"],["вечара"],["вечара"],["вечара"],["вечара"],["вечара"]],bn:[["রাত"],["রাত"],["রাত"],["রাত"],["সকাল"],["সকাল"],["সকাল"],["সকাল"],["সকাল"],["সকাল"],["দুপুর"],["দুপুর"],["দুপুর"],["দুপুর"],["দুপুর"],["দুপুর"],["দুপুর"],["বিকাল"],["বিকাল"],["বিকাল"],["রাত"],["রাত"],["রাত"],["রাত"]],
"bn-bd":[["রাত"],["রাত"],["রাত"],["রাত"],["ভোর"],["ভোর"],["সকাল"],["সকাল"],["সকাল"],["সকাল"],["সকাল"],["সকাল"],["দুপুর"],["দুপুর"],["দুপুর"],["বিকাল"],["বিকাল"],["বিকাল"],["সন্ধ্যা"],["সন্ধ্যা"],["রাত"],["রাত"],["রাত"],["রাত"]],
bo:[["སྔ་དྲོ","མཚན་མོ"],["སྔ་དྲོ","མཚན་མོ"],["སྔ་དྲོ","མཚན་མོ"],["སྔ་དྲོ","མཚན་མོ"],["སྔ་དྲོ","ཞོགས་ཀས"],["སྔ་དྲོ","ཞོགས་ཀས"],["སྔ་དྲོ","ཞོགས་ཀས"],["སྔ་དྲོ","ཞོགས་ཀས"],["སྔ་དྲོ","ཞོགས་ཀས"],["སྔ་དྲོ","ཞོགས་ཀས"],["སྔ་དྲོ","ཉིན་གུང"],["སྔ་དྲོ","ཉིན་གུང"],["ཕྱི་དྲོ","ཉིན་གུང"],["ཕྱི་དྲོ","ཉིན་གུང"],["ཕྱི་དྲོ","ཉིན་གུང"],["ཕྱི་དྲོ","ཉིན་གུང"],["ཕྱི་དྲོ","ཉིན་གུང"],["ཕྱི་དྲོ","དགོང་དག"],["ཕྱི་དྲོ","དགོང་དག"],["ཕྱི་དྲོ","དགོང་དག"],["ཕྱི་དྲོ","མཚན་མོ"],["ཕྱི་དྲོ","མཚན་མོ"],["ཕྱི་དྲོ","མཚན་མོ"],["ཕྱི་དྲོ","མཚན་མོ"]],
br:[["a.m.","A.M."],["g.m.","G.M."]],el:[["πμ","ΠΜ","π.μ."],["μμ","ΜΜ","μ.μ."]],eo:[["atm","ATM","a.t.m.","A.T.M."],["ptm","PTM","p.t.m.","P.T.M."]],fa:[["قبل از ظهر"],["بعد از ظهر"]],gu:[["રાત"],["રાત"],["રાત"],["રાત"],["સવાર"],["સવાર"],["સવાર"],["સવાર"],["સવાર"],["સવાર"],["બપોર"],["બપોર"],["બપોર"],["બપોર"],["બપોર"],["બપોર"],["બપોર"],["સાંજ"],["સાંજ"],["સાંજ"],["રાત"],["રાત"],["રાત"],["રાત"]],he:[["לפ׳","לפ׳","לפנה״צ"],["אח׳","אח׳","אחה״צ"]],
hi:[["पू","रात"],["पू","रात"],["पू","रात"],["पू","रात"],["पू","सुबह"],["पू","सुबह"],["पू","सुबह"],["पू","सुबह"],["पू","सुबह"],["पू","सुबह"],["पू","दोपहर"],["पू","दोपहर"],["अ","दोपहर"],["अ","दोपहर"],["अ","दोपहर"],["अ","दोपहर"],["अ","दोपहर"],["अ","शाम"],["अ","शाम"],["अ","शाम"],["अ","रात"],["अ","रात"],["अ","रात"],["अ","रात"]],hu:[["de","DE","de."],["du","DU","du."]],
hy:[["գիշերվա"],["գիշերվա"],["գիշերվա"],["գիշերվա"],["առավոտվա"],["առավոտվա"],["առավոտվա"],["առավոտվա"],["առավոտվա"],["առավոտվա"],["առավոտվա"],["առավոտվա"],["ցերեկվա"],["ցերեկվա"],["ցերեկվա"],["ցերեկվա"],["ցերեկվա"],["երեկոյան"],["երեկոյան"],["երեկոյան"],["երեկոյան"],["երեկոյան"],["երեկոյան"],["երեկոյան"]],ja:[["午前"],["午後"]],
jv:[["isuk","Isuk","enjing"],["isuk","Isuk","enjing"],["isuk","Isuk","enjing"],["isuk","Isuk","enjing"],["isuk","Isuk","enjing"],["isuk","Isuk","enjing"],["isuk","Isuk","enjing"],["isuk","Isuk","enjing"],["isuk","Isuk","enjing"],["isuk","Isuk","enjing"],["isuk","Isuk","enjing"],["isuk","Isuk","siyang"],["wengi","Wengi","siyang"],["wengi","Wengi","siyang"],["wengi","Wengi","siyang"],["wengi","Wengi","sonten"],["wengi","Wengi","sonten"],["wengi","Wengi","sonten"],["wengi","Wengi","sonten"],["wengi","Wengi","ndalu"],["wengi","Wengi","ndalu"],["wengi","Wengi","ndalu"],["wengi","Wengi","ndalu"],["wengi","Wengi","ndalu"]],
km:[["ព្រឹក"],["ល្ងាច"]],
kn:[["ರಾತ್ರಿ","ಪೂರ್ವಾಹ್ನ"],["ರಾತ್ರಿ","ಪೂರ್ವಾಹ್ನ"],["ರಾತ್ರಿ","ಪೂರ್ವಾಹ್ನ"],["ರಾತ್ರಿ","ಪೂರ್ವಾಹ್ನ"],["ಬೆಳಿಗ್ಗೆ","ಪೂರ್ವಾಹ್ನ"],["ಬೆಳಿಗ್ಗೆ","ಪೂರ್ವಾಹ್ನ"],["ಬೆಳಿಗ್ಗೆ","ಪೂರ್ವಾಹ್ನ"],["ಬೆಳಿಗ್ಗೆ","ಪೂರ್ವಾಹ್ನ"],["ಬೆಳಿಗ್ಗೆ","ಪೂರ್ವಾಹ್ನ"],["ಬೆಳಿಗ್ಗೆ","ಪೂರ್ವಾಹ್ನ"],["ಮಧ್ಯಾಹ್ನ","ಪೂರ್ವಾಹ್ನ"],["ಮಧ್ಯಾಹ್ನ","ಪೂರ್ವಾಹ್ನ"],["ಮಧ್ಯಾಹ್ನ","ಅಪರಾಹ"],["ಮಧ್ಯಾಹ್ನ","ಅಪರಾಹ"],["ಮಧ್ಯಾಹ್ನ","ಅಪರಾಹ"],["ಮಧ್ಯಾಹ್ನ","ಅಪರಾಹ"],["ಮಧ್ಯಾಹ್ನ","ಅಪರಾಹ"],["ಸಂಜೆ","ಅಪರಾಹ"],["ಸಂಜೆ","ಅಪರಾಹ"],["ಸಂಜೆ","ಅಪರಾಹ"],["ರಾತ್ರಿ","ಅಪರಾಹ"],["ರಾತ್ರಿ","ಅಪರಾಹ"],["ರಾತ್ರಿ","ಅಪರಾಹ"],["ರಾತ್ರಿ","ಅಪರಾಹ"]],
ko:[["오전"],["오후"]],ku:[["BN","بهیانی"],["PN","ئێواره"]],lo:[["ຕອນເຊົ້າ"],["ຕອນແລງ"]],ml:[["രാത്രി"],["രാത്രി"],["രാത്രി"],["രാത്രി"],["രാവിലെ"],["രാവിലെ"],["രാവിലെ"],["രാവിലെ"],["രാവിലെ"],["രാവിലെ"],["രാവിലെ"],["രാവിലെ"],["ഉച്ച കഴിഞ്ഞ്"],["ഉച്ച കഴിഞ്ഞ്"],["ഉച്ച കഴിഞ്ഞ്"],["ഉച്ച കഴിഞ്ഞ്"],["ഉച്ച കഴിഞ്ഞ്"],["വൈകുന്നേരം"],["വൈകുന്നേരം"],["വൈകുന്നേരം"],["രാത്രി"],["രാത്രി"],["രാത്രി"],["രാത്രി"]],mn:[["ү.ө.","ҮӨ"],["ү.х.","ҮХ"]],
mr:[["म.पू.","पहाटे"],["म.पू.","पहाटे"],["म.पू.","पहाटे"],["म.पू.","पहाटे"],["म.पू.","पहाटे"],["म.पू.","पहाटे"],["म.पू.","सकाळी"],["म.पू.","सकाळी"],["म.पू.","सकाळी"],["म.पू.","सकाळी"],["म.पू.","सकाळी"],["म.पू.","सकाळी"],["म.उ.","दुपारी"],["म.उ.","दुपारी"],["म.उ.","दुपारी"],["म.उ.","दुपारी"],["म.उ.","दुपारी"],["म.उ.","सायंकाळी"],["म.उ.","सायंकाळी"],["म.उ.","सायंकाळी"],["म.उ.","रात्री"],["म.उ.","रात्री"],["म.उ.","रात्री"],["म.उ.","रात्री"]],
ms:[["pagi","PG"],["pagi","PG"],["pagi","PG"],["pagi","PG"],["pagi","PG"],["pagi","PG"],["pagi","PG"],["pagi","PG"],["pagi","PG"],["pagi","PG"],["pagi","PG"],["tengahari","PG"],["tengahari","PTG"],["tengahari","PTG"],["tengahari","PTG"],["petang","PTG"],["petang","PTG"],["petang","PTG"],["petang","PTG"],["malam","PTG"],["malam","PTG"],["malam","PTG"],["malam","PTG"],["malam","PTG"]],
my:[["နံနက်","နံနက်"],["နံနက်","နံနက်"],["နံနက်","နံနက်"],["နံနက်","နံနက်"],["နံနက်","နံနက်"],["နံနက်","နံနက်"],["နံနက်","နံနက်"],["နံနက်","နံနက်"],["နံနက်","နံနက်"],["နံနက်","နံနက်"],["နံနက်","နံနက်"],["နံနက်","နံနက်"],["ညနေ","မွန်းတည့်"],["ညနေ","နေ့လယ်"],["ညနေ","နေ့လယ်"],["ညနေ","နေ့လယ်"],["ညနေ","ညနေ"],["ညနေ","ညနေ"],["ညနေ","ညနေ"],["ညနေ","ည"],["ညနေ","ည"],["ညနေ","ည"],["ညနေ","ည"],["ညနေ","ည"]],
ne:[["पूर्वाह्न","राति"],["पूर्वाह्न","राति"],["पूर्वाह्न","राति"],["पूर्वाह्न","बिहान"],["पूर्वाह्न","बिहान"],["पूर्वाह्न","बिहान"],["पूर्वाह्न","बिहान"],["पूर्वाह्न","बिहान"],["पूर्वाह्न","बिहान"],["पूर्वाह्न","बिहान"],["पूर्वाह्न","बिहान"],["पूर्वाह्न","बिहान"],["अपराह्न","दिउँसो"],["अपराह्न","दिउँसो"],["अपराह्न","दिउँसो"],["अपराह्न","दिउँसो"],["अपराह्न","साँझ"],["अपराह्न","साँझ"],["अपराह्न","साँझ"],["अपराह्न","साँझ"],["अपराह्न","राति"],["अपराह्न","राति"],["अपराह्न","राति"],["अपराह्न","राति"]],
ru:[["ночи"],["ночи"],["ночи"],["ночи"],["утра"],["утра"],["утра"],["утра"],["утра"],["утра"],["утра"],["утра"],["дня"],["дня"],["дня"],["дня"],["дня"],["вечера"],["вечера"],["вечера"],["вечера"],["вечера"],["вечера"],["вечера"]],sd:[["صبح"],["شام","منجهند"]],si:[["පෙ.ව.","පෙර වරු"],["ප.ව.","පස් වරු"]],sq:[["pd","PD","e paradites"],["md","MD","e pasdites"]],
ta:[["யாமம்","முற்பகல்"],["யாமம்","முற்பகல்"],["வைகறை","முற்பகல்"],["வைகறை","முற்பகல்"],["வைகறை","முற்பகல்"],["வைகறை","முற்பகல்"],["காலை","முற்பகல்"],["காலை","முற்பகல்"],["காலை","முற்பகல்"],["காலை","முற்பகல்"],["நண்பகல்","முற்பகல்"],["நண்பகல்","முற்பகல்"],["நண்பகல்","பிற்பகல்"],["நண்பகல்","பிற்பகல்"],["எற்பாடு","பிற்பகல்"],["எற்பாடு","பிற்பகல்"],["எற்பாடு","பிற்பகல்"],["எற்பாடு","பிற்பகல்"],["மாலை","பிற்பகல்"],["மாலை","பிற்பகல்"],["மாலை","பிற்பகல்"],["மாலை","பிற்பகல்"],["யாமம்","பிற்பகல்"],["யாமம்","பிற்பகல்"]],
te:[["రాత్రి"],["రాత్రి"],["రాత్రి"],["రాత్రి"],["ఉదయం"],["ఉదయం"],["ఉదయం"],["ఉదయం"],["ఉదయం"],["ఉదయం"],["మధ్యాహ్నం"],["మధ్యాహ్నం"],["మధ్యాహ్నం"],["మధ్యాహ్నం"],["మధ్యాహ్నం"],["మధ్యాహ్నం"],["మధ్యాహ్నం"],["సాయంత్రం"],["సాయంత్రం"],["సాయంత్రం"],["రాత్రి"],["రాత్రి"],["రాత్రి"],["రాత్రి"]],tg:[["шаб"],["шаб"],["шаб"],["шаб"],["субҳ"],["субҳ"],["субҳ"],["субҳ"],["субҳ"],["субҳ"],["субҳ"],["рӯз"],["рӯз"],["рӯз"],["рӯз"],["рӯз"],["бегоҳ"],["бегоҳ"],["бегоҳ"],["шаб"],["шаб"],["шаб"],["шаб"],["шаб"]],
th:[["ก่อนเที่ยง"],["หลังเที่ยง"]],tr:[["öö","ÖÖ"],["ös","ÖS"]],
ug:[["چۈشتىن بۇرۇن","يېرىم كېچە"],["چۈشتىن بۇرۇن","يېرىم كېچە"],["چۈشتىن بۇرۇن","يېرىم كېچە"],["چۈشتىن بۇرۇن","يېرىم كېچە"],["چۈشتىن بۇرۇن","يېرىم كېچە"],["چۈشتىن بۇرۇن","يېرىم كېچە"],["چۈشتىن بۇرۇن","سەھەر"],["چۈشتىن بۇرۇن","سەھەر"],["چۈشتىن بۇرۇن","سەھەر"],["چۈشتىن بۇرۇن","چۈشتىن بۇرۇن"],["چۈشتىن بۇرۇن","چۈشتىن بۇرۇن"],["چۈشتىن بۇرۇن","چۈشتىن بۇرۇن"],["چۈشتىن كېيىن","چۈش"],["چۈشتىن كېيىن","چۈشتىن كېيىن"],["چۈشتىن كېيىن","چۈشتىن كېيىن"],["چۈشتىن كېيىن","چۈشتىن كېيىن"],["چۈشتىن كېيىن","چۈشتىن كېيىن"],["چۈشتىن كېيىن","چۈشتىن كېيىن"],["چۈشتىن كېيىن","كەچ"],["چۈشتىن كېيىن","كەچ"],["چۈشتىن كېيىن","كەچ"],["چۈشتىن كېيىن","كەچ"],["چۈشتىن كېيىن","كەچ"],["چۈشتىن كېيىن","كەچ"]],
uk:[["дп"],["пп"]],ur:[["ق.د.","صبح"],["ب.د.","شام"]],vi:[["sa","SA"],["ch","CH"]],zh:[["上午"],["下午"]]},pc={};["af","bo","br","el","eo","he","hi","hu","jv","ku","lo","mn","my","mr","ne","sd","sq","si","th","ug","ur","zh"].forEach((M=>pc[M]=!0));const ac=[["am","AM"],["pm","PM"]];const Oc={};"ag as au bd br bs bt bw bz ca cn co dm do et gt\n gu hk hn id il in jm jp ke kh kr la mh mm mo mt\n mx mz ni np pa pe ph pk pr pt py sa sg sv th tt\n tw um us ve vi ws ye za zw".split(/s+/).forEach((M=>Oc[M]=0)),
"ad ai al am an ar at ax az ba be bg bm bn by ch\n cl cm cr cy cz de dk ec ee es fi fj fo fr gb ge\n gf gp gr hr hu ie is it kg kz lb li lk lt lu lv\n mc md me mk mn mq my nl no nz pl re ro rs ru se\n si sk sm tj tm tr ua uy uz va vn xk".split(/s+/).forEach((M=>Oc[M]=1)),Oc.mv=5,"ae af bh dj dz eg iq ir jo kw ly om qa sd sy".split(/s+/).forEach((M=>Oc[M]=6));const ic={af:[1,4,5],ar:[6,1,5,6],"ar-dz":[0,3,5,6],"ar-sa":[0,1,4,5],az:[1,1,6,0],be:[1,1,6,0],bg:[1,1,6,0],bn:[0,1,6,0],"bn-bd":[0,1,6,0],
bo:[0,1,6,0],bs:[1,1,6,0],en:[1,1,6,0],"en-au":[0,3,6,0],"en-ca":[0,1,6,0],"en-il":[0,1,5,6],"en-us":[0,1,6,0],eo:[1,1,6,0],"es-mx":[0,3,6,0],"es-us":[0,1,6,0],eu:[1,1,6,0],fa:[6,1,6,0],fr:[1,1,6,0],"fr-ca":[0,1,6,0],gu:[0,1,6,0],hi:[0,1,6,0],hr:[1,1,6,0],"hy-am":[1,1,6,0],ja:[0,1,6,0],jv:[1,1,6,0],ka:[1,1,6,0],kk:[1,1,6,0],kn:[0,1,6,0],ko:[0,1,6,0],ku:[6,1,6,0],ky:[1,1,6,0],lo:[0,1,6,0],mk:[1,1,6,0],ml:[0,1,6,0],mn:[0,1,6,0],mr:[0,1,5,6],ms:[1,1,6,0],ne:[0,1,6,0],pt:[1,1,6,0],"pt-br":[0,1,6,0],
ro:[1,1,6,0],sd:[1,4,5],si:[0,1,6,0],sl:[1,1,6,0],sr:[1,1,6,0],sw:[1,1,6,0],ta:[0,1,6,0],te:[0,1,6,0],tg:[1,1,6,0],th:[0,1,6,0],tk:[1,1,6,0],tr:[1,1,6,0],tzm:[6,1,6,0],"ug-cn":[1,1,6,0],uk:[1,1,6,0],uz:[1,1,6,0],zh:[0,1,6,0]};function nc(M){let c,z=ec(M,ic);null==z&&(z=ic.en),M=bc(M),l(M)||(M=[M]);for(const z of M){const M=z.split("-")[1];if(M){if(null!=ic[z])break;if(c=Oc[M],null!=c)break}}return null!=c&&(z[0]=c),z}function tc(M){return nc(M)[0]}function rc(M){return nc(M)[1]}function qc(M){
return nc(M).slice(2)}const dc={af:["0de","1ste","2de","3de","4de","5de","6de","7de","8ste","9de","10de","11de","12de","13de","14de","15de","16de","17de","18de","19de","20ste","21ste","22ste","23ste","24ste","25ste","26ste","27ste","28ste","29ste","30ste","31ste"],ar:1,
az:["0-ıncı","1-inci","2-nci","3-üncü","4-üncü","5-inci","6-ncı","7-nci","8-inci","9-uncu","10-uncu","11-inci","12-nci","13-üncü","14-üncü","15-inci","16-ncı","17-nci","18-inci","19-uncu","20-nci","21-inci","22-nci","23-üncü","24-üncü","25-inci","26-ncı","27-nci","28-inci","29-uncu","30-uncu","31-inci"],be:1,
bg:["0-ев","1-ви","2-ри","3-ти","4-ти","5-ти","6-ти","7-ми","8-ми","9-ти","10-ти","11-ти","12-ти","13-ти","14-ти","15-ти","16-ти","17-ти","18-ти","19-ти","20-ти","21-ви","22-ри","23-ти","24-ти","25-ти","26-ти","27-ми","28-ми","29-ти","30-ти","31-ви"],bm:1,bn:1,bo:1,
br:["0vet","1añ","2vet","3vet","4vet","5vet","6vet","7vet","8vet","9vet","10vet","11vet","12vet","13vet","14vet","15vet","16vet","17vet","18vet","19vet","20vet","21vet","22vet","23vet","24vet","25vet","26vet","27vet","28vet","29vet","30vet","31vet"],bs:2,ca:["0è","1r","2n","3r","4t","5è","6è","7è","8è","9è","10è","11è","12è","13è","14è","15è","16è","17è","18è","19è","20è","21è","22è","23è","24è","25è","26è","27è","28è","29è","30è","31è"],cs:2,
cy:["0","1af","2il","3ydd","4ydd","5ed","6ed","7ed","8fed","9fed","10fed","11eg","12fed","13eg","14eg","15fed","16eg","17eg","18fed","19eg","20fed","21ain","22ain","23ain","24ain","25ain","26ain","27ain","28ain","29ain","30ain","31ain"],da:2,de:2,el:6,en:["0th","1st","2nd","3rd","4th","5th","6th","7th","8th","9th","10th","11th","12th","13th","14th","15th","16th","17th","18th","19th","20th","21st","22nd","23rd","24th","25th","26th","27th","28th","29th","30th","31st"],eo:3,es:4,et:2,eu:2,fa:5,fi:2,fil:1,
fo:2,fr:["0e","1er","2e","3e","4e","5e","6e","7e","8e","9e","10e","11e","12e","13e","14e","15e","16e","17e","18e","19e","20e","21e","22e","23e","24e","25e","26e","27e","28e","29e","30e","31e"],fy:["0de","1ste","2de","3de","4de","5de","6de","7de","8ste","9de","10de","11de","12de","13de","14de","15de","16de","17de","18de","19de","20ste","21ste","22ste","23ste","24ste","25ste","26ste","27ste","28ste","29ste","30ste","31ste"],
ga:["0mh","1d","2na","3mh","4mh","5mh","6mh","7mh","8mh","9mh","10mh","11mh","12na","13mh","14mh","15mh","16mh","17mh","18mh","19mh","20mh","21mh","22na","23mh","24mh","25mh","26mh","27mh","28mh","29mh","30mh","31mh"],gd:["0mh","1d","2na","3mh","4mh","5mh","6mh","7mh","8mh","9mh","10mh","11mh","12na","13mh","14mh","15mh","16mh","17mh","18mh","19mh","20mh","21mh","22na","23mh","24mh","25mh","26mh","27mh","28mh","29mh","30mh","31mh"],gl:4,gu:1,hi:1,hr:2,hu:2,"hy-am":1,is:2,it:4,ja:1,jv:1,
ka:["0","1-ლი","მე-2","მე-3","მე-4","მე-5","მე-6","მე-7","მე-8","მე-9","მე-10","მე-11","მე-12","მე-13","მე-14","მე-15","მე-16","მე-17","მე-18","მე-19","მე-20","21-ე","22-ე","23-ე","24-ე","25-ე","26-ე","27-ე","28-ე","29-ე","30-ე","31-ე"],kk:["0-ші","1-ші","2-ші","3-ші","4-ші","5-ші","6-шы","7-ші","8-ші","9-шы","10-шы","11-ші","12-ші","13-ші","14-ші","15-ші","16-шы","17-ші","18-ші","19-шы","20-шы","21-ші","22-ші","23-ші","24-ші","25-ші","26-шы","27-ші","28-ші","29-шы","30-шы","31-ші"],
km:["ទី0","ទី1","ទី2","ទី3","ទី4","ទី5","ទី6","ទី7","ទី8","ទី9","ទី10","ទី11","ទី12","ទី13","ទី14","ទី15","ទី16","ទី17","ទី18","ទី19","ទី20","ទី21","ទី22","ទី23","ទី24","ទី25","ទី26","ទី27","ទី28","ទី29","ទី30","ទី31"],kn:["0ನೇ","1ನೇ","2ನೇ","3ನೇ","4ನೇ","5ನೇ","6ನೇ","7ನೇ","8ನೇ","9ನೇ","10ನೇ","11ನೇ","12ನೇ","13ನೇ","14ನೇ","15ನೇ","16ನೇ","17ನೇ","18ನೇ","19ನೇ","20ನೇ","21ನೇ","22ನೇ","23ನೇ","24ನೇ","25ನೇ","26ನೇ","27ನೇ","28ನೇ","29ನೇ","30ನೇ","31ನೇ"],ko:1,ku:1,
ky:["0-чү","1-чи","2-чи","3-чү","4-чү","5-чи","6-чы","7-чи","8-чи","9-чу","10-чу","11-чи","12-чи","13-чү","14-чү","15-чи","16-чы","17-чи","18-чи","19-чу","20-чы","21-чи","22-чи","23-чү","24-чү","25-чи","26-чы","27-чи","28-чи","29-чу","30-чу","31-чи"],lb:2,lo:["ທີ່0","ທີ່1","ທີ່2","ທີ່3","ທີ່4","ທີ່5","ທີ່6","ທີ່7","ທີ່8","ທີ່9","ທີ່10","ທີ່11","ທີ່12","ທີ່13","ທີ່14","ທີ່15","ທີ່16","ທີ່17","ທີ່18","ທີ່19","ທີ່20","ທີ່21","ທີ່22","ທີ່23","ທີ່24","ທີ່25","ທີ່26","ທີ່27","ທີ່28","ທີ່29","ທີ່30","ທີ່31"],
lt:["0-oji","1-oji","2-oji","3-oji","4-oji","5-oji","6-oji","7-oji","8-oji","9-oji","10-oji","11-oji","12-oji","13-oji","14-oji","15-oji","16-oji","17-oji","18-oji","19-oji","20-oji","21-oji","22-oji","23-oji","24-oji","25-oji","26-oji","27-oji","28-oji","29-oji","30-oji","31-oji"],lv:2,mi:4,
mk:["0-ев","1-ви","2-ри","3-ти","4-ти","5-ти","6-ти","7-ми","8-ми","9-ти","10-ти","11-ти","12-ти","13-ти","14-ти","15-ти","16-ти","17-ти","18-ти","19-ти","20-ти","21-ви","22-ри","23-ти","24-ти","25-ти","26-ти","27-ми","28-ми","29-ти","30-ти","31-ви"],ml:1,mn:1,mr:1,ms:1,mt:4,my:1,nb:2,ne:1,
nl:["0de","1ste","2de","3de","4de","5de","6de","7de","8ste","9de","10de","11de","12de","13de","14de","15de","16de","17de","18de","19de","20ste","21ste","22ste","23ste","24ste","25ste","26ste","27ste","28ste","29ste","30ste","31ste"],nn:2,pl:2,pt:4,ro:1,ru:1,sd:1,se:2,
si:["0 වැනි","1 වැනි","2 වැනි","3 වැනි","4 වැනි","5 වැනි","6 වැනි","7 වැනි","8 වැනි","9 වැනි","10 වැනි","11 වැනි","12 වැනි","13 වැනි","14 වැනි","15 වැනි","16 වැනි","17 වැනි","18 වැනි","19 වැනි","20 වැනි","21 වැනි","22 වැනි","23 වැනි","24 වැනි","25 වැනි","26 වැනි","27 වැනි","28 වැනි","29 වැනි","30 වැනි","31 වැනි"],sk:2,sl:2,sq:2,sr:2,
sv:["0:e","1:a","2:a","3:e","4:e","5:e","6:e","7:e","8:e","9:e","10:e","11:e","12:e","13:e","14:e","15:e","16:e","17:e","18:e","19:e","20:e","21:a","22:a","23:e","24:e","25:e","26:e","27:e","28:e","29:e","30:e","31:a"],sw:1,ta:["0வது","1வது","2வது","3வது","4வது","5வது","6வது","7வது","8வது","9வது","10வது","11வது","12வது","13வது","14வது","15வது","16வது","17வது","18வது","19வது","20வது","21வது","22வது","23வது","24வது","25வது","26வது","27வது","28வது","29வது","30வது","31வது"],
te:["0వ","1వ","2వ","3వ","4వ","5వ","6వ","7వ","8వ","9వ","10వ","11వ","12వ","13వ","14వ","15వ","16వ","17వ","18వ","19వ","20వ","21వ","22వ","23వ","24వ","25వ","26వ","27వ","28వ","29వ","30వ","31వ"],tg:["0-ум","1-ум","2-юм","3-юм","4-ум","5-ум","6-ум","7-ум","8-ум","9-ум","10-ум","11-ум","12-ум","13-ум","14-ум","15-ум","16-ум","17-ум","18-ум","19-ум","20-ум","21-ум","22-юм","23-юм","24-ум","25-ум","26-ум","27-ум","28-ум","29-ум","30-юм","31-ум"],th:1,
tk:["0'unjy","1'inji","2'nji","3'ünji","4'ünji","5'inji","6'njy","7'nji","8'inji","9'unjy","10'unjy","11'inji","12'nji","13'ünji","14'ünji","15'inji","16'njy","17'nji","18'inji","19'unjy","20'nji","21'inji","22'nji","23'ünji","24'ünji","25'inji","26'njy","27'nji","28'inji","29'unjy","30'unjy","31'inji"],
tr:["0'ıncı","1'inci","2'nci","3'üncü","4'üncü","5'inci","6'ncı","7'nci","8'inci","9'uncu","10'uncu","11'inci","12'nci","13'üncü","14'üncü","15'inci","16'ncı","17'nci","18'inci","19'uncu","20'nci","21'inci","22'nci","23'üncü","24'üncü","25'inci","26'ncı","27'nci","28'inci","29'uncu","30'uncu","31'inci"],tzm:1,"ug-cn":1,uk:1,ur:1,uz:1,vi:1,
yo:["ọjọ́ 0","ọjọ́ 1","ọjọ́ 2","ọjọ́ 3","ọjọ́ 4","ọjọ́ 5","ọjọ́ 6","ọjọ́ 7","ọjọ́ 8","ọjọ́ 9","ọjọ́ 10","ọjọ́ 11","ọjọ́ 12","ọjọ́ 13","ọjọ́ 14","ọjọ́ 15","ọjọ́ 16","ọjọ́ 17","ọjọ́ 18","ọjọ́ 19","ọjọ́ 20","ọjọ́ 21","ọjọ́ 22","ọjọ́ 23","ọjọ́ 24","ọjọ́ 25","ọjọ́ 26","ọjọ́ 27","ọjọ́ 28","ọjọ́ 29","ọjọ́ 30","ọjọ́ 31"],zh:1}
;const sc=1728e5,lc=/^(America\/Argentina|America\/Indiana)\/(.+)$/,Lc=/^(CST6CDT|EET|EST5EDT|MST7MDT|PST8PDT|SystemV\/AST4ADT|SystemV\/CST6CDT|SystemV\/EST5EDT|SystemV\/MST7MDT|SystemV\/PST8PDT|SystemV\/YST9YDT|WET)$/,Wc=new Set(["deltaTs","leapSeconds","version","years"]);class uc{constructor(M){const c=M.split(/[ :]/);this.startYear=Number(c[0]),this.month=Number(c[1]),this.dayOfMonth=Number(c[2]),this.dayOfWeek=Number(c[3]),this.atHour=Number(c[4]),this.atMinute=Number(c[5]),this.atType=Number(c[6]),
this.save=e(60*Number(c[7]))}getTransitionTime(M,c,z){let b;b=this.dayOfWeek>=0&&this.dayOfMonth>0?CM(M,this.month,this.dayOfWeek-1,this.dayOfMonth):this.dayOfWeek>=0&&this.dayOfMonth<0?CM(M,this.month,this.dayOfWeek-1,-this.dayOfMonth):this.dayOfWeek>=0&&0===this.dayOfMonth?SM(M,this.month,this.dayOfWeek-1,tM):this.dayOfMonth;let o=IM(M,this.month,b,this.atHour,this.atMinute);return 0===this.atType?o-=1e3*(c+z):1===this.atType&&(o-=1e3*c),o}toString(){const M=I[this.month-1],z=U[this.dayOfWeek-1];let b=""
;return 0===this.dayOfMonth?b+=`last ${z} of ${M}`:this.dayOfWeek<0?b+=`${M} ${this.dayOfMonth}`:this.dayOfMonth>0?b+=`first ${z} on/after ${M} ${this.dayOfMonth}`:b+=`last ${z} on/before ${M} ${-this.dayOfMonth}`,b+=`, at ${this.atHour}:${q(this.atMinute,2,"0")} `,b+=["wall time","std time","UTC"][this.atType],0===this.save?b+=" begin std time":(this.save%3600==0?b+=` save ${c(this.save,3600)} hour${A(this.save/3600)>1?"s":""}`:b+=` save ${c(this.save,60)} mins`,
this.save%60!=0&&(b+=` ${this.save%60} secs`)),b}}let Nc,fc,Tc,Bc,mc=[];!function(){const M=new Date(1901,0,1,12,0,0,0);let c=M.getTime();const z=Date.now(),b=30*E,o=z+12*b*2,e=z+12*b*50;let A=60*-M.getTimezoneOffset();for(mc.push({transitionTime:Number.MIN_SAFE_INTEGER,utcOffset:A,dstOffset:0});M.getTime()<e;){const z=c+b;M.setTime(z);const e=60*-M.getTimezoneOffset();if(void 0===Nc&&z>=o&&(Nc=fc=e),e!==A){z>=o&&(Nc=Math.min(Nc,e),fc=Math.max(fc,e));let b=c,p=z;for(;p-b>R;){const c=Math.floor((p+b)/2/R)*R
;M.setTime(c);60*-M.getTimezoneOffset()===A?b=c:p=c}mc.push({transitionTime:p,utcOffset:e,dstOffset:0}),A=e}c=z}mc.length<2?(mc=null,Tc=!1,Bc=0):(Tc=fc>Nc,Bc=fc-Nc,Tc&&(mc[0].utcOffset===fc&&mc[1].utcOffset===Nc&&(mc.splice(0,1),mc[0].transitionTime=Number.MIN_SAFE_INTEGER),mc.forEach(((M,c)=>{var z;c>0&&M.utcOffset===fc&&(null===(z=mc[c-1])||void 0===z?void 0:z.utcOffset)===Nc&&(M.dstOffset=fc-Nc)})),0!==L(mc).dstOffset&&mc.pop()))}();class Xc{constructor(c){var z,b;if(this._countries=new Set,
this._zoneName=c.zoneName,this._utcOffset=c.currentUtcOffset,this._usesDst=c.usesDst,this._dstOffset=c.dstOffset,this.displayName=c.displayName,this.transitions=W(c.transitions),this._aliasFor=c.aliasFor,this._population=null!==(z=c.population)&&void 0!==z?z:0,this._countries=null!==(b=c.countries)&&void 0!==b?b:new Set,this._stdRule=c.stdRule,this._dstRule=c.dstRule,this.transitions&&this.transitions.length>0){let c,z,b=this.transitions[0].utcOffset,o=b,e=!1
;for(const A of this.transitions)z=0!==A.dstOffset,c=A.utcOffset-A.dstOffset,A.deltaOffset=A.utcOffset-b,A.dstFlipped=z!==e,A.baseOffsetChanged=c!==o,A.wallTime=A.transitionTime+1e3*A.utcOffset,A.wallTimeDay=kM(M(A.wallTime/864e5)).d,Object.freeze(A),b=A.utcOffset,e=z,o=c}}static get version(){return this._version}static defineTimezones(M){const c=!u(this.encodedTimezones,M);return(null==M?void 0:M.version)?this._version=M.version:this._version="unspecified",
this.encodedTimezones=Object.assign({},null!=M?M:{}),this.extractZoneInfo(),this.extractLeapSeconds(),this.extractDeltaTs(),c&&(this.offsetsAndZones=void 0,this.regionAndSubzones=void 0,this.zoneLookup={}),c}static getAvailableTimezones(){const M=[];for(const c of Object.keys(this.encodedTimezones))(c.includes("/")||/^[A-Z]/.test(c))&&M.push(c);return M.sort(),M}static getOffsetsAndZones(){var M;if(this.offsetsAndZones)return this.offsetsAndZones;const c={}
;for(const z of Object.keys(this.encodedTimezones)){if(!z.includes("/")||z.startsWith("Etc/")||Lc.test(z))continue;let b=this.encodedTimezones[z];if(!b.includes(";")){const c=/^!([^,]*)$/.exec(b)||/^(?:.*,)?(.*)$/.exec(b);b=null!==(M=this.encodedTimezones[c[1]])&&void 0!==M?M:""}const o=b.split(/[ ;]/);if(o.length<3)continue;const e=o[1].split(/([-+]?\d\d)/g).filter((M=>!!M)).join(":")+this.getDstSymbol(60*n(o[2]));let A=c[e];A||(A=[],c[e]=A),A.push(z.replace(/_/g," "))}
const z=[],b=M=>n(M.replace(/[^-+\d]/g,""));for(const M of Object.keys(c))z.push(M);z.sort(((M,c)=>b(M)-b(c))),this.offsetsAndZones=[];for(const M of z){const z=c[M];z.sort(),this.offsetsAndZones.push({offset:M,offsetSeconds:Q(M.replace(/[^-+\d]/g,"")),dstOffset:{"^":1800,"§":3600,"#":7200,"❄":-3600,"~":999}[M.substr(M.length-1)]||0,zones:z})}return this.offsetsAndZones}static getRegionsAndSubzones(){var M;if(this.regionAndSubzones)return this.regionAndSubzones;let c=!1;const z={}
;for(const b of Object.keys(this.encodedTimezones)){let o,e;const A=null!==(M=lc.exec(b))&&void 0!==M?M:/^(.+?)\/(.+)$/.exec(b);A?(o=A[1],e=A[2].replace(/_/g," ")):(o=b,e=null),(null==e||Lc.test(b))&&(o="~",e=b,c=!0);let p=z[o];p||(p=[],z[o]=p),p.push(e)}const b=[];for(const M of Object.keys(z))b.push(M);b.sort(),c&&(b[b.length-1]="MISC",z.MISC=z["~"],delete z["~"]),this.regionAndSubzones=[];for(const M of b){const c=z[M];c.sort(),this.regionAndSubzones.push({region:M,subzones:c})}
return this.regionAndSubzones}static guess(c=!1,z,b){var o,e,A,p,a,O,i,n,t,r,q;if(!this._guess||c)if(!QM||z||b){let c=z;if(!c)try{"undefined"!=typeof process&&(c=null===(O=(null!==(a=null!==(A=null===(e=process.env)||void 0===e?void 0:e.LANG)&&void 0!==A?A:null===(p=process.env)||void 0===p?void 0:p.LC_CTYPE)&&void 0!==a?a:"").split(/[-._]/)[1])||void 0===O?void 0:O.toUpperCase())}catch(M){}if(!c)try{
"undefined"!=typeof navigator&&(c=null===(n=(null!==(i=navigator.language)&&void 0!==i?i:"").split(/[-._]/)[1])||void 0===n?void 0:n.toUpperCase())}catch(M){}const o=b?Xc.from(b):this.OS_ZONE,d=this.formatUtcOffset(o.utcOffset,!0)+";"+M(o.dstOffset/60),s=Array.from(null!==(t=this.zonesByOffsetAndDst[d])&&void 0!==t?t:[]).filter((M=>!c||this.doesZoneMatchCountry(M,c))).map((M=>({zone:M,rating:o.matchRating(Xc.from(M)),pop:this.populationForZone[M]
}))).sort(((M,c)=>c.rating!==M.rating?c.rating-M.rating:c.pop-M.pop));this._guess=null!==(q=null===(r=s[0])||void 0===r?void 0:r.zone)&&void 0!==q?q:"OS"}else this._guess=null!==(o=(new Intl.DateTimeFormat).resolvedOptions().timeZone)&&void 0!==o?o:"OS";return this._guess}static has(M){return!!this.zoneLookup[M]||!!this.zonesByLowercase[M.toLowerCase()]||!!this.encodedTimezones[M]||/^(GMT|OS|UTC?|ZONELESS|DATELESS|TAI)$/i.test(M)}static from(M){return Xc.getTimezone(M)}static getTimezone(M,c){
if(!M)return this.OS_ZONE;const z=M.toLowerCase();if("tai"===z)return this.TAI_ZONE;if("dateless"===z)return this.DATELESS;if("zoneless"===z)return this.ZONELESS;this.zonesByLowercase[z]&&(M=this.zonesByLowercase[z]);const b=this.zoneLookup[M];if(b)return b;let e;const A=/LMT|OS|(?:(GMT|UTC?)?([-+]\d\d(\d{4}|\d\d|:\d\d(:\d\d)?))?)|(?:.+\/.+)|\w+/.exec(M);if(null===A||0===A.length)throw new Error('Unrecognized format for timezone name "'+M+'"');if("LMT"===A[0].toUpperCase())c=c||0,e=new Xc({zoneName:"LMT",
currentUtcOffset:60*Math.round(4*o(c,360)),usesDst:!1,dstOffset:0,transitions:null});else if("OS"===A[0].toUpperCase())e=this.OS_ZONE;else if(A.length>1&&(/GMT|UTC?/.test(A[1])||A[2])){let c=0;A[1]||(M="UT"+M),A[2]&&(c=Q(A[2])),e=new Xc({zoneName:M,currentUtcOffset:c,usesDst:!1,dstOffset:0,transitions:null})}else if(this.encodedTimezones[M]){let c=this.encodedTimezones[M],z=null,b=null;if(!c.includes(";")){const M=/^!(.*,)?(.*)$/.exec(c);M?(b=M[1],c=M[2]):z=c,c=this.encodedTimezones[c]}
e=new Xc(this.parseEncodedTimezone(M,c,z,b))}else e=new Xc({zoneName:M,currentUtcOffset:Nc,usesDst:Tc,dstOffset:Bc,transitions:mc}),e._error="Unrecognized timezone";return"LMT"===M||e._error||(this.zoneLookup[M]=e),e}static getAliasesForZone(M){return M=this.zonesByLowercase[null==M?void 0:M.toLowerCase()],this.zonesAliases[M]?Array.from(this.zonesAliases[M]):[]}static hasShortName(M){return!!this.shortZoneNames[M]}static getShortZoneNameInfo(M){return W(this.shortZoneNames[M])}static getPopulation(M){
let c=this.populationForZone[M];if(null==c){const z=this.getAliasesForZone(M);for(const b of z)if(c=this.populationForZone[b],null!=c&&c>0){this.populationForZone[M]=c;break}}return null==c&&(this.populationForZone[M]=0),null!=c?c:0}static getCountries(M){let c=this.countriesForZone[M];if(null==c){const z=this.getAliasesForZone(M);for(const b of z)if(c=this.countriesForZone[b],null!=c.size){this.countriesForZone[M]=c;break}}return null==c&&(this.countriesForZone[M]=new Set),new Set(c)}
static doesZoneMatchCountry(M,c){return this.getCountries(M).has(c.toUpperCase())}static parseTimeOffset(M){let c=1;if(M.startsWith("-")?(c=-1,M=M.substr(1)):M.startsWith("+")&&(M=M.substr(1)),"0"===M)return 0;if("1"===M)return 3600;{let z=60*(60*Number(M.substr(0,2))+Number(M.substr(2,2)));return 6===M.length&&(z+=Number(M.substr(4,2))),c*z}}static fromBase60(M){let c=1,z=0,b=!1,o=1;M.startsWith("-")?(c=-1,M=M.substr(1)):M.startsWith("+")&&(M=M.substr(1));for(let c=0;c<M.length;++c){let e=M.charCodeAt(c)
;46!==e?(e-=e>96?87:e>64?29:48,b?(o/=60,z+=o*e):(z*=60,z+=e)):b=!0}return z*c}static extractTimezoneTransitionsFromIntl(c,z){const b=[],o={timeZone:c,hourCycle:"h23",year:"numeric",month:"numeric",day:"numeric",hour:"numeric",minute:"numeric",second:"numeric"},e=new Intl.DateTimeFormat("en",o);let A,p=IM(1901,1,1,0,0,0,0);do{p+=36e5,A=$(e,p,"hour")}while(0!==A&&1!==A);p+=432e5;const a=c=>{const z=e.formatToParts(c)
;return M((IM($(z,"year"),$(z,"month"),$(z,"day"),$(z,"hour"),$(z,"minute"),$(z,"second"))-c)/1e3)},O=30*E,i=p+12*O*2,n=IM(z+1,1,1,0,0,0,0);let t,r,q=a(p);for(;p<n;){const M=p+O,c=a(M);if(void 0===t&&M>=i&&(t=r=c),c!==q){M>=i&&(t=Math.min(t,c),r=Math.max(r,c));let z=p,o=M;for(;o-z>R;){const M=Math.floor((o+z)/2/R)*R;a(M)===q?z=M:o=M}b.push({transitionTime:o,utcOffset:c,dstOffset:0}),q=c}p=M}return b.length<2||r<=t?[]:(b[0].utcOffset===r&&b[1].utcOffset===t&&(b.splice(0,1),
b[0].transitionTime=Number.MIN_SAFE_INTEGER),b.forEach(((M,c)=>{var z;M.utcOffset===r&&(null===(z=b[c-1])||void 0===z?void 0:z.utcOffset)===t&&(M.dstOffset=r-t)})),b)}static applyTransitionRules(M,c,z,b,o,e,A,p,a,O,i=!1){for(let n=c;n<z;++n){const c=o.getTransitionTime(n,b,p),z=e.getTransitionTime(n,b,0),t=z<c?e:o,r=z<c?z:c,q=z>c?e:o,d=z>c?z:c;r>A+sc&&(i||n>=t.startYear)&&M.push({transitionTime:r,utcOffset:b+t.save,dstOffset:t.save,name:t.save?a:O}),d>A+sc&&(i||n>=q.startYear)&&M.push({transitionTime:d,
utcOffset:b+q.save,dstOffset:q.save,name:q.save?a:O})}}static countriesStringToSet(M){return M.includes(" ")?new Set(M.split(/\s+/)):new Set(M.split(/(\w\w)/).filter((M=>!!M)))}static parseEncodedTimezone(M,c,z,b){var o,A;let p=[];const a=c.split(";");let O=a[0].split(" ");const i=this.parseTimeOffset(O[0]),t=this.parseTimeOffset(O[1]),r=e(60*Number(O[2]));let q,d,s,l,W,u=Number.MIN_SAFE_INTEGER,N=0,f="";if(p.push({transitionTime:Number.MIN_SAFE_INTEGER,utcOffset:i,dstOffset:0}),
a.length>5)for(b||(b=a[5]+","+(null!==(o=a[6])&&void 0!==o?o:"")),a.length=5;!L(a);)--a.length;if(b){const M=b.split(",");N=n(M[0]),f=null!==(A=M[1])&&void 0!==A?A:""}if(a.length>1){const c=a[1].split(" "),z=[],b=[],o=[];for(let M=0;M<c.length;++M){O=c[M].split("/"),z[M]=e(60*this.fromBase60(O[0])),b[M]=e(60*this.fromBase60(O[1])),O.length>2?o[M]=O[2]:o[M]=null}if(p[0].name=o[0],a.length>3){const c=a[2],A=a[3].split(" ");let O=0;for(let M=0;M<c.length;++M){
const a=this.fromBase60(c.substr(M,1)),i=O+e(60*this.fromBase60(A[M]));p.push({transitionTime:1e3*i,utcOffset:z[a],dstOffset:b[a],name:o[a]}),O=i,0===M&&(u=i),0!==b[a]?s=o[a]:d=o[a]}if(a.length>4){O*=1e3;const c=a[4].split(",");l=new uc(c[0]),W=new uc(c[1]);const z=_M(O).y-1;this.applyTransitionRules(p,z,2500,t,l,W,O,r,s,d),0!==p[p.length-1].dstOffset&&(p.length-=1);const b=_M(1e3*u).y;if(b>2e3&&p.length>1){const c=this.extractTimezoneTransitionsFromIntl(M,b);let z=!1;if(0===c.length&&t===i&&(z=!0,
this.applyTransitionRules(c,1925,b+1,t,l,W,Number.MIN_SAFE_INTEGER+1,r,s,d,!0)),c.length>0){for(z&&c.length>1&&0===c[0].dstOffset&&0!==c[1].dstOffset&&c.splice(0,1);c.length>0&&0!==L(c).dstOffset||L(c).transitionTime>=p[1].transitionTime;)c.splice(c.length-1,1);c[0].transitionTime===p[0].transitionTime&&c.splice(0,1),p.splice(1,0,...c)}}}}}return 1===p.length&&(q=p[0].name,p=null),{zoneName:M,currentUtcOffset:t,usesDst:0!==r,dstOffset:r,displayName:q,transitions:p,population:N,
countries:this.countriesStringToSet(f),aliasFor:z,stdRule:l,dstRule:W}}static buildAliases(M,c){let z=this.zonesAliases[M],b=this.zonesAliases[c];z||(z=this.zonesAliases[M]=new Set),b||(b=this.zonesAliases[c]=new Set),z.add(c),b.add(M),z.forEach((M=>{M!==c&&(b.add(M),this.zonesAliases[M].add(c))}))}static extractZoneInfo(){this.shortZoneNames={},this.zonesByLowercase={gmt:"GMT",lmt:"LMT",os:"OS",tai:"TAI",ut:"UT",utc:"UTC"},this.zonesByOffsetAndDst={},this.countriesForZone={},this.zonesAliases={},
this.zonesForCountry={},this.populationForZone={}
;const M=new Set(["Australia/ACT","Australia/Adelaide","Asia/Tokyo","Asia/Hong_Kong","Asia/Jakarta","Asia/Novosibirsk","Asia/Calcutta","Asia/Karachi","Europe/Moscow","Africa/Cairo","Europe/Paris","Europe/London","Atlantic/Azores","America/Scoresbysund","America/Godthab","America/St_Johns","America/Halifax","America/New_York","America/Chicago","America/Denver","America/Los_Angeles","America/Anchorage","Pacific/Honolulu","America/Adak","Pacific/Apia"]),c=c=>M.has(c)?"!"+c:c
;Object.keys(this.encodedTimezones).filter((M=>!Wc.has(M)&&!M.startsWith("_"))).sort(((M,z)=>N(c(M),c(z)))).forEach((M=>{var c,z;let b,o,A=this.encodedTimezones[M],p=!1;if