@bicharts/chart-mcp 0.6.107 → 0.6.108

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs CHANGED
@@ -108,10 +108,10 @@ License: MIT
108
108
  `&&(E=`
109
109
  `);var $=0,Z=!1;this.parse=function(H,O,j){if(typeof H!="string")throw new Error("Input must be a string");var Y=H.length,L=A.length,ee=E.length,de=B.length,K=z(w),Q=[],ie=[],se=[],ke=$=0;if(!H)return Xe();if(P||P!==!1&&H.indexOf(R)===-1){for(var Ue=H.split(E),Le=0;Le<Ue.length;Le++){if(se=Ue[Le],$+=se.length,Le!==Ue.length-1)$+=E.length;else if(j)return Xe();if(!B||se.substring(0,de)!==B){if(K){if(Q=[],Ne(se.split(A)),t1(),Z)return Xe()}else Ne(se.split(A));if(N&&N<=Le)return Q=Q.slice(0,N),Xe(!0)}}return Xe()}for(var Se=H.indexOf(A,$),Me=H.indexOf(E,$),p1=new RegExp(y(D)+y(R),"g"),re=H.indexOf(R,$);;)if(H[$]===R)for(re=$,$++;;){if((re=H.indexOf(R,re+1))===-1)return j||ie.push({type:"Quotes",code:"MissingQuotes",message:"Quoted field unterminated",row:Q.length,index:$}),me();if(re===Y-1)return me(H.substring($,re).replace(p1,R));if(R===D&&H[re+1]===D)re++;else if(R===D||re===0||H[re-1]!==D){Se!==-1&&Se<re+1&&(Se=H.indexOf(A,re+1));var ce=o1((Me=Me!==-1&&Me<re+1?H.indexOf(E,re+1):Me)===-1?Se:Math.min(Se,Me));if(H.substr(re+1+ce,L)===A){se.push(H.substring($,re).replace(p1,R)),H[$=re+1+ce+L]!==R&&(re=H.indexOf(R,$)),Se=H.indexOf(A,$),Me=H.indexOf(E,$);break}if(ce=o1(Me),H.substring(re+1+ce,re+1+ce+ee)===E){if(se.push(H.substring($,re).replace(p1,R)),e1(re+1+ce+ee),Se=H.indexOf(A,$),re=H.indexOf(R,$),K&&(t1(),Z))return Xe();if(N&&Q.length>=N)return Xe(!0);break}ie.push({type:"Quotes",code:"InvalidQuotes",message:"Trailing quote on quoted field is malformed",row:Q.length,index:$}),re++}}else if(B&&se.length===0&&H.substring($,$+de)===B){if(Me===-1)return Xe();$=Me+ee,Me=H.indexOf(E,$),Se=H.indexOf(A,$)}else if(Se!==-1&&(Se<Me||Me===-1))se.push(H.substring($,Se)),$=Se+L,Se=H.indexOf(A,$);else{if(Me===-1)break;if(se.push(H.substring($,Me)),e1(Me+ee),K&&(t1(),Z))return Xe();if(N&&Q.length>=N)return Xe(!0)}return me();function Ne(b1){Q.push(b1),ke=$}function o1(b1){var W1=0;return W1=b1!==-1&&(b1=H.substring(re+1,b1))&&b1.trim()===""?b1.length:W1}function me(b1){return j||(b1===void 0&&(b1=H.substring($)),se.push(b1),$=Y,Ne(se),K&&t1()),Xe()}function e1(b1){$=b1,Ne(se),se=[],Me=H.indexOf(E,$)}function Xe(b1){if(_.header&&!O&&Q.length&&!I){var W1=Q[0],nt=Object.create(null),a3=new Set(W1);let n3=!1;for(let C1=0;C1<W1.length;C1++){let P1=c(W1[C1]);if(nt[P1=z(_.transformHeader)?_.transformHeader(P1,C1):P1]){let _1,O1=nt[P1];for(;_1=P1+"_"+O1,O1++,a3.has(_1););a3.add(_1),W1[C1]=_1,nt[P1]++,n3=!0,(U=U===null?{}:U)[_1]=P1}else nt[P1]=1,W1[C1]=P1;a3.add(P1)}n3&&console.warn("Duplicate headers found and renamed."),I=!0}return{data:Q,errors:ie,meta:{delimiter:A,linebreak:E,aborted:Z,truncated:!!b1,cursor:ke+(O||0),renamedHeaders:U}}}function t1(){w(Xe()),Q=[],ie=[]}},this.abort=function(){Z=!0},this.getCharIndex=function(){return $}}function v(_){var A=_.data,E=s[A.workerId],B=!1;if(A.error)E.userError(A.error,A.file);else if(A.results&&A.results.data){var w={abort:function(){B=!0,k(A.workerId,{data:[],errors:[],meta:{aborted:!0}})},pause:W,resume:W};if(z(E.userStep)){for(var N=0;N<A.results.data.length&&(E.userStep({data:A.results.data[N],errors:A.results.errors,meta:A.results.meta},w),!B);N++);delete A.results}else z(E.userChunk)&&(E.userChunk(A.results,w,A.file),delete A.results)}A.finished&&!B&&k(A.workerId,A.results)}function k(_,A){var E=s[_];z(E.userComplete)&&E.userComplete(A),E.terminate(),delete s[_]}function W(){throw new Error("Not implemented.")}function S(_){if(typeof _!="object"||_===null)return _;var A,E=Array.isArray(_)?[]:{};for(A in _)E[A]=S(_[A]);return E}function M(_,A){return function(){_.apply(A,arguments)}}function z(_){return typeof _=="function"}return u.parse=function(_,A){var E=(A=A||{}).dynamicTyping||!1;if(z(E)&&(A.dynamicTypingFunction=E,E={}),A.dynamicTyping=E,A.transform=!!z(A.transform)&&A.transform,!A.worker||!u.WORKERS_SUPPORTED)return E=null,u.NODE_STREAM_INPUT,typeof _=="string"?(_=c(_),E=new(A.download?h:m)(A)):_.readable===!0&&z(_.read)&&z(_.on)?E=new g(A):(r.File&&_ instanceof File||_ instanceof Object)&&(E=new p(A)),E.stream(_);(E=(()=>{var B;return!!u.WORKERS_SUPPORTED&&(B=(()=>{var w=r.URL||r.webkitURL||null,N=a.toString();return u.BLOB_URL||(u.BLOB_URL=w.createObjectURL(new Blob(["var global = (function() { if (typeof self !== 'undefined') { return self; } if (typeof window !== 'undefined') { return window; } if (typeof global !== 'undefined') { return global; } return {}; })(); global.IS_PAPA_WORKER=true; ","(",N,")();"],{type:"text/javascript"})))})(),(B=new r.Worker(B)).onmessage=v,B.id=l++,s[B.id]=B)})()).userStep=A.step,E.userChunk=A.chunk,E.userComplete=A.complete,E.userError=A.error,A.step=z(A.step),A.chunk=z(A.chunk),A.complete=z(A.complete),A.error=z(A.error),delete A.worker,E.postMessage({input:_,config:A,workerId:E.id})},u.unparse=function(_,A){var E=!1,B=!0,w=",",N=`\r
110
110
  `,P='"',U=P+P,I=!1,R=null,D=!1,$=((()=>{if(typeof A=="object"){if(typeof A.delimiter!="string"||u.BAD_DELIMITERS.filter(function(O){return A.delimiter.indexOf(O)!==-1}).length||(w=A.delimiter),typeof A.quotes!="boolean"&&typeof A.quotes!="function"&&!Array.isArray(A.quotes)||(E=A.quotes),typeof A.skipEmptyLines!="boolean"&&typeof A.skipEmptyLines!="string"||(I=A.skipEmptyLines),typeof A.newline=="string"&&(N=A.newline),typeof A.quoteChar=="string"&&(P=A.quoteChar,U=P+P),typeof A.header=="boolean"&&(B=A.header),Array.isArray(A.columns)){if(A.columns.length===0)throw new Error("Option columns is empty");R=A.columns}A.escapeChar!==void 0&&(U=A.escapeChar+P),A.escapeFormulae instanceof RegExp?D=A.escapeFormulae:typeof A.escapeFormulae=="boolean"&&A.escapeFormulae&&(D=/^[=+\-@\t\r].*$/)}})(),new RegExp(y(P),"g"));if(typeof _=="string"&&(_=JSON.parse(_)),Array.isArray(_)){if(!_.length||Array.isArray(_[0]))return Z(null,_,I);if(typeof _[0]=="object")return Z(R||Object.keys(_[0]),_,I)}else if(typeof _=="object")return typeof _.data=="string"&&(_.data=JSON.parse(_.data)),Array.isArray(_.data)&&(_.fields||(_.fields=_.meta&&_.meta.fields||R),_.fields||(_.fields=Array.isArray(_.data[0])?_.fields:typeof _.data[0]=="object"?Object.keys(_.data[0]):[]),Array.isArray(_.data[0])||typeof _.data[0]=="object"||(_.data=[_.data])),Z(_.fields||[],_.data||[],I);throw new Error("Unable to serialize unrecognized input");function Z(O,j,Y){var L="",ee=(typeof O=="string"&&(O=JSON.parse(O)),typeof j=="string"&&(j=JSON.parse(j)),Array.isArray(O)&&0<O.length),de=!Array.isArray(j[0]);if(ee&&B){for(var K=0;K<O.length;K++)0<K&&(L+=w),L+=H(O[K],K);0<j.length&&(L+=N)}for(var Q=0;Q<j.length;Q++){var ie=(ee?O:j[Q]).length,se=!1,ke=ee?Object.keys(j[Q]).length===0:j[Q].length===0;if(Y&&!ee&&(se=Y==="greedy"?j[Q].join("").trim()==="":j[Q].length===1&&j[Q][0].length===0),Y==="greedy"&&ee){for(var Ue=[],Le=0;Le<ie;Le++){var Se=de?O[Le]:Le;Ue.push(j[Q][Se])}se=Ue.join("").trim()===""}if(!se){for(var Me=0;Me<ie;Me++){0<Me&&!ke&&(L+=w);var p1=ee&&de?O[Me]:Me;L+=H(j[Q][p1],Me)}Q<j.length-1&&(!Y||0<ie&&!ke)&&(L+=N)}}return L}function H(O,j){var Y,L,ee;return O==null?"":O.constructor===Date?JSON.stringify(O).slice(1,25):(ee=!1,D&&typeof O=="string"&&D.test(O)&&(O="'"+O,ee=!0),L=(Y=O.toString()).replace($,U),(ee=ee||E===!0||typeof E=="function"&&E(O,j)||Array.isArray(E)&&E[j]||((de,K)=>{for(var Q=0;Q<K.length;Q++)if(-1<de.indexOf(K[Q]))return!0;return!1})(L,u.BAD_DELIMITERS)||-1<L.indexOf(w)||-1<Y.indexOf(P)||L.charAt(0)===" "||L.charAt(L.length-1)===" ")?P+L+P:L)}},u.RECORD_SEP="",u.UNIT_SEP="",u.BYTE_ORDER_MARK="\uFEFF",u.BAD_DELIMITERS=["\r",`
111
- `,'"',u.BYTE_ORDER_MARK],u.WORKERS_SUPPORTED=!i&&!!r.Worker,u.NODE_STREAM_INPUT=1,u.LocalChunkSize=10485760,u.RemoteChunkSize=5242880,u.DefaultDelimiter=",",u.Parser=b,u.ParserHandle=f,u.NetworkStreamer=h,u.FileStreamer=p,u.StringStreamer=m,u.ReadableStreamStreamer=g,r.jQuery&&((n=r.jQuery).fn.parse=function(_){var A=_.config||{},E=[];return this.each(function(N){if(!(n(this).prop("tagName").toUpperCase()==="INPUT"&&n(this).attr("type").toLowerCase()==="file"&&r.FileReader)||!this.files||this.files.length===0)return!0;for(var P=0;P<this.files.length;P++)E.push({file:this.files[P],inputElem:this,instanceConfig:n.extend({},A)})}),B(),this;function B(){if(E.length===0)z(_.complete)&&_.complete();else{var N,P,U,I,R=E[0];if(z(_.before)){var D=_.before(R.file,R.inputElem);if(typeof D=="object"){if(D.action==="abort")return N="AbortError",P=R.file,U=R.inputElem,I=D.reason,void(z(_.error)&&_.error({name:N},P,U,I));if(D.action==="skip")return void w();typeof D.config=="object"&&(R.instanceConfig=n.extend(R.instanceConfig,D.config))}else if(D==="skip")return void w()}var $=R.instanceConfig.complete;R.instanceConfig.complete=function(Z){z($)&&$(Z,R.file,R.inputElem),w()},u.parse(R.file,R.instanceConfig)}}function w(){E.splice(0,1),B()}}),o&&(r.onmessage=function(_){_=_.data,u.WORKER_ID===void 0&&_&&(u.WORKER_ID=_.workerId),typeof _.input=="string"?r.postMessage({workerId:u.WORKER_ID,results:u.parse(_.input,_.config),finished:!0}):(r.File&&_.input instanceof File||_.input instanceof Object)&&(_=u.parse(_.input,_.config))&&r.postMessage({workerId:u.WORKER_ID,results:_,finished:!0})}),(h.prototype=Object.create(d.prototype)).constructor=h,(p.prototype=Object.create(d.prototype)).constructor=p,(m.prototype=Object.create(m.prototype)).constructor=m,(g.prototype=Object.create(d.prototype)).constructor=g,u})}});/*! @bicharts/shape-core — Apache-2.0. Bundled reference data: GeoNames (https://www.geonames.org/) CC BY 4.0; US Census/TIGER (public domain). Full text: NOTICE in this package. */var $ee="6th of October City|giza|EG|31.05|29.82|368|W|,A Coruna|galicia|ES|-8.4|43.37|250|W|corunha;la coruna;coruna;la corogne;the groyne,Aachen|north rhine westphalia|DE|6.08|50.78|265|W|aix la chapelle;aquisgrao;aken;akwizgran;aquisgrana;aquisgrano;aquisgran;cachy;kreisfreie stadt aachen,Aalborg|north denmark|DK|9.92|57.05|142|W|alborg,Aba|abia state|NG|7.37|5.11|1160|W|,Abadan|khuzestan|IR|48.3|30.34|231|W|,Abaetetuba|para|BR|-48.88|-1.72|158|W|,Abakaliki|ebonyi state|NG|8.11|6.32|134|W|,Abakan|khakasiya republic|RU|91.43|53.72|184|W|,Abasolo|MX11|MX|-101.53|20.45|27|N|,Abbotsford|BC|CA|-122.25|49.06|141|NW|,Abbottabad|khyber pakhtunkhwa|PK|73.21|34.15|275|W|,Abeche|ouadai|TD|20.83|13.83|139|W|,Abengourou|comoe district|CI|-3.5|6.73|130|W|,Abeokuta|ogun state|NG|3.35|7.16|735|W|,Aberdeen|scotland|GB|-2.1|57.14|198|W|,Aberdeen|southern district|HK|114.15|22.25|157|W|aberdeen harbour,Aberdeen|SD|US|-98.49|45.46|28|N|,Abha|asir region|SA|42.51|18.22|210|W|,Abidjan|abidjan autonomous district|CI|-4|5.35|6321|W|abican;abidzan;abiyan,Abiko|chiba|JP|140.02|35.87|131|W|,Abilene|TX|US|-99.73|32.45|125|N|,Abington|PA|US|-75.12|40.12|55|N|abington township;municipio de abington,Abobo|abidjan autonomous district|CI|-4.02|5.42|1340|W|,Abohar|punjab|IN|74.2|30.14|145|W|,Abomey-Calavi|atlantique|BJ|2.36|6.45|385|W|,Abu al-Kahsib|basra|IQ|47.88|30.44|357|W|,Abu Dhabi|abu dhabi|AE|54.4|24.45|1807|W|abou dabi;abu dabi;abu zabi,Abu Ghurayb|baghdad|IQ|44.18|33.31|900|W|abou ghraib;abu ghraib;abu ghuraib,Abu Kabir|sharqia|EG|31.67|30.73|154|W|,Abuja|fct|NG|7.5|9.06|2690|W|abudza;abuya,Acambaro|MX11|MX|-100.72|20.03|57|N|,Acapulco de Juarez|MX12|MX|-99.91|16.85|658|NW|acapulco,Acarigua|portuguesa|VE|-69.2|9.55|188|W|,Acatzingo|MX21|MX|-97.78|18.98|25|N|san juan acatzingo,Acayucan|MX30|MX|-94.91|17.95|50|N|,Accra|greater accra|GH|-0.2|5.56|1963|W|acra;akra,Acheng|heilongjiang|CN|126.95|45.55|144|W|,Actopan|MX13|MX|-98.94|20.27|32|N|,Ad-Damazin|blue nile|SD|34.36|11.79|186|W|damazin,Ad-Dawahy|port said|EG|32.28|31.24|148|W|al dawahi,Adachi|tokyo|JP|139.81|35.76|695|W|adachi city,Adana|adana|TR|35.33|36.99|1816|W|antioch on sarus,Adapazari|sakarya|TR|30.4|40.78|286|W|,Addis Ababa|addis ababa|ET|38.75|9.02|3860|W|addis abeba;adis abeba,Addison|IL|US|-87.99|41.93|37|N|,Adelaide|south australia|AU|138.6|-34.93|1469|W|adelaida;adelajda,Adelanto|CA|US|-117.41|34.58|33|N|,Aden|aden|YE|45.04|12.78|1079|W|adem,Adiwerna|central java|ID|109.13|-6.94|134|W|,Adiyaman|adiyaman province|TR|38.28|37.76|290|W|adiyamanska,Admiralteisky|st petersburg|RU|30.3|59.92|157|W|,Ado-Ekiti|ekiti state|NG|5.22|7.62|435|W|,Adoni|andhra pradesh|IN|77.27|15.63|184|W|,Afyonkarahisar|afyonkarahisar province|TR|30.54|38.76|251|W|afyon;afyonkarahissar,Agadez|agadez|NE|7.99|16.97|149|W|agades,Agadir|souss massa|MA|-9.6|30.42|698|W|santa cruz,Agartala|tripura|IN|91.28|23.84|400|W|,Agawam|MA|US|-72.61|42.07|28|N|,Agege|lagos|NG|3.33|6.62|683|W|,Ageo|saitama|JP|139.61|35.97|226|W|,Agincourt North|ON|CA|-79.28|43.8|29|N|,Agra|uttar pradesh|IN|78.02|27.18|1430|W|,Agua Caliente|CA|US|-122.49|38.32|27|N|,Agua Dulce|MX30|MX|-94.15|18.14|36|N|,Agua Prieta|MX26|MX|-109.54|31.32|77|N|,Aguas Lindas de Goias|goias|BR|-48.28|-15.76|245|W|,Aguascalientes|MX01|MX|-102.28|21.88|722|NW|aguascalientes city;aguascalientes by,Ahilyanagar|maharashtra|IN|74.74|19.09|367|W|,Ahmadpur East|punjab|PK|71.26|29.14|196|W|ahmedpur east;ahmedpur sharqia;ahmedpur sarki,Ahmedabad|gujarat|IN|72.59|23.03|6357|W|ahmadabad,Ahuntsic-Cartierville|QC|CA|-73.67|45.57|135|NW|,Ahvaz|khuzestan|IR|48.68|31.32|841|W|ahwas;ahwaz,Ahwatukee Foothills|AZ|US|-111.98|33.34|83|N|,Aihara|kanagawa|JP|139.32|35.6|725|W|,Aihui|heilongjiang|CN|127.48|49.98|192|W|,Aiken|SC|US|-81.72|33.56|30|N|,Airdrie|AB|CA|-114.04|51.3|90|N|,Airport|HI|US|-157.93|21.34|28|N|,Ait Melloul|souss massa|MA|-9.5|30.34|187|W|,Aix-en-Provence|provence alpes cote d azur|FR|5.45|43.53|146|W|,Aizawl|mizoram|IN|92.72|23.73|293|W|aijal;aizol;aizwal,Ajalpan|MX21|MX|-97.26|18.38|28|N|,Ajax|ON|CA|-79.03|43.85|119|N|,Ajdabiya|al wahat|LY|20.23|30.76|131|W|adjdabia;adschdabiya;adzdabija;adzedabija;ajdabiyah;ecdebiye,Ajegunle|lagos|NG|3.33|6.45|550|W|,Ajman|ajman|AE|55.48|25.4|490|W|acman;adschman;adzman;ajman city;ajma;ujman,Ajmer|rajasthan|IN|74.64|26.45|542|W|adzmer,Akashi|hyogo|JP|135.01|34.66|303|W|,Akhmim|sohag|EG|31.75|26.56|151|W|,Akita|akita|JP|140.12|39.72|307|W|akita shi,Akola|maharashtra|IN|77|20.71|428|W|,Akowonjo|lagos|NG|3.31|6.61|308|W|,Akron|OH|US|-81.52|41.08|197|NW|,Aksaray|aksaray|TR|34.03|38.37|327|W|,Aktau|mangystau|KZ|51.17|43.66|147|W|aktaou;aktav;aqtau;aqtaw;shevchenko,Aktobe|aktobe|KZ|57.21|50.28|500|W|aktioube;aktiube;aqtobe;aktyubinsk,Akure|ondo state|NG|5.19|7.25|730|W|,Al Ahmadi|al ahmadi|KW|48.08|29.08|637|W|el ahmedi,Al Ain City|abu dhabi|AE|55.76|24.19|846|W|al ain;al ajn;al ayn,Al Ajaylat|an nuqat al khams|LY|12.38|32.76|130|W|,Al 'Amarah|maysan|IQ|47.14|31.84|323|W|amarah;amara,Al 'Ashir min Ramadan|sharqia|EG|31.75|30.3|246|W|cidade do ramadao;citta del decimo ramadan,Al Bab|aleppo|SY|37.52|36.37|130|W|,Al Basrah al Qadimah|basra|IQ|47.82|30.5|2015|W|,Al Diwaniyah|al qadisiyah|IQ|44.93|31.99|318|W|ad diwaniyah;diwaniya;diwaniyya;divanija;ed divaniye,Al Fallujah|anbar|IQ|43.79|33.35|190|W|al falludza;al falluja;falloujah;falludscha;falluja;fallujah;falludza;faluja;faluya;felluce,Al Fayyum|faiyum|EG|30.84|29.31|519|W|el fayum;faijum;fajum;fayoum;fayyum;fayun,Al Hasakah|al hasakah|SY|40.75|36.5|422|W|al hasaka;hasaka;hasakah;haseke;hassake,Al Hawamidiyah|giza|EG|31.25|29.9|155|W|,Al Hillah|babil|IQ|44.42|32.46|455|W|hillah;al hilla;el hille;hilla,Al Hindiyah|karbala|IQ|44.22|32.54|139|W|,Al Hoceima|tanger tetouan al hoceima|MA|-3.94|35.25|395|W|al husajma;alhucemas;villa alhucemas;villa sanjurjo,Al Hudaydah|al hudaydah|YE|42.95|14.8|734|W|el hudeyda,Al Hufuf|eastern province|SA|49.59|25.36|293|W|hofuf;al hofuf;hufuf,Al Jubayl|eastern province|SA|49.62|27.02|237|W|jubail;al jubail;al dschubail;al dzubajl;el cubeyl,Al-Junaynah|western darfur|SD|22.45|13.45|162|W|geneina;al dschunaina;al dzunajna;el geneina,Al Kharj|riyadh region|SA|47.33|24.16|425|W|al khardj;el harc,Al Khums|al marqab|LY|14.26|32.65|201|W|al jums;al chums;el hums;qabilat al khums,Al Khusus|qalyubia|EG|31.32|30.15|488|W|,Al-Kut|wasit|IQ|45.82|32.51|315|W|kut;al koet,Al Madinah|basra|IQ|47.27|30.96|255|W|,Al Mahallah al Kubra|gharbia|EG|31.17|30.97|592|W|,Al Mahmudiyah|baghdad|IQ|44.37|33.06|350|W|,Al Mansurah|dakahlia|EG|31.38|31.04|621|W|al mansura;el mansura;mansourah;mansura,Al Matariyah|dakahlia|EG|32.03|31.18|162|W|,Al Mawsil al Jadidah|nineveh|IQ|43.11|36.33|2065|W|,Al'met'yevsk|tatarstan republic|RU|52.32|54.9|140|W|almetjevsk;almetjewsk,Al Miqdadiyah|diyala|IQ|44.94|33.98|155|W|,Al Mubarraz|eastern province|SA|49.59|25.41|290|W|,Al Muharraq|muharraq|BH|50.61|26.26|176|W|al muharrak;muharraq,Al Qadarif|al qadarif|SD|35.38|14.03|363|W|gedaref;al kadarif;el gadarif;gadaref;gadarif,Al Qahirah al Jadidah||EG|31.44|30.04|313|W|,Al Qamishli|al hasakah|SY|41.23|37.05|184|W|kamischli;kamishli;kamishlie;kamisli;qamichli;qamischli,Al Qurnah|basra|IQ|47.43|31.02|134|W|,Al-'Ubur|qalyubia|EG|31.48|30.23|138|W|,Alabaster|AL|US|-86.82|33.24|32|N|,Alafaya|FL|US|-81.21|28.56|78|N|,Alagoinhas|bahia|BR|-38.42|-12.14|161|W|,Alameda|CA|US|-122.26|37.77|78|N|,Alamo|MX30|MX|-97.68|20.91|25|N|,Alamogordo|NM|US|-105.96|32.9|30|N|,Alandur|tamil nadu|IN|80.21|13|164|W|,Alanya|antalya|TR|32|36.54|364|W|,Alappuzha|kerala|IN|76.33|9.49|240|W|alleppey,Albacete|castille la mancha|ES|-1.86|38.99|173|W|,Albany|NY|US|-73.76|42.65|101|N|,Albany|GA|US|-84.16|31.58|74|N|albania,Albany|OR|US|-123.11|44.64|52|N|,Albany Park|IL|US|-87.72|41.97|52|N|,Albuquerque|NM|US|-106.65|35.08|564|NW|alburquerque;methville,Alcala de Henares|madrid|ES|-3.36|40.48|193|W|compluto,Alcorcon|madrid|ES|-3.82|40.35|172|W|,Aleppo|aleppo|SY|37.16|36.2|2098|W|alep;alepo;halep,Alexandra|gauteng|ZA|28.1|-26.11|179|W|,Alexandria|alexandria|EG|29.92|31.2|5263|W|alejandria;aleksandria;alessandria d egitto;alexandrie;iskandariyah;iskenderiye,Alexandria|VA|US|-77.05|38.8|159|NW|,Alexandria|LA|US|-92.45|31.31|47|N|,Aley|mount lebanon|LB|35.6|33.81|130|W|alayh,Algiers|algiers|DZ|3.09|36.73|2364|W|alger;algeri;algier;aljir;alzir;argel;cezayir,Algonquin|IL|US|-88.29|42.17|30|N|,Alhambra|AZ|US|-112.13|33.5|127|N|,Alhambra|CA|US|-118.13|34.1|85|N|,Aliamanu / Salt Lakes / Foster Village|HI|US|-157.92|21.36|38|N|salt lake,Aliayabiagba|lagos|NG|3.33|6.45|228|W|,Alicante|valencia|ES|-0.48|38.35|348|W|alacante,Alief|TX|US|-95.6|29.71|98|N|,Aligarh|uttar pradesh|IN|78.07|27.88|753|W|,Alimosho|lagos|NG|3.3|6.61|308|W|,Aliso Viejo|CA|US|-117.73|33.57|50|N|,Allapattah|FL|US|-80.22|25.81|54|N|,Allen|TX|US|-96.67|33.1|98|N|,Allen Park|MI|US|-83.21|42.26|27|N|,Allentown|PA|US|-75.49|40.61|120|N|,Allston|MA|US|-71.13|42.36|28|N|,Alma|QC|CA|-71.65|48.55|29|N|,Almaty|almaty|KZ|76.91|43.25|1977|W|almati;alma ata;werny,Almendares|havana|CU|-82.42|23.11|240|W|,Almere Stad|flevoland|NL|5.21|52.37|176|W|almere,Almeria|andalusia|ES|-2.46|36.84|196|W|,Aloha|OR|US|-122.87|45.49|49|N|,Alor Setar|kedah|MY|100.36|6.12|417|W|alor star,Alpharetta|GA|US|-84.29|34.08|63|N|,Altadena|CA|US|-118.13|34.19|42|N|,Altamira|para|BR|-52.21|-3.2|138|W|,Altamira|MX28|MX|-97.94|22.39|59|N|,Altamonte Springs|FL|US|-81.37|28.66|43|N|,Alto Barinas|barinas|VE|-70.23|8.59|284|W|,Alto Hospicio|tarapaca|CL|-70.1|-20.27|142|W|,Alton|IL|US|-90.18|38.89|27|N|,Altona|hamburg|DE|9.93|53.55|250|W|arrondissement daltona;bezirk altona;distretto di altona;hamburgo altona,Altoona|PA|US|-78.39|40.52|45|N|,Alvaro Obregon|MX09|MX|-99.2|19.36|726|NW|,Alvin|TX|US|-95.24|29.42|25|N|,Alvorada|rio grande do sul|BR|-51.08|-30|187|W|,Alwar|rajasthan|IN|76.62|27.56|322|W|,Amadora|lisbon|PT|-9.23|38.75|178|W|,Amagasaki|hyogo|JP|135.42|34.72|459|W|,Amarapura|mandalay region|MM|96.05|21.91|237|W|,Amarillo|TX|US|-101.83|35.22|198|NW|,Ambala|haryana|IN|76.8|30.36|195|W|,Ambarnath|maharashtra|IN|73.17|19.2|253|W|,Ambato|tungurahua province|EC|-78.62|-1.25|387|W|,Ambattur|tamil nadu|IN|80.16|13.1|466|W|,Ambon|maluku|ID|128.18|-3.7|347|W|ambon city;kota ambon,Ameca|MX14|MX|-104.05|20.55|36|N|municipio ameca,Amecameca|MX15|MX|-98.77|19.12|31|N|amecameca de juarez,American Fork|UT|US|-111.8|40.38|28|N|,Americana|sao paulo|BR|-47.33|-22.74|246|W|,Amersfoort|utrecht|NL|5.39|52.16|139|W|,Ames|IA|US|-93.62|42.03|65|N|,Amherst|NY|US|-78.8|42.98|122|N|,Amherst|MA|US|-72.52|42.37|39|N|,Amiens|hauts de france|FR|2.3|49.9|143|W|,Amman|amman|JO|35.95|31.96|1275|W|aman;ama,Amol|mazandaran|IR|52.35|36.47|237|W|,Amozoc de Mota|MX21|MX|-98.05|19.05|95|N|amozoc,Amravati|maharashtra|IN|77.75|20.93|647|W|,Amritsar|punjab|IN|74.88|31.62|1159|W|,Amroha|uttar pradesh|IN|78.47|28.9|176|W|,Amsterdam|north holland|NL|4.89|52.37|741|W|amesterda;amesterdao;amseutereudam;amsterda;amsterodam;amsut erudam;amusuterudamu;aemstelredamme;aemsterdam,An Nhon|gia lai|VN|109.11|13.89|308|W|,Anaco|anzoategui|VE|-64.46|9.43|139|W|,Anaheim|CA|US|-117.91|33.84|350|NW|,Anand|gujarat|IN|72.96|22.55|209|W|,Ananindeua|para|BR|-48.37|-1.37|535|W|,Anantapur|andhra pradesh|IN|77.61|14.68|267|W|,Anantnag|jammu and kashmir|IN|75.15|33.73|150|W|,Anapolis|goias|BR|-48.95|-16.33|319|W|,Anbu|guangdong|CN|116.68|23.45|162|W|,Ancaster|ON|CA|-79.99|43.22|40|N|,Anchorage|AK|US|-149.9|61.22|289|NW|,Anda|heilongjiang|CN|125.3|46.45|181|W|,Anderlecht|brussels capital|BE|4.31|50.84|160|W|,Anderson|IN|US|-85.68|40.11|55|N|,Anderson|SC|US|-82.65|34.5|27|N|,Andijon|andijan region|UZ|72.35|40.78|747|W|andican;andijan;andisjan;andizan;andizjan,Andimeshk|khuzestan|IR|48.35|32.46|135|W|,Andong|gyeongsangbuk do|KR|128.72|36.57|153|W|,Andover|MN|US|-93.29|45.23|32|N|,Ang Mo Kio New Town||SG|103.84|1.38|159|W|,Angarsk|irkutsk oblast|RU|103.91|52.56|243|W|,Angeles City|central luzon|PH|120.58|15.15|483|W|,Angers|pays de la loire|FR|-0.55|47.47|168|W|,Angono|calabarzon|PH|121.15|14.53|134|W|,Angra dos Reis|rio de janeiro|BR|-44.32|-23.01|179|W|,Angren|tashkent region|UZ|70.14|41.02|191|W|,Anjo|aichi|JP|137.08|34.96|188|W|,Ankang|shaanxi|CN|109.02|32.68|870|W|,Ankara|ankara|TR|32.85|39.92|3517|W|ancara;angora,Ankeny|IA|US|-93.61|41.73|56|N|,Ann Arbor|MI|US|-83.74|42.28|117|N|,Annaba|annaba|DZ|7.77|36.9|342|W|bone,Annandale|VA|US|-77.2|38.83|41|N|,Annapolis|MD|US|-76.49|38.98|40|N|,Annex|ON|CA|-79.4|43.67|30|N|,Anqing|anhui|CN|117.05|30.51|804|W|an khanh;an cching;anking,Anqiu|shandong|CN|119.19|36.43|364|W|,Ansan-si|gyeonggi do|KR|126.82|37.32|623|W|ansan,Anshan|liaoning|CN|122.99|41.12|1450|W|an son;an san,Anshun|guizhou|CN|105.93|26.25|765|W|an sun,Antakya|hatay|TR|36.16|36.21|399|W|antioche;antiochia am orontes;antiochia di siria;antiochia vid orontes;antiochie;antiokia;antioquia;antioch;teopolis,Antalya|antalya|TR|30.7|36.91|1335|W|antalia,Antananarivo|analamanga|MG|47.54|-18.91|1349|W|antananarywa;tananarive,Antelope|CA|US|-121.33|38.71|45|N|,Antioch|CA|US|-121.81|38|110|N|,Antipolo|calabarzon|PH|121.12|14.63|913|W|antipolo city,Antofagasta|antofagasta|CL|-70.4|-23.65|401|W|,Antsirabe|vakinankaratra|MG|47.03|-19.87|260|W|,Antsiranana|diana|MG|49.29|-12.32|136|W|diego suarez,Antwerp|flanders|BE|4.4|51.22|529|W|amberes;antuerpia;antverpy;antwerpen;antwerpia;anvers;anversa;kota antwerpen,Anyama|abidjan autonomous district|CI|-4.05|5.49|133|W|,Anyang|henan|CN|114.38|36.1|1146|W|an duong;an jang,Anyang-si|gyeonggi do|KR|126.93|37.39|595|W|anyang,Aomori|aomori|JP|140.73|40.82|298|W|,Apache Junction|AZ|US|-111.55|33.42|38|N|,Apan|MX13|MX|-98.45|19.71|26|N|,Aparecida de Goiania|goias|BR|-49.24|-16.82|527|W|,Apaseo el Alto|MX11|MX|-100.62|20.46|27|N|,Apaseo el Grande|MX11|MX|-100.69|20.55|26|N|,Apatzingan|MX16|MX|-102.36|19.09|102|N|,Apeldoorn|gelderland|NL|5.97|52.21|136|W|,Apex|NC|US|-78.85|35.73|45|N|,Apizaco|MX29|MX|-98.14|19.41|49|N|ciudad de apizaco,Apopka|FL|US|-81.51|28.68|48|N|,Apple Valley|CA|US|-117.19|34.5|72|N|,Apple Valley|MN|US|-93.22|44.73|51|N|,Appleton|WI|US|-88.42|44.26|74|N|,Apucarana|parana|BR|-51.46|-23.55|134|W|,Aqsu|xinjiang|CN|80.28|41.18|535|W|aksou;aksu;ciudad de aksu,Ar Ramtha|irbid|JO|36.01|32.56|155|W|,Ar Raqqah|raqqa|SY|39.01|35.95|531|W|raqqa;rakka,Ar Rayyan|baladiyat ar rayyan|QA|51.42|25.29|272|W|al rayyan,Arabi|somali|ET|42.49|9.96|148|W|,Aracaju|sergipe|BR|-37.07|-10.91|664|W|,Aracatuba|sao paulo|BR|-50.43|-21.21|208|W|,Arad|arad county|RO|21.32|46.18|169|W|,Araguaina|tocantins|BR|-48.21|-7.19|183|W|,Arak|markazi|IR|49.7|34.09|503|W|,Arakawa|tokyo|JP|139.78|35.74|216|W|arakawa city,Arandas|MX14|MX|-102.35|20.71|52|N|,Arapiraca|alagoas|BR|-36.66|-9.75|243|W|,Arar|northern borders region|SA|41.04|30.98|148|W|,Araraquara|sao paulo|BR|-48.18|-21.79|168|W|,Araras|sao paulo|BR|-47.38|-22.36|135|W|,Araruama|rio de janeiro|BR|-42.34|-22.87|137|W|,Araucaria|parana|BR|-49.41|-25.59|162|W|,Araure|portuguesa|VE|-69.24|9.58|181|W|,Arba Minch|south ethiopia regional state|ET|37.55|6.03|201|W|,Arcadia|CA|US|-118.04|34.14|58|N|,Arcahaie|ouest|HT|-72.51|18.77|130|W|,Archway|england|GB|-0.13|51.57|215|W|,Arcola East|SK|CA|-104.54|50.43|33|N|,Ardabil|ardabil province|IR|48.29|38.25|410|W|ardebil;erdebil,Arden-Arcade|CA|US|-121.38|38.6|92|N|,Ardmore|OK|US|-97.14|34.17|25|N|,Arequipa|arequipa|PE|-71.54|-16.4|1195|W|,Arganzuela|madrid|ES|-3.7|40.4|148|W|,Arhus|central jutland|DK|10.21|56.16|285|W|aarhus,Arica|arica y parinacota region|CL|-70.3|-18.48|241|W|,Arif Wala|balochistan|PK|66.3|26.32|157|W|,Arifwala|punjab|PK|73.07|30.29|854|W|,Arish|north sinai|EG|33.8|31.13|199|W|al arisch;al arish;al arisz;alarixe;aris;el arish;el aris;el arich;city of cut noses,Arkhangel'sk|arkhangelskaya|RU|40.55|64.55|349|W|arkhangelsk;arcangelo;archangelsk;arcangel;arkangeli,Arlington|TX|US|-97.11|32.74|388|NW|,Arlington|VA|US|-77.1|38.88|207|NW|,Arlington|MA|US|-71.16|42.42|42|N|,Arlington Heights|IL|US|-87.98|42.09|75|N|,Armavir|krasnodar krai|RU|41.11|45|199|W|armawir,Armenia|quindio department|CO|-75.67|4.54|304|W|armenien;armenie;ermenistan,Arnavutkoey|istanbul|TR|28.74|41.18|198|W|arnavutkoy,Arnhem|gelderland|NL|5.91|51.98|162|W|arnheim;arnhemia,Arrah|bihar|IN|84.66|25.56|261|W|,Arroyo Naranjo|havana|CU|-82.38|23.04|210|W|,Artux|xinjiang|CN|76.18|39.71|285|W|,Arusha|arusha|TZ|36.68|-3.37|617|W|,Arvada|CO|US|-105.09|39.8|115|N|,As Salimiyah|hawalli|KW|48.08|29.33|147|W|,As Samawah|muthanna|IQ|45.29|31.33|152|W|samawa;samawah;semave,Asahikawa|hokkaido|JP|142.36|43.77|333|W|,Asaka|saitama|JP|139.6|35.8|141|W|,Asansol|west bengal|IN|86.98|23.68|504|W|,Asela|oromiya|ET|39.13|7.95|139|W|,Ash Sharqat|salah ad din|IQ|43.23|35.52|160|W|,Ash Shatrah|dhi qar|IQ|46.17|31.41|182|W|,Ashaiman|greater accra|GH|-0.03|5.7|190|W|ashiaman,Ashburn|VA|US|-77.49|39.04|43|N|,Ashburn|IL|US|-87.71|41.75|42|N|,Ashdod|southern district|IL|34.65|31.79|226|W|aschdod;asdod;asdode;ashdod yam;asjdod;aszdod,Asheboro|NC|US|-79.81|35.71|26|N|,Asheville|NC|US|-82.55|35.6|95|N|,Ashgabat|ashgabat|TM|58.38|37.95|1030|W|achgabat;aschgabat;asgabate;ashkabad;ashkhabad;asjabad;asjchabad;asjkhabad;aszchabad;asgabat;askabat;aschabad,Ashikaga|tochigi|JP|139.45|36.33|144|W|,Ashkelon|southern district|IL|34.57|31.67|144|W|ashqelon;ashquelon,Ashmont|MA|US|-71.07|42.28|30|N|,Ashuganj City|chittagong|BD|91.01|24.04|210|W|,Asmara|maekel|ER|38.93|15.34|563|W|,Aspen Hill|MD|US|-77.07|39.08|48|N|,Assiut|asyut|EG|31.18|27.18|528|W|asyut,Astana|astana|KZ|71.45|51.18|1544|W|akmolinsk;noer soeltan;nour soultan;nur sultan;tselinograd,Astanajapura|west java|ID|108.63|-6.8|148|W|,Astoria|NY|US|-73.93|40.77|150|NW|,Astrakhan|astrakhan oblast|RU|48.04|46.35|533|W|astrachan;astracan;astraca;astrahan,Asuncion|asuncion|PY|-57.65|-25.29|1482|W|assuncao,Aswan|aswan|EG|32.9|24.09|379|W|assouan;assuan;assuao;asuan;asvan,Atani|anambra|NG|6.75|6.01|230|W|,Atascadero|CA|US|-120.67|35.49|29|N|,Atascocita|TX|US|-95.18|30|65|N|,Atasehir|istanbul|TR|29.12|40.98|361|W|,Athens|attica|GR|23.73|37.98|664|W|ateena;aten;atena;atenas;atene;ateny;athen;athena;athene;athenes;atheny;athinai;atina;kota athena,Athens|GA|US|-83.38|33.96|127|N|,Athens|OH|US|-82.1|39.33|25|N|,Athlone|western cape|ZA|18.5|-33.97|237|W|,Atibaia|sao paulo|BR|-46.55|-23.12|158|W|,Atlanta|GA|US|-84.39|33.75|510|NW|,Atlantic City|NJ|US|-74.42|39.36|39|N|kota atlantic,Atlixco|MX21|MX|-98.44|18.91|86|N|,Atotonilco el Alto|MX14|MX|-102.51|20.55|26|N|,Atsiaman|greater accra|GH|-0.33|5.7|202|W|achiaman;ashaiman,Atsugi|kanagawa|JP|139.37|35.44|223|W|acugi,Attleboro|MA|US|-71.29|41.94|44|N|,Attock City|punjab|PK|72.36|33.77|141|W|,Atwater|CA|US|-120.61|37.35|29|N|,Atyrau|atyrau oblisi|KZ|51.88|47.1|290|W|atyraou;atyraw;atirau;atirav;atiraw,Auburn|WA|US|-122.23|47.31|77|N|,Auburn|AL|US|-85.48|32.61|62|N|,Auburn|NY|US|-76.57|42.93|26|N|,Auburn Gresham|IL|US|-87.65|41.74|45|N|,Auckland|auckland|NZ|174.76|-36.85|1547|W|,Augsburg|bavaria|DE|10.9|48.37|301|W|augsbourg;augsburg innenstadt;augsburgo;augusta,Augusta|GA|US|-81.97|33.47|43|N|,Aurangabad|maharashtra|IN|75.34|19.88|1175|W|,Aurora|CO|US|-104.83|39.73|359|NW|,Aurora|IL|US|-88.32|41.76|200|NW|,Aurora|ON|CA|-79.47|44|55|N|,Austin|TX|US|-97.74|30.27|974|NW|,Austintown|OH|US|-80.76|41.1|29|N|,Autlan de Navarro|MX14|MX|-104.37|19.77|45|N|,Avadi|tamil nadu|IN|80.11|13.11|345|W|,Avellaneda|buenos aires|AR|-58.37|-34.66|367|W|,Aventura|FL|US|-80.14|25.96|37|N|,Avondale|AZ|US|-112.35|33.44|80|N|,Avondale|IL|US|-87.71|41.94|39|N|,Avtozavodskyi|poltava|UA|33.43|49.1|157|W|avtozavodskyi rayon;avtozavodskyy;avtozavodskyy rayon,Awasa|sidama region|ET|38.48|7.06|422|W|awassa,Awka|anambra|NG|7.07|6.21|167|W|avka,Ayacucho|ayacucho|PE|-74.22|-13.16|140|W|,Aydin|aydin|TR|27.84|37.85|163|W|tralleis;tralli,Aylmer|QC|CA|-75.81|45.4|56|N|,Az Zawiyah|az zawiyah|LY|12.73|32.76|200|W|ez zaviye;zawiyah,Az-Zuhur|port said|EG|32.26|31.27|266|W|al zohur,Azcapotzalco|MX09|MX|-99.19|19.49|414|NW|,Azusa|CA|US|-117.91|34.13|49|N|,Ba Dinh|hanoi|VN|105.83|21.04|221|W|,Ba Vi|hanoi|VN|105.38|21.08|282|W|,Bab Ezzouar|algiers|DZ|3.18|36.73|275|W|,Babol|mazandaran|IR|52.68|36.55|202|W|,Bac Giang|bac ninh|VN|106.19|21.27|450|W|,Bac Lieu|ca mau|VN|105.73|9.29|156|W|,Bac Ninh|bac ninh|VN|106.08|21.19|287|W|,Bac Tu Liem|hanoi|VN|105.75|21.07|340|W|,Bacau|bacau county|RO|26.91|46.57|136|W|,Bachuan|chongqing|CN|106.05|29.85|208|W|,Back Mountain|PA|US|-76|41.34|26|N|,Bacolod City|western visayas|PH|122.95|10.67|454|W|bacolod,Bacoor|calabarzon|PH|120.94|14.46|356|W|,Badajoz|extremadura|ES|-6.97|38.88|150|W|badajos,Badalona|catalonia|ES|2.25|41.45|217|W|,Bade|taiwan|TW|121.28|24.93|209|W|bade district,Badlapur|maharashtra|IN|73.27|19.16|174|W|,Bafoussam|west|CM|10.42|5.48|373|W|bafousam;bafusam;befoussam,Bagcilar|istanbul|TR|28.86|41.04|740|W|,Bagerhat|khulna division|BD|89.79|22.66|266|W|,Baghdad|baghdad|IQ|44.4|33.34|7216|W|bagdad;bagda;bagdat,Bago|bago region|MM|96.48|17.34|244|W|pegu;pegou,Bago City|western visayas|PH|122.83|10.53|192|W|bago,Bagong Silang|national capital region|PH|121.04|14.78|261|W|,Baguio|cordillera|PH|120.59|16.42|272|W|baguio city;kota baguio,Bahadurgarh|haryana|IN|76.94|28.69|170|W|,Baharampur|west bengal|IN|88.25|24.1|180|W|,Baharkah|erbil|IQ|44.04|36.32|130|W|,Bahawalnagar|punjab|PK|73.25|30|241|W|bahawalpur,Bahawalpur|punjab|PK|71.68|29.4|903|W|,Bahcelievler|istanbul|TR|28.86|41|576|W|,Bahia Blanca|buenos aires|AR|-62.27|-38.72|299|W|,Bahir Dar|amhara|ET|37.39|11.59|350|W|bahar dar;baher dar;bahyr dar,Bahraigh|uttar pradesh|IN|81.59|27.57|182|W|bahraich,Baicheng|jilin|CN|122.83|45.62|316|W|paj ccheng,Baise|guangxi|CN|106.63|23.89|686|W|baise city,Baishan|jilin|CN|126.42|41.94|183|W|paj san,Baiyin|gansu|CN|104.17|36.55|294|W|paj jin,Bakersfield|CA|US|-119.02|35.37|373|NW|,Baku|baki|AZ|49.89|40.38|2351|W|bacu;bakoe;bakou,Balakovo|saratov oblast|RU|47.8|52.03|199|W|balakowo,Balashikha|moscow oblast|RU|37.95|55.79|150|W|balachikha;balaschicha;balasjicha;balasjikha;balasiha;balasicha;balaszycha,Balasore|odisha|IN|86.93|21.49|144|W|baleshwar;baleswar,Balbala|djibouti|DJ|43.11|11.56|554|W|,Balch Springs|TX|US|-96.62|32.73|25|N|,Balcon de la Lisa|havana|CU|-82.45|23.05|147|W|,Baldwin Park|CA|US|-117.96|34.09|77|N|,Bali|west bengal|IN|88.34|22.65|296|W|,Balikesir|balikesir|TR|27.89|39.65|238|W|,Balikpapan|east kalimantan|ID|116.83|-1.27|695|W|kota balikpapan,Baliuag|central luzon|PH|120.9|14.95|135|W|,Ballari|karnataka|IN|76.92|15.14|410|W|bellary,Ballwin|MO|US|-90.55|38.6|30|N|,Balneario Camboriu|santa catarina|BR|-48.63|-26.99|139|W|camboriu,Baltimore|MD|US|-76.61|39.29|585|NW|baltimora,Balurghat|west bengal|IN|88.78|25.22|153|W|,Balvanera|buenos aires f d|AR|-58.4|-34.61|152|W|,Bamako|bamako|ML|-7.98|12.61|4227|W|,Bamenda|north west|CM|10.15|5.96|420|W|,Ban Khlong Prawet|bangkok|TH|100.68|13.72|160|W|,Banan|chongqing|CN|106.54|29.38|508|W|,Banbury-Don Mills|ON|CA|-79.35|43.74|27|N|,Banda|uttar pradesh|IN|80.33|25.48|152|W|,Banda Aceh|aceh|ID|95.33|5.54|267|W|banda acheh;banda achem;banda atjeh;kota banda aceh,Bandar Abbas|hormozgan|IR|56.28|27.19|352|W|bandar e abbas;bender abbas;cambarao;gombroon;gumrun;port comorao,Bandar Bukit Raja|selangor|MY|101.43|3.09|146|W|,Bandar-e Mahshahr|khuzestan|IR|49.19|30.56|162|W|,Bandar Lampung|lampung|ID|105.26|-5.43|1166|W|bandarlampung;kota bandar lampung,Bandar Seri Alam|johor|MY|103.88|1.5|220|W|seri alam city,Bandar Sunway|selangor|MY|101.61|3.07|200|W|sunway city,Bandar Tasik Puteri|selangor|MY|101.47|3.29|150|W|puteri lake city,Bandar Utama|kuala lumpur|MY|101.61|3.15|200|W|,Bandarban|chittagong|BD|92.22|22.2|495|W|,Bandundu Province|kwilu|CD|17.38|-3.32|202|W|bandundu;bandundu bolgesi;provincia de bandundu;provincia di bandundu;provinsi bandundu;provinz bandundu,Bandung|west java|ID|107.61|-6.92|2528|W|kota bandung,Bang Kapi|bangkok|TH|100.65|13.77|147|W|,Bang Khae|bangkok|TH|100.41|13.69|193|W|,Bang Khun Thian|bangkok|TH|100.43|13.66|165|W|,Bangkok|bangkok|TH|100.5|13.75|5104|W|banguecoque;bancoque,Bangor|ME|US|-68.77|44.8|32|N|,Bangui|bangui|CF|18.55|4.36|812|W|bangi,Banha|qalyubia|EG|31.18|30.46|182|W|,Bani Suwayf|beni suweif|EG|31.1|29.07|273|W|,Banja Luka|srpska|BA|17.21|44.78|221|W|bania luka;banya luka,Banjar|west java|ID|107.43|-7.2|209|W|,Banjaran|west java|ID|107.59|-7.05|164|W|,Banjarbaru|south kalimantan|ID|114.84|-3.44|293|W|bandjarbaru,Banjarmasin|south kalimantan|ID|114.59|-3.32|657|W|,Bankura|west bengal|IN|87.07|23.23|133|W|,Banning|CA|US|-116.88|33.93|30|N|,Bannu|khyber pakhtunkhwa|PK|70.6|32.99|1357|W|,Banqiao|taipei|TW|121.47|25.01|551|W|banqiao district;banciao;banciao district,Bao'an|guangdong|CN|113.88|22.55|4476|W|,Bao Loc|lam dong|VN|107.81|11.55|170|W|,Baoding|hebei|CN|115.46|38.87|2739|W|prefettura di baoding,Baoji|shaanxi|CN|107.24|34.37|1437|W|,Baoshan|shanghai|CN|121.49|31.41|2265|W|,Baoshan|yunnan|CN|99.16|25.12|935|W|pao san,Baotou|inner mongolia|CN|109.84|40.65|2150|W|pao tchou,Baqubah|diyala|IQ|44.61|33.75|152|W|bakouba;bakuba;baquba,Barakpur|west bengal|IN|88.36|22.77|148|W|,Baranagar|west bengal|IN|88.38|22.64|260|W|barahanagore,Baranovichi|brest|BY|26.01|53.13|170|W|baranavitsjy;baranawitschy;baranovitchi;baranovitsi;baranowicze,Barasat|west bengal|IN|88.48|22.72|298|W|,Barberton|OH|US|-81.61|41.01|26|N|,Barcarena|para|BR|-48.63|-1.51|139|W|,Barcelona|catalonia|ES|2.16|41.39|1686|W|barcellona;barcelone;barselona;la ciudad condal,Barcelona|anzoategui|VE|-64.69|10.14|815|W|barselona,Barddhaman|west bengal|IN|87.86|23.26|301|W|bardhaman;burdwan,Bareilly|uttar pradesh|IN|79.43|28.37|745|W|bareli,Bari|apulia|IT|16.87|41.12|316|W|,Bariadi|simiyu|TZ|33.98|-2.8|260|W|,Barinas|barinas|VE|-70.23|8.62|397|W|,Barishal|barisal division|BD|90.37|22.7|202|W|,Barking|england|GB|0.08|51.53|218|W|barking town,Barnaul|altai krai|RU|83.73|53.36|632|W|barnaoel;barnaoul,Barnstable|MA|US|-70.3|41.7|47|N|,Barquisimeto|lara|VE|-69.36|10.06|1240|W|,Barra da Tijuca|rio de janeiro|BR|-43.37|-23|421|W|kiki,Barra Mansa|rio de janeiro|BR|-44.17|-22.54|181|W|,Barrancabermeja|santander department|CO|-73.85|7.07|191|W|barracana bermeja,Barranquilla|atlantico|CO|-74.78|10.97|1206|W|barranquilha,Barreiras|bahia|BR|-44.99|-12.15|171|W|,Barrie|ON|CA|-79.67|44.4|147|NW|,Bartlesville|OK|US|-95.98|36.75|36|N|,Bartlett|TN|US|-89.87|35.2|58|N|,Bartlett|IL|US|-88.19|42|41|N|,Barueri|sao paulo|BR|-46.88|-23.51|316|W|tambore,Baruta|miranda|VE|-66.88|10.43|244|W|,Barysaw|minsk|BY|28.5|54.23|133|W|borisov,Basaksehir|istanbul|TR|28.79|41.11|193|W|,Basel|basel city|CH|7.57|47.56|177|W|basilea;basileia;basilej;bazel;bazylea;bale,Basildon|england|GB|0.46|51.57|144|W|,Basirhat City|west bengal|IN|88.85|22.66|143|W|,Basrah|basra|IQ|47.78|30.51|1326|W|basra;al basra;basora;bassora;bassorah;bacora,Basuo|hainan|CN|108.67|19.1|444|W|,Bata|litoral|GQ|9.77|1.86|173|W|,Batala|punjab|IN|75.2|31.81|158|W|,Batam|riau|ID|104.02|1.15|1296|W|kota batam,Batang|central java|ID|110.71|-6.48|139|W|,Batangas|calabarzon|PH|121.06|13.76|237|W|,Batavia|IL|US|-88.31|41.85|26|N|,Bath Beach|NY|US|-74|40.6|33|N|,Bathinda|punjab|IN|74.94|30.21|285|W|,Batikent|ankara|TR|32.73|39.97|300|W|,Batman|batman|TR|41.13|37.89|452|W|,Batna|batna|DZ|6.17|35.56|289|W|batina;batna city;batnah,Baton Rouge|LA|US|-91.19|30.44|227|NW|,Battagram|khyber pakhtunkhwa|PK|73.02|34.68|700|W|battagram city,Battle Creek|MI|US|-85.18|42.32|51|N|,Batu|east java|ID|112.53|-7.87|225|W|kota batu,Batu Caves|selangor|MY|101.68|3.24|254|W|,Batu Pahat|johor|MY|102.93|1.85|156|W|,Batumi|adjara|GE|41.63|41.64|186|W|bat umi;batoemi;batoumi;batum,Baturaja|south sumatra|ID|104.17|-4.13|134|W|,Baubau|southeast sulawesi|ID|122.6|-5.46|161|W|bau bau,Bauchi|bauchi|NG|9.84|10.31|693|W|bauczi,Bauru|sao paulo|BR|-49.06|-22.31|392|W|,Bawshar|muscat|OM|58.4|23.58|383|W|,Bay City|MI|US|-83.89|43.59|33|N|kota bay,Bay Shore|NY|US|-73.25|40.73|26|N|,Bay Street Corridor|ON|CA|-79.39|43.66|25|N|,Bayamo|granma province|CU|-76.64|20.37|192|W|,Bayamon|bayamon|PR|-66.16|18.4|203|W|,Bayan Lepas|penang|MY|100.26|5.3|130|W|,Bayan Nur|inner mongolia|CN|107.39|40.74|1760|W|,Bayji|salah ad din|IQ|43.49|34.93|173|W|,Bayonne|NJ|US|-74.11|40.67|66|N|,Bayside|NY|US|-73.78|40.77|66|N|,Baytown|TX|US|-94.98|29.74|76|N|,Bayview-Hunters Point|CA|US|-122.38|37.73|34|N|,Bazhong|sichuan|CN|106.74|31.87|2712|W|,Beaumont|TX|US|-94.1|30.09|115|N|,Beaumont|CA|US|-116.98|33.93|43|N|,Beauport|QC|CA|-71.19|46.86|81|N|montmorency,Beavercreek|OH|US|-84.06|39.71|46|N|beaver creek,Beaverton|OR|US|-122.8|45.49|96|N|,Beawar|rajasthan|IN|74.32|26.1|151|W|,Bechar|bechar|DZ|-2.22|31.62|165|W|basyar;baszszar,Bedford|TX|US|-97.14|32.84|49|N|,Bedok New Town||SG|103.94|1.33|276|W|,Beed|maharashtra|IN|75.76|18.99|146|W|,Beersheba|southern district|IL|34.79|31.25|186|W|be er scheva;be er sheva;beer sheba;beer szewa;beer seva;beer sheva;beerseba;beerseva;berseba;bersyeba;beer sjeva,Begoua|ombella m poko|CF|18.53|4.45|264|W|,Begusarai|bihar|IN|86.13|25.42|252|W|,Bei'an|heilongjiang|CN|126.6|48.27|436|W|,Beibei|chongqing|CN|106.44|29.83|247|W|,Beihai|guangxi|CN|109.12|21.48|525|W|pej chaj,Beijing|beijing|CN|116.4|39.91|18960|W|pechino;pekin;peking;pequim,Beiliu|guangxi|CN|110.35|22.71|199|W|,Beining|liaoning|CN|121.79|41.6|152|W|,Beipiao|liaoning|CN|120.78|41.79|190|W|,Beira|sofala|MZ|34.84|-19.84|687|W|,Beirut|beirut|LB|35.5|33.89|1916|W|beiroet;beirute;bejrut;beyrouth;beyrut,Bejaia|bejaia|DZ|5.08|36.76|176|W|bidschaya;bijaya;bougie;bugia,Bekasi|west java|ID|106.99|-6.23|2648|W|kota bekasi,Bel Air North|MD|US|-76.37|39.55|30|N|,Bel Air South|MD|US|-76.32|39.51|47|N|,Belagavi|karnataka|IN|74.5|15.85|490|W|belgaum,Belem|para|BR|-48.5|-1.46|1499|W|,Belfast|northern ireland|GB|-5.93|54.6|348|W|belfast city,Belford Roxo|rio de janeiro|BR|-43.4|-22.76|518|W|,Belgorod|belgorod oblast|RU|36.58|50.6|345|W|bielgorod;bilhorod;bilhorod dnistrovskyi,Belgrade|central serbia|RS|20.47|44.8|1273|W|belgrad;belgrado;beograd;belehrad,Belgrano|buenos aires f d|AR|-58.46|-34.56|138|W|barrio belgrano,Bell|CA|US|-118.19|33.98|36|N|,Bell Gardens|CA|US|-118.15|33.97|43|N|,Bella Vista|nacional|DO|-69.95|18.46|175|W|,Bella Vista|AR|US|-94.27|36.48|27|N|,Belleville|ON|CA|-77.38|44.17|50|N|,Belleville|IL|US|-89.98|38.52|42|N|,Belleville|NJ|US|-74.15|40.79|36|N|,Bellevue|WA|US|-122.2|47.61|139|NW|,Bellevue|NE|US|-95.89|41.14|55|N|,Bellflower|CA|US|-118.12|33.88|78|N|,Bellingham|WA|US|-122.49|48.76|85|N|,Bello|antioquia|CO|-75.56|6.34|392|W|,Belmont|CA|US|-122.28|37.52|27|N|,Belmont Cragin|IL|US|-87.77|41.93|79|N|,Belo Horizonte|minas gerais|BR|-43.94|-19.92|2721|W|b h;belo hte;bhte,Beloit|WI|US|-89.03|42.51|36|N|,Beltline|AB|CA|-114.07|51.04|25|N|,Belvidere|IL|US|-88.84|42.26|25|N|,Ben Cat|ho chi minh city hcmc|VN|106.6|11.15|364|W|,Bend|OR|US|-121.32|44.06|87|N|,Bendale|ON|CA|-79.25|43.77|29|N|,Benfica|luanda|AO|13.16|-8.94|191|W|,Bengaluru|karnataka|IN|77.59|12.97|8495|W|bangalore,Bengbu|anhui|CN|117.36|32.94|972|W|,Benghazi|banghazi|LY|20.07|32.11|757|W|banghazi;bengasi;bengazi;bingazi,Bengkulu|bengkulu|ID|102.27|-3.8|397|W|,Benguela|benguela|AO|13.4|-12.58|555|W|,Beni|north kivu|CD|29.47|0.49|140|W|new beni;nouveau beni,Beni Mellal|beni mellal khenifra|MA|-6.35|32.34|210|W|bani mallal;beni melal,Benicia|CA|US|-122.16|38.05|28|N|,Benin City|edo state|NG|5.63|6.34|1782|W|benim;benin;benin by;benin stadt;ciudad de benin;kota benin,Benito Juarez|MX09|MX|-99.16|19.37|385|NW|,Benoni|gauteng|ZA|28.32|-26.19|605|W|,Bensalem|PA|US|-74.95|40.1|60|N|bensalem township;municipio de bensalem;xa bensalem,Bensonhurst|NY|US|-73.99|40.6|60|N|,Benton|AR|US|-92.59|34.56|34|N|,Bentonville|AR|US|-94.21|36.37|44|N|,Benxi|liaoning|CN|123.77|41.29|987|W|pen si,Berazategui|buenos aires|AR|-58.21|-34.77|180|W|,Berbera|woqooyi galbeed|SO|45.01|10.44|242|W|,Bercham|perak|MY|101.14|4.64|150|W|,Berezniki|perm krai|RU|56.82|59.41|167|W|beresniki;bieriezniki,Bergen|vestland|NO|5.32|60.39|294|W|,Bergenfield|NJ|US|-74|40.93|27|N|,Berkeley|CA|US|-122.27|37.87|120|N|,Berlin|state of berlin|DE|13.41|52.52|3426|W|berliini;berlijn;berlim;berlino,Berrechid|casablanca settat|MA|-7.59|33.27|149|W|,Berriozabal|MX05|MX|-93.27|16.8|28|N|,Bertoua|east|CM|13.68|4.58|137|W|,Berwyn|IL|US|-87.79|41.85|56|N|,Bessemer|AL|US|-86.95|33.4|26|N|,Bethel Park|PA|US|-80.04|40.33|32|N|,Bethesda|MD|US|-77.1|38.98|60|N|,Bethlehem|PA|US|-75.37|40.63|74|N|,Betim|minas gerais|BR|-44.2|-19.97|384|W|,Bettendorf|IA|US|-90.52|41.52|35|N|,Bettiah|bihar|IN|84.5|26.8|132|W|,Beverly|MA|US|-70.88|42.56|41|N|,Beverly Cove|MA|US|-70.85|42.55|40|N|,Beverly Hills|CA|US|-118.4|34.07|34|N|,Bexley|england|GB|0.15|51.44|228|W|london borough of bexley,Beylikduezue|istanbul|TR|28.64|40.98|415|W|beylikduzu,Bhadravati|karnataka|IN|75.71|13.85|163|W|,Bhagalpur|bihar|IN|86.97|25.24|400|W|,Bhakkar|punjab|PK|71.06|31.63|131|W|,Bhalswa Jahangirpur|delhi|IN|77.17|28.74|197|W|,Bharatpur|bagmati province|NP|84.44|27.68|369|W|,Bharatpur|rajasthan|IN|77.49|27.22|252|W|,Bharuch|gujarat|IN|72.98|21.69|169|W|,Bhatara|dhaka division|BD|90.45|23.8|324|W|,Bhatpara|west bengal|IN|88.4|22.87|483|W|,Bhavnagar|gujarat|IN|72.15|21.76|605|W|,Bhawana|punjab|PK|72.65|31.57|373|W|bhanawa,Bhayandar|maharashtra|IN|72.85|19.3|809|W|,Bhetia|jharkhand|IN|86.14|22.79|174|W|,Bhilai|chhattisgarh|IN|81.43|21.21|627|W|bhilai nagar;bhilaj nagar,Bhilwara|rajasthan|IN|74.64|25.35|359|W|,Bhimavaram|andhra pradesh|IN|81.52|16.54|146|W|,Bhind|madhya pradesh|IN|78.79|26.57|197|W|,Bhisho|eastern cape|ZA|27.44|-32.85|137|W|bisho,Bhiwandi|maharashtra|IN|73.06|19.3|874|W|,Bhiwani|haryana|IN|76.14|28.79|196|W|,Bhopal|madhya pradesh|IN|77.4|23.25|1798|W|,Bhubaneswar|odisha|IN|85.83|20.27|885|W|bhubaneshwar,Bhuj|gujarat|IN|69.67|23.25|148|W|,Bhusawal|maharashtra|IN|75.79|21.04|187|W|,Bialystok|podlasie|PL|23.16|53.13|295|W|,Bibirevo|moscow|RU|37.6|55.88|159|W|,Bida|niger state|NG|6.01|9.08|400|W|,Bidar|karnataka|IN|77.52|17.91|216|W|,Bielany|mazovia|PL|20.94|52.29|131|W|,Bielefeld|north rhine westphalia|DE|8.53|52.03|331|W|,Bielsko-Biala|silesia|PL|19.05|49.82|176|W|bielitz biala;bilsko bela,Bien Hoa|dong nai|VN|106.82|10.94|1272|W|bienhoa,Big Spring|TX|US|-101.48|32.25|28|N|,Bihar Sharif|bihar|IN|85.52|25.2|297|W|,Bijie|guizhou|CN|105.29|27.3|1137|W|pi tie;prefecture de bijie,Bikaner|rajasthan|IN|73.31|28.02|644|W|,Bila Tserkva|kyiv oblast|UA|30.12|49.8|207|W|belaya tserkov;biala cerkiew;bila cerkva;bila zerkwa;bila terkva,Bilaspur|chhattisgarh|IN|82.16|22.08|365|W|,Bilbao|basque country|ES|-2.93|43.26|347|W|bilbau;el bocho,Bilbeis|sharqia|EG|31.56|30.42|185|W|bilbajs;bilbays;bilbeys,Bilimora|gujarat|IN|72.96|20.77|510|W|,Billerica|MA|US|-71.27|42.56|39|N|,Billings|MT|US|-108.5|45.78|117|N|,Biloxi|MS|US|-88.89|30.4|45|N|,Bilqas|dakahlia|EG|31.36|31.21|137|W|,Bima|west nusa tenggara|ID|118.73|-8.46|165|W|,Bimbo|ombella m poko|CF|18.42|4.26|348|W|,Binan|calabarzon|PH|121.08|14.34|300|W|binan city;kota binan,Binangonan|calabarzon|PH|121.19|14.46|219|W|,Binghamton|NY|US|-75.92|42.1|46|N|,Binh Thanh|ho chi minh city hcmc|VN|106.71|10.81|552|W|,Binjai|north sumatra|ID|98.49|3.6|279|W|kota binjai,Bintulu|sarawak|MY|113.03|3.17|151|W|,Binzhou|shandong|CN|118.02|37.37|682|W|pin cou;tan chau,Biratnagar|koshi|NP|87.27|26.46|244|W|,Birendranagar|karnali pradesh|NP|81.62|28.6|154|W|birendra nagar;birendranagara,Birganj|madhesh|NP|84.88|27.02|268|W|birgunj,Birjand|south khorasan province|IR|59.22|32.87|196|W|birdschand,Birkenhead|england|GB|-3.01|53.39|325|W|,Birmingham|england|GB|-1.9|52.48|1157|W|,Birmingham|AL|US|-86.8|33.52|196|NW|,Biryulevo|moscow|RU|37.68|55.59|144|W|,Bishan|chongqing|CN|106.22|29.59|204|W|,Bishkek|bishkek|KG|74.59|42.87|900|W|bichkek;bischkek;bisjkek;biskek;bisqueque;biszkek,Bishoftu|oromiya|ET|38.98|8.75|207|W|,Biskra|biskra|DZ|5.73|34.85|204|W|biskira,Bismarck|ND|US|-100.78|46.81|75|N|bismarck i nord dakota,Bissau|bissau|GW|-15.6|11.86|439|W|bisau,Bitung|north sulawesi|ID|125.13|1.44|225|W|kota bitung,Biysk|altai krai|RU|85.2|52.53|215|W|biejsk;bijsk,Bizerte|bizerte governorate|TN|9.87|37.27|138|W|biserta;bizert;bizerta,Blackburn|england|GB|-2.48|53.75|146|W|,Blackpool|england|GB|-3.05|53.82|145|W|,Blacksburg|VA|US|-80.41|37.23|44|N|,Blagoveshchensk|amur oblast|RU|127.53|50.28|225|W|blagovesjtsjensk;blagovechtchensk;blagoveschensk;blagovesjtjensk;blagovescensk;blagovestsensk;blagoweschtschensk;blagowieszczensk,Blaine|MN|US|-93.23|45.16|62|N|,Blainville|QC|CA|-73.88|45.67|46|N|,Blantyre|southern region|MW|35.01|-15.78|902|W|,Blida|blida|DZ|2.83|36.47|331|W|al bulajda;buleyde,Blitar|east java|ID|112.17|-8.1|161|W|kota blitar,Bloemfontein|free state|ZA|26.21|-29.12|556|W|,Bloomfield|NJ|US|-74.19|40.81|49|N|,Bloomington|MN|US|-93.3|44.84|86|N|,Bloomington|IN|US|-86.53|39.17|84|N|,Bloomington|IL|US|-88.99|40.48|78|N|,Blue Springs|MO|US|-94.28|39.02|54|N|,Blumenau|santa catarina|BR|-49.07|-26.92|361|W|,Bnei Brak|tel aviv|IL|34.83|32.08|214|W|benai beraq;bene berak;bene beraq;benei beraq;beney beraq;bnei berak;bnej brak;bney brak;bne beraq,Bo|southern province|SL|-11.74|7.96|233|W|,Boa Vista|roraima|BR|-60.67|2.82|419|W|,Boardman|OH|US|-80.66|41.02|35|N|,Bobo-Dioulasso|hauts bassins|BF|-4.29|11.18|904|W|,Bobruysk|mogilev|BY|29.21|53.15|205|W|babroejsk;babruisk;babrujsk;babruysk;bobruisk;bobrujsk,Boca Raton|FL|US|-80.08|26.36|93|N|boca de ratones;wta boca raton,Bochum|north rhine westphalia|DE|7.22|51.48|385|W|,Bocoio|benguela|AO|14.14|-12.47|164|W|,Bogor|west java|ID|106.79|-6.59|1078|W|kota bogor,Bogota|bogota d c|CO|-74.08|4.61|7674|W|santafe de bogota,Bogra|rajshahi division|BD|89.37|24.85|210|W|,Bohuniya|zhytomyr oblast|UA|28.61|50.28|147|W|bohunia;bohuniia;bohunskyi;bohunskyi rayon,Boisbriand|QC|CA|-73.83|45.62|26|N|,Boise|ID|US|-116.2|43.61|235|NW|,Bojnurd|north khorasan|IR|57.33|37.47|192|W|bojnourd,Bokaro|jharkhand|IN|86.15|23.67|564|W|bokaro steel city,Boksburg|gauteng|ZA|28.26|-26.21|445|W|,Bole|xinjiang|CN|82.07|44.89|235|W|,Bolingbrook|IL|US|-88.07|41.7|74|N|,Bologna|emilia romagna|IT|11.34|44.49|394|W|bologne;bolonha;bolonia;bolonya,Bolton|england|GB|-2.43|53.58|141|W|,Bolton|ON|CA|-79.74|43.88|26|N|,Bolu|bolu|TR|31.61|40.74|184|W|,Boma|bas congo|CD|13.05|-5.85|297|W|,Bondoukou|zanzan district|CI|-2.8|8.04|141|W|,Bonita Springs|FL|US|-81.78|26.34|51|N|,Bonn|north rhine westphalia|DE|7.1|50.73|330|W|bona,Bontang|east kalimantan|ID|117.49|0.13|194|W|kota bontang,Borama|awdal|SO|43.18|9.94|597|W|boorama,Bordeaux|new aquitaine|FR|-0.58|44.84|265|W|bordeus;burdeos,Bordj Bou Arreridj|bordj bou arreridj|DZ|4.76|36.07|158|W|burdz bu urajridz,Borivli|maharashtra|IN|72.86|19.23|609|W|borivali,Borough Park|NY|US|-74|40.63|149|NW|,Borshchahivka|kyiv city|UA|30.39|50.43|179|W|,Borujerd|lorestan province|IR|48.75|33.9|251|W|,Boshan|shandong|CN|117.83|36.48|153|W|,Bossier City|LA|US|-93.73|32.52|68|N|,Boston|MA|US|-71.06|42.36|653|NW|,Botad|gujarat|IN|71.67|22.17|130|W|,Bothell|WA|US|-122.21|47.76|42|N|,Botshabelo|free state|ZA|26.73|-29.27|309|W|,Botucatu|sao paulo|BR|-48.45|-22.89|145|W|,Bouake|vallee du bandama district|CI|-5.03|7.69|832|W|,Boucherville|QC|CA|-73.44|45.59|39|N|,Boulder|CO|US|-105.27|40.01|106|N|,Bountiful|UT|US|-111.88|40.89|43|N|,Bournemouth|england|GB|-1.88|50.72|163|W|,Bowie|MD|US|-76.73|38.94|58|N|bowie station;huntington city;huntington station,Bowling Green|KY|US|-86.44|36.99|63|N|,Bowling Green|OH|US|-83.65|41.37|31|N|,Bowmanville|ON|CA|-78.68|43.92|39|N|,Boyeros|havana|CU|-82.4|23.01|188|W|,Boyle Heights|CA|US|-118.21|34.03|92|N|,Boynton Beach|FL|US|-80.07|26.53|73|N|,Bozeman|MT|US|-111.04|45.68|43|N|,Bozhou|anhui|CN|115.77|33.88|1409|W|po cou,Bradenton|FL|US|-82.57|27.5|54|N|,Bradford|england|GB|-1.75|53.79|366|W|,Braga|braga|PT|-8.42|41.55|193|W|,Braganca|para|BR|-46.77|-1.05|132|W|,Braganca Paulista|sao paulo|BR|-46.54|-22.95|176|W|,Brahmanbaria|chittagong|BD|91.11|23.97|264|W|,Brahmapur|odisha|IN|84.79|19.31|356|W|,Braila|braila county|RO|27.97|45.27|154|W|berail;ibrail;brillago;drinago,Braintree|MA|US|-71|42.2|37|N|,Brakpan|gauteng|ZA|28.37|-26.24|305|W|,Brampton|ON|CA|-79.77|43.68|656|NW|,Brandon|FL|US|-82.29|27.94|103|N|,Brandon|MB|CA|-99.95|49.85|48|N|,Branford|CT|US|-72.82|41.28|29|N|,Brant|ON|CA|-80.35|43.13|34|N|,Brantford|ON|CA|-80.27|43.13|104|N|,Brasilandia|sao paulo|BR|-46.69|-23.45|243|W|,Brasilia|federal district|BR|-47.93|-15.78|2207|W|,Brasov|brasov county|RO|25.61|45.65|253|W|kronstadt;braszow,Bratislava|bratislava region|SK|17.11|48.15|423|W|bratyslawa;presbourg;pressburg,Bratsk|irkutsk oblast|RU|101.61|56.13|256|W|brack,Braunschweig|lower saxony|DE|10.53|52.27|244|W|brunswick;brunszwik,Brawley|CA|US|-115.53|32.98|25|N|,Brazzaville|brazzaville|CG|15.28|-4.27|1982|W|brazavil,Brea|CA|US|-117.9|33.92|41|N|,Breda|north brabant|NL|4.78|51.59|184|W|,Bremen|bremen|DE|8.81|53.08|546|W|brema;bremy;breme,Bremerton|WA|US|-122.63|47.57|39|N|,Brent|england|GB|-0.3|51.55|329|W|london borough of brent,Brentwood|NY|US|-73.25|40.78|60|N|,Brentwood|CA|US|-121.7|37.93|58|N|,Brentwood|TN|US|-86.78|36.03|41|N|,Brentwood Estates|TN|US|-86.78|36.03|31|N|,Brescia|lombardy|IT|10.21|45.54|200|W|,Brest|brest|BY|23.72|52.11|347|W|brest nad bugem;brest litovsk;brzesc;brest litowsk,Brest|brittany|FR|-4.49|48.39|144|W|,Briarwood|NY|US|-73.82|40.71|53|N|,Brick|NJ|US|-74.14|40.06|76|N|,Bridgeport|CT|US|-73.19|41.18|147|NW|,Bridgeport|IL|US|-87.65|41.84|33|N|,Bridgeton|NJ|US|-75.23|39.43|25|N|,Bridgewater|NJ|US|-74.65|40.6|44|N|,Brighouse-City Centre|BC|CA|-123.13|49.17|62|N|brighouse;richmond brighouse,Brighton|england|GB|-0.14|50.83|283|W|,Brighton|MA|US|-71.16|42.35|45|N|,Brighton|CO|US|-104.82|39.99|37|N|,Brighton|NY|US|-77.55|43.15|36|N|,Brighton Beach|NY|US|-73.96|40.58|31|N|,Brighton Park|IL|US|-87.7|41.82|44|N|,Brisbane|queensland|AU|153.03|-27.47|2780|W|brisbane city,Bristol|england|GB|-2.6|51.46|479|W|,Bristol|CT|US|-72.95|41.67|60|N|,Bristol|TN|US|-82.19|36.6|26|N|,Brno|south moravian|CZ|16.61|49.2|379|W|brunn,Brockton|MA|US|-71.02|42.08|95|N|,Broken Arrow|OK|US|-95.79|36.05|106|N|,Brookfield|WI|US|-88.11|43.06|38|N|,Brookhaven|GA|US|-84.34|33.86|51|N|north atlanta,Brooklin|ON|CA|-78.96|43.96|25|N|,Brookline|MA|US|-71.12|42.33|58|N|,Brooklyn|NY|US|-73.95|40.65|2736|NW|borough of brooklyn,Brooklyn Center|MN|US|-93.33|45.08|30|N|,Brooklyn Park|MN|US|-93.36|45.09|79|N|,Broomfield|CO|US|-105.09|39.92|65|N|,Brossard|QC|CA|-73.47|45.45|69|N|,Brownsville|TX|US|-97.5|25.9|186|NW|,Brownsville|NY|US|-73.92|40.66|74|N|,Brunswick|OH|US|-81.84|41.24|34|N|,Brusque|santa catarina|BR|-48.91|-27.1|155|W|,Brussels|brussels capital|BE|4.35|50.85|1019|W|brussel;bruxelles;bruksela;brusel;bruselas;bruxelas;bryssel;bruksel;citta di bruxelles;city of brussels;kota brusel,Bryan|TX|US|-96.37|30.67|82|N|,Bryansk|bryansk oblast|RU|34.32|53.27|427|W|brjansk;breansk;briansk;brianski,Bucaramanga|santander department|CO|-73.12|7.12|581|W|,Bucharest|bucharest|RO|26.11|44.43|1877|W|boekarest;bucarest;bucareste;bucuresti;bukarest;bukareszt;bukurest;bukres,Bucheon-si|gyeonggi do|KR|126.78|37.5|850|W|bucheon,Buckeye|AZ|US|-112.58|33.37|50|N|,Buda|budapest|HU|19.03|47.5|510|W|altofen;boeda;budin;ofen,Budapest|budapest|HU|19.04|47.5|1741|W|boedapest;budapesta;budapeste;budapeszt;ofen pest,Budapest XI. keruelet|budapest|HU|19.04|47.48|139|W|budapest xi kerulet;ujbuda,Budaun|uttar pradesh|IN|79.13|28.04|161|W|badaun,Budta|autonomous region in muslim mindanao|PH|124.44|7.2|1273|W|,Buea|south west|CM|9.24|4.15|140|W|,Buena Park|CA|US|-118|33.87|83|N|,Buenaventura|valle del cauca department|CO|-77|3.58|432|W|,Buenaventura Lakes|FL|US|-81.35|28.34|26|N|,Buenavista|MX15|MX|-99.17|19.61|216|NW|,Bueng Kum|bangkok|TH|100.67|13.79|145|W|ban bueng kum;ban cum,Buenos Aires|buenos aires f d|AR|-58.38|-34.61|2891|W|santa maria del buen ayre,Bueyuekcekmece|istanbul|TR|28.59|41.02|163|W|buyukcekmece,Buffalo|NY|US|-78.88|42.89|258|NW|bufalo,Buffalo Grove|IL|US|-87.96|42.15|41|N|,Buguma|rivers state|NG|6.86|4.74|135|W|,Bujumbura|bujumbura mairie|BI|29.36|-3.38|769|W|buyumbura;buzumbura,Bukan|west azerbaijan|IR|46.21|36.52|193|W|,Bukavu|south kivu|CD|28.84|-2.49|816|W|costermansstad;costermansville,Bukhara|bukhara|UZ|64.43|39.77|280|W|boukhara;bucara;buchara;buhara;bujara,Bukit Batok New Town||SG|103.76|1.36|158|W|,Bukit Jalil|kuala lumpur|MY|101.68|3.05|200|W|,Bukit Merah Estate||SG|103.82|1.28|151|W|,Bukit Mertajam|penang|MY|100.47|5.36|212|W|bukit mertarajam,Bukit Panjang New Town||SG|103.76|1.38|138|W|,Bukit Rahman Putra|selangor|MY|101.56|3.22|607|W|,Bukoba|kagera|TZ|31.81|-1.33|144|W|,Bulandshahr|uttar pradesh|IN|77.86|28.4|198|W|bulendsehr,Bulaon|central luzon|PH|120.66|15.08|131|W|,Bulawayo|bulawayo|ZW|28.58|-20.15|665|W|,Bullhead City|AZ|US|-114.57|35.15|39|N|,Bumba|mongala|CD|22.47|2.19|154|W|,Bunamwaya|central region|UG|32.56|0.25|413|W|,Bunda|mara|TZ|33.87|-2.02|182|W|,Bunia|ituri|CD|30.25|1.56|399|W|,Bunkyo|kanagawa|JP|139.42|35.53|240|W|bunkyo city,Buon Ma Thuot|dak lak|VN|108.04|12.67|434|W|,Burari|delhi|IN|77.2|28.76|146|W|,Buraydah|al qassim region|SA|43.97|26.33|745|W|buraidah;burajda;burayda,Burbank|CA|US|-118.31|34.18|105|N|,Burbank|IL|US|-87.78|41.73|29|N|,Burewala|punjab|PK|72.65|30.17|361|W|,Burgas|burgas|BG|27.47|42.51|210|W|boergas;bourgas;burgaz,Burgos|castille and leon|ES|-3.7|42.34|176|W|,Burhanpur|madhya pradesh|IN|76.23|21.31|210|W|,Burien|WA|US|-122.35|47.47|50|N|,Burke|VA|US|-77.27|38.79|41|N|,Burleson|TX|US|-97.32|32.54|43|N|,Burlingame|CA|US|-122.37|37.58|30|N|,Burlington|ON|CA|-79.84|43.39|186|NW|,Burlington|NC|US|-79.44|36.1|52|N|,Burlington|VT|US|-73.21|44.48|42|N|,Burlington|IA|US|-91.11|40.81|25|N|,Burnaby|BC|CA|-122.95|49.27|249|NW|,Burnley|england|GB|-2.23|53.8|149|W|,Burnsville|MN|US|-93.28|44.77|61|N|,Bursa|bursa province|TR|29.06|40.2|3101|W|,Burton|MI|US|-83.62|43|28|N|,Busan|busan|KR|129.03|35.1|3285|W|busan si;pusan,Bush|beni suweif|EG|31.13|29.15|136|W|,Bushehr|bushehr|IR|50.84|28.97|165|W|bandar bushehr;buschehr;bushire;busehr,Bushwick|NY|US|-73.92|40.69|112|N|,Business Bay|dubai|AE|55.27|25.19|191|W|,Bustleton|PA|US|-75.03|40.08|32|N|,Butembo|north kivu|CD|29.29|0.14|286|W|,Butte|MT|US|-112.53|46|34|N|,Butuan|caraga|PH|125.54|8.95|309|W|butuan city;city of butuan;kota butuan,Butwal|lumbini province|NP|83.45|27.69|195|W|,Bydgoszcz|kujawsko pomorskie|PL|18.01|53.12|330|W|bromberg;bydhost,Bytom|silesia|PL|18.93|50.35|189|W|beuthen,Ca Mau|ca mau|VN|105.15|9.18|226|W|,Caala|huambo|AO|15.56|-12.85|130|W|,Cabanatuan City|central luzon|PH|120.97|15.49|343|W|cabanatuan,Cabimas|zulia|VE|-71.45|10.4|351|W|,Cabinda|cabinda|AO|12.19|-5.56|550|W|,Cabo de Santo Agostinho|pernambuco|BR|-35.03|-8.29|216|W|,Cabo Frio|rio de janeiro|BR|-42.03|-22.89|238|W|,Cabo San Lucas|MX03|MX|-109.91|22.89|202|NW|,Cabot|AR|US|-92.02|34.97|25|N|,Cabuyao|calabarzon|PH|121.13|14.27|308|W|cabuyao city,Cachoeirinha|sao paulo|BR|-46.66|-23.45|143|W|,Cachoeirinha|rio grande do sul|BR|-51.09|-29.95|141|W|,Cachoeiro de Itapemirim|espirito santo|BR|-41.11|-20.85|198|W|,Cacuaco|luanda|AO|13.37|-8.78|146|W|,Cadereyta|MX19|MX|-99.98|25.58|67|N|,Cadereyta Jimenez|MX19|MX|-100|25.59|68|N|,Cagayan de Oro|northern mindanao|PH|124.65|8.48|741|W|,Cagliari|sardinia|IT|9.12|39.23|149|W|casteddu,Cai Lay|dong thap|VN|106.12|10.4|143|W|,Cainta|calabarzon|PH|121.12|14.58|283|W|,Cairns|queensland|AU|145.77|-16.92|153|W|,Cairo|cairo|EG|31.25|30.06|9606|W|el cairo;kairo;le caire;il cairo;kahire;kair;kahira,Cajamarca|cajamarca department|PE|-78.5|-7.16|201|W|,Calabar|cross river state|NG|8.33|4.96|540|W|,Calabozo|guarico|VE|-67.43|8.92|168|W|,Calama|antofagasta|CL|-68.92|-22.46|166|W|,Calamba|calabarzon|PH|121.17|14.21|575|W|calamba city;kota calamba,Caldwell|ID|US|-116.69|43.66|51|N|,Caledon|ON|CA|-79.99|43.87|76|N|,Calexico|CA|US|-115.5|32.68|40|N|,Calgary|AB|CA|-114.09|51.05|1306|NW|,Cali|valle del cauca department|CO|-76.52|3.43|2392|W|santiago de cali,Callao|callao|PE|-77.13|-12.05|1226|W|el callao,Caloocan|national capital region|PH|120.97|14.65|1712|W|caloocan city;lungsod ng caloocan,Calpulalpan|MX29|MX|-98.57|19.59|33|N|,Calumbo|bengo|AO|13.42|-9.15|652|W|,Calumet City|IL|US|-87.53|41.62|37|N|calumet,Cam Pha|quang ninh|VN|107.27|21.01|190|W|,Cam Pha Mines|quang ninh|VN|107.3|21.02|135|W|,Cam Ranh|khanh hoa|VN|109.16|11.92|146|W|,Camacari|bahia|BR|-38.32|-12.7|321|W|,Camagueey|camaguey|CU|-77.92|21.38|347|W|camaguey,Camama|luanda|AO|13.27|-8.94|667|W|,Camaragibe|pernambuco|BR|-34.98|-8.02|160|W|,Camarillo|CA|US|-119.04|34.22|67|N|,Camayenne|conakry|GN|-13.69|9.54|1871|W|,Cambridge|england|GB|0.12|52.2|145|W|,Cambridge|ON|CA|-80.31|43.36|129|N|,Cambridge|MA|US|-71.11|42.38|110|N|,Camden|NJ|US|-75.12|39.93|76|N|,Cameta|para|BR|-49.5|-2.24|134|W|,Campbell|CA|US|-121.95|37.29|41|N|,Campbell River|BC|CA|-125.24|50.02|33|N|,Campeche|MX04|MX|-90.52|19.84|220|NW|san francisco de campeche,Campina Grande|paraiba|BR|-35.88|-7.23|443|W|,Campinas|sao paulo|BR|-47.06|-22.91|1031|W|campinas e regiao;regiao de campinas,Campo Grande|mato grosso do sul|BR|-54.65|-20.44|906|W|,Campo Largo|parana|BR|-49.53|-25.46|144|W|,Campo Limpo|sao paulo|BR|-46.77|-23.64|236|W|,Campos dos Goytacazes|rio de janeiro|BR|-41.33|-21.75|483|W|,Can Giuoc|tay ninh|VN|106.67|10.61|152|W|,Can Tho|can tho city|VN|105.79|10.04|1507|W|,Canakkale|canakkale|TR|26.41|40.16|143|W|,Cananea|MX26|MX|-110.3|30.98|31|N|heroica ciudad de cananea,Canarsie|NY|US|-73.9|40.64|87|N|,Canberra|australian capital territory|AU|149.13|-35.28|367|W|camberra;kanberra,Cancun|MX23|MX|-86.85|21.17|888|NW|ciudad cancun,Candelaria|calabarzon|PH|121.42|13.93|137|W|,Cangaiba|sao paulo|BR|-46.52|-23.5|141|W|,Cangzhou|hebei|CN|116.85|38.31|527|W|cchang cou;thuong chau,Cankaya|ankara|TR|32.86|39.92|792|W|,Canoas|rio grande do sul|BR|-51.18|-29.92|328|W|,Canoga Park|CA|US|-118.6|34.2|60|N|,Canton|MI|US|-83.48|42.31|86|N|,Canton|OH|US|-81.38|40.8|71|N|,Canton|GA|US|-84.49|34.24|25|N|,Cantonment|FL|US|-87.34|30.61|26|N|,Canyon Country|CA|US|-118.47|34.42|59|N|,Cao Lanh|dong thap|VN|105.63|10.46|211|W|,Cap-Haitien|nord|HT|-72.2|19.76|134|W|cabo haitiano,Capao Redondo|sao paulo|BR|-46.78|-23.67|270|W|,Capas|central luzon|PH|120.59|15.33|162|W|,Cape Coast|central|GH|-1.25|5.11|212|W|,Cape Coral|FL|US|-81.95|26.56|175|NW|cabo coral,Cape Girardeau|MO|US|-89.52|37.31|39|N|cap girardeau,Cape Town|western cape|ZA|18.42|-33.93|4772|W|citta del capo;cidade do cabo;ciudad del cabo;el cabo;kaapstad;kapkaupunki;kapske mesto;kapstaden;kapstadt;kapsztad;le cap,Capiata|central department|PY|-57.45|-25.36|198|W|,Carabanchel|madrid|ES|-3.72|40.39|253|W|,Caracas|distrito federal|VE|-66.88|10.49|3000|W|karakas,Carapicuiba|sao paulo|BR|-46.84|-23.52|386|W|,Carbondale|IL|US|-89.22|37.73|26|N|,Cardenas|MX27|MX|-93.38|18|91|N|,Cardiff|wales|GB|-3.18|51.48|372|W|,Cariacica|espirito santo|BR|-40.42|-20.26|376|W|,Carletonville|gauteng|ZA|27.4|-26.36|182|W|,Carlsbad|CA|US|-117.35|33.16|114|N|,Carlsbad|NM|US|-104.23|32.42|28|N|,Carmel|IN|US|-86.12|39.98|88|N|,Carmichael|CA|US|-121.33|38.62|61|N|,Carney|MD|US|-76.52|39.39|29|N|,Carol City|FL|US|-80.25|25.94|63|N|,Carol Stream|IL|US|-88.13|41.91|40|N|,Carolina|carolina|PR|-65.96|18.38|170|W|caroline,Carpentersville|IL|US|-88.26|42.12|38|N|,Carrefour|ouest|HT|-72.4|18.53|511|W|,Carrollton|TX|US|-96.89|32.95|133|NW|,Carrollton|GA|US|-85.08|33.58|26|N|,Carrollwood|FL|US|-82.49|28.05|33|N|,Carrollwood Village|FL|US|-82.52|28.07|40|N|,Carson|CA|US|-118.28|33.83|93|N|,Carson City|NV|US|-119.77|39.16|58|N|kota carson,Cartagena|bolivar|CO|-75.49|10.4|914|W|carthagene;cartagena de indias;cartagena das indias;carthagene des indes,Cartagena|murcia|ES|-0.98|37.6|213|W|carthagene;kartagena,Cartago|valle del cauca department|CO|-75.91|4.75|134|W|,Cartierville|QC|CA|-73.7|45.53|34|N|,Caruaru|pernambuco|BR|-35.98|-8.28|402|W|,Carupano|sucre|VE|-63.25|10.67|167|W|,Cary|NC|US|-78.78|35.79|159|NW|,Casa Grande|AZ|US|-111.76|32.88|51|N|,Casablanca|casablanca settat|MA|-7.61|33.59|3665|W|dar ul beyda;kazablanka;white house,Casas Adobes|AZ|US|-111|32.32|66|N|,Cascavel|parana|BR|-53.46|-24.96|368|W|ular derik,Casper|WY|US|-106.31|42.87|60|N|,Casselberry|FL|US|-81.33|28.68|27|N|,Castanhal|para|BR|-47.93|-1.29|192|W|,Castello de la Plana|valencia|ES|-0.05|39.99|171|W|castellon;castellon de la plana,Castle Rock|CO|US|-104.86|39.37|55|N|,Castlewood|CO|US|-104.9|39.58|25|N|,Castro Valley|CA|US|-122.09|37.69|61|N|,Catacamas|olancho department|HN|-85.89|14.85|140|W|,Catalina Foothills|AZ|US|-110.92|32.3|50|N|,Catamarca|catamarca|AR|-65.79|-28.47|159|W|,Catania|sicily|IT|15.07|37.49|311|W|catane;katania,Catemaco|MX30|MX|-95.11|18.42|27|N|,Cathedral City|CA|US|-116.47|33.78|53|N|,Catonsville|MD|US|-76.73|39.27|41|N|,Cau Giay|hanoi|VN|105.8|21.03|292|W|,Caucaia|ceara|BR|-38.65|-3.74|378|W|,Caxias|maranhao|BR|-43.36|-4.86|163|W|,Caxias do Sul|rio grande do sul|BR|-51.18|-29.17|479|W|,Cazenga|luanda|AO|13.28|-8.84|394|W|,Cebu City|central visayas|PH|123.89|10.32|965|W|cebu;ciudad de cebu;cebu sehri;cidade de cebu;city of cebu;kota cebu,Cedar City|UT|US|-113.06|37.68|30|N|,Cedar Falls|IA|US|-92.45|42.53|41|N|,Cedar Hill|TX|US|-96.96|32.59|48|N|,Cedar Park|TX|US|-97.82|30.51|65|N|,Cedar Rapids|IA|US|-91.64|42.01|130|NW|,Ceilandia|federal district|BR|-48.13|-15.81|287|W|,Celaya|MX11|MX|-100.81|20.52|340|NW|,Celina|TX|US|-96.78|33.32|64|N|,Centennial|CO|US|-104.88|39.58|109|N|,Center City|PA|US|-75.16|39.95|57|N|centro de filadelfia,Centereach|NY|US|-73.1|40.86|31|N|,Central|LA|US|-91.04|30.55|28|N|,Central 14th Street / Spring Road|DC|US|-77.03|38.94|25|N|,Central City|AZ|US|-112.06|33.44|58|N|,Central Coast|new south wales|AU|151.37|-33.43|346|W|costa central,Central Islip|NY|US|-73.2|40.79|34|N|,Centralniy|st petersburg|RU|30.36|59.93|214|W|,Centre City|AB|CA|-114.07|51.05|41|N|,Centretown|ON|CA|-75.7|45.42|25|N|,Centreville|VA|US|-77.43|38.84|71|N|,Centro Familiar la Soledad|MX11|MX|-101.75|21.14|32|N|,Centro Habana|havana|CU|-82.37|23.13|158|W|,Centurion|gauteng|ZA|28.19|-25.86|236|W|,Ceres|CA|US|-120.96|37.59|47|N|,Cergy-Pontoise|ile de france|FR|2.08|49.04|183|W|,Cerritos|CA|US|-118.06|33.86|49|N|,Cerro|havana|CU|-82.38|23.11|132|W|,Ch'ongdan-up|south hwanghae|KP|125.94|37.97|142|W|,Chak Jhumra|punjab|PK|73.18|31.57|385|W|,Chakwama|jigawa state|NG|9.66|11.56|200|W|,Chalco|MX15|MX|-98.9|19.26|168|NW|,Chaman|balochistan|PK|66.45|30.92|130|W|caman,Chamartin|madrid|ES|-3.68|40.46|140|W|,Chamberi|madrid|ES|-3.7|40.43|145|W|,Chamblee|GA|US|-84.3|33.89|28|N|,Champaign|IL|US|-88.24|40.12|86|N|,Champoton|MX04|MX|-90.72|19.34|30|N|,Chanda|maharashtra|IN|79.3|19.95|328|W|chandrapur;candrapur,Chandannagar|west bengal|IN|88.37|22.86|180|W|chandernagor;chandernagore;candarnagar,Chandigarh|chandigarh|IN|76.79|30.74|970|W|czandigarh;candigarh,Chandler|AZ|US|-111.84|33.31|260|NW|,Chandpur|chittagong|BD|90.65|23.23|203|W|,Chang-hua|taiwan|TW|120.56|24.07|226|W|,Changam-ch'on|south hamgyong|KP|128.78|40.61|207|W|,Changchun|jilin|CN|125.32|43.88|4714|W|tschangtung;cangcun;cchang cchun,Changde|hunan|CN|111.7|29.03|1457|W|cchang te;changteh,Changhua|taiwan|TW|120.55|24.07|226|W|,Changji|xinjiang|CN|87.3|44.01|198|W|,Changle|shandong|CN|118.83|36.71|259|W|,Changning|shanghai|CN|121.42|31.22|694|W|,Changsha|hunan|CN|112.97|28.2|3093|W|cchang sa,Changsha|guangdong|CN|112.68|22.38|688|W|,Changshu|jiangsu|CN|120.74|31.65|1677|W|,Changwon|gyeongsangnam do|KR|128.68|35.23|1025|W|ch angwon;cchangwon,Changyi|shandong|CN|119.39|36.85|302|W|,Changyuan|chongqing|CN|105.59|29.4|186|W|,Changzheng|shanghai|CN|121.37|31.24|229|W|,Changzhi|shanxi|CN|113.11|36.18|1214|W|cchang c,Changzhou|jiangsu|CN|119.95|31.77|3290|W|cchang cou,Chanhassen|MN|US|-93.53|44.86|25|N|,Channelview|TX|US|-95.11|29.78|38|N|,Chaohu|anhui|CN|117.87|31.6|138|W|,Chaoyang|liaoning|CN|120.46|41.57|410|W|,Chaozhou|guangdong|CN|116.62|23.65|1750|W|cchao cou,Chapeco|santa catarina|BR|-52.62|-27.1|282|W|,Chapel Hill|NC|US|-79.06|35.91|59|N|,Chapra|bihar|IN|84.75|25.78|202|W|,Charleroi|wallonia|BE|4.44|50.41|200|W|,Charlesbourg|QC|CA|-71.31|46.9|82|N|,Charleston|SC|US|-79.93|32.78|132|NW|,Charleston|WV|US|-81.63|38.35|46|N|,Charlotte|NC|US|-80.84|35.23|911|NW|,Charlottesville|VA|US|-78.48|38.03|46|N|,Charlottetown|PE|CA|-63.13|46.23|38|N|,Chas|jharkhand|IN|86.17|23.64|141|W|,Chaska|MN|US|-93.6|44.79|25|N|,Chateauguay|QC|CA|-73.75|45.38|42|N|,Chatham|ON|CA|-82.18|42.41|43|N|,Chatham|IL|US|-87.61|41.74|31|N|,Chatsworth|CA|US|-118.6|34.26|41|N|,Chattanooga|TN|US|-85.31|35.05|181|NW|,Chattogram|chittagong|BD|91.83|22.34|3920|W|chittagong;cottogram;cattagram,Chatuchak|bangkok|TH|100.56|13.83|160|W|,Cheboksary|chuvash republic|RU|47.25|56.13|492|W|ceboksari;czeboksary;tcheboksary;tjeboksary;tscheboksary;tsjeboksary;tseboksary;ceboksary;supaskar,Cheektowaga|NY|US|-78.75|42.9|75|N|,Chelmsford|MA|US|-71.37|42.6|33|N|,Chelsea|MA|US|-71.03|42.39|39|N|,Chelyabinsk|chelyabinsk|RU|61.43|55.16|1202|W|tsjeljabinsk;celeabinsk;celiabinsc;cheliabinsk;czelabinsk;tcheliabinsk;tjeljabinsk;tscheljabinsk;tseljabinsk;celyabinsk;celjabinsk,Chemnitz|saxony|DE|12.93|50.84|247|W|saska kamenice,Chengde|hebei|CN|117.96|40.95|449|W|ccheng te,Chengdu|sichuan|CN|104.07|30.67|13568|W|thanh do;cengdu;ccheng tu,Chengguan Qu|tibet|CN|91.04|29.64|478|W|,Chenghua|guangdong|CN|116.77|23.46|152|W|,Chengzhong|hubei|CN|113.55|30.94|265|W|,Chennai|tamil nadu|IN|80.28|13.09|4681|W|cennaj;cennai;madras,Chenzhou|hunan|CN|113.03|25.8|822|W|,Cheonan|chungcheongnam do|KR|127.15|36.81|658|W|cchonan,Cheongju-si|north chungcheong|KR|127.49|36.64|852|W|cheongju,Cheras|selangor|MY|101.73|3.11|135|W|,Cherepovets|vologda oblast|RU|37.9|59.13|315|W|cerepovet;czerepowiec;tcherepovets;tjerepovets;tscherepowez;tsjerepovets;tserepovets;cerepovets;cerepovec,Cherkasy|cherkasy|UA|32.06|49.44|269|W|cerkasi;czerkasy;tcherkassy;tcherkassi;tjerkasy;tscherkassy;tsjerkasy;tserkasy;cerkassi;cerkasy;cherkassy,Chernihiv|chernihiv oblast|UA|31.29|51.51|282|W|cernigau;chernigov;czernihow;tchernihiv;tjernihiv;tschernihiw;tsjernihiv;tsernihiv;cernigiv;cernihiv;cernihov;cernigovia,Chernivtsi|chernivtsi|UA|25.93|48.29|264|W|cernivci;cernovizza;cernauti;czerniowce;czernowitz;tchernivtsi;tjernivtsi;tschernowitz;tsjernivtsi;tsernivtsi;cernivtsi;cernovice,Cherry Hill|NJ|US|-75.03|39.93|70|N|,Chertanovo Yuzhnoye|moscow|RU|37.6|55.59|142|W|,Chesapeake|VA|US|-76.27|36.82|235|NW|,Cheshire|CT|US|-72.9|41.5|29|N|,Chester|PA|US|-75.36|39.85|34|N|,Chesterfield|MO|US|-90.58|38.66|47|N|,Chestermere|AB|CA|-113.82|51.03|32|N|,Chetumal|MX23|MX|-88.3|18.52|169|NW|,Cheyenne|WY|US|-104.82|41.14|65|N|,Chhatarpur|madhya pradesh|IN|79.59|24.92|142|W|chhattarpur,Chhindwara|madhya pradesh|IN|78.94|22.06|175|W|,Chi Linh|hai phong|VN|106.32|21.07|220|W|,Chiapa de Corzo|MX05|MX|-93.01|16.71|45|N|,Chiayi City|taiwan|TW|120.45|23.48|263|W|jiayi shi,Chiba|chiba|JP|140.12|35.6|979|W|ciba,Chicago|IL|US|-87.65|41.85|2664|NW|sikago,Chicago Heights|IL|US|-87.64|41.51|30|N|,Chicago Lawn|IL|US|-87.7|41.78|55|N|,Chicago Loop|IL|US|-87.63|41.88|33|N|loop,Chichicastenango|quiche|GT|-91.11|14.94|141|W|,Chiclayo|lambayeque|PE|-79.85|-6.77|609|W|,Chico|CA|US|-121.84|39.73|121|N|,Chicoloapan|MX15|MX|-98.9|19.42|172|NW|san vicente chicoloapan,Chicopee|MA|US|-72.61|42.15|56|N|,Chicoutimi|QC|CA|-71.06|48.42|69|N|,Chifeng|inner mongolia|CN|118.96|42.27|346|W|tschifong;xich phong;cch feng,Chigasaki|kanagawa|JP|139.4|35.34|242|W|,Chihuahua|MX06|MX|-106.09|28.64|925|NW|chihuahua city;chihuahua by,Chilanzar|tashkent|UZ|69.18|41.28|260|W|,Chilapa de Alvarez|MX12|MX|-99.17|17.6|31|N|,Chillan|nuble|CL|-72.1|-36.61|150|W|,Chilliwack|BC|CA|-121.95|49.17|101|N|,Chilliwack-Downtown|BC|CA|-121.96|49.16|31|N|,Chillum|MD|US|-76.99|38.96|33|N|,Chilpancingo|MX12|MX|-99.5|17.55|187|NW|chilpancingo de los bravo,Chimbote|ancash|PE|-78.59|-9.08|316|W|,Chimoio|manica|MZ|33.48|-19.12|422|W|,Chinatown|CA|US|-122.41|37.8|100|N|,Chinatown|NY|US|-74|40.72|90|N|,Chincha Alta|ica|PE|-76.13|-13.41|153|W|,Chingola|copperbelt|ZM|27.88|-12.53|256|W|,Chiniot|punjab|PK|72.98|31.72|318|W|,Chinju|gyeongsangnam do|KR|128.08|35.19|307|W|jinju,Chino|CA|US|-117.69|34.01|85|N|,Chino Hills|CA|US|-117.76|33.99|78|N|,Chipata|eastern province|ZM|32.65|-13.63|327|W|,Chirchiq|tashkent region|UZ|69.58|41.47|162|W|circik;tchirtchik;tjirtjik;circig,Chishtian|punjab|PK|72.86|29.8|149|W|,Chisinau|chisinau municipality|MD|28.86|47.01|635|W|kishinev;kiszyniow;kisinev,Chita|zabaykalskiy transbaikal kray|RU|113.49|52.04|349|W|tsjita;tchita;tschita;tsita;cita,Chitato|luanda norte|AO|20.73|-7.3|246|W|,Chitradurga|karnataka|IN|76.4|14.22|145|W|,Chittoor|andhra pradesh|IN|79.1|13.21|160|W|chittur,Chitungwiza|harare|ZW|31.08|-18.01|371|W|,Chizhou|anhui|CN|117.48|30.66|615|W|,Chlef|chlef|DZ|1.33|36.17|178|W|ech cheliff;szalif;asch schalif;ash shalif;al asnam,Cho Lon|ho chi minh city hcmc|VN|106.65|10.75|561|W|,Choa Chu Kang New Town||SG|103.75|1.38|187|W|,Chofu|tokyo|JP|139.55|35.66|242|W|,Choloma|cortes department|HN|-87.95|15.61|139|W|,Cholula|MX21|MX|-98.3|19.06|292|NW|cholula de rivadavia;san pedro cholula,Chom Thong|bangkok|TH|100.48|13.68|158|W|,Chomedey|QC|CA|-73.75|45.53|94|N|,Chon Buri|chon buri|TH|100.98|13.36|219|W|,Chongjin|north hamgyong|KP|129.78|41.8|327|W|ch ongjin;cchongdzin,Chongming||CN|121.7|31.62|637|W|,Chongqing|chongqing|CN|106.56|29.56|7457|W|trung khanh;tsjoengking;congcing;cchung cching,Chongzuo|guangxi|CN|107.37|22.38|384|W|,Christchurch|canterbury|NZ|172.63|-43.53|419|W|,Chula Vista|CA|US|-117.08|32.64|265|NW|,Chuncheon|gangwon do|KR|127.73|37.87|284|W|cunceon;cchuncchon,Chungju|north chungcheong|KR|127.93|36.98|209|W|cungcu;cchungdzu,Chunian|punjab|PK|73.98|30.97|634|W|,Chuo|tokyo|JP|139.78|35.67|169|W|chuo city,Church-Yonge Corridor|ON|CA|-79.38|43.66|31|N|,Chuxiong|yunnan|CN|101.55|25.04|555|W|,Chuzhou|anhui|CN|118.3|32.32|782|W|cchu cou,Ciampea|west java|ID|106.7|-6.55|207|W|,Cianjur|west java|ID|107.14|-6.82|174|W|kabupaten de cianjur,Cibinong|west java|ID|106.85|-6.48|363|W|,Cibolo|TX|US|-98.23|29.56|33|N|,Cicero|IL|US|-87.75|41.85|83|N|,Cicero|NY|US|-76.12|43.18|31|N|,Cidade Ademar|sao paulo|BR|-46.66|-23.67|249|W|,Cidade Dutra|sao paulo|BR|-46.7|-23.73|182|W|,Cidade Lider|sao paulo|BR|-46.49|-23.56|136|W|,Cidade Tiradentes|sao paulo|BR|-46.4|-23.58|192|W|,Ciego de Avila|ciego de avila province|CU|-78.76|21.84|142|W|,Cienfuegos|cienfuegos province|CU|-80.45|22.15|186|W|,Cigli|izmir province|TR|27.07|38.5|214|W|,Cihuatlan|MX14|MX|-104.57|19.24|40|N|,Cikupa|west java|ID|106.51|-6.24|174|W|,Cilacap|central java|ID|109.01|-7.73|256|W|,Cilegon|banten|ID|106.05|-6.01|470|W|,Cileungsir|west java|ID|106.96|-6.39|289|W|,Cimahi|west java|ID|107.54|-6.87|581|W|kota cimahi,Cincinnati|OH|US|-84.51|39.13|311|NW|,Cintalapa de Figueroa|MX05|MX|-93.72|16.68|42|N|,Ciputat|west java|ID|106.7|-6.24|207|W|,Circoiscrizione II|piedmont|IT|7.64|45.05|141|W|,Circoiscrizione III|piedmont|IT|7.63|45.06|130|W|,Circoiscrizione VIII|piedmont|IT|7.67|45.04|134|W|,Cirebon|west java|ID|108.56|-6.71|344|W|kota cirebon,Citeureup|west java|ID|106.88|-6.49|214|W|,Citrus Heights|CA|US|-121.28|38.71|87|N|,City of Milford (balance)|CT|US|-73.06|41.22|51|N|,City of Sammamish|WA|US|-122.04|47.6|45|N|,City of Westminster|england|GB|-0.14|51.5|247|W|,Ciudad Acuna|MX07|MX|-100.95|29.32|216|NW|acuna,Ciudad Altamirano|MX12|MX|-100.67|18.36|25|N|,Ciudad Apodaca|MX19|MX|-100.19|25.78|467|NW|apodaca,Ciudad Benito Juarez|MX19|MX|-100.09|25.65|308|NW|,Ciudad Bolivar|bolivar|VE|-63.55|8.12|412|W|,Ciudad Camilo Cienfuegos|havana|CU|-82.33|23.16|178|W|,Ciudad Constitucion|MX03|MX|-111.66|25.03|40|N|,Ciudad de Allende|MX19|MX|-100.02|25.28|26|N|allende,Ciudad de Huajuapan de Leon|MX20|MX|-97.78|17.81|53|N|huajuapan;huajuapan de leon;huajuapam;huajuapam de leon,Ciudad de Villa de Alvarez|MX08|MX|-103.74|19.27|117|N|,Ciudad del Carmen|MX04|MX|-91.83|18.65|191|NW|cd carmen;cd del carmen;carmen,Ciudad del Este|alto parana department|PY|-54.65|-25.5|301|W|kota del este,Ciudad Delicias|MX06|MX|-105.47|28.19|148|NW|akitakata;delicias,Ciudad Fernandez|MX24|MX|-100.01|21.94|32|N|,Ciudad General Escobedo|MX19|MX|-100.32|25.8|454|NW|gral escobedo;general escobedo,Ciudad Guayana|bolivar|VE|-62.64|8.35|978|W|cidade guaiana;guayana,Ciudad Guzman|MX14|MX|-103.46|19.7|111|N|cd guzman,Ciudad Hidalgo|MX16|MX|-100.56|19.69|60|N|,Ciudad Juarez|MX06|MX|-106.46|31.72|1512|NW|juarez,Ciudad Lazaro Cardenas|MX16|MX|-102.2|17.96|196|NW|lazaro cardenas,Ciudad Lineal|madrid|ES|-3.65|40.45|228|W|,Ciudad Lopez Mateos|MX15|MX|-99.26|19.56|489|NW|adolfo lopez mateos,Ciudad Madero|MX28|MX|-97.84|22.25|197|NW|cd madero,Ciudad Mante|MX28|MX|-98.97|22.74|84|N|,Ciudad Melchor Muzquiz|MX07|MX|-101.52|27.88|35|N|,Ciudad Mendoza|MX30|MX|-97.18|18.81|35|N|,Ciudad Nezahualcoyotl|MX15|MX|-99.01|19.4|1077|NW|cd neza;cd nezahualcoyotl;ciudad neza;neza;nezahualcoyotl,Ciudad Obregon|MX26|MX|-109.94|27.49|329|NW|cd obregon,Ciudad Ojeda|zulia|VE|-71.31|10.2|240|W|,Ciudad Rio Bravo|MX28|MX|-98.09|25.99|95|N|,Ciudad Sabinas Hidalgo|MX19|MX|-100.18|26.5|33|N|,Ciudad Sahagun|MX13|MX|-98.57|19.78|28|N|,Ciudad Valles|MX24|MX|-99.01|22|124|N|,Ciudad Victoria|MX28|MX|-99.14|23.74|332|NW|cd victoria;victoria,Cixi|zhejiang|CN|121.25|30.18|1457|W|,Cizre|sirnak|TR|42.18|37.33|134|W|,Clairlea-Birchmount|ON|CA|-79.28|43.71|26|N|,Claremont|CA|US|-117.72|34.1|36|N|,Clarksville|TN|US|-87.36|36.53|166|NW|,Clay|NY|US|-76.17|43.19|58|N|,Clearfield|UT|US|-112.03|41.11|30|N|,Clearwater|FL|US|-82.8|27.97|117|N|,Cleburne|TX|US|-97.39|32.35|30|N|,Clermont|FL|US|-81.77|28.55|32|N|,Clermont-Ferrand|rhone alpes|FR|3.09|45.78|147|W|,Cleveland|OH|US|-81.7|41.5|365|NW|,Cleveland|TN|US|-84.88|35.16|43|N|,Cleveland Heights|OH|US|-81.56|41.52|44|N|,Clifton|NJ|US|-74.16|40.86|86|N|,Clifton Park|NY|US|-73.77|42.87|36|N|,Clinton|MD|US|-76.9|38.77|35|N|robeystown;surrats;surratsville;surratts;surrattsville,Clinton|IA|US|-90.19|41.84|26|N|,Clinton|MS|US|-90.32|32.34|25|N|,Clinton Township|MI|US|-82.92|42.59|99|N|,Cloverdale|BC|CA|-122.73|49.11|73|N|,Clovis|CA|US|-119.7|36.83|104|N|,Clovis|NM|US|-103.21|34.4|39|N|,Cluj-Napoca|cluj county|RO|23.6|46.77|286|W|klausenburg;clausenburg;kalosvar;kluz napoka;kluz;kolozsvar;clausemburgo,Coacalco|MX15|MX|-99.11|19.63|277|NW|coacalco de berriozaval;san francisco coacalco,Coachella|CA|US|-116.17|33.68|44|N|,Coatepec|MX30|MX|-96.96|19.45|53|N|,Coatzacoalcos|MX30|MX|-94.44|18.15|310|NW|puerto mexico;port of mexico,Coatzintla|MX30|MX|-97.47|20.49|34|N|,Coban|alta verapaz|GT|-90.37|15.47|212|W|,Cobbs Creek|PA|US|-75.24|39.95|33|N|,Cochabamba|cochabamba|BO|-66.16|-17.38|841|W|,Cochrane|AB|CA|-114.47|51.18|32|N|,Coconut Creek|FL|US|-80.18|26.25|59|N|,Cocula|MX14|MX|-103.82|20.37|29|N|,Coeur d'Alene|ID|US|-116.78|47.68|49|N|,Coimbatore|tamil nadu|IN|76.97|11.01|2136|W|koimbatur,Coimbra|coimbra|PT|-8.42|40.21|140|W|,Colchester|england|GB|0.9|51.89|130|W|,Colima|MX08|MX|-103.71|19.24|146|NW|,Colina|santiago metropolitan|CL|-70.67|-33.2|146|W|,College Park|MD|US|-76.94|38.98|32|N|,College Point|NY|US|-73.85|40.79|27|N|,College Station|TX|US|-96.33|30.63|107|N|,Colleyville|TX|US|-97.16|32.88|25|N|,Collierville|TN|US|-89.66|35.04|48|N|,Collinwood|OH|US|-81.57|41.56|34|N|,Colombo|western province|LK|79.85|6.94|648|W|kolombo,Colombo|parana|BR|-49.22|-25.29|232|W|,Colonia del Sol|MX03|MX|-109.93|22.91|48|N|,Colonia del Valle|MX09|MX|-99.16|19.39|250|NW|col del valle;del valle,Colonia Lindavista|MX15|MX|-99.12|19.49|100|N|col lindavista;lindavista,Colonia Nativitas|MX09|MX|-99.14|19.38|60|N|col nativitas;nativitas,Colorado Springs|CO|US|-104.82|38.83|456|NW|colorado spgs,Colton|CA|US|-117.31|34.07|54|N|,Columbia|SC|US|-81.03|34|142|NW|,Columbia|MO|US|-92.33|38.95|129|N|,Columbia|MD|US|-76.84|39.24|99|N|,Columbia|TN|US|-87.04|35.62|36|N|,Columbia Heights|DC|US|-77.03|38.93|38|N|meridian hill;meridian hill heights,Columbus|OH|US|-83|39.96|913|NW|,Columbus|GA|US|-84.99|32.46|206|NW|,Columbus|IN|US|-85.92|39.2|46|N|,Comalcalco|MX27|MX|-93.22|18.26|41|N|,Comilla|chittagong|BD|91.19|23.46|634|W|kumilla,Comitan|MX05|MX|-92.14|16.24|166|NW|comitan de dominguez,Commack|NY|US|-73.29|40.84|36|N|,Commerce City|CO|US|-104.93|39.81|53|N|,Commonwealth|national capital region|PH|121.08|14.7|215|W|,Comodoro Rivadavia|chubut|AR|-67.49|-45.86|140|W|,Compton|CA|US|-118.22|33.9|98|N|,Conakry|conakry|GN|-13.68|9.54|1928|W|conacri;konakry,Concepcion|biobio|CL|-73.05|-36.83|223|W|konsepsi,Concepcion|central luzon|PH|120.66|15.33|178|W|,Conception Bay South|NL|CA|-53|47.5|27|N|,Concord|CA|US|-122.03|37.98|128|N|,Concord|NC|US|-80.58|35.41|87|N|,Concord|NH|US|-71.54|43.21|43|N|,Concordia|entre rios|AR|-58.02|-31.39|145|W|,Coney Island|NY|US|-73.99|40.58|60|N|coney adasi,Confederation|SK|CA|-106.7|52.14|70|N|,Conroe|TX|US|-95.46|30.31|68|N|,Conselheiro Lafaiete|minas gerais|BR|-43.79|-20.66|138|W|,Constanta|constanta county|RO|28.63|44.18|317|W|konstanza;constanza;constanca;costanza;konstanca;kostence;kustence,Constantine|constantine|DZ|6.61|36.37|448|W|constantina,Contagem|minas gerais|BR|-44.05|-19.93|627|W|,Contla|MX29|MX|-98.17|19.33|27|N|,Conway|AR|US|-92.44|35.09|64|N|,Cookeville|TN|US|-85.5|36.16|32|N|,Coon Rapids|MN|US|-93.29|45.12|62|N|,Cooper City|FL|US|-80.27|26.06|35|N|,Copenhagen|capital region|DK|12.57|55.68|1153|W|copenaghen;copenhaga;copenhague;kodan;kopenhag;kopenhaga;kopenhagen;kopenhamn;koopenhamina;kobenhavn,Coppell|TX|US|-97.02|32.95|41|N|,Copperas Cove|TX|US|-97.9|31.12|33|N|,Coquimbo|coquimbo region|CL|-71.34|-29.95|161|W|,Coquitlam|BC|CA|-122.78|49.28|148|NW|,Coquitlam West|BC|CA|-122.88|49.26|25|N|,Coral Gables|FL|US|-80.27|25.72|51|N|,Coral Springs|FL|US|-80.27|26.27|129|N|,Coram|NY|US|-73|40.87|39|N|,Cordoba|cordoba|AR|-64.19|-31.41|2106|W|ciudad de cordoba;cordova,Cordoba|andalusia|ES|-4.77|37.89|325|W|cordoue;cordova;kordoba,Cordoba|MX30|MX|-96.93|18.88|204|NW|,Cordova|TN|US|-89.78|35.16|68|N|,Core Neighbourhoods|SK|CA|-106.67|52.13|36|N|,Cork|munster|IE|-8.47|51.9|224|W|cork city,Corlu|tekirdag|TR|27.8|41.16|202|W|,Cornelius|NC|US|-80.86|35.49|28|N|,Cornwall|ON|CA|-74.73|45.02|48|N|,Coro|falcon|VE|-69.68|11.41|246|W|,Corona|CA|US|-117.57|33.88|164|NW|,Corona|NY|US|-73.86|40.75|109|N|,Corpus Christi|TX|US|-97.4|27.8|316|NW|,Corrientes|corrientes|AR|-58.83|-27.47|346|W|ciudad de corrientes,Cortazar|MX11|MX|-100.96|20.48|61|N|,Corum|corum|TR|34.95|40.55|269|W|,Corvallis|OR|US|-123.26|44.56|55|N|,Cosamaloapan|MX30|MX|-95.8|18.37|30|N|,Costa Mesa|CA|US|-117.92|33.64|113|N|,Cotabato|autonomous region in muslim mindanao|PH|124.25|7.22|383|W|cotabato city,Cote-Saint-Luc|QC|CA|-73.67|45.47|31|N|,Cotia|sao paulo|BR|-46.92|-23.6|253|W|,Cotonou|littoral|BJ|2.42|6.37|679|W|cotonu;kotonu,Cottage Grove|MN|US|-92.94|44.83|35|N|,Cottonwood Heights|UT|US|-111.81|40.62|34|N|,Council Bluffs|IA|US|-95.86|41.26|62|N|co bluffs,Country Club|FL|US|-80.32|25.95|47|N|,Courtenay|BC|CA|-124.99|49.69|28|N|,Coventry|england|GB|-1.51|52.41|345|W|,Coventry|RI|US|-71.68|41.7|35|N|,Covina|CA|US|-117.89|34.09|48|N|,Covington|KY|US|-84.51|39.08|40|N|,Cox's Bazar|chittagong|BD|92.01|21.44|253|W|,Coyoacan|MX09|MX|-99.16|19.35|614|NW|,Coyotepec|MX15|MX|-99.21|19.78|35|N|,Coyula|MX14|MX|-103.23|20.66|29|N|,Cozumel|MX23|MX|-86.94|20.5|77|N|san miguel de cozumel,Craiova|dolj|RO|23.8|44.32|234|W|krajowa,Cranberry Township|PA|US|-80.11|40.68|28|N|,Cranston|RI|US|-71.44|41.78|81|N|,Crato|ceara|BR|-39.41|-7.23|139|W|,Criciuma|santa catarina|BR|-49.37|-28.68|227|W|,Crofton|MD|US|-76.69|39|27|N|,Croix-des-Bouquets|ouest|HT|-72.23|18.58|229|W|,Crown Point|IN|US|-87.37|41.42|28|N|,Croydon|england|GB|-0.1|51.38|173|W|croydon grants,Crystal Lake|IL|US|-88.32|42.24|40|N|,Cua|miranda|VE|-66.88|10.16|182|W|,Cuauhtemoc|MX09|MX|-99.15|19.45|531|NW|,Cuauhtemoc|MX06|MX|-106.87|28.41|168|NW|,Cuautitlan|MX15|MX|-99.18|19.67|178|NW|,Cuautitlan Izcalli|MX15|MX|-99.22|19.64|555|NW|izcalli,Cuautla|MX17|MX|-98.94|18.81|157|NW|,Cuautlancingo|MX21|MX|-98.27|19.09|25|N|san juan b cuautlancingo,Cucuta|norte de santander department|CO|-72.5|7.91|777|W|kukuta,Cuddalore|tamil nadu|IN|79.77|11.76|173|W|gondelour,Cuenca|azuay|EC|-79|-2.9|636|W|,Cuernavaca|MX17|MX|-99.23|18.93|338|NW|,Cuiaba|mato grosso|BR|-56.1|-15.6|618|W|culaba,Cuito|bie|AO|16.93|-12.38|355|W|kuito,Culiacan|MX25|MX|-107.39|24.8|808|NW|,Culver City|CA|US|-118.4|34.02|39|N|,Cumana|sucre|VE|-64.18|10.46|405|W|,Cumberland|RI|US|-71.43|41.97|34|N|,Cupertino|CA|US|-122.03|37.32|60|N|,Curitiba|parana|BR|-49.27|-25.43|1948|W|kurytyba,Curug|banten|ID|106.56|-6.27|191|W|,Cusco|cuzco department|PE|-71.97|-13.53|428|W|ciudad del cuzco;cuzco,Cutler Bay|FL|US|-80.34|25.58|45|N|cutler ridge,Cutler Ridge|FL|US|-80.35|25.58|26|N|,Cuttack|odisha|IN|85.88|20.46|610|W|,Cuyahoga Falls|OH|US|-81.48|41.13|49|N|,Cypress|TX|US|-95.7|29.97|200|NW|,Cypress|CA|US|-118.04|33.82|49|N|,Cypress Hills|NY|US|-73.89|40.68|54|N|,Czestochowa|silesia|PL|19.12|50.8|248|W|czenstochau;censtochova;tschenstochau,Da Lat|lam dong|VN|108.44|11.95|258|W|,Da Nang|da nang city|VN|108.22|16.07|1276|W|danang;thanh thai phien,Dabou|lagunes district|CI|-4.38|5.33|138|W|,Dachang|shanghai|CN|121.42|31.31|371|W|,Dadu|sindh|PK|67.78|26.73|201|W|,Daegu|daegu|KR|128.59|35.87|2365|W|daegu si;taegu;tegu,Daejeon|daejeon|KR|127.38|36.35|1441|W|daejeon si;taejon,Dagupan|ilocos|PH|120.33|16.04|171|W|kota dagupan,Dajal|punjab|PK|70.38|29.56|200|W|,Dakar|dakar|SN|-17.44|14.69|2646|W|dacar,Dakota Ridge|CO|US|-105.14|39.62|33|N|,Dale City|VA|US|-77.31|38.64|65|N|,Dali|yunnan|CN|100.21|25.58|235|W|,Dalian|liaoning|CN|121.6|38.91|4913|W|luta;luda,Daliang|guangdong|CN|113.25|22.84|210|W|shunde,Dallas|TX|US|-96.81|32.78|1326|NW|,Daloa|sassandra marahoue|CI|-6.45|6.88|421|W|,Dalton|GA|US|-84.97|34.77|33|N|,Dalupura|delhi|IN|77.32|28.61|154|W|,Daly City|CA|US|-122.46|37.71|106|N|,Damanhur|beheira|EG|30.47|31.03|318|W|,Damascus|damascus governorate|SY|36.29|33.51|1569|W|damasco;damas;damasc;damaskos;damaskus;damaszek;damasek;sam,Damietta|damietta|EG|31.81|31.42|305|W|damieta;damiette;dimyat;dimyath,Dammam|eastern province|SA|50.1|26.43|1252|W|ad dammam;ed dammam,Damoh|madhya pradesh|IN|79.44|23.83|139|W|,Dana Point|CA|US|-117.7|33.47|34|N|,Danbury|CT|US|-73.45|41.39|84|N|,Dandong|liaoning|CN|124.39|40.13|631|W|dan dong;andong,Dania Beach|FL|US|-80.14|26.05|31|N|,Danli|el paraiso department|HN|-86.58|14.03|233|W|,Danshui|taipei|TW|121.44|25.17|189|W|tamsui,Danvers|MA|US|-70.93|42.58|26|N|,Danville|CA|US|-122|37.82|44|N|,Danville|VA|US|-79.4|36.59|42|N|,Danville|IL|US|-87.63|40.12|32|N|,Daqing|heilongjiang|CN|125|46.58|1604|W|ta cching;taching,Dar Bouazza|casablanca settat|MA|-7.82|33.52|165|W|,Dar es Salaam|dar es salaam region|TZ|39.27|-6.82|5383|W|dar es salam;daressalam;darusselam,Darbhanga|bihar|IN|85.9|26.15|296|W|,Darmstadt|hesse|DE|8.65|49.87|167|W|,Darnytsya|kyiv city|UA|30.7|50.42|343|W|darnytsia;darnytskyi raion;darnytskyi rayon;darnytskyy raion;darnytskyy rayon,Dartmouth|NS|CA|-63.58|44.67|101|N|darmouth,Darwin|northern territory|AU|130.84|-12.46|139|W|port darwin,Dasmarinas|calabarzon|PH|120.94|14.33|441|W|kota dasmarinas,Dasoguz|dasoguz|TM|59.97|41.84|201|W|dashoguz;daszoguz;dashowuz;tasjauz,Datong|shanxi|CN|113.29|40.09|1850|W|ta tchung,Daule|guayas|EC|-79.98|-1.86|173|W|,Davangere|karnataka|IN|75.93|14.47|435|W|,Davao|davao region|PH|125.61|7.07|1848|W|davao city,Davenport|IA|US|-90.58|41.52|102|N|,Davie|FL|US|-80.23|26.06|100|N|,Davis|CA|US|-121.74|38.54|67|N|,Dawei|tanintharyi region|MM|98.19|14.08|136|W|tavoy,Dawukou|ningxia|CN|106.4|39.04|131|W|,Daxing'anling|heilongjiang|CN|124.71|52.33|520|W|,Daye|hubei|CN|114.95|30.08|347|W|,Dayrah|dubai|AE|55.3|25.27|400|W|deira,Dayton|OH|US|-84.19|39.76|135|NW|,Daytona Beach|FL|US|-81.02|29.21|72|N|daytona,Dazhou|sichuan|CN|107.46|31.21|1589|W|ta cou,Dearborn|MI|US|-83.18|42.32|95|N|,Dearborn Heights|MI|US|-83.27|42.34|56|N|,Debre Birhan|amhara|ET|39.53|9.68|146|W|debre berhan;debre byrhan,Debre Mark'os|amhara|ET|37.73|10.35|140|W|,Debrecen|hajdu bihar|HU|21.62|47.53|202|W|debreczyn;debrecin;debretin,Decatur|IL|US|-88.95|39.84|73|N|,Decatur|AL|US|-86.98|34.61|55|N|,Deer Park|TX|US|-95.12|29.71|33|N|,Deer Park|NY|US|-73.33|40.76|27|N|,Deer Valley|AZ|US|-112.13|33.68|165|NW|,Deerfield Beach|FL|US|-80.1|26.32|79|N|,Dehiwala-Mount Lavinia|western province|LK|79.87|6.84|219|W|mount lavinia,Dehradun|uttarakhand|IN|78.03|30.32|522|W|dehra dun,Deir ez-Zor|deir ez zor|SY|40.14|35.34|271|W|dayr az zawr;dajr az zaur;dayr al zawr;deir azzor;deir al zour;deir el zor;deir es sor;der ezzor;deyrez zor;deyrizor,DeKalb|IL|US|-88.75|41.93|43|N|,Del Rio|TX|US|-100.9|29.36|36|N|,DeLand|FL|US|-81.3|29.03|30|N|de land,Delano|CA|US|-119.25|35.77|52|N|,Delaware|OH|US|-83.07|40.3|37|N|,Delegacion Cuajimalpa de Morelos|MX09|MX|-99.29|19.37|160|NW|cuajimalpa de morelos,Delhi|delhi|IN|77.23|28.65|11034|W|dilli;deli;sahdzahanabad,Delmas|ouest|HT|-72.3|18.54|395|W|,Delray Beach|FL|US|-80.07|26.46|66|N|del ray beach,Delta|BC|CA|-123.05|49.09|101|N|,Deltona|FL|US|-81.26|28.9|88|N|,Dengzhou|henan|CN|112.09|32.68|285|W|,Denizli|denizli|TR|29.09|37.77|313|W|,Denpasar|bali|ID|115.22|-8.65|670|W|dempasar;dempassar;denpasar bali;kota denpasar,Denton|TX|US|-97.13|33.21|131|NW|,Denver|CO|US|-104.98|39.74|729|NW|,Deoghar|jharkhand|IN|86.7|24.49|203|W|,Deoli|delhi|IN|77.23|28.5|169|W|,Depok|west java|ID|106.82|-6.4|2163|W|kota depok,Dera Ghazi Khan|punjab|PK|70.64|30.05|494|W|,Dera Ismail Khan|khyber pakhtunkhwa|PK|70.9|31.83|763|W|,Derby|england|GB|-1.48|52.92|270|W|,Derry Village|NH|US|-71.31|42.89|34|N|,Des Moines|IA|US|-93.61|41.6|214|NW|,Des Moines|WA|US|-122.32|47.4|31|N|desmoines,Des Plaines|IL|US|-87.88|42.03|58|N|,Desert Hot Springs|CA|US|-116.5|33.96|28|N|,Desmarchais-Crawford|QC|CA|-73.58|45.45|29|N|,Desna|kyiv city|UA|30.68|50.52|368|W|,Desnyanskyi|chernihiv oblast|UA|31.32|51.51|179|W|desnianskyi;desnianskyi raion;desnyanskyi rayon,DeSoto|TX|US|-96.86|32.59|52|N|,Dessalines|artibonite|HT|-72.52|19.26|181|W|,Dessie|amhara|ET|39.63|11.13|270|W|dese;desje,Detroit|MI|US|-83.05|42.33|645|NW|,Dewas|madhya pradesh|IN|76.06|22.97|289|W|,Deyang|sichuan|CN|104.38|31.13|735|W|te jang,Dezful|khuzestan|IR|48.41|32.38|264|W|dezfoul,Dezhou|shandong|CN|116.37|37.45|679|W|te cou,Dhaka|dhaka division|BD|90.41|23.71|10356|W|daca;dacca;dakka,Dhamar|dhamar|YE|44.41|14.54|160|W|damar,Dhanbad|jharkhand|IN|86.43|23.8|1196|W|,Dhangadhi|sudurpashchim pradesh|NP|80.59|28.7|204|W|,Dharan|koshi|NP|87.28|26.81|173|W|,Dharavi|maharashtra|IN|72.87|19.05|700|W|,Dhaulpur|rajasthan|IN|77.88|26.69|133|W|,Dhirkot|azad kashmir|PK|73.58|34.04|195|W|,Dhule|maharashtra|IN|74.78|20.9|375|W|,Di An|ho chi minh city hcmc|VN|106.77|10.91|463|W|,Diadema|sao paulo|BR|-46.62|-23.69|403|W|,Diamond Bar|CA|US|-117.81|34.03|56|N|,Dibrugarh|assam|IN|94.91|27.48|145|W|,Dieppe|NB|CA|-64.69|46.08|27|N|,Diepsloot|gauteng|ZA|28.01|-25.93|350|W|,Diez de Octubre|havana|CU|-82.36|23.09|227|W|,Digri|sindh|PK|69.11|25.16|234|W|,Dihok|duhok|IQ|42.99|36.87|340|W|dahuk;dohuk;duhok,Dijon|bourgogne|FR|5.01|47.31|159|W|digione,Dila|south ethiopia regional state|ET|38.32|6.42|158|W|,Dili|dili municipality|TL|125.57|-8.56|150|W|,Dimapur|nagaland|IN|93.72|25.91|135|W|,Dimitrovgrad|ulyanovsk|RU|49.62|54.21|132|W|dimitrowgrad,Din Daeng|bangkok|TH|100.57|13.79|130|W|,Dinajpur|rangpur division|BD|88.64|25.63|206|W|,Dinapore|bihar|IN|85.05|25.64|152|W|,Dinapur Nizamat|bihar|IN|85.05|25.64|182|W|,Dindigul|tamil nadu|IN|77.98|10.37|292|W|dindukkal,Dingxi|gansu|CN|104.62|35.57|420|W|,Dingzhou|hebei|CN|114.99|38.51|152|W|,Diourbel|diourbel region|SN|-16.24|14.65|157|W|,Dire Dawa|dire dawa|ET|41.87|9.59|343|W|dire daua,Disuq|kafr el sheikh|EG|30.65|31.13|149|W|,Divinopolis|minas gerais|BR|-44.89|-20.14|231|W|,Divo|goh djiboua|CI|-5.36|5.84|136|W|,Dix Hills|NY|US|-73.34|40.8|26|N|,Dixinn|conakry|GN|-13.67|9.55|137|W|,Diyarbakir|diyarbakir province|TR|40.22|37.91|1833|W|amida,Djelfa|djelfa|DZ|3.26|34.67|265|W|dzilfa,Djibouti|djibouti|DJ|43.15|11.59|626|W|cibuti;dschibuti;dzibuti;gibuti;yibuti,Dnipro|dnipropetrovsk|UA|35.04|48.47|968|W|dniepr;dnjepropetrovsk;dnepropetrovsk;caterinoslavia;catherinoslav;dnipropetrovs k;dnipropetrovsk;dniproslav;katerynoslav;novorosiynsk;novyy kodak;sicheslav,Dniprovskyi|kyiv city|UA|30.6|50.45|357|W|,Dodge City|KS|US|-100.02|37.75|27|N|,Dodoma|dodoma|TZ|35.74|-6.17|765|W|,Doha|baladiyat ad dawhah|QA|51.53|25.29|344|W|ad dauha;dauha,Doilungdeqen|tibet|CN|90.99|29.66|137|W|,Dollard-Des Ormeaux|QC|CA|-73.82|45.49|48|N|,Dolores Hidalgo|MX11|MX|-100.93|21.16|67|N|ciudad de dolores hidalgo,Dombivali|maharashtra|IN|73.08|19.22|1247|W|dombivli,Don Valley Village|ON|CA|-79.35|43.78|27|N|,Donaustadt|state of vienna|AT|16.46|48.23|187|W|,Donetsk|donetsk|UA|37.8|48.02|901|W|donezk;donec k;donetk;donieck;doneck;dinetsk;dinetske;iuziv;iuzivka;iuzove;oleksandrivka;yuziv;yuzove,Dong Ha|quang tri|VN|107.1|16.82|164|W|,Dongguan|guangdong|CN|113.75|23.02|9644|W|,Donghai|guangdong|CN|115.64|22.95|264|W|,Dongling|liaoning|CN|123.58|41.81|171|W|,Dongtai|jiangsu|CN|120.31|32.85|262|W|,Dongyang|zhejiang|CN|120.23|29.27|130|W|,Dongying|shandong|CN|118.49|37.46|998|W|tung jing;dong dinh,Doral|FL|US|-80.36|25.82|75|N|,Dorchester|MA|US|-71.07|42.3|97|N|,Dorset Park|ON|CA|-79.28|43.75|25|N|,Dortmund|north rhine westphalia|DE|7.47|51.51|588|W|,Dosquebradas|risaralda department|CO|-75.67|4.84|206|W|dos quebradas,Dothan|AL|US|-85.39|31.22|68|N|,Douala|littoral|CM|9.7|4.05|1338|W|duala,Douglasville|GA|US|-84.75|33.75|32|N|,Dourados|mato grosso do sul|BR|-54.81|-22.22|264|W|,Dover|DE|US|-75.52|39.16|39|N|,Dover|NH|US|-70.87|43.2|30|N|,Dovercourt-Wallace Emerson-Junction|ON|CA|-79.44|43.67|36|N|,Downers Grove|IL|US|-88.01|41.81|49|N|,Downey|CA|US|-118.13|33.94|114|N|,Downsview-Roding-CFB|ON|CA|-79.49|43.73|35|N|,Downtown DC|DC|US|-77.02|38.89|52|N|,Downtown Halifax|NS|CA|-63.58|44.65|25|N|,Downtown Vancouver|BC|CA|-123.12|49.28|62|N|,Dracut|MA|US|-71.3|42.67|28|N|,Draper|UT|US|-111.86|40.52|46|N|,Dresden|saxony|DE|13.74|51.05|564|W|dresda;dresde;drezno;drazdany,Drexel Heights|AZ|US|-111.03|32.14|27|N|,Drexel Hill|PA|US|-75.29|39.95|28|N|,Drummondville|QC|CA|-72.48|45.88|59|N|,Dubai|dubai|AE|55.31|25.08|3790|W|dubai city;dubaj,Dubai Investments Park|dubai|AE|55.16|25.01|160|W|,Dublin|leinster|IE|-6.25|53.33|1024|W|dublin city;dublino,Dublin|CA|US|-121.94|37.7|57|N|,Dublin|OH|US|-83.11|40.1|45|N|,Dubreka|kindia|GN|-13.52|9.79|182|W|,Dubuque|IA|US|-90.66|42.5|58|N|,Dudley|england|GB|-2.08|52.5|199|W|,Duesseldorf|north rhine westphalia|DE|6.78|51.22|618|W|dusseldorf,Duezce|duzce|TR|31.16|40.84|194|W|duzce,Duisburg|north rhine westphalia|DE|6.77|51.43|504|W|duisbourg;duisburgo,Duluth|MN|US|-92.11|46.78|86|N|,Duluth|GA|US|-84.14|34|29|N|,Dumai|riau|ID|101.44|1.67|349|W|kota dumai,Duncanville|TX|US|-96.91|32.65|39|N|,Dundalk|MD|US|-76.52|39.25|63|N|,Dundee|scotland|GB|-2.97|56.47|148|W|,Dundo|luanda norte|AO|20.82|-7.37|177|W|,Dunedin|otago|NZ|170.5|-45.87|132|W|,Dunedin|FL|US|-82.77|28.02|36|N|,Dunhua|jilin|CN|128.23|43.37|148|W|,Dunhuang|gansu|CN|94.68|40.17|186|W|tun chuang;don hoang,Dunwoody|GA|US|-84.33|33.95|48|N|,Duque de Caxias|rio de janeiro|BR|-43.31|-22.79|866|W|,Durban|kwazulu natal|ZA|31.03|-29.86|3338|W|port natal,Durg|chhattisgarh|IN|81.28|21.19|268|W|,Durgapur|west bengal|IN|87.31|23.52|518|W|,Durham|NC|US|-78.9|35.99|257|NW|,Durres|durres county|AL|19.45|41.32|195|W|drac;durazzo,Dushanbe|dushanbe|TJ|68.78|38.54|679|W|doesjanbe;douchanbe;duschanbe;dusjanbe;duszanbe;dusanbe,Duvernay|QC|CA|-73.67|45.58|37|N|,Duyun|guizhou|CN|107.52|26.27|198|W|,Dyker Heights|NY|US|-74.01|40.62|34|N|,Dzerzhinsk|nizhny novgorod oblast|RU|43.46|56.24|233|W|dserschinsk;dzerjinsk;dzerzjinsk;dzerzinsk;dzierzynsk,E'zhou|hubei|CN|114.89|30.4|668|W|ezhou;wuchang,Eagan|MN|US|-93.17|44.8|66|N|,Eagle Mountain|UT|US|-112.01|40.31|27|N|,Eagle Pass|TX|US|-100.5|28.71|28|N|,East Boston|MA|US|-71.04|42.38|43|N|,East Brunswick|NJ|US|-74.42|40.43|48|N|e brunswick;east brunswick township,East Chattanooga|TN|US|-85.25|35.07|154|NW|,East Chicago|IN|US|-87.45|41.64|28|N|,East Concord|NH|US|-71.54|43.24|42|N|,East Flatbush|NY|US|-73.93|40.65|178|NW|,East Florence|AL|US|-87.65|34.81|35|N|,East Hampton|VA|US|-76.33|37.04|147|NW|,East Harlem|NY|US|-73.94|40.79|115|N|harlem del este,East Hartford|CT|US|-72.61|41.78|51|N|,East Hastings|BC|CA|-123.06|49.27|80|N|,East Haven|CT|US|-72.87|41.28|29|N|,East Helsinki|uusimaa|FI|25.08|60.21|170|W|ita helsinki;ostra helsingfors,East Hill-Meridian|WA|US|-122.17|47.41|29|N|,East Honolulu|HI|US|-157.72|21.29|49|N|,East Independence|MO|US|-94.36|39.1|110|N|,East Jerusalem|west bank|PS|35.23|31.78|428|W|dogu kudus;gerusalemme est;jerusalem oriental;jerusalen este;jerusalem est;oost jeruzalem;ostjerusalem;vychodni jeruzalem;wschodnia jerozolima;yerusalem timur;ostra jerusalem;ost jerusalem;dong jerusalem,East Lake|FL|US|-82.69|28.11|30|N|,East Lansing|MI|US|-84.48|42.74|48|N|,East London|eastern cape|ZA|27.91|-33.02|478|W|buffalo city;kugompo city,East Los Angeles|CA|US|-118.17|34.02|126|N|dogu los angeles;este de los angeles,East Meadow|NY|US|-73.56|40.71|38|N|,East New York|NY|US|-73.88|40.67|173|NW|,East Norwalk|CT|US|-73.4|41.11|84|N|,East Orange|NJ|US|-74.2|40.77|64|N|,East Palo Alto|CA|US|-122.14|37.47|29|N|palo alto timur,East Pensacola Heights|FL|US|-87.18|30.43|54|N|,East Point|GA|US|-84.44|33.68|35|N|,East Providence|RI|US|-71.37|41.81|47|N|dong providence,East Saint Louis|IL|US|-90.15|38.62|27|N|,East Village|NY|US|-73.99|40.73|62|N|,Easton|PA|US|-75.22|40.69|26|N|,Eastpointe|MI|US|-82.96|42.47|32|N|,Eastvale|CA|US|-117.56|33.96|59|N|,Eau Claire|WI|US|-91.5|44.81|67|N|,Ebetsu|hokkaido|JP|141.55|43.11|133|W|,Ebina|kanagawa|JP|139.4|35.38|136|W|,Ebute Ikorodu|lagos|NG|3.49|6.6|535|W|,Ecatepec de Morelos|MX15|MX|-99.06|19.6|1645|NW|ecatepec,Echo Park|CA|US|-118.26|34.08|43|N|,Ede|osun state|NG|4.44|7.74|159|W|,Eden Prairie|MN|US|-93.47|44.85|63|N|,Edgewater|IL|US|-87.66|41.98|54|N|,Edgewood|MD|US|-76.29|39.42|25|N|,Edina|MN|US|-93.35|44.89|50|N|,Edinburg|TX|US|-98.16|26.3|84|N|,Edinburgh|scotland|GB|-3.2|55.95|514|W|edimburgo;edynburg;edimbourg,Edirne|edirne|TR|26.56|41.68|180|W|adrianopol;adrianopoli,Edison|NJ|US|-74.41|40.52|102|N|gmina edison,Edmond|OK|US|-97.48|35.65|90|N|,Edmonds|WA|US|-122.38|47.81|41|N|,Edmonton|AB|CA|-113.47|53.55|1010|NW|,Edogawe|tokyo|JP|139.87|35.69|697|W|edogawa city,Efon-Alaaye|ekiti state|NG|4.92|7.66|279|W|,Egypt Lake-Leto|FL|US|-82.51|28.02|35|N|,Eimsbuettel|hamburg|DE|9.96|53.57|269|W|eimsbuttel;bezirk eimsbuttel;distretto di eimsbuttel;hambourg eimsbuttel;hamburg eimsbuttel,Eindhoven|north brabant|NL|5.48|51.44|235|W|,Eixample|catalonia|ES|2.16|41.39|266|W|distrito del ensanche,Ejigbo|osun state|NG|4.31|7.9|138|W|,El Achir|bordj bou arreridj|DZ|4.63|36.06|158|W|,El Cajon|CA|US|-116.96|32.79|103|N|,El Centro|CA|US|-115.56|32.79|43|N|,El Daein|eastern darfur|SD|26.13|11.46|264|W|ad du ayn;ad duajn;ad du ain;ed daein,El Dibir|bari|SO|51.22|11.77|200|W|,El Dorado Hills|CA|US|-121.08|38.69|42|N|,El Eulma|setif|DZ|5.69|36.15|145|W|,El Fasher|northern darfur|SD|25.35|13.63|252|W|al fashir;al faschir,El Geneina Fort|western darfur|SD|22.46|13.47|134|W|,El Jadida|casablanca settat|MA|-8.51|33.26|212|W|al dzadida;el yadida;mazagao;castilho real;mazaghan,El Limon|aragua|VE|-67.63|10.31|148|W|,El Mirage|AZ|US|-112.32|33.61|33|N|,El Monte|CA|US|-118.03|34.07|116|N|,El Obeid|north kordofan|SD|30.22|13.18|393|W|al ubayyid,El Oued|el oued|DZ|6.86|33.36|186|W|al wadi;oued souf,El Paso|TX|US|-106.49|31.76|678|NW|,El Pueblito|MX22|MX|-100.44|20.54|71|N|corregidora,El Tigre|anzoategui|VE|-64.25|8.89|222|W|,El Vigia|merida|VE|-71.66|8.61|162|W|,Elazig|elazig|TR|39.22|38.67|443|W|,Elche|valencia|ES|-0.7|38.26|234|W|elx,Eldersburg|MD|US|-76.95|39.4|30|N|eldersburgh,Eldoret|uasin gishu county|KE|35.27|0.52|475|W|,Elektrostal'|moscow oblast|RU|38.46|55.79|144|W|,Elgin|IL|US|-88.28|42.04|112|N|,Elizabeth|NJ|US|-74.21|40.66|129|N|,Elizabethtown|KY|US|-85.86|37.69|29|N|,Elk Grove|CA|US|-121.37|38.41|166|NW|,Elk Grove Village|IL|US|-87.97|42|33|N|,Elkhart|IN|US|-85.98|41.68|52|N|,Ellendale|TN|US|-89.83|35.23|25|N|,Ellicott City|MD|US|-76.8|39.27|65|N|,Elmhurst|NY|US|-73.88|40.74|113|N|,Elmhurst|IL|US|-87.94|41.9|45|N|,Elmira|NY|US|-76.81|42.09|28|N|,Elmont|NY|US|-73.71|40.7|33|N|,Eloy Alfaro|guayas|EC|-79.84|-2.17|315|W|duran,Eluru|andhra pradesh|IN|81.1|16.71|218|W|,Elyria|OH|US|-82.11|41.37|53|N|,Emalahleni|mpumalanga|ZA|29.23|-25.87|373|W|,eMbalenhle|mpumalanga|ZA|29.07|-26.53|142|W|,Embu das Artes|sao paulo|BR|-46.85|-23.65|259|W|embu arte,Emiliano Zapata|MX17|MX|-99.18|18.84|49|N|,Emiliano Zapata|MX15|MX|-98.97|19.34|25|N|,Eminabad|punjab|PK|74.26|32.04|150|W|,Empalme|MX26|MX|-110.81|27.96|42|N|,Encanto|AZ|US|-112.08|33.48|54|N|,Encarnacion de Diaz|MX14|MX|-102.24|21.53|25|N|la chona,Enchanted Hills|NM|US|-106.59|35.34|87|N|,Encinitas|CA|US|-117.29|33.04|62|N|,Encino|CA|US|-118.5|34.16|44|N|,Enfield|CT|US|-72.59|41.98|45|N|,Enfield Town|england|GB|-0.08|51.65|156|W|enfield,Engels|saratov oblast|RU|46.11|51.48|196|W|enehl s;engel s;pokrovs ka sloboda,Englewood|CO|US|-104.99|39.65|33|N|new dawn rejuvenation,Englewood|NJ|US|-73.97|40.89|28|N|,Englewood|IL|US|-87.65|41.78|26|N|,Enid|OK|US|-97.88|36.4|51|N|,Enschede|overijssel|NL|6.9|52.22|153|W|,Ensenada|MX02|MX|-116.6|31.87|443|NW|enseada,Enshi|hubei|CN|109.48|30.3|279|W|,Enterprise|NV|US|-115.24|36.03|108|N|,Enterprise|AL|US|-85.86|31.32|27|N|,Enugu|enugu state|NG|7.5|6.44|950|W|,Envigado|antioquia|CO|-75.59|6.18|163|W|,Epworth|harare|ZW|31.15|-17.89|206|W|,Erbil|erbil|IQ|44.01|36.19|1612|W|arbil;hawler;irbil,Eregli|konya|TR|34.05|37.51|156|W|heraclea;heraclea minoa;herakleia,Erfurt|thuringia|DE|11.04|50.98|218|W|,Erie|PA|US|-80.09|42.13|99|N|,Erode|tamil nadu|IN|77.73|11.34|521|W|irodu,Erzincan|erzincan|TR|39.49|39.74|150|W|erzincam;erzinca,Erzurum|erzurum|TR|41.28|39.91|767|W|,Escarcega|MX04|MX|-90.75|18.61|29|N|,Escondido|CA|US|-117.09|33.12|151|NW|,Escuinapa de Hidalgo|MX25|MX|-105.78|22.83|30|N|,Escuintla|escuintla|GT|-90.79|14.3|156|W|,Esenler|istanbul|TR|28.88|41.04|520|W|,Esenyurt|istanbul|TR|28.68|41.03|983|W|,Eskisehir|eskisehir|TR|30.52|39.78|921|W|,Eslamshahr|tehran|IR|51.24|35.55|450|W|eslamchahr;eslamschahr;shadshahr,Esmeraldas|esmeraldas|EC|-79.65|0.96|218|W|,Esna|qena|EG|32.55|25.29|462|W|,Esperanza|MX26|MX|-109.93|27.58|38|N|,Espoo|uusimaa|FI|24.65|60.21|323|W|esbo,Essen|north rhine westphalia|DE|7.01|51.46|593|W|,Essex|MD|US|-76.47|39.31|39|N|,Estero|FL|US|-81.81|26.44|30|N|,Etah|uttar pradesh|IN|78.66|27.56|131|W|,Etawah|uttar pradesh|IN|79.02|26.78|257|W|,Etobicoke|ON|CA|-79.57|43.64|365|NW|,Etwatwa|gauteng|ZA|28.45|-26.13|151|W|,Euclid|OH|US|-81.53|41.59|47|N|,Eugene|OR|US|-123.09|44.05|176|NW|,Euless|TX|US|-97.08|32.84|54|N|,Eureka|CA|US|-124.16|40.8|27|N|,Evans|GA|US|-82.13|33.53|29|N|,Evanston|IL|US|-87.69|42.04|75|N|,Evansville|IN|US|-87.56|37.97|119|N|,Evaton|gauteng|ZA|27.85|-26.53|725|W|,Everett|WA|US|-122.2|47.98|108|N|,Everett|MA|US|-71.05|42.41|46|N|,'Ewa Gentry-West Loch|HI|US|-158.03|21.35|35|N|,Ewing|NJ|US|-74.8|40.27|36|N|,Exeter|england|GB|-3.53|50.72|130|W|,Ezhou|hubei|CN|114.83|30.4|193|W|,Facatativa|cundinamarca|CO|-74.35|4.81|141|W|,Fair Lawn|NJ|US|-74.13|40.94|33|N|,Fair Oaks|CA|US|-121.27|38.64|30|N|,Fairbanks|AK|US|-147.72|64.84|32|N|,Fairborn|OH|US|-84.02|39.82|33|N|,Fairfield|CA|US|-122.04|38.25|112|N|,Fairfield|CT|US|-73.26|41.14|59|N|,Fairfield|OH|US|-84.56|39.35|42|N|,Fairview|BC|CA|-123.13|49.26|33|N|,Faisalabad|punjab|PK|73.09|31.42|3800|W|fajsalabad;lyallpur,Fall River|MA|US|-71.16|41.7|94|N|,Fallbrook|CA|US|-117.25|33.38|30|N|,Fallingbrook|ON|CA|-75.48|45.48|25|N|,Fangchenggang|guangxi|CN|108.36|21.77|276|W|,Fanling|north district|HK|114.14|22.49|263|W|,Far Rockaway|NY|US|-73.76|40.61|39|N|,Fardis|tehran|IR|51|35.76|181|W|,Fargo|ND|US|-96.79|46.88|118|N|,Faridabad|haryana|IN|77.31|28.41|1414|W|,Farmers Branch|TX|US|-96.9|32.93|32|N|,Farmington|NM|US|-108.22|36.73|42|N|,Farmington|CT|US|-72.83|41.72|25|N|,Farmington Hills|MI|US|-83.38|42.49|81|N|,Farrukhabad|uttar pradesh|IN|79.58|27.39|241|W|,Fatehpur|uttar pradesh|IN|80.81|25.93|166|W|,Fatih|istanbul|TR|28.94|41.02|356|W|,Favoriten|state of vienna|AT|16.38|48.16|201|W|,Fayetteville|NC|US|-78.88|35.05|201|NW|,Fayetteville|AR|US|-94.16|36.06|82|N|,Fazenda Rio Grande|parana|BR|-49.31|-25.66|148|W|,Federal Way|WA|US|-122.31|47.32|95|N|,Feira de Santana|bahia|BR|-38.97|-12.27|616|W|,Felipe Carrillo Puerto|MX23|MX|-88.05|19.58|25|N|,Fendou|heilongjiang|CN|124.86|46.64|226|W|,Fengcheng|chongqing|CN|107.06|29.83|175|W|changshohein,Fengcheng|jiangsu|CN|116.59|34.7|161|W|,Fenghuang|hunan|CN|109.6|27.94|370|W|,Fengshan|takao|TW|120.36|22.63|356|W|feng san;fongshan district,Fengxiang|shanghai|CN|121.47|30.86|1140|W|,Fenway/Kenmore|MA|US|-71.1|42.34|37|N|,Fergana|fergana|UZ|71.78|40.38|299|W|ferghana,Ferrara|emilia romagna|IT|11.62|44.84|132|W|ferrare,Ferraz de Vasconcelos|sao paulo|BR|-46.37|-23.54|179|W|,Ferry Pass|FL|US|-87.21|30.51|28|N|,Fes|fes meknes|MA|-5|34.03|1191|W|fez,Fes al Bali|fes meknes|MA|-4.95|34.07|156|W|,Fianarantsoa|upper matsiatra|MG|47.09|-21.45|203|W|,Financial District|NY|US|-74.01|40.71|60|N|,Findlay|OH|US|-83.65|41.04|41|N|,Firozabad|uttar pradesh|IN|78.4|27.15|306|W|,Fishers|IN|US|-86.01|39.96|76|N|,Fitchburg|MA|US|-71.8|42.58|40|N|,Fitchburg|WI|US|-89.47|42.96|27|N|,Flagami|FL|US|-80.32|25.76|50|N|,Flagstaff|AZ|US|-111.65|35.2|70|N|,Flatbush|NY|US|-73.96|40.65|93|N|,Flatlands|NY|US|-73.93|40.62|63|N|,Fleetwood|BC|CA|-122.8|49.17|65|N|,Fleming Island|FL|US|-81.72|30.09|27|N|,Flint|MI|US|-83.69|43.01|98|N|,Florence|tuscany|IT|11.25|43.78|367|W|florencja;firenze;floransa;florencia;florencie;florens;florenz;florenca;florenta,Florence|AL|US|-87.68|34.8|40|N|,Florence|SC|US|-79.76|34.2|38|N|,Florence|KY|US|-84.63|39|32|N|,Florence|AZ|US|-111.39|33.03|31|N|,Florence-Graham|CA|US|-118.24|33.97|63|N|,Florencia|caqueta|CO|-75.6|1.62|168|W|,Florianopolis|santa catarina|BR|-48.55|-27.6|508|W|floripa;nossa senhora do desterro;santa catherina,Floridablanca|santander department|CO|-73.09|7.06|267|W|,Floridsdorf|state of vienna|AT|16.4|48.25|162|W|,Florin|CA|US|-121.41|38.5|47|N|,Florissant|MO|US|-90.32|38.79|52|N|,Flower Mound|TX|US|-97.1|33.01|71|N|,Foggia|apulia|IT|15.55|41.46|137|W|,Folsom|CA|US|-121.18|38.68|76|N|,Fond du Lac|WI|US|-88.44|43.77|42|N|,Fontana|CA|US|-117.44|34.09|212|NW|,Fontanar|havana|CU|-82.41|23.02|178|W|,Foothill Farms|CA|US|-121.35|38.68|33|N|,Fordham|NY|US|-73.9|40.86|94|N|,Forest Hills|NY|US|-73.85|40.72|67|N|,Forest Hills|MI|US|-85.49|42.96|25|N|,Formosa|formosa|AR|-58.17|-26.18|222|W|ciudad de formosa,Fort Bragg|NC|US|-79.01|35.14|29|N|phao dai bragg;fort liberty,Fort Cavazos|TX|US|-97.78|31.13|29|N|,Fort Collins|CO|US|-105.08|40.59|170|NW|ft collins,Fort Erie|ON|CA|-78.93|42.9|30|N|,Fort Garry South|MB|CA|-97.16|49.79|65|N|,Fort Hamilton|NY|US|-74.03|40.62|28|N|,Fort Lauderdale|FL|US|-80.14|26.12|183|NW|,Fort Lee|NJ|US|-73.97|40.85|36|N|,Fort McMurray|AB|CA|-111.38|56.73|66|N|,Fort Myers|FL|US|-81.84|26.62|74|N|,Fort Pierce|FL|US|-80.33|27.45|44|N|ft pierce,Fort Smith|AR|US|-94.4|35.39|88|N|,Fort Wayne|IN|US|-85.13|41.13|260|NW|,Fort Worth|TX|US|-97.32|32.73|1008|NW|ft worth,Fortaleza|ceara|BR|-38.54|-3.72|2400|W|,Fortechnyi|kirovohrad|UA|32.25|48.5|167|W|,Fortuna Foothills|AZ|US|-114.41|32.66|26|N|,Foshan|guangdong|CN|113.13|23.03|9042|W|fo san,Foster City|CA|US|-122.27|37.56|33|N|,Foumban|west|CM|10.9|5.73|130|W|foumbam;fumban,Fountain|CO|US|-104.7|38.68|27|N|,Fountain Valley|CA|US|-117.95|33.71|56|N|,Fountainebleau|FL|US|-80.35|25.77|59|N|fountainbleau,Four Corners|FL|US|-81.65|28.33|26|N|,Foz do Iguacu|parana|BR|-54.59|-25.55|297|W|foz de iguazu,Fraccionamiento Real Palmas|MX19|MX|-100.16|25.9|34|N|,Framingham|MA|US|-71.42|42.28|68|N|,Framingham Center|MA|US|-71.44|42.3|65|N|,Franca|sao paulo|BR|-47.4|-20.54|365|W|,Franceville|haut ogooue|GA|13.58|-1.63|132|W|,Francisco I. Madero|MX07|MX|-103.27|25.77|26|N|,Francisco Morato|sao paulo|BR|-46.75|-23.28|165|W|,Franco da Rocha|sao paulo|BR|-46.73|-23.32|144|W|,Frankfort|KY|US|-84.87|38.2|28|N|,Frankfurt am Main|hesse|DE|8.68|50.12|650|W|francfort sur le main;francoforte sul meno;francfort del meno;francfort;francoforte;frankfurt;frankfurt nad menem;frankfurt nad mohanem;franckfurt,Franklin|TN|US|-86.87|35.93|72|N|,Franklin|WI|US|-88.04|42.89|36|N|,Franklin|MA|US|-71.4|42.08|30|N|,Franklin Square|NY|US|-73.68|40.71|29|N|,Fraser Heights|BC|CA|-122.78|49.2|25|N|,Frederick|MD|US|-77.41|39.41|69|N|,Fredericksburg|VA|US|-77.46|38.3|28|N|,Fredericton|NB|CA|-66.67|45.95|63|N|,Fredericton Northside|NB|CA|-66.64|45.98|28|N|northside fredericton,Freeport|NY|US|-73.58|40.66|43|N|,Freetown|western area|SL|-13.24|8.49|802|W|,Freguesia do O|sao paulo|BR|-46.7|-23.5|137|W|nossa senhora do o,Freiburg|baden wurttemberg|DE|7.85|48|237|W|freiburg im breisgau;fribourg en brisgau;friburgo de brisgovia;friburgo in brisgovia;fryburg bryzgowijski,Fremont|CA|US|-121.99|37.55|232|NW|,Fremont|NE|US|-96.5|41.43|26|N|,Fresh Meadows|NY|US|-73.79|40.73|28|N|,Fresnillo|MX32|MX|-102.87|23.17|143|NW|,Fresno|CA|US|-119.77|36.75|542|NW|,Fridley|MN|US|-93.26|45.09|27|N|,Friendswood|TX|US|-95.2|29.53|38|N|,Frisco|TX|US|-96.82|33.15|154|NW|,Frontera|MX07|MX|-101.45|26.93|69|N|ciudad frontera,Fruit Cove|FL|US|-81.64|30.11|29|N|,Fu'an|fujian|CN|119.64|27.09|154|W|,Fuchu|tokyo|JP|139.48|35.67|262|W|,Fuding|fujian|CN|120.21|27.33|192|W|,Fuencarral|madrid|ES|-3.68|40.5|238|W|,Fuencarral-El Pardo|madrid|ES|-3.73|40.5|220|W|,Fuenlabrada|madrid|ES|-3.79|40.28|190|W|,Fuentes del Valle|MX15|MX|-99.14|19.63|74|N|,Fuerth|bavaria|DE|10.99|49.48|132|W|furth,Fuji|shizuoka|JP|138.68|35.17|245|W|fudzi,Fuji|sichuan|CN|105.37|29.15|131|W|,Fujieda|shizuoka|JP|138.27|34.87|145|W|,Fujinomiya|shizuoka|JP|138.62|35.22|132|W|,Fujisawa|kanagawa|JP|139.48|35.35|439|W|,Fukayacho|saitama|JP|139.28|36.2|141|W|,Fukui-shi|fukui|JP|136.22|36.06|262|W|,Fukuoka|fukuoka|JP|130.42|33.6|1612|W|fukuoka shi;fukuokashi,Fukushima|fukushima|JP|140.47|37.75|294|W|,Fukuyama|hiroshima|JP|133.37|34.48|468|W|,Fuling|chongqing|CN|107.39|29.71|268|W|fuchow,Fullerton|CA|US|-117.93|33.87|140|NW|,Funtua|katsina state|NG|7.31|11.52|136|W|,Fushun|liaoning|CN|123.94|41.89|1400|W|fu sun,Fuxin|liaoning|CN|121.66|42.02|689|W|fu sin,Fuyang|anhui|CN|115.82|32.9|1768|W|fu jang,Fuyu|jilin|CN|124.82|45.18|138|W|,Fuzhou|fujian|CN|119.31|26.06|3740|W|fu cou;fucheu;phuc chau,Fuzhou|jiangxi|CN|116.33|27.96|1089|W|fu cou,Fyzabad|uttar pradesh|IN|82.15|26.78|153|W|faizabad,Gaborone|gaborone|BW|25.91|-24.65|246|W|,Gabriel Leyva Solano|MX25|MX|-108.64|25.66|27|N|benito juarez;leyva solano,Gadag|karnataka|IN|75.63|15.43|172|W|,Gadag-Betageri|karnataka|IN|75.62|15.42|172|W|,Gadsden|AL|US|-86.01|34.01|36|N|,Gage Park|IL|US|-87.7|41.8|41|N|,Gagnoa|goh djiboua|CI|-5.95|6.13|277|W|,Gahanna|OH|US|-82.88|40.02|34|N|,Gainesville|FL|US|-82.32|29.65|145|NW|,Gainesville|GA|US|-83.82|34.3|38|N|,Gaithersburg|MD|US|-77.2|39.14|67|N|,Gajuwaka|andhra pradesh|IN|83.22|17.7|258|W|,Galati|galati county|RO|28.05|45.44|217|W|galatz;galacz,Galesburg|IL|US|-90.37|40.95|31|N|,Gallatin|TN|US|-86.45|36.39|34|N|,Galt|CA|US|-121.3|38.25|25|N|,Galveston|TX|US|-94.8|29.3|50|N|,Gama|federal district|BR|-48.07|-16.03|139|W|,Gandajika|lomami|CD|23.95|-6.75|208|W|,Gandhidham|gujarat|IN|70.13|23.08|247|W|,Gandhinagar|gujarat|IN|72.68|23.22|292|W|,Gangneung|gangwon do|KR|128.87|37.75|208|W|,Ganja|gence|AZ|46.36|40.68|330|W|ganca;gandja;gandza;gence;gandzja,Ganzhou|jiangxi|CN|114.93|25.85|1977|W|cam chau;kan cou,Gao|gao|ML|-0.04|16.27|133|W|,Gaomi|shandong|CN|119.75|36.38|391|W|,Gaoping|sichuan|CN|106.1|30.78|204|W|,Gaozhou|guangdong|CN|110.86|21.92|292|W|,Garanhuns|pernambuco|BR|-36.5|-8.88|151|W|,Garcia|MX19|MX|-100.59|25.8|93|N|,Garden City|KS|US|-100.87|37.97|27|N|,Garden City|MI|US|-83.33|42.33|26|N|,Garden Grove|CA|US|-117.94|33.77|175|NW|,Gardena|CA|US|-118.31|33.89|60|N|,Garfield|NJ|US|-74.11|40.88|31|N|,Garfield Heights|OH|US|-81.61|41.42|28|N|garfield hts,Garhi Khairo|sindh|PK|67.98|28.06|193|W|,Garissa|garissa county|KE|39.65|-0.45|163|W|,Garland|TX|US|-96.64|32.91|236|NW|,Garner|NC|US|-78.61|35.71|28|N|,Garut|west java|ID|107.92|-7.25|131|W|,Gary|IN|US|-87.35|41.59|77|N|,Gasteiz / Vitoria|basque country|ES|-2.67|42.85|257|W|vitoria;vitoria gasteiz,Gastonia|NC|US|-81.19|35.26|74|N|,Gatineau|QC|CA|-75.7|45.48|300|NW|,Gaya|bihar|IN|85|24.8|474|W|,Gaza|gaza strip|PS|34.47|31.5|410|W|gaza city;gazze,Gaziantep|gaziantep|TR|37.38|37.06|2222|W|,Gazipur|dhaka division|BD|90.42|24|2674|W|,Gboko|benue state|NG|9|7.32|365|W|,Gbongan|osun state|NG|4.35|7.48|139|W|,Gdansk|pomerania|PL|18.65|54.35|487|W|danzica;danzig,Gdynia|pomerania|PL|18.53|54.52|257|W|gdingen;gdyne,Gebze|kocaeli|TR|29.43|40.8|281|W|,Geelong|victoria|AU|144.36|-38.15|282|W|,Geita|geita|TZ|32.23|-2.87|318|W|,Gejiu|yunnan|CN|103.15|23.36|136|W|,Gelsenkirchen|north rhine westphalia|DE|7.1|51.51|270|W|,Gemena|sud ubangi|CD|19.77|3.26|197|W|,General Santos|soccsksargen|PH|125.17|6.11|722|W|kota general santos,Geneva|geneva|CH|6.15|46.2|201|W|cenevre;genebra;geneve;genewa;genf;ginebra;ginevra;jenewa;zeneva,Genoa|liguria|IT|8.94|44.4|580|W|genova;cenova;genua;genes;janov,Gent|flanders|BE|3.72|51.05|265|W|gand;gandawa;gante;ghent,Geoje|gyeongsangnam do|KR|128.71|34.81|232|W|,George|western cape|ZA|22.46|-33.96|188|W|,George Town|penang|MY|100.34|5.41|158|W|georgetown;penang,Georgetown|demerara mahaica|GY|-58.16|6.8|235|W|,Georgetown|TX|US|-97.68|30.63|63|N|,Georgetown|ON|CA|-79.92|43.65|44|N|,Georgetown|KY|US|-84.56|38.21|32|N|,Germantown|MD|US|-77.27|39.17|86|N|,Germantown|TN|US|-89.81|35.09|39|N|,Germiston|gauteng|ZA|28.18|-26.23|255|W|germinston,Getafe|madrid|ES|-3.73|40.31|187|W|,Ghardaia|ghardaia|DZ|3.67|32.49|142|W|gardaya;ghardaja,Ghaziabad|uttar pradesh|IN|77.44|28.67|1199|W|gaziabade,Ghazni|ghazni|AF|68.42|33.55|141|W|gazni,Ghulja|xinjiang|CN|81.32|43.92|269|W|yining,Gia Lam|hanoi|VN|105.94|21.02|309|W|,Gia Rai|ca mau|VN|105.46|9.23|145|W|,Gifu|gifu|JP|136.76|35.42|402|W|gifu city,Gijang|busan|KR|129.21|35.24|176|W|,Gijon|asturias|ES|-5.66|43.54|271|W|,Gilbert|AZ|US|-111.79|33.35|247|NW|,Gilgit|gilgit baltistan|PK|74.31|35.92|216|W|,Gillette|WY|US|-105.5|44.29|32|N|,Gilroy|CA|US|-121.57|37.01|53|N|,Gimcheon|gyeongsangbuk do|KR|128.12|36.12|150|W|kimcchon,Gimpo-si|gyeonggi do|KR|126.71|37.62|203|W|gimpo,Gingoog|northern mindanao|PH|125.1|8.83|138|W|,Girga|sohag|EG|31.89|26.34|151|W|jirja,Gisenyi|western province|RW|29.26|-1.7|172|W|gosenyi,Giza|giza|EG|31.21|30.01|4367|W|gizeh;gize;guiza,GJien Ban|da nang city|VN|108.25|15.89|226|W|,GJong GJa|hanoi|VN|105.83|21.01|371|W|,GJong Hoi|quang tri|VN|106.62|17.47|133|W|dong hoi,GJong Xoai|dong nai|VN|106.88|11.53|168|W|dong xoai,GJuc Pho|quang ngai|VN|108.96|14.81|155|W|,GJuc Trong|lam dong|VN|108.37|11.74|161|W|lien nghia,Gladstone|MO|US|-94.55|39.2|26|N|,Glasgow|scotland|GB|-4.26|55.87|626|W|,Glastonbury|CT|US|-72.61|41.71|31|N|,Glen Burnie|MD|US|-76.62|39.16|67|N|,Glen Cove|NY|US|-73.63|40.86|27|N|,Glen Ellyn|IL|US|-88.07|41.88|28|N|,Glendale|AZ|US|-112.19|33.54|240|NW|,Glendale|CA|US|-118.26|34.14|201|NW|,Glendale|NY|US|-73.89|40.7|34|N|,Glendale Heights|IL|US|-88.06|41.91|34|N|,Glendora|CA|US|-117.87|34.14|52|N|,Glenfield-Jane Heights|ON|CA|-79.51|43.75|30|N|,Glenview|IL|US|-87.79|42.07|47|N|,Glenville|NY|US|-74.05|42.93|29|N|,Gliwice|silesia|PL|18.68|50.3|198|W|gleiwitz,Gloucester|ON|CA|-75.63|45.35|150|NW|,Gloucester|england|GB|-2.24|51.87|132|W|,Gloucester|MA|US|-70.66|42.61|29|N|,Godhra|gujarat|IN|73.61|22.78|143|W|,Godome|atlantique|BJ|2.35|6.39|253|W|,Goelbasi|ankara|TR|32.81|39.79|165|W|golbasi,Goiania|goias|BR|-49.25|-16.68|1536|W|,Gojra|punjab|PK|72.68|31.15|214|W|gorja,Gol'yanovo|moscow|RU|37.81|55.82|158|W|,Gold Coast|queensland|AU|153.43|-28|640|W|costa dorada;gold,Golden Glades|FL|US|-80.2|25.91|33|N|,Goldsboro|NC|US|-77.99|35.38|35|N|,Golestan|tehran|IR|51.18|35.52|240|W|,Goleta|CA|US|-119.83|34.44|30|N|goelette;kuunari;schoener;schoner;schooner;skonert;skonnert;szkuner,Golfe|luanda|AO|13.26|-8.87|655|W|,Goma|north kivu|CD|29.23|-1.67|432|W|,Gombe|gombe state|NG|11.17|10.29|560|W|,Gomez Palacio|MX10|MX|-103.5|25.57|257|NW|,Gonbad-e Kavus|golestan|IR|55.17|37.25|151|W|,Gonda City|uttar pradesh|IN|81.95|27.13|133|W|,Gonder|amhara|ET|37.47|12.6|466|W|gondar,Gondia|maharashtra|IN|80.19|21.46|132|W|gondiya,Gongheyong|guangdong|CN|113.79|22.76|204|W|,Gongzhuling|jilin|CN|124.82|43.5|140|W|,Goodyear|AZ|US|-112.36|33.44|79|N|,Goose Creek|SC|US|-80.03|32.98|40|N|,Gorakhpur|haryana|IN|75.67|29.45|1324|W|,Gorakhpur|uttar pradesh|IN|83.37|26.77|674|W|,Gorgan|golestan|IR|54.44|36.84|244|W|,Gorontalo|gorontalo|ID|123.06|0.54|205|W|,Goshen|IN|US|-85.83|41.58|32|N|,Gothenburg|vastra gotaland|SE|11.97|57.71|608|W|goteborg;gotemburgo;gotenburg;gothembourg,Governador Valadares|minas gerais|BR|-41.95|-18.85|266|W|gov valadares;valadares,Goyang-si|gyeonggi do|KR|126.83|37.66|1061|W|goyang,Gqeberha|eastern cape|ZA|25.61|-33.96|1050|W|port elizabeth;porto elizabeth;puerto elizabeth,Grajau|sao paulo|BR|-46.67|-23.77|384|W|,Gramercy Park|NY|US|-73.99|40.74|27|N|,Granada|andalusia|ES|-3.61|37.19|233|W|grenada;grenade;girnata,Granby|QC|CA|-72.73|45.4|66|N|,Grand Forks|ND|US|-97.03|47.93|57|N|,Grand Island|NE|US|-98.34|40.93|51|N|,Grand Junction|CO|US|-108.55|39.06|60|N|,Grand Prairie|TX|US|-97|32.75|187|NW|,Grand Rapids|MI|US|-85.67|42.96|195|NW|,Grande Prairie|AB|CA|-118.8|55.17|70|N|,Grandview|MO|US|-94.53|38.89|25|N|,Grandview-Woodlands|BC|CA|-123.07|49.28|29|N|,Granger|IN|US|-86.11|41.75|30|N|,Granite City|IL|US|-90.15|38.7|29|N|,Grants Pass|OR|US|-123.33|42.44|37|N|,Grapevine|TX|US|-97.08|32.93|51|N|,Gravatai|rio grande do sul|BR|-50.99|-29.94|265|W|,Gravesend|NY|US|-73.97|40.6|112|N|,Graz|styria|AT|15.44|47.07|303|W|styrsky hradec,Great Falls|MT|US|-111.3|47.5|59|N|,Greater Grand Crossing|IL|US|-87.61|41.76|32|N|,Greater Noida|uttar pradesh|IN|77.54|28.5|293|W|,Greater Sudbury|ON|CA|-80.99|46.49|166|NW|sudbury;gran sudbury;grand sudbury,Greeley|CO|US|-104.71|40.42|108|N|,Green|OH|US|-81.48|40.95|25|N|,Green Bay|WI|US|-88.02|44.52|105|N|,Greenacres City|FL|US|-80.13|26.62|32|N|,Greenburgh|NY|US|-73.84|41.03|86|N|,Greenfield|WI|US|-88.01|42.96|37|N|,Greenpoint|NY|US|-73.95|40.72|34|N|,Greensboro|NC|US|-79.79|36.07|285|NW|,Greenville|NC|US|-77.37|35.61|90|N|,Greenville|SC|US|-82.39|34.85|64|N|,Greenville|MS|US|-91.06|33.41|32|N|,Greenville|TX|US|-96.11|33.14|26|N|,Greenwood|IN|US|-86.11|39.61|55|N|,Greer|SC|US|-82.23|34.94|28|N|,Grenoble|rhone alpes|FR|5.71|45.18|158|W|,Gresham|OR|US|-122.43|45.5|110|N|,Grimsby|ON|CA|-79.57|43.2|27|N|,Groningen|groningen|NL|6.57|53.22|244|W|groninga;groningue,Grove City|OH|US|-83.09|39.88|39|N|,Grozny|chechnya|RU|45.69|43.31|297|W|grosnij;grosny;grozni;groznyi;groznyj;groznyy;groznai;groznii,Guacara|carabobo|VE|-67.88|10.23|198|W|,Guadalajara|MX14|MX|-103.35|20.68|1385|NW|,Guadalupe|MX19|MX|-100.26|25.68|673|NW|ciudad guadalupe;villa de guadalupe,Guadalupe|MX32|MX|-102.52|22.75|170|NW|,Guamuchil|MX25|MX|-108.08|25.46|72|N|,Guanajuato|MX11|MX|-101.26|21.02|72|N|guanajuato city,Guang'an|sichuan|CN|106.64|30.47|858|W|,Guangshui|hubei|CN|114|31.62|154|W|,Guangyuan|sichuan|CN|105.82|32.44|516|W|kuang juan,Guangzhou|guangdong|CN|113.25|23.12|16096|W|canton;cantao;kanton;koshu,Guankou|hunan|CN|113.63|28.16|1380|W|,Guantanamo|guantanamo province|CU|-75.21|20.14|272|W|,Guarapari|espirito santo|BR|-40.5|-20.67|136|W|,Guarapuava|parana|BR|-51.47|-25.39|189|W|,Guarenas|miranda|VE|-66.62|10.47|248|W|,Guaruja|sao paulo|BR|-46.26|-23.99|294|W|,Guarulhos|sao paulo|BR|-46.53|-23.46|1345|W|,Guasave|MX25|MX|-108.47|25.57|71|N|,Guatemala City|guatemala|GT|-90.51|14.64|994|W|citta del guatemala;ciudad de guatemala;guatemala;guatemala stadt;guate;cidade da guatemala;ciudad guatemala;guatemala by;guatemala stad;gwatemala;new guatemala;nueva guatemala;santiago de guatimala,Guatire|miranda|VE|-66.54|10.47|227|W|,Guayaquil|guayas|EC|-79.89|-2.2|2723|W|guaiaquil,Gucun|shanghai|CN|121.39|31.35|240|W|,Guediawaye|dakar|SN|-17.4|14.77|329|W|,Guelph|ON|CA|-80.26|43.55|143|NW|,Guigang|guangxi|CN|109.59|23.12|1086|W|kuej kang,Guildford|BC|CA|-122.8|49.19|64|N|,Guilin|guangxi|CN|110.3|25.28|1572|W|kuej lin,Guixi|chongqing|CN|107.35|30.33|188|W|,Guiyang|guizhou|CN|106.72|26.58|3037|W|kuej jang;quy duong,Gujangbagh|xinjiang|CN|79.93|37.11|408|W|chotan;ciudad de jotan;hotan;hoten;khotan,Gujranwala|punjab|PK|74.19|32.16|2511|W|gudzranwala;gudzranvala,Gujrat|punjab|PK|74.08|32.57|574|W|,Gulfport|MS|US|-89.09|30.37|71|N|,Guli|zhejiang|CN|120.03|28.88|536|W|,Gulu|northern region|UG|32.3|2.77|177|W|,Gumi|gyeongsangbuk do|KR|128.34|36.11|404|W|,Guna|madhya pradesh|IN|77.31|24.65|180|W|,Gunan|chongqing|CN|106.65|29.02|208|W|,Gundupalaiyam|puducherry|IN|79.8|11.94|300|W|,Gunpo|gyeonggi do|KR|126.95|37.37|286|W|,Gunsan|jeollabuk do|KR|126.71|35.98|264|W|kunsan;kunsanpo,Guntur|andhra pradesh|IN|80.46|16.3|670|W|gunturu,Gunungsitoli|north sumatra|ID|97.61|1.29|136|W|,Guri-si|gyeonggi do|KR|127.14|37.6|195|W|guri,Gurnee|IL|US|-87.9|42.37|31|N|,Gurue|zambezia province|MZ|36.98|-15.47|168|W|,Gurugram|haryana|IN|77.03|28.46|886|W|gurgaon,Gusau|zamfara state|NG|6.66|12.17|226|W|,Gustavo Adolfo Madero|MX09|MX|-99.11|19.49|1185|NW|gustavo a madero,Guwahati|assam|IN|91.75|26.18|962|W|gauhati,Guyong|central luzon|PH|120.98|14.84|155|W|,Guyuan|ningxia|CN|106.28|36.01|411|W|,Gwalior|madhya pradesh|IN|78.17|26.23|1054|W|,Gwangju|gwangju|KR|126.92|35.15|1401|W|gwangju si;kwangdzu;kwangju,Gwangmyeong|gyeonggi do|KR|126.87|37.48|357|W|,Gwangyang|jeollanam do|KR|127.7|34.94|154|W|,Gweru|midlands province|ZW|29.82|-19.45|158|W|,Gwynn Oak|MD|US|-76.69|39.33|47|N|,Gyanpur|uttar pradesh|IN|82.47|25.33|200|W|,Gyeongju|gyeongsangbuk do|KR|129.21|35.84|245|W|,Gyeongsan-si|gyeongsangbuk do|KR|128.74|35.82|266|W|gyeongsan,Ha'il|ha il region|SA|41.69|27.52|605|W|hail,Ha Long|quang ninh|VN|107.07|20.95|270|W|,Ha Tinh|ha tinh province|VN|105.91|18.34|266|W|ha thin;thanh sen,Haarlem|north holland|NL|4.64|52.38|162|W|,Habra|west bengal|IN|88.66|22.84|139|W|,Hachinohe|aomori|JP|141.5|40.5|239|W|,Hachioji|tokyo|JP|139.32|35.66|579|W|hachiouji,Hacienda Heights|CA|US|-117.97|33.99|54|N|,Hacienda Santa Fe|MX14|MX|-103.38|20.52|86|N|,Hackensack|NJ|US|-74.04|40.89|44|N|,Hada'iq al Qubbah|cairo|EG|31.28|30.09|339|W|,Hadano|kanagawa|JP|139.22|35.37|163|W|,Haeju|south hwanghae|KP|125.71|38.04|222|W|,Hafar Al-Batin|eastern province|SA|45.97|28.43|271|W|,Hafizabad|punjab|PK|73.69|32.07|318|W|,Hagen|north rhine westphalia|DE|7.47|51.36|198|W|,Hagerstown|MD|US|-77.72|39.64|40|N|,Hai Ba Trung|hanoi|VN|105.85|21.01|303|W|hai batrung,Hai Chau|da nang city|VN|108.13|15.92|131|W|,Hai Duong|hai phong|VN|106.33|20.94|241|W|,Haicheng|liaoning|CN|122.75|40.85|191|W|,Haifa|haifa|IL|35|32.81|285|W|hajfa;hayfa,Haikou|hainan|CN|110.35|20.03|2873|W|chaj kchou,Hailar|inner mongolia|CN|119.7|49.2|211|W|,Hailin|heilongjiang|CN|129.39|44.57|144|W|,Haiphong|hai phong|VN|106.68|20.86|2625|W|hai phong;hajfong,Hajipur|bihar|IN|85.21|25.69|147|W|,Hakodate|hokkaido|JP|140.74|41.78|275|W|,Haldia|west bengal|IN|88.11|22.06|170|W|,Haldwani|uttarakhand|IN|79.53|29.22|139|W|haldwani kathgodam;haldwani cum kathgodam,Halifax|NS|CA|-63.58|44.64|471|NW|,Hallandale Beach|FL|US|-80.15|25.98|39|N|hallandale,Halle (Saale)|saxony anhalt|DE|11.98|51.48|237|W|halle;halle an der saale;halle sul saale,Haltom City|TX|US|-97.27|32.8|44|N|,Halton Hills|ON|CA|-79.93|43.64|62|N|,Halwan|cairo|EG|31.3|29.84|230|W|helwan,Hamadan|hamadan province|IR|48.51|34.8|528|W|,Hamah|hama|SY|36.76|35.13|460|W|hama,Hamamatsu|shizuoka|JP|137.73|34.7|791|W|hamamacu;hamamatsu city;hamamatsu shi,Hamburg|hamburg|DE|9.99|53.55|1973|W|hamburgo;amburgo;hamborg;hambourg;hamburk;hampuri,Hamburg-Mitte|hamburg|DE|10.02|53.55|301|W|bezirk hamburg mitte;hamburg centru,Hamburg-Nord|hamburg|DE|9.98|53.59|315|W|bezirk hamburg nord;distretto di hamburg nord,Hamden|CT|US|-72.9|41.4|59|N|,Hamhung|south hamgyong|KP|127.54|39.92|559|W|,Hami|xinjiang|CN|93.51|42.83|246|W|kumul,Hamilton|ON|CA|-79.85|43.25|569|NW|,Hamilton|waikato region|NZ|175.28|-37.78|192|W|,Hamilton|OH|US|-84.56|39.4|62|N|,Hamm|north rhine westphalia|DE|7.82|51.68|178|W|,Hammond|IN|US|-87.5|41.58|77|N|,Hampton|VA|US|-76.35|37.03|137|NW|,Hanam|gyeonggi do|KR|127.21|37.54|254|W|,Handan|hebei|CN|114.49|36.61|1358|W|chan tan;ham dan,Hanfeng|chongqing|CN|108.4|31.17|196|W|,Hanford|CA|US|-119.65|36.33|55|N|,Hangu|tianjin|CN|117.79|39.25|208|W|,Hangzhou|zhejiang|CN|120.16|30.29|9236|W|chang cou;hang chau,Hannover|lower saxony|DE|9.73|52.37|515|W|hanover;hanovra;hanovre;hanower,Hanoi|hanoi|VN|105.84|21.02|8053|W|hanoj;kecho;kescio;thang long,Hanover|MD|US|-76.72|39.19|38|N|,Hanover Park|IL|US|-88.15|42|38|N|,Hanumangarh|rajasthan|IN|74.33|29.58|155|W|,Hanzhong|shaanxi|CN|107.02|33.08|1006|W|chan cung;han trung,Hapur|uttar pradesh|IN|77.78|28.73|242|W|,Harar|harari|ET|42.12|9.31|157|W|harar jugol;harer,Harare|harare|ZW|31.05|-17.83|1542|W|,Harbin|heilongjiang|CN|126.65|45.75|5242|W|charbin;cap nhi tan,Harburg|hamburg|DE|9.98|53.46|169|W|hamburg harburg;bezirk harburg;distretto di harburg;hambourg harburg;hamburgo harburgo,Hargeysa|woqooyi galbeed|SO|44.06|9.56|477|W|hargeisa,Haridwar|uttarakhand|IN|78.16|29.95|186|W|hardwar;haridvar,Harker Heights|TX|US|-97.66|31.08|29|N|,Harlem|NY|US|-73.95|40.81|116|N|,Harlingen|TX|US|-97.7|26.19|65|N|,Harrisburg|PA|US|-76.88|40.27|50|N|,Harrison|NY|US|-73.71|40.97|28|N|,Harrisonburg|VA|US|-78.87|38.45|52|N|,Harrow|england|GB|-0.33|51.58|149|W|,Hartford|CT|US|-72.69|41.76|121|N|,Harunabad|punjab|PK|73.14|29.61|149|W|,Harvey|IL|US|-87.65|41.61|25|N|,Hashtsal|delhi|IN|77.06|28.63|176|W|,Hasilpur|punjab|PK|72.55|29.69|168|W|,Hassan|karnataka|IN|76.1|13.01|155|W|,Hastings-Sunrise|BC|CA|-123.03|49.28|34|N|,Hat Yai|songkhla|TH|100.48|7.01|191|W|,Hathazari|chittagong|BD|91.81|22.51|498|W|,Hattiesburg|MS|US|-89.29|31.33|46|N|,Havana|havana|CU|-82.38|23.13|2163|W|havanna;hawana;l avana;la habana;la havane,Haverhill|MA|US|-71.08|42.78|62|N|,Havertown|PA|US|-75.31|39.98|50|N|,Hawai'i Kai|HI|US|-157.7|21.3|30|N|,Hawalli|hawalli|KW|48.03|29.33|164|W|havalli,Hawthorne|CA|US|-118.35|33.92|88|N|,Hayward|CA|US|-122.08|37.67|158|NW|,Hayy Khilda|amman|JO|35.84|31.99|251|W|,Hazaribagh|jharkhand|IN|85.36|23.99|153|W|hazaribag,Hazelwood|MO|US|-90.37|38.77|25|N|,Hebi|henan|CN|114.29|35.73|634|W|che pi,Hebron|west bank|PS|35.09|31.53|160|W|el halil;hebrom,Hechi|guangxi|CN|108.08|24.69|330|W|,Hechuan|chongqing|CN|106.26|29.99|377|W|,Hefei|anhui|CN|117.28|31.86|5050|W|che fej,Hegang|heilongjiang|CN|130.29|47.35|743|W|che kang,Heidelberg|baden wurttemberg|DE|8.69|49.41|143|W|edelberga;heidelberga,Heihe|heilongjiang|CN|127.49|50.24|223|W|chej che,Hejiang|sichuan|CN|105.83|28.81|137|W|,Helena|MT|US|-112.04|46.59|32|N|,Hell's Kitchen|NY|US|-73.99|40.76|45|N|la cocina del infierno;midtown west,Helsinki|uusimaa|FI|24.94|60.17|658|W|helsingfors;helsinky;helsinquia;khel sinki,Hemet|CA|US|-116.97|33.75|83|N|,Hempstead|NY|US|-73.62|40.71|55|N|,Henderson|NV|US|-114.98|36.04|285|NW|,Henderson|KY|US|-87.59|37.84|28|N|,Hendersonville|TN|US|-86.62|36.3|56|N|,Hengshan|heilongjiang|CN|130.9|45.21|164|W|,Hengshui|hebei|CN|115.68|37.74|522|W|cheng suej,Hengyang|hunan|CN|112.62|26.89|1075|W|cheng jang;hanh duong,Henrietta|NY|US|-77.61|43.06|42|N|,Hepo|guangdong|CN|115.83|23.43|131|W|,Hepu|guangxi|CN|109.2|21.66|192|W|,Herat|herat|AF|62.2|34.35|574|W|,Hercules|CA|US|-122.29|38.02|25|N|,Hermitage|TN|US|-86.62|36.2|37|N|,Hermosillo|MX26|MX|-110.97|29.09|812|NW|,Herne|north rhine westphalia|DE|7.23|51.54|172|W|,Heroica Caborca|MX26|MX|-112.16|30.72|59|N|caborca,Heroica Ciudad de Juchitan de Zaragoza|MX20|MX|-95.02|16.43|88|N|juchitan de zaragoza;juchitan,Heroica Guaymas|MX26|MX|-110.9|27.92|117|N|guaymas,Heroica Matamoros|MX28|MX|-97.5|25.88|510|NW|matamoros,Heroica Zitacuaro|MX16|MX|-100.36|19.44|84|N|,Herriman|UT|US|-112.03|40.51|30|N|,Heshan|hunan|CN|112.35|28.57|1249|W|,Hesperia|CA|US|-117.3|34.43|93|N|,Hetauda|bagmati province|NP|85.03|27.43|195|W|,Heyuan|guangdong|CN|114.68|23.73|463|W|che juan;ha nguyen,Heze|shandong|CN|115.47|35.24|1346|W|che ce,Hezhou|guangxi|CN|111.57|24.4|1005|W|che cou,Hialeah|FL|US|-80.28|25.86|237|NW|,Hickory|NC|US|-81.34|35.73|40|N|,Hicksville|NY|US|-73.53|40.77|41|N|,Hidalgo del Parral|MX06|MX|-105.67|26.93|104|N|parral,Higashihiroshima|hiroshima|JP|132.74|34.41|196|W|,Higashimurayama|tokyo|JP|139.47|35.75|151|W|,Higashiosaka|osaka|JP|135.58|34.67|493|W|,High Point|NC|US|-80.01|35.96|110|N|,High Wycombe|england|GB|-0.75|51.63|133|W|,Highland|CA|US|-117.21|34.13|54|N|,Highland Park|IL|US|-87.8|42.18|29|N|,Highlands Ranch|CO|US|-104.97|39.55|96|N|,Hilliard|OH|US|-83.16|40.03|33|N|,Hillsboro|OR|US|-122.99|45.52|102|N|,Hillsborough|NJ|US|-74.63|40.48|38|N|,Hilo|HI|US|-155.09|19.73|43|N|baie de hilo,Hilton Head|SC|US|-80.75|32.22|37|N|hilton head island,Hilton Head Island|SC|US|-80.74|32.19|40|N|ile de hilton head,Himeji|hyogo|JP|134.7|34.82|530|W|,Hindupur|andhra pradesh|IN|77.49|13.83|151|W|,Hinesville|GA|US|-81.6|31.85|33|N|,Hino|tokyo|JP|139.4|35.67|190|W|,Hinthada|ayeyarwady|MM|95.46|17.65|134|W|henzada,Hirakata|osaka|JP|135.65|34.81|406|W|,Hiratsuka|kanagawa|JP|139.34|35.33|258|W|,Hirosaki|aomori|JP|140.47|40.59|168|W|,Hiroshima|hiroshima|JP|132.45|34.4|1200|W|hiroshima shi;hiroshimashi;hiroszima;hiroxima;hirosima,Hisar|haryana|IN|75.72|29.15|307|W|,Hitachi|ibaraki|JP|140.65|36.6|174|W|,Hitachi-Naka|ibaraki|JP|140.53|36.4|156|W|,Hlaingthaya|yangon|MM|96.07|16.85|687|W|,Ho|volta|GH|0.47|6.6|130|W|,Ho Chi Minh City|ho chi minh city hcmc|VN|106.63|10.82|14002|W|ho chi minh stadt;ho chi minh ville;hcmv;tphcm;cidade de ho chi minh;ciudad ho chi minh;ho chi minh;ho chi minh byen;ho chi minh staden;ho chi minhstad;ho ci minovo mesto;saigon;sai gon,Hoa Thanh|tay ninh|VN|106.13|11.29|147|W|,Hoan Kiem|hanoi|VN|105.85|21.03|135|W|,Hobart|tasmania|AU|147.33|-42.88|254|W|,Hobart|IN|US|-87.26|41.53|28|N|,Hobbs|NM|US|-103.14|32.7|38|N|,Hoboken|NJ|US|-74.03|40.74|53|N|,Hoffman Estates|IL|US|-88.08|42.04|52|N|,Hohhot|inner mongolia|CN|111.65|40.81|2350|W|choch chot;huhhot;kweisui,Hoji ya Henda|luanda|AO|13.29|-8.81|642|W|,Holbrook|NY|US|-73.08|40.81|27|N|,Holguin|holguin province|CU|-76.26|20.89|319|W|,Holladay|UT|US|-111.82|40.67|30|N|,Holland|MI|US|-86.11|42.79|33|N|,Hollister|CA|US|-121.4|36.85|37|N|,Holly Springs|NC|US|-78.83|35.65|31|N|,Hollywood|CA|US|-118.33|34.1|167|NW|,Hollywood|FL|US|-80.15|26.01|149|NW|,Holmesburg|PA|US|-75.03|40.04|28|N|,Holon|tel aviv|IL|34.78|32.01|196|W|cholon;jolon,Holyoke|MA|US|-72.62|42.2|40|N|,Homestead|FL|US|-80.48|25.47|80|N|,Homewood|AL|US|-86.8|33.47|25|N|,Homs|homs|SY|36.73|34.72|775|W|hims;hums;humus,Homyel'|homyel voblasc|BY|30.98|52.43|501|W|homel;homiel;gomel,Honcho|chiba|JP|139.99|35.7|644|W|funabashi,Hong Kong||HK|114.17|22.28|7396|W|hongkong;victoria,Hong Kong Island||HK|114.18|22.26|1195|W|hong kong,Honggang|heilongjiang|CN|124.88|46.4|147|W|,Hongkou|shanghai|CN|121.49|31.25|687|W|,Honolulu|HI|US|-157.86|21.31|350|NW|,Hoofddorp|north holland|NL|4.69|52.3|132|W|,Hoover|AL|US|-86.81|33.41|84|N|,Hopkinsville|KY|US|-87.49|36.87|32|N|,Horlivka|donetsk|UA|38.02|48.3|239|W|gorlowka;gorlovka;horliwka,Horn Lake|MS|US|-90.03|34.96|26|N|,Horta-Guinardo|catalonia|ES|2.17|41.42|168|W|,Hortaleza|madrid|ES|-3.64|40.47|161|W|,Hortolandia|sao paulo|BR|-47.22|-22.86|236|W|,Hosa'ina|central ethiopia regional state|ET|37.85|7.55|188|W|,Hosapete|karnataka|IN|76.39|15.27|206|W|hospet,Hoshiarpur|punjab|IN|75.91|31.54|168|W|,Hosur|tamil nadu|IN|77.83|12.74|229|W|,Hot Springs|AR|US|-93.06|34.5|35|N|,Hougang New Town||SG|103.89|1.36|227|W|hougang,Houma|LA|US|-90.72|29.6|34|N|,Houston|TX|US|-95.36|29.76|2314|NW|,Howard Beach|NY|US|-73.84|40.66|26|N|,Howrah|west bengal|IN|88.32|22.58|1027|W|haora,Hrodna|grodnenskaya|BY|23.83|53.68|363|W|goradnia;grodno,Hsinchu|taiwan|TW|120.97|24.8|453|W|kota hsinchu;sin cu;tan truc;xinzhu,Huadian|jilin|CN|126.74|42.97|139|W|,Huai'an|jiangsu|CN|119.02|33.59|2494|W|chuaj an;huaiyin,Huaibei|anhui|CN|116.79|33.97|1113|W|chuaj pej,Huaihua|hunan|CN|110|27.56|552|W|chuaj chua;hoai hoa,Huainan|anhui|CN|117|32.63|1666|W|,Huamantla|MX29|MX|-97.93|19.31|51|N|,Huambo|huambo|AO|15.74|-12.78|595|W|,Huancayo|junin|PE|-75.21|-12.07|456|W|,Huanggang|hubei|CN|114.87|30.45|366|W|chuang kang;hoang cuong;hwang chau;hwang chow;hwangchow;wangchau;wangchou,Huanggang|guangdong|CN|117|23.68|225|W|,Huangpu|shanghai|CN|121.48|31.24|504|W|,Huangshan|anhui|CN|118.31|29.71|460|W|chuang san;hoang son;huangshan city,Huangshi|hubei|CN|115.05|30.25|688|W|chuang s,Huanuco|huanuco department|PE|-76.24|-9.93|196|W|,Huatabampo|MX26|MX|-109.64|26.83|30|N|,Huatusco|MX30|MX|-96.97|19.15|31|N|,Huauchinango|MX21|MX|-98.05|20.17|56|N|,Huayin|shaanxi|CN|110.07|34.57|242|W|,Hub|balochistan|PK|66.89|25.03|195|W|,Hubballi|karnataka|IN|75.13|15.35|943|W|hubli,Huber Heights|OH|US|-84.12|39.84|38|N|,Huddersfield|england|GB|-1.78|53.65|149|W|,Hue|thua thien hue province|VN|107.6|16.46|1380|W|,Huejotzingo|MX21|MX|-98.41|19.16|25|N|,Huejutla de Reyes|MX13|MX|-98.42|21.14|40|N|,Huelva|andalusia|ES|-6.94|37.27|144|W|,Hugli|west bengal|IN|88.4|22.91|177|W|,Huimanguillo|MX27|MX|-93.39|17.83|27|N|,Huinong|ningxia|CN|106.77|39.23|136|W|,Huixing|chongqing|CN|106.61|29.68|186|W|,Huixquilucan|MX15|MX|-99.35|19.36|124|N|,Huixtla|MX05|MX|-92.46|15.14|32|N|,Huizhou|guangdong|CN|114.42|23.11|2900|W|chuej cou,Hulan Ergi|heilongjiang|CN|123.63|47.2|265|W|,Hull|QC|CA|-75.71|45.43|63|N|,Huludao|liaoning|CN|120.84|40.75|944|W|,Hulunbuir|inner mongolia|CN|119.76|49.21|349|W|,Humen|guangdong|CN|113.67|22.82|191|W|,Hungnam|south hamgyong|KP|127.63|39.84|346|W|,Huntersville|NC|US|-80.84|35.41|52|N|,Huntington|WV|US|-82.45|38.42|48|N|,Huntington Beach|CA|US|-118|33.66|201|NW|,Huntington Park|CA|US|-118.23|33.98|59|N|,Huntington Station|NY|US|-73.41|40.85|33|N|,Huntley|IL|US|-88.43|42.17|26|N|,Hunts Point|NY|US|-73.88|40.81|27|N|,Huntsville|AL|US|-86.59|34.73|215|NW|,Huntsville|TX|US|-95.55|30.72|40|N|,Huocheng|xinjiang|CN|80.87|44.05|360|W|huocheng county,Hurghada|red sea|EG|33.81|27.26|207|W|hurgada,Hurst|TX|US|-97.17|32.82|39|N|,Hutchinson|KS|US|-97.93|38.06|41|N|,Huyen Lam Ha|lam dong|VN|108.21|11.82|144|W|lam ha;lam ha district,Huzhou|zhejiang|CN|120.09|30.87|1015|W|,Hwaseong-si|gyeonggi do|KR|126.82|37.21|640|W|hwaseong,Hyde Park|MA|US|-71.12|42.26|31|N|,Hyde Park|IL|US|-87.59|41.79|26|N|,Hyderabad|telangana|IN|78.46|17.38|6993|W|haiderabad;hajdarabad,Hyderabad|sindh|PK|68.38|25.4|1921|W|hajdarabad;haydarabad,Hyesan|yanggang do|KP|128.18|41.4|192|W|,Iasi|iasi county|RO|27.6|47.17|378|W|jassy;jasy;yas;jassenmarkt,Ibadan|oyo state|NG|3.91|7.38|3649|W|,Ibague|tolima department|CO|-75.2|4.44|529|W|,Ibaraki|osaka|JP|135.57|34.82|287|W|,Ibarra|imbabura|EC|-78.12|0.35|221|W|,Ibb|ibb governorate|YE|44.18|13.97|771|W|,Ibirite|minas gerais|BR|-44.06|-20.02|179|W|,'Ibri|ad dhahirah|OM|56.52|23.23|163|W|,Ica|ica|PE|-75.73|-14.08|282|W|ika,Ichalkaranji|maharashtra|IN|74.46|16.69|287|W|,Icheon-si|gyeonggi do|KR|127.44|37.28|196|W|icheon,Ichihara|chiba|JP|140.08|35.52|283|W|,Ichikawa|chiba|JP|139.91|35.73|496|W|,Ichinomiya|aichi|JP|136.8|35.3|380|W|owari ichinomiya,Idaho Falls|ID|US|-112.03|43.47|59|N|,Idku|beheira|EG|30.3|31.31|177|W|,Ifakara|morogoro|TZ|36.68|-8.13|205|W|,Igboho|oyo state|NG|3.76|8.84|136|W|,Iguala de la Independencia|MX12|MX|-99.54|18.35|118|N|,Iguatemi|sao paulo|BR|-46.43|-23.61|149|W|,Ijebu Ode|ogun state|NG|3.92|6.82|360|W|,Ijero-Ekiti|ekiti state|NG|5.07|7.82|167|W|,Ikare|ondo state|NG|5.75|7.53|465|W|,Ikeja|lagos|NG|3.34|6.6|313|W|,Ikire|osun state|NG|4.19|7.37|222|W|,Ikirun|osun state|NG|4.67|7.91|134|W|,Ikot Ekpene|akwa ibom state|NG|7.71|5.18|254|W|,Iksan|jeollabuk do|KR|126.95|35.94|307|W|,Ila Orangun|osun state|NG|4.9|8.02|179|W|,Ilagan|cagayan valley|PH|121.89|17.15|164|W|,Ilam|ilam province|IR|46.42|33.64|140|W|,Ile-Ife|osun state|NG|4.56|7.48|560|W|,Ilesa|osun state|NG|4.74|7.63|325|W|,Ilford|england|GB|0.07|51.56|168|W|,Ilheus|bahia|BR|-39.03|-14.8|189|W|sao jorge dos ilheos,Iligan|northern mindanao|PH|124.24|8.23|342|W|,Iligan City|soccsksargen|PH|124.4|8.25|312|W|,Iloilo|western visayas|PH|122.56|10.7|473|W|iloilo city,Ilorin|kwara state|NG|4.54|8.5|1080|W|,Imabari|ehime|JP|133|34.07|170|W|,Imperatriz|maranhao|BR|-47.49|-5.53|273|W|,Imperial Beach|CA|US|-117.11|32.58|27|N|,Imphal|manipur|IN|93.94|24.81|277|W|,Imus|calabarzon|PH|120.94|14.43|481|W|,Inazawa|aichi|JP|136.78|35.25|134|W|,Incheon|incheon|KR|126.71|37.46|3015|W|inch on;incheon si;inchon;incchon;nhan xuyen;chemulpo,Indaiatuba|sao paulo|BR|-47.21|-23.09|256|W|,Independence|MO|US|-94.42|39.09|117|N|,Independence|KY|US|-84.54|38.94|26|N|,Indian Trail|NC|US|-80.67|35.08|37|N|,Indianapolis|IN|US|-86.16|39.77|887|NW|indpls,Indio|CA|US|-116.22|33.72|87|N|,Indore|madhya pradesh|IN|75.83|22.72|1994|W|indhur,Inegol|bursa province|TR|29.51|40.08|133|W|,Inezgane|souss massa|MA|-9.54|30.36|142|W|,Inglewood|CA|US|-118.35|33.96|111|N|,Ingombota|luanda|AO|13.23|-8.82|144|W|,Inisa|osun state|NG|4.33|7.85|164|W|,Innisfil|ON|CA|-79.65|44.3|43|N|,Innsbruck|tyrol|AT|11.39|47.26|132|W|,Insein|yangon|MM|96.1|16.89|247|W|,Inver Grove Heights|MN|US|-93.04|44.85|34|N|inver grove,Iowa City|IA|US|-91.53|41.66|74|N|,Ipatinga|minas gerais|BR|-42.54|-19.47|235|W|,Ipoh|perak|MY|101.08|4.58|759|W|,Ipswich|england|GB|1.16|52.06|178|W|,Iquique|tarapaca|CL|-70.15|-20.21|199|W|,Iquitos|loreto|PE|-73.25|-3.75|377|W|,Irakleion|crete|GR|25.14|35.33|137|W|heraklion;candia;heracliao;heraclion;herakleion;iraklio;iraklion;iraclio;kandiye,Iranshahr|sistan and baluchestan|IR|60.68|27.2|131|W|,Irapuato|MX11|MX|-101.36|20.67|380|NW|,Irbid|irbid|JO|35.85|32.56|569|W|,Irewe|lagos|NG|3.14|6.42|139|W|,Iringa|iringa|TZ|35.7|-7.77|202|W|,Irkutsk|irkutsk oblast|RU|104.29|52.3|623|W|irkoetsk;irkoutsk;irkuck;irkutsc;irkutk,Irondequoit|NY|US|-77.58|43.21|51|N|,Iruma|saitama|JP|139.37|35.82|147|W|,Irvine|CA|US|-117.82|33.67|256|NW|,Irving|TX|US|-96.95|32.81|236|NW|,Irving Park|IL|US|-87.74|41.95|56|N|,Irvington|NJ|US|-74.23|40.73|61|N|,Isahaya|nagasaki|JP|130.04|32.84|135|W|,Ise-Ekiti|ekiti state|NG|5.42|7.46|190|W|,Isesaki|gunma|JP|139.2|36.32|211|W|,Iseyin|oyo state|NG|3.6|7.97|365|W|,Isfahan|isfahan|IR|51.67|32.65|1547|W|esfahan;ispahan;kota isfahan,Isfara|sughd|TJ|70.63|40.13|274|W|,Ishinomaki|miyagi|JP|141.3|38.42|140|W|,Isidro Casanova|buenos aires|AR|-58.59|-34.7|131|W|,Isiro|haut uele|CD|27.62|2.77|255|W|,Iskandar Puteri|johor|MY|103.62|1.39|575|W|,Iskenderun|hatay|TR|36.17|36.59|251|W|alejandreta;aleksandretta;alexandretta,Isla|MX30|MX|-95.53|18.03|26|N|,Islamabad|islamabad|PK|73.04|33.72|601|W|islamabade,Islington|england|GB|-0.1|51.54|319|W|,Islington-City Centre West|ON|CA|-79.54|43.63|43|N|,Ismailia|ismailia|EG|32.27|30.6|429|W|el ismalia;ismalia;ismailija;ismailiye,Isparta|isparta|TR|30.55|37.76|172|W|,Issaquah|WA|US|-122.03|47.53|36|N|,Istanbul|istanbul|TR|28.95|41.01|15701|W|estambul;istambul;stambul;byzance;byzantion;byzantium;constantinopla;constantinople;constantinopolen;costantinopoli;konstantinopel;micklagard,Istaravshan|sughd|TJ|69|39.91|273|W|istaravchan;istaravsjan;istaravsan;istarawschan;istarawshan;istarawszan,Itabashi|tokyo|JP|139.71|35.75|584|W|tabashi city,Itaborai|rio de janeiro|BR|-42.86|-22.74|240|W|,Itabuna|bahia|BR|-39.28|-14.79|196|W|,Itaguei|antioquia|CO|-75.6|6.18|281|W|itagui,Itaim Paulista|sao paulo|BR|-46.39|-23.5|205|W|,Itaituba|para|BR|-55.98|-4.28|135|W|,Itajai|santa catarina|BR|-48.66|-26.91|294|W|itajahy,Itami|hyogo|JP|135.4|34.78|198|W|,Itapecerica da Serra|sao paulo|BR|-46.85|-23.72|163|W|,Itapetininga|sao paulo|BR|-48.05|-23.59|164|W|,Itapevi|sao paulo|BR|-46.93|-23.55|240|W|,Itapipoca|ceara|BR|-39.58|-3.49|138|W|,Itaquaquecetuba|sao paulo|BR|-46.35|-23.49|369|W|,Itaquera|sao paulo|BR|-46.44|-23.53|210|W|,Ithaca|NY|US|-76.5|42.44|30|N|,Itu|sao paulo|BR|-47.3|-23.26|175|W|,Ituzaingo|corrientes|AR|-56.69|-27.59|168|W|,Ivano-Frankivsk|ivano frankivsk|UA|24.71|48.92|238|W|ivano frankivs k;iwano frankiwsk;stanislaopoli;stanislau;stanislaw;stanislawow,Ivanovo|ivanovo oblast|RU|40.97|57|406|W|iwanowo,Ivory Park|gauteng|ZA|28.2|-26|184|W|,Iwaki|fukushima|JP|140.88|37.05|357|W|,Iwata|shizuoka|JP|137.85|34.7|166|W|,Iwo|osun state|NG|4.18|7.64|250|W|,Ixmiquilpan|MX13|MX|-99.22|20.48|34|N|,Ixtaczoquitlan|MX30|MX|-97.06|18.85|26|N|,Ixtapa|MX14|MX|-105.21|20.72|29|N|,Ixtapa-Zihuatanejo|MX12|MX|-101.55|17.64|67|N|jose azueta;zihuatanejo,Ixtapaluca|MX15|MX|-98.88|19.32|322|NW|iztapaluca,Ixtepec|MX20|MX|-95.1|16.56|25|N|san geronimo ixtepec;ciudad ixtepec,Izhevsk|udmurtiya republic|RU|53.2|56.85|648|W|izjevsk;ijevsk;ischewsk;izewsk;izevsk,Izmir|izmir province|TR|27.14|38.41|2938|W|esmirna;smirne,Izmit|kocaeli|TR|29.93|40.76|196|W|nicomedia;nicomedie;nikomedia,Iztacalco|MX09|MX|-99.1|19.4|384|NW|,Iztapalapa|MX09|MX|-99.06|19.36|1835|NW|delegacion iztapalapa;delegazione iztapalapa,Izucar de Matamoros|MX21|MX|-98.46|18.6|42|N|izucar,Izumi|osaka|JP|135.43|34.48|184|W|,Izumo|shimane|JP|132.77|35.37|172|W|,Jabalpur|madhya pradesh|IN|79.95|23.17|1081|W|dzabalpur,Jabalya|gaza strip|PS|34.48|31.53|168|W|jabalia,Jabaquara|sao paulo|BR|-46.65|-23.65|214|W|,Jaboatao dos Guararapes|pernambuco|BR|-35.01|-8.11|644|W|,Jacarei|sao paulo|BR|-45.97|-23.31|250|W|,Jackson|MS|US|-90.18|32.3|153|NW|,Jackson|TN|US|-88.81|35.61|66|N|,Jackson|NJ|US|-74.86|39.78|54|N|,Jackson|MI|US|-84.4|42.25|33|N|,Jackson Heights|NY|US|-73.89|40.76|67|N|,Jacksonville|FL|US|-81.66|30.33|1009|NW|,Jacksonville|NC|US|-77.43|34.75|67|N|,Jacksonville|AR|US|-92.11|34.87|28|N|,Jacmel|sud est|HT|-72.54|18.24|137|W|yaquimo,Jacobabad|sindh|PK|68.44|28.28|219|W|khangarh,Jacona de Plancarte|MX16|MX|-102.31|19.96|53|N|,Jaffna|northern province|LK|80.01|9.67|169|W|dzafna,Jahrom|fars|IR|53.56|28.5|141|W|,Jaigaon|west bengal|IN|89.38|26.85|158|W|,Jaipur|rajasthan|IN|75.79|26.92|3046|W|dzajpur,Jajmau|uttar pradesh|IN|80.41|26.43|652|W|,Jakarta|jakarta|ID|106.85|-6.21|8540|W|cakarta;djakarta;dzakarta;giacarta;yakarta;batavia;sunda kelapa;sundapura,Jalalabad|nangarhar|AF|70.45|34.43|271|W|celalabad;dschalalabad;dzalalabad,Jalalpur Jattan|punjab|PK|74.21|32.64|146|W|,Jalalpur Pirwala|punjab|PK|71.22|29.51|500|W|dzalalpur pirwala,Jalandhar|punjab|IN|75.58|31.33|868|W|dzalandhar,Jalapa|jalapa|GT|-89.99|14.64|159|W|,Jalgaon|maharashtra|IN|75.57|21|460|W|,Jalna|maharashtra|IN|75.89|19.84|285|W|,Jaltipan de Morelos|MX30|MX|-94.71|17.97|32|N|,Jamaica|NY|US|-73.81|40.69|216|NW|,Jamaica Plain|MA|US|-71.12|42.31|37|N|,Jamalpur|mymensingh division|BD|89.95|24.92|167|W|,Jambi City|jambi|ID|103.62|-1.6|635|W|jambi,Jamestown|NY|US|-79.24|42.1|30|N|,Jammu|jammu and kashmir|IN|74.86|32.74|576|W|dzammu,Jamnagar|gujarat|IN|70.07|22.47|600|W|dzamnagar,Jampur|punjab|PK|70.6|29.64|155|W|,Jamshedpur|jharkhand|IN|86.19|22.8|1339|W|cemsidpur;dzamsedpur,Jamuria|west bengal|IN|87.08|23.7|160|W|,Janakpur|madhesh|NP|85.93|26.73|195|W|janakpur dham,Janesville|WI|US|-89.02|42.68|64|N|,Janzur|al jafarah|LY|13.02|32.82|154|W|,Jaragua|sao paulo|BR|-46.74|-23.44|211|W|,Jaragua do Sul|santa catarina|BR|-49.07|-26.49|199|W|,Jaranwala|punjab|PK|73.42|31.33|150|W|,Jardim Angela|sao paulo|BR|-46.77|-23.72|311|W|,Jardim Sao Luis|sao paulo|BR|-46.74|-23.68|259|W|,Jardines de la Silla|MX19|MX|-100.19|25.63|53|N|,Jau|sao paulo|BR|-48.56|-22.3|133|W|,Jaunpur|uttar pradesh|IN|82.69|25.75|169|W|jawnpur,Jayapura|papua|ID|140.72|-2.53|410|W|jaya pura;kota jayapura;port numbay;hollandia;noordwijk,Jebel Ali|dubai|AE|55.11|25|210|W|,Jeddah|mecca region|SA|39.19|21.49|4697|W|cidde;djedda;djeddah;dschidda;dzudda;dzidda;jedda;jidda;jida;yida;yidda,Jefferson City|MO|US|-92.17|38.58|42|N|kota jefferson,Jeffersontown|KY|US|-85.56|38.19|26|N|,Jeffersonville|IN|US|-85.74|38.28|46|N|,Jeju City|jeju do|KR|126.52|33.51|488|W|czedzu;jeju;jeju sehri;kota jeju,Jember|east java|ID|113.7|-8.17|298|W|,Jeongeup|jeollabuk do|KR|126.92|35.6|139|W|,Jeonju|jeollabuk do|KR|127.15|35.82|638|W|chonju;condzu,Jepara|central java|ID|110.67|-6.59|1257|W|,Jerez de Garcia Salinas|MX32|MX|-102.99|22.65|43|N|,Jerez de la Frontera|andalusia|ES|-6.14|36.69|212|W|jerez;xeres,Jersey City|NJ|US|-74.08|40.73|264|NW|,Jerusalem|jerusalem|IL|35.22|31.77|971|W|gerusalemme;jerozolima;jerusalen;jeruzalem;al quds;ariel;ierusalim;kudus;yerusalem;zion,Jessore|khulna division|BD|89.21|23.17|243|W|,Jesus Maria|MX01|MX|-102.34|21.96|43|N|,Jhang Sadr|punjab|PK|72.32|31.27|606|W|jhang;jhang sadar,Jhansi|uttar pradesh|IN|78.58|25.46|412|W|,Jhelum|punjab|PK|73.73|32.93|190|W|alessandria bucefala;dzhelam;jhelam,Ji'an|jiangxi|CN|114.98|27.12|538|W|,Ji Parana|rondonia|BR|-61.95|-10.89|140|W|,Jiading|shanghai|CN|121.24|31.39|1886|W|,Jiagedaqi|inner mongolia|CN|124.12|50.42|135|W|jagdaqi,Jiamusi|heilongjiang|CN|130.31|46.8|549|W|tia mu s,Jiangmen|guangdong|CN|113.08|22.58|1795|W|giang mon;kongmoon;tiang men,Jiangyin|jiangsu|CN|120.26|31.91|1779|W|kiang ying,Jianshui|yunnan|CN|101.22|24.28|490|W|,Jiaojiang|zhejiang|CN|121.47|28.7|470|W|,Jiaozhou|shandong|CN|120|36.28|619|W|,Jiaozuo|henan|CN|113.24|35.24|865|W|tieu tac;tiao cuo,Jiashan|zhejiang|CN|120.93|30.85|137|W|,Jiawang|jiangsu|CN|117.44|34.43|133|W|,Jiaxing|zhejiang|CN|120.75|30.75|1180|W|gia hung;tia sing,Jiayuguan|gansu|CN|98.29|39.81|231|W|tia ju kuan,Jiazi|guangdong|CN|116.07|22.88|130|W|,Jieshi|guangdong|CN|115.83|22.81|137|W|,Jieshou|anhui|CN|115.36|33.26|141|W|,Jieyang|guangdong|CN|116.37|23.54|1899|W|tie jang,Jijel|jijel|DZ|5.76|36.82|131|W|dzidzili;yiyel;jijelli,Jijiang|chongqing|CN|106.25|29.29|196|W|,Jijiga|somali|ET|42.8|9.35|483|W|djidjiga;dschidschiga;dzidziga,Jilin|jilin|CN|126.56|43.85|1895|W|jilin city;ciudad de jilin;cat lam;kota jilin;ti lin,Jimeta|adamawa|NG|12.46|9.28|248|W|,Jimma|oromiya|ET|36.83|7.67|250|W|dzimma;gimma;jima,Jinan|shandong|CN|117|36.67|4335|W|ti nan,Jinchang|gansu|CN|102.19|38.5|228|W|kim xuong;tin cchang,Jincheng|shanxi|CN|112.83|35.5|476|W|,Jind|haryana|IN|76.32|29.32|167|W|,Jing'an|shanghai|CN|121.42|31.22|936|W|,Jing'an|guangdong|CN|113.29|22.21|186|W|,Jingdezhen|jiangxi|CN|117.21|29.29|473|W|,Jinghong|yunnan|CN|100.77|22|205|W|,Jingling|hubei|CN|113.1|30.65|224|W|,Jingmen|hubei|CN|112.2|31.03|632|W|kinh mon;ting men,Jingzhou|hubei|CN|112.19|30.35|1052|W|kinh chau;ting cou,Jinhua|zhejiang|CN|119.64|29.11|1463|W|kim hoa;tin chua,Jining|shandong|CN|116.58|35.41|1241|W|ti ning,Jining|inner mongolia|CN|113.11|41.03|258|W|,Jinjiang|fujian|CN|118.57|24.82|1416|W|,Jinshan|shanghai|CN|121.29|30.84|822|W|,Jinshanlu|xinjiang|CN|88.13|47.85|190|W|altay,Jinzhong|shanxi|CN|112.75|37.68|1226|W|,Jinzhou|liaoning|CN|121.14|41.11|604|W|tin cou,Jiroft|kerman|IR|57.74|28.68|130|W|,Jiujiang|jiangxi|CN|116|29.7|1164|W|ciuciang;tiou tiang,Jiuquan|gansu|CN|98.52|39.74|428|W|tiou cchuan,Jiutai|jilin|CN|125.83|44.15|175|W|,Jiutepec|MX17|MX|-99.18|18.88|215|NW|,Jixi|heilongjiang|CN|130.96|45.29|403|W|ke tay;ti si,Jiyuan|henan|CN|112.59|35.09|242|W|,Jizhou|hebei|CN|115.57|37.55|362|W|,Jizzax|jizzakh region|UZ|67.83|40.13|179|W|cizzak;djizak;djizaks;dschizak;dzjizak;dzyzak;jizzak;jizzakh,Joao Pessoa|paraiba|BR|-34.86|-7.12|817|W|,Jodhpur|rajasthan|IN|73.01|26.27|1056|W|dzodhpur;dzodpur,Joetsu|niigata|JP|138.24|37.15|189|W|,Johannesburg|gauteng|ZA|28.04|-26.2|9418|W|johannesbourg;jo anna;joanesburgo;johannesburgo,Johns Creek|GA|US|-84.2|34.03|83|N|,Johnson City|TN|US|-82.35|36.31|66|N|,Johnston|RI|US|-71.51|41.82|29|N|,Johor Bahru|johor|MY|103.76|1.47|858|W|johor baharu,Joint Base Pearl Harbor Hickam|HI|US|-157.95|21.35|42|N|,Joinville|santa catarina|BR|-48.85|-26.3|664|W|,Joliet|IL|US|-88.08|41.53|147|NW|,Joliette|QC|CA|-73.42|46.02|34|N|,Jomvu|mombasa county|KE|39.61|-3.99|163|W|,Jonesboro|AR|US|-90.7|35.84|73|N|,Jonquiere|QC|CA|-71.25|48.42|54|N|,Joplin|MO|US|-94.51|37.08|51|N|,Jos|plateau state|NG|8.89|9.93|1040|W|dzos,Jose C. Paz|buenos aires|AR|-58.77|-34.52|230|W|,Jose Mariano Jimenez|MX06|MX|-104.92|27.13|34|N|,Juazeiro|bahia|BR|-40.5|-9.41|256|W|,Juazeiro do Norte|ceara|BR|-39.32|-7.21|305|W|,Juba|central equatoria|SS|31.58|4.85|450|W|djouba;dschuba,Juiz de Fora|minas gerais|BR|-43.35|-21.76|540|W|,Juja|kiambu county|KE|37.01|-1.1|156|W|,Juliaca|puno|PE|-70.13|-15.5|245|W|,Junagadh|gujarat|IN|70.46|21.52|319|W|,Jundiai|sao paulo|BR|-46.88|-23.19|443|W|,Juneau|AK|US|-134.42|58.3|31|N|,Jupiter|FL|US|-80.09|26.93|62|N|,Jurong Town||SG|103.72|1.33|262|W|,Jurong West||SG|103.72|1.35|253|W|,Jutiapa|jutiapa|GT|-89.89|14.28|145|W|,Juventino Rosas|MX11|MX|-101|20.64|42|N|,Jyvaeskylae|central finland|FI|25.72|62.24|148|W|jyvaskyla,Kabankalan|western visayas|PH|122.81|9.98|210|W|,Kabin Buri|prachin buri|TH|101.72|13.95|140|W|,Kabinda|lomami|CD|24.48|-6.14|219|W|,Kabul|kabul|AF|69.17|34.53|4434|W|cabul;kaboel;kaboul;kabil,Kabwe|central province|ZM|28.45|-14.45|288|W|,Kadapa|andhra pradesh|IN|78.82|14.48|344|W|cuddapah,Kadoma|osaka|JP|135.57|34.74|131|W|,Kaduna|kaduna state|NG|7.44|10.53|1850|W|,Kaech'on|south pyongan|KP|125.89|39.7|319|W|,Kaesong|kaesong|KP|126.55|37.97|338|W|,Kafr ash Shaykh|kafr el sheikh|EG|30.94|31.11|194|W|,Kafrul|dhaka division|BD|90.37|23.79|339|W|,Kagoshima|kagoshima|JP|130.55|31.57|595|W|kagosima,Kahama|shinyanga|TZ|32.6|-3.83|453|W|,Kahramanmaras|kahramanmaras|TR|36.93|37.58|384|W|,Kahului|HI|US|-156.47|20.89|26|N|,Kaifeng|henan|CN|114.31|34.8|1451|W|kai feng;kchaj feng;khai phong,Kaili|guizhou|CN|107.98|26.59|275|W|,Kailua|HI|US|-157.74|21.4|38|N|,Kairouan|kairouan|TN|10.1|35.68|139|W|cairuao;kairuan;kayravan;qairawan;qayrawan,Kaithal|haryana|IN|76.4|29.8|144|W|,Kaiyuan|yunnan|CN|103.3|23.7|198|W|,Kajang|selangor|MY|101.79|2.99|236|W|,Kajansi|central region|UG|32.53|0.22|135|W|,Kakamega|kakamega county|KE|34.75|0.28|1867|W|,Kakamigahara|gifu|JP|136.87|35.42|144|W|,Kakinada|andhra pradesh|IN|82.24|16.96|384|W|,Kakogawacho-honmachi|hyogo|JP|134.83|34.77|271|W|kakogawa,Kalaban Koro|koulikoro|ML|-8.03|12.57|148|W|,Kalaburagi|karnataka|IN|76.84|17.34|543|W|gulbarga;kalaburgi,Kalamazoo|MI|US|-85.59|42.29|76|N|,Kalemie|tanganyika|CD|29.19|-5.95|160|W|,Kalemyo|sagaing region|MM|94.06|23.19|348|W|,Kalihi-Palama|HI|US|-157.88|21.33|43|N|kalihi,Kaliningrad|kaliningrad oblast|RU|20.51|54.71|475|W|krolewiec;caliningrado;kaliningrado;konigsberg;konigsberg in preussen,Kalininskiy|st petersburg|RU|30.39|60|504|W|,Kallakurichi|tamil nadu|IN|78.96|11.73|1682|W|,Kalol|gujarat|IN|72.5|23.25|134|W|,Kaluga|kaluga oblast|RU|36.27|54.53|340|W|kaloega;kalouga,Kalyan|maharashtra|IN|73.14|19.24|1262|W|,Kamakura|kanagawa|JP|139.55|35.31|172|W|,Kamalia|punjab|PK|72.65|30.73|166|W|,Kamalshahr|alborz province|IR|50.87|35.86|141|W|,Kamarhati|west bengal|IN|88.37|22.67|332|W|,Kamensk-Ural'skiy|sverdlovsk oblast|RU|61.93|56.41|182|W|kamensk uralskij;kamensk uralsky;kamensk uralski,Kamina|haut lomami|CD|25|-8.74|200|W|,Kamirenjaku|tokyo|JP|139.55|35.69|195|W|,Kamloops|BC|CA|-120.32|50.67|104|N|,Kamoke|punjab|PK|74.22|31.98|292|W|,Kampala|central region|UG|32.58|0.32|1680|W|campala,Kampong Baharu Cheras Batu Sebelas|selangor|MY|101.77|3.05|232|W|,Kampong Pasir Ris||SG|103.93|1.38|144|W|,Kampung Baru Subang|selangor|MY|101.53|3.15|833|W|,Kampung Kangkar Teberau|johor|MY|103.75|1.53|412|W|,Kampung Larkin Lama|johor|MY|103.74|1.5|500|W|,Kampung Pasir Gudang Baru|johor|MY|103.88|1.47|145|W|,Kampung Sungai Ara|penang|MY|100.27|5.33|140|W|,Kampung Sungai Glugur|penang|MY|100.31|5.37|145|W|,Kamyanske|dnipropetrovsk|UA|34.61|48.52|226|W|dnieprodzierzynsk;dniprodzerzyns k;kam jans ke;kamianske;kamienskie;dniprodzerzhynsk,Kananga|kasai central|CD|22.42|-5.9|1247|W|kanange,Kanasin|MX31|MX|-89.56|20.93|77|N|,Kanata|ON|CA|-75.92|45.3|90|N|,Kanayannur|kerala|IN|76.27|9.97|851|W|,Kanazawa|ishikawa|JP|136.62|36.6|466|W|,Kanchipuram|tamil nadu|IN|79.7|12.84|221|W|kancheepuram;kancipuram;conjevaram,Kanchrapara|west bengal|IN|88.43|22.96|136|W|,Kandahar|kandahar|AF|65.71|31.61|523|W|kandehar,Kaneohe|HI|US|-157.8|21.4|34|N|,Kanggye|chagang|KP|126.59|40.97|209|W|,Kankakee|IL|US|-87.86|41.12|26|N|,Kankan|kankan region|GN|-9.31|10.39|221|W|,Kannapolis|NC|US|-80.62|35.49|46|N|,Kano|kano state|NG|8.52|12|4910|W|,Kanpur|uttar pradesh|IN|80.35|26.47|2823|W|cawnporne,Kansas City|MO|US|-94.58|39.1|475|NW|kota kansas,Kansas City|KS|US|-94.63|39.11|152|NW|,Kaohsiung|takao|TW|120.31|22.62|2737|W|kaohsiung city;cao hung;gaoxiong;takao,Kaolack|kaolack|SN|-16.07|14.15|298|W|,Kapar|selangor|MY|101.38|3.13|269|W|,Karabaglar|izmir province|TR|27.13|38.38|479|W|,Karachi|sindh|PK|67.01|24.86|11624|W|carachi;karaczi;karanchi;karatschi;karaci,Karagandy|karaganda|KZ|73.1|49.8|497|W|karaganda;qaraghandy;qaragandi,Karaikkudi|tamil nadu|IN|78.77|10.07|181|W|karaikudi,Karaj|alborz province|IR|50.99|35.83|1448|W|karadsch;karadz;kerec,Karaman|karaman|TR|33.22|37.18|175|W|,Karamay|xinjiang|CN|84.89|45.58|261|W|kelamayi,Karawalnagar|delhi|IN|77.27|28.73|224|W|,Karawang|west java|ID|107.32|-6.31|307|W|,Karbala|karbala|IQ|44.02|32.62|1218|W|kerbela;kerbala,Kariega|eastern cape|ZA|25.4|-33.76|291|W|uitenhage,Karimnagar|telangana|IN|79.13|18.44|289|W|,Kariya|aichi|JP|136.98|34.98|153|W|,Karlsruhe|baden wurttemberg|DE|8.4|49.01|283|W|,Karnal|haryana|IN|76.98|29.69|302|W|,Karnaphuli|chittagong|BD|92.23|22.69|203|W|,Karol Bagh|delhi|IN|77.19|28.65|505|W|,Karsiyaka|izmir province|TR|27.11|38.46|339|W|cordaleo;cordelio,Karur|tamil nadu|IN|78.08|10.96|234|W|,Karuri|kiambu county|KE|36.76|-1.18|194|W|,Karuri|murang a|KE|37.18|-0.7|194|W|,Kasama|northern province|ZM|31.18|-10.21|179|W|arcidiocesi di kasama,Kasangati|central region|UG|32.6|0.44|207|W|,Kashan|isfahan|IR|51.43|33.98|304|W|,Kashgar|xinjiang|CN|75.99|39.47|506|W|kachgar;kaschgar;kasgar;kaszgar,Kashiwa|chiba|JP|139.98|35.86|433|W|,Kashmar|razavi khorasan|IR|58.47|35.24|131|W|,Kassala|kassala|SD|36.4|15.45|401|W|statul kassala,Kassel|hesse|DE|9.5|51.32|197|W|cassel,Kasugai|aichi|JP|136.97|35.25|308|W|,Kasukabe|saitama|JP|139.75|35.98|229|W|,Kasulu|kigoma|TZ|30.1|-4.58|238|W|,Kasur|punjab|PK|74.45|31.12|510|W|,Katabi|central region|UG|32.47|0.08|154|W|,Kathmandu|bagmati province|NP|85.32|27.7|1442|W|katmandou;catmandu;kathmandou;katmandu,Kati|koulikoro|ML|-8.07|12.74|130|W|,Katihar|bihar|IN|87.57|25.54|240|W|,Katowice|silesia|PL|19.02|50.26|286|W|katovice;kattowitz,Katsina|katsina state|NG|7.6|12.99|670|W|,Katsushika|tokyo|JP|139.85|35.73|453|W|katsushika ku;katsushika city,Katsuta|ibaraki|JP|140.53|36.38|155|W|,Kaunas|kaunas|LT|23.91|54.9|289|W|kowno;kauen,Kawagoe|saitama|JP|139.49|35.91|354|W|,Kawaguchi|saitama|JP|139.71|35.81|607|W|,Kawanishi|hyogo|JP|135.42|34.82|155|W|,Kawasaki|kanagawa|JP|139.72|35.52|1538|W|kawasaki city,Kayes|kayes|ML|-11.44|14.45|194|W|,Kayseri|kayseri|TR|35.49|38.73|1452|W|cesarea in cappadocia,Kaysville|UT|US|-111.94|41.04|30|N|,Kazan|tatarstan republic|RU|49.12|55.79|1243|W|caza;kasan,Kearney|NE|US|-99.08|40.7|33|N|,Kearns|UT|US|-112|40.66|35|N|,Kearny|NJ|US|-74.15|40.77|42|N|,Kediri|east java|ID|112.02|-7.82|301|W|kota kediri,Keelung|taiwan|TW|121.74|25.13|362|W|chilung;co long;kota keelung;ti lung,Keizer|OR|US|-123.03|44.99|37|N|,Kelar|sulaymaniyah|IQ|45.32|34.63|250|W|,Keller|TX|US|-97.25|32.93|45|N|,Kelowna|BC|CA|-119.49|49.88|144|NW|,Kembangan||SG|103.91|1.32|130|W|,Kemerovo|kuzbass|RU|86.1|55.35|558|W|kemerowo,Ken Caryl|CO|US|-105.11|39.58|32|N|,Kendale Lakes|FL|US|-80.41|25.71|56|N|,Kendall|FL|US|-80.32|25.68|80|N|,Kendall West|FL|US|-80.44|25.71|36|N|,Kendari|southeast sulawesi|ID|122.52|-3.98|351|W|kota kendari,Kenema|eastern province|SL|-11.19|7.88|255|W|,Keng Tung|shan state|MM|99.93|21.63|171|W|,Kenitra|rabat sale kenitra|MA|-6.58|34.26|470|W|al kunajtira;kenitre,Kennedy|bogota d c|CO|-74.15|4.62|979|W|,Kenner|LA|US|-90.24|29.99|67|N|,Kennesaw|GA|US|-84.62|34.02|33|N|,Kennewick|WA|US|-119.14|46.21|78|N|,Kenosha|WI|US|-87.82|42.58|99|N|,Kensington|NY|US|-73.97|40.65|39|N|,Kensington-Cedar Cottage|BC|CA|-123.07|49.25|49|N|,Kent|WA|US|-122.23|47.38|126|N|,Kent|OH|US|-81.36|41.15|29|N|,Kentron|yerevan|AM|44.51|40.18|133|W|kentron district,Kentwood|MI|US|-85.64|42.87|51|N|,Kerch|crimea|UA|36.48|45.36|148|W|kerci;kercz;kertch;kertj;kertsch;kertsj;kerts;kerc,Kerman|kerman|IR|57.08|30.28|577|W|,Kermanshah|kermanshah province|IR|47.06|34.31|621|W|kermanschah;kirmansah;province de kermanshah;provincia de kermanshah,Kettering|OH|US|-84.17|39.69|55|N|,Kew Gardens Hills|NY|US|-73.82|40.73|37|N|,Key West|FL|US|-81.78|24.56|25|N|cayo hueso,Khabarovsk|khabarovsk|RU|135.1|48.46|618|W|chabarovsk;chabarowsk;habarovsk;jabarovsk,Khairpur Mir's|sindh|PK|68.76|27.53|191|W|khairpur,Khamis Mushait|asir region|SA|42.73|18.3|387|W|chamis muschait;chamis muszajt;hamis musayt;khamis mushayt,Khammam|telangana|IN|80.14|17.25|196|W|,Khan Yunis|gaza strip|PS|34.31|31.34|173|W|jan yunis;khan younis,Khanaqin|diyala|IQ|45.39|34.35|175|W|,Khandwa|madhya pradesh|IN|76.35|21.82|200|W|,Khanpur|punjab|PK|70.66|28.65|142|W|,Kharagpur|west bengal|IN|87.33|22.34|219|W|,Kharkiv|kharkiv|UA|36.25|49.98|1421|W|charkiv;carcovia;charkiw;charkov;charkow;harkov;harkova;jarkov;kharkov,Khartoum|khartoum|SD|32.53|15.55|1974|W|cartum;chartum;hartum;jartum;khartoem;khartum,Khartoum North|khartoum|SD|32.53|15.65|1012|W|bahri;jartum norte;khartoum nord;khartum nord,Khasnahzan|erbil|IQ|44.14|36.2|146|W|,Khemisset|rabat sale kenitra|MA|-6.07|33.82|143|W|,Khimki|moscow oblast|RU|37.43|55.9|239|W|chimki;himki;jimki,Khirdalan|abseron|AZ|49.76|40.45|196|W|hirdalan;xirdalan,Khlong Sam Wa|bangkok|TH|100.74|13.87|169|W|,Khmelnytskyi|khmelnytskyi|UA|26.98|49.42|274|W|chmel nyc kyj;chmelnyzkyj;chmielnicki;khmel nyts kyy;proscurovia;ploskurow,Khobar|eastern province|SA|50.21|26.28|165|W|al chubar;al khobar;el huber,Khomeyni Shahr|isfahan|IR|51.54|32.69|277|W|three castles,Khoroshevo-Mnevniki|moscow|RU|37.47|55.78|159|W|,Khorramabad|lorestan province|IR|48.36|33.49|329|W|,Khorramshahr|khuzestan|IR|48.18|30.44|330|W|chorramschahr;chorramszahr;chorramsahr;hurremsehr;jorramchar;koramsjar,Khouribga|beni mellal khenifra|MA|-6.91|32.88|214|W|,Khujand|sughd|TJ|69.62|40.28|191|W|choedzjand;chudschand;chudzjand;hucand;hudzand;khodjent,Khulna|khulna division|BD|89.56|22.81|1500|W|,Khuraybat as Suq|amman|JO|35.92|31.88|186|W|,Khuy|west azerbaijan|IR|44.95|38.55|198|W|,Khuzdar|balochistan|PK|66.61|27.81|218|W|,Kiambu|kiambu county|KE|36.84|-1.17|147|W|,Kibaha|pwani|TZ|38.92|-6.77|265|W|,Kiel|schleswig holstein|DE|10.13|54.32|252|W|kilonia,Kielce|swietokrzyskie|PL|20.63|50.87|192|W|,Kigali|kigali|RW|30.06|-1.95|1132|W|,Kigoma|kigoma|TZ|29.63|-4.88|232|W|,Kikolo|luanda|AO|13.33|-8.78|728|W|quicolo,Kikuyu|kiambu county|KE|36.66|-1.25|323|W|,Kikwit|kwilu|CD|18.82|-5.04|509|W|,Kilamba|luanda|AO|13.28|-8.85|237|W|kilamba kiaxi,Killarney|BC|CA|-123.04|49.23|29|N|,Killeen|TX|US|-97.73|31.12|140|NW|,Kima Kieza|luanda|AO|13.3|-8.83|428|W|quima quieza,Kimberley|northern cape|ZA|24.76|-28.73|142|W|,Kimhae|gyeongsangnam do|KR|128.88|35.23|531|W|gimhae,Kindia|kindia|GN|-12.87|10.06|161|W|,Kindu|maniema|CD|25.92|-2.94|234|W|,Kingman|AZ|US|-114.05|35.19|28|N|,Kings Bridge|NY|US|-73.91|40.88|75|N|,Kingsport|TN|US|-82.56|36.55|53|N|,Kingston|kingston|JM|-76.79|18|937|W|,Kingston|ON|CA|-76.48|44.23|132|NW|cataraqui,Kingston upon Hull|england|GB|-0.34|53.74|314|W|hull,Kingsville|TX|US|-97.86|27.52|26|N|,Kinshasa|kinshasa|CD|15.31|-4.33|16000|W|kinsasa;kinszasa;quinxassa,Kipushi|haut katanga|CD|27.25|-11.76|169|W|,Kira|central region|UG|32.63|0.4|462|W|,Kirari Sulemannagar|delhi|IN|77.06|28.7|283|W|,Kirdasah|giza|EG|31.11|30.03|137|W|kerdasa,Kirikkale|kirikkale|TR|33.51|39.85|186|W|,Kirkland|WA|US|-122.21|47.68|87|N|,Kirkuk|kirkuk|IQ|44.39|35.47|1031|W|kerkuk;kirkoek;kirkouk,Kirkwood|MO|US|-90.41|38.58|27|N|,Kirov|kirov oblast|RU|49.66|58.6|507|W|kirow,Kirsehir|kirsehir|TR|34.16|39.15|150|W|,Kiryas Joel|NY|US|-74.17|41.34|32|N|,Kisangani|tshopo|CD|25.19|0.52|1181|W|stanleystad;stanleyville,Kisaran|north sumatra|ID|99.62|2.98|141|W|,Kisarazu|chiba|JP|139.93|35.38|136|W|,Kishangarh|rajasthan|IN|74.85|26.59|154|W|,Kishiwada|osaka|JP|135.37|34.47|205|W|,Kisi|oyo state|NG|3.85|9.08|155|W|,Kislovodsk|stavropol kray|RU|42.72|43.91|132|W|kislowodsk;kislowodzk,Kismayo|lower juba|SO|42.55|-0.36|234|W|chisimayu;kismaayo,Kissimmee|FL|US|-81.42|28.3|69|N|,Kisumu|kisumu county|KE|34.76|-0.1|397|W|,Kita|tokyo|JP|139.73|35.75|332|W|kita ku,Kitakyushu|fukuoka|JP|130.85|33.85|940|W|kitakjusu,Kitale|trans nzoia|KE|35.01|1.02|162|W|,Kitchener|ON|CA|-80.51|43.43|256|NW|,Kitengela|kajiado county|KE|36.96|-1.48|154|W|,Kitsilano|BC|CA|-123.17|49.27|43|N|,Kitwe|copperbelt|ZM|28.21|-12.8|665|W|,Kiziltepe|mardin|TR|40.58|37.19|150|W|,Klaipeda|klaipeda county|LT|21.14|55.71|172|W|klajpeda;memel,Klang|selangor|MY|101.44|3.04|240|W|kelang,Klerksdorp|north west|ZA|26.67|-26.85|227|W|,Kluang|johor|MY|103.32|2.03|323|W|,Klungkung|bali|ID|115.4|-8.53|223|W|,Knoxville|TN|US|-83.92|35.96|190|NW|,Kobe|hyogo|JP|135.18|34.69|1525|W|,Kochi|kerala|IN|76.26|9.94|633|W|cochim;cochin;ernakulam;koczin,Kochi|kochi|JP|133.53|33.55|332|W|kochi shi;kochishi,Kodaira|tokyo|JP|139.49|35.73|198|W|,Koeln|north rhine westphalia|DE|6.95|50.93|1024|W|koln;cologne;colonia;keulen;kolonia;kolin nad rynem,Koforidua|eastern|GH|-0.26|6.09|151|W|,Kofu|yamanashi|JP|138.57|35.67|189|W|,Koga|ibaraki|JP|139.72|36.18|139|W|,Kohat|khyber pakhtunkhwa|PK|71.45|33.58|151|W|,Kokomo|IN|US|-86.13|40.49|57|N|,Kokshetau|aqmola|KZ|69.39|53.28|150|W|kokchetaou;kokczetaw;koksetau;kokcetau;kokschetau;koksjetau;koksetaw,Kolar|karnataka|IN|78.13|13.14|138|W|,Kolhapur|maharashtra|IN|74.23|16.7|549|W|,Kolkata|west bengal|IN|88.36|22.56|4631|W|calcutta;calcuta;kalkata;kalkuta;kalkutta,Kollam|kerala|IN|76.58|8.88|367|W|quilon;coulao,Kolomna|moscow oblast|RU|38.78|55.07|147|W|,Kolpino|st petersburg|RU|30.59|59.75|138|W|kolppina,Kolwezi|lualaba|CD|25.47|-10.71|790|W|,Kom Ombo|aswan|EG|32.95|24.48|409|W|,Komaki|aichi|JP|136.92|35.28|148|W|,Kombolcha|amhara|ET|39.74|11.08|132|W|kembolcza,Komsomolsk-on-Amur|khabarovsk|RU|137.01|50.55|275|W|komsomolsk am amur;komsomolsk del amur;komsomolsk na amure;komsomolsk sur l amour,Kon Tum|quang ngai|VN|108.01|14.35|205|W|,Konak|izmir province|TR|27.1|38.4|332|W|,Konibodom|sughd|TJ|70.43|40.29|211|W|,Konya|konya|TR|32.48|37.87|1433|W|iconio,Korba|chhattisgarh|IN|82.7|22.35|419|W|,Koreatown|CA|US|-118.3|34.06|124|N|,Korhogo|savanes district|CI|-5.63|9.46|440|W|,Koriyama|fukushima|JP|140.38|37.4|327|W|,Korla|xinjiang|CN|86.15|41.76|549|W|,Korolev|moscow oblast|RU|37.83|55.91|139|W|korolyov;koroliov;koroljov;korolow,Koronadal|soccsksargen|PH|124.85|6.5|201|W|koronadal city;kota koronadal,Koshigaya|saitama|JP|139.79|35.89|345|W|,Kosice|kosice region|SK|21.26|48.71|225|W|koszyce;kaschau,Kostanay|kostanay|KZ|63.62|53.21|210|W|kostanai;kostanaj;kustanaj;qostanai;qostanaj;qostanay;kustanay;nikolayevsk,Kosti|white nile|SD|32.66|13.16|345|W|kusti,Kostroma|kostroma oblast|RU|40.93|57.77|277|W|,Kota|rajasthan|IN|75.84|25.18|1001|W|,Kota Bharu|kelantan|MY|102.24|6.12|568|W|kota bahru,Kota Damansara|selangor|MY|101.58|3.15|500|W|,Kota Kinabalu|sabah|MY|116.07|5.97|500|W|,Kota Kuala Muda|kedah|MY|100.37|5.59|544|W|,Koto|kumamoto|JP|130.75|32.78|543|W|koto city,Koudougou|centre ouest|BF|-2.37|12.25|160|W|,Koumassi|abidjan autonomous district|CI|-3.97|5.3|412|W|,Kousseri|far north|CM|15.03|12.08|139|W|,Koutiala|sikasso|ML|-5.47|12.39|218|W|,Kovpakivskyi|sumy|UA|34.79|50.93|142|W|kovpakivskyi rayon,Kovrov|vladimir oblast|RU|41.32|56.36|154|W|kowrow,Kowloon||HK|114.18|22.32|2232|W|koulun,Kowloon City|kowloon city|HK|114.19|22.33|418|W|,Kowloon City Centre|kowloon city|HK|114.19|22.33|194|W|,Kozhikode|kerala|IN|75.78|11.25|550|W|kozikkot;calecute;calicut,Kragujevac|central serbia|RS|20.92|44.02|147|W|,Krakow|lesser poland|PL|19.94|50.06|816|W|cracovia;cracovie;krakau;krakov;krakova;cracow,Kramatorsk|donetsk|UA|37.57|48.73|147|W|kramators k,Krasnodar|krasnodar krai|RU|38.98|45.05|899|W|,Krasnogvargeisky|st petersburg|RU|30.48|59.97|337|W|,Krasnoyarsk|krasnoyarsk krai|RU|92.93|56.04|1090|W|krasnojarsk;krasnoiarsk,Krefeld|north rhine westphalia|DE|6.55|51.34|237|W|,Kremenchuk|poltava|UA|33.4|49.06|224|W|kremencuk;kremenciuk;krementchouk;krementjuk;krementschuk;krementsjoek;krementsjuk;krementsuk;kremencug;krzemienczuk;kremenchug;kreminchuk,Kreuzberg|state of berlin|DE|13.4|52.5|153|W|berlin kreuzberg,Krishnanagar|west bengal|IN|88.49|23.41|145|W|,Kropyvnytskyi|kirovohrad|UA|32.27|48.51|219|W|kropywnycki;kropywnyzkyj;elisavetgrad;elizabethgrad;jelisawetgrad;jelizawietgrad;kirovo;kirovograd;kirovogrado;kirovohrad;kirowograd;kirowohrad;yelisavetgrad;zinovievsk;zinovyevsk;zinowjewsk,Krugersdorp|gauteng|ZA|27.78|-26.09|378|W|,Kryvyy Rih|dnipropetrovsk|UA|33.39|47.91|603|W|krivoj rog;kryvy rig;kryvy rih;kryvyi rih;kryvyj rih;krywyj rih;krzywy rog;krivii rih,Ksar El Kebir|tanger tetouan al hoceima|MA|-5.9|35|138|W|,Kuala Kubu Baharu|selangor|MY|101.66|3.56|194|W|kuala kubu;kuala kubu baru;kuala kubu bharu,Kuala Lumpur|kuala lumpur|MY|101.69|3.14|1453|W|,Kuala Terengganu|terengganu|MY|103.14|5.33|426|W|,Kuantan|pahang|MY|103.33|3.81|548|W|,Kuching|sarawak|MY|110.33|1.55|402|W|,Kuecuekcekmece|istanbul|TR|28.77|40.99|792|W|kucukcekmece,Kuetahya|kutahya|TR|29.98|39.42|185|W|kutahya,Kukatpally|telangana|IN|78.41|17.48|341|W|kukatpalle;kukatpalli,Kukichuo|saitama|JP|139.67|36.07|150|W|,Kulim|kedah|MY|100.56|5.36|170|W|,Kulob|khatlon province|TJ|69.78|37.91|214|W|,Kulti|west bengal|IN|86.84|23.73|305|W|,Kumagaya|saitama|JP|139.39|36.13|195|W|,Kumamoto|kumamoto|JP|130.69|32.81|738|W|kumamoto shi,Kumarapalayam|tamil nadu|IN|77.71|11.44|195|W|komarapalayam,Kumasi|ashanti|GH|-1.62|6.69|2544|W|,Kumba|south west|CM|9.45|4.64|225|W|,Kumbakonam|tamil nadu|IN|79.39|10.96|167|W|,Kunduz|kunduz|AF|68.86|36.73|161|W|konduz;kondoz;kundus;qunduz,Kunming|yunnan|CN|102.72|25.04|3855|W|con minh;kchun ming,Kunri|sindh|PK|69.57|25.18|237|W|,Kunshan|jiangsu|CN|120.95|31.38|2092|W|con son;kchun san,Kuntsevo|moscow|RU|37.4|55.74|147|W|kuncevo;kuncewo;kuntsevo district,Kupang|east nusa tenggara|ID|123.61|-10.17|474|W|kota kupang,Kurashiki|okayama|JP|133.77|34.58|483|W|,Kure|hiroshima|JP|132.57|34.23|214|W|,Kurgan|kurgan oblast|RU|65.34|55.45|309|W|curgan;koergan;kourgan,Kurnool|andhra pradesh|IN|78.04|15.83|460|W|karnulu,Kursk|kursk oblast|RU|36.18|51.73|448|W|koersk;koursk,Kurume|fukuoka|JP|130.52|33.32|303|W|,Kusatsu|shiga|JP|135.97|35.02|143|W|,Kushinagar|uttar pradesh|IN|83.89|26.74|274|W|,Kushiro|hokkaido|JP|144.37|42.98|167|W|kushiro shi;kusiro,Kushtia|khulna division|BD|89.12|23.9|135|W|,Kutaisi|imereti|GE|42.69|42.27|135|W|koutaissi;kutaissi;koetaisi;kutayis,Kuwana|mie|JP|136.67|35.05|140|W|,Kuz'minki|moscow|RU|37.8|55.7|143|W|,KwaDukuza|kwazulu natal|ZA|31.29|-29.33|161|W|,Kwai Chung|kwai tsing district|HK|114.14|22.37|331|W|,Ky Anh|ha tinh province|VN|106.3|18.06|150|W|,Kyaukpyu|rakhine|MM|93.55|19.43|180|W|,Kyauktan|yangon|MM|96.33|16.64|132|W|,Kyengera|central region|UG|32.5|0.3|285|W|,Kyiv|kyiv city|UA|30.52|50.45|2952|W|kiev;kyjiw;ki ep;kiew;kijow;kiova;kyiw;kyjev;chiovia,Kyivskyi|donetsk|UA|37.78|48.05|139|W|kyivskyi rayon,Kyle|TX|US|-97.88|29.99|35|N|,Kyoto|kyoto|JP|135.75|35.02|1463|W|kioto;kjoto;kyoto shi;quioto,Kyzylorda|kyzylorda|KZ|65.51|44.85|354|W|kizilorda;qysylorda;qyzylorda;qizilorda;ak mechet;fort perovsky;kzyl orda;perovsk,L'Amoreaux|ON|CA|-79.31|43.8|43|N|,L'Hospitalet de Llobregat|catalonia|ES|2.1|41.36|257|W|hospitalet de llobregat,La Barca|MX14|MX|-102.54|20.29|35|N|,La Ceiba|atlantida department|HN|-86.78|15.76|222|W|,La Cite-Limoilou|QC|CA|-71.23|46.83|108|N|,La Crosse|WI|US|-91.24|43.8|52|N|,La Gi|lam dong|VN|107.77|10.66|160|W|,La Habra|CA|US|-117.95|33.93|62|N|,La Haute-Saint-Charles|QC|CA|-71.37|46.89|88|N|,La Jolla|CA|US|-117.27|32.85|42|N|,La Joya|MX02|MX|-117|32.44|26|N|,La Laguna|canary islands|ES|-16.32|28.49|150|W|,La Mesa|CA|US|-117.02|32.77|60|N|,La Mirada|CA|US|-118.01|33.92|49|N|,La Paz|la paz department|BO|-68.15|-16.5|2004|W|ciudad la paz,La Paz|MX03|MX|-110.31|24.14|250|NW|,La Piedad de Cabadas|MX16|MX|-102.02|20.34|83|N|la piedad;municipio la piedad,La Pintana|santiago metropolitan|CL|-70.63|-33.58|201|W|,La Plata|buenos aires|AR|-57.95|-34.92|195|W|,La Porte|TX|US|-95.02|29.67|35|N|,La Presa|CA|US|-117|32.71|34|N|,La Puente|CA|US|-117.95|34.02|40|N|,La Quinta|CA|US|-116.31|33.66|40|N|,La Rioja|la rioja|AR|-66.86|-29.41|178|W|ciudad de la rioja;rioja,La Romana|la romana|DO|-68.97|18.42|208|W|,La Serena|coquimbo region|CL|-71.25|-29.91|154|W|,La Trinidad|cordillera|PH|120.59|16.45|142|W|,La Vergne|TN|US|-86.58|36.02|34|N|,La Verne|CA|US|-117.77|34.1|32|N|,Laayoune||EH|-13.19|27.14|196|W|el aaiun;aaiun;al ajoen;al ayun;al ujun;el ayun,Labuan Bajo|east nusa tenggara|ID|119.89|-8.5|188|W|labuanbajo,Lacey|WA|US|-122.82|47.03|46|N|,Ladysmith|kwazulu natal|ZA|29.78|-28.56|143|W|,Lafayette|LA|US|-92.02|30.22|121|N|,Lafayette|IN|US|-86.88|40.42|71|N|,Lafayette|CO|US|-105.09|39.99|27|N|,Lafayette|CA|US|-122.12|37.89|25|N|,Lages|santa catarina|BR|-50.33|-27.82|172|W|,Laghouat|laghouat|DZ|2.87|33.8|134|W|al aghwat;lagouat,Lagos|lagos|NG|3.39|6.45|15388|W|,Lagos de Moreno|MX14|MX|-101.93|21.36|98|N|,LaGrange|GA|US|-85.03|33.04|29|N|la grange,Laguna|CA|US|-121.42|38.42|46|N|,Laguna Hills|CA|US|-117.71|33.61|31|N|,Laguna Niguel|CA|US|-117.71|33.52|65|N|,Lahore|punjab|PK|74.35|31.56|13004|W|lahaur;lahor,Laibin|guangxi|CN|109.22|23.75|910|W|lai tan;laj pin,Laiwu|shandong|CN|117.66|36.19|989|W|lai vu;laj wu,Laixi|shandong|CN|120.53|36.86|341|W|,Laiyang|shandong|CN|120.71|36.98|169|W|,Laizhou|shandong|CN|119.94|37.18|188|W|laichow,Lajeado|sao paulo|BR|-46.41|-23.53|164|W|,Lake Charles|LA|US|-93.2|30.21|76|N|,Lake Elsinore|CA|US|-117.33|33.67|61|N|,Lake Forest|CA|US|-117.69|33.65|82|N|,Lake Havasu City|AZ|US|-114.32|34.48|53|N|,Lake in the Hills|IL|US|-88.33|42.18|29|N|,Lake Jackson|TX|US|-95.43|29.03|27|N|,Lake Magdalene|FL|US|-82.47|28.07|28|N|,Lake Oswego|OR|US|-122.67|45.42|38|N|,Lake Ridge|VA|US|-77.3|38.69|41|N|,Lake Stevens|WA|US|-122.06|48.02|30|N|,Lake Worth Beach|FL|US|-80.07|26.62|37|N|lake worth,Lakeland|FL|US|-81.95|28.04|104|N|,Lakeside|FL|US|-81.77|30.13|30|N|,Lakeville|MN|US|-93.24|44.65|60|N|,Lakewood|CO|US|-105.08|39.7|152|NW|,Lakewood|CA|US|-118.13|33.85|81|N|,Lakewood|WA|US|-122.52|47.17|59|N|,Lakewood|NJ|US|-74.22|40.1|53|N|lakewood township;municipio de lakewood,Lakewood|SK|CA|-106.59|52.11|51|N|,Lakewood|OH|US|-81.8|41.48|50|N|,Lakhimpur|uttar pradesh|IN|80.78|27.95|140|W|,Lal Bahadur Nagar|telangana|IN|78.56|17.35|261|W|,Lampang|lampang|TH|99.49|18.29|156|W|,Lancaster|CA|US|-118.14|34.7|161|NW|,Lancaster|PA|US|-76.31|40.04|59|N|,Lancaster|OH|US|-82.6|39.71|39|N|,Lancaster|TX|US|-96.76|32.59|38|N|,Land O' Lakes|FL|US|-82.46|28.22|31|N|,Lander|miranda|VE|-66.7|10.18|176|W|,Lang'ata|nairobi county|KE|36.73|-1.37|172|W|,Lang Son|lang son province|VN|106.76|21.85|200|W|,Langfang|hebei|CN|116.71|39.52|868|W|,Langford|BC|CA|-123.5|48.45|46|N|,Langley|BC|CA|-122.66|49.1|132|NW|ciudad de langley,Langsa|aceh|ID|97.97|4.47|184|W|,Lansing|MI|US|-84.56|42.73|112|N|,Lansing|IL|US|-87.54|41.56|28|N|,Lanus|buenos aires|AR|-58.39|-34.71|212|W|,Lanzhou|gansu|CN|103.84|36.06|3000|W|lan chau;lan cou,Lao Cai|lao cai|VN|103.97|22.49|130|W|laos,Laohekou|hubei|CN|111.67|32.39|253|W|,Laplace|LA|US|-90.48|30.07|29|N|,Lapu-Lapu City|central visayas|PH|123.95|10.31|497|W|lapu lapu,Larache|tanger tetouan al hoceima|MA|-6.16|35.19|136|W|al araisz;laraxe,Laramie|WY|US|-105.59|41.31|32|N|,Laredo|TX|US|-99.51|27.51|256|NW|,Largo|FL|US|-82.79|27.91|81|N|,Larisa|thessaly|GR|22.42|39.63|146|W|larissa;yenisehir,Larkana|sindh|PK|68.21|27.56|364|W|,Las Choapas|MX30|MX|-94.1|17.91|42|N|,Las Cruces|NM|US|-106.78|32.31|101|N|,Las Guacamayas|MX16|MX|-102.21|18.02|37|N|,Las Palmas de Gran Canaria|canary islands|ES|-15.42|28.1|383|W|las palmas;las palmas de g c;palmas de gran canaria,Las Pinas|national capital region|PH|120.98|14.45|615|W|,Las Pintitas|MX14|MX|-103.3|20.56|26|N|,Las Tunas|las tunas province|CU|-76.95|20.96|203|W|victoria de las tunas,Las Vegas|NV|US|-115.14|36.17|641|NW|,LaSalle|ON|CA|-83.06|42.24|32|N|,Lashio|shan state|MM|97.75|22.94|131|W|lasho;lasio,Lat Krabang|bangkok|TH|100.78|13.72|163|W|,Latacunga|cotopaxi|EC|-78.62|-0.93|205|W|,Latakia|latakia|SY|35.79|35.53|709|W|laodicea;lataquia;lattakia;lattaquie;lazkiye;lazikija,Latina|madrid|ES|-3.75|40.39|256|W|,Latkrabang|bangkok|TH|100.75|13.73|173|W|,Latur|maharashtra|IN|76.57|18.4|382|W|,Lauderdale Lakes|FL|US|-80.21|26.17|34|N|,Lauderhill|FL|US|-80.21|26.14|71|N|,Laurel|MD|US|-76.85|39.1|26|N|,Lauro de Freitas|bahia|BR|-38.33|-12.89|203|W|,Lausanne|vaud|CH|6.63|46.52|139|W|lausana;losanna;lozan;lozanna,Laval|QC|CA|-73.69|45.57|438|NW|,Laval-des-Rapides|QC|CA|-73.7|45.56|36|N|,Lawndale|CA|US|-118.35|33.89|33|N|,Lawrence|KS|US|-95.24|38.97|93|N|,Lawrence|MA|US|-71.16|42.71|80|N|,Lawrence|IN|US|-86.03|39.84|47|N|,Lawrenceville|GA|US|-83.99|33.96|30|N|,Lawson|SK|CA|-106.64|52.16|34|N|,Lawton|OK|US|-98.39|34.61|96|N|,Layton|UT|US|-111.97|41.06|74|N|,Layyah|punjab|PK|70.94|30.96|151|W|,Le Havre|normandy|FR|0.11|49.49|185|W|el havre;hawr;le port de grace,Le Mans|pays de la loire|FR|0.2|48|144|W|,Le Plateau-Mont-Royal|QC|CA|-73.58|45.53|105|N|,Le Sud-Ouest|QC|CA|-73.59|45.47|86|N|,Le Vieux-Longueuil|QC|CA|-73.51|45.54|135|NW|,League City|TX|US|-95.09|29.51|98|N|,Leamington|ON|CA|-82.6|42.05|35|N|,Leander|TX|US|-97.85|30.58|59|N|,Leavenworth|KS|US|-94.92|39.31|35|N|,Leawood|KS|US|-94.62|38.97|34|N|,Lebanon|TN|US|-86.29|36.21|30|N|,Lebanon|PA|US|-76.41|40.34|25|N|,Lee's Summit|MO|US|-94.38|38.91|95|N|,Leeds|england|GB|-1.55|53.8|536|W|,Leesburg|VA|US|-77.56|39.12|51|N|,Leganes|madrid|ES|-3.76|40.33|188|W|,Legaspi|bicol region|PH|123.74|13.14|179|W|legazpi;legaspi city;legazpi city,Lehi|UT|US|-111.85|40.39|58|N|,Lehigh Acres|FL|US|-81.62|26.63|86|N|,Leicester|england|GB|-1.13|52.64|368|W|,Leipzig|saxony|DE|12.37|51.34|504|W|lipsca;lipsia;lipsk;lipsko,Leisure City|FL|US|-80.43|25.5|26|N|,Lekki|lagos|NG|3.48|6.45|401|W|,Lembang|west java|ID|107.62|-6.81|183|W|,Lemon Grove|CA|US|-117.03|32.74|26|N|,Lemoore|CA|US|-119.78|36.3|25|N|,Lenexa|KS|US|-94.73|38.95|52|N|,Leogane|ouest|HT|-72.63|18.51|134|W|,Leominster|MA|US|-71.76|42.53|41|N|,Leon|leon department|NI|-86.88|12.44|144|W|,Leon de los Aldama|MX11|MX|-101.68|21.12|1579|NW|leon;leon guanajuato;leon de los aldamas,Lerdo|MX10|MX|-103.52|25.54|79|N|,Les Rivieres|QC|CA|-71.27|46.82|77|N|,Leshan|sichuan|CN|103.76|29.56|662|W|le san,Lethbridge|AB|CA|-112.82|49.7|103|N|,Leverkusen|north rhine westphalia|DE|6.98|51.03|162|W|,Levis|QC|CA|-71.18|46.8|143|NW|,Levittown|PA|US|-74.83|40.16|52|N|,Levittown|NY|US|-73.51|40.73|51|N|lewittown,Lewiston|ME|US|-70.21|44.1|36|N|,Lewiston|ID|US|-117.02|46.42|32|N|,Lewiston Orchards|ID|US|-116.98|46.38|31|N|,Lewisville|TX|US|-96.99|33.05|104|N|,Lexington|KY|US|-84.48|37.99|320|NW|,Lexington|MA|US|-71.22|42.45|31|N|lexington village;cambridge farms;lexington centre,Lexington-Fayette|KY|US|-84.46|38.05|314|NW|,Lhoka|tibet|CN|91.77|29.24|353|W|,Lhokseumawe|aceh|ID|97.15|5.18|200|W|kota lhokseumawe,Lianghu|zhejiang|CN|120.9|29.99|155|W|,Liangping|chongqing|CN|107.77|30.66|137|W|,Lianshan|liaoning|CN|120.85|40.76|313|W|,Lianyungang|jiangsu|CN|119.22|34.6|2001|W|,Liaocheng|shandong|CN|116|36.45|1229|W|liao ccheng;lieu thanh,Liaoyang|liaoning|CN|123.17|41.27|687|W|liao jang;lieu duong,Libertad|caraga|PH|125.5|8.94|250|W|,Liberty|MO|US|-94.42|39.25|30|N|,Libreville|estuaire|GA|9.45|0.39|846|W|,Licheng|guangdong|CN|113.82|23.3|172|W|,Lichinga|niassa province|MZ|35.24|-13.31|281|W|,Liege|wallonia|BE|5.57|50.63|195|W|luttich;liegi;lieja;luik;lutych,Lijiang|yunnan|CN|100.22|26.87|211|W|cidade antiga de lijiang;li tiang,Likasi|haut katanga|CD|26.74|-10.98|635|W|jadotstad;jadotsville,Lille|hauts de france|FR|3.06|50.63|238|W|rijsel;lila;lilla,Lilongwe|central region|MW|33.79|-13.97|1115|W|lilongue,Lima|lima province|PE|-77.03|-12.04|7737|W|,Lima|OH|US|-84.11|40.74|37|N|,Limassol|limassol|CY|33.04|34.68|154|W|lemesos;limasol;limisso,Limbe|south west|CM|9.21|4.02|131|W|,Limeira|sao paulo|BR|-47.4|-22.56|291|W|,Limoges|new aquitaine|FR|1.25|45.83|141|W|,Limuru|kiambu county|KE|36.64|-1.11|159|W|,Linares|MX19|MX|-99.57|24.86|70|N|,Lincang|yunnan|CN|100.09|23.88|323|W|,Lincoln|NE|US|-96.67|40.8|294|NW|,Lincoln|CA|US|-121.29|38.89|49|N|,Lincoln Park|IL|US|-87.65|41.92|66|N|,Lincoln Park|MI|US|-83.18|42.25|37|N|,Lincoln Square|IL|US|-87.69|41.98|40|N|,Linden|NJ|US|-74.24|40.62|42|N|,Lindenhurst|NY|US|-73.37|40.69|27|N|,Linfen|shanxi|CN|111.52|36.09|959|W|lin fen,Linhares|espirito santo|BR|-40.07|-19.39|183|W|,Linkoeping|ostergotland|SE|15.62|58.41|166|W|linkoping,Linqu|shandong|CN|118.54|36.52|299|W|,Linton Hall|VA|US|-77.57|38.76|35|N|,Linxia Chengguanzhen|gansu|CN|103.21|35.6|274|W|linxia,Linyi|shandong|CN|118.34|35.06|2743|W|lam nghi,Linz|upper austria|AT|14.29|48.31|204|W|linec,Lipa City|calabarzon|PH|121.16|13.94|212|W|,Lipetsk|lipetsk oblast|RU|39.55|52.59|509|W|lipezk;lipeck;lipetk;lipieck,Lisbon|lisbon|PT|-9.15|38.73|517|W|lisboa;lisabon;lisabona;lisbona;lisbonne;lissabon;lizbon;lizbona,Lishui|zhejiang|CN|119.91|28.46|451|W|li suej,Little Elm|TX|US|-96.94|33.16|38|N|,Little Havana|FL|US|-80.23|25.77|53|N|la pequena habana,Little Rock|AR|US|-92.29|34.75|202|NW|,Littleton|CO|US|-105.02|39.61|46|N|,Liupanshui|guizhou|CN|104.83|26.59|1320|W|liou pchan suej,Liuzhi|guizhou|CN|105.43|26.23|138|W|,Liuzhou|guangxi|CN|109.41|24.32|1436|W|liou cou;liuchow,Livermore|CA|US|-121.77|37.68|88|N|,Liverpool|england|GB|-2.98|53.41|496|W|,Livingston|NJ|US|-74.31|40.8|27|N|,Livingstone|southern province|ZM|25.85|-17.84|178|W|,Livonia|MI|US|-83.35|42.37|94|N|,Livorno|tuscany|IT|10.33|43.54|157|W|livourne,Lizhi|chongqing|CN|107.4|29.7|156|W|,Ljubljana|ljubljana|SI|14.51|46.05|272|W|liubliana;lubiana;lublana;lublan;laibach,Lleida|catalonia|ES|0.62|41.62|140|W|lerida,Lloydminster|AB|CA|-110.02|53.27|31|N|,Loa Janan|east kalimantan|ID|117.1|-0.58|212|W|,Lobito|benguela|AO|13.54|-12.36|393|W|,Lochearn|MD|US|-76.72|39.34|25|N|,Lockport|IL|US|-88.06|41.59|25|N|,Lodhran|punjab|PK|71.63|29.53|144|W|,Lodi|CA|US|-121.27|38.13|64|N|,Lodz|lodz voivodeship|PL|19.47|51.77|639|W|litzmannstadt,Logan|UT|US|-111.83|41.74|50|N|,Logan City|queensland|AU|153.11|-27.64|345|W|citta di logan;logan,Logan Square|IL|US|-87.7|41.92|73|N|,Logrono|la rioja|ES|-2.45|42.47|151|W|,Loja|loja|EC|-79.2|-3.99|274|W|,Loma Bonita|MX20|MX|-95.88|18.11|40|N|,Lombard|IL|US|-88.01|41.88|43|N|,Lome|maritime|TG|1.22|6.13|2188|W|,Lompoc|CA|US|-120.46|34.64|44|N|,London|england|GB|-0.13|51.51|8961|W|londres;londen;londra;londyn;lontoo;luan don,London|ON|CA|-81.23|42.98|422|NW|,Londrina|parana|BR|-51.16|-23.31|581|W|,Long Beach|CA|US|-118.19|33.77|474|NW|,Long Beach|NY|US|-73.66|40.59|33|N|,Long Bien|hanoi|VN|105.9|21.03|347|W|,Long Branch|NJ|US|-73.99|40.3|30|N|,Long Island City|NY|US|-73.95|40.74|25|N|lic,Long Khanh|dong nai|VN|107.25|10.93|171|W|,Long Xuyen|an giang|VN|105.44|10.39|286|W|,Longfellow Community|MN|US|-93.23|44.94|29|N|,Longfeng|heilongjiang|CN|125.1|46.53|152|W|,Longgang|guangdong|CN|114.26|22.72|215|W|district de longgang;long cuong;longgang district,Longling County|yunnan|CN|98.69|24.59|270|W|,Longmont|CO|US|-105.1|40.17|92|N|,Longshan|jilin|CN|125.14|42.89|465|W|liao juan;liaoyuan;lieu nguyen,Longueuil|QC|CA|-73.47|45.52|229|NW|,Longview|TX|US|-94.74|32.5|82|N|,Longview|WA|US|-122.94|46.14|36|N|,Longyan|fujian|CN|117.02|25.07|1025|W|long nham;lung jen,Loni|uttar pradesh|IN|77.29|28.75|516|W|,Lorain|OH|US|-82.18|41.45|63|N|,Los Altos|CA|US|-122.11|37.39|30|N|,Los Angeles|CA|US|-118.24|34.05|3820|NW|l a,Los Banos|CA|US|-120.85|37.06|37|N|,Los Gatos|CA|US|-121.97|37.23|30|N|,Los Mochis|MX25|MX|-109|25.79|256|NW|,Los Reyes Acaquilpan|MX15|MX|-98.98|19.36|85|N|los reyes la paz;reyes la paz,Los Reyes de Salgado|MX16|MX|-102.47|19.59|39|N|,Los Teques|miranda|VE|-67.04|10.35|252|W|,Loudi|hunan|CN|111.99|27.73|497|W|,Louisville|KY|US|-85.76|38.25|624|NW|,Loveland|CO|US|-105.07|40.4|75|N|,Lowell|MA|US|-71.32|42.63|110|N|,Lower Sackville|NS|CA|-63.68|44.78|51|N|,Lower West Side|IL|US|-87.67|41.85|34|N|,Lu'an|anhui|CN|116.52|31.74|1644|W|,Luancheng|hebei|CN|114.65|37.88|597|W|,Luanda|luanda|AO|13.23|-8.84|2776|W|loanda,Luanshya|copperbelt|ZM|28.42|-13.14|193|W|,Lubango|huila|AO|13.49|-14.92|600|W|sa da bandeira,Lubbock|TX|US|-101.86|33.58|249|NW|,Lublin|lublin|PL|22.57|51.25|336|W|lublino,Lubuklinggau|south sumatra|ID|102.86|-3.29|234|W|kota lubuklinggau,Lubumbashi|haut katanga|CD|27.48|-11.66|2221|W|elizabethstad;elisabethville,Lucena|calabarzon|PH|121.62|13.93|228|W|kota lucena;lucena city,Lucknow|uttar pradesh|IN|80.92|26.84|2472|W|lakhnau;laknau,Ludhiana|punjab|IN|75.85|30.91|1618|W|ludhijana,Ludwigshafen am Rhein|rheinland pfalz|DE|8.45|49.48|163|W|ludwigshafen;ludwigshafen sul reno,Luebeck|schleswig holstein|DE|10.69|53.87|212|W|lubeck;lubeca;lubecca;lubeka;lyypekki,Lueliang|shanxi|CN|111.14|37.52|3346|W|luliang,Luena|moxico|AO|19.92|-11.78|273|W|,Lufkin|TX|US|-94.73|31.34|36|N|,Luhansk|luhansk|UA|39.31|48.57|397|W|loehansk;louhansk;lugansk;luhans k;voroshilovgrad;woroschilowgrad,Luohe|henan|CN|114.03|33.57|1294|W|luo che;thap ha,Luohu District|guangdong|CN|114.13|22.55|1143|W|,Luojiang|sichuan|CN|104.5|31.3|212|W|,Luoyang|henan|CN|112.44|34.67|1390|W|luo jang,Lusail|al daayen|QA|51.51|25.42|198|W|,Lusaka|lusaka province|ZM|28.29|-15.41|2212|W|,Lushui|yunnan|CN|98.86|25.82|197|W|,Luton|england|GB|-0.42|51.88|225|W|,Lutsk|volyn|UA|25.35|50.76|215|W|loetsk;loutsk;luc k;luzk;luck;lucioria,Luxor|luxor|EG|32.64|25.7|422|W|el uksur;louxor;luksor,Luzhou|sichuan|CN|105.43|28.89|998|W|lu cou;lo chau,Luziania|goias|BR|-47.95|-16.25|221|W|,Lviv|lviv|UA|24.02|49.84|717|W|leopoli;lwow;leopolo;leopolis;liov;lvov;lwiw;lemberg,Lynchburg|VA|US|-79.14|37.41|79|N|,Lynn|MA|US|-70.95|42.47|92|N|,Lynnwood|WA|US|-122.32|47.82|36|N|,Lynwood|CA|US|-118.21|33.93|71|N|,Lyon|rhone alpes|FR|4.85|45.75|520|W|lione,Lyubertsy|moscow oblast|RU|37.89|55.68|154|W|lioubertsy;liubertsi;liuberti;liubertsy;ljoebertsy;ljubercy;ljubertsy;ljuberzy;lubiercy,Lyublino|moscow|RU|37.76|55.68|172|W|,M'Sila|m sila|DZ|4.54|35.71|132|W|,Ma'anshan|anhui|CN|118.51|31.69|741|W|,Ma On Shan|sha tin|HK|114.24|22.41|215|W|,Mabalacat City|central luzon|PH|120.57|15.22|188|W|mabalacat,Mableton|GA|US|-84.58|33.82|37|N|,Macae|rio de janeiro|BR|-41.78|-22.38|264|W|,Macapa|amapa|BR|-51.07|0.04|512|W|,Macau||MO|113.55|22.2|649|W|ma cao;macao;makao;makau,Maceio|alagoas|BR|-35.74|-9.67|1031|W|macelo,Machala|el oro|EC|-79.96|-3.26|289|W|,Machida|tokyo|JP|139.45|35.54|431|W|,Machilipatnam|andhra pradesh|IN|81.14|16.19|192|W|masulipatao,Machiques|zulia|VE|-72.55|10.06|132|W|,Macon|GA|US|-83.63|32.84|91|N|,Macuspana|MX27|MX|-92.6|17.76|32|N|,Madanapalle|andhra pradesh|IN|78.5|13.55|180|W|,Madera|CA|US|-120.06|36.96|64|N|,Madhurampur Dehri|bihar|IN|84.2|24.97|137|W|,Madhyamgram|west bengal|IN|88.45|22.69|161|W|,Madinah|medina region|SA|39.61|24.47|1300|W|medina;al madinah al munawwarah;medine;medyna,Madinat an Nasr|cairo|EG|31.3|30.07|668|W|,Madinat Hamad|northern|BH|50.51|26.12|133|W|hamad town,Madison|WI|US|-89.4|43.07|280|NW|,Madison|AL|US|-86.75|34.7|46|N|,Madison|MS|US|-90.12|32.46|25|N|,Madison Heights|MI|US|-83.11|42.49|30|N|madison hts,Madiun|east java|ID|111.52|-7.63|202|W|kota madiun,Madrid|madrid|ES|-3.7|40.42|3255|W|madryt,Madrid|cundinamarca|CO|-74.26|4.73|135|W|,Madrid Centro|madrid|ES|-3.7|40.42|149|W|madrid city center,Madurai|tamil nadu|IN|78.12|9.92|1465|W|maduraj,Maebashi|gunma|JP|139.08|36.4|332|W|maebasi,Magdalena Atlicpac|MX15|MX|-98.95|19.37|26|N|,Magdalena Contreras|MX09|MX|-99.21|19.33|238|NW|,Magdalena de Kino|MX26|MX|-110.96|30.63|26|N|,Magdeburg|saxony anhalt|DE|11.63|52.13|244|W|maagdenburg;magdebourg;magdeburgo;magdeburk,Mage|rio de janeiro|BR|-43.04|-22.65|244|W|,Magna|UT|US|-112.1|40.71|26|N|,Magnitogorsk|chelyabinsk|RU|59.01|53.4|413|W|,Magugpo Poblacion|davao region|PH|125.8|7.45|233|W|tagum;tagum city,Mahabad|west azerbaijan|IR|45.72|36.76|168|W|mehabad,Mahajanga|boeny|MG|46.32|-15.72|260|W|,Maharagama|western province|LK|79.93|6.85|195|W|,Mahbubnagar|telangana|IN|77.99|16.74|190|W|,Mahesana|gujarat|IN|72.38|23.6|190|W|,Maheshtala|west bengal|IN|88.25|22.51|448|W|,Mahilyow|mogilev|BY|30.34|53.91|352|W|mahiljou;mogilev;maguilov;mahiliou;mahiljow;mahileu;mogiljow;moguilev;mohylew,Maianga|luanda|AO|13.24|-8.85|727|W|,Maicao|la guajira department|CO|-72.24|11.38|166|W|,Maiduguri|borno state|NG|13.16|11.85|1110|W|,Maijdi|chittagong|BD|91.1|22.87|132|W|,Mainz|rheinland pfalz|DE|8.28|49.98|222|W|magonza;maguncia;mayence;moguncja;moguncia;mohuc;maienta;ments,Maipu|santiago metropolitan|CL|-70.77|-33.51|503|W|,Majie|yunnan|CN|102.64|25.03|131|W|,Makakilo / Kapolei / Honokai Hale|HI|US|-158.1|21.34|46|N|,Makassar|south sulawesi|ID|119.43|-5.15|1474|W|kota makassar;macassar;makasar,Makati City|national capital region|PH|121.03|14.55|510|W|makati,Makhachkala|dagestan|RU|47.5|42.98|596|W|machaczkala;machatjkala;machatschkala;machatsjkala;machackala;mahackala;mahatskala;mahckale;majachkala;makhatchkala;makhatsjkala,Makiki / Lower Punchbowl / Tantalus|HI|US|-157.83|21.32|31|N|,Makiyivka|donetsk|UA|37.93|48.05|338|W|makiejewka;makiivka,Makkah|mecca region|SA|39.83|21.43|1578|W|mecca;la meca;la mecca;la mecque;makkah al mukarramah;meca;mecka;mekka;mekkah;mekke,Makurdi|benue state|NG|8.52|7.73|390|W|,Malabo|bioko norte|GQ|8.78|3.76|155|W|ciudad de malabo;santa isabel,Malabon|national capital region|PH|120.94|14.67|365|W|,Malacca|melaka|MY|102.24|2.2|579|W|malakka;malaca;malaka;melaka,Malaga|andalusia|ES|-4.42|36.72|592|W|,Malakal|upper nile|SS|31.66|9.53|160|W|,Malang|east java|ID|112.63|-7.98|889|W|kabupaten malang;kota malang,Malanje|malanje|AO|16.34|-9.54|455|W|,Malatia-Sebastia|yerevan|AM|44.45|40.17|150|W|,Malatya|malatya|TR|38.32|38.35|750|W|,Malayer|hamadan province|IR|48.82|34.3|170|W|,Malda|west bengal|IN|88.15|25|170|W|english bazar,Malden|MA|US|-71.07|42.43|61|N|,Malegaon|maharashtra|IN|74.53|20.55|481|W|,Maler Kotla|punjab|IN|75.88|30.53|135|W|,Malingao|soccsksargen|PH|124.47|7.16|1121|W|,Malir Cantonment|sindh|PK|67.21|24.94|300|W|,Malkajgiri|telangana|IN|78.53|17.45|150|W|,Mallawi|minya|EG|30.84|27.73|212|W|,Malmoe|skane|SE|13|55.61|362|W|malmo,Malolos|central luzon|PH|120.81|14.84|269|W|malolos city,Maltepe|istanbul|TR|29.16|40.94|427|W|,Malvern|ON|CA|-79.22|43.81|43|N|,Man|montagnes|CI|-7.55|7.41|241|W|,Man'gyongdae-ri|pyongyang|KP|125.66|38.99|321|W|,Manado|north sulawesi|ID|124.85|1.48|458|W|kota manado,Managua|managua department|NI|-86.25|12.13|973|W|,Manama|manama|BH|50.59|26.23|147|W|al manamah;manamah,Manassas|VA|US|-77.48|38.75|41|N|,Manaus|amazonas|BR|-60.02|-3.1|2219|W|manaos,Manchester|england|GB|-2.24|53.48|568|W|,Manchester|NH|US|-71.45|43|110|N|,Manchester|CT|US|-72.52|41.78|30|N|,Mandalay|mandalay region|MM|96.08|21.97|1208|W|mandalaj,Mandaluyong|national capital region|PH|121.04|14.58|425|W|,Mandaluyong City|national capital region|PH|121.04|14.58|465|W|mandaluyong,Mandaue City|central visayas|PH|123.92|10.32|331|W|,Mandsaur|madhya pradesh|IN|75.07|24.07|141|W|,Mandya|karnataka|IN|76.9|12.52|137|W|mandja,Maneah|kindia|GN|-13.42|9.73|194|W|,Mangaluru|karnataka|IN|74.86|12.92|499|W|mangalore,Mango|jharkhand|IN|86.22|22.83|223|W|,Manhattan|NY|US|-73.97|40.78|1487|NW|,Manhattan|KS|US|-96.57|39.18|56|N|,Manhattan Beach|CA|US|-118.41|33.88|35|N|,Manhattan Valley|NY|US|-73.97|40.79|38|N|,Manila|national capital region|PH|120.98|14.6|1600|W|city of manila;manila city;manilla;manille,Manisa|manisa|TR|27.43|38.61|243|W|magnesia ad sipylum;magnesia am sipylos,Manitowoc|WI|US|-87.66|44.09|33|N|,Manizales|caldas department|CO|-75.51|5.07|434|W|,Manjhand|sindh|PK|68.24|25.91|140|W|,Mankato|MN|US|-94.01|44.16|41|N|,Mannheim|baden wurttemberg|DE|8.47|49.49|307|W|,Manokwari|west papua|ID|134.06|-0.86|132|W|,Mansa|luapula province|ZM|28.89|-11.2|170|W|,Mansfield|england|GB|-1.2|53.13|171|W|,Mansfield|TX|US|-97.14|32.56|64|N|,Mansfield|OH|US|-82.52|40.76|46|N|,Mansfield City|CT|US|-72.23|41.77|26|N|,Mansilingan|western visayas|PH|122.98|10.63|454|W|,Manta|manabi|EC|-80.73|-0.95|264|W|manta ecuador,Mantampay|northern mindanao|PH|124.22|8.17|265|W|,Manteca|CA|US|-121.22|37.8|75|N|,Mantilla|havana|CU|-82.34|23.07|206|W|,Manukau City|auckland|NZ|174.88|-36.99|362|W|manukau,Manzanillo|MX08|MX|-104.34|19.12|159|NW|,Maoming|guangdong|CN|110.91|21.67|1307|W|chaozhou;mao ming,Maple Grove|MN|US|-93.46|45.07|68|N|,Maple Ridge|BC|CA|-122.6|49.22|82|N|,Maple Valley|WA|US|-122.05|47.39|25|N|,Maplewood|MN|US|-93|44.95|40|N|,Maplewood|NJ|US|-74.27|40.73|25|N|,Maputo|maputo city|MZ|32.58|-25.97|1254|W|lourenco marques,Mar del Plata|buenos aires|AR|-57.56|-38|593|W|,Mar'ino|moscow|RU|37.72|55.65|243|W|,Maraba|para|BR|-49.13|-5.38|283|W|,Maracaibo|zulia|VE|-71.61|10.64|1752|W|,Maracanau|ceara|BR|-38.63|-3.88|251|W|,Maracay|aragua|VE|-67.59|10.25|464|W|,Maradi|maradi region|NE|7.1|13.5|361|W|,Maragheh|east azerbaijan|IR|46.24|37.39|262|W|,Maragheh|razavi khorasan|IR|59.63|35.83|262|W|,Marana|AZ|US|-111.23|32.44|41|N|,Maravatio de Ocampo|MX16|MX|-100.44|19.89|34|N|,Marawi City|autonomous region in muslim mindanao|PH|124.28|8|259|W|,Marbella|andalusia|ES|-4.89|36.52|156|W|,Marcory|abidjan autonomous district|CI|-3.99|5.31|214|W|,Mardan|khyber pakhtunkhwa|PK|72.05|34.2|300|W|,Marfil|MX11|MX|-101.29|21|29|N|,Marg'ilon|fergana|UZ|71.72|40.47|253|W|margilan,Margate|FL|US|-80.21|26.24|57|N|,Marianao|havana|CU|-82.43|23.07|134|W|,Marica|rio de janeiro|BR|-42.82|-22.92|211|W|,Maricopa|AZ|US|-112.05|33.06|48|N|,Marienthal|hamburg|DE|10.08|53.57|287|W|hamburg marienthal,Marietta|GA|US|-84.55|33.95|59|N|,Marikina City|national capital region|PH|121.11|14.65|471|W|,Marilia|sao paulo|BR|-49.95|-22.21|237|W|,Maringa|parana|BR|-51.94|-23.43|409|W|,Marion|IA|US|-91.6|42.03|37|N|,Marion|OH|US|-83.13|40.59|36|N|,Marion|IN|US|-85.66|40.56|29|N|,Mariupol|donetsk|UA|37.54|47.1|230|W|marioepol;marioupol,Marivan|kurdistan province|IR|46.18|35.52|136|W|,Mariveles|central luzon|PH|120.49|14.43|156|W|,Marka|lower shabeelle|SO|44.77|1.72|230|W|merca,Markham|ON|CA|-79.27|43.87|338|NW|,Marlboro|NJ|US|-74.25|40.32|40|N|,Marlborough|MA|US|-71.55|42.35|39|N|,Marne La Vallee|ile de france|FR|2.64|48.84|318|W|,Maroua|far north|CM|14.32|10.59|314|W|,Marpole|BC|CA|-123.13|49.21|27|N|,Marrakesh|marrakesh safi|MA|-8|31.63|995|W|marrakech;marakes;marrakesch;marrakesz;marraquexe;marrakes,Marrero|LA|US|-90.1|29.9|33|N|,Marsa Matruh|matruh|EG|27.24|31.35|176|W|mersa matruh,Marseille|provence alpes cote d azur|FR|5.38|43.3|877|W|marselha;marsella;marsiglia;marsilia;marsilya;marsylia,Marshalltown|IA|US|-92.91|42.05|27|N|,Martapura|south kalimantan|ID|114.86|-3.41|131|W|,Martinez|CA|US|-122.13|38.02|38|N|,Martinez|GA|US|-82.08|33.52|35|N|,Martinez de la Torre|MX30|MX|-97.06|20.07|60|N|,Marvdasht|fars|IR|52.8|29.87|148|W|,Mary|mary|TM|61.83|37.59|167|W|,Maryland Heights|MO|US|-90.43|38.71|27|N|,Marysville|WA|US|-122.18|48.05|66|N|,Maryvale|AZ|US|-112.18|33.5|208|NW|,Maryville|TN|US|-83.97|35.76|28|N|,Masai|johor|MY|103.88|1.49|141|W|,Masan|gwangju|KR|126.83|35.13|434|W|,Masaya|masaya department|NI|-86.1|11.97|130|W|,Mascouche|QC|CA|-73.6|45.75|34|N|,Maseru|maseru district|LS|27.48|-29.32|359|W|,Mashhad|razavi khorasan|IR|59.61|36.3|2307|W|maschhad;mashad;masyhad;meszhed;mexed;meshed;alexandria;sanaabad,Masina|kinshasa|CD|15.39|-4.38|485|W|,Mason|OH|US|-84.31|39.36|32|N|,Mason City|IA|US|-93.2|43.15|27|N|,Maspeth|NY|US|-73.91|40.72|48|N|,Massillon|OH|US|-81.52|40.8|32|N|,Matadi|bas congo|CD|13.46|-5.84|425|W|,Matamoros|MX07|MX|-103.23|25.53|52|N|,Matanzas|matanzas province|CU|-81.58|23.04|146|W|,Mataram|west nusa tenggara|ID|116.12|-8.58|441|W|kota mataram,Matehuala|MX24|MX|-100.64|23.65|77|N|,Mathura|uttar pradesh|IN|77.67|27.5|330|W|matura,Matola|maputo province|MZ|32.46|-25.96|1198|W|,Matsubara|osaka|JP|135.55|34.57|130|W|,Matsudo|chiba|JP|139.9|35.78|498|W|,Matsue|shimane|JP|133.05|35.48|203|W|macue,Matsumoto|nagano|JP|137.97|36.23|241|W|macumoto,Matsusaka|mie|JP|136.54|34.58|159|W|,Matsuyama|ehime|JP|132.77|33.84|511|W|macujama;matsuyama shi,Mattapan|MA|US|-71.09|42.27|36|N|,Matthews|NC|US|-80.72|35.12|30|N|,Matuga|kwale county|KE|39.57|-4.17|194|W|,Maturin|monagas|VE|-63.18|9.75|647|W|,Mau|uttar pradesh|IN|83.56|25.94|246|W|,Maua|sao paulo|BR|-46.46|-23.67|418|W|,Mauldin|SC|US|-82.31|34.78|25|N|,Mawlamyine|mon|MM|97.63|16.49|438|W|mawlamyaing;moulmein;mulmejn,Maykop|adygeya republic|RU|40.1|44.61|141|W|maikop;majkop,Maywood|CA|US|-118.19|33.99|27|N|,Mazar-e Sharif|balkh|AF|67.11|36.71|523|W|masar e scharif;mazar e charif;mazar i szarif;mazari sharif;mazar e sarif;mezirek i serif,Mazatlan|MX25|MX|-106.42|23.22|381|NW|ciudad mazatlan,Mbandaka|equateur|CD|18.26|0.05|455|W|,Mbanza Kongo|zaire|AO|14.24|-6.27|148|W|mbanza congo,Mbanza-Ngungu|bas congo|CD|14.86|-5.26|142|W|,Mbarara|western region|UG|30.65|-0.6|221|W|,Mbeya|mbeya|TZ|33.45|-8.9|541|W|,Mbour|thies|SN|-16.96|14.42|284|W|,Mbuji-Mayi|east kasai|CD|23.59|-6.14|2101|W|,McAllen|TX|US|-98.23|26.2|140|NW|,McCully - Moiliili|HI|US|-157.83|21.29|28|N|,McHenry|IL|US|-88.27|42.33|26|N|,McKinney|TX|US|-96.62|33.2|162|NW|,McLean|VA|US|-77.18|38.93|48|N|,McMinnville|OR|US|-123.2|45.21|33|N|,Mdantsane|eastern cape|ZA|27.78|-32.93|205|W|,Meadow Woods|FL|US|-81.37|28.39|25|N|,Meads|KY|US|-82.71|38.41|288|NW|,Mechanicsville|VA|US|-77.37|37.61|36|N|,Medan|north sumatra|ID|98.67|3.58|2486|W|kota medan,Medea|medea|DZ|2.75|36.26|145|W|al madijja,Medellin|antioquia|CO|-75.57|6.25|1999|W|medelim,Medford|OR|US|-122.88|42.33|79|N|,Medford|MA|US|-71.11|42.42|57|N|,Medicine Hat|AB|CA|-110.68|50.04|63|N|,Medina|OH|US|-81.86|41.14|26|N|,Medinipur|west bengal|IN|87.32|22.42|153|W|,Meerut|uttar pradesh|IN|77.71|28.98|1223|W|merath,Meguro|tokyo|JP|139.7|35.63|288|W|meguro city,Mehlville|MO|US|-90.32|38.51|28|N|,Meiktila|mandalay region|MM|95.86|20.88|177|W|miktila,Meishan|sichuan|CN|103.84|30.04|1107|W|mej san;mi son,Meizhou|guangdong|CN|116.12|24.29|992|W|mai chau;mej cou,Mejicanos|san salvador department|SV|-89.19|13.72|160|W|,Mek'ele|tigray|ET|39.48|13.5|457|W|macalle;mekelie,Meknes|fes meknes|MA|-5.55|33.89|568|W|,Melbourne|victoria|AU|144.96|-37.81|5435|W|greater melbourne;melbourne city,Melbourne|FL|US|-80.61|28.08|84|N|,Melchor Ocampo|MX15|MX|-99.14|19.7|38|N|,Melitopol|zaporizhzhia|UA|35.38|46.85|148|W|kyzyl yar;melitopoli;novoalexandrovka,Melrose|MA|US|-71.07|42.46|27|N|,Melrose Park|IL|US|-87.86|41.9|25|N|,Memphis|TN|US|-90.05|35.15|633|NW|menfis,Mengzi|yunnan|CN|103.38|23.37|595|W|,Menifee|CA|US|-117.15|33.73|87|N|,Menlo Park|CA|US|-122.18|37.45|33|N|,Menomonee Falls|WI|US|-88.12|43.18|36|N|,Menongue|cubango|AO|17.69|-14.66|251|W|,Mentor|OH|US|-81.34|41.67|46|N|,Mentougou|beijing|CN|116.09|39.94|197|W|,Merced|CA|US|-120.48|37.3|82|N|,Mercer Island|WA|US|-122.22|47.57|25|N|,Mercerville-Hamilton Square|NJ|US|-74.67|40.23|26|N|hamilton square,Mercier-Hochelaga-Maisonneuve|QC|CA|-73.55|45.57|142|NW|,Merida|MX31|MX|-89.62|20.97|1201|NW|,Merida|merida|VE|-71.17|8.58|300|W|,Meriden|CT|US|-72.81|41.54|59|N|,Meridian|ID|US|-116.39|43.61|90|N|,Meridian|MS|US|-88.7|32.36|39|N|,Merkezefendi|denizli|TR|29.04|37.81|280|W|,Merlo|buenos aires|AR|-58.73|-34.67|268|W|,Merrillville|IN|US|-87.33|41.48|35|N|,Merrimack|NH|US|-71.49|42.87|26|N|east merrimack,Merritt Island|FL|US|-80.69|28.36|34|N|,Mersin|mersin|TR|34.64|36.81|537|W|myrte;icel,Mesa|AZ|US|-111.82|33.42|471|NW|,Mesquite|TX|US|-96.6|32.77|144|NW|,Messina|sicily|IT|15.55|38.19|219|W|mesina;messine;mesyna,Mestre|veneto|IT|12.25|45.49|147|W|mestre bei venedig,Metairie|LA|US|-90.15|29.98|138|NW|,Metairie Terrace|LA|US|-90.16|29.98|142|NW|,Metepec|MX15|MX|-99.6|19.26|28|N|municipio metepec;municipio de metepec,Methuen|MA|US|-71.19|42.73|52|N|,Metro|lampung|ID|105.31|-5.11|182|W|kota metro,Metrotown|BC|CA|-123|49.23|52|N|,Mexicali|MX02|MX|-115.45|32.63|1032|NW|,Mexico City|MX09|MX|-99.13|19.43|12294|NW|ciudad de mexico;mexico by;cidade do mexico;citta del messico;ciudad de mejico;meksyk;mexico;mexico d f;mexico stad;mexiko stadt;mexico distrito federal;valle de mexico,Meycauayan|central luzon|PH|120.96|14.74|228|W|kota meycauayan;meycauayan city,Miami|FL|US|-80.19|25.77|487|NW|,Miami Beach|FL|US|-80.13|25.79|92|N|,Miami Gardens|FL|US|-80.25|25.94|113|N|,Miami Lakes|FL|US|-80.31|25.91|30|N|,Mian Channun|punjab|PK|72.36|30.44|140|W|mian channu,Miandoab|west azerbaijan|IR|46.11|36.97|134|W|,Mianyang|sichuan|CN|104.68|31.47|1550|W|mien jang;mien duong,Mianzhu Deyang Sichuan|sichuan|CN|104.22|31.34|510|W|,Miass|chelyabinsk|RU|60.11|55.05|167|W|,Michigan City|IN|US|-86.9|41.71|31|N|,Mid-City|CA|US|-118.36|34.04|83|N|,Middelburg|mpumalanga|ZA|29.46|-25.78|196|W|,Middle River|MD|US|-76.44|39.33|25|N|,Middle Village|NY|US|-73.88|40.72|29|N|,Middlesbrough|england|GB|-1.23|54.58|142|W|,Middletown|NJ|US|-74.12|40.39|65|N|middletown township;municipio de middletown,Middletown|OH|US|-84.4|39.52|48|N|,Middletown|CT|US|-72.65|41.56|46|N|,Middletown|NY|US|-74.42|41.45|27|N|,Midland|TX|US|-102.08|32|132|NW|,Midland|MI|US|-84.25|43.62|42|N|,Midvale|UT|US|-111.9|40.61|32|N|,Midwest City|OK|US|-97.4|35.45|57|N|,Miguel Aleman (La Doce)|MX26|MX|-111.48|28.84|30|N|,Miguel Hidalgo|MX09|MX|-99.2|19.43|372|NW|delegacion miguel hidalgo,Milagro|guayas|EC|-79.59|-2.13|133|W|,Milan|lombardy|IT|9.19|45.46|1371|W|milano;mailand;mediolan;milaan;milao,Milford|CT|US|-73.06|41.22|52|N|,Milford|MA|US|-71.52|42.14|25|N|,Milford Mill|MD|US|-76.77|39.35|29|N|,Mililani Town|HI|US|-158.02|21.45|27|N|,Millcreek|UT|US|-111.88|40.69|62|N|,Milliken|ON|CA|-79.3|43.82|26|N|,Millville|NJ|US|-75.04|39.4|28|N|,Milpitas|CA|US|-121.91|37.43|77|N|,Milton|ON|CA|-79.88|43.52|132|NW|,Milton|GA|US|-84.3|34.13|37|N|,Milton|MA|US|-71.07|42.25|27|N|,Milton Keynes|england|GB|-0.76|52.04|256|W|,Milwaukee|WI|US|-87.91|43.04|563|NW|,Mimico|ON|CA|-79.51|43.62|33|N|,Minamirinkan|kanagawa|JP|139.44|35.5|224|W|,Minatitlan|MX30|MX|-94.56|18|112|N|,Minato|wakayama|JP|135.15|34.22|375|W|,Minato City|tokyo|JP|139.75|35.66|260|W|minato,Mingala Tangnyunt|yangon|MM|96.17|16.79|132|W|,Mingaladon|yangon|MM|96.1|16.92|136|W|,Mingora|khyber pakhtunkhwa|PK|72.36|34.78|361|W|mingaora,Minhang|shanghai|CN|121.37|31.11|2716|W|,Minna|niger state|NG|6.55|9.62|425|W|,Minneapolis|MN|US|-93.26|44.98|410|NW|mineapolis,Minnetonka|MN|US|-93.5|44.91|51|N|,Minnetonka Mills|MN|US|-93.44|44.94|50|N|,Minoh|osaka|JP|135.47|34.83|136|W|,Minot|ND|US|-101.3|48.23|49|N|,Minsk|minsk city|BY|27.57|53.9|1742|W|,Mint Hill|NC|US|-80.65|35.18|25|N|,Minya|minya|EG|30.76|28.09|283|W|,Mira Mesa|CA|US|-117.14|32.92|70|N|,Mirabel|QC|CA|-74.08|45.65|34|N|,Miraflores|lima region|PE|-77.03|-12.11|187|W|san borja,Miramar|FL|US|-80.23|25.99|137|NW|,Miramar|MX28|MX|-97.9|22.36|118|N|,Miri|sarawak|MY|113.99|4.4|300|W|marabu,Mirpur Khas|sindh|PK|69.01|25.53|267|W|,Mirpur Model Thana|dhaka division|BD|90.36|23.81|546|W|,Mirzapur|uttar pradesh|IN|82.57|25.14|220|W|,Misantla|MX30|MX|-96.85|19.93|26|N|,Misato Saitama|saitama|JP|139.88|35.84|142|W|,Mishawaka|IN|US|-86.16|41.66|48|N|,Miskolc|borsod abauj zemplen|HU|20.78|48.1|154|W|miszkolc,Misratah|misratah|LY|15.09|32.38|355|W|al misratah;misrata,Mission|TX|US|-98.33|26.22|83|N|,Mission|BC|CA|-122.3|49.13|41|N|,Mission Bend|TX|US|-95.66|29.69|36|N|,Mission District|CA|US|-122.42|37.76|47|N|,Mission Viejo|CA|US|-117.67|33.6|97|N|,Mississauga|ON|CA|-79.66|43.58|717|NW|,Missoula|MT|US|-113.99|46.87|71|N|,Missouri City|TX|US|-95.54|29.62|74|N|,Mit Ghamr|dakahlia|EG|31.26|30.72|153|W|,Mito|ibaraki|JP|140.45|36.35|270|W|,Mixco|guatemala|GT|-90.61|14.63|465|W|,Mixquiahuala de Juarez|MX13|MX|-99.21|20.23|25|N|,Miyakonojo|miyazaki|JP|131.07|31.73|161|W|,Miyazaki|miyazaki|JP|131.42|31.92|401|W|miyazaki shi;miyazakishi,Mlolongo|machakos county|KE|36.94|-1.4|136|W|,Mobile|AL|US|-88.04|30.69|183|NW|,Mocuba|zambezia province|MZ|36.99|-16.84|196|W|,Modena|emilia romagna|IT|10.93|44.65|184|W|modene,Modesto|CA|US|-121|37.64|211|NW|,Modinagar|uttar pradesh|IN|77.57|28.83|475|W|,Moenchengladbach|north rhine westphalia|DE|6.44|51.19|261|W|monchengladbach,Moga|punjab|IN|75.17|30.81|163|W|,Mogadishu|banaadir|SO|45.34|2.04|2587|W|mogadischu;mogadiscio;mogadiszu;mogadisu;mogadiso,Mogi das Cruzes|sao paulo|BR|-46.19|-23.52|325|W|,Mogi Guacu|sao paulo|BR|-46.95|-22.37|160|W|,Mohali|punjab|IN|76.72|30.68|166|W|,Mohammadpur|rajshahi division|BD|88.53|24.9|527|W|,Mohammedia|casablanca settat|MA|-7.38|33.69|227|W|al muhammadijja;muhammediye;fedala,Mojokerto|east java|ID|112.43|-7.47|141|W|kota mojokerto,Mokotow|mazovia|PL|21.03|52.19|217|W|,Mokpo|jeollanam do|KR|126.39|34.81|268|W|mogpo,Moline|IL|US|-90.52|41.51|42|N|,Mombasa|mombasa county|KE|39.66|-4.05|1208|W|mombassa;mombaca,Monclova|MX07|MX|-101.42|26.91|215|NW|,Moncton|NB|CA|-64.8|46.09|86|N|,Monroe|LA|US|-92.12|32.51|49|N|,Monroe|NC|US|-80.55|34.99|34|N|,Monroeville|PA|US|-79.79|40.42|28|N|,Monrovia|montserrado county|LR|-10.8|6.3|1542|W|monrowia,Monrovia|CA|US|-118|34.15|37|N|,Montclair|NJ|US|-74.21|40.83|39|N|,Montclair|CA|US|-117.69|34.08|38|N|,Montebello|CA|US|-118.11|34.01|63|N|,Montemorelos|MX19|MX|-99.83|25.19|67|N|,Monterey|CA|US|-121.89|36.6|28|N|monterrey,Monterey Park|CA|US|-118.12|34.06|61|N|,Monteria|cordoba|CO|-75.88|8.75|490|W|,Monterrey|MX19|MX|-100.32|25.68|1135|NW|monterrei;monterrey city,Montes Claros|minas gerais|BR|-43.86|-16.73|437|W|,Montevideo|montevideo department|UY|-56.19|-34.9|1270|W|montevideu,Montgomery|AL|US|-86.3|32.37|195|NW|,Montgomery Village|MD|US|-77.2|39.18|32|N|,Montpellier|occitanie|FR|3.88|43.61|248|W|,Montreal|QC|CA|-73.59|45.51|1762|NW|montreal city,Montreal-Nord|QC|CA|-73.63|45.6|86|N|,Monywa|sagaing region|MM|95.14|22.11|182|W|munywa,Moore|OK|US|-97.49|35.34|60|N|,Mooresville|NC|US|-80.81|35.58|36|N|,Moorhead|MN|US|-96.77|46.87|42|N|,Moorpark|CA|US|-118.88|34.29|36|N|,Moose Jaw|SK|CA|-105.53|50.4|33|N|,Mopti|mopti|ML|-4.18|14.48|186|W|,Moradabad|uttar pradesh|IN|78.78|28.84|721|W|,Moratuwa|western province|LK|79.88|6.77|168|W|,Morelia|MX16|MX|-101.18|19.7|743|NW|,Morena|madhya pradesh|IN|78|26.5|200|W|,Moreno|buenos aires|AR|-58.79|-34.63|148|W|,Moreno Valley|CA|US|-117.23|33.94|204|NW|,Morgan Hill|CA|US|-121.65|37.13|42|N|,Morgantown|WV|US|-79.96|39.63|30|N|,Moriguchi|osaka|JP|135.57|34.73|143|W|,Morioka|iwate|JP|141.15|39.7|290|W|,Morningside Heights|NY|US|-73.96|40.81|55|N|,Moro|sindh|PK|68|26.66|142|W|,Morogoro|morogoro|TZ|37.66|-6.82|471|W|,Moroleon|MX11|MX|-101.19|20.13|43|N|,Morris Heights|NY|US|-73.92|40.85|40|N|,Morristown|TN|US|-83.29|36.21|29|N|,Morvi|gujarat|IN|70.84|22.82|210|W|,Moscow|moscow|RU|37.62|55.75|10381|W|moscou;moscova;moscovo;moscu;matxcova;mosca;moskau;moskou;moskova;moskva;moskwa;mat xco va,Moscow|ID|US|-117|46.73|25|N|,Moshi|kilimanjaro|TZ|37.33|-3.35|221|W|,Mossamedes|namibe|AO|12.15|-15.2|255|W|mocamedes;namibe,Mossoro|rio grande do norte|BR|-37.34|-5.19|264|W|,Mostaganem|mostaganem|DZ|0.09|35.93|162|W|mustaghanam,Mostoles|madrid|ES|-3.86|40.32|207|W|,Mosul|nineveh|IQ|43.12|36.34|1683|W|mosoel;mossoul;mossul;musul,Motijheel|dhaka division|BD|90.42|23.73|202|W|,Mott Haven|NY|US|-73.92|40.81|51|N|,Moundou|logone occidental|TD|16.08|8.57|196|W|,Mount Juliet|TN|US|-86.52|36.2|31|N|,Mount Laurel|NJ|US|-74.89|39.93|41|N|,Mount Lebanon|PA|US|-80.05|40.36|32|N|,Mount Olive-Silverstone-Jamestown|ON|CA|-79.59|43.75|32|N|,Mount Pleasant|SC|US|-79.86|32.79|81|N|mt pleasant,Mount Pleasant|DC|US|-77.04|38.93|35|N|ingleside;mount pleasant village;rosemont park;walbridge,Mount Pleasant|BC|CA|-123.1|49.27|33|N|,Mount Pleasant|WI|US|-87.86|42.7|26|N|,Mount Pleasant|MI|US|-84.77|43.6|26|N|mt pleasant,Mount Pleasant West|ON|CA|-79.39|43.7|29|N|,Mount Prospect|IL|US|-87.94|42.07|54|N|,Mount Vernon|NY|US|-73.84|40.91|68|N|,Mount Vernon|WA|US|-122.33|48.42|34|N|,Mountain View|CA|US|-122.08|37.39|80|N|,Moyotzingo|MX21|MX|-98.4|19.25|27|N|,Mpanda|katavi|TZ|31.07|-6.34|204|W|,Mpumalanga|kwazulu natal|ZA|30.64|-29.81|140|W|epumalanga;hammarsdale,Mt Pleasant|BC|CA|-123.1|49.26|32|N|,Mthatha|eastern cape|ZA|28.78|-31.59|164|W|umtata,Mtwara|mtwara|TZ|40.18|-10.27|140|W|,Mu-se|shan state|MM|97.9|24|165|W|,Muar|johor|MY|102.57|2.04|314|W|muar town,Mubi|adamawa|NG|13.27|10.27|225|W|,Mudanjiang|heilongjiang|CN|129.63|44.55|665|W|mu tan tiang,Mueang Nonthaburi|nonthaburi|TH|100.51|13.86|254|W|nonthaburi,Muelheim|north rhine westphalia|DE|6.88|51.43|173|W|mulheim;muelheim an der ruhr;mulheim an der ruhr,Muenster|north rhine westphalia|DE|7.63|51.96|308|W|munster,Mufulira|copperbelt|ZM|28.24|-12.55|169|W|,Mukalla|muhafazat hadramaout|YE|49.12|14.54|594|W|al mukalla;mukala,Mukim Pulai|johor|MY|103.67|1.53|505|W|,Mukono|central region|UG|32.76|0.35|191|W|,Mulenvos|luanda|AO|13.33|-8.87|882|W|,Multan|punjab|PK|71.48|30.2|2169|W|,Mulugu|telangana|IN|79.94|18.19|297|W|,Mumbai|maharashtra|IN|72.88|19.07|12691|W|mumbaj;mumbay;bombay;bombaim;bombaj,Muncie|IN|US|-85.39|40.19|70|N|,Mundelein|IL|US|-88|42.26|31|N|,Munger|bihar|IN|86.47|25.37|213|W|,Munich|bavaria|DE|11.58|48.14|1505|W|munchen;mnichov;monachium;monaco di baviera;muenchen;munique;munih,Muntinlupa|calabarzon|PH|121.05|14.39|552|W|city of muntinlupa,Muratpasa|antalya|TR|30.76|36.89|450|W|,Murcia|murcia|ES|-1.13|37.99|471|W|murcie;murcja,Murfreesboro|TN|US|-86.39|35.85|165|NW|,Muricay|zamboanga peninsula|PH|123.48|7.83|132|W|,Muridke|punjab|PK|74.26|31.8|254|W|muridike,Murmansk|murmansk|RU|33.1|68.97|295|W|moermansk;mourmansk;muurmanski;romanov;romanov on murman;semenova,Murray|UT|US|-111.89|40.67|49|N|,Murrieta|CA|US|-117.21|33.55|109|N|,Murwara|madhya pradesh|IN|80.39|23.84|221|W|,Musaffah|abu dhabi|AE|54.48|24.36|243|W|musaffah city,Musanze|northern province|RW|29.63|-1.5|153|W|ruhengeri,Musashino|tokyo|JP|139.56|35.71|150|W|,Muscat|muscat|OM|58.41|23.58|797|W|mascate;maskat;masqat;muskat,Mushin|lagos|NG|3.35|6.53|199|W|,Muskegon|MI|US|-86.25|43.23|38|N|,Muskogee|OK|US|-95.37|35.75|38|N|,Musoma|mara|TZ|33.8|-1.5|164|W|,Mutare|manicaland|ZW|32.67|-18.97|224|W|,Muzaffarabad|azad kashmir|PK|73.47|34.37|725|W|,Muzaffargarh|punjab|PK|71.19|30.07|235|W|,Muzaffarnagar|uttar pradesh|IN|77.7|29.47|349|W|,Muzaffarpur|bihar|IN|85.39|26.12|354|W|,Mwala|machakos county|KE|37.45|-1.35|181|W|,Mwanza|mwanza|TZ|32.9|-2.52|1104|W|,Mwene|lualaba|CD|22.87|-9.82|295|W|,Mwene-Ditu|lomami|CD|23.45|-7.01|189|W|,My Tho|dong thap|VN|106.36|10.36|270|W|,Myeik|tanintharyi region|MM|98.6|12.44|173|W|mergui,Myingyan|mandalay region|MM|95.39|21.46|141|W|,Mykolayiv|mykolaiv|UA|31.99|46.98|470|W|mikolajow;mykolaiv;nicolopoli;vernoleninsk,Mymensingh|mymensingh division|BD|90.41|24.76|225|W|,Myrtle Beach|SC|US|-78.89|33.69|31|N|,Mysuru|karnataka|IN|76.64|12.3|920|W|maisur;mysore,Mytishchi|moscow oblast|RU|37.73|55.91|160|W|mitischi;mytichtchi;mytischtschi;mytisjtji;mytisjtsji;mytiszczi;mytistsi;mytisci;mitisci;miytisci,Mzuzu|northern region|MW|34.02|-11.47|249|W|,N'dalatando|cuanza norte|AO|14.91|-9.3|161|W|ndalatando,N'Djamena|n djamena|TD|15.04|12.11|1359|W|yamena;indschamina;ndjamena;ndzamena,Naberezhnyye Chelny|tatarstan republic|RU|52.42|55.74|509|W|naberezhnye chelny;naberejnye chelny;nabereschnyje tschelny;naberezjnye tsjelny;nabereznyje tselny;nabereznyje celny;brezhnev,Nablus|west bank|PS|35.25|32.22|130|W|naplouse;shechem;sichem;siquem;sychem,Nacala|nampula|MZ|40.69|-14.56|239|W|cidade de nacala;nacala porto,Nacogdoches|TX|US|-94.66|31.6|33|N|,Nada|hainan|CN|109.58|19.52|256|W|danzhou,Nadiad|gujarat|IN|72.86|22.69|225|W|,Nador|oriental|MA|-2.93|35.17|176|W|,Naga|bicol region|PH|123.18|13.62|174|W|kota naga,Naga|central visayas|PH|123.76|10.21|138|W|city of naga;kota naga;naga city,Nagano|nagano|JP|138.18|36.65|372|W|,Nagaoka|niigata|JP|138.85|37.45|266|W|,Nagar Naluakot|dhaka division|BD|90.77|24.16|273|W|nogor noluakot,Nagareyama|chiba|JP|139.9|35.86|200|W|,Nagarpur|dhaka division|BD|89.88|24.06|238|W|,Nagasaki|nagasaki|JP|129.88|32.75|409|W|nagasaki shi;nagasakishi;nangasaque,Nagercoil|tamil nadu|IN|77.43|8.18|224|W|nagarkoil;nagarkovil,Nagoya|aichi|JP|136.91|35.18|2332|W|nagoia;nagoja;nagoya city;nagoya shi,Nagpur|maharashtra|IN|79.08|21.15|2405|W|,Naha|okinawa|JP|127.68|26.21|317|W|,Naihati|west bengal|IN|88.42|22.89|253|W|,Nairobi|nairobi county|KE|36.82|-1.28|4397|W|,Naivasha|nakuru county|KE|36.43|-0.71|198|W|,Najaf|najaf|IQ|44.35|32.03|482|W|an nadzaf;an najaf;nadjaf;nadschaf;nadzaf;nayaf;necef,Najafabad|isfahan|IR|51.37|32.63|235|W|,Najafgarh|delhi|IN|76.98|28.61|1365|W|,Najran|najran region|SA|44.13|17.49|505|W|necran,Nakano|tokyo|JP|139.67|35.7|344|W|nakano city,Nakhodka|primorye|RU|132.92|42.84|146|W|nachodka;nahodka;najodka;langouwai,Nakuru|nakuru county|KE|36.07|-0.31|570|W|,Nalchik|kabardino balkariya republic|RU|43.62|43.5|239|W|nal chik;naltschik;naltsik;nalcik,Nalgonda|telangana|IN|79.27|17.05|154|W|,Nam GJinh|ninh binh|VN|106.18|20.43|448|W|nam dinh,Namangan|namangan|UZ|71.67|41|713|W|namanga;nemengan,Namp'o|nampo|KP|125.41|38.74|455|W|nampo,Nampa|ID|US|-116.56|43.54|89|N|,Nampula|nampula|MZ|39.27|-15.12|770|W|,Nanaimo|BC|CA|-123.94|49.17|90|N|,Nanchang|jiangxi|CN|115.85|28.68|2357|W|nam xuong;nan cchang,Nanchital de Lazaro Cardenas del Rio|MX30|MX|-94.41|18.07|25|N|villa nanchital,Nanchong|sichuan|CN|106.08|30.8|1858|W|nam sung;nan cchung,Nanchuan|chongqing|CN|107.1|29.15|204|W|,Nanded|maharashtra|IN|77.31|19.16|550|W|,Nandyal|andhra pradesh|IN|78.48|15.48|211|W|,Nangloi Jat|delhi|IN|77.07|28.68|205|W|,Nanjin|chongqing|CN|106.27|29.98|143|W|,Nanjing|jiangsu|CN|118.78|32.06|9314|W|nankin;nam kinh;nanchino;nanquim;nankijn,Nankana Sahib|punjab|PK|73.71|31.45|130|W|,Nanning|guangxi|CN|108.32|22.82|3839|W|nam ninh;nan ning,Nanpiao|liaoning|CN|120.75|41.1|157|W|,Nanping|fujian|CN|118.17|26.64|467|W|nam binh;nan pching,Nanqiao|shanghai|CN|121.45|30.92|361|W|,Nansana|central region|UG|32.53|0.36|532|W|,Nantes|pays de la loire|FR|-1.55|47.22|325|W|,Nantong|jiangsu|CN|120.87|32.03|2273|W|nam thong;nan tchung,Nantou|guangdong|CN|113.29|22.72|130|W|,Nanyang|henan|CN|112.55|33.01|1811|W|nam duong;nan jang,Napa|CA|US|-122.29|38.3|80|N|,Naperville|IL|US|-88.15|41.79|147|NW|,Naples|campania|IT|14.27|40.85|909|W|neapel;napels;napoli;neapol;neapole;napoles,Nara-shi|nara|JP|135.8|34.69|367|W|nara,Narashino|chiba|JP|140.04|35.68|176|W|,Narayanganj|dhaka division|BD|90.5|23.61|223|W|,Narela|delhi|IN|77.09|28.85|800|W|,Narita|chiba|JP|140.32|35.78|132|W|,Narowal|punjab|PK|74.87|32.1|130|W|,Narsingdi|dhaka division|BD|90.72|23.92|281|W|,Nashik|maharashtra|IN|73.79|20|1486|W|,Nashua|NH|US|-71.47|42.77|87|N|,Nashville|TN|US|-86.78|36.17|689|NW|,Nasim Shahr|tehran|IR|51.16|35.57|200|W|,Nasimshahr|tehran|IR|51.16|35.57|200|W|,Nasiriyah|dhi qar|IQ|46.26|31.06|558|W|an nasiriya;nasirijja;nasiriya,Nassau|new providence|BS|-77.34|25.06|227|W|nasau,Natal|rio grande do norte|BR|-35.21|-5.79|896|W|,Natick|MA|US|-71.35|42.28|32|N|,National City|CA|US|-117.1|32.68|61|N|,Natore|rajshahi division|BD|88.99|24.41|369|W|,Naucalpan de Juarez|MX15|MX|-99.24|19.48|834|NW|naucalpan,Naugatuck|CT|US|-73.05|41.49|31|N|,Navarre|FL|US|-86.86|30.4|31|N|,Navegantes|benguela|AO|13.39|-12.59|240|W|,Navi Mumbai|maharashtra|IN|73.02|19.04|2600|W|nova bombaim;new bombay,Navoiy|navoiy region|UZ|65.38|40.08|144|W|navoi;nawoi;nevai,Navojoa|MX26|MX|-109.44|27.07|113|N|,Navolato|MX25|MX|-107.7|24.77|29|N|,Navotas|national capital region|PH|120.95|14.67|249|W|,Navsari|gujarat|IN|72.92|20.94|171|W|,Nawabganj|rajshahi division|BD|88.27|24.59|142|W|,Nawabshah|sindh|PK|68.4|26.24|363|W|,Nay Pyi Taw|nay pyi taw|MM|96.13|19.75|925|W|naipidau;naypyidaw;naypyitaw,Nazarabad|alborz province|IR|50.61|35.95|213|W|,Nazran|ingushetiya republic|RU|44.77|43.23|164|W|nasran,Nazret|oromiya|ET|39.27|8.55|456|W|,Ndola|copperbelt|ZM|28.64|-12.96|627|W|,Near North Side|IL|US|-87.63|41.9|85|N|,Needham|MA|US|-71.23|42.28|28|N|,Neenah|WI|US|-88.46|44.19|25|N|,Negombo|western province|LK|79.84|7.21|137|W|negumbo,Neihu|taiwan|TW|121.59|25.08|274|W|distretto di neihu;district de neihu;distrik neihu;neihu district,Neijiang|sichuan|CN|105.06|29.58|1251|W|nej tiang,Neiva|huila department|CO|-75.28|2.93|357|W|,Nek'emte|oromiya|ET|36.55|9.08|156|W|,Nellore|andhra pradesh|IN|79.99|14.45|547|W|nellur,Nepalgunj|lumbini province|NP|81.62|28.05|166|W|,Nepean|ON|CA|-75.72|45.34|180|NW|,Netanya|central district|IL|34.86|32.33|228|W|netania;netanja,Neue Neustadt|saxony anhalt|DE|11.63|52.15|226|W|,Neufchatel-Est-Lebourgneuf|QC|CA|-71.34|46.85|37|N|,Neukoelln|state of berlin|DE|13.43|52.48|164|W|neukolln;berlin neukolln,Neuquen|neuquen|AR|-68.06|-38.95|231|W|ciudad de neuquen,Neuss|north rhine westphalia|DE|6.69|51.2|152|W|,Nevinnomyssk|stavropol kray|RU|41.94|44.63|134|W|nevinnomissk;newinnomyssk;niewinnomyssk,New Albany|IN|US|-85.82|38.29|36|N|,New Bedford|MA|US|-70.93|41.64|101|N|,New Berlin|WI|US|-88.11|42.98|39|N|,New Bern|NC|US|-77.04|35.11|30|N|,New Braunfels|TX|US|-98.12|29.7|70|N|,New Britain|CT|US|-72.78|41.66|72|N|,New Brunswick|NJ|US|-74.45|40.49|57|N|nuevo brunswick,New Cairo|cairo|EG|31.47|30.03|313|W|,New City|IL|US|-87.66|41.81|40|N|,New City|NY|US|-73.99|41.15|33|N|,New Delhi|delhi|IN|77.21|28.62|317|W|neu delhi;nova deli;nove dilli;nueva delhi;nuova delhi;yeni delhi,New Haven|CT|US|-72.93|41.31|130|NW|,New Iberia|LA|US|-91.82|30|30|N|la nouvelle iberie;nueva iberia,New Kingston|saint andrew parish|JM|-76.78|18.01|583|W|,New Lenox|IL|US|-87.97|41.51|25|N|,New London|CT|US|-72.1|41.36|27|N|,New Orleans|LA|US|-90.08|29.95|362|NW|nova orleaes;nowy orlean;nueva orleans;new orleans louisiana;la nouvelle orleans,New Rochelle|NY|US|-73.78|40.91|79|N|nouvelle rochelle;nueva rochelle,New South Memphis|TN|US|-90.06|35.09|641|NW|,New Taipei City|taipei|TW|121.46|25.06|4004|W|new taipei;neu taipeh;nieuw taipei;nouveau taipei;nova taipe;nova tchaj pej;nowe tajpej;nueva taipei;nuova taipei;xinbei city;yeni taipei,New Territories||HK|114.11|22.42|3984|W|new territory hong kong,New Westminster|BC|CA|-122.91|49.21|78|N|new westminister,New York City|NY|US|-74.01|40.71|8804|NW|new york;nueva york;kota new york;new york kenti;nova iorque;nowy jork;nuova york,Newark|NJ|US|-74.17|40.74|281|NW|,Newark|OH|US|-82.4|40.06|47|N|,Newark|CA|US|-122.04|37.53|45|N|,Newark|DE|US|-75.75|39.68|33|N|,Newburgh|NY|US|-74.01|41.5|28|N|,Newcastle|new south wales|AU|151.78|-32.93|508|W|,Newcastle|kwazulu natal|ZA|29.93|-27.76|404|W|,Newcastle upon Tyne|england|GB|-1.61|54.97|300|W|newcastle;newcastle tren song tyne;newcastle on tyne,Newington|CT|US|-72.72|41.7|30|N|,Newmarket|ON|CA|-79.47|44.05|91|N|,Newnan|GA|US|-84.8|33.38|37|N|,Newport|wales|GB|-3|51.59|161|W|,Newport Beach|CA|US|-117.93|33.62|87|N|,Newport News|VA|US|-76.43|36.98|186|NW|,Newton|BC|CA|-122.85|49.13|159|NW|surrey newton,Newton|MA|US|-71.21|42.34|88|N|,Neyagawa|osaka|JP|135.63|34.77|238|W|,Neyshabur|razavi khorasan|IR|58.8|36.21|220|W|nichapur;nischapur;nishapur,Neyveli|tamil nadu|IN|79.5|11.61|179|W|,Ngaoundere|adamaoua|CM|13.58|7.33|238|W|ngaundere,Nghi Son|thanh hoa province|VN|105.82|19.33|302|W|,Nha Trang|khanh hoa|VN|109.19|12.25|579|W|,NIA Valencia|northern mindanao|PH|125.09|7.91|223|W|kota valencia;valencia city,Niagara|ON|CA|-79.41|43.64|31|N|,Niagara Falls|ON|CA|-79.07|43.1|99|N|cataratas del niagara;chutes niagara,Niagara Falls|NY|US|-79.06|43.09|48|N|,Niamey|niamey|NE|2.11|13.51|1323|W|,Nianbo|qinghai|CN|102.42|36.48|260|W|haidong,Nice|provence alpes cote d azur|FR|7.27|43.7|342|W|niza;nicea;nisa;nizza,Nicholasville|KY|US|-84.57|37.88|29|N|,Nicolas Romero|MX15|MX|-99.31|19.64|281|NW|ciudad nicolas romero,Nicosia|nicosia|CY|33.35|35.17|200|W|lefkosa;nikosia;lefkosia;nicosie;nikozja;nikosie,Nigel|gauteng|ZA|28.48|-26.43|140|W|,Niigata|niigata|JP|139.04|37.92|797|W|,Niiza|saitama|JP|139.56|35.82|166|W|,Nijmegen|gelderland|NL|5.85|51.84|177|W|nimwegen;nimega;nimegue,Niles|IL|US|-87.8|42.02|29|N|,Nilopolis|rio de janeiro|BR|-43.41|-22.81|155|W|,Niluefer|bursa province|TR|28.92|40.21|536|W|nilufer,Nimes|occitanie|FR|4.36|43.84|148|W|,Ning'er|yunnan|CN|101.04|23.04|162|W|,Ningbo|zhejiang|CN|121.55|29.88|3731|W|ninh ba,Ningde|fujian|CN|119.52|26.66|429|W|ningteh,Ninh Hoa|khanh hoa|VN|109.12|12.49|230|W|,Nis|central serbia|RS|21.9|43.32|250|W|nisz,Nishi-Tokyo-shi|tokyo|JP|139.54|35.73|207|W|,Nishinomiya|hyogo|JP|135.33|34.72|485|W|,Nishio|aichi|JP|137.05|34.87|169|W|,Niteroi|rio de janeiro|BR|-43.1|-22.88|515|W|,Nizamabad|telangana|IN|78.1|18.67|311|W|,Nizhnekamsk|tatarstan republic|RU|51.82|55.64|234|W|nijnekamsk;nischnekamsk;nizjnekamsk;nizniekamsk;niznekamsk;tubenkama;tuban kama,Nizhnevartovsk|khanty mansia|RU|76.55|60.93|244|W|nijnevartovsk;nischnewartowsk;nizjnevartovsk;nizniewartowsk;niznevartovsk,Nizhniy Novgorod|nizhny novgorod oblast|RU|44|56.33|1259|W|nijni novgorod;nischni nowgorod;nizhny novgorod;nizhni novgorod;nizjnij novgorod;nizni novgorod;gorkij,Nizhny Tagil|sverdlovsk oblast|RU|59.97|57.92|381|W|nizjnij tagil,Njeru|central region|UG|33.18|0.44|178|W|,Nkongsamba|littoral|CM|9.94|4.95|162|W|,Nnewi|anambra|NG|6.92|6.02|193|W|,Noblesville|IN|US|-86.01|40.05|59|N|,Noda|chiba|JP|139.87|35.95|154|W|noda shi,Nogales|MX26|MX|-110.94|31.31|264|NW|heroica nogales;los nogales,Noida|uttar pradesh|IN|77.33|28.58|293|W|,Nong Chok|bangkok|TH|100.86|13.86|157|W|,Nong Khaem|bangkok|TH|100.35|13.71|150|W|,Nor Nork|yerevan|AM|44.57|40.2|137|W|,Norco|CA|US|-117.55|33.93|26|N|,Norfolk|VA|US|-76.29|36.85|238|NW|,Norfolk County|ON|CA|-80.38|42.83|60|N|,Norilsk|krasnoyarsk krai|RU|88.2|69.35|140|W|noril sk;norylsk,Normal|IL|US|-88.99|40.51|54|N|,Norman|OK|US|-97.44|35.22|128|N|,Norristown|PA|US|-75.34|40.12|34|N|,North Andover|MA|US|-71.14|42.7|28|N|,North Bay|ON|CA|-79.47|46.32|50|N|,North Bel Air|MD|US|-76.35|39.54|33|N|,North Bergen|NJ|US|-74.01|40.8|63|N|,North Bethesda|MD|US|-77.12|39.04|43|N|,North Brunswick|NJ|US|-74.48|40.45|43|N|,North Center|IL|US|-87.68|41.95|34|N|,North Charleston|SC|US|-79.97|32.85|108|N|,North Chicago|IL|US|-87.84|42.33|29|N|,North Chicopee|MA|US|-72.6|42.18|55|N|,North Cowichan|BC|CA|-123.69|48.84|29|N|,North Creek|WA|US|-122.18|47.82|26|N|,North Delta|BC|CA|-122.92|49.17|60|N|nord delta,North Fort Myers|FL|US|-81.88|26.67|39|N|n ft myers,North Highlands|CA|US|-121.37|38.69|42|N|,North Hills|CA|US|-118.48|34.24|56|N|,North Hollywood|CA|US|-118.38|34.17|64|N|lankershim;toluca,North Kingstown|RI|US|-71.47|41.55|28|N|n kingstown,North La Crosse|WI|US|-91.25|43.85|50|N|,North Las Vegas|NV|US|-115.12|36.2|234|NW|,North Lauderdale|FL|US|-80.23|26.22|43|N|n lauderdale,North Lawndale|IL|US|-87.72|41.86|35|N|,North Little Rock|AR|US|-92.27|34.77|66|N|,North Miami|FL|US|-80.19|25.89|62|N|,North Miami Beach|FL|US|-80.16|25.93|43|N|,North Olmsted|OH|US|-81.92|41.42|32|N|,North Peoria|IL|US|-89.58|40.72|113|N|,North Port|FL|US|-82.24|27.04|62|N|,North Providence|RI|US|-71.47|41.85|33|N|,North Richland Hills|TX|US|-97.23|32.83|69|N|,North Ridgeville|OH|US|-82.02|41.39|32|N|,North Royalton|OH|US|-81.72|41.31|30|N|n royalton,North Shore|auckland|NZ|174.75|-36.8|258|W|,North Stamford|CT|US|-73.54|41.14|121|N|,North Tonawanda|NY|US|-78.86|43.04|30|N|,North Vancouver|BC|CA|-123.07|49.32|88|N|vancouver utara,Northampton|england|GB|-0.88|52.25|245|W|,Northampton|MA|US|-72.64|42.33|28|N|,Northbrook|IL|US|-87.83|42.13|33|N|,Northglenn|CO|US|-104.99|39.89|39|N|,Northridge|CA|US|-118.54|34.23|68|N|,Norwalk|CA|US|-118.08|33.9|107|N|,Norwalk|CT|US|-73.41|41.12|88|N|,Norwich|england|GB|1.3|52.63|143|W|,Norwich|CT|US|-72.08|41.52|39|N|,Norwood|MA|US|-71.2|42.19|28|N|,Norzagaray|central luzon|PH|121.05|14.91|140|W|,Nossa Senhora do Socorro|sergipe|BR|-37.13|-10.86|204|W|,Notre-Dame-de-Grace|QC|CA|-73.61|45.48|68|N|,Nottingham|england|GB|-1.15|52.95|323|W|,Nou Barris|catalonia|ES|2.18|41.44|166|W|distrito nou barris;distrito de nou barris,Nouadhibou|dakhlet nouadhibou|MR|-17.04|20.94|146|W|nawazibu;nouadibou;nuadibu;port etienne,Nouakchott||MR|-15.98|18.09|1184|W|nawakszut;nuakchot;nuaksot;nuaksott,Nova Friburgo|rio de janeiro|BR|-42.53|-22.28|189|W|nueva friburgo,Nova Iguacu|rio de janeiro|BR|-43.45|-22.76|843|W|,Nova Vida|luanda|AO|13.22|-8.91|464|W|,Novato|CA|US|-122.57|38.11|55|N|,Novi|MI|US|-83.48|42.48|58|N|,Novi Sad|vojvodina|RS|19.84|45.25|215|W|nowy sad;neusatz,Novo Hamburgo|rio grande do sul|BR|-51.13|-29.68|253|W|,Novocherkassk|rostov|RU|40.09|47.42|166|W|novotcherkassk;novotjerkassk;novotsjerkassk;novotserkassk;novocerkassk;nowoczerkask;nowotscherkassk,Novokuznetsk|kuzbass|RU|87.14|53.76|539|W|novokoeznetsk;novokouznetsk;novokusnetsk;novokuzneck;novokuznetk;nowokusnezk;nowokuznieck,Novomoskovsk|tula oblast|RU|38.29|54.01|130|W|nowomoskowsk,Novorossiysk|krasnodar krai|RU|37.76|44.73|241|W|novorossijsk;novorossiejsk;noworossijsk;noworosyjsk,Novosibirsk|novosibirsk oblast|RU|82.93|55.02|1612|W|novossibirsk;nowosibirsk;nowosybirsk;novo nikolaevsk;novonikolayevsk,Novozavodskyi|chernihiv oblast|UA|31.26|51.49|179|W|novozavodskyi raion;novozavodskyi rayon,Novyye Kuz'minki|moscow|RU|37.75|55.7|143|W|,Nowrangapur|odisha|IN|82.55|19.23|1220|W|,Nueva Italia de Ruiz|MX16|MX|-102.09|19.02|32|N|,Nueva Rosita|MX07|MX|-101.22|27.94|38|N|,Nuevo Casas Grandes|MX06|MX|-107.91|30.42|55|N|,Nuevo Laredo|MX28|MX|-99.52|27.48|416|NW|novo laredo,Nuevo Mexico|MX14|MX|-103.44|20.76|28|N|,Nukus|karakalpakstan|UZ|59.61|42.46|332|W|noukous,Numazu|shizuoka|JP|138.87|35.1|189|W|,Nunoa|santiago metropolitan|CL|-70.58|-33.45|255|W|,Nuremberg|bavaria|DE|11.08|49.45|515|W|nurnberg;neurenberg;norimberga;norimberk;norymberga;nuremberga,Nusantara|east kalimantan|ID|116.71|-0.97|147|W|ikn nusantara;ibu kota negara nusantara;nusantara capital city,Nutana Sector|SK|CA|-106.64|52.1|72|N|,Nutley|NJ|US|-74.16|40.82|27|N|,Nyala|southern darfur|SD|24.88|12.05|565|W|niala;nijala,Nyingchi|tibet|CN|94.36|29.65|200|W|,Nyzhnodniprovsk|dnipropetrovsk|UA|35.12|48.48|160|W|nyzhnodniprovsk vuzol,Nzerekore|nzerekore region|GN|-8.82|7.76|226|W|,O'Fallon|MO|US|-90.7|38.81|85|N|,O'Fallon|IL|US|-89.91|38.59|29|N|,Oak Creek|WI|US|-87.86|42.89|35|N|,Oak Forest|IL|US|-87.74|41.6|28|N|,Oak Hill|VA|US|-77.4|38.93|33|N|,Oak Lawn|IL|US|-87.76|41.71|56|N|oaklawn,Oak Park|IL|US|-87.78|41.89|52|N|,Oak Park|MI|US|-83.18|42.46|29|N|,Oak Ridge|TN|US|-84.27|36.01|29|N|,Oakdale|MN|US|-92.96|44.96|28|N|,Oakland|CA|US|-122.27|37.8|419|NW|,Oakland Park|FL|US|-80.13|26.17|44|N|,Oakley|CA|US|-121.71|38|39|N|,Oakton|VA|US|-77.3|38.88|34|N|,Oakville|ON|CA|-79.68|43.45|213|NW|,Oakville|MO|US|-90.3|38.47|36|N|,Oaxaca|MX20|MX|-96.73|17.06|255|NW|oaxaca city;oaxaca by;oaxaca de juarez,Obalende|lagos|NG|3.42|6.45|342|W|,Oberhausen|north rhine westphalia|DE|6.86|51.48|219|W|,Obihiro|hokkaido|JP|143.2|42.92|166|W|,Obolon|kyiv city|UA|30.51|50.51|239|W|obolonskyi raion;obolonskyi rayon;obolonskyy raion;obolonskyy rayon,Obuase|ashanti|GH|-1.67|6.2|179|W|obuasi,Ocala|FL|US|-82.14|29.19|58|N|,Oceanside|CA|US|-117.38|33.2|175|NW|,Oceanside|NY|US|-73.64|40.64|32|N|,Ocoee|FL|US|-81.54|28.57|43|N|,Ocosingo|MX05|MX|-92.09|16.91|41|N|,Ocotlan|MX14|MX|-102.77|20.35|83|N|,Ocoyoacac|MX15|MX|-99.46|19.27|26|N|,Ocozocoautla de Espinosa|MX05|MX|-93.37|16.76|39|N|la ventosa,Ocumare del Tuy|miranda|VE|-66.78|10.12|166|W|ocumare,Odawara|kanagawa|JP|139.16|35.26|188|W|,Odense|south denmark|DK|10.39|55.4|180|W|ottensee,Odenton|MD|US|-76.7|39.08|37|N|,Odesa|odesa|UA|30.74|46.49|1010|W|odessa;khadjibey,Odessa|TX|US|-102.37|31.85|114|N|,Odintsovo|moscow oblast|RU|37.28|55.67|137|W|odincovo;odincowo;odinzowo;odintovo,OErebro|orebro|SE|15.21|59.27|155|W|orebro,Ogaki|gifu|JP|136.62|35.35|161|W|,Ogbomoso|oyo state|NG|4.24|8.13|433|W|,Ogden|UT|US|-111.97|41.22|85|N|,Oildale|CA|US|-119.02|35.42|32|N|,Oita|oita|JP|131.6|33.23|477|W|oita shi;oitashi,Ojinaga|MX06|MX|-104.54|29.57|28|N|,Ojo de Agua|MX15|MX|-99.01|19.68|386|NW|,Okanagan Mission|BC|CA|-119.48|49.82|38|N|,Okara|punjab|PK|73.45|30.81|533|W|,Okayama|okayama|JP|133.93|34.65|724|W|okajama,Okazaki|aichi|JP|137.17|34.95|384|W|,Okene|kogi state|NG|6.24|7.55|479|W|,Okinawa|okinawa|JP|127.8|26.34|142|W|,Oklahoma City|OK|US|-97.52|35.47|681|NW|kota oklahoma;okla city,Okotoks|AB|CA|-113.98|50.73|30|N|,Okrika|rivers state|NG|7.08|4.74|133|W|,Olathe|KS|US|-94.82|38.88|134|NW|,Oldenburg|lower saxony|DE|8.21|53.14|159|W|oldemburgo;oldenbourg;oldenburgo,Oldham|england|GB|-2.12|53.54|237|W|,Olinda|pernambuco|BR|-34.86|-8.01|364|W|,Olive Branch|MS|US|-89.83|34.96|36|N|,Olmaliq|tashkent region|UZ|69.6|40.84|133|W|almalyk;almalik,Olney|PA|US|-75.12|40.04|39|N|mccartersville,Olney|MD|US|-77.07|39.15|33|N|,Olongapo|central luzon|PH|120.28|14.83|221|W|kota olongapo;olongapo city,Olsztyn|warmia masuria|PL|20.49|53.78|169|W|olstyn;allenstein,Olympia|WA|US|-122.9|47.04|55|N|,Omaha|NE|US|-95.94|41.26|486|NW|,Omdurman|khartoum|SD|32.48|15.64|1849|W|omdourman;umm durman,Ome|tokyo|JP|139.24|35.78|133|W|oume,Omsk|omsk oblast|RU|73.37|54.99|1172|W|omsc,Omuta|fukuoka|JP|130.45|33.03|131|W|,Ondo|ondo state|NG|4.84|7.09|375|W|,Ongata Rongai|kajiado county|KE|36.76|-1.4|172|W|,Ongole|andhra pradesh|IN|80.04|15.5|208|W|,Onitsha|anambra|NG|6.79|6.15|1553|W|,Onomichi|hiroshima|JP|133.2|34.42|131|W|onomici,Ontario|CA|US|-117.65|34.06|171|NW|,Ooty|tamil nadu|IN|76.7|11.41|233|W|ootacamund;udagamandalam;udhagamandalam;utakamand,Opelika|AL|US|-85.38|32.65|29|N|,Opportunity|WA|US|-117.24|47.65|25|N|,Oradea|bihor county|RO|21.92|47.05|183|W|grosswardein;gran varadino;oradea mare;oradia;velky varadin,Orai|uttar pradesh|IN|79.45|25.99|158|W|,Oral|west kazakhstan|KZ|51.43|51.25|330|W|oural;uralsk;ural sk,Oran|oran|DZ|-0.64|35.7|803|W|orano;ora,Orange|CA|US|-117.85|33.79|140|NW|,Orange|NJ|US|-74.23|40.77|34|N|,Orangevale|CA|US|-121.23|38.68|33|N|,Orangeville|ON|CA|-80.1|43.92|30|N|,Orcutt|CA|US|-120.44|34.87|28|N|,Ordos|inner mongolia|CN|109.78|39.61|1940|W|,Ordu|ordu|TR|37.89|40.98|229|W|cotyora,Oregon City|OR|US|-122.61|45.36|35|N|,Orekhovo-Borisovo|moscow|RU|37.73|55.61|144|W|,Orel|oryol oblast|RU|36.08|52.97|303|W|orjol;oryol;orzel,Orem|UT|US|-111.69|40.3|94|N|,Orenburg|orenburg oblast|RU|55.1|51.77|564|W|orenbourg;oremburgo,Orillia|ON|CA|-79.42|44.61|31|N|,Orizaba|MX30|MX|-97.1|18.85|123|N|,Orland Park|IL|US|-87.85|41.63|58|N|,Orlando|FL|US|-81.38|28.54|334|NW|,Orleans|ON|CA|-75.5|45.46|125|N|,Ormoc|eastern visayas|PH|124.61|11.01|238|W|kota ormoc;ormoc city,Ormond Beach|FL|US|-81.06|29.29|40|N|,Oro Valley|AZ|US|-110.97|32.39|45|N|,Orsk|orenburg oblast|RU|58.49|51.23|246|W|,Orumiyeh|west azerbaijan|IR|45.08|37.55|577|W|ourmia;urmia;urmiye,Oruro|oruro|BO|-67.09|-17.97|208|W|,Osaka|osaka|JP|135.5|34.69|2753|W|osaka shi;osaacke,Osan|gyeonggi do|KR|127.07|37.15|238|W|,Osasco|sao paulo|BR|-46.79|-23.53|728|W|,Osh|osh region|KG|72.8|40.53|322|W|och;osch;osj;osz,Oshawa|ON|CA|-78.85|43.9|175|NW|,Oshkosh|WI|US|-88.54|44.02|66|N|,Oshodi|lagos|NG|3.34|6.56|170|W|,Oslo|oslo|NO|10.75|59.91|1082|W|,Osmaniye|osmaniye|TR|36.25|37.07|202|W|,Osnabrueck|lower saxony|DE|8.05|52.27|166|W|osnabruck,Osogbo|osun state|NG|4.56|7.77|645|W|oshogbo,Osorno|los lagos region|CL|-73.13|-40.57|135|W|,Ossining|NY|US|-73.86|41.16|25|N|,Ostrava|moravian silesian region|CZ|18.28|49.83|279|W|mahrisch ostrau;ostrawa,Oswego|IL|US|-88.35|41.68|33|N|,Ota|tokyo|JP|139.72|35.56|748|W|ota ku,Ota|ogun state|NG|3.23|6.69|251|W|,Ota|gunma|JP|139.37|36.3|224|W|,Otsu|shiga|JP|135.87|35|345|W|ocu,Ottawa|ON|CA|-75.7|45.41|1017|NW|otava;aa,Ottawa South|ON|CA|-75.69|45.39|125|N|,Ouagadougou|centre|BF|-1.53|12.37|2415|W|uagadugu;wagadugu,Ouargla|ouargla|DZ|5.33|31.95|169|W|uargla;warkala,Oujda|oriental|MA|-1.91|34.68|539|W|ucda;ujda;wadzda,Oulu|north ostrobothnia|FI|25.47|65.01|216|W|uleaborg,Overbrook|PA|US|-75.24|39.99|32|N|,Overland Park|KS|US|-94.67|38.98|186|NW|,Oviedo|asturias|ES|-5.84|43.36|220|W|,Oviedo|FL|US|-81.21|28.67|38|N|,Owasso|OK|US|-95.85|36.27|34|N|,Owatonna|MN|US|-93.23|44.08|25|N|,Owensboro|KY|US|-87.11|37.77|59|N|,Owerri|imo state|NG|7.03|5.48|545|W|,Owings Mills|MD|US|-76.78|39.42|30|N|,Owo|ondo state|NG|5.59|7.2|276|W|,Oxford|england|GB|-1.26|51.75|162|W|oksford;oxonia;oxnaford,Oxford Circle|PA|US|-75.07|40.05|48|N|,Oxnard|CA|US|-119.18|34.2|207|NW|,Oxon Hill-Glassmanor|MD|US|-76.97|38.8|35|N|,Oyama|tochigi|JP|139.8|36.3|167|W|,Oyo|oyo state|NG|3.93|7.85|736|W|oio,Ozone Park|NY|US|-73.84|40.68|53|N|,Paarl|western cape|ZA|18.98|-33.73|236|W|,Pabellon de Arteaga|MX01|MX|-102.28|22.15|28|N|,Pabna|rajshahi division|BD|89.24|24.01|186|W|,Pachuca de Soto|MX13|MX|-98.73|20.12|256|NW|pachuca,Pacifica|CA|US|-122.49|37.61|39|N|,Paco do Lumiar|maranhao|BR|-44.11|-2.53|155|W|,Padalarang|west java|ID|107.47|-6.84|193|W|,Padang|west sumatra|ID|100.35|-0.95|942|W|kota padang,Padangsidempuan|north sumatra|ID|99.27|1.38|243|W|,Paderborn|north rhine westphalia|DE|8.75|51.72|142|W|,Padua|veneto|IT|11.89|45.41|203|W|padova;padoa;padoue;padwa,Paech'on-up|south hwanghae|KP|126.3|37.99|159|W|,Pagadian|zamboanga peninsula|PH|123.44|7.83|206|W|,Pahrump|NV|US|-115.98|36.21|36|N|,Pak Kret|nonthaburi|TH|100.5|13.91|190|W|,Pakdasht|tehran|IR|51.68|35.48|236|W|,Palakkad|kerala|IN|76.65|10.77|132|W|palakkat,Palangkaraya|central kalimantan|ID|113.92|-2.21|318|W|kota palangka raya;palangka raya,Palanpur|gujarat|IN|72.44|24.17|141|W|,Palatine|IL|US|-88.03|42.11|69|N|,Palembang|south sumatra|ID|104.75|-2.92|1801|W|kota palembang;palimbao,Palenque|MX05|MX|-91.98|17.51|42|N|ruinas de palenque,Palermo|sicily|IT|13.36|38.12|648|W|palerme;palermu,Palhoca|santa catarina|BR|-48.67|-27.65|222|W|,Pali|rajasthan|IN|73.32|25.77|230|W|,Pallabi|dhaka division|BD|90.37|23.82|597|W|,Pallavaram|tamil nadu|IN|80.15|12.97|233|W|,Palm Bay|FL|US|-80.59|28.03|119|N|,Palm Beach Gardens|FL|US|-80.14|26.82|52|N|,Palm Coast|FL|US|-81.21|29.58|82|N|,Palm Desert|CA|US|-116.38|33.72|51|N|,Palm Harbor|FL|US|-82.76|28.08|57|N|,Palm Springs|CA|US|-116.55|33.83|47|N|,Palma|balearic islands|ES|2.65|39.57|438|W|palma de mallorca;palma de maiorca;palma di maiorca,Palmas|tocantins|BR|-48.33|-10.17|306|W|,Palmdale|CA|US|-118.12|34.58|158|NW|,Palmira|valle del cauca department|CO|-76.3|3.54|312|W|,Palo Alto|CA|US|-122.14|37.44|66|N|,Palopo|south sulawesi|ID|120.2|-2.99|184|W|,Paltan|dhaka division|BD|90.41|23.74|184|W|,Palu|central sulawesi|ID|119.87|-0.91|389|W|kabupaten poso;kota palu,Palwal|haryana|IN|77.33|28.14|131|W|,Pamplona|navarre|ES|-1.64|42.82|208|W|pampeluna;pampelune,Pamulang|west java|ID|106.74|-6.34|174|W|,Panabo|davao region|PH|125.68|7.31|211|W|panabo city,Panalanoy|eastern visayas|PH|125.01|11.25|189|W|,Panama City|panama|PA|-79.52|8.99|408|W|panama;ciudad de panama;panama by;panama stadt;panama stad,Panama City|FL|US|-85.66|30.16|38|N|,Panchkula|haryana|IN|76.85|30.69|211|W|panchkula urban estate,Pandi|central luzon|PH|120.96|14.87|162|W|,Pangkalpinang|bangka belitung islands|ID|106.11|-2.13|226|W|,Panguila|bengo|AO|13.45|-8.69|158|W|,Panihati|west bengal|IN|88.37|22.69|378|W|,Panipat|haryana|IN|76.97|29.39|295|W|,Panjin|liaoning|CN|122.07|41.12|1166|W|,Panorama Hills|AB|CA|-114.08|51.15|25|N|,Panshan|liaoning|CN|122.05|41.19|625|W|,Panuco|MX30|MX|-98.18|22.05|40|N|,Panvel|maharashtra|IN|73.11|18.99|195|W|,Panzhihua|sichuan|CN|101.71|26.59|787|W|,Papantla de Olarte|MX30|MX|-97.32|20.45|53|N|,Par Naogaon|rajshahi division|BD|88.95|24.8|192|W|naogaon,Paracho de Verduzco|MX16|MX|-102.05|19.65|37|N|,Paradise|NV|US|-115.15|36.1|223|NW|,Paradise|CA|US|-121.62|39.76|26|N|,Paragould|AR|US|-90.5|36.06|27|N|,Paraiso|MX27|MX|-93.21|18.4|86|N|,Parakou|borgou|BJ|2.63|9.34|255|W|,Paramaribo|paramaribo district|SR|-55.17|5.87|223|W|,Paramount|CA|US|-118.16|33.89|55|N|,Paramus|NJ|US|-74.08|40.94|26|N|,Parana|entre rios|AR|-60.53|-31.73|247|W|,Paranagua|parana|BR|-48.53|-25.52|150|W|,Paranaque City|national capital region|PH|121.02|14.48|703|W|,Parauapebas|para|BR|-49.9|-6.07|305|W|,Parbhani|maharashtra|IN|76.77|19.27|307|W|,Parc-Extension|QC|CA|-73.63|45.53|33|N|,Parelheiros|sao paulo|BR|-46.73|-23.83|153|W|,Parepare|south sulawesi|ID|119.63|-4.01|160|W|,Paris|ile de france|FR|2.35|48.85|2138|W|parijs;pa ri;parigi;pariisi;paryz;pariz,Paris 11 Popincourt|ile de france|FR|2.38|48.86|138|W|,Paris 11e Arrondissement|ile de france|FR|2.38|48.86|144|W|,Paris 12 Reuilly|ile de france|FR|2.39|48.84|138|W|,Paris 12e Arrondissement|ile de france|FR|2.44|48.84|140|W|,Paris 13 Gobelins|ile de france|FR|2.36|48.83|181|W|,Paris 13e Arrondissement|ile de france|FR|2.36|48.83|177|W|,Paris 14 Observatoire|ile de france|FR|2.33|48.83|136|W|,Paris 15 Vaugirard|ile de france|FR|2.3|48.84|229|W|,Paris 16 Passy|ile de france|FR|2.28|48.86|159|W|,Paris 17 Batignolles-Monceau|ile de france|FR|2.32|48.88|159|W|,Paris 18 Buttes-Montmartre|ile de france|FR|2.34|48.89|183|W|,Paris 19 Buttes-Chaumont|ile de france|FR|2.38|48.88|178|W|,Paris 20 Menilmontant|ile de france|FR|2.4|48.86|185|W|,Park Ridge|IL|US|-87.84|42.01|37|N|,Park Slope|NY|US|-73.99|40.67|65|N|,Parkchester|NY|US|-73.86|40.84|65|N|,Parker|CO|US|-104.76|39.52|49|N|,Parkersburg|WV|US|-81.56|39.27|30|N|,Parkland|WA|US|-122.43|47.16|35|N|,Parkland|FL|US|-80.24|26.31|30|N|,Parkville|MD|US|-76.54|39.38|30|N|,Parkwoods-Donalda|ON|CA|-79.33|43.76|34|N|,Parma|emilia romagna|IT|10.33|44.8|198|W|parme,Parma|OH|US|-81.72|41.4|79|N|,Parnaiba|piaui|BR|-41.78|-2.9|170|W|,Parnamirim|rio grande do norte|BR|-35.26|-5.92|271|W|,Parras de la Fuente|MX07|MX|-102.18|25.44|33|N|,Parsippany|NJ|US|-74.43|40.86|51|N|,Pasadena|TX|US|-95.21|29.69|153|NW|,Pasadena|CA|US|-118.14|34.15|142|NW|,Pasarkemis|west java|ID|106.53|-6.17|263|W|,Pasay|national capital region|PH|121|14.54|416|W|,Pasco|WA|US|-119.1|46.24|69|N|,Pasig City|national capital region|PH|121.06|14.59|853|W|pasig,Pasir Gudang|johor|MY|103.91|1.46|534|W|,Pasir Mas|kelantan|MY|102.14|6.05|230|W|,Pasir Puteh|kelantan|MY|102.4|5.83|137|W|,Paso Robles|CA|US|-120.69|35.63|27|N|el paso de robles,Passaic|NJ|US|-74.13|40.86|71|N|,Passo Fundo|rio grande do sul|BR|-52.41|-28.26|214|W|,Pasto|narino|CO|-77.28|1.21|392|W|,Pasuruan|east java|ID|112.91|-7.65|213|W|kota pasuruan;pasoeroean,Patan|bagmati province|NP|85.31|27.68|299|W|lalitpur,Patan|gujarat|IN|72.13|23.85|133|W|,Paterson|NJ|US|-74.17|40.92|147|NW|,Pathankot|punjab|IN|75.65|32.27|174|W|,Pathein|ayeyarwady|MM|94.73|16.78|237|W|basejn,Patiala|punjab|IN|76.39|30.34|446|W|,Patna|bihar|IN|85.14|25.59|1684|W|,Patos de Minas|minas gerais|BR|-46.52|-18.58|159|W|,Patra|west greece|GR|21.74|38.25|168|W|patrai;patras;patrasso,Patzcuaro|MX16|MX|-101.61|19.51|55|N|,Paulista|pernambuco|BR|-34.87|-7.94|342|W|,Pavlodar|pavlodar region|KZ|76.97|52.28|329|W|pawlodar,Pawtucket|RI|US|-71.38|41.88|71|N|,Paya Terubong|penang|MY|100.28|5.37|226|W|,Payakumbuh|west sumatra|ID|100.63|-0.22|139|W|kota payakumbuh,Peabody|MA|US|-70.93|42.53|52|N|,Peachtree City|GA|US|-84.6|33.4|35|N|,Peachtree Corners|GA|US|-84.22|33.97|40|N|,Pearl|MS|US|-90.13|32.27|26|N|,Pearl City|HI|US|-157.98|21.4|47|N|,Pearland|TX|US|-95.29|29.56|108|N|,Pecs|baranya|HU|18.23|46.08|145|W|cinquechiese;funfkirchen;pecz,Pedreira|sao paulo|BR|-46.65|-23.71|163|W|,Peicheng|jiangsu|CN|116.92|34.74|195|W|,Pekalongan|central java|ID|109.68|-6.89|324|W|kota pekalongan,Pekanbaru|riau|ID|101.44|0.52|1167|W|kota pekanbaru;pakanbaru,Pekin|IL|US|-89.64|40.57|33|N|,Pelentong|johor|MY|103.82|1.52|583|W|,Pelotas|rio grande do sul|BR|-52.34|-31.77|336|W|,Pemalang|central java|ID|109.38|-6.89|184|W|,Pematangsiantar|north sumatra|ID|99.07|2.96|279|W|,Pemba|cabo delgado province|MZ|40.52|-12.97|232|W|,Pembroke Pines|FL|US|-80.22|26|166|NW|,Penalolen|santiago metropolitan|CL|-70.53|-33.47|241|W|,Pengpu|shanghai|CN|121.44|31.29|152|W|,Pengze|jiangxi|CN|116.55|29.9|350|W|,Penjamo|MX11|MX|-101.72|20.43|40|N|,Penn Hills|PA|US|-79.84|40.5|44|N|,Pennsauken|NJ|US|-75.06|39.96|36|N|,Pennsport|PA|US|-75.15|39.93|26|N|,Pensacola|FL|US|-87.22|30.42|53|N|pensacola i florida,Penticton|BC|CA|-119.59|49.48|33|N|,Penza|penza oblast|RU|45.01|53.2|523|W|pensa,Peoria|AZ|US|-112.24|33.58|190|NW|,Peoria|IL|US|-89.59|40.69|115|N|,Perbaungan|north sumatra|ID|98.96|3.57|157|W|,Percut|north sumatra|ID|98.86|3.63|311|W|,Pereira|risaralda department|CO|-75.69|4.81|467|W|,Peristeri|attica|GR|23.69|38.02|139|W|peristerion,Perm|perm krai|RU|56.25|58.01|982|W|molotov,Perote|MX30|MX|-97.24|19.56|37|N|,Perris|CA|US|-117.23|33.78|74|N|,Perry Hall|MD|US|-76.46|39.41|28|N|,Perth|western australia|AU|115.86|-31.95|2384|W|,Perth Amboy|NJ|US|-74.27|40.51|52|N|,Pervouralsk|sverdlovsk oblast|RU|59.94|56.91|133|W|perwouralsk,Peshawar|khyber pakhtunkhwa|PK|71.58|34.01|4758|W|peschawar;pesjawar;peszawar;pexauar;pesaver;pesavar,Pest|budapest|HU|19.08|47.5|1001|W|pesta;peste;peszt,Petah Tiqva|central district|IL|34.89|32.09|253|W|petah tikva;mulebbis;petach tikva;petach tikwa;petah tikwah;petah tiqwa;petaj tikva;pethah tiqva,Petaling Jaya|selangor|MY|101.61|3.11|807|W|,Petaluma|CA|US|-122.64|38.23|60|N|,Petapa|guatemala|GT|-90.56|14.5|135|W|,Petare|miranda|VE|-66.81|10.48|364|W|,Peterborough|england|GB|-0.25|52.57|163|W|,Peterborough|ON|CA|-78.32|44.3|85|N|,Petersburg|VA|US|-77.4|37.23|32|N|,Petionville|ouest|HT|-72.29|18.51|376|W|,Petrogradka|st petersburg|RU|30.31|59.97|130|W|,Petrolina|pernambuco|BR|-40.5|-9.4|418|W|,Petropavl|north kazakhstan|KZ|69.15|54.87|200|W|kizilyar;petropawl;pietropawlowsk,Petropavlovsk-Kamchatsky|kamchatka|RU|158.63|53.06|181|W|petropavlovsk kamchatskiy;petropavlovsk kamciatki;petropavlovsk kamchatski;petropavlovsk kamtchatski;petropavlovsk kamtjatskij;petropavlovsk kamtsjatski;petropavlovsk kamtsatski;petropavlovsk kamcatski;petropavlovsk kamcatskij;pietropawlowsk kamczacki,Petropolis|rio de janeiro|BR|-43.18|-22.5|294|W|,Petrozavodsk|karelia|RU|34.35|61.78|279|W|petroskoi;petrosavodsk;petrosawodsk;petroskoj;petrozawodzk;pietrozawodsk;aanislinna,Pflugerville|TX|US|-97.62|30.44|57|N|,Phan Rang-Thap Cham|khanh hoa|VN|108.99|11.56|207|W|phan rang,Phan Thiet|lam dong|VN|108.1|10.93|228|W|,Pharr|TX|US|-98.18|26.19|76|N|,Phenix City|AL|US|-85|32.47|37|N|,Philadelphia|PA|US|-75.16|39.95|1573|NW|filadelfia;filadelfie;philadelphie,Phnom Penh|phnom penh|KH|104.92|11.56|1573|W|nom pen;phnompenh;phon phen;pnom pene;pnom penh,Pho Yen|thai nguyen|VN|105.89|21.42|231|W|,Phoenix|AZ|US|-112.07|33.45|1650|NW|,Phra Pradaeng|samut prakan|TH|100.53|13.66|196|W|amphoe phra pradaeng,Phu Ly|ninh binh|VN|105.91|20.55|136|W|,Phu My|ho chi minh city hcmc|VN|107.07|10.63|287|W|,Phu Quoc|an giang|VN|103.97|10.22|294|W|koh trol,Phuc Yen|phu tho|VN|105.7|21.24|180|W|,Phusro|jharkhand|IN|86.01|23.76|185|W|,Pickering|ON|CA|-79.13|43.9|91|N|,Pico Rivera|CA|US|-118.1|33.98|64|N|,Piedecuesta|santander department|CO|-73.05|6.99|163|W|,Piedras Negras|MX07|MX|-100.52|28.7|150|NW|piedrasnegras,Pierrefonds|QC|CA|-73.89|45.46|59|N|,Pierrefonds-Roxboro|QC|CA|-73.84|45.5|73|N|,Pietermaritzburg|kwazulu natal|ZA|30.39|-29.62|839|W|,Pijijiapan|MX05|MX|-93.21|15.69|50|N|,Pikesville|MD|US|-76.72|39.37|30|N|,Pikine|dakar|SN|-17.39|14.76|1170|W|,Pilibhit|uttar pradesh|IN|79.8|28.63|131|W|,Pilsen|plzen region|CZ|13.38|49.75|168|W|plzen;pilzno,Pimpri|maharashtra|IN|73.81|18.62|1284|W|,Pimpri-Chinchwad|maharashtra|IN|73.8|18.62|1727|W|pimpri cincvad,Pinar del Rio|pinar del rio|CU|-83.7|22.42|186|W|,Pindamonhangaba|sao paulo|BR|-45.46|-22.92|172|W|,Pindi Bhattian|punjab|PK|73.27|31.9|493|W|,Pine Bluff|AR|US|-92|34.23|44|N|,Pine Hills|FL|US|-81.45|28.56|60|N|,Pinellas Park|FL|US|-82.7|27.84|51|N|,Pinetown|kwazulu natal|ZA|30.89|-29.82|144|W|,Pingdingshan|henan|CN|113.32|33.73|979|W|pching ting san,Pingdu|shandong|CN|119.95|36.78|542|W|,Pingliang|gansu|CN|106.69|35.54|504|W|binh luong;pching liang,Pingwu County|sichuan|CN|104.53|32.41|180|W|,Pingxiang|jiangxi|CN|113.85|27.62|893|W|binh huong;pching siang,Pinotepa Nacional|MX20|MX|-98.05|16.34|29|N|pinotepa,Piracicaba|sao paulo|BR|-47.65|-22.73|440|W|,Piraeus|attica|GR|23.65|37.94|163|W|el pireo;il pireo;le piree;peiraias;peiraiefs;pire;pireo;pireu;pireus;piraus,Piranshahr|west azerbaijan|IR|45.14|36.7|168|W|khaneh;piranschahr;piranszahr;piransehr,Pirituba|sao paulo|BR|-46.73|-23.49|179|W|,Piscataway|NJ|US|-74.4|40.5|56|N|,Pitalito|huila department|CO|-76.05|1.85|135|W|,Pitesti|arges|RO|24.87|44.85|141|W|piteszt;pitest;pitesk,Pittsburg|CA|US|-121.88|38.03|69|N|,Pittsburgh|PA|US|-80|40.44|304|NW|pitsburgo,Pittsfield|MA|US|-73.25|42.45|43|N|,Piura|piura|PE|-80.66|-5.18|630|W|,Pizhou|jiangsu|CN|117.95|34.31|343|W|,Placentia|CA|US|-117.87|33.87|52|N|,Plainfield|NJ|US|-74.41|40.63|51|N|,Plainfield|IL|US|-88.2|41.63|42|N|,Plainfield|IN|US|-86.4|39.7|30|N|,Plainview|NY|US|-73.47|40.78|26|N|,Planaltina|federal district|BR|-47.65|-15.62|189|W|,Plano|TX|US|-96.7|33.02|283|NW|,Plano Piloto|federal district|BR|-47.88|-15.79|198|W|,Plant City|FL|US|-82.11|28.02|37|N|,Plantation|FL|US|-80.23|26.13|92|N|,Playa del Carmen|MX23|MX|-87.08|20.63|149|NW|,Plaza de la Revolucion|havana|CU|-82.39|23.12|139|W|,Pleasant Grove|UT|US|-111.74|40.36|38|N|pleasant grv,Pleasant Hill|CA|US|-122.06|37.95|34|N|,Pleasanton|CA|US|-121.87|37.66|79|N|,Pleasure Ridge Park|KY|US|-85.86|38.15|25|N|,Ploiesti|prahova|RO|26.02|44.95|180|W|ploeszti,Plovdiv|plovdiv|BG|24.75|42.15|329|W|filibe;filippopoli;plowdiw,Plum|PA|US|-79.75|40.5|27|N|,Plumbon|west java|ID|108.47|-6.71|167|W|,Plymouth|england|GB|-4.14|50.37|260|W|,Plymouth|MN|US|-93.46|45.01|75|N|,Pocatello|ID|US|-112.45|42.87|54|N|,Pocos de Caldas|minas gerais|BR|-46.56|-21.79|172|W|,Podgorica|podgorica|ME|19.26|42.44|236|W|,Podolsk|moscow oblast|RU|37.55|55.42|179|W|,Pohang|gyeongsangbuk do|KR|129.36|36.03|492|W|,Poinciana|FL|US|-81.46|28.14|53|N|,Pointe-Claire|QC|CA|-73.82|45.45|30|N|,Pointe-Noire|pointe noire|CG|11.86|-4.78|1032|W|,Pokhara|gandaki pradesh|NP|83.97|28.27|600|W|,Polanco|MX09|MX|-99.2|19.43|50|N|col polanco;colonia polanco,Polokwane|limpopo|ZA|29.47|-23.9|272|W|pietersburg,Poltava|poltava|UA|34.55|49.59|279|W|poltawa;pultava;baltavar;ltava,Pomona|CA|US|-117.75|34.06|153|NW|,Pompano Beach|FL|US|-80.12|26.24|107|N|,Ponce|ponce|PR|-66.62|18.01|137|W|,Ponta Grossa|parana|BR|-50.16|-25.09|292|W|,Ponte Vedra Beach|FL|US|-81.39|30.24|35|N|,Pontiac|MI|US|-83.29|42.64|59|N|,Pontianak|west kalimantan|ID|109.33|-0.03|686|W|kota pontianak,Poole|england|GB|-1.98|50.71|151|W|,Popayan|cauca department|CO|-76.61|2.44|318|W|,Porbandar|gujarat|IN|69.61|21.64|152|W|,Porlamar|nueva esparta|VE|-63.87|10.96|216|W|,Port Arthur|TX|US|-93.94|29.89|55|N|,Port-au-Prince|ouest|HT|-72.34|18.54|1234|W|porto principe;puerto principe,Port Charlotte|FL|US|-82.09|26.98|54|N|,Port Chester|NY|US|-73.67|41|29|N|,Port Coquitlam|BC|CA|-122.77|49.27|58|N|,Port-de-Paix|nord ouest|HT|-72.83|19.94|306|W|porto da paz,Port-Gentil|ogooue maritime|GA|8.78|-0.72|164|W|mandji,Port Harcourt|rivers state|NG|7.01|4.78|2120|W|,Port Huron|MI|US|-82.42|42.97|29|N|,Port Louis|port louis|MU|57.5|-20.16|155|W|puerto louis,Port Moody|BC|CA|-122.82|49.28|27|N|,Port Moresby|national capital|PG|147.15|-9.48|283|W|puerto moresby,Port Orange|FL|US|-81|29.14|59|N|,Port Richmond|PA|US|-75.1|39.99|27|N|richmond,Port Said|port said|EG|32.3|31.27|780|W|bursaid;porto said;puerto said,Port Saint Lucie|FL|US|-80.35|27.29|164|NW|,Port Sudan|red sea|SD|37.22|19.62|489|W|bur sudan;port soudan;porto sudan;porto sudao;puerto sudan,Portage|MI|US|-85.58|42.2|48|N|,Portage|IN|US|-87.18|41.58|36|N|,Portage Park|IL|US|-87.77|41.96|64|N|,Porterville|CA|US|-119.02|36.07|56|N|,Porticos de San Antonio|MX02|MX|-117.03|32.44|34|N|,Portland|OR|US|-122.68|45.52|652|NW|,Portland|ME|US|-70.26|43.66|66|N|,Porto|porto|PT|-8.61|41.15|252|W|oporto,Porto Alegre|rio grande do sul|BR|-51.23|-30.03|1488|W|puerto alegre,Porto-Novo|oueme|BJ|2.6|6.5|264|W|,Porto Seguro|bahia|BR|-39.06|-16.45|182|W|,Porto Velho|rondonia|BR|-63.9|-8.76|548|W|,Portoviejo|manabi|EC|-80.45|-1.06|321|W|,Portsmouth|england|GB|-1.09|50.8|208|W|,Portsmouth|VA|US|-76.3|36.84|96|N|,Portsmouth Heights|VA|US|-76.37|36.82|99|N|,Posadas|misiones|AR|-55.92|-27.39|305|W|,Post Falls|ID|US|-116.95|47.72|30|N|,Potchefstroom|north west|ZA|27.1|-26.72|178|W|,Potomac|MD|US|-77.21|39.02|44|N|,Potosi|potosi department|BO|-65.75|-19.58|141|W|,Potsdam|brandenburg|DE|13.07|52.4|184|W|poczdam;postupim,Poughkeepsie|NY|US|-73.92|41.7|30|N|,Pouso Alegre|minas gerais|BR|-45.94|-22.23|162|W|,Poway|CA|US|-117.04|32.96|50|N|,Poza Rica de Hidalgo|MX30|MX|-97.46|20.53|185|NW|poza rica,Poznan|greater poland|PL|16.93|52.41|536|W|posen;posnania;possen,Praga Poludnie|mazovia|PL|21.09|52.24|179|W|,Prague|prague|CZ|14.42|50.09|1165|W|praag;prag;praga;praha,Praia|praia|CV|-23.51|14.93|137|W|cidade da praia;municipio da praia,Praia Grande|sao paulo|BR|-46.4|-24.01|367|W|,Prairieville|LA|US|-90.97|30.3|26|N|,Prato|tuscany|IT|11.1|43.88|195|W|,Prattville|AL|US|-86.46|32.46|35|N|,Pravyi Bereh|donetsk|UA|37.59|47.11|352|W|pravyy bereh,Prayagraj|uttar pradesh|IN|81.84|25.44|1073|W|allahabad,Prenzlauer Berg Bezirk|state of berlin|DE|13.42|52.54|148|W|prenzlauer berg,Prescott|AZ|US|-112.47|34.54|41|N|,Prescott Valley|AZ|US|-112.32|34.61|42|N|,Presidente Prudente|sao paulo|BR|-51.39|-22.13|234|W|,Preston|england|GB|-2.7|53.76|313|W|,Pretoria|gauteng|ZA|28.19|-25.74|2112|W|pretorie,Prince Albert|SK|CA|-105.77|53.2|35|N|,Prince Edward|ON|CA|-77.25|44|25|N|prince edward county,Prince George|BC|CA|-122.75|53.92|78|N|,Princeton|FL|US|-80.41|25.54|39|N|,Princeton|NJ|US|-74.66|40.35|29|N|stony brook,Prior Lake|MN|US|-93.42|44.71|25|N|,Probolinggo|east java|ID|113.22|-7.75|243|W|kota probolinggo,Proddatur|andhra pradesh|IN|78.55|14.75|177|W|,Progreso|MX31|MX|-89.66|21.28|37|N|progreso de castro,Prokop'yevsk|kuzbass|RU|86.72|53.92|219|W|prokopjevsk;prokopyevsk;prokopjewsk,Providence|RI|US|-71.41|41.82|190|NW|,Provo|UT|US|-111.66|40.23|115|N|,Pskov|pskov oblast|RU|28.33|57.82|210|W|pihkova;pleskau;pskow,Pu'er|yunnan|CN|100.97|22.79|296|W|,Pucallpa|ucayali|PE|-74.55|-8.38|326|W|,Puchong|selangor|MY|101.62|3|375|W|,Pudong|shanghai|CN|121.5|31.24|5681|W|,Puducherry|puducherry|IN|79.83|11.93|657|W|pondichery;pondicherry;territoire de pondichery;pondicherri,Puebla|MX21|MX|-98.21|19.05|1692|NW|puebla city;puebla de zaragoza;puebla de los angeles,Pueblo|CO|US|-104.61|38.25|109|N|,Pueblo West|CO|US|-104.72|38.35|29|N|,Puente Alto|santiago metropolitan|CL|-70.58|-33.61|568|W|,Puente de Vallecas|madrid|ES|-3.66|40.39|244|W|,Puerto Cabello|carabobo|VE|-68.01|10.47|174|W|,Puerto Cortez|cortes department|HN|-87.93|15.83|142|W|puerto cortes,Puerto Escondido|MX20|MX|-97.07|15.86|29|N|,Puerto La Cruz|anzoategui|VE|-64.63|10.21|370|W|puerto cruz;puerto de la cruz,Puerto Montt|los lagos region|CL|-72.94|-41.47|245|W|port montt,Puerto Penasco|MX26|MX|-113.54|31.32|62|N|,Puerto Plata|puerto plata|DO|-70.69|19.79|146|W|,Puerto Princesa|mimaropa|PH|118.74|9.74|222|W|kota puerto princesa;puerto princesa city,Puerto Vallarta|MX14|MX|-105.23|20.62|224|NW|pto vallarta,Pullman|WA|US|-117.18|46.73|32|N|,Punasa|madhya pradesh|IN|76.39|22.24|350|W|,Pune|maharashtra|IN|73.86|18.52|3124|W|poona,Punggol||SG|103.91|1.41|204|W|,Puning|guangdong|CN|116.17|23.31|874|W|,Punto Fijo|falcon|VE|-70.2|11.69|141|W|,Puqi|hubei|CN|113.88|29.72|132|W|,Puri|odisha|IN|85.82|19.8|200|W|,Purisima de Bustos|MX11|MX|-101.88|21.03|43|N|,Purnia|bihar|IN|87.47|25.78|282|W|,Puruandiro|MX16|MX|-101.52|20.09|30|N|,Purwakarta|west java|ID|107.44|-6.56|179|W|kota purwakarta,Purwodadi|central java|ID|110.92|-7.09|139|W|purwodadi grobogan,Purwokerto|central java|ID|109.23|-7.42|230|W|kota purwokerto,Puthia|rajshahi division|BD|88.83|24.37|159|W|,Putian|fujian|CN|119.01|25.44|1539|W|pchu tchien,Putuo|shanghai|CN|121.39|31.25|1239|W|,Puxi|shanghai|CN|121.47|31.24|6683|W|,Puyallup|WA|US|-122.29|47.19|39|N|,Puyang|zhejiang|CN|119.89|29.46|3590|W|pujiang,Puyang|henan|CN|115.04|35.76|655|W|pchu jang,Pyatigorsk|stavropol kray|RU|43.05|44.05|142|W|piatigorsk;pjatigorsk,Pyay|bago region|MM|95.22|18.82|135|W|prome;pyain,Pyeongtaek|gyeonggi do|KR|127.09|36.99|364|W|pyeongtaek si,Pyongyang|pyongyang|KP|125.75|39.03|3222|W|p yongyang;p yongyang si;pchjongjang;phenian;pionguiangue;pionyang;pjongjang;pyongyang si,Qa'em Shahr|mazandaran|IR|52.87|36.47|204|W|,Qadirpur Ran|punjab|PK|71.67|30.29|200|W|,Qalyub|qalyubia|EG|31.21|30.18|156|W|,Qarchak|tehran|IR|51.58|35.43|251|W|,Qarshi|qashqadaryo|UZ|65.79|38.86|278|W|karchi;karsji;karszy;karsi;qarsi,Qazvin|qazvin province|IR|50|36.27|333|W|kazvin;kazwin,Qeladize|sulaymaniyah|IQ|45.13|36.18|140|W|,Qianjiang|hubei|CN|112.89|30.42|179|W|,Qianjiang|chongqing|CN|108.77|29.53|143|W|,Qibao|shanghai|CN|121.36|31.15|283|W|,Qina|qena|EG|32.73|26.16|252|W|,Qingdao|shandong|CN|120.38|36.06|7172|W|cching tao;tsingtau,Qingpu|shanghai|CN|121.11|31.15|1271|W|,Qingyang|gansu|CN|107.64|35.71|2125|W|,Qingyuan|guangdong|CN|113.03|23.7|1738|W|cching juan,Qingzhou|shandong|CN|118.48|36.7|236|W|,Qinhuangdao|hebei|CN|119.59|39.94|759|W|cchin chuang tao,Qinzhou|guangxi|CN|108.65|21.98|1296|W|kham chau;cchin cou,Qionghai|hainan|CN|110.46|19.24|528|W|,Qiqihar|heilongjiang|CN|123.96|47.34|882|W|cicikar,Qitaihe|heilongjiang|CN|131|45.77|345|W|,Qo'qon|fergana|UZ|70.94|40.53|259|W|kokand,Qods|tehran|IR|51.11|35.72|309|W|,Qom|qom province|IR|50.88|34.64|900|W|kom;kum,Quan Ba|ho chi minh city hcmc|VN|106.69|10.77|220|W|,Quan Bon|ho chi minh city hcmc|VN|106.71|10.77|199|W|,Quan GJuc Thinh||VN|105.74|10.31|132|W|,Quan Muoi|ho chi minh city hcmc|VN|106.67|10.77|399|W|,Quan Muoi Mot|ho chi minh city hcmc|VN|106.64|10.76|332|W|,Quan Nam|ho chi minh city hcmc|VN|106.67|10.76|187|W|,Quan Sau|ho chi minh city hcmc|VN|106.65|10.75|271|W|,Quang Ngai|quang ngai|VN|108.79|15.12|278|W|,Quanzhou|fujian|CN|118.59|24.91|1469|W|cchuan cou;chinchew;chinchu;zayton,Quarto Oggiaro|lombardy|IT|9.14|45.51|182|W|,Quebec|QC|CA|-71.21|46.81|531|NW|kota quebec;quebec city,Queen Creek|AZ|US|-111.63|33.25|34|N|,Queens|NY|US|-73.84|40.68|2316|NW|borough of queens;comte de queens;condado de queens;queens county,Queens Village|NY|US|-73.74|40.73|51|N|,Queensbury|NY|US|-73.61|43.38|27|N|,Queimados|rio de janeiro|BR|-43.56|-22.72|149|W|,Quelimane|zambezia province|MZ|36.89|-17.88|349|W|,Quetta|balochistan|PK|67|30.18|1565|W|ketta;kveta;kweta,Quetzaltenango|quetzaltenango|GT|-91.52|14.84|180|W|,Quevedo|los rios|EC|-79.46|-1.03|213|W|,Quezon City|national capital region|PH|121.05|14.65|3084|W|ciudad quezon;quezon stadt,Qui Nhon|gia lai|VN|109.22|13.78|519|W|quy nhon,Quilicura|santiago metropolitan|CL|-70.71|-33.37|210|W|,Quillacollo|cochabamba|BO|-66.28|-17.39|172|W|,Quilmes|buenos aires|AR|-58.25|-34.72|262|W|,Quilpue|valparaiso|CL|-71.44|-33.05|130|W|,Quincy|MA|US|-71|42.25|93|N|,Quincy|IL|US|-91.41|39.94|40|N|,Quinte West|ON|CA|-77.57|44.18|43|N|,Quito|pichincha|EC|-78.52|-0.23|2781|W|san francisco de quito,Qujing|yunnan|CN|103.78|25.48|1408|W|khuc tinh;cchu ting,Quthbullapur|telangana|IN|78.46|17.5|225|W|,Quzhou|zhejiang|CN|118.87|28.96|902|W|cu chau;cchu cou,Ra's Bayrut|beirut|LB|35.48|33.9|1251|W|,Rabak|white nile|SD|32.74|13.18|135|W|,Rabat|rabat sale kenitra|MA|-6.83|34.01|1655|W|,Rach Gia|an giang|VN|105.08|10.01|459|W|,Racine|WI|US|-87.78|42.73|77|N|,Radnor|PA|US|-75.36|40.05|30|N|,Radom|mazovia|PL|21.15|51.4|226|W|,Raebareli|uttar pradesh|IN|81.23|26.23|186|W|rae bareli,Rafsanjan|kerman|IR|55.99|30.41|147|W|,Rahim Yar Khan|punjab|PK|70.3|28.42|517|W|rahimjar khan;rahimyar khan,Rahway|NJ|US|-74.28|40.61|29|N|,Raichur|karnataka|IN|77.36|16.21|234|W|,Raiganj|west bengal|IN|88.12|25.61|170|W|,Raigarh|chhattisgarh|IN|83.4|21.9|150|W|rajgarh,Raipur|chhattisgarh|IN|81.63|21.23|1027|W|,Raj-Nandgaon|chhattisgarh|IN|81.03|21.1|163|W|,Rajamahendravaram|andhra pradesh|IN|81.78|17.01|376|W|rajahmundry,Rajapalayam|tamil nadu|IN|77.55|9.45|130|W|,Rajkot|gujarat|IN|70.79|22.29|1390|W|radzkot,Rajpur Sonarpur|west bengal|IN|88.43|22.44|424|W|rajpur;sonarpur;sonarpur rajpur,Rajshahi|rajshahi division|BD|88.6|24.37|763|W|,Raleigh|NC|US|-78.64|35.77|482|NW|,Ramadi|anbar|IQ|43.31|33.42|223|W|al ramadi;al rumadi;ar ramadi,Ramagundam|telangana|IN|79.47|18.75|242|W|,Ramat Gan|tel aviv|IL|34.81|32.08|170|W|,Ramenki|moscow|RU|37.5|55.7|130|W|,Ramgundam|telangana|IN|79.45|18.8|452|W|,Ramiros|luanda|AO|13.05|-9.06|323|W|,Ramna Maidan|dhaka division|BD|90.4|23.73|143|W|,Ramos Arizpe|MX07|MX|-100.95|25.54|66|N|,Rampur|uttar pradesh|IN|79.03|28.81|296|W|,Ramsey|MN|US|-93.45|45.26|25|N|,Rancagua|o higgins region|CL|-70.74|-34.17|212|W|,Ranchi|jharkhand|IN|85.31|23.34|1120|W|ranci,Rancho Cordova|CA|US|-121.3|38.59|71|N|,Rancho Cucamonga|CA|US|-117.59|34.11|175|NW|,Rancho Palos Verdes|CA|US|-118.39|33.74|42|N|,Rancho Penasquitos|CA|US|-117.12|32.96|60|N|,Rancho Santa Margarita|CA|US|-117.6|33.64|49|N|,Randallstown|MD|US|-76.8|39.37|32|N|,Randburg|gauteng|ZA|28|-26.09|337|W|rendburg,Randfontein|gauteng|ZA|27.7|-26.18|133|W|,Randolph|MA|US|-71.04|42.16|32|N|,Randolph|NJ|US|-74.58|40.85|25|N|randolph township,Rangel|luanda|AO|13.26|-8.83|190|W|,Rangkasbitung|banten|ID|106.25|-6.36|137|W|,Rangpur|rangpur division|BD|89.25|25.75|1031|W|rangpur city;rongpur,Raniganj|telangana|IN|78.49|17.43|217|W|,Raniganj|west bengal|IN|87.13|23.62|131|W|,Ranipet|tamil nadu|IN|79.33|12.92|264|W|,Rapid City|SD|US|-103.23|44.08|73|N|,Ras Al Khaimah|ras al khaimah|AE|55.94|25.79|351|W|ras el khaimah;ra s al chaima;ras al khaimah city;ras al chajma;ras el kheima;resu l hayme,Rasapudipalem|andhra pradesh|IN|83.32|17.73|1728|W|,Rasht|gilan province|IR|49.59|37.28|594|W|rascht;rasjt;raszt;rast;rest,Ratlam|madhya pradesh|IN|75.04|23.33|264|W|,Raurkela Industrial Township|odisha|IN|84.86|22.2|216|W|,Rawalpindi|punjab|PK|73.05|33.6|3357|W|ravalpindi,Rawang|selangor|MY|101.58|3.32|199|W|,Rawson|san juan|AR|-68.54|-31.58|130|W|,Rayon KTZ|kharkiv|UA|36.37|49.94|200|W|khtz district;khtz settlement;novyy kharkiv;rayon khtz;new kharkiv;novyi kharkiv,Raytown|MO|US|-94.46|39.01|29|N|,Reading|england|GB|-0.97|51.46|318|W|,Reading|PA|US|-75.93|40.34|87|N|,Recife|pernambuco|BR|-34.88|-8.05|1653|W|,Red Deer|AB|CA|-113.8|52.27|100|N|,Redan|GA|US|-84.13|33.75|33|N|,Redding|CA|US|-122.39|40.59|91|N|,Redford|MI|US|-83.3|42.38|49|N|,Redlands|CA|US|-117.18|34.06|71|N|,Redmond|WA|US|-122.12|47.67|60|N|,Redmond|OR|US|-121.17|44.27|28|N|,Redondo Beach|CA|US|-118.39|33.85|68|N|,Redwood City|CA|US|-122.24|37.49|85|N|,Reedley|CA|US|-119.45|36.6|25|N|,Reforma|MX05|MX|-93.15|17.86|26|N|,Regensburg|bavaria|DE|12.1|49.02|151|W|ratisbona;ratisbonne;ratyzbona;regensburgo;rezno,Reggio Calabria|calabria|IT|15.66|38.11|182|W|reggio de calabre;reggio di calabria;regio de calabria,Reggio nell'Emilia|emilia romagna|IT|10.63|44.7|171|W|reggio emilia;reggio d emilie,Regina|SK|CA|-104.62|50.45|226|NW|,Rego Park|NY|US|-73.85|40.73|43|N|,Rehovot|central district|IL|34.81|31.89|149|W|rechovot;rechowot;rejovot,Reims|grand est|FR|4.03|49.27|196|W|remes,Reisterstown|MD|US|-76.83|39.47|25|N|,Renca|santiago metropolitan|CL|-70.71|-33.4|147|W|,Renfrew-Collingwood|BC|CA|-123.04|49.24|51|N|,Rengasdengklok|west java|ID|107.3|-6.16|201|W|,Rennes|brittany|FR|-1.67|48.11|227|W|,Reno|NV|US|-119.81|39.53|264|NW|,Renton|WA|US|-122.22|47.48|100|N|,Repentigny|QC|CA|-73.45|45.74|84|N|,Reseda|CA|US|-118.54|34.2|65|N|,Resende|rio de janeiro|BR|-44.45|-22.47|137|W|,Resistencia|chaco|AR|-58.99|-27.46|290|W|ciudad de resistencia,Reston|VA|US|-77.34|38.97|58|N|,Revere|MA|US|-71.01|42.41|53|N|,Rewa|madhya pradesh|IN|81.29|24.53|235|W|,Rewari|haryana|IN|76.62|28.2|143|W|,Rexburg|ID|US|-111.79|43.83|27|N|,Reynoldsburg|OH|US|-82.81|39.95|37|N|,Reynosa|MX28|MX|-98.28|26.08|589|NW|,Rhawnhurst|PA|US|-75.06|40.06|25|N|,Rialto|CA|US|-117.37|34.11|103|N|,Ribeirao das Neves|minas gerais|BR|-44.09|-19.77|346|W|,Ribeirao Preto|sao paulo|BR|-47.81|-21.18|698|W|ribeirao,Richards Bay|kwazulu natal|ZA|32.04|-28.78|252|W|,Richardson|TX|US|-96.73|32.95|110|N|,Richfield|MN|US|-93.28|44.88|36|N|,Richland|WA|US|-119.28|46.29|54|N|,Richmond|VA|US|-77.46|37.55|226|NW|,Richmond|BC|CA|-123.14|49.17|209|NW|,Richmond|CA|US|-122.35|37.94|109|N|,Richmond|IN|US|-84.89|39.83|35|N|,Richmond|KY|US|-84.29|37.75|33|N|,Richmond Hill|ON|CA|-79.44|43.87|202|NW|,Richmond Hill|NY|US|-73.83|40.7|98|N|,Richmond West|FL|US|-80.43|25.61|35|N|,Ridgecrest|CA|US|-117.67|35.62|28|N|,Ridgewood|NY|US|-73.91|40.7|69|N|,Ridgewood|NJ|US|-74.12|40.98|25|N|,Riga|riga|LV|24.11|56.95|742|W|riika;ryga,Rimini|emilia romagna|IT|12.57|44.06|148|W|,Rimouski|QC|CA|-68.52|48.45|42|N|,Rincon de Romos|MX01|MX|-102.32|22.23|27|N|,Rio Blanco|MX30|MX|-97.16|18.83|40|N|,Rio Branco|acre|BR|-67.81|-9.97|419|W|,Rio Claro|sao paulo|BR|-47.56|-22.41|201|W|,Rio Cuarto|cordoba|AR|-64.35|-33.13|157|W|ciudad de rio cuarto,Rio das Ostras|rio de janeiro|BR|-41.95|-22.53|168|W|,Rio de Janeiro|rio de janeiro|BR|-43.18|-22.91|6747|W|,Rio de Teapa|MX27|MX|-92.9|17.77|26|N|,Rio Grande|rio grande do sul|BR|-52.1|-32.03|198|W|,Rio Grande|MX32|MX|-103.03|23.83|32|N|,Rio Pequeno|sao paulo|BR|-46.76|-23.57|131|W|,Rio Rancho|NM|US|-106.66|35.23|87|N|,Rio Verde|goias|BR|-50.93|-17.8|241|W|,Riobamba|chimborazo province|EC|-78.66|-1.67|264|W|,Riohacha|la guajira department|CO|-72.91|11.54|188|W|rio de la hacha,Rioverde|MX24|MX|-99.99|21.93|53|N|,Rishon LeTsiyyon|central district|IL|34.79|31.97|258|W|rishon leziyyon;rischon lezion;rishon le zion;rishon lezion;rishon letsiyon;rishon lsiyon;rishon le siyon;rishon le ziyon;risjon letsion;riszon le cijjon,Riverside|CA|US|-117.4|33.95|317|NW|,Riverton|UT|US|-111.94|40.52|41|N|,Riverview|FL|US|-82.33|27.87|71|N|,Riviera Beach|FL|US|-80.06|26.78|34|N|,Riviere-des-Prairies-Pointe-aux-Trembles|QC|CA|-73.58|45.64|113|N|,Rivne|rivne oblast|UA|26.24|50.62|243|W|riwne;rowne,Riyadh|riyadh region|SA|46.72|24.69|4205|W|riad;riade;rijad;riyad,Rizhao|shandong|CN|119.53|35.41|661|W|z cao,Roanoke|VA|US|-79.94|37.27|100|N|,Robertsonpet|karnataka|IN|78.28|12.96|162|W|robertson pet,Rochester|NY|US|-77.62|43.15|209|NW|,Rochester|MN|US|-92.47|44.02|112|N|,Rochester|NH|US|-70.98|43.3|30|N|,Rochester Hills|MI|US|-83.15|42.66|73|N|,Rock Forest|QC|CA|-72|45.36|35|N|,Rock Hill|SC|US|-81.03|34.92|71|N|,Rock Island|IL|US|-90.58|41.51|38|N|,Rockford|IL|US|-89.09|42.27|148|NW|,Rocklin|CA|US|-121.24|38.79|61|N|,Rockville|MD|US|-77.15|39.08|66|N|hungerford s tavern;hungerfords;hungerfords tavern;montgomery court house;montgomery courthouse;owen s ordinary;williamsburg;williamsburgh,Rockwall|TX|US|-96.46|32.93|42|N|,Rocky Mount|NC|US|-77.79|35.94|55|N|,Rodriguez|calabarzon|PH|121.2|14.76|134|W|,Rogers|AR|US|-94.12|36.33|63|N|,Rogers Park|IL|US|-87.67|42.01|54|N|,Rohini|delhi|IN|77.07|28.74|860|W|,Rohnert Park|CA|US|-122.7|38.34|42|N|,Rohtak|haryana|IN|76.59|28.89|374|W|,Rome|lazio|IT|12.51|41.89|2318|W|rom;roma;rooma;rzym;rim,Rome|GA|US|-85.16|34.26|36|N|,Rome|NY|US|-75.46|43.21|32|N|roma,Romeoville|IL|US|-88.09|41.65|39|N|,Rondonopolis|mato grosso|BR|-54.64|-16.47|263|W|,Roodepoort|gauteng|ZA|27.87|-26.16|326|W|,Rosario|santa fe|AR|-60.64|-32.95|948|W|,Rosarito|MX02|MX|-117.05|32.36|100|N|rosario;rosarito beach baja,Rosedale|NY|US|-73.74|40.66|25|N|,Rosemead|CA|US|-118.07|34.08|54|N|,Rosemont-La Petite-Patrie|QC|CA|-73.61|45.54|146|NW|,Rosenberg|TX|US|-95.81|29.56|35|N|,Rosetta|beheira|EG|30.42|31.4|301|W|rasyid;resid;roseta;rosette,Roseville|CA|US|-121.29|38.75|130|NW|,Roseville|MI|US|-82.94|42.5|47|N|,Roseville|MN|US|-93.16|45.01|35|N|,Roslindale|MA|US|-71.12|42.29|27|N|,Rostock|mecklenburg vorpommern|DE|12.14|54.09|198|W|,Rostov-on-Don|rostov|RU|39.71|47.22|1130|W|rostov na donu;rostow am don;rostov aan de don;rostov del don;rostov do don;rostov sul don;rostov tren song dong;rostov ved don;rostov pe don;rostov sur le don;rostow nad donem,Roswell|GA|US|-84.36|34.02|94|N|,Roswell|NM|US|-104.52|33.39|48|N|,Rotterdam|south holland|NL|4.48|51.92|868|W|roterdao;roterdam,Rouge|ON|CA|-79.17|43.8|46|N|,Round Lake Beach|IL|US|-88.09|42.37|27|N|,Round Rock|TX|US|-97.68|30.51|115|N|,Rourkela|odisha|IN|84.86|22.22|273|W|,Rowland Heights|CA|US|-117.91|33.98|48|N|,Rowlett|TX|US|-96.56|32.9|60|N|,Roxas City|western visayas|PH|122.75|11.59|185|W|,Roy|UT|US|-112.03|41.16|37|N|,Royal Oak|MI|US|-83.14|42.49|59|N|,Royal Palm Beach|FL|US|-80.23|26.71|37|N|,Rubidoux|CA|US|-117.41|34|34|N|,Rubtsovsk|altai krai|RU|81.21|51.51|161|W|roebtsovsk;roubtsovsk;rubcovsk;rubcowsk;rubzowsk;rubtovsk,Ruda Slaska|silesia|PL|18.86|50.26|146|W|ruda o s,Rudrapur|uttarakhand|IN|79.4|28.98|154|W|,Rufisque|dakar|SN|-17.27|14.72|295|W|,Rufisque est|dakar|SN|-17.27|14.72|221|W|,Rugao|jiangsu|CN|120.58|32.37|257|W|,Rui'an|zhejiang|CN|120.66|27.78|927|W|,Ruiru|kiambu county|KE|36.96|-1.15|490|W|,Ruqi|awdal|SO|43.43|9.97|148|W|,Russeifa|zarqa|JO|36.05|32.02|268|W|ar rusajfa;rusajfa;ruseyfa,Russellville|AR|US|-93.13|35.28|29|N|,Rustenburg|north west|ZA|27.24|-25.67|373|W|rustemburgo,Rutchenkivskyi|donetsk|UA|37.7|47.98|168|W|rutchenkivskyi district;rutchenkivskyi rayon;rutchenkove;kirovskyi;kirovskyi rayon,Rutland|BC|CA|-119.39|49.9|34|N|,Ryazan'|ryazan oblast|RU|39.7|54.63|538|W|rjazan;riazan;rjasan,Rybinsk|yaroslavl oblast|RU|38.84|58.05|216|W|ribinsk,Rybnik|silesia|PL|18.54|50.1|142|W|,Rzeszow|subcarpathia|PL|22|50.04|198|W|resov,'s-Hertogenbosch|north brabant|NL|5.3|51.7|160|W|den bosch;bois le duc;bolduque;boscoducale;hertogenbosch;herzogenbusch,Sa Dec|dong thap|VN|105.76|10.29|214|W|,Saaba|centre|BF|-1.41|12.37|136|W|,Saanich|BC|CA|-123.37|48.55|117|N|,Saarbruecken|saarland|DE|7.01|49.23|182|W|saarbrucken;sarrebruck,Sabadell|catalonia|ES|2.11|41.54|211|W|,Sabah as Salim|mubarak al kabir|KW|48.06|29.26|139|W|sabah al salem,Sabha|sabha district|LY|14.43|27.04|149|W|sebha,Sabinas|MX07|MX|-101.12|27.86|54|N|ciudad sabinas,Sabya|jazan region|SA|42.63|17.15|228|W|,Sabzevar|razavi khorasan|IR|57.68|36.21|243|W|sabzawar;sabzewar;sebzevar,Sacaba|cochabamba|BO|-66.04|-17.4|180|W|,Sacoma|sao paulo|BR|-46.6|-23.63|261|W|,Sacramento|CA|US|-121.49|38.58|524|NW|,Saddiqabad|punjab|PK|70.13|28.31|274|W|,Sadr City|baghdad|IQ|44.46|33.39|1211|W|,Safi|marrakesh safi|MA|-9.24|32.3|336|W|asfi;safim;asafi,Saga|saga|JP|130.3|33.23|233|W|saga shi,Sagamihara|kanagawa|JP|139.24|35.57|720|W|,Saginaw|MI|US|-83.95|43.42|49|N|,Saguenay|QC|CA|-71.07|48.42|148|NW|,Saham|al batinah north|OM|56.89|24.17|140|W|,Saharanpur|uttar pradesh|IN|77.55|29.97|484|W|,Saharsa|bihar|IN|86.6|25.87|156|W|,Sahiwal|punjab|PK|72.33|31.97|538|W|,Sahuarita|AZ|US|-110.96|31.96|25|N|,Sahuayo de Morelos|MX16|MX|-102.72|20.06|64|N|,Sai Mai|bangkok|TH|100.65|13.92|188|W|,Saida|saida|DZ|0.15|34.83|142|W|sa ida,Saidpur|rangpur division|BD|88.89|25.78|199|W|,Saint Charles|MO|US|-90.48|38.78|65|N|st charles,Saint Charles|MD|US|-76.94|38.6|36|N|st charles,Saint Clair Shores|MI|US|-82.89|42.5|59|N|st clair shores;saint clr shores,Saint Cloud|MN|US|-94.16|45.56|65|N|st cloud,Saint Cloud|FL|US|-81.28|28.25|35|N|st cloud,Saint-Constant|QC|CA|-73.57|45.37|27|N|,Saint-Denis|reunion|RE|55.45|-20.88|154|W|saint denis de la reunion;st denis,Saint-Etienne|rhone alpes|FR|4.39|45.43|176|W|st etienne,Saint-Eustache|QC|CA|-73.91|45.56|42|N|,Saint George|UT|US|-113.58|37.1|72|N|st george,Saint-Georges|QC|CA|-70.67|46.11|31|N|,Saint-Hubert|QC|CA|-73.42|45.5|82|N|,Saint-Hyacinthe|QC|CA|-72.96|45.63|50|N|st hyacinthe,Saint-Jean-sur-Richelieu|QC|CA|-73.26|45.31|98|N|,Saint-Jerome|QC|CA|-74|45.78|54|N|,Saint John|NB|CA|-66.06|45.27|71|N|saint jean,Saint Joseph|MO|US|-94.85|39.77|76|N|st joseph,Saint-Laurent|QC|CA|-73.67|45.5|98|N|st laurent,Saint-Leonard|QC|CA|-73.6|45.59|79|N|,Saint-Louis|saint louis|SN|-16.49|16.02|254|W|,Saint-Louis-de-Terrebonne|QC|CA|-73.79|45.7|119|N|,Saint Louis Park|MN|US|-93.35|44.95|45|N|st louis park,Saint-Marc|artibonite|HT|-72.7|19.11|266|W|,Saint-Michel|QC|CA|-73.62|45.57|56|N|,Saint Paul|MN|US|-93.09|44.94|303|NW|st paul,Saint Peters|MO|US|-90.63|38.8|52|N|city of saint peters,Saint Petersburg|st petersburg|RU|30.31|59.94|5351|W|pietari;san petersburgo;st petersburg;petrohrad;saint petersbourg;san pietroburgo;sankt peterburg;sankt petersborg;sankt petersburg;sint petersburg;sao petersburgo;leningrad;leningrado;petrograd;petrogrado,Saint-Quentin-en-Yvelines|ile de france|FR|2.02|48.77|146|W|,Sainte-Foy|QC|CA|-71.29|46.78|111|N|,Sainte-Julie|QC|CA|-73.33|45.58|29|N|,Sainte-Therese|QC|CA|-73.83|45.64|25|N|,Saitama|saitama|JP|139.66|35.91|1324|W|,Sakai|osaka|JP|135.47|34.58|826|W|,Saki|oyo state|NG|3.39|8.67|178|W|,Sakura|chiba|JP|140.23|35.72|173|W|,Salaberry-de-Valleyfield|QC|CA|-74.13|45.25|42|N|,Salalah|dhofar|OM|54.09|17.02|163|W|salala,Salamanca|MX11|MX|-101.2|20.57|160|NW|,Salamanca|madrid|ES|-3.68|40.43|147|W|,Salamanca|castille and leon|ES|-5.66|40.97|144|W|salamanka;salamanque,Salatiga|central java|ID|110.49|-7.33|198|W|,Salavat|bashkortostan republic|RU|55.91|53.38|159|W|salauat;salawat,Sale|rabat sale kenitra|MA|-6.8|34.05|972|W|sala,Sale Al Jadida|rabat sale kenitra|MA|-6.74|34|200|W|,Salem|tamil nadu|IN|78.16|11.65|917|W|selam,Salem|OR|US|-123.04|44.94|175|NW|,Salem|MA|US|-70.9|42.52|42|N|,Salem|NH|US|-71.2|42.79|29|N|,Salem|VA|US|-80.05|37.29|25|N|,Salina|KS|US|-97.61|38.84|47|N|,Salina Cruz|MX20|MX|-95.19|16.18|84|N|,Salinas|CA|US|-121.66|36.68|157|NW|,Salisbury|NC|US|-80.47|35.67|34|N|,Salisbury|MD|US|-75.6|38.36|32|N|,Salt Lake City|UT|US|-111.89|40.76|215|NW|kota salt lake,Salta|salta|AR|-65.42|-24.81|520|W|ciudad de salta,Saltillo|MX07|MX|-100.98|25.43|709|NW|,Saltivka|kharkiv|UA|36.35|50.02|409|W|saltivskyi masyv,Salto|sao paulo|BR|-47.29|-23.2|141|W|,Salvador|bahia|BR|-38.49|-12.98|2711|W|salvador de bahia,Salvatierra|MX11|MX|-100.88|20.22|37|N|,Salzburg|state of salzburg|AT|13.04|47.8|157|W|salcburk;salisburgo;salzbourg;salzburgo,Samalut|minya|EG|30.71|28.31|142|W|,Samambaia|federal district|BR|-48.1|-15.88|218|W|,Samara|samara oblast|RU|50.14|53.21|1163|W|kuibyschew;kuibyshev;kuybyshev,Samarinda|east kalimantan|ID|117.15|-0.49|865|W|kota samarinda,Samarkand|samarqand region|UZ|66.96|39.65|595|W|samarcanda;samarcande;samarkanda;samarqand;semerkant,Samarra'|salah ad din|IQ|43.89|34.2|158|W|,Samba|luanda|AO|13.2|-8.88|364|W|,Sambalpur|odisha|IN|83.98|21.47|189|W|,Sambhal|uttar pradesh|IN|78.57|28.58|196|W|,Sambizanga|luanda|AO|13.28|-8.79|177|W|sambizanha,Sammamish|WA|US|-122.08|47.64|52|N|,Sampit|central kalimantan|ID|112.95|-2.53|166|W|,Samsun|samsun|TR|36.34|41.28|394|W|,Samut Prakan|samut prakan|TH|100.6|13.6|388|W|mueang samut prakan;paknam,San Agustin|MX14|MX|-103.47|20.55|30|N|colonia san agustin,San Andres Cholula|MX21|MX|-98.3|19.05|39|N|,San Andres Tuxtla|MX30|MX|-95.21|18.45|61|N|,San Angelo|TX|US|-100.44|31.46|99|N|,San Antonio|TX|US|-98.49|29.42|1526|NW|,San Bernardino|CA|US|-117.29|34.11|216|NW|,San Bernardino Tlaxcalancingo|MX21|MX|-98.28|19.03|54|N|,San Bernardo|santiago metropolitan|CL|-70.7|-33.59|249|W|,San Blas-Canillejas|madrid|ES|-3.62|40.44|157|W|,San Bruno|CA|US|-122.41|37.63|43|N|,San Buenaventura|MX15|MX|-98.86|19.3|44|N|,San Carlos|CA|US|-122.26|37.51|29|N|,San Clemente|CA|US|-117.61|33.43|65|N|,San Cristobal|tachira|VE|-72.24|7.77|289|W|,San Cristobal|san cristobal|DO|-70.11|18.42|154|W|,San Cristobal de las Casas|MX05|MX|-92.64|16.73|215|NW|san cristobal,San Diego|CA|US|-117.16|32.72|1404|NW|,San Dimas|CA|US|-117.81|34.11|34|N|,San Felipe|yaracuy|VE|-68.74|10.34|206|W|,San Felipe|MX11|MX|-101.22|21.48|28|N|,San Fernando|central luzon|PH|120.68|15.03|251|W|kota san fernando;san fernando city,San Fernando|MX28|MX|-98.15|24.85|29|N|,San Fernando de Apure|apure|VE|-67.47|7.89|229|W|san fernando,San Francisco|CA|US|-122.42|37.77|827|NW|sao francisco,San Francisco Acuautla|MX15|MX|-98.86|19.35|27|N|acuautla,San Francisco del Rincon|MX11|MX|-101.86|21.02|71|N|,San Francisco Tesistan|MX14|MX|-103.48|20.8|62|N|,San Gabriel|CA|US|-118.11|34.1|40|N|sao gabriel,San Isidro|MX15|MX|-98.95|19.34|33|N|,San Jacinto|CA|US|-116.96|33.78|46|N|,San Jeronimo|MX15|MX|-99.59|19.28|26|N|,San Jeronimo Cuatro Vientos|MX15|MX|-98.84|19.29|36|N|,San Jose|CA|US|-121.89|37.34|997|NW|,San Jose|san jose|CR|-84.08|9.93|335|W|,San Jose|mimaropa|PH|121.07|12.35|143|W|,San Jose del Cabo|MX03|MX|-109.7|23.05|136|NW|,San Jose del Castillo|MX14|MX|-103.24|20.51|39|N|,San Jose del Monte|central luzon|PH|121.05|14.81|357|W|kota san jose del monte;san jose del monte city,San Jose Guadalupe Otzacatipan|MX15|MX|-99.59|19.34|31|N|,San Juan|san juan|PR|-66.11|18.47|418|W|,San Juan|national capital region|PH|121.03|14.6|134|W|san juan city,San Juan|TX|US|-98.16|26.19|36|N|,San Juan Capistrano|CA|US|-117.66|33.5|36|N|,San Juan de los Lagos|MX14|MX|-102.33|21.25|48|N|,San Juan de los Morros|guarico|VE|-67.35|9.91|160|W|,San Juan del Rio|MX22|MX|-100|20.39|138|NW|,San Juan Sacatepequez|guatemala|GT|-90.64|14.72|136|W|,San Leandro|CA|US|-122.16|37.72|90|N|,San Lorenzo|central department|PY|-57.51|-25.34|227|W|,San Luis|san luis|AR|-66.32|-33.29|169|W|ciudad de san luis,San Luis|AZ|US|-114.78|32.49|31|N|,San Luis de la Paz|MX11|MX|-100.51|21.3|49|N|,San Luis Obispo|CA|US|-120.66|35.28|47|N|,San Luis Potosi|MX24|MX|-100.97|22.15|722|NW|san luis potosi city,San Luis Rio Colorado|MX26|MX|-114.77|32.46|176|NW|,San Marcos|CA|US|-117.17|33.14|92|N|,San Marcos|TX|US|-97.94|29.88|60|N|,San Martin|piura|PE|-80.67|-5.19|130|W|,San Martin Azcatepec|MX15|MX|-98.97|19.69|35|N|,San Martin Texmelucan de Labastida|MX21|MX|-98.44|19.28|155|NW|san martin texmelucan,San Mateo|calabarzon|PH|121.12|14.7|134|W|,San Mateo|CA|US|-122.33|37.56|103|N|,San Mateo Atenco|MX15|MX|-99.53|19.27|67|N|,San Miguel|san miguel department|SV|-88.18|13.48|247|W|,San Miguel|buenos aires|AR|-58.71|-34.54|168|W|,San Miguel Ajusco|MX09|MX|-99.2|19.22|29|N|,San Miguel de Allende|MX11|MX|-100.74|20.92|174|NW|,San Miguel de Tucuman|tucuman|AR|-65.21|-26.82|548|W|tucuman,San Miguel del Padron|havana|CU|-82.33|23.1|159|W|,San Miguel Topilejo|MX09|MX|-99.14|19.2|34|N|,San Miguelito|panama|PA|-79.47|9.05|321|W|,San Nicolas de los Arroyos|buenos aires|AR|-60.21|-33.33|134|W|san nicolas,San Nicolas de los Garza|MX19|MX|-100.3|25.74|412|NW|san nicolas de los garzas,San Pablo|calabarzon|PH|121.33|14.07|300|W|san pablo city,San Pablo|CA|US|-122.35|37.96|30|N|,San Pablo Autopan|MX15|MX|-99.66|19.36|35|N|,San Pablo de las Salinas|MX15|MX|-99.09|19.67|156|NW|san pablo,San-Pedro|bas sassandra district|CI|-6.64|4.75|390|W|,San Pedro|calabarzon|PH|121.05|14.36|348|W|,San Pedro|CA|US|-118.29|33.74|83|N|san pedro y san pablo,San Pedro|MX07|MX|-102.98|25.76|48|N|san pedro de las colonias,San Pedro de Macoris|san pedro de macoris|DO|-69.31|18.45|217|W|,San Pedro Garza Garcia|MX19|MX|-100.4|25.66|132|NW|garza garcia;san pedro,San Pedro Sula|cortes department|HN|-88.03|15.51|801|W|,San Rafael|CA|US|-122.53|37.97|59|N|sao rafael,San Ramon|CA|US|-121.98|37.78|76|N|,San Salvador|san salvador department|SV|-89.19|13.69|525|W|salvador;san salwador,San Salvador de Jujuy|jujuy|AR|-65.29|-24.19|257|W|,San Salvador Tizatlalli|MX15|MX|-99.59|19.26|61|N|,San Sebastian|basque country|ES|-1.97|43.31|185|W|donostia;la bella easo;saint sebastien;sanse;sao sebastiao,San Sebastian el Grande|MX14|MX|-103.43|20.53|28|N|,San Tan Valley|AZ|US|-111.53|33.19|81|N|,Sanaa|amanat alasimah|YE|44.21|15.35|1937|W|san a;sana;sana a,Sanandaj|kurdistan province|IR|47|35.31|349|W|sanandadsch;sanandadz;sanandij;senendec,Sancaktepe|istanbul|TR|29.23|41|489|W|,Sanctorum|MX21|MX|-98.25|19.1|27|N|,Sandacho|hyogo|JP|135.23|34.88|132|W|,Sandakan|sabah|MY|118.12|5.84|439|W|,Sandusky|OH|US|-82.71|41.45|25|N|,Sandy|UT|US|-111.88|40.59|87|N|sandy city,Sandy Hills|UT|US|-111.85|40.58|89|N|,Sandy Springs|GA|US|-84.38|33.92|105|N|,Sanford|FL|US|-81.27|28.8|58|N|,Sanford|NC|US|-79.18|35.48|29|N|,Sangli|maharashtra|IN|74.56|16.85|601|W|turmeric city,Sanhe|hebei|CN|117.07|39.98|965|W|,Sanhe|chongqing|CN|107.73|29.87|140|W|fengdu xian;fengtuhein,Sanliurfa|sanliurfa|TR|38.79|37.17|449|W|sanli urfa;edesse;edesa;edessa,Sanmenxia|henan|CN|111.19|34.78|669|W|san men sia,Sanming|fujian|CN|117.62|26.25|602|W|san ming;tam minh,Sanshui|guangdong|CN|112.89|23.15|153|W|,Sant Andreu|catalonia|ES|2.19|41.44|142|W|distrito sant andreu,Sant Marti|catalonia|ES|2.2|41.42|235|W|distrito de sant marti,Santa Ana|CA|US|-117.87|33.75|310|NW|,Santa Ana|santa ana department|SV|-89.56|13.99|176|W|,Santa Ana Chiautempan|MX29|MX|-98.19|19.31|48|N|,Santa Anita - Los Ficus|lima region|PE|-76.97|-12.05|184|W|,Santa Barbara|CA|US|-119.7|34.42|91|N|,Santa Barbara d'Oeste|sao paulo|BR|-47.41|-22.75|189|W|,Santa Catarina|MX19|MX|-100.46|25.67|304|NW|ciudad santa catarina,Santa Clara|villa clara province|CU|-79.97|22.41|250|W|,Santa Clara|CA|US|-121.96|37.35|126|N|,Santa Clarita|CA|US|-118.54|34.39|182|NW|,Santa Cruz|CA|US|-122.03|36.97|64|N|,Santa Cruz de la Sierra|santa cruz department|BO|-63.18|-17.79|1831|W|santa cruz;santa cruz da serra,Santa Cruz de Tenerife|canary islands|ES|-16.25|28.47|211|W|tenerife;teneriffa,Santa Cruz do Sul|rio grande do sul|BR|-52.43|-29.72|138|W|,Santa Cruz Xoxocotlan|MX20|MX|-96.74|17.03|67|N|santa cruz;xoxocotlan,Santa Fe|santa fe|AR|-60.71|-31.65|391|W|ciudad de santa fe,Santa Fe|NM|US|-105.94|35.69|87|N|,Santa Isabel|MX02|MX|-115.57|32.63|29|N|,Santa Luzia|minas gerais|BR|-43.85|-19.77|219|W|,Santa Maria|rio grande do sul|BR|-53.81|-29.68|271|W|,Santa Maria|CA|US|-120.44|34.95|105|N|,Santa Maria Chimalhuacan|MX15|MX|-98.95|19.42|70|N|,Santa Marta|magdalena department|CO|-74.19|11.24|499|W|,Santa Monica|CA|US|-118.49|34.02|93|N|,Santa Paula|CA|US|-119.06|34.35|30|N|,Santa Rita|paraiba|BR|-34.98|-7.11|149|W|,Santa Rosa|calabarzon|PH|121.11|14.31|216|W|kota santa rosa;santa rosa city,Santa Rosa|CA|US|-122.71|38.44|178|NW|,Santa Rosa Beach|FL|US|-86.23|30.4|32|N|,Santa Rosalia de Camargo|MX06|MX|-105.17|27.68|40|N|,Santa Teresa|MX15|MX|-99.23|19.84|36|N|,Santa Teresa del Tuy|miranda|VE|-66.66|10.23|278|W|,Santana de Parnaiba|sao paulo|BR|-46.92|-23.44|163|W|,Santander|cantabria|ES|-3.8|43.47|173|W|,Santarem|para|BR|-54.71|-2.44|360|W|,Santee|CA|US|-116.97|32.84|57|N|,Santiago|santiago metropolitan|CL|-70.65|-33.46|4837|W|santiago de chile;santiago del cile;santiago do chile;santiago du chili,Santiago|MX19|MX|-100.15|25.43|36|N|villa de santiago,Santiago de Cuba|santiago de cuba province|CU|-75.82|20.02|555|W|santiago di cuba,Santiago de los Caballeros|santiago province|DO|-70.69|19.45|1200|W|santiago,Santiago de Queretaro|MX22|MX|-100.39|20.59|1594|NW|queretaro city,Santiago de Surco|lima region|PE|-77.01|-12.14|251|W|,Santiago del Estero|santiago del estero|AR|-64.26|-27.8|252|W|,Santiago Papasquiaro|MX10|MX|-105.42|25.04|26|N|,Santiago Teyahualco|MX15|MX|-99.12|19.66|53|N|teyahualco,Santo Andre|sao paulo|BR|-46.54|-23.66|662|W|,Santo Domingo|nacional|DO|-69.89|18.47|2201|W|saint domingue;santo domingo city;ciudad trujillo,Santo Domingo de los Colorados|santo domingo de los tsachilas|EC|-79.18|-0.25|458|W|santo domingo,Santo Domingo Este|santo domingo province|DO|-69.85|18.49|700|W|,Santo Domingo Oeste|santo domingo province|DO|-70|18.5|701|W|,Santo Domingo Tehuantepec|MX20|MX|-95.24|16.32|67|N|,Santol|central luzon|PH|120.57|15.16|298|W|,Santos|sao paulo|BR|-46.33|-23.96|418|W|baixada santista,Sants-Montjuic|catalonia|ES|2.15|41.37|183|W|,Sanya|hainan|CN|109.51|18.25|1031|W|san ja;tam a,Sao Bernardo do Campo|sao paulo|BR|-46.56|-23.69|840|W|,Sao Caetano do Sul|sao paulo|BR|-46.55|-23.62|172|W|,Sao Carlos|sao paulo|BR|-47.89|-22.02|266|W|,Sao Felix do Xingu|para|BR|-51.99|-6.64|132|W|,Sao Joao de Meriti|rio de janeiro|BR|-43.37|-22.8|466|W|,Sao Jose|santa catarina|BR|-48.63|-27.62|295|W|,Sao Jose de Ribamar|maranhao|BR|-44.06|-2.56|259|W|,Sao Jose do Rio Preto|sao paulo|BR|-49.38|-20.82|480|W|rio preto,Sao Jose dos Campos|sao paulo|BR|-45.89|-23.18|727|W|sjcampos;vale paraiba;vale do paraiba,Sao Jose dos Pinhais|parana|BR|-49.21|-25.53|349|W|,Sao Leopoldo|rio grande do sul|BR|-51.15|-29.76|209|W|,Sao Lucas|sao paulo|BR|-46.54|-23.59|138|W|,Sao Luis|maranhao|BR|-44.3|-2.53|917|W|maranham,Sao Mateus|sao paulo|BR|-46.48|-23.61|155|W|,Sao Mateus|espirito santo|BR|-39.86|-18.72|134|W|,Sao Paulo|sao paulo|BR|-46.64|-23.55|12400|W|san paolo;sao paulo capital,Sao Rafael|sao paulo|BR|-46.45|-23.63|148|W|,Sao Vicente|sao paulo|BR|-46.39|-23.96|338|W|,Sapele|delta|NG|5.68|5.89|305|W|,Sapopemba|sao paulo|BR|-46.52|-23.6|266|W|,Sapporo|hokkaido|JP|141.35|43.07|1973|W|sapporo shi;sapporoshi,Sapucaia do Sul|rio grande do sul|BR|-51.15|-29.82|132|W|,Saqqez|kurdistan province|IR|46.27|36.25|165|W|saggiz;saghghez,Sarajevo|federation of b h|BA|18.36|43.85|696|W|sarajewo;saraybosna,Saransk|mordoviya republic|RU|45.17|54.18|318|W|,Sarasota|FL|US|-82.53|27.34|55|N|,Saratoga|CA|US|-122.02|37.26|30|N|,Saratoga Springs|NY|US|-73.78|43.08|27|N|saratoga spgs,Saratoga Springs|UT|US|-111.9|40.35|25|N|,Saratov|saratov oblast|RU|45.99|51.54|844|W|saratow,Sargodha|punjab|PK|72.67|32.09|975|W|,Sarh|moyen chari|TD|18.38|9.15|138|W|,Sari|mazandaran|IR|53.06|36.56|255|W|,Sariwon-si|north hwanghae|KP|125.76|38.51|310|W|sariwon,Sarnia|ON|CA|-82.4|42.98|72|N|,Sarria-Sant Gervasi|catalonia|ES|2.14|41.4|147|W|,Sasaram|bihar|IN|84.02|24.95|147|W|,Sasebo|nagasaki|JP|129.73|33.17|243|W|,Saskatoon|SK|CA|-106.67|52.13|266|NW|,Sasolburg|free state|ZA|27.82|-26.81|135|W|,Satna|madhya pradesh|IN|80.83|24.58|282|W|,Saugor|madhya pradesh|IN|78.74|23.84|274|W|,Saugus|MA|US|-71.01|42.46|26|N|,Sault Ste. Marie|ON|CA|-84.33|46.52|72|N|sault sainte marie,Saurimo|lunda sul|AO|20.39|-9.66|393|W|,Savage|MN|US|-93.34|44.78|30|N|,Savannah|GA|US|-81.1|32.08|147|NW|,Savar|dhaka division|BD|90.25|23.85|286|W|sabhar;savar upazila,Saveh|markazi|IR|50.36|35.02|220|W|,Sawangan|west java|ID|106.77|-6.4|197|W|,Sawtelle|CA|US|-118.45|34.04|39|N|,Sayama|saitama|JP|139.41|35.85|160|W|,Sayreville|NJ|US|-74.36|40.46|44|N|,Sayreville Junction|NJ|US|-74.33|40.47|42|N|,Sayula|MX14|MX|-103.6|19.88|26|N|,Schaerbeek|brussels capital|BE|4.38|50.87|132|W|schaarbeek;schaerbeek schaarbeek,Schaumburg|IL|US|-88.08|42.03|74|N|,Schenectady|NY|US|-73.94|42.81|65|N|,Schererville|IN|US|-87.45|41.48|28|N|,Schertz|TX|US|-98.27|29.55|43|N|,Scottsdale|AZ|US|-111.9|33.51|236|NW|,Scranton|PA|US|-75.66|41.41|77|N|,Seaside|CA|US|-121.85|36.61|33|N|,SeaTac|WA|US|-122.29|47.45|28|N|,Seattle|WA|US|-122.33|47.61|780|NW|,Sector 1|bucharest|RO|26.05|44.49|225|W|,Sector 2|bucharest|RO|26.13|44.45|290|W|,Sector 3|bucharest|RO|26.17|44.42|385|W|,Sector 4|bucharest|RO|26.12|44.38|287|W|,Sector 5|bucharest|RO|26.07|44.39|271|W|,Sector 6|bucharest|RO|26.02|44.44|367|W|,Secunderabad|telangana|IN|78.54|17.5|204|W|,Security-Widefield|CO|US|-104.71|38.75|32|N|,Seeb|muscat|OM|58.19|23.67|470|W|as sib;sib,Segou|segou|ML|-6.26|13.44|205|W|segu,Seguin|TX|US|-97.96|29.57|27|N|,Sejong|sejong si|KR|127.29|36.59|394|W|sedzong;yeongi,Sekondi|western|GH|-1.71|4.93|285|W|,Sekondi-Takoradi|western|GH|-1.76|4.93|138|W|sekondi,Selayang Baru Utara|selangor|MY|101.67|3.25|542|W|,Semarang|central java|ID|110.42|-6.99|1694|W|kota semarang,Semey|abai region|KZ|80.25|50.42|292|W|semei;semej;alash kala;semipalatinsk,Senador Canedo|goias|BR|-49.09|-16.71|175|W|,Sendai|miyagi|JP|140.87|38.27|1096|W|,Sengkang New Town||SG|103.89|1.39|267|W|sengkang,Sennar|sennar|SD|33.57|13.57|130|W|sannar;sinnar,Seogwipo|jeju do|KR|126.56|33.25|178|W|,Seongnam-si|gyeonggi do|KR|127.14|37.44|914|W|seongnam,Seoul|seoul|KR|126.98|37.57|10349|W|seoel;seoul si;seul;soul;hanyang,Sepang|selangor|MY|101.75|2.69|212|W|,Sept-Iles|QC|CA|-66.38|50.2|28|N|,Serang|banten|ID|106.15|-6.12|735|W|kabupaten serang,Serekunda|banjul|GM|-16.68|13.44|340|W|serrekunda,Seremban|negeri sembilan|MY|101.94|2.73|372|W|,Seri Kembangan|selangor|MY|101.72|3.03|130|W|,Serilingampalle|telangana|IN|78.3|17.49|150|W|,Serra|espirito santo|BR|-40.31|-20.13|520|W|,Setagaya|tokyo|JP|139.65|35.64|940|W|setagaya city,Setapak|selangor|MY|101.73|3.21|353|W|,Sete Lagoas|minas gerais|BR|-44.25|-19.47|238|W|,Setia Alam|selangor|MY|101.46|3.1|150|W|,Setif|setif|DZ|5.41|36.19|252|W|sathif;satif,Settat|casablanca settat|MA|-7.62|33|155|W|sattat,Sevastopol|sevastopol city|UA|33.52|44.61|547|W|akyar;sebastopol;sebastopoli;sewastopol;sivastopol,Severn|MD|US|-76.7|39.14|44|N|,Severna Park|MD|US|-76.55|39.07|37|N|,Severnyy|moscow|RU|37.55|55.94|200|W|,Severodvinsk|arkhangelskaya|RU|39.83|64.56|194|W|sewerodwinsk;siewierodwinsk,Sevilla|andalusia|ES|-5.97|37.38|686|W|seville;sevilha;sevilia;sewilla;siviglia,Sewell|NJ|US|-75.14|39.77|37|N|,Sfax|sfax governorate|TN|10.76|34.74|280|W|safakes;safakis,Sha Tin|sha tin|HK|114.18|22.38|495|W|shatin,Shagamu|ogun state|NG|3.65|6.85|214|W|sagamu,Shah Alam|selangor|MY|101.53|3.09|740|W|,Shahin Shahr|isfahan|IR|51.55|32.86|173|W|,Shahjanpur|uttar pradesh|IN|79.91|27.88|320|W|shahjahanpur,Shahkot|punjab|PK|73.49|31.57|244|W|,Shahreza|isfahan|IR|51.86|32.01|134|W|,Shahriar|tehran|IR|51.06|35.66|309|W|,Shahrisabz|qashqadaryo|UZ|66.83|39.06|142|W|chakhrisabz;sachrisabz;sjachrisabz;sehr i sebz;sachrizabz,Shahrud|semnan|IR|54.98|36.42|165|W|emamshahr,Shahuwadi|maharashtra|IN|73.95|16.91|180|W|,Shaker Heights|OH|US|-81.54|41.47|27|N|,Shakhty|rostov|RU|40.22|47.72|221|W|chakhty;schachty;shajty;sjachty;sjakhty;szachty;sahti;sachty;sahty,Shakopee|MN|US|-93.53|44.8|39|N|,Sham Shui Po|sham shui po district|HK|114.16|22.33|431|W|,Shanghai|shanghai|CN|121.46|31.22|24874|W|schanghai;shangai;sjanghai;szanghaj;xangai;sangay;sanghay;sanghaj,Shangluo|shaanxi|CN|109.93|33.87|531|W|,Shangqiu|henan|CN|115.66|34.41|1859|W|,Shangrao|jiangxi|CN|117.94|28.45|1116|W|sang zao,Shangri-La|yunnan|CN|99.71|27.83|186|W|,Shangyu|zhejiang|CN|120.87|30.02|770|W|,Shangzhi|heilongjiang|CN|128|45.21|131|W|,Shanhaiguan|hebei|CN|119.75|40|140|W|,Shantipur|west bengal|IN|88.43|23.25|149|W|,Shantou|guangdong|CN|116.68|23.35|3838|W|san tchou,Shanwei|guangdong|CN|115.35|22.78|491|W|san vi;san wej,Shaoguan|guangdong|CN|113.58|24.8|1028|W|sao kuan,Shaoxing|zhejiang|CN|120.58|30|2300|W|sao sing,Shaoyang|hunan|CN|111.46|27.24|753|W|sao jang,Sharjah|sharjah|AE|55.41|25.33|1800|W|sharjah city;charjah;sarja;schardscha;sharja;szardza;sarika;sardza,Shashamane|oromiya|ET|38.6|7.2|208|W|shashemene,Shawinigan|QC|CA|-72.75|46.57|38|N|,Shawnee|KS|US|-94.72|39.04|65|N|,Shawnee|OK|US|-96.93|35.33|31|N|,Sheboygan|WI|US|-87.71|43.75|48|N|,Sheepshead Bay|NY|US|-73.94|40.59|122|N|,Sheffield|england|GB|-1.47|53.38|556|W|,Shekhupura|punjab|PK|73.99|31.71|591|W|sekhupura,Shelby|MI|US|-83.03|42.67|74|N|,Shelton|CT|US|-73.09|41.32|41|N|,Shengavit|yerevan|AM|44.48|40.16|140|W|,Shenglilu|chongqing|CN|105.88|29.35|134|W|,Shenyang|liaoning|CN|123.43|41.79|7050|W|sen jang,Shenzhen|guangdong|CN|114.07|22.55|17494|W|sen cen,Sherbrooke|QC|CA|-71.9|45.4|129|N|,Sherman|TX|US|-96.61|33.64|40|N|,Sherman Oaks|CA|US|-118.45|34.15|52|N|,Sherwood|AR|US|-92.22|34.82|30|N|,Sherwood Park|AB|CA|-113.32|53.52|70|N|,Shevchenkivskyi|kyiv city|UA|30.47|50.46|220|W|,Shevchenko|poltava|UA|34.54|49.56|147|W|shevchenkivskyi rayon,Shibganj|rajshahi division|BD|89.32|25|378|W|,Shibin al Kawm|monufia|EG|31.01|30.55|267|W|,Shibuya|tokyo|JP|139.71|35.66|230|W|shibuya city,Shihezi|xinjiang|CN|86.04|44.3|572|W|,Shijiazhuang|hebei|CN|114.48|38.04|3938|W|s tia cuang,Shijie|guangdong|CN|113.79|23.1|246|W|,Shikarpur|sindh|PK|68.64|27.96|204|W|,Shillong|meghalaya|IN|91.88|25.57|143|W|,Shimla|himachal pradesh|IN|77.17|31.1|173|W|simla,Shimonoseki|yamaguchi|JP|130.94|33.96|265|W|simonoseki,Shimotoda|saitama|JP|139.69|35.81|140|W|,Shinagawa|ehime|JP|133.01|33.64|422|W|shinagawa city,Shinjuku|tokyo|JP|139.71|35.69|349|W|,Shinyanga|shinyanga|TZ|33.42|-3.66|139|W|,Shiqi|guangdong|CN|113.39|22.52|342|W|,Shiqiao|guangdong|CN|113.36|22.95|135|W|,Shiraz|fars|IR|52.53|29.61|1249|W|schiras;chiraz;sziraz;xiraz;siraz,Shirley|NY|US|-72.87|40.8|27|N|,Shivaji Nagar|maharashtra|IN|73.85|18.53|1000|W|,Shivamogga|karnataka|IN|75.57|13.93|322|W|shimoga,Shivpuri|madhya pradesh|IN|77.66|25.42|179|W|,Shiyan|hubei|CN|110.78|32.65|3460|W|s jen,Shizuishan|ningxia|CN|106.39|38.98|739|W|,Shizuoka|shizuoka|JP|138.38|34.98|693|W|sizuoka,Sholapur|maharashtra|IN|75.91|17.67|997|W|solapur,Shomolu|lagos|NG|3.37|6.54|154|W|,Shoreline|WA|US|-122.34|47.76|55|N|,Shoreview|MN|US|-93.15|45.08|26|N|,Shouguang|shandong|CN|118.74|36.88|473|W|,Shreveport|LA|US|-93.75|32.53|187|NW|,Shrewsbury|MA|US|-71.71|42.3|33|N|,Shrirampur|west bengal|IN|88.34|22.75|226|W|serampore,Shuangcheng|heilongjiang|CN|126.31|45.38|130|W|,Shuangyashan|heilongjiang|CN|131.13|46.68|600|W|song ap son;suang ja san,Shubra al Khaymah|qalyubia|EG|31.25|30.13|1240|W|,Shuizhai|guangdong|CN|115.76|23.93|140|W|,Shujaabad|punjab|PK|71.29|29.88|151|W|,Shulin|taipei|TW|121.42|24.99|180|W|shulin district;sulin,Shunan|yamaguchi|JP|131.83|34.08|149|W|,Shuozhou|shanxi|CN|112.42|39.32|433|W|,Shyamnagar|west bengal|IN|88.37|22.83|441|W|,Shymkent|shymkent|KZ|69.6|42.31|1200|W|chymkent;schymkent;sjymkent;szymkent;tsjimkent;cimkent;simkent;symkent,Si Racha|chon buri|TH|100.93|13.17|178|W|,Sialkot|punjab|PK|74.53|32.49|911|W|sijalkot,Sibiu|sibiu county|RO|24.15|45.8|134|W|hermannstadt;sybin;sibin,Sibu|sarawak|MY|111.82|2.3|198|W|,Sicklerville|NJ|US|-74.97|39.72|42|N|,Sidi Bel Abbes|sidi bel abbes|DZ|-0.63|35.19|210|W|sidi belabbas;sidi bilabbas;sidi bu l abbas,Sidoarjo|east java|ID|112.72|-7.45|139|W|,Sidon|south governorate|LB|35.37|33.56|163|W|saida;sayda;sidone;sydon,Siem Reap|siem reap|KH|103.86|13.36|139|W|ciudad de siem riep;khett siem reab;siem reab,Sierra Vista|AZ|US|-110.3|31.55|43|N|,Siguiri|kankan region|GN|-9.17|11.42|148|W|,Sikar|rajasthan|IN|75.14|27.61|244|W|,Sikasso|sikasso|ML|-5.67|11.32|349|W|,Silao de la Victoria|MX11|MX|-101.43|20.94|74|N|silao,Silchar|assam|IN|92.8|24.83|178|W|,Silifke|mersin|TR|33.93|36.38|132|W|,Siliguri|west bengal|IN|88.43|26.71|515|W|shiliguri,Silver Lake|CA|US|-118.27|34.09|32|N|,Silver Spring|MD|US|-77.03|38.99|71|N|,Simele|duhok|IQ|42.85|36.86|152|W|,Simferopol|crimea|UA|34.11|44.96|336|W|simferopoli;akmescit;sinferopoli;symferopol,Simi Valley|CA|US|-118.78|34.27|126|N|,Sincelejo|sucre department|CO|-75.39|9.3|277|W|,Sinch'on-up|south hwanghae|KP|125.48|38.35|141|W|,Sinfra|zanzan district|CI|-5.91|6.62|245|W|,Singa|sennar|SD|33.93|13.15|250|W|sindscha;sindza,Singapore||SG|103.85|1.29|5638|W|singapour;singapur;singapura;danmaxi;temasek,Singaraja|bali|ID|115.09|-8.11|133|W|,Singida|singida|TZ|34.74|-4.82|232|W|,Singkawang|west kalimantan|ID|108.98|0.91|253|W|,Singosari|east java|ID|112.67|-7.89|182|W|,Singrauli|madhya pradesh|IN|82.68|24.2|220|W|,Sinjhoro|sindh|PK|68.81|26.03|354|W|,Sinnuris|faiyum|EG|30.87|29.41|133|W|,Sinop|mato grosso|BR|-55.5|-11.86|223|W|,Sinp'o|south hamgyong|KP|128.19|40.04|152|W|,Sinuiju|p yongan bukto|KP|124.4|40.1|288|W|,Sioux City|IA|US|-96.4|42.5|82|N|kota sioux,Sioux Falls|SD|US|-96.73|43.54|171|NW|,Siping|jilin|CN|124.38|43.16|555|W|s pching;ssupingkai,Sirjan|kerman|IR|55.68|29.45|199|W|sircan;sirdschan;sirdzan,Sirsa|haryana|IN|75.03|29.53|182|W|,Sisli|istanbul|TR|28.99|41.06|314|W|,Sitapur|uttar pradesh|IN|80.68|27.56|164|W|,Sitiawan|perak|MY|100.7|4.22|156|W|,Sittwe|rakhine|MM|92.9|20.15|177|W|akyab,Situbondo|east java|ID|114.01|-7.71|685|W|,Sivakasi|tamil nadu|IN|77.8|9.45|234|W|,Sivas|sivas|TR|37.02|39.75|264|W|,Siverek|sanliurfa|TR|39.32|37.76|175|W|,Siwan|bihar|IN|84.36|26.22|135|W|,Skardu|gilgit baltistan|PK|75.63|35.3|260|W|,Skikda|skikda|DZ|6.91|36.88|182|W|sukaikida;sukajkida,Skokie|IL|US|-87.73|42.03|64|N|,Skopje|grad skopje|MK|21.43|42|474|W|escopia;uskup,Skudai|johor|MY|103.66|1.54|159|W|,Slidell|LA|US|-89.78|30.28|27|N|,Slough|england|GB|-0.6|51.51|164|W|,Smithtown|NY|US|-73.2|40.86|26|N|,Smolensk|smolensk oblast|RU|32.05|54.78|330|W|,Smyrna|GA|US|-84.51|33.88|56|N|,Smyrna|TN|US|-86.52|35.98|46|N|,Snowdon|QC|CA|-73.63|45.49|32|N|,Soacha|cundinamarca|CO|-74.22|4.58|655|W|,Sobral|ceara|BR|-40.35|-3.69|216|W|,Soc Trang|can tho city|VN|105.97|9.6|221|W|,Sochi|krasnodar krai|RU|39.72|43.6|327|W|sotsji;soci;soczi;sotchi;sotji;sotschi;sotsi,Socorro|TX|US|-106.3|31.65|33|N|,Socorro Mission Number 1 Colonia|TX|US|-106.29|31.64|28|N|,Sodo|south ethiopia regional state|ET|37.76|6.86|204|W|,Sofia|sofia capital|BG|23.32|42.7|1152|W|sofie;sofya,Sohag|sohag|EG|31.69|26.56|266|W|sauhadz;sevhac,Soka|saitama|JP|139.8|35.84|249|W|,Sokoto|sokoto|NG|5.24|13.06|1040|W|,Soledad|atlantico|CO|-74.76|10.92|342|W|,Soledad|CA|US|-121.33|36.42|25|N|solebad,Soledad de Graciano Sanchez|MX24|MX|-100.94|22.19|332|NW|,Solingen|north rhine westphalia|DE|7.08|51.17|164|W|,Sollentuna|stockholm|SE|17.95|59.43|139|W|,Solwezi|north western|ZM|26.39|-12.17|301|W|solwesi,Somerset West|western cape|ZA|18.82|-34.08|225|W|somerset wes,Somerton|PA|US|-75.01|40.12|33|N|,Somerville|MA|US|-71.1|42.39|80|N|,Son Tay|hanoi|VN|105.51|21.14|230|W|,Sonargaon|dhaka division|BD|90.62|23.65|130|W|,Songcheng|fujian|CN|120|26.88|165|W|,Songea|ruvuma|TZ|35.65|-10.68|286|W|,Songjiang|shanghai|CN|121.22|31.03|1973|W|,Songnim-ni|north hwanghae|KP|125.64|38.76|152|W|,Sonipat|haryana|IN|77.02|28.99|289|W|,Sorel-Tracy|QC|CA|-73.11|46.04|41|N|sorel,Sorocaba|sao paulo|BR|-47.46|-23.5|762|W|,Sorong|southwest papua|ID|131.26|-0.88|219|W|kota sorong,Sorsogon|bicol region|PH|123.99|12.97|187|W|,Soshanguve|gauteng|ZA|28.1|-25.47|872|W|,Sosnowiec|silesia|PL|19.1|50.29|227|W|sosnovec,Soubre|bas sassandra district|CI|-6.59|5.78|131|W|,Souk Ahras|souk ahras|DZ|7.95|36.29|153|W|souq ahras;suk aharas;suk ahras,Sousse|sousse governorate|TN|10.64|35.83|221|W|susa,South Bel Air|MD|US|-76.34|39.53|48|N|,South Bend|IN|US|-86.25|41.68|101|N|,South Boston|MA|US|-71.05|42.33|571|NW|,South Chicago|IL|US|-87.55|41.74|28|N|guney chicago,South Dublin|leinster|IE|-6.34|53.29|301|W|comte de dublin sud;condado de dublin sur;condado de south dublin;contea di south dublin;dublin poludniowy;dublin south;jizni dublin,South Fulton|GA|US|-84.67|33.59|107|N|,South Gate|CA|US|-118.21|33.95|96|N|,South Gate|MD|US|-76.63|39.13|29|N|,South Hill|WA|US|-122.27|47.14|52|N|,South Jordan|UT|US|-111.93|40.56|66|N|,South Jordan Heights|UT|US|-111.95|40.56|37|N|,South Kingstown|RI|US|-71.52|41.45|30|N|,South Laurel|MD|US|-76.85|39.07|26|N|,South Lawndale|IL|US|-87.71|41.84|73|N|,South Miami Heights|FL|US|-80.38|25.6|36|N|,South Ozone Park|NY|US|-73.82|40.67|75|N|,South Pasadena|CA|US|-118.15|34.12|26|N|,South Peabody|MA|US|-70.95|42.51|50|N|,South Portland|ME|US|-70.24|43.64|25|N|,South Riverdale|ON|CA|-79.34|43.65|27|N|,South San Francisco|CA|US|-122.41|37.65|67|N|,South Shore|IL|US|-87.58|41.76|51|N|,South Suffolk|VA|US|-76.59|36.72|80|N|,South Surrey|BC|CA|-122.79|49.05|77|N|,South Tangerang|banten|ID|106.72|-6.29|1429|W|tangerang selatan,South Valley|NM|US|-106.68|35.01|40|N|,South Vineland|NJ|US|-75.03|39.45|58|N|,South Whittier|CA|US|-118.04|33.95|57|N|,Southampton|england|GB|-1.4|50.9|269|W|,Southaven|MS|US|-90.01|34.99|52|N|southhaven,Southend-on-Sea|england|GB|0.71|51.54|295|W|,Southfield|MI|US|-83.22|42.47|73|N|,Southgate|MI|US|-83.19|42.21|29|N|,Southglenn|CO|US|-104.95|39.59|42|N|,Southington|CT|US|-72.88|41.6|43|N|,Southlake|TX|US|-97.13|32.94|29|N|,Soweto|gauteng|ZA|27.86|-26.27|1695|W|,Soyapango|san salvador department|SV|-89.14|13.71|329|W|,Soyo|zaire|AO|12.37|-6.13|221|W|,Spanaway|WA|US|-122.43|47.1|27|N|,Spanish Fork|UT|US|-111.65|40.11|37|N|,Spanish Town|saint catherine parish|JM|-76.96|17.99|145|W|,Sparks|NV|US|-119.75|39.53|96|N|,Spartanburg|SC|US|-81.93|34.95|37|N|,Split|split dalmatia|HR|16.44|43.51|149|W|spalato,Spokane|WA|US|-117.43|47.66|229|NW|,Spokane Valley|WA|US|-117.24|47.67|94|N|,Spring|TX|US|-95.42|30.08|54|N|,Spring Hill|FL|US|-82.53|28.48|98|N|,Spring Hill|TN|US|-86.93|35.75|36|N|,Spring Valley|NV|US|-115.25|36.11|178|NW|,Spring Valley|NY|US|-74.04|41.11|32|N|,Spring Valley|CA|US|-117|32.74|28|N|,Springdale|AR|US|-94.13|36.19|77|N|,Springfield|MO|US|-93.3|37.22|170|NW|,Springfield|MA|US|-72.59|42.1|154|NW|,Springfield|IL|US|-89.64|39.8|114|N|,Springfield|OR|US|-123.02|44.05|60|N|,Springfield|OH|US|-83.81|39.92|59|N|,Springfield|VA|US|-77.19|38.79|30|N|,Springfield Gardens|NY|US|-73.76|40.66|30|N|,Springs|gauteng|ZA|28.4|-26.25|186|W|,Springville|UT|US|-111.61|40.17|32|N|,Spruce Grove|AB|CA|-113.92|53.53|38|N|,Sri Ganganagar|rajasthan|IN|73.87|29.92|237|W|,Srikakulam|andhra pradesh|IN|83.9|18.3|137|W|,Srinagar|jammu and kashmir|IN|74.81|34.09|1206|W|,St. Albert|AB|CA|-113.64|53.63|57|N|saint albert,St. Catharines|ON|CA|-79.24|43.17|136|NW|sainte catharine,St. Charles|MD|US|-76.92|38.61|33|N|,St. Charles|IL|US|-88.31|41.91|32|N|,St Helens|england|GB|-2.73|53.45|183|W|,St. James-Assiniboia East|MB|CA|-97.23|49.89|27|N|,St. John's|NL|CA|-52.71|47.56|110|N|saint john s;saint jean de terre neuve;saint jean;san juan de terranova;st johns,St. Johns|FL|US|-81.55|30.08|40|N|,St. Louis|MO|US|-90.2|38.63|279|NW|saint louis;san luis,St. Petersburg|FL|US|-82.68|27.77|257|NW|saint pete;saint petersburg,St. Thomas|ON|CA|-81.18|42.77|38|N|saint thomas,Stamford|CT|US|-73.54|41.05|128|N|,Stanton|CA|US|-117.99|33.8|38|N|,Starkville|MS|US|-88.82|33.45|25|N|,Staryy Oskol|belgorod oblast|RU|37.85|51.3|226|W|stary oskol;staryi oskol,State College|PA|US|-77.86|40.79|42|N|,Staten Island|NY|US|-74.14|40.56|468|NW|borough of staten island,Statesboro|GA|US|-81.78|32.45|30|N|,Statesville|NC|US|-80.89|35.78|26|N|,Stavanger|rogaland|NO|5.73|58.97|151|W|,Stavropol|stavropol kray|RU|41.96|45.03|433|W|stawropol;stauropoli,Sterling|VA|US|-77.43|39.01|27|N|,Sterling Heights|MI|US|-83.03|42.58|132|NW|,Sterlitamak|bashkortostan republic|RU|55.95|53.64|267|W|starletamaq,Stevens Point|WI|US|-89.57|44.52|26|N|,Steveston|BC|CA|-123.18|49.13|25|N|,Stillwater|OK|US|-97.06|36.12|48|N|,Stittsville|ON|CA|-75.92|45.25|40|N|,Stockbridge|GA|US|-84.23|33.54|28|N|,Stockholm|stockholm|SE|18.07|59.33|1515|W|estocolmo;stoccolma;stokolm;sztokholm;tukholma,Stockport|england|GB|-2.16|53.41|139|W|,Stockton|CA|US|-121.29|37.96|305|NW|,Stoke-on-Trent|england|GB|-2.19|53|258|W|,Stonecrest|GA|US|-84.13|33.71|50|N|,Stonegate-Queensway|ON|CA|-79.5|43.64|25|N|,Stoney Creek|ON|CA|-79.77|43.22|76|N|,Stouffville|ON|CA|-79.25|43.97|36|N|,Stoughton|MA|US|-71.1|42.13|26|N|,Stow|OH|US|-81.44|41.16|34|N|,Strasbourg|grand est|FR|7.75|48.58|274|W|estrasburgo;straatsburg;strasburg;strasburgo;strazburg;strassburg;strasburk,Stratford|CT|US|-73.13|41.18|51|N|,Stratford|ON|CA|-80.95|43.37|31|N|,Strawberry Hill|BC|CA|-122.88|49.13|41|N|,Streamwood|IL|US|-88.18|42.03|40|N|,Strogino|moscow|RU|37.41|55.82|152|W|,Strongsville|OH|US|-81.84|41.31|44|N|,Studio City|CA|US|-118.4|34.15|34|N|,Stuttgart|baden wurttemberg|DE|9.18|48.78|612|W|estugarda;stoccarda,Subang|west java|ID|107.76|-6.57|137|W|,Subang Jaya|selangor|MY|101.58|3.04|708|W|,Sucre|chuquisaca department|BO|-65.26|-19.03|224|W|,Suez|suez|EG|32.53|29.97|699|W|sues;suveys,Suffolk|VA|US|-76.58|36.73|88|N|,Sugar Land|TX|US|-95.63|29.62|88|N|,Suginami|ibaraki|JP|140.28|36.2|588|W|suginami city,Suicheng|jiangsu|CN|117.93|33.9|256|W|,Suihua|heilongjiang|CN|126.97|46.65|252|W|suej chua;tuy hoa,Suining|sichuan|CN|105.57|30.51|656|W|suej ning,Suisun|CA|US|-122.04|38.24|28|N|,Suita|osaka|JP|135.52|34.76|385|W|,Suitland|MD|US|-76.92|38.85|25|N|,Suitland-Silver Hill|MD|US|-76.93|38.85|33|N|silver hill,Suizhou|hubei|CN|113.36|31.71|618|W|suej cou;tuy chau,Sujangarh|rajasthan|IN|74.47|27.7|183|W|,Sujiatun|liaoning|CN|123.34|41.66|148|W|,Sukabumi|west java|ID|106.93|-6.92|365|W|kota sukabumi,Sukkur|sindh|PK|68.86|27.7|563|W|,Sukrah|ariana governorate|TN|10.25|36.88|159|W|,Sulaymaniyah|sulaymaniyah|IQ|45.43|35.56|878|W|as sulajmanijja;slemani;solimania;souleimaniye;sulaimaniyya;sulaymaniyya;suleimania;suleimaniya;sulejmanie;suleymaniye,Suleja|niger state|NG|7.18|9.18|162|W|,Sullana|piura|PE|-80.69|-4.9|160|W|,Sultan Pur Majra|delhi|IN|77.08|28.69|181|W|,Sultanah|medina region|SA|39.59|24.49|946|W|,Sultanbeyli|istanbul|TR|29.27|40.96|358|W|,Sultangazi|istanbul|TR|28.87|41.11|436|W|,Sumare|sao paulo|BR|-47.27|-22.82|279|W|,Sumayl|duhok|IQ|42.85|36.86|152|W|,Sumbawanga|rukwa|TZ|31.62|-7.97|303|W|,Sumbe|kwanza sul|AO|13.84|-11.21|205|W|,Sumedang|west java|ID|107.92|-6.86|200|W|,Sumgayit|sumqayit|AZ|49.67|40.59|427|W|sumgait;sumgjajet;sumqayit,Sumida|tokyo|JP|139.82|35.73|287|W|sumida city,Summerville|SC|US|-80.18|33.02|48|N|,Sumter|SC|US|-80.34|33.92|40|N|,Sumy|sumy|UA|34.8|50.92|256|W|soemy;soumy;sumi,Sun City|AZ|US|-112.27|33.6|37|N|,Sun Prairie|WI|US|-89.21|43.18|32|N|,Sunch'on|south pyongan|KP|125.93|39.43|437|W|,Suncheon|jeollanam do|KR|127.49|34.95|276|W|sunch on,Sunderland|england|GB|-1.38|54.9|170|W|,Sungai Buloh|selangor|MY|101.56|3.21|222|W|,Sungai Petani|kedah|MY|100.49|5.65|544|W|,Sunggal|north sumatra|ID|98.62|3.58|157|W|,Sunnyside|NY|US|-73.94|40.74|49|N|,Sunnyvale|CA|US|-122.04|37.37|155|NW|,Sunrise|FL|US|-80.11|26.13|84|N|,Sunrise Manor|NV|US|-115.07|36.21|189|NW|,Sunset|BC|CA|-123.1|49.22|36|N|,Sunset Park|NY|US|-74.01|40.65|126|N|,Sunshine Coast|queensland|AU|153.08|-26.66|398|W|costa de sunshine;costa do sunshine;cote du soleil,Superior|WI|US|-92.1|46.72|26|N|,Suqian|jiangsu|CN|118.3|33.95|1437|W|,Surabaya|east java|ID|112.75|-7.25|3018|W|kota surabaya;soerabaja;surabaia;surabaja,Surakarta|central java|ID|110.83|-7.56|526|W|kota surakarta,Surat|gujarat|IN|72.83|21.2|4591|W|surate,Surat Thani|surat thani|TH|99.33|9.14|132|W|,Surendranagar|gujarat|IN|71.65|22.73|179|W|,Surgut|khanty mansia|RU|73.42|61.26|300|W|soergoet;sourgout,Surprise|AZ|US|-112.33|33.63|143|NW|,Surrey|BC|CA|-122.83|49.11|568|NW|,Surrey City Centre|BC|CA|-122.85|49.19|33|N|,Surulere|lagos|NG|3.36|6.5|191|W|,Sutton|england|GB|-0.2|51.35|187|W|london borough of sutton,Suwaylih|balqa|JO|35.84|32.02|151|W|,Suwon|gyeonggi do|KR|127.01|37.29|1234|W|suwon si,Suzano|sao paulo|BR|-46.31|-23.54|320|W|,Suzhou|jiangsu|CN|120.6|31.3|6715|W|su cou;to chau,Suzhou|anhui|CN|116.98|33.64|1647|W|,Suzuka|mie|JP|136.58|34.88|195|W|,Swansea|wales|GB|-3.94|51.62|300|W|,Swindon|england|GB|-1.78|51.56|201|W|,Sydney|new south wales|AU|151.21|-33.87|5638|W|sidney;syd;sydney city,Sydney|NS|CA|-60.18|46.14|105|N|,Sykhiv|lviv|UA|24.06|49.79|151|W|,Syktyvkar|komi|RU|50.82|61.66|245|W|syktywkar;siktivkar,Sylhet|sylhet division|BD|91.87|24.9|237|W|srihotto,Sylmar|CA|US|-118.45|34.31|79|N|,Syracuse|NY|US|-76.15|43.05|144|NW|siracusa,Syracuse|UT|US|-112.06|41.09|27|N|,Syzran|samara oblast|RU|48.47|53.16|189|W|sysran,Szczecin|west pomerania|PL|14.55|53.43|395|W|stettin;estetino;stettino;stetin,Szeged|csongrad|HU|20.15|46.25|160|W|seghedin;seghedino;szegedin;szeghed,Ta'if|mecca region|SA|40.42|21.27|688|W|at ta if;taif;taef,Taboao da Serra|sao paulo|BR|-46.79|-23.63|273|W|,Tabora|tabora|TZ|32.83|-5.02|308|W|,Tabriz|east azerbaijan|IR|46.29|38.08|1424|W|tebriz;tabris,Tabuk|tabuk region|SA|36.57|28.4|667|W|tebuk,Tacambaro de Codallos|MX16|MX|-101.46|19.24|25|N|,Tacheng|xinjiang|CN|82.96|46.75|161|W|,Tachikawa|tokyo|JP|139.42|35.71|183|W|,Tacloban|eastern visayas|PH|125|11.24|259|W|kota tacloban;tacloban city,Tacna|tacna|PE|-70.25|-18.01|286|W|,Tacoma|WA|US|-122.44|47.25|222|NW|,Taganrog|rostov|RU|38.91|47.24|279|W|,Taguatinga|federal district|BR|-48.06|-15.83|193|W|,Taguig|national capital region|PH|121.08|14.52|1308|W|city of taguig,Tahoua|tahoua region|NE|5.27|14.89|159|W|,Tahta|sohag|EG|31.5|26.77|134|W|,Tai'an|shandong|CN|117.12|36.19|1735|W|,Tai Po|tai po|HK|114.17|22.45|274|W|,Taicang|jiangsu|CN|121.09|31.45|831|W|,Taichung|taiwan|TW|120.68|24.15|2850|W|kota taichung;taizhong;tchaj cung;dai trung,Tainan|taiwan|TW|120.21|22.99|1856|W|kota tainan;tainan city;tchaj nan;dai nam,Taipei|taiwan|TW|121.53|25.05|7871|W|kota taipei;taipeh;taipe;tajpej;tchaj pej,Taiping|perak|MY|100.73|4.85|217|W|,Taishan|guangdong|CN|112.78|22.25|145|W|dai son,Taito|tokyo|JP|139.78|35.71|211|W|taito city,Taiyuan|shanxi|CN|112.56|37.87|4303|W|tchaj juan;thai nguyen,Taiz|ta izz|YE|44.02|13.58|940|W|taez,Taizhou|jiangsu|CN|119.91|32.49|1607|W|tchaj cou;thai chau,Taizhou|zhejiang|CN|121.43|28.66|1485|W|tchaj cou;thai chau,Takamatsu|kagawa|JP|134.05|34.33|418|W|takamacu;takamatsu shi;takamatsushi,Takaoka|toyama|JP|137.02|36.75|170|W|,Takarazuka|hyogo|JP|135.36|34.8|226|W|,Takasaki|gunma|JP|139.02|36.33|372|W|,Takatsuki|osaka|JP|135.62|34.85|354|W|,Takeo|takeo|KH|104.78|10.99|843|W|,Takoradi|western|GH|-1.76|4.9|389|W|takoradze,Tala|MX14|MX|-103.7|20.65|35|N|,Talatona|luanda|AO|13.19|-8.92|500|W|,Talca|maule region|CL|-71.65|-35.42|197|W|,Talcahuano|biobio|CL|-73.12|-36.72|150|W|,Talhar|sindh|PK|68.81|24.88|200|W|,Talisay|central visayas|PH|123.85|10.24|133|W|talisay city,Tallahassee|FL|US|-84.28|30.44|201|NW|,Tallinn|harjumaa|EE|24.75|59.44|394|W|tallinna;talin;tallin;lindanas;reval;revel;raaveli,Tam Ky|da nang city|VN|108.47|15.57|165|W|,Tam O'Shanter-Sullivan|ON|CA|-79.3|43.78|27|N|,Tama|tokyo|JP|139.47|35.64|148|W|,Tamale|northern|GH|-0.84|9.4|464|W|,Taman Petaling|kuala lumpur|MY|101.65|3.2|423|W|,Tamarac|FL|US|-80.25|26.21|64|N|,Tambacounda|tambacounda|SN|-13.67|13.77|149|W|,Tambaram|tamil nadu|IN|80.13|12.92|174|W|,Tambov|tambov oblast|RU|41.44|52.74|293|W|tambow,Tamiami|FL|US|-80.4|25.76|55|N|,Tampa|FL|US|-82.46|27.95|414|NW|,Tampere|pirkanmaa|FI|23.79|61.5|260|W|tammerfors,Tampico|MX28|MX|-97.88|22.29|309|NW|,Tampines Estate||SG|103.94|1.36|265|W|tampines,Tampines New Town||SG|103.95|1.35|259|W|,Tan An|tay ninh|VN|106.41|10.54|215|W|,Tan Chau|an giang|VN|105.24|10.8|175|W|,Tando Adam|sindh|PK|68.66|25.77|174|W|,Tando Allahyar|sindh|PK|68.72|25.46|421|W|,Tando Bago|sindh|PK|68.97|24.79|426|W|,Tanga|tanga|TZ|39.1|-5.07|393|W|,Tangail|dhaka division|BD|89.92|24.25|180|W|,Tangerang|banten|ID|106.63|-6.18|1927|W|kota tangerang,Tanggu|tianjin|CN|117.65|39.02|535|W|taku,Tanghe|henan|CN|112.83|32.69|278|W|,Tangier|tanger tetouan al hoceima|MA|-5.8|35.77|1035|W|tanger;tanca;tangeri,Tangshan|hebei|CN|118.18|39.64|3372|W|tchang san,Tanjung Pinang|riau islands|ID|104.46|0.92|227|W|kota tanjungpinang,Tanjungbalai|north sumatra|ID|99.8|2.97|190|W|,Tanta|gharbia|EG|31|30.79|576|W|,Tantou|guangdong|CN|113.83|22.75|320|W|,Tantoyuca|MX30|MX|-98.23|21.35|30|N|,Tanzhou|guangdong|CN|113.47|22.26|382|W|,Taoyuan|taiwan|TW|121.3|24.99|475|W|taoyuan district;dao vien;taoyuan city,Taozhou|anhui|CN|119.41|30.91|146|W|,Tapachula|MX05|MX|-92.26|14.91|353|NW|,Tarakan|north kalimantan|ID|117.59|3.31|255|W|kota tarakan,Taranto|apulia|IT|17.25|40.46|198|W|tarde;tarent;tarente;tarento,Taraz|zhambyl|KZ|71.37|42.9|358|W|taras,Targu Mures|mures county|RO|24.56|46.54|212|W|neumarkt am mieresch;neumarkt;tirgu mures,Tariba|tachira|VE|-72.22|7.82|138|W|,Tarija|tarija department|BO|-64.73|-21.54|159|W|,Tarime|mara|TZ|34.37|-1.35|133|W|,Tarlac City|central luzon|PH|120.6|15.48|401|W|,Tarragona|catalonia|ES|1.25|41.12|141|W|tarragone,Tarsus|mersin|TR|34.89|36.92|350|W|tars;tarse;tarso,Tartus|tartus|SY|35.89|34.89|458|W|tartous,Tasek Glugor|penang|MY|100.5|5.48|135|W|tasek gelugor,Tashkent|tashkent|UZ|69.22|41.26|1978|W|tachkent;taschkent;tasjkent;taskent;taszkent,Tasikmalaya|west java|ID|108.22|-7.33|770|W|kota tasikmalaya,Taubate|sao paulo|BR|-45.56|-23.03|322|W|,Taunggyi|shan state|MM|97.04|20.79|160|W|,Taunton|MA|US|-71.09|41.9|56|N|,Tauranga|bay of plenty|NZ|176.17|-37.69|161|W|,Tawau|sabah|MY|117.89|4.24|372|W|tawao,Taxco de Alarcon|MX12|MX|-99.61|18.55|50|N|taxco,Tay Ho|hanoi|VN|105.81|21.07|168|W|,Tay Ninh|tay ninh|VN|106.1|11.31|135|W|,Taylor|MI|US|-83.27|42.24|61|N|,Taylorsville|UT|US|-111.94|40.67|60|N|,Taytay|calabarzon|PH|121.13|14.56|231|W|,Taza|fes meknes|MA|-4.01|34.21|162|W|,Tbilisi|tbilisi|GE|44.83|41.69|1049|W|tbilissi;tiblissi;tiflis,Teaneck|NJ|US|-74.02|40.9|40|N|,Teapa|MX27|MX|-92.95|17.56|26|N|,Tebessa|tebessa|DZ|8.12|35.4|194|W|tibissa,Tecamachalco|MX21|MX|-97.73|18.88|28|N|,Tecate|MX02|MX|-116.63|32.57|64|N|,Tecax|MX31|MX|-89.29|20.21|25|N|tekax,Tecoman|MX08|MX|-103.88|18.92|85|N|,Tegal|central java|ID|109.14|-6.87|297|W|kota tegal,Tegucigalpa|francisco morazan department|HN|-87.21|14.08|850|W|,Tehran|tehran|IR|51.42|35.69|7153|W|tahran;teera;teerao;teheran,Tehuacan|MX21|MX|-97.4|18.46|248|NW|,Teixeira de Freitas|bahia|BR|-39.74|-17.54|145|W|,Tejupilco de Hidalgo|MX15|MX|-100.15|18.9|25|N|,Tel Aviv|tel aviv|IL|34.78|32.08|432|W|tel aviv yaffo;tel aviv yafo;tel awiw,Telford|england|GB|-2.45|52.68|155|W|,Teluk Intan|perak|MY|101.02|4.02|232|W|teluk anson,Teluknaga|west java|ID|106.64|-6.1|175|W|,Tema|greater accra|GH|-0.02|5.67|155|W|,Temara|rabat sale kenitra|MA|-6.91|33.93|342|W|,Temecula|CA|US|-117.15|33.49|110|N|,Temirtau|karaganda|KZ|72.95|50.05|170|W|temirtaou;temirtaw;temyrtau,Temixco|MX17|MX|-99.23|18.85|97|N|,Tempe|AZ|US|-111.91|33.41|175|NW|,Tempe Junction|AZ|US|-111.94|33.41|158|NW|,Temple|TX|US|-97.34|31.1|72|N|,Temple City|CA|US|-118.06|34.11|36|N|,Temple Terrace|FL|US|-82.39|28.04|25|N|,Temuco|araucania|CL|-72.6|-38.74|238|W|,Teni|tamil nadu|IN|77.48|10.01|1034|W|theni,Tenosique|MX27|MX|-91.42|17.47|32|N|,Teofilo Otoni|minas gerais|BR|-41.51|-17.86|142|W|,Teoloyucan|MX15|MX|-99.18|19.74|51|N|,Tepatitlan de Morelos|MX14|MX|-102.76|20.82|91|N|,Tepeaca|MX21|MX|-97.9|18.97|27|N|tepeaca de negrete,Tepeji del Rio de Ocampo|MX13|MX|-99.34|19.9|80|N|,Tepexpan|MX15|MX|-98.94|19.61|102|N|,Tepic|MX18|MX|-104.89|21.51|332|NW|,Tepotzotlan|MX15|MX|-99.22|19.72|38|N|,Tequila|MX14|MX|-103.84|20.88|29|N|municipio tequila,Tequisquiapan|MX22|MX|-99.89|20.52|29|N|,Teresina|piaui|BR|-42.8|-5.09|871|W|,Teresopolis|rio de janeiro|BR|-42.98|-22.42|176|W|,Ternate|north maluku|ID|127.38|0.79|210|W|kota ternate,Ternopil|ternopil|UA|25.59|49.55|225|W|tarnopol;tarnopoli,Terrassa|catalonia|ES|2.02|41.57|218|W|,Terre Haute|IN|US|-87.41|39.47|60|N|,Terrebonne|QC|CA|-73.65|45.7|111|N|,Teshi Old Town|greater accra|GH|-0.11|5.58|144|W|teshie,Tete|tete|MZ|33.59|-16.16|357|W|vila de santiago maior,Tetouan|tanger tetouan al hoceima|MA|-5.37|35.58|415|W|tetuan;tetuao,Tetuan de las Victorias|madrid|ES|-3.7|40.46|155|W|tetuan,Tewksbury|MA|US|-71.23|42.61|29|N|,Texarkana|TX|US|-94.05|33.43|37|N|,Texarkana|AR|US|-94.04|33.44|30|N|,Texas City|TX|US|-94.9|29.38|47|N|,Texcoco de Mora|MX15|MX|-98.88|19.51|105|N|texcoco,Teziutlan|MX21|MX|-97.36|19.82|103|N|,Thai Nguyen|thai nguyen|VN|105.85|21.59|420|W|,Thane|maharashtra|IN|72.96|19.2|1841|W|thana,Thanesar|haryana|IN|76.83|29.97|155|W|,Thanh Hoa|thanh hoa province|VN|105.77|19.8|850|W|,Thanh Khe|da nang city|VN|108.19|16.07|201|W|,Thanh Pho Ba Ria|ho chi minh city hcmc|VN|107.17|10.5|235|W|,Thanh Xuan|hanoi|VN|105.8|20.99|293|W|,Thanjavur|tamil nadu|IN|79.14|10.79|291|W|tanjavur;tandzawur;tancavur,The Acreage|FL|US|-80.27|26.79|38|N|,The Bronx|NY|US|-73.87|40.85|1385|NW|bronx;borough of bronx,The Colony|TX|US|-96.89|33.09|41|N|,The Hague|south holland|NL|4.3|52.08|474|W|den haag;a haia;haag;haga;l aia;la haya;la haye;lahey;s gravenhage,The Hammocks|FL|US|-80.44|25.67|51|N|,The Trails of Frisco|TX|US|-96.87|33.16|51|N|,The Villages|FL|US|-81.96|28.93|51|N|,The Woodlands|TX|US|-95.49|30.16|93|N|woodlands,Thembisa|gauteng|ZA|28.23|-26|511|W|,Thenali|andhra pradesh|IN|80.64|16.24|164|W|,Thessaloniki|central macedonia|GR|22.93|40.64|317|W|salonica;ftohomana;salonic;salonicco;saloniki;selanik;solun;tesalonica;thessalonique,Thetford-Mines|QC|CA|-71.31|46.09|25|N|,Thi Tran GJai Tu|thai nguyen|VN|105.64|21.63|179|W|,Thi Tran GJong Trieu|quang ninh|VN|106.51|21.08|248|W|,Thi Tran Thuan Chau|son la province|VN|103.69|21.44|153|W|,Thies|thies|SN|-16.93|14.79|317|W|,Thies Nones|thies|SN|-16.97|14.78|252|W|,Thika|nairobi county|KE|37.07|-1.03|251|W|,Thiruvananthapuram|kerala|IN|76.95|8.49|788|W|tiruvanantapuram;trivandrum,Thomasville|NC|US|-80.08|35.88|27|N|,Thoothukudi|tamil nadu|IN|78.13|8.77|410|W|thoothukkudi;tuticorin,Thornton|CO|US|-104.97|39.87|133|NW|,Thot Not|can tho city|VN|105.53|10.27|158|W|,Thousand Oaks|CA|US|-118.84|34.17|129|N|,Thrissur|kerala|IN|76.22|10.52|315|W|trichur,Throgs Neck|NY|US|-73.82|40.82|33|N|,Thu Dau Mot|ho chi minh city hcmc|VN|106.65|10.98|373|W|,Thu GJuc|ho chi minh city hcmc|VN|106.77|10.85|524|W|,Thuan An|ho chi minh city hcmc|VN|106.71|10.92|588|W|,Thuan Thanh|bac ninh|VN|106.08|21.05|199|W|,Thunder Bay|ON|CA|-89.25|48.38|108|N|,Thuqbah|eastern province|SA|50.2|26.26|248|W|,Tianjin|tianjin|CN|117.18|39.14|11090|W|tchien tin;thien tan;tiencin;tientsin,Tianshui|gansu|CN|105.74|34.58|1212|W|,Tiaret|tiaret|DZ|1.32|35.37|178|W|tijarat,Ticul|MX31|MX|-89.53|20.4|32|N|,Tieling|liaoning|CN|123.84|42.29|333|W|,Tierra Blanca|MX30|MX|-96.36|18.45|47|N|,Tigard|OR|US|-122.77|45.43|51|N|,Tijuana|MX02|MX|-117|32.5|1922|NW|,Tilburg|north brabant|NL|5.09|51.56|221|W|tilburgo,Timika|central papua|ID|136.68|-4.61|142|W|,Timisoara|timis county|RO|21.23|45.75|250|W|temeswar;freidorf;josephs stadt;temeschburg;temeschwar;temesvar,Timmins|ON|CA|-81.33|48.47|41|N|,Timon|maranhao|BR|-42.84|-5.09|174|W|,Tin Shui Wai|yuen long|HK|114|22.46|286|W|,Tinh Bien|an giang|VN|104.94|10.6|143|W|,Tinley Park|IL|US|-87.78|41.57|57|N|,Tirana|tirana|AL|19.82|41.33|418|W|tiran,Tiraspol|transnistria|MD|29.63|46.84|157|W|tiraspoli;tyraspol,Tirmiz|surxondaryo region|UZ|67.28|37.22|182|W|termez;termiz,Tiruchirappalli|tamil nadu|IN|78.7|10.82|1022|W|tiruchchirappalli;tiruchirapalli;tiruccirappalli;tiruchi;trichinopoly;trichy,Tirunelveli|tamil nadu|IN|77.68|8.73|1435|W|tirunelweli,Tirupati|andhra pradesh|IN|79.42|13.64|295|W|tirumala tirupati,Tiruppur|tamil nadu|IN|77.35|11.12|963|W|tirupur,Tiruvannamalai|tamil nadu|IN|79.07|12.23|145|W|,Tiruvottiyur|tamil nadu|IN|80.3|13.16|249|W|,Titusville|FL|US|-80.81|28.61|45|N|,Tizayuca|MX13|MX|-98.98|19.84|43|N|,Tizimin|MX31|MX|-88.15|21.14|46|N|,Tlahuac|MX09|MX|-99.01|19.29|305|NW|delegacion tlahuac,Tlajomulco de Zuniga|MX14|MX|-103.45|20.47|30|N|,Tlalnepantla|MX15|MX|-99.2|19.54|653|NW|tlalnepantla de baz;tlanepantla de baz,Tlalpan|MX09|MX|-99.16|19.3|574|NW|delegacion tlalpan,Tlapa de Comonfort|MX12|MX|-98.58|17.55|46|N|,Tlapacoyan|MX30|MX|-97.21|19.96|35|N|,Tlaquepaque|MX14|MX|-103.29|20.64|650|NW|san pedro tlaquepaque,Tlaxcala|MX29|MX|-98.24|19.32|84|N|tlaxcala city;tlaxcala de xicotencatl,Tlemcen|tlemcen|DZ|-1.31|34.88|173|W|tilimsan;tremecen,Toamasina|atsinanana|MG|49.4|-18.15|345|W|tamatave,Tobruk|al butnan|LY|23.95|32.09|141|W|thubruq;tobroek;tobrouk;tobruch,Tochigi|tochigi|JP|139.73|36.38|159|W|,Tokch'on|south pyongan|KP|126.26|39.75|237|W|,Tokorozawa|saitama|JP|139.47|35.8|344|W|,Tokushima|tokushima|JP|134.57|34.07|267|W|tokusima,Tokyo|tokyo|JP|139.69|35.69|9733|W|tokio;toquio;edo,Toledo|OH|US|-83.56|41.66|265|NW|,Toledo|central visayas|PH|123.64|10.38|206|W|toledo city,Toledo|parana|BR|-53.74|-24.71|160|W|,Toli-Toli|central sulawesi|ID|120.82|1.04|242|W|tolitoli,Toliara|atsimo andrefana|MG|43.67|-23.35|178|W|tulear,Toluca|MX15|MX|-99.65|19.29|489|NW|toluca de lerdo,Tolyatti|samara oblast|RU|49.35|53.53|702|W|togliatti;togliattigrad;tol yatti;toliatti;toljatti;stavropol,Tomakomai|hokkaido|JP|141.6|42.64|174|W|,Toms River|NJ|US|-74.2|39.95|88|N|,Tomsk|tomsk oblast|RU|84.98|56.5|574|W|,Tonala|MX14|MX|-103.24|20.62|408|NW|,Tonala|MX05|MX|-93.75|16.09|35|N|,Tondabayashicho|osaka|JP|135.6|34.5|132|W|tondabayashi,Tongchuan|shaanxi|CN|108.95|34.9|417|W|,Tongchuanshi|shaanxi|CN|109.08|35.07|223|W|tchung cchuan,Tonghua|jilin|CN|125.93|41.72|510|W|tchung chua;thong hoa,Tongliao|inner mongolia|CN|122.27|43.61|261|W|thong lieu,Tongling|anhui|CN|117.78|30.95|402|W|,Tongshan|jiangsu|CN|117.16|34.18|329|W|xuzhou,Tongzhou|beijing|CN|116.66|39.9|163|W|,Tonk|rajasthan|IN|75.79|26.17|165|W|,Tooele|UT|US|-112.3|40.53|33|N|,Toowoomba|queensland|AU|151.95|-27.56|142|W|,Topeka|KS|US|-95.68|39.05|125|N|,Torbat-e Heydariyeh|razavi khorasan|IR|59.22|35.27|140|W|,Tordher|khyber pakhtunkhwa|PK|72.29|33.99|150|W|,Toronto|ON|CA|-79.4|43.71|2794|NW|,Torrance|CA|US|-118.34|33.84|143|NW|,Torreon|MX07|MX|-103.42|25.54|735|NW|,Torrington|CT|US|-73.12|41.8|34|N|,Torun|kujawsko pomorskie|PL|18.6|53.01|196|W|thorn,Toshima|tokyo|JP|139.74|35.76|301|W|toshima city,Tottenham|england|GB|-0.07|51.6|130|W|,Tottori-shi|tottori|JP|134.23|35.5|188|W|,Touba|diourbel region|SN|-15.88|14.86|1120|W|,Touggourt|touggourt|DZ|6.07|33.11|143|W|tukkurt,Toulon|provence alpes cote d azur|FR|5.93|43.12|168|W|tolone;tolon;tulon,Toulouse|occitanie|FR|1.44|43.6|511|W|tolosa;tolosa de francia;tuluza,Tours|centre val de loire|FR|0.7|47.39|141|W|,Town 'n' Country|FL|US|-82.58|28.01|78|N|,Townsville|queensland|AU|146.81|-19.27|201|W|,Towson|MD|US|-76.6|39.4|55|N|,Toyama|toyama|JP|137.22|36.7|415|W|toyama shi;toyamashi,Toyohashi|aichi|JP|137.38|34.77|377|W|toyohashi shi,Toyokawa|aichi|JP|137.4|34.82|184|W|,Toyonaka|osaka|JP|135.47|34.78|401|W|,Toyota|aichi|JP|137.15|35.08|426|W|tojota,Tra Vinh|vinh long|VN|106.34|9.95|160|W|thanh pho tra vinh,Trabzon|trabzon|TR|39.73|41.01|244|W|trapisonda;trebisonda;trebizonda,Tracy|CA|US|-121.43|37.74|87|N|,Trang Bang|tay ninh|VN|106.36|11.03|161|W|,Trenton|NJ|US|-74.74|40.22|89|N|,Tres Lagoas|mato grosso do sul|BR|-51.7|-20.79|143|W|,Tri-Cities|WA|US|-119.2|46.25|244|NW|,Trieste|friuli venezia giulia|IT|13.78|45.65|204|W|terst;triest,Trindade|goias|BR|-49.49|-16.65|142|W|,Tripoli|tripoli|LY|13.19|32.89|1302|W|trablus;tripolis;trypolis,Tripoli|north lebanon|LB|35.84|34.43|229|W|trablussam;tripolis;trypolis,Trois-Rivieres|QC|CA|-72.55|46.35|144|NW|,Trondheim|trondelag|NO|10.4|63.43|216|W|,Troy|MI|US|-83.15|42.61|83|N|,Troy|NY|US|-73.69|42.73|49|N|,Troy|OH|US|-84.2|40.04|25|N|,Trujillo|la libertad|PE|-79.03|-8.12|1067|W|,Trumbull|CT|US|-73.2|41.24|36|N|,Tsentralnyi|donetsk|UA|37.55|47.1|179|W|tsentralnyi rayon;molotovskyi;molotovskyi rayon;zhovtnevyi;zhovtnevyi rayon,Tseung Kwan O|sai kung district|HK|114.25|22.33|412|W|,Tshikapa|kasai|CD|20.8|-6.42|634|W|,Tsing Yi Town|kwai tsing district|HK|114.1|22.35|182|W|tsing yi,Tsu|mie|JP|136.52|34.73|274|W|,Tsuchiura|ibaraki|JP|140.21|36.09|144|W|,Tsuen Wan|tsuen wan|HK|114.11|22.37|318|W|,Tsukuba|ibaraki|JP|140.12|36.08|241|W|cukuba,Tualatin|OR|US|-122.76|45.38|27|N|,Tuckahoe|VA|US|-77.56|37.59|44|N|,Tucker|GA|US|-84.22|33.85|27|N|,Tucson|AZ|US|-110.93|32.22|542|NW|,Tuen Mun|tuen mun|HK|113.97|22.39|507|W|tuenmen,Tuerkmenabat|lebap|TM|63.58|39.07|230|W|turkmenabat;charjou,Tuguegarao|cagayan valley|PH|121.72|17.62|167|W|tuguegarao city;tuguegaro,Tujunga|CA|US|-118.29|34.25|26|N|,Tula|tula oblast|RU|37.62|54.2|482|W|toela;toula,Tula de Allende|MX13|MX|-99.34|20.05|28|N|,Tulancingo|MX13|MX|-98.36|20.08|102|N|tulancingo de bravo,Tulare|CA|US|-119.35|36.21|62|N|,Tulsa|OK|US|-95.99|36.15|413|NW|,Tultepec|MX15|MX|-99.13|19.68|65|N|,Tultitlan de Mariano Escobedo|MX15|MX|-99.17|19.65|28|N|,Tulua|valle del cauca department|CO|-76.2|4.08|221|W|,Tumkur|karnataka|IN|77.1|13.34|307|W|tumakuru,Tumxuk|xinjiang|CN|79.06|39.87|135|W|tumushuke,Tunduma|songwe|TZ|32.77|-9.3|219|W|,Tungi|dhaka division|BD|90.4|23.89|337|W|tongi,Tunis|tunis governorate|TN|10.17|36.82|693|W|tunez;tunes;tunisi;tunus,Tunja|boyaca|CO|-73.36|5.54|172|W|,Tuong Mai|hanoi|VN|105.86|20.99|136|W|,Tupelo|MS|US|-88.7|34.26|35|N|,Turin|piedmont|IT|7.69|45.07|847|W|torino;turijn;turim;turyn,Turkistan|turkistan|KZ|68.26|43.29|227|W|turkestan;turquistao,Turku|southwest finland|FI|22.27|60.45|206|W|abo,Turlock|CA|US|-120.85|37.49|72|N|,Turmero|aragua|VE|-67.47|10.23|344|W|,Turpan|xinjiang|CN|89.18|42.95|273|W|tourfan;turfan,Tuscaloosa|AL|US|-87.57|33.21|111|N|,Tustin|CA|US|-117.83|33.75|80|N|,Tuxpam de Rodriguez Cano|MX30|MX|-97.41|20.96|84|N|tuxpam,Tuxpan|MX14|MX|-103.38|19.56|27|N|,Tuxtepec|MX20|MX|-96.13|18.09|159|NW|san juan bautista;san juan bautista tuxtla,Tuxtla|MX05|MX|-93.12|16.75|604|NW|tuxtla gtz;tuxtla gutierrez,Tuy Hoa|dak lak|VN|109.32|13.1|155|W|,Tuzla|federation of b h|BA|18.67|44.54|142|W|,Tver|tver oblast|RU|35.9|56.86|420|W|twer;kalinin,Twentynine Palms|CA|US|-116.05|34.14|26|N|,Twin Falls|ID|US|-114.46|42.56|47|N|,Tychy|silesia|PL|18.97|50.14|130|W|tichau,Tyler|TX|US|-95.3|32.35|103|N|,Tyre|south governorate|LB|35.19|33.27|135|W|sur;tiro;tyr;tyros;tyrus,Tyumen|tyumen oblast|RU|65.53|57.15|768|W|tioumen;tjumen;tiumen;tjoemen;tumen,Ube|yamaguchi|JP|131.25|33.94|173|W|,Uberaba|minas gerais|BR|-47.93|-19.75|356|W|,Uberlandia|minas gerais|BR|-48.28|-18.92|754|W|,Udaipur|rajasthan|IN|73.71|24.59|451|W|udajpur,Udon Thani|udon thani|TH|102.79|17.42|130|W|,Udupi|karnataka|IN|74.75|13.33|165|W|,Ueda|nagano|JP|138.28|36.4|157|W|,UEruemqi|xinjiang|CN|87.6|43.8|3029|W|urumqi;urumchi;urumczi;urumtschi;urumci;dihua,UEskuedar|istanbul|TR|29.01|41.02|524|W|uskudar;scutari;skutari,Ufa|bashkortostan republic|RU|55.97|54.74|1120|W|oefa;oufa,Ugep|cross river state|NG|8.08|5.81|200|W|,Uige|uige|AO|15.06|-7.61|322|W|,Uijeongbu-si|gyeonggi do|KR|127.05|37.74|479|W|uijeongbu,Uji|kyoto|JP|135.8|34.89|192|W|udzi,Ujjain|madhya pradesh|IN|75.78|23.18|515|W|udzdzain,Ulan Bator|ulaanbaatar|MN|106.88|47.91|844|W|ulaanbaatar;oulan bator;ulaan baatar;ulan batur;ulanbatar;ula bator,Ulan-Ude|buryatiya republic|RU|107.6|51.83|360|W|oelan oede;oulan oude,Ulanhot|inner mongolia|CN|122.08|46.08|165|W|,Ulanqab|inner mongolia|CN|113.13|40.99|550|W|,Ulhasnagar|maharashtra|IN|73.15|19.22|516|W|,Ulsan|ulsan|KR|129.32|35.54|1098|W|ulsan si,Ulu Bedok||SG|103.93|1.33|276|W|,Uluberiya|west bengal|IN|88.1|22.48|235|W|,Ulyanovsk|ulyanovsk|RU|48.39|54.33|626|W|oulianovsk;uljanowsk;oeljanovsk;ul janovsk;ulianovsk;uljanovsk,Uman|MX31|MX|-89.75|20.88|39|N|,Umarkot|sindh|PK|69.74|25.36|144|W|,Umea|vasterbotten|SE|20.26|63.83|130|W|uumaja,Umraniye|istanbul|TR|29.12|41.02|573|W|,Umuahia|abia state|NG|7.49|5.52|370|W|,Unaizah|al qassim region|SA|44|26.1|183|W|,Ungaran|central java|ID|110.41|-7.14|171|W|,Union|NJ|US|-74.26|40.7|56|N|,Union City|CA|US|-122.02|37.6|74|N|,Union City|NJ|US|-74.02|40.78|69|N|east cost cities,Universal City|CA|US|-118.35|34.14|105|N|,University|FL|US|-82.44|28.07|41|N|,University City|MO|US|-90.31|38.66|35|N|,University Heights|SK|CA|-106.58|52.14|51|N|,University Heights|NY|US|-73.91|40.86|27|N|,University of Texas|TX|US|-97.74|30.29|53|N|,University Park|FL|US|-80.37|25.75|26|N|,University Place|WA|US|-122.55|47.24|32|N|,Unnao|uttar pradesh|IN|80.49|26.55|161|W|,Upland|CA|US|-117.65|34.1|76|N|,Upper Alton|IL|US|-90.15|38.91|29|N|,Upper Arlington|OH|US|-83.06|39.99|34|N|,Upper West Side|NY|US|-73.98|40.79|226|NW|,Uppsala|uppsala|SE|17.64|59.86|177|W|upsala,Uptown|IL|US|-87.65|41.97|55|N|,Urayasu|chiba|JP|139.9|35.66|171|W|,Urbana|IL|US|-88.21|40.11|42|N|,Urbandale|IA|US|-93.71|41.63|44|N|,Urdaneta|ilocos|PH|120.57|15.98|145|W|kota urdaneta;urdaneta de pangasinan,Urganch|xorazm region|UZ|60.63|41.55|145|W|ourguentch;urgench;urgentj;urgenc,Uriangato|MX11|MX|-101.18|20.14|51|N|,Ursynow|mazovia|PL|21.05|52.15|149|W|,Uruapan|MX16|MX|-102.06|19.42|299|NW|uruapan del progreso,Usak|usak|TR|29.41|38.67|369|W|,Usera|madrid|ES|-3.7|40.39|141|W|,Ussuriysk|primorye|RU|131.96|43.8|157|W|oessoeriejsk;ussurijsk;ussuryjsk,Ust-Kamenogorsk|east kazakhstan|KZ|82.61|49.97|319|W|ust kamienogorsk;oskemen,Utica|NY|US|-75.23|43.1|61|N|,Utrecht|utrecht|NL|5.12|52.09|376|W|utreque,Utsunomiya|tochigi|JP|139.88|36.57|518|W|ucunomija,Uvira|south kivu|CD|29.14|-3.4|407|W|,Uyo|akwa ibom state|NG|7.93|5.05|436|W|,Vacaville|CA|US|-121.99|38.36|96|N|,Vadodara|gujarat|IN|73.21|22.3|1822|W|,Val-d'Or|QC|CA|-77.8|48.1|25|N|,Val-des-Arbres|QC|CA|-73.68|45.6|40|N|,Valdivia|los rios region|CL|-73.25|-39.81|133|W|,Valdosta|GA|US|-83.28|30.83|55|N|,Valencia|carabobo|VE|-68|10.16|1619|W|,Valencia|valencia|ES|-0.38|39.47|824|W|valence;valencie;valensiya;valenza;walencja,Valencia|CA|US|-118.61|34.44|148|NW|,Valente Diaz|MX30|MX|-96.22|19.16|25|N|,Valenzuela|national capital region|PH|120.97|14.7|725|W|,Valera|trujillo|VE|-70.6|9.32|244|W|,Valinhos|sao paulo|BR|-47|-22.97|132|W|,Valladolid|castille and leon|ES|-4.72|41.66|300|W|pincia;pucela,Valladolid|MX31|MX|-88.2|20.69|48|N|,Valle de Bravo|MX15|MX|-100.13|19.2|25|N|,Valle de La Pascua|guarico|VE|-66.01|9.22|153|W|,Valle de Santiago|MX11|MX|-101.19|20.39|68|N|,Valle Hermoso|MX28|MX|-97.81|25.67|48|N|,Valledupar|cesar department|CO|-73.25|10.47|490|W|,Vallejo|CA|US|-122.26|38.1|121|N|,Valley Glen|CA|US|-118.42|34.19|60|N|,Valley Stream|NY|US|-73.71|40.66|37|N|,Valparaiso|valparaiso|CL|-71.63|-33.04|282|W|,Valparaiso|IN|US|-87.06|41.47|32|N|,Valparaiso de Goias|goias|BR|-47.98|-16.07|218|W|,Valrico|FL|US|-82.24|27.94|35|N|,Valsad|gujarat|IN|72.93|20.61|139|W|,Van|van|TR|43.38|38.49|525|W|,Van Nuys|CA|US|-118.45|34.19|136|NW|,Vancouver|BC|CA|-123.12|49.25|662|NW|vancover,Vancouver|WA|US|-122.66|45.64|196|NW|,Vanderbijlpark|gauteng|ZA|27.84|-26.71|246|W|,Vantaa|uusimaa|FI|25.04|60.29|252|W|vanda,Vapi|gujarat|IN|72.9|20.37|163|W|,Varamin|tehran|IR|51.65|35.32|225|W|,Varanasi|uttar pradesh|IN|83.01|25.32|1164|W|benares;kashi;waranasi,Varginha|minas gerais|BR|-45.43|-21.55|136|W|,Varna|varna|BG|27.91|43.22|318|W|warna,Varzea Grande|mato grosso|BR|-56.13|-15.65|300|W|,Vasyl'evsky Ostrov|st petersburg|RU|30.25|59.94|203|W|vasilinsaari,Vaudreuil-Dorion|QC|CA|-74.03|45.4|25|N|,Vaughan|ON|CA|-79.5|43.84|323|NW|,Velikiy Novgorod|novgorod oblast|RU|31.27|58.52|222|W|velikij novgorod;novgorod;nowogrod wielki;veliki novgorod;veliky novgorod;weliki nowgorod,Vellore|tamil nadu|IN|79.13|12.92|484|W|velur,Venice|CA|US|-118.46|33.99|40|N|venice beach,Ventura|CA|US|-119.29|34.28|96|N|,Venustiano Carranza|MX09|MX|-99.1|19.44|430|NW|,Veracruz|MX30|MX|-96.14|19.18|428|NW|veracruz llave,Veraval|gujarat|IN|70.37|20.91|171|W|,Verdun|QC|CA|-73.57|45.46|69|N|,Vereeniging|gauteng|ZA|27.93|-26.67|474|W|,Verhunskyi|luhansk|UA|39.37|48.59|185|W|verhunskyi rayon;zhovtnevyi;zhovtnevyi rayon,Vermont Square|CA|US|-118.3|34|47|N|,Vernon|BC|CA|-119.27|50.27|40|N|,Vernon Hills|IL|US|-87.98|42.22|26|N|,Verona|veneto|IT|10.99|45.44|258|W|verone;werona,Vespasiano|minas gerais|BR|-43.92|-19.69|138|W|,Vestal|NY|US|-76.05|42.09|28|N|,Vestavia Hills|AL|US|-86.79|33.45|34|N|,Viamao|rio grande do sul|BR|-51.02|-30.08|231|W|,Viana|luanda|AO|13.37|-8.91|865|W|,Victor Rosales|MX32|MX|-102.7|22.95|32|N|,Victoria|central and western|HK|114.14|22.29|956|W|,Victoria|BC|CA|-123.35|48.44|289|NW|,Victoria|TX|US|-97|28.81|67|N|,Victoria de Durango|MX10|MX|-104.66|24.02|518|NW|durango,Victoria-Downtown|BC|CA|-123.36|48.43|46|N|downtown victoria,Victoria-Fraserview|BC|CA|-123.07|49.22|31|N|,Victoriaville|QC|CA|-71.97|46.05|34|N|,Victorville|CA|US|-117.29|34.54|122|N|,Vidisha|madhya pradesh|IN|77.81|23.53|155|W|vidisa,Vienna|state of vienna|AT|16.37|48.21|1691|W|viena;viyana;wien;vienne;vien;viden;wenen;wieden;bec,Vientiane|vientiane prefecture|LA|102.6|17.97|840|W|vienciana;vientian;wientian,Viet Tri|phu tho|VN|105.4|21.32|415|W|,Viet Yen|bac ninh|VN|106.13|21.27|205|W|distretto di viet yen,Vigo|galicia|ES|-8.72|42.23|293|W|,Vijayapura|karnataka|IN|75.72|16.82|327|W|bidzapur;bijapur;vijapura,Vijayawada|andhra pradesh|IN|80.65|16.51|1143|W|vidzajavada;widzajawada;bejawada,Vila Andrade|sao paulo|BR|-46.73|-23.63|168|W|,Vila Curuca|sao paulo|BR|-46.42|-23.51|140|W|,Vila Flor|luanda|AO|13.31|-8.98|256|W|,Vila Jacui|sao paulo|BR|-46.46|-23.5|134|W|,Vila Velha|espirito santo|BR|-40.29|-20.33|394|W|,Villa Canales|guatemala|GT|-90.53|14.48|155|W|,Villa Mercedes|biobio|CL|-71.98|-37.4|131|W|,Villa Nueva|guatemala|GT|-90.59|14.53|618|W|,Villa Vicente Guerrero|MX29|MX|-98.17|19.12|60|N|,Villaflores|MX05|MX|-93.27|16.23|37|N|,Villagran|MX11|MX|-101|20.51|27|N|,Villahermosa|MX27|MX|-92.94|17.99|353|NW|villa hermosa,Villavicencio|meta department|CO|-73.63|4.13|321|W|,Ville-Emard|QC|CA|-73.6|45.45|30|N|,Ville-Marie|QC|CA|-73.57|45.5|104|N|,Villeray-Saint-Michel-Parc-Extension|QC|CA|-73.61|45.56|144|NW|,Villeurbanne|rhone alpes|FR|4.88|45.77|131|W|,Vilnius|vilnius|LT|25.28|54.69|542|W|vilna;vilnus;wilno;wilna,Vina del Mar|valparaiso|CL|-71.55|-33.02|334|W|,Vineland|NJ|US|-75.03|39.49|60|N|,Vinh|nghe an province|VN|105.69|18.67|790|W|,Vinh Chau|can tho city|VN|105.98|9.32|183|W|,Vinh Long|vinh long|VN|105.97|10.25|137|W|,Vinnytsya|vinnytsia|UA|28.47|49.23|430|W|vinnycja;vinniza;vinnytsia;winnica;winnyzja,Viransehir|sanliurfa|TR|39.76|37.22|154|W|,Virar|maharashtra|IN|72.81|19.46|1222|W|,Virginia Beach|VA|US|-75.98|36.85|454|NW|virginian bch,Visakhapatnam|andhra pradesh|IN|83.2|17.68|1063|W|vishakhapatnam;vizag,Visalia|CA|US|-119.29|36.33|130|NW|,Vista|CA|US|-117.24|33.2|100|N|,Vitebsk|vitebsk|BY|30.2|55.19|358|W|wizebsk;vicebsk;vitsebsk;vitsyebsk;witebsk,Vitoria|espirito santo|BR|-40.34|-20.32|312|W|,Vitoria da Conquista|bahia|BR|-40.84|-14.87|396|W|,Vitoria de Santo Antao|pernambuco|BR|-35.29|-8.12|134|W|,Vizianagaram|andhra pradesh|IN|83.41|18.12|228|W|,Vladikavkaz|north ossetia alania|RU|44.67|43.04|306|W|vladicaucaso;wladikawkas;wladykaukaz,Vladimir|vladimir oblast|RU|40.4|56.14|357|W|wladimir;wladymir;wlodzimierz,Vladivostok|primorye|RU|131.87|43.11|604|W|vladyvostok;wladiwostok;wladywostok,Volgodonsk|rostov|RU|42.15|47.51|167|W|wolgodonsk,Volgograd|volgograd oblast|RU|44.5|48.71|1013|W|volgogrado;wolgograd;estalingrado;stalingrad;stalingrado;tsaritsyn;zarizyn,Vologda|vologda oblast|RU|39.88|59.22|312|W|wologda,Volta Redonda|rio de janeiro|BR|-44.1|-22.52|279|W|v redonda,Volzhsky|volgograd oblast|RU|44.78|48.79|323|W|volzjskij;volzski;wolschski,Voronezh|voronezh oblast|RU|39.19|51.67|1047|W|voronej;voronezj;voronez;woronesch;woronez,Votorantim|sao paulo|BR|-47.44|-23.55|133|W|,Vryheid|kwazulu natal|ZA|30.79|-27.77|150|W|,Vung Tau|ho chi minh city hcmc|VN|107.08|10.35|464|W|cap saint jacques;cape saint james;saint james;st james;ville du cap,Vyhurivshchyna-Troyeshchyna|kyiv city|UA|30.6|50.51|240|W|,Vykhino-Zhulebino|moscow|RU|37.81|55.7|216|W|,Waco|TX|US|-97.15|31.55|132|NW|,Wad Medani|al jazirah|SD|33.52|14.4|332|W|vad medeni;wad madani,Wadi as Sir|amman|JO|35.82|31.95|181|W|wadi al seer,Wafangdian|liaoning|CN|122.01|39.62|454|W|,Wah Cantt|punjab|PK|72.75|33.77|400|W|,Waiau-Pacific Palisades|HI|US|-157.95|21.4|47|N|,Waipahu|HI|US|-158.01|21.39|38|N|,Wakayama|wakayama|JP|135.17|34.23|356|W|,Wake Forest|NC|US|-78.51|35.98|38|N|,Wakefield|NY|US|-73.85|40.9|52|N|,Waldorf|MD|US|-76.94|38.62|67|N|,Walla Walla|WA|US|-118.34|46.06|32|N|,Walnut|CA|US|-117.87|34.02|30|N|,Walnut Creek|CA|US|-122.06|37.91|68|N|,Walnut Grove|BC|CA|-122.64|49.16|25|N|,Walsall|england|GB|-1.98|52.59|172|W|,Waltham|MA|US|-71.24|42.38|63|N|,Wan Chai|wan chai|HK|114.17|22.28|166|W|wanchai,Wandsbek|hamburg|DE|10.08|53.58|411|W|,Wangsa Maju|kuala lumpur|MY|101.74|3.2|215|W|,Wanning|hainan|CN|110.38|18.8|545|W|,Wanxian|chongqing|CN|108.37|30.82|859|W|wan hsien;wanshien,Wanzhou|chongqing|CN|108.4|30.76|1545|W|,Warangal|telangana|IN|79.58|18|704|W|,Warder|somali|ET|45.34|6.97|450|W|,Warner Robins|GA|US|-83.63|32.62|73|N|,Warren|MI|US|-83.01|42.49|134|NW|,Warren|OH|US|-80.82|41.24|40|N|,Warri|delta|NG|5.75|5.52|910|W|,Warrington|england|GB|-2.58|53.39|172|W|,Warsaw|mazovia|PL|21.01|52.23|1702|W|warszawa;varsavia;varsova;varsovia;varsovie;varsava;warsawa;warschau,Warwick|RI|US|-71.42|41.7|81|N|,Wasco|CA|US|-119.34|35.59|26|N|,Washington|DC|US|-77.04|38.9|689|NW|washington d c;district of columbia;washington dc;waszyngton;territory of columbia,Washington Heights|NY|US|-73.94|40.85|152|NW|,Watampone|south sulawesi|ID|120.33|-4.54|149|W|,Waterbury|CT|US|-73.05|41.56|108|N|,Waterford|MI|US|-83.41|42.69|75|N|,Waterfront Communities-The Island|ON|CA|-79.38|43.63|65|N|,Waterloo|ON|CA|-80.52|43.47|104|N|,Waterloo|IA|US|-92.34|42.49|68|N|,Watertown|MA|US|-71.18|42.37|31|N|,Watertown|NY|US|-75.91|43.97|26|N|,Watsonville|CA|US|-121.76|36.91|53|N|,Watthana|bangkok|TH|100.59|13.73|171|W|vadhana,Waukegan|IL|US|-87.84|42.36|88|N|,Waukesha|WI|US|-88.23|43.01|71|N|,Wausau|WI|US|-89.63|44.96|39|N|,Wauwatosa|WI|US|-88.01|43.05|47|N|,Waxahachie|TX|US|-96.85|32.39|33|N|,Wayne|NJ|US|-74.28|40.93|57|N|,Wayne|PA|US|-75.39|40.04|30|N|,Wazirabad|punjab|PK|74.12|32.44|152|W|,Weatherford|TX|US|-97.8|32.76|28|N|,Weifang|shandong|CN|119.1|36.71|2044|W|wej fang,Weihai|shandong|CN|122.11|37.51|844|W|wej chaj,Weinan|shaanxi|CN|109.51|34.5|1199|W|wej nan,Welkom|free state|ZA|26.74|-27.98|431|W|,Welland|ON|CA|-79.25|42.98|52|N|,Wellesley|MA|US|-71.29|42.3|27|N|,Wellington|wellington region|NZ|174.78|-41.29|381|W|,Wellington|FL|US|-80.24|26.66|62|N|,Wenatchee|WA|US|-120.31|47.42|33|N|,Wenchang|hainan|CN|110.8|19.55|560|W|van xuong,Wenshan City|yunnan|CN|104.25|23.36|450|W|,Wentzville|MO|US|-90.85|38.81|35|N|,Wenzhou|zhejiang|CN|120.67|28|2650|W|wen cou;on chau;yongjia,Weru|west java|ID|108.5|-6.71|139|W|,Weslaco|TX|US|-97.99|26.16|39|N|,Wesley Chapel|FL|US|-82.33|28.24|44|N|,West Albany|NY|US|-73.78|42.68|93|N|,West Allis|WI|US|-88.01|43.02|60|N|,West Babylon|NY|US|-73.35|40.72|43|N|,West Bend|WI|US|-88.18|43.43|31|N|,West Bloomfield Township|MI|US|-83.38|42.57|64|N|west bloomfield;xa west bloomfield,West Chicago|IL|US|-88.2|41.88|27|N|,West Coon Rapids|MN|US|-93.35|45.16|62|N|,West Covina|CA|US|-117.94|34.07|108|N|,West Des Moines|IA|US|-93.71|41.58|64|N|,West Elkridge|MD|US|-76.73|39.21|28|N|,West End|BC|CA|-123.13|49.28|47|N|vancouver west end,West Englewood|IL|US|-87.67|41.78|32|N|,West Falls Church|VA|US|-77.19|38.86|29|N|,West Fargo|ND|US|-96.9|46.87|33|N|tay fargo,West Gulfport|MS|US|-89.09|30.4|71|N|,West Hartford|CT|US|-72.74|41.76|63|N|,West Haven|CT|US|-72.95|41.27|54|N|,West Hill|ON|CA|-79.18|43.77|27|N|,West Hills|CA|US|-118.64|34.2|41|N|,West Hollywood|FL|US|-80.18|26.02|60|N|,West Hollywood|CA|US|-118.36|34.09|36|N|tay hollywood,West Humber-Clairville|ON|CA|-79.6|43.72|33|N|,West Islip|NY|US|-73.31|40.71|28|N|,West Jerusalem|jerusalem|IL|35.22|31.78|400|W|vest jerusalem;vestjerusalem;vastra jerusalem;westjerusalem,West Jordan|UT|US|-111.94|40.61|111|N|,West Kelowna|BC|CA|-119.58|49.86|28|N|district of west kelowna,West Lafayette|IN|US|-86.91|40.43|45|N|,West Lake Sammamish|WA|US|-122.1|47.58|33|N|,West Lawn|IL|US|-87.72|41.77|32|N|,West Linn|OR|US|-122.61|45.37|26|N|,West Little River|FL|US|-80.24|25.86|34|N|,West Lynchburg|VA|US|-79.18|37.4|65|N|,West Memphis|AR|US|-90.18|35.15|25|N|,West Milford|NJ|US|-74.37|41.13|26|N|,West New York|NJ|US|-74.01|40.79|53|N|,West Oak Lane|PA|US|-75.17|40.07|38|N|,West Orange|NJ|US|-74.24|40.8|48|N|,West Palm Beach|FL|US|-80.05|26.72|120|N|,West Raleigh|NC|US|-78.66|35.79|338|NW|,West Ridge|IL|US|-87.69|42|72|N|,West Roxbury|MA|US|-71.15|42.28|30|N|,West Sacramento|CA|US|-121.53|38.58|52|N|,West Scarborough|ME|US|-70.39|43.57|27|N|,West Seneca|NY|US|-78.8|42.85|44|N|,West Springfield|MA|US|-72.62|42.11|27|N|,West Torrington|CT|US|-73.14|41.82|36|N|,West Town|IL|US|-87.67|41.89|86|N|,West Valley City|UT|US|-112|40.69|136|NW|west valley,West Vancouver|BC|CA|-123.16|49.33|45|N|vancouver barat,West Village|NY|US|-74.01|40.73|32|N|,West Warwick|RI|US|-71.52|41.7|30|N|,West Whittier-Los Nietos|CA|US|-118.07|33.98|25|N|,Westchester|FL|US|-80.33|25.75|29|N|,Westerville|OH|US|-82.93|40.13|38|N|,Westfield|MA|US|-72.75|42.13|41|N|westfield centre,Westfield|IN|US|-86.13|40.04|36|N|,Westfield|NJ|US|-74.35|40.66|30|N|,Westlake|OH|US|-81.92|41.46|32|N|,Westland|MI|US|-83.4|42.32|82|N|,Westminster|CO|US|-105.04|39.84|116|N|,Westminster|CA|US|-118.01|33.76|92|N|,Westminster-Branson|ON|CA|-79.45|43.78|26|N|,Westmont|CA|US|-118.3|33.94|31|N|,Weston|FL|US|-80.4|26.1|69|N|,Westonaria|gauteng|ZA|27.65|-26.32|156|W|,Westport|CT|US|-73.36|41.14|26|N|,Wethersfield|CT|US|-72.65|41.71|26|N|,Wexford/Maryvale|ON|CA|-79.3|43.75|27|N|,Weymouth|MA|US|-70.94|42.22|54|N|,Whalley|BC|CA|-122.87|49.18|102|N|,Wharton|PA|US|-75.16|39.93|49|N|,Wheat Ridge|CO|US|-105.08|39.77|31|N|wheatridge,Wheaton|IL|US|-88.11|41.87|53|N|,Wheaton|MD|US|-77.06|39.04|48|N|,Wheeling|IL|US|-87.93|42.14|38|N|,Wheeling|WV|US|-80.72|40.06|27|N|,Whitby|ON|CA|-78.93|43.88|138|NW|,Whitchurch-Stouffville|ON|CA|-79.32|44|49|N|,White Bear Lake|MN|US|-93.01|45.08|25|N|,White Plains|NY|US|-73.76|41.03|58|N|,Whitehorse|YT|CA|-135.05|60.72|28|N|,Whitestone|NY|US|-73.82|40.79|36|N|,Whitman|PA|US|-75.16|39.92|49|N|,Whitney|NV|US|-115.04|36.1|38|N|,Whittier|CA|US|-118.03|33.98|87|N|,Wichita|KS|US|-97.34|37.69|396|NW|,Wichita Falls|TX|US|-98.49|33.91|104|N|,Wiesbaden|hesse|DE|8.24|50.09|288|W|,Wigan|england|GB|-2.64|53.54|175|W|,Wildomar|CA|US|-117.28|33.6|35|N|,Wildwood|MO|US|-90.66|38.58|35|N|,Wilkes-Barre|PA|US|-75.88|41.25|40|N|,Williamsburg|NY|US|-73.95|40.71|33|N|,Williamsport|PA|US|-77|41.24|29|N|,Willingboro|NJ|US|-74.87|40.03|31|N|,Williston|ND|US|-103.62|48.15|26|N|,Willoughby|BC|CA|-122.68|49.13|31|N|,Willowbrook|CA|US|-118.26|33.92|35|N|,Willowdale|ON|CA|-79.4|43.77|79|N|,Willowdale East|ON|CA|-79.4|43.77|50|N|,Wilmette|IL|US|-87.72|42.07|27|N|,Wilmington|NC|US|-77.95|34.24|115|N|,Wilmington|DE|US|-75.55|39.75|70|N|,Wilmington|CA|US|-118.26|33.78|52|N|,Wilson|NC|US|-77.92|35.72|49|N|,Winchester|NV|US|-115.12|36.13|27|N|,Winchester|VA|US|-78.16|39.19|27|N|,Windhoek|khomas region|NA|17.08|-22.56|386|W|vinduque;windhuk,Windsor|ON|CA|-83.02|42.3|229|NW|,Windsor|CO|US|-104.9|40.48|32|N|,Windsor|CT|US|-72.64|41.85|28|N|,Windsor|CA|US|-122.82|38.55|27|N|,Winejok|northern bahr al ghazal|SS|27.57|9.01|300|W|,Winnetka|CA|US|-118.57|34.21|47|N|,Winnipeg|MB|CA|-97.15|49.88|749|NW|vinnipeg;winnipeg city,Winona|MN|US|-91.64|44.05|27|N|,Winston-Salem|NC|US|-80.24|36.1|241|NW|,Winter Garden|FL|US|-81.59|28.57|40|N|,Winter Haven|FL|US|-81.73|28.02|37|N|,Winter Park|FL|US|-81.34|28.6|29|N|,Winter Springs|FL|US|-81.31|28.7|34|N|,Woburn|ON|CA|-79.23|43.77|53|N|,Woburn|MA|US|-71.15|42.48|39|N|,Wola|mazovia|PL|20.96|52.23|140|W|,Wollongong|new south wales|AU|150.89|-34.42|280|W|,Wolverhampton|england|GB|-2.12|52.59|263|W|,Wong Tai Sin|wong tai sin district|HK|114.18|22.35|425|W|,Wonju|gangwon do|KR|127.95|37.35|332|W|,Wonsan|kangwon do|KP|127.44|39.15|329|W|gensan,Woodburn|OR|US|-122.86|45.14|25|N|,Woodbury|MN|US|-92.96|44.92|67|N|,Woodhaven|NY|US|-73.86|40.69|36|N|,Woodland|CA|US|-121.77|38.68|58|N|,Woodland Hills|CA|US|-118.61|34.17|70|N|,Woodlands||SG|103.79|1.44|254|W|,Woodlawn|MD|US|-76.73|39.32|37|N|,Woodridge|IL|US|-88.05|41.75|33|N|,Woodside|NY|US|-73.91|40.75|41|N|,Woodstock|ON|CA|-80.75|43.13|40|N|,Woodstock|GA|US|-84.52|34.1|29|N|,Woodstock|IL|US|-88.45|42.31|25|N|,Woonsocket|RI|US|-71.51|42|41|N|,Wooster|OH|US|-81.94|40.81|26|N|,Worcester|MA|US|-71.8|42.26|206|NW|,Wroclaw|lower silesia|PL|17.03|51.1|672|W|breslau;breslavia;vratislav;bresslau;vratislavie,Wuerzburg|bavaria|DE|9.95|49.79|133|W|wurzburg;wurtzbourg;wurtzburgo;wurzburgo,Wugang|hunan|CN|110.63|26.73|132|W|,Wuhai|inner mongolia|CN|106.82|39.68|218|W|wu chaj,Wuhan|hubei|CN|114.27|30.58|10392|W|vuhan;vu han;wu chan,Wuhu|anhui|CN|118.43|31.35|1598|W|wu chu,Wujiaqu|xinjiang|CN|87.52|44.16|154|W|,Wuppertal|north rhine westphalia|DE|7.15|51.26|360|W|,Wuwei|gansu|CN|102.63|37.93|1010|W|,Wuxi|jiangsu|CN|120.29|31.57|4396|W|vo tich;wu si,Wuxue|hubei|CN|115.55|29.85|220|W|,Wuyishan|fujian|CN|118.03|27.76|137|W|ciudad de wuyishan;vu di son;wuyishan city,Wuzhong|ningxia|CN|106.2|37.99|7202|W|,Wuzhou|guangxi|CN|111.29|23.48|761|W|ngo chau;wu cou,Wyandotte|MI|US|-83.15|42.21|25|N|,Wylie|TX|US|-96.54|33.02|46|N|,Wyoming|MI|US|-85.71|42.91|75|N|,Xai-Xai|gaza province|MZ|33.64|-25.05|154|W|,Xalapa de Enriquez|MX30|MX|-96.92|19.53|424|NW|xalapa;jalapa;jalapa enriques;jalapa enriquez,Xalisco|MX18|MX|-104.9|21.44|35|N|jalisco,Xenia|OH|US|-83.93|39.68|25|N|,Xi'an|shaanxi|CN|108.93|34.26|9600|W|tay an;xian,Xiamen|fujian|CN|118.08|24.48|4617|W|amoy;sia men,Xiangtan|hunan|CN|112.9|27.85|959|W|siang tchan;tuong dam,Xiangyang|hubei|CN|112.14|32.04|1294|W|siang jang;tuong duong;xiangfan,Xianning|hubei|CN|114.32|29.84|512|W|,Xiantao|hubei|CN|113.44|30.37|239|W|sientaochen,Xianyang|shaanxi|CN|108.7|34.34|1034|W|ham duong;sien jang,Xiaogan|hubei|CN|113.92|30.93|908|W|siao kan,Xiayang|shanghai|CN|121.12|31.15|137|W|,Xichang|sichuan|CN|102.26|27.9|481|W|,Xico|MX15|MX|-98.95|19.27|384|NW|san miguel xico,Xicotepec de Juarez|MX21|MX|-97.96|20.28|39|N|,Xilinhot|inner mongolia|CN|116.07|43.94|349|W|,Xindi|hubei|CN|113.47|29.82|175|W|,Xingning|guangdong|CN|115.72|24.15|274|W|,Xingtai|hebei|CN|114.49|37.06|798|W|hinh dai;sing tchaj,Xingyi|guizhou|CN|104.91|25.1|322|W|,Xining|qinghai|CN|101.76|36.63|1677|W|si ning;sining;tay ninh,Xinji|hebei|CN|115.22|37.93|145|W|,Xinqiao|shanghai|CN|121.31|31.07|155|W|,Xintai|shandong|CN|117.75|35.9|222|W|,Xinxiang|henan|CN|113.8|35.19|1047|W|,Xinyang|henan|CN|114.07|32.12|1230|W|,Xinyi|jiangsu|CN|118.35|34.38|300|W|,Xinyu|jiangxi|CN|114.93|27.8|839|W|sin ju;tan du,Xinyuan|xinjiang|CN|83.25|43.43|282|W|,Xinzhou|shanxi|CN|112.73|38.41|544|W|han chau;sin cou,Xiuying|hainan|CN|110.29|20|290|W|,Xizhi|taipei|TW|121.66|25.07|204|W|hsichih;xizhi district,Xochimilco|MX09|MX|-99.1|19.25|442|NW|delegacion xochimilco,Xuan Loc|dong nai|VN|107.23|10.93|253|W|,Xuancheng|anhui|CN|118.76|30.95|774|W|,Xuanhua|hebei|CN|115.06|40.61|373|W|,Xuchang|henan|CN|113.86|34.03|1265|W|,Xuhui|shanghai|CN|121.45|31.2|1109|W|,Xuzhou|jiangsu|CN|117.28|34.2|1253|W|pengcheng,Ya'an|sichuan|CN|103|29.99|612|W|,Yachiyo|chiba|JP|140.12|35.74|199|W|,Yaizu|shizuoka|JP|138.32|34.87|139|W|,Yakima|WA|US|-120.51|46.6|93|N|,Yakutsk|sakha|RU|129.72|62.03|235|W|iakoutsk;jakutsk,Yamagata|yamagata|JP|140.37|38.23|248|W|,Yamaguchi|yamaguchi|JP|131.47|34.18|193|W|jamaguci,Yamato|kanagawa|JP|139.45|35.47|242|W|,Yamoussoukro|lacs district|CI|-5.28|6.82|275|W|jamusukro;yamusukro,Yamuna Nagar|haryana|IN|77.28|30.13|217|W|yamunanagar,Yan'an|shaanxi|CN|109.49|36.6|475|W|,Yanbu|medina region|SA|38.06|24.09|200|W|yambo;yanbu al bahr;yenbo,Yancheng|jiangsu|CN|120.16|33.36|1615|W|diem thanh;jen ccheng,Yangcheng|chongqing|CN|106.26|30|186|W|,Yangchun|guangdong|CN|111.78|22.17|153|W|,Yanghang|shanghai|CN|121.44|31.37|204|W|,Yangjiang|guangdong|CN|111.96|21.86|1292|W|duong giang;jang tiang,Yangju|gyeonggi do|KR|127.06|37.83|179|W|,Yangon|yangon|MM|96.16|16.81|4477|W|rangoon;rangoun;rangum;rangun;yankoun,Yangpu|shanghai|CN|121.52|31.26|1210|W|,Yangquan|shanxi|CN|113.56|37.86|731|W|jang cchuan,Yangsan|gyeongsangnam do|KR|129.03|35.34|358|W|jangsan,Yangshuo|guangxi|CN|110.49|24.78|300|W|,Yangzhou|jiangsu|CN|119.44|32.4|1584|W|duong chau;jang cou,Yanji|jilin|CN|129.5|42.89|326|W|dien cat,Yantai|shandong|CN|121.44|37.48|2227|W|jen tchaj;yen dai;chefoo,Yanzhou|shandong|CN|116.83|35.55|254|W|,Yao|osaka|JP|135.6|34.62|273|W|,Yaounde|centre|CM|11.52|3.87|1299|W|jaunde;yaunde,Yarmouth|MA|US|-70.23|41.71|25|N|,Yaroslavl|yaroslavl oblast|RU|39.87|57.63|608|W|jaroslawl;iaroslavl;jaroslavl;jaroslaw,Yasenevo|moscow|RU|37.52|55.61|180|W|,Yautepec|MX17|MX|-99.07|18.88|105|N|yautepec de zaragoza,Yawnghwe|shan state|MM|96.93|20.66|188|W|,Yazd|yazd province|IR|54.37|31.9|477|W|jasd;jazd,Yei|central equatoria|SS|30.68|4.09|260|W|,Yekaterinburg|sverdlovsk oblast|RU|60.62|56.86|1495|W|jekaterinburg;ekaterimburgo;ekaterinbourg;ekaterinburg;ekaterinburgo;jekaterinenburg;jekaterynburg,Yenagoa|bayelsa state|NG|6.27|4.93|365|W|,Yeosu|jeollanam do|KR|127.66|34.76|268|W|josu,Yerevan|yerevan|AM|44.51|40.18|1144|W|erevan;erivan;erywan;jerevan;jerewan,Yibin|sichuan|CN|104.64|28.76|836|W|nghi tan,Yichang|hubei|CN|111.28|30.71|1350|W|i cchang;nghi xuong,Yichun|jiangxi|CN|114.4|27.83|1045|W|i cchun;nghi xuan,Yichun|heilongjiang|CN|128.88|47.72|155|W|i cchun;y xuan,Yinchuan|ningxia|CN|106.27|38.47|1487|W|jin cchuan;ngan xuyen,Yingkou|liaoning|CN|122.23|40.66|591|W|newchwang;eiko,Yingtan|jiangxi|CN|117|28.23|214|W|jing tchan;ung dam,Yintai|shaanxi|CN|109.1|35.12|217|W|,Yishun New Town||SG|103.83|1.43|228|W|,Yiwu|zhejiang|CN|120.08|29.32|1481|W|,Yixing|jiangsu|CN|119.82|31.36|1285|W|,Yizhou|guangxi|CN|108.67|24.5|155|W|,Yogyakarta|yogyakarta|ID|110.36|-7.8|375|W|di yogyakarta;jogjakarta;kota yogyakarta,Yokkaichi|mie|JP|136.62|34.97|305|W|,Yokohama|kanagawa|JP|139.65|35.43|3777|W|jokohama,Yokosuka|kanagawa|JP|139.67|35.28|409|W|jokosuka,Yola|adamawa|NG|12.48|9.21|460|W|,Yonago|tottori|JP|133.33|35.43|148|W|,Yong'an|chongqing|CN|109.46|31.02|144|W|fengjie;feng chieh;kweichow,Yongchuan|chongqing|CN|105.89|29.35|192|W|,Yongji|shanxi|CN|110.44|34.87|452|W|,Yongkang|taiwan|TW|120.26|23.02|233|W|vinh khang;yongkang district,Yongzhou|hunan|CN|111.61|26.42|1020|W|lingling,Yonkers|NY|US|-73.9|40.93|201|NW|,Yopal|casanare department|CO|-72.39|5.34|168|W|,Yorba Linda|CA|US|-117.81|33.89|67|N|,York|england|GB|-1.08|53.96|156|W|,York|PA|US|-76.73|39.96|43|N|,York University Heights|ON|CA|-79.49|43.77|27|N|,Yoshkar-Ola|mariy el republic|RU|47.89|56.64|268|W|iochkar ola;joschkar ola;josjkar ola;joszkar ola;joskar ola,Youngstown|OH|US|-80.65|41.1|64|N|,Yuba City|CA|US|-121.62|39.14|66|N|kota yuba,Yucaipa|CA|US|-117.04|34.03|53|N|,Yuci|shanxi|CN|112.73|37.68|235|W|,Yuen Long|yuen long|HK|114.03|22.45|200|W|,Yuen Long Kau Hui|yuen long|HK|114.03|22.45|169|W|,Yuen Long San Hui|yuen long|HK|114.03|22.43|200|W|,Yuepu|shanghai|CN|121.42|31.43|139|W|,Yueyang|hunan|CN|113.09|29.37|991|W|jue jang,Yukon|OK|US|-97.76|35.51|25|N|,Yulin|guangxi|CN|110.15|22.63|1056|W|ju lin,Yuma|AZ|US|-114.62|32.73|95|N|,Yuncheng|shanxi|CN|110.99|35.02|680|W|jun ccheng,Yunfu|guangdong|CN|112.04|22.93|2612|W|jun fu;van phu,Yunlong|jiangsu|CN|117.25|34.25|345|W|,Yunusobod|tashkent|UZ|69.28|41.37|352|W|,Yuriria|MX11|MX|-101.13|20.21|25|N|,Yushu|qinghai|CN|97.01|33|141|W|,Yuzhno-Sakhalinsk|sakhalin oblast|RU|142.74|46.95|198|W|juzjno sakhalinsk;ioujno sakhalinsk;iujno sahalinsk;iujno sakhalinsk;joezjno sachalinsk;juschno sachalinsk;juzjno sachalinsk;juznosachalinsk;juzno sachalinsk;juzno sahalinsk;yujno sahalinsk;yuzhno sajalinsk,Zaanstad|north holland|NL|4.81|52.45|140|W|,Zabrze|silesia|PL|18.79|50.32|192|W|hindenburg,Zacapu|MX16|MX|-101.79|19.82|50|N|,Zacatecas|MX32|MX|-102.58|22.77|129|N|zacatecas city,Zacatelco|MX29|MX|-98.24|19.22|42|N|,Zacatlan|MX21|MX|-97.96|19.94|33|N|,Zagazig|sharqia|EG|31.5|30.59|430|W|,Zagreb|zagreb|HR|15.98|45.81|663|W|zagabria;zagrep;zagrzeb;zahreb;agram,Zahedan|sistan and baluchestan|IR|60.86|29.5|551|W|,Zama|kanagawa|JP|139.39|35.49|132|W|,Zamboanga|zamboanga peninsula|PH|122.07|6.91|1018|W|zamboanga city,Zamora de Hidalgo|MX16|MX|-102.29|19.98|186|NW|zamora,Zanesville|OH|US|-82.01|39.94|25|N|,Zango|luanda|AO|13.38|-9.01|198|W|,Zanjan|zanjan|IR|48.5|36.68|357|W|zandschan,Zanzibar|zanzibar urban west|TZ|39.2|-6.16|709|W|sansibar stadt;zanzibar by,Zaoyang|hubei|CN|112.75|32.13|184|W|,Zaozhuang|shandong|CN|117.55|34.86|899|W|cao cuang,Zapopan|MX14|MX|-103.39|20.72|1476|NW|,Zaporizhzhya|zaporizhzhia|UA|35.12|47.85|710|W|zaporizjzja;zaporizzja;alessandrovia;saporischschja;zaporiggia;zaporijjia;zaporiyia;zaporizhzhia;zaporoye;zaporozhye;zaporoze;zaporozi;alexandrovsk;saporoschje;saporoshje,Zapotlanejo|MX14|MX|-103.07|20.62|32|N|,Zaragoza|aragon|ES|-0.88|41.66|686|W|saragossa;saragosse;saragozza;saragoca;zaragosa,Zaria|kaduna state|NG|7.72|11.11|980|W|,Zarichnyi|sumy|UA|34.81|50.9|150|W|zarichnyi rayon,Zarqa|zarqa|JO|36.09|32.07|792|W|zarka,Zawiya|az zawiyah|LY|12.73|32.75|186|W|,Zelenograd|moscow|RU|37.18|55.98|215|W|selenograd,Zemun|central serbia|RS|20.4|44.85|155|W|semlin,Zenica|federation of b h|BA|17.9|44.2|164|W|,Zeytinburnu|istanbul|TR|28.9|40.99|280|W|,Zhabei|shanghai|CN|121.46|31.26|840|W|,Zhalantun|inner mongolia|CN|122.74|48.01|132|W|,Zhangjiagang|jiangsu|CN|120.54|31.86|1432|W|,Zhangjiajie|hunan|CN|110.48|29.13|441|W|cang tia tie,Zhangjiakou|hebei|CN|114.87|40.78|692|W|cang tia kchou,Zhangye|gansu|CN|100.45|38.93|507|W|cang jie,Zhangzhou|fujian|CN|117.66|24.51|589|W|chuong chau;cang cou,Zhanjiang|guangdong|CN|110.39|21.23|1400|W|,Zhaodong|heilongjiang|CN|125.96|46.05|154|W|,Zhaoqing|guangdong|CN|112.46|23.05|1553|W|cao cching;shiu hing,Zhaotong|yunnan|CN|103.72|27.32|787|W|chieu thong;cao tchung,Zheleznodorozhnyy|moscow oblast|RU|38.02|55.74|141|W|zjeleznodorozjnyj,Zhengding|hebei|CN|114.57|38.15|193|W|,Zhengzhou|henan|CN|113.65|34.76|4253|W|czengczou;cengcou;ceng cou,Zhenjiang|jiangsu|CN|119.46|32.21|950|W|chinkiang,Zhenping|henan|CN|112.23|33.03|181|W|,Zhenzhou|jiangsu|CN|119.17|32.28|176|W|icheng ku,Zhicheng|hubei|CN|111.5|30.3|159|W|chihkiang,Zhongshan|guangdong|CN|113.38|22.52|3841|W|trung son;xiangshan;cung san,Zhongwei|ningxia|CN|105.19|37.51|1174|W|cung wej,Zhoukou|henan|CN|114.63|33.63|505|W|cou kchou,Zhoushan|zhejiang|CN|122.2|29.99|882|W|,Zhu Cheng City|shandong|CN|119.4|36|1000|W|,Zhubei|taiwan|TW|121.01|24.84|212|W|cu pej,Zhucheng|shandong|CN|119.4|35.99|499|W|,Zhuhai|guangdong|CN|113.57|22.28|2207|W|cu chaj,Zhulebino|moscow|RU|37.85|55.7|150|W|,Zhumadian|henan|CN|114.03|32.98|721|W|,Zhuzhou|hunan|CN|113.15|27.83|1129|W|chu chau;cu cou;jianning,Zhytomyr|zhytomyr oblast|UA|28.68|50.26|261|W|jytomyr;jitomir;schytomyr;zjytomyr;zytomierz;zitomir;zytomyr,Zibo|shandong|CN|118.06|36.79|3129|W|c po;truy bac,Zigong|sichuan|CN|104.78|29.34|1262|W|c kung,Ziguinchor|ziguinchor|SN|-16.27|12.57|214|W|,Zinacantepec|MX15|MX|-99.73|19.28|54|N|,Zinder|zinder region|NE|8.99|13.81|318|W|,Zionsville|IN|US|-86.26|39.95|26|N|,Zipaquira|cundinamarca|CO|-74|5.02|130|W|,Zitong|chongqing|CN|105.83|30.18|212|W|,Ziyang|sichuan|CN|104.65|30.12|905|W|,Zlatoust|chelyabinsk|RU|59.65|55.17|191|W|slatoust;zlato oest;zlatooust,Zliten|misratah|LY|14.57|32.47|203|W|zalitan;zlitan,Zoucheng|shandong|CN|116.97|35.4|277|W|trau thanh,Zuerich|zurich|CH|8.55|47.37|415|W|zurich;curych;zurigo;zurique;zurych;zurih,Zuglo|budapest|HU|19.11|47.52|130|W|lerchenfeld,Zumpango|MX15|MX|-99.1|19.8|280|NW|zumpango de ocampo,Zunyi|guizhou|CN|106.91|27.69|2037|W|cun i;tuan nghia";/*! @bicharts/shape-core — Apache-2.0. Bundled reference data: GeoNames (https://www.geonames.org/) CC BY 4.0; US Census/TIGER (public domain). Full text: NOTICE in this package. */var NU=Object.freeze({\u00F8:"o",\u0153:"oe",\u00E6:"ae",\u00DF:"ss",\u0142:"l",\u0111:"d",\u00F0:"d",\u00FE:"th",\u0131:"i",\u0127:"h",\u0167:"t",\u014B:"n",\u0138:"k",\u0259:"e",\u01DD:"e",\u0133:"ij",\u0140:"l",\u017F:"s"}),jee=new RegExp(`[${Object.keys(NU).join("")}]`,"gu");function vU(e){return e.replace(jee,t=>NU[t]??t)}function ya(e){return e==null?"":vU(String(e).replace(new RegExp("\\p{No}","gu")," ").normalize("NFKD").replace(new RegExp("\\p{Diacritic}","gu"),"").toLowerCase()).replace(/&/g,"and").replace(/[^\p{L}\p{Nd}]/gu,"")}var Oee=4;function E8(e){return e.length>=Oee}var Yf=class{constructor(e=(t,a)=>t===a){this.same=e}same;map=new Map;add(e,t){let a=ya(e);if(!E8(a))return;let r=this.map.get(a);if(!r){this.map.set(a,{value:t,ambiguous:!1});return}!r.ambiguous&&!this.same(r.value,t)&&(r.ambiguous=!0)}get(e){if(!E8(e))return;let t=this.map.get(e);return t&&!t.ambiguous?t.value:void 0}isAmbiguous(e){return this.map.get(e)?.ambiguous===!0}entries(){return Array.from(this.map.entries())}};/*! @bicharts/shape-core — Apache-2.0. Bundled reference data: GeoNames (https://www.geonames.org/) CC BY 4.0; US Census/TIGER (public domain). Full text: NOTICE in this package. */var Dee=new RegExp("([\\p{Ll}\\p{Nd}])(\\p{Lu})","gu"),Lee=/[_\-./]+/g,Fee=/[^\p{L}\p{M}\p{N}\x00-\x7F]/gu;function Bee(e){return e?String(e).normalize("NFC").replace(Dee,"$1 $2").replace(Lee," ").replace(Fee," ").toLowerCase().split(/\s+/).filter(t=>t.length>0):[]}function Qf(e){return!(e instanceof Date)||isNaN(e.getTime())?null:e.getUTCHours()===0&&e.getUTCMinutes()===0&&e.getUTCSeconds()===0&&e.getUTCMilliseconds()===0?"utc":e.getHours()===0&&e.getMinutes()===0&&e.getSeconds()===0&&e.getMilliseconds()===0?"local":null}function Hee(e){let t=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate())),a=e.getFullYear();return a>=0&&a<100&&t.setUTCFullYear(a),t}function Gee(e,t){let a=[];for(let r of e){if(!r||!/date|time/i.test(String(r.dataType??"")))continue;let n=0,i=!0;for(let o of t){let s=o?o[r.name]:void 0;if(s==null||s==="")continue;if(!(s instanceof Date)){i=!1;break}let l=Qf(s);if(l===null){i=!1;break}l==="local"&&n++}i&&n>0&&a.push(r.name)}return a}function SU(e,t){let a=Gee(e,t);return a.length===0?{rows:t,columns:a}:{rows:t.map(r=>{if(!r)return r;let n={...r};for(let i of a){let o=n[i];o instanceof Date&&Qf(o)==="local"&&(n[i]=Hee(o))}return n}),columns:a}}function Kee(e){let t=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds())),a=e.getFullYear();return a>=0&&a<100&&t.setUTCFullYear(a),t}function Xee(e){let t=!1;for(let a of e)if(!(a==null||a==="")){if(!(a instanceof Date)||isNaN(a.getTime()))return!1;Qf(a)===null&&(t=!0)}return t}function Vee(e,t){let a=[];for(let r of e)!r||!/date|time/i.test(String(r.dataType??""))||Xee(t.map(n=>n?n[r.name]:void 0))&&a.push(r.name);return a}function kU(e,t){let a=Vee(e,t);return a.length===0?{rows:t,columns:a}:{rows:t.map(r=>{if(!r)return r;let n={...r};for(let i of a){let o=n[i];o instanceof Date&&(n[i]=Kee(o))}return n}),columns:a}}/*! @bicharts/shape-core — Apache-2.0. Bundled reference data: GeoNames (https://www.geonames.org/) CC BY 4.0; US Census/TIGER (public domain). Full text: NOTICE in this package. */var Zee="AB|CA|Alberta|-113.75|52.18,AK|US|Alaska|-148.32|61.29,AL|US|Alabama|-86.73|33.08,AR|US|Arkansas|-92.85|35.29,AZ|US|Arizona|-111.99|33.32,BC|CA|British Columbia|-122.73|49.27,CA|US|California|-119.21|35.2,CO|US|Colorado|-105|39.63,CT|US|Connecticut|-73.01|41.42,DC|US|District of Columbia|-77.04|38.9,DE|US|Delaware|-75.59|39.57,FL|US|Florida|-81.29|27.53,GA|US|Georgia|-84.02|33.43,HI|US|Hawaii|-157.73|21.26,IA|US|Iowa|-92.79|41.88,ID|US|Idaho|-115.65|44.2,IL|US|Illinois|-88.05|41.67,IN|US|Indiana|-86.27|40.23,KS|US|Kansas|-96|38.59,KY|US|Kentucky|-84.91|38.13,LA|US|Louisiana|-91.28|30.57,MA|US|Massachusetts|-71.28|42.32,MB|CA|Manitoba|-97.3|49.88,MD|US|Maryland|-76.79|39.18,ME|US|Maine|-70.01|43.92,MI|US|Michigan|-83.69|42.56,MN|US|Minnesota|-93.26|44.98,MO|US|Missouri|-92.66|38.73,MS|US|Mississippi|-89.62|32.36,MT|US|Montana|-111.07|46.37,MX01|MX|Aguascalientes|-102.29|21.91,MX02|MX|Baja California|-116.5|32.46,MX03|MX|Baja California Sur|-110.12|23.52,MX04|MX|Campeche|-91.08|19.25,MX05|MX|Chiapas|-92.77|16.28,MX06|MX|Chihuahua|-106.27|30.1,MX07|MX|Coahuila|-101.88|26.32,MX08|MX|Colima|-103.94|19.15,MX09|MX|Mexico City|-99.13|19.41,MX10|MX|Durango|-104.24|24.64,MX11|MX|Guanajuato|-101.37|20.87,MX12|MX|Guerrero|-99.83|17.31,MX13|MX|Hidalgo|-98.81|20.13,MX14|MX|Jalisco|-103.39|20.64,MX15|MX|M\xE9xico|-99.14|19.51,MX16|MX|Michoac\xE1n|-101.68|19.49,MX17|MX|Morelos|-99.15|18.88,MX18|MX|Nayarit|-104.89|21.5,MX19|MX|Nuevo Le\xF3n|-100.26|25.69,MX20|MX|Oaxaca|-96.23|17.05,MX21|MX|Puebla|-98.12|19.07,MX22|MX|Quer\xE9taro|-100.35|20.57,MX23|MX|Quintana Roo|-87.09|20.7,MX24|MX|San Luis Potos\xED|-100.7|22.22,MX25|MX|Sinaloa|-107.49|24.63,MX26|MX|Sonora|-111.05|29.37,MX27|MX|Tabasco|-92.98|17.99,MX28|MX|Tamaulipas|-98.33|24.92,MX29|MX|Tlaxcala|-98.19|19.31,MX30|MX|Veracruz|-96.31|19.2,MX31|MX|Yucat\xE1n|-89.52|20.94,MX32|MX|Zacatecas|-102.7|22.93,NB|CA|New Brunswick|-65.73|45.83,NC|US|North Carolina|-79.61|35.57,ND|US|North Dakota|-98.8|47.31,NE|US|Nebraska|-96.42|41.07,NH|US|New Hampshire|-71.37|43,NJ|US|New Jersey|-74.34|40.51,NL|CA|Newfoundland and Labrador|-52.77|47.55,NM|US|New Mexico|-106.28|34.69,NS|CA|Nova Scotia|-63.11|44.86,NV|US|Nevada|-115.95|36.72,NY|US|New York|-74.13|40.89,OH|US|Ohio|-82.75|40.53,OK|US|Oklahoma|-97.01|35.66,ON|CA|Ontario|-79.27|43.94,OR|US|Oregon|-122.75|44.96,PA|US|Pennsylvania|-76.12|40.23,PE|CA|Prince Edward Island|-63.13|46.23,QC|CA|Quebec|-73.14|45.89,RI|US|Rhode Island|-71.45|41.79,SC|US|South Carolina|-80.69|33.6,SD|US|South Dakota|-98.66|43.89,SK|CA|Saskatchewan|-105.99|51.63,TN|US|Tennessee|-87.53|35.63,TX|US|Texas|-97.51|31.01,UT|US|Utah|-111.96|40.5,VA|US|Virginia|-77.08|37.61,VT|US|Vermont|-73.21|44.48,WA|US|Washington|-121.46|47.29,WI|US|Wisconsin|-88.6|43.36,WV|US|West Virginia|-81.42|38.99,WY|US|Wyoming|-105.54|42.26,YT|CA|Yukon|-135.05|60.72",qee="006|-66.84|18.26,007|-66.15|18.15,008|-64.74|17.74,009|-66.12|18.37,010|-72.6|42.26,011|-72.53|42.07,012|-73.21|42.37,013|-72.51|42.58,014|-71.81|42.59,015|-71.85|42.23,016|-71.84|42.28,017|-71.44|42.33,018|-71.21|42.64,019|-70.89|42.66,020|-71.28|42.12,021|-71.05|42.31,022|-71.04|42.35,023|-70.86|41.98,024|-71.22|42.37,025|-70.6|41.71,026|-70.2|41.73,027|-71.07|41.77,028|-71.62|41.69,029|-71.47|41.82,030|-71.51|42.9,031|-71.48|43,032|-71.65|43.57,033|-71.58|43.26,034|-72.19|42.91,035|-71.31|44.69,036|-72.32|43.17,037|-72.13|43.69,038|-71.1|43.56,039|-70.76|43.24,040|-70.6|43.78,041|-70.27|43.7,042|-70.49|44.38,043|-69.75|44.3,044|-68.83|45.45,045|-69.57|43.99,046|-67.8|44.79,047|-68.34|46.55,048|-69.17|44.2,049|-69.97|44.99,050|-72.43|43.85,051|-72.65|43.28,052|-73.14|43.03,053|-72.77|42.94,054|-72.98|44.58,056|-72.6|44.35,057|-73.04|43.69,058|-72.12|44.68,059|-71.7|44.79,060|-72.81|41.88,061|-72.69|41.74,062|-72.12|41.81,063|-72.03|41.5,064|-72.61|41.46,065|-72.94|41.36,066|-73.22|41.24,067|-73.24|41.68,068|-73.42|41.28,069|-73.57|41.14,070|-74.28|40.76,071|-74.2|40.74,072|-74.2|40.68,073|-74.08|40.71,074|-74.4|41.09,075|-74.17|40.92,076|-74.01|40.94,077|-74.17|40.28,078|-74.81|40.97,079|-74.55|40.74,080|-74.98|39.78,081|-75.07|39.94,082|-74.68|39.32,083|-75.04|39.45,084|-74.48|39.35,085|-74.62|40.25,086|-74.68|40.23,087|-74.22|39.96,088|-74.72|40.54,089|-74.48|40.45,100|-73.96|40.77,101|-73.95|40.78,102|-74.02|40.72,103|-74.15|40.58,104|-73.85|40.9,105|-73.75|41.27,106|-73.74|41.02,107|-73.84|40.96,108|-73.8|40.95,109|-74.27|41.3,110|-73.69|40.74,111|-73.93|40.76,112|-73.94|40.66,113|-73.84|40.73,114|-73.77|40.69,115|-73.62|40.71,116|-73.88|40.57,117|-73.23|40.82,118|-73.5|40.77,119|-72.53|40.95,120|-74.22|42.92,121|-74.4|43.46,122|-73.81|42.7,123|-73.96|42.82,124|-74.27|42.09,125|-73.7|41.89,126|-73.88|41.69,127|-74.75|41.74,128|-73.91|43.61,129|-74.03|44.53,130|-76.16|43.08,131|-76.46|43.27,132|-76.2|43.03,133|-75.07|43.45,134|-75.35|43.03,135|-75.15|43.14,136|-75.39|44.33,137|-75.2|42.21,138|-75.46|42.43,139|-75.88|42.12,140|-78.48|43.01,141|-78.7|42.49,142|-78.8|42.91,143|-78.96|43.12,144|-77.71|42.96,145|-77.17|43.14,146|-77.65|43.17,147|-78.84|42.21,148|-77.18|42.29,149|-76.78|42.09,150|-80.23|40.56,151|-80.18|40.53,152|-79.97|40.46,153|-80.24|40.01,154|-79.65|39.92,155|-78.8|39.95,156|-79.47|40.33,157|-79.02|40.71,158|-78.66|41.32,159|-78.84|40.35,160|-79.88|40.93,161|-80.3|41.19,162|-79.35|41.08,163|-79.58|41.59,164|-80|41.87,165|-80.04|42.1,166|-78.28|40.48,167|-78.47|41.76,168|-78|40.97,169|-77.37|41.8,170|-77.29|40.44,171|-76.78|40.33,172|-77.81|39.98,173|-76.93|39.89,174|-76.72|39.97,175|-76.24|40.05,176|-76.34|40.05,177|-77.22|41.34,178|-76.77|40.93,179|-76.27|40.69,180|-75.45|40.67,181|-75.47|40.6,182|-75.88|40.9,183|-75.19|41.12,184|-75.38|41.53,185|-75.68|41.37,186|-76.17|41.4,187|-75.86|41.22,188|-76.12|41.82,189|-75.14|40.36,190|-75.37|39.97,191|-75.15|40.01,193|-75.78|39.92,194|-75.46|40.19,195|-75.9|40.42,196|-75.95|40.34,197|-75.68|39.53,198|-75.58|39.77,199|-75.46|38.83,200|-77.02|38.9,201|-77.68|38.9,202|-77.03|38.89,203|-77.01|38.86,204|-77.05|38.89,205|-77.01|38.87,206|-76.76|38.45,207|-76.78|38.88,208|-77.23|39.15,209|-76.99|39.05,210|-76.32|39.53,211|-76.73|39.58,212|-76.58|39.31,214|-76.55|39,215|-79.08|39.56,216|-76.02|38.86,217|-77.5|39.52,218|-75.57|38.27,219|-75.94|39.57,220|-77.25|38.78,221|-77.25|38.92,222|-77.11|38.88,223|-77.13|38.79,224|-77.25|38.22,225|-77.51|38.09,226|-78.25|39.03,227|-78.05|38.49,228|-78.79|38.57,229|-78.55|38.02,230|-78.09|37.66,231|-76.96|37.55,232|-77.46|37.51,233|-76.3|36.68,234|-76.66|36.77,235|-76.26|36.87,236|-76.44|37.12,237|-76.38|36.85,238|-77.41|36.94,239|-78.39|37.03,240|-80.1|37.23,241|-79.89|36.9,242|-82.49|36.83,243|-81.13|36.86,244|-79.51|38.05,245|-79.11|37.15,246|-81.8|37.19,247|-81.14|37.39,248|-81.64|37.47,249|-80.32|37.95,250|-81.45|38.27,251|-81.89|38.64,252|-81.45|38.77,253|-81.64|38.42,254|-78.11|39.45,255|-82.19|38.25,256|-82.08|37.76,257|-82.41|38.4,258|-81.21|37.72,259|-80.89|37.83,260|-80.63|40.05,261|-81.27|39.2,262|-80.02|38.75,263|-80.23|39.27,264|-80.65|39.21,265|-80.05|39.59,266|-80.8|38.48,267|-78.98|39.33,268|-79.12|38.88,270|-80.45|36.24,271|-80.24|36.06,272|-79.82|35.86,273|-79.52|35.55,274|-79.81|36.09,275|-78.54|35.93,276|-78.65|35.81,277|-78.9|35.99,278|-77.32|35.88,279|-76.5|36.19,280|-81.2|35.4,281|-80.41|35.21,282|-80.83|35.22,283|-78.94|34.96,284|-78.23|34.39,285|-77.23|35.06,286|-81.36|36.06,287|-82.78|35.51,288|-82.55|35.6,289|-83.97|35.11,290|-80.88|34.19,291|-80.62|33.71,292|-80.96|34.04,293|-81.86|34.78,294|-80.08|33.05,295|-79.49|34.07,296|-82.57|34.61,297|-80.92|34.83,298|-81.74|33.51,299|-80.96|32.55,300|-84.08|33.85,301|-84.91|34.04,302|-84.55|33.25,303|-84.42|33.77,304|-82.11|32.48,305|-83.81|34.58,306|-83.14|33.86,307|-85.1|34.71,308|-82.34|33.35,309|-82.01|33.4,310|-83.42|32.64,312|-83.64|32.83,313|-81.49|31.68,314|-81.15|32.03,315|-82.21|31.4,316|-83.21|31.02,317|-83.87|31.48,318|-84.69|32.45,319|-84.95|32.47,320|-82.58|30.27,321|-81.48|29.39,322|-81.69|30.3,323|-84.25|30.29,324|-85.58|30.55,325|-87.03|30.76,326|-82.6|29.58,327|-81.28|28.79,328|-81.32|28.47,329|-80.67|27.96,330|-80.58|25.31,331|-80.38|25.74,333|-80.25|26.13,334|-81.01|26.64,335|-82.22|28.19,336|-82.47|28.01,337|-82.73|27.85,338|-81.64|27.72,339|-81.71|26.77,341|-81.32|26.11,342|-82.16|27.29,344|-82.35|29.01,346|-82.52|28.41,347|-81.4|28.29,349|-80.72|27.34,350|-86.8|34.05,351|-86.38|33.43,352|-86.77|33.5,354|-87.86|33.07,355|-87.71|33.96,356|-87.4|34.67,357|-86.26|34.75,358|-86.59|34.69,359|-85.94|34.27,360|-86.09|32.09,361|-86.27|32.31,362|-85.65|33.53,363|-85.56|31.34,364|-86.97|31.38,365|-88.14|31.32,366|-88.19|30.68,367|-87.34|32.33,368|-85.41|32.61,369|-88.25|32.12,370|-87.02|36.12,371|-86.23|35.75,372|-86.83|36.15,373|-85.36|35.32,374|-85.33|35.06,376|-82.3|36.36,377|-84.31|36.27,378|-83.35|36.3,379|-83.97|35.97,380|-89.43|35.55,381|-89.96|35.1,382|-88.68|36.29,383|-88.5|35.61,384|-87.36|35.34,385|-85.34|36.18,386|-89.76|34.57,387|-90.81|33.54,388|-88.63|34.36,389|-89.9|33.77,390|-90|32.53,391|-90.67|32.51,392|-90.22|32.32,393|-88.8|32.42,394|-89.26|31.23,395|-89|30.59,396|-90.67|31.32,397|-88.87|33.53,398|-84.67|31.32,400|-85.29|38.07,401|-86.2|37.85,402|-85.66|38.19,403|-84.2|38.06,404|-84.42|37.53,405|-84.45|38.04,406|-84.87|38.22,407|-84.12|36.95,408|-83.26|36.9,409|-83.74|36.95,410|-84.32|38.64,411|-83.06|38.38,412|-82.67|37.89,413|-83.48|37.58,414|-83.15|37.84,415|-82.39|37.46,416|-82.78|37.54,417|-83.25|37.23,418|-82.88|37.21,420|-88.57|36.9,421|-86.09|36.89,422|-87.11|36.95,423|-87.02|37.52,424|-87.7|37.47,425|-84.71|37.15,426|-84.82|36.81,427|-85.73|37.32,430|-82.9|40.21,431|-82.99|39.69,432|-82.97|39.98,433|-83.38|40.55,434|-83.3|41.42,435|-84.22|41.46,436|-83.54|41.67,437|-81.66|39.85,438|-81.88|40.27,439|-80.9|40.25,440|-80.97|41.64,441|-81.66|41.42,442|-81.6|41.13,443|-81.54|41.07,444|-80.77|41.09,445|-80.64|41.05,446|-81.53|40.65,447|-81.39|40.83,448|-82.77|41.02,449|-82.55|40.74,450|-84.48|39.43,451|-83.84|39.16,452|-84.48|39.18,453|-84.3|39.97,454|-84.18|39.74,455|-83.81|39.94,456|-82.86|38.99,457|-81.78|39.35,458|-84.23|40.83,460|-86.13|40.17,461|-86.18|39.62,462|-86.14|39.79,463|-87.05|41.41,464|-87.34|41.55,465|-86.08|41.44,466|-86.28|41.66,467|-85.21|41.17,468|-85.17|41.09,469|-86.14|40.76,470|-85.08|39.16,471|-86.02|38.43,472|-85.74|39.05,473|-85.15|40.09,474|-86.63|38.99,475|-87.03|38.46,476|-87.53|38.13,477|-87.58|38.03,478|-87.29|39.45,479|-87.11|40.5,480|-82.79|42.83,481|-83.62|42.2,482|-83.1|42.38,483|-83.35|42.66,484|-83.22|43.29,485|-83.69|43.03,486|-84.36|43.99,487|-83.67|44.45,488|-84.67|43.02,489|-84.59|42.74,490|-85.54|42.2,491|-86.36|41.87,492|-84.36|42.06,493|-85.57|43.33,494|-86.14|43.39,495|-85.66|42.96,496|-85.52|44.44,497|-84.37|45.17,498|-86.94|46.17,499|-88.93|46.6,500|-94.77|41.63,501|-92.79|41.84,502|-93.67|42.12,503|-93.63|41.59,504|-93.37|43.17,505|-94.45|42.77,506|-92.45|42.65,507|-92.31|42.49,508|-94.56|40.96,510|-95.91|42.6,511|-96.39|42.52,512|-96.06|43.28,513|-95.16|43.27,514|-95.08|42.11,515|-95.55|41.44,516|-95.37|40.74,520|-90.98|42.46,521|-91.73|43.2,522|-92.31|41.9,523|-91.66|41.87,524|-91.69|41.96,525|-92.46|40.95,526|-91.44|40.88,527|-90.88|41.64,528|-90.61|41.56,530|-88.24|43.51,531|-88.33|42.75,532|-87.98|43.06,534|-87.86|42.74,535|-89.66|42.95,537|-89.38|43.08,538|-90.73|42.88,539|-89.55|43.64,540|-92.46|45.08,541|-88.23|45.09,542|-87.6|44.52,543|-88.01|44.53,544|-89.85|44.93,545|-89.86|45.89,546|-90.87|43.93,547|-91.52|44.85,548|-91.63|46.04,549|-88.96|44.19,550|-92.98|45.17,551|-93.08|44.96,553|-94.06|44.99,554|-93.31|45.01,556|-91.03|47.67,557|-92.68|47.39,558|-92.08|46.96,559|-92.28|43.89,560|-94.04|44.02,561|-95.65|43.92,562|-95.75|45.08,563|-94.59|45.83,564|-94.5|46.63,565|-96.08|46.86,566|-94.31|47.88,567|-96.22|48.39,570|-97.07|43.48,571|-96.76|43.54,572|-97.18|45.04,573|-98.53|43.91,574|-98.93|45.36,575|-100.61|43.86,576|-101.59|45.43,577|-103.11|44.26,580|-97.39|46.66,581|-96.83|46.86,582|-97.72|48.25,583|-99.34|48.32,584|-99.12|46.88,585|-100.98|46.76,586|-102.99|46.75,587|-101.7|48.34,588|-103.48|48.2,590|-108.62|45.98,591|-108.45|45.69,592|-105.6|48.2,593|-105.58|46.4,594|-111.24|47.79,595|-109.12|48.38,596|-111.74|46.65,597|-112.31|45.48,598|-114.25|46.97,599|-114.57|48.37,600|-88.15|42.29,601|-88.47|42.01,602|-87.69|42.04,603|-87.79|41.89,604|-88.09|41.39,605|-88.55|41.69,606|-87.69|41.83,607|-87.82|42.03,608|-87.76|41.84,609|-87.92|40.8,610|-89.56|42.18,611|-89.08|42.28,612|-90.29|41.5,613|-89.16|41.34,614|-90.43|40.82,615|-89.68|40.71,616|-89.61|40.72,617|-88.89|40.52,618|-88.15|40.11,619|-88.19|39.66,620|-90.01|39.13,622|-89.72|38.41,623|-91.02|39.99,624|-88.19|39.04,625|-89.21|39.63,626|-90|39.86,627|-89.66|39.8,628|-88.65|38.35,629|-88.89|37.55,630|-90.83|38.35,631|-90.32|38.64,633|-91.11|39.02,634|-91.78|39.93,635|-92.61|40.2,636|-90.64|37.61,637|-89.81|37.37,638|-89.73|36.55,639|-90.62|36.84,640|-94.1|39.07,641|-94.58|39.14,644|-94.69|40.13,645|-94.83|39.75,646|-93.55|39.89,647|-94.15|38.06,648|-94.35|36.93,650|-92.23|38.45,651|-92.19|38.51,652|-92.38|39.21,653|-93.26|38.71,654|-92.03|37.93,655|-91.92|37.67,656|-93.08|36.76,657|-92.43|37.03,658|-93.3|37.22,660|-95.12|38.84,661|-94.73|39.11,662|-94.72|38.95,664|-96.15|39.64,665|-96.34|39.4,666|-95.76|39.06,667|-95.23|37.64,668|-96.39|38.36,669|-97.86|39.77,670|-98.49|37.33,671|-98.4|37.44,672|-97.33|37.7,673|-95.81|37.23,674|-97.79|38.98,675|-98.99|38.25,676|-99.47|39.34,677|-101.15|39.35,678|-100.82|37.91,679|-101.43|37.18,680|-96.46|41.55,681|-96.05|41.24,683|-96.93|40.39,684|-97.26|40.89,685|-96.69|40.82,686|-97.68|41.55,687|-98.16|42.43,688|-99.15|41.34,689|-98.9|40.34,690|-100.99|40.37,691|-101.59|41.42,692|-100.64|42.67,693|-102.84|42.29,700|-89.93|29.63,701|-89.93|30.02,703|-90.65|29.62,704|-90.27|30.66,705|-92.25|30.2,706|-93.21|30.34,707|-91.2|30.57,708|-91.1|30.45,710|-93.4|32.45,711|-93.75|32.47,712|-91.95|32.56,713|-91.86|31.43,714|-92.84|31.57,716|-91.75|33.61,717|-92.79|33.48,718|-93.84|33.66,719|-93.61|34.4,720|-91.9|34.92,721|-92.56|34.93,722|-92.37|34.7,723|-90.59|35.07,724|-90.76|36.04,725|-91.81|36.01,726|-92.93|36.15,727|-94.05|36.11,728|-93.33|35.3,729|-94.08|35.29,730|-97.83|35.31,731|-97.5|35.43,734|-97.14|34.21,735|-98.81|34.53,736|-99.33|35.52,737|-98.2|36.42,738|-99.54|36.5,739|-101.67|36.74,740|-96.19|36.34,741|-95.96|36.15,743|-95.02|36.55,744|-95.44|35.64,745|-95.65|34.66,746|-97.05|36.71,747|-95.41|34.02,748|-96.66|35.17,749|-94.69|35.23,750|-96.76|33.06,751|-96.32|32.48,752|-96.78|32.79,753|-96.84|32.81,754|-95.67|33.37,755|-94.45|33.3,756|-94.58|32.49,757|-95.37|32.24,758|-95.68|31.44,759|-94.29|31.29,760|-97.54|32.59,761|-97.38|32.77,762|-97.44|33.52,763|-98.87|33.73,764|-98.59|32.61,765|-97.62|31.11,766|-97.06|31.7,767|-97.15|31.57,768|-99.37|31.23,769|-100.88|31.03,770|-95.39|29.79,772|-95.37|29.77,773|-95.24|30.48,774|-96.02|29.38,775|-94.98|29.68,776|-94.16|30.27,777|-94.19|29.96,778|-96.32|30.67,779|-96.95|28.92,780|-99.01|28.67,781|-97.93|29.08,782|-98.53|29.47,783|-98.14|27.63,784|-97.44|27.73,785|-98.19|26.39,786|-98.1|30.27,787|-97.78|30.3,788|-100.26|29.44,789|-96.87|29.92,790|-101.63|35.48,791|-101.85|35.21,792|-100.57|34.25,793|-102.15|33.37,794|-101.88|33.58,795|-100.31|32.7,796|-99.72|32.46,797|-102.22|31.57,798|-104.17|30.53,799|-106.16|31.8,800|-105.11|39.91,801|-104.47|39.51,802|-104.93|39.78,803|-105.31|40.04,804|-106.16|39.98,805|-105.35|40.57,806|-104.49|40.38,807|-103.09|40.4,808|-103.16|39.12,809|-104.67|38.79,810|-103.58|37.77,811|-106.39|37.54,812|-106.39|38.46,813|-108.42|37.49,814|-108.02|38.43,815|-108.7|38.92,816|-107.86|39.99,820|-105.27|41.31,821|-110.51|44.57,822|-104.67|42.39,823|-107.03|41.75,824|-108.65|44.32,825|-108.91|43.14,826|-106.43|43.1,827|-105|44.2,828|-106.71|44.55,829|-109.71|42.82,830|-110.51|43.7,831|-110.53|42.6,832|-112.17|42.66,833|-114.23|42.81,834|-111.63|43.86,835|-115.77|46.07,836|-115.99|44,837|-116.04|43.58,838|-116.47|47.77,840|-110.86|40.53,841|-111.81|40.71,843|-112.18|41.67,844|-112.01|41.23,845|-109.72|38.09,846|-111.68|39.63,847|-112.82|37.61,850|-112.09|33.63,851|-111.41|33,852|-111.69|33.6,853|-113.44|33.49,855|-110.3|33.43,856|-110.59|32,857|-111.09|32.18,859|-109.81|34.23,860|-111.15|35.89,863|-112.57|34.85,864|-113.79|35.66,865|-109.55|36.03,870|-106.9|35.22,871|-106.72|35.12,873|-108.56|35.44,874|-108.23|36.59,875|-106.04|36.27,877|-104.68|36.06,878|-107.94|34,879|-107.48|33.2,880|-108.03|32.37,881|-103.81|34.26,882|-104.07|32.87,883|-105.48|33.62,884|-103.79|35.74,890|-114.84|37,891|-115.42|36.33,893|-116.96|39.5,894|-118.06|41.29,895|-119.72|39.9,897|-119.8|39.18,898|-115.71|40.95,900|-118.32|34.04,902|-118.76|34.07,903|-118.34|33.95,904|-118.48|34.02,905|-118.33|33.83,906|-118.03|33.93,907|-118.45|33.39,908|-118.18|33.8,910|-118.25|34.28,911|-118.13|34.15,912|-118.25|34.19,913|-118.55|34.36,914|-118.47|34.18,915|-118.33|34.19,916|-118.38|34.18,917|-117.78|34.14,918|-118.13|34.09,919|-116.62|32.73,920|-116.7|33.16,921|-117.14|32.85,922|-115.5|33.59,923|-117.14|34.66,924|-117.33|34.17,925|-117.06|33.68,926|-117.73|33.63,927|-117.85|33.74,928|-117.71|33.85,930|-119.12|34.39,931|-119.97|34.48,932|-119.07|35.98,933|-119.01|35.35,934|-120.5|35.38,935|-118.36|37.37,936|-119.72|36.95,937|-119.85|36.71,939|-121.42|36.34,940|-122.31|37.41,941|-122.44|37.77,943|-122.13|37.44,944|-122.32|37.53,945|-122.05|38.09,946|-122.19|37.78,947|-122.26|37.89,948|-122.3|37.97,949|-122.74|38.14,950|-121.42|36.85,951|-121.76|37.33,952|-120.79|38.14,953|-120.56|37.62,954|-123.15|39.08,955|-123.75|40.5,956|-121.34|38.62,957|-120.86|39.13,958|-121.44|38.58,959|-121.73|39.47,960|-122.42|41.06,961|-120.33|40.52,967|-155.53|19.6,968|-157.83|21.34,969|144.77|13.45,970|-121.45|45.3,971|-123.79|45.64,972|-122.74|45.57,973|-123.26|44.68,974|-123.46|43.61,975|-123.06|42.34,976|-120.4|42.67,977|-120.77|44.32,978|-118.59|45.21,979|-117.63|43.34,980|-121.78|47.42,981|-122.32|47.6,982|-121.79|48.39,983|-123.87|47.96,984|-122.46|47.18,985|-123.27|46.94,986|-122.15|45.99,988|-119.91|48,989|-120.57|46.71,990|-117.56|47.62,991|-118.13|47.91,992|-117.4|47.67,993|-118.82|46.4,994|-117.21|46.2,995|-156.93|60.89,996|-151.66|60.82,997|-146.69|65.19,998|-136.2|58.94,999|-131.24|55.86",Jee="ABW|-70.02|12.54,AFG|68|34.63,AGO|14.24|-9.84,AIA|-63.06|18.22,ALA|19.93|60.1,ALB|19.81|41.14,AND|1.53|42.51,ARE|55.24|24.99,ARG|-61.28|-32.95,ARM|44.52|40.23,ASM|-170.7|-14.28,ATA|21.28|-80.52,ATF|70.22|-49.35,ATG|-61.84|17.12,AUS|144.91|-33.49,AUT|15.51|47.93,AZE|49.02|40.37,BDI|29.49|-3.34,BEL|4.37|50.89,BEN|2.33|7.65,BES|-68.27|12.15,BFA|-2.08|12.15,BGD|90.42|23.65,BGR|24.92|42.71,BHR|50.57|26.18,BHS|-77.34|25.06,BIH|17.97|44.18,BLM|-62.85|17.9,BLR|27.81|53.57,BLZ|-88.41|17.54,BMU|-64.78|32.29,BOL|-65.79|-17.39,BRA|-45.89|-17.51,BRB|-59.62|13.11,BRN|114.74|4.82,BTN|89.69|27.32,BWA|25.99|-23.43,CAF|18.32|4.94,CAN|-79.4|43.71,CCK|96.82|-12.16,CHE|7.96|47.07,CHL|-71.21|-33.72,CHN|114.44|32,CIV|-4.89|6.16,CMR|11.19|5.41,COD|20.23|-4.72,COG|14.18|-4.04,COK|-159.78|-21.21,COL|-74.85|5.93,COM|43.58|-11.89,CPV|-23.87|15.66,CRI|-84.14|9.99,CUB|-80.25|22.21,CUW|-68.88|12.12,CXR|105.68|-10.42,CYM|-81.38|19.32,CYP|33.31|35,CZE|15.44|49.89,DEU|9.65|51.24,DJI|43.15|11.59,DMA|-61.39|15.3,DNK|11.42|55.79,DOM|-70.07|18.75,DZA|3.55|35.62,ECU|-79.29|-1.4,EGY|31.22|29.84,ERI|38.84|15.25,ESH|-13.19|27.14,ESP|-2.91|39.69,EST|25.17|59.29,ETH|39.02|9.26,FIN|24.87|61.26,FJI|178.2|-17.85,FLK|-57.86|-51.69,FRA|2.87|47.28,FRO|-6.77|62.01,FSM|158.16|6.92,GAB|10.22|-0.06,GBR|-1.37|52.49,GEO|43.92|41.84,GGY|-2.54|49.46,GHA|-0.98|6.4,GIB|-5.35|36.14,GIN|-12.8|9.75,GLP|-61.53|16.23,GMB|-16.59|13.41,GNB|-15.48|11.9,GNQ|9.77|1.86,GRC|23.73|37.98,GRD|-61.75|12.05,GRL|-51.72|64.18,GTM|-90.71|14.73,GUF|-52.64|5.04,GUM|144.82|13.5,GUY|-58.11|6.63,HKG|114.15|22.33,HMD|73.5|-53.1,HND|-87.41|14.94,HRV|16.21|45.31,HTI|-72.34|18.54,HUN|19.21|47.39,IDN|106.85|-6.21,IMN|-4.48|54.15,IND|78.36|21,IOT|71.35|-6.19,IRL|-6.87|53.12,IRN|51.6|34.4,IRQ|44.78|33.65,ISL|-21.7|64.22,ISR|34.97|32.07,ITA|12|42.73,JAM|-76.91|18.03,JEY|-2.1|49.19,JOR|35.96|32.03,JPN|137.27|35.53,KAZ|70.17|47.24,KEN|36.81|-0.97,KGZ|73.96|41.94,KHM|104.7|11.75,KIR|172.98|1.33,KNA|-62.72|17.3,KOR|127.51|36.58,KWT|48.06|29.2,Kosovo|20.9|42.58,LAO|102.6|17.97,LBN|35.53|33.87,LBR|-10.39|6.36,LBY|13.19|32.89,LCA|-60.97|14.04,LIE|9.52|47.14,LKA|80.25|7.25,LSO|27.67|-29.38,LTU|24.18|55.04,LUX|6.08|49.56,LVA|24.13|56.85,MAC|113.55|22.19,MAF|-63.08|18.07,MAR|-6.65|33.43,MCO|7.42|43.74,MDA|28.82|47.09,MDG|47.46|-18.89,MDV|73.51|4.18,MEX|-100.65|21.59,MHL|171.38|7.09,MKD|21.47|41.8,MLI|-7.15|12.95,MLT|14.46|35.91,MMR|96.18|18.74,MNE|19.17|42.53,MNG|105.33|47.94,MNP|145.75|15.21,MOZ|32.58|-25.97,MRT|-14.58|18.01,MSR|-62.21|16.79,MTQ|-61.01|14.64,MUS|57.51|-20.23,MWI|34.34|-14.24,MYS|103.35|3.45,MYT|45.23|-12.77,N. Cyprus|33.56|35.27,NAM|17.19|-21.34,NCL|166.47|-22.26,NER|5.05|14.04,NFK|167.97|-29.05,NGA|5.91|7.87,NIC|-86.17|12.33,NIU|-169.92|-19.05,NLD|5.21|52.09,NOR|9.62|60.46,NPL|84.7|27.64,NRU|166.93|-0.55,NZL|174.54|-38.9,OMN|57.69|23.27,PAK|71.47|30.24,PAN|-79.83|8.98,PCN|-130.1|-25.07,PER|-76.4|-11.18,PHL|121.05|14.65,PLW|134.58|7.52,PNG|147.4|-7.71,POL|19.26|51.79,PRI|-66.24|18.35,PRK|126.54|39.52,PRT|-9.08|39.42,PRY|-57.15|-25.27,PSE|35.23|31.78,PYF|-149.59|-17.57,QAT|51.49|25.32,REU|55.45|-21.08,ROU|25.47|45.38,RUS|51.84|54.52,RWA|29.78|-1.98,SAU|43.01|23.76,SDN|31.67|14.67,SEN|-16.73|14.66,SGP|103.85|1.33,SGS|-36.51|-54.28,SHN|-5.72|-15.92,SJM|15.65|78.22,SLB|159.97|-9.44,SLE|-12.4|8.36,SLV|-89.08|13.7,SMR|12.45|43.94,SOM|44.96|4.91,SPM|-56.18|46.78,SRB|20.62|44.5,SSD|29.91|6.61,STP|6.73|0.34,SUR|-55.18|5.84,SVK|18.69|48.55,SVN|14.83|46.16,SWE|16.03|58.86,SWZ|31.28|-26.43,SXM|-63.05|18.03,SYC|55.46|-4.62,SYR|37.18|35.12,Somaliland|46.23|9.76,TCA|-72.1|21.74,TCD|16.57|11.53,TGO|1.16|6.8,THA|100.71|13.71,TJK|69.39|39.08,TKM|59.4|38.74,TLS|125.65|-8.67,TON|-175.2|-21.14,TTO|-61.4|10.5,TUN|10.23|35.87,TUR|32.1|39.5,TUV|179.19|-8.52,TWN|121.06|24.37,TZA|36.11|-5.88,UGA|32.23|0.59,UKR|32.8|48.99,URY|-56.28|-34.1,USA|-93.51|37.4,UZB|69.22|41.26,VAT|12.45|41.9,VCT|-61.21|13.14,VEN|-67.82|9.83,VGB|-64.62|18.43,VIR|-64.8|17.9,VNM|106.63|10.82,VUT|168.31|-17.74,WLF|-176.17|-13.28,WSM|-171.77|-13.83,YEM|44.62|14.36,ZAF|26.96|-28.33,ZMB|28.41|-13.86,ZWE|30.49|-18.56",wU=new Set(["n a","none","null","nil","unknown","not applicable","not available","not specified","unspecified","missing","blank","empty","tbd","to be determined"]),Yee=new Set(Array.from(wU).filter(e=>e.includes(" ")&&e!=="n a").map(e=>e.replace(/ /g,"")));function ki(e){return e?wU.has(e)||Yee.has(e.replace(/ /g,"")):!0}var Qee=80;function x1(e){return vU(e.normalize("NFD").replace(new RegExp("\\p{Diacritic}","gu"),"").toLowerCase()).replace(/[^\p{L}\p{Nd}\s]/gu," ").replace(/\s+/g," ").trim()}function h0(e){return ya(e)}var e1e="AD AND,AE ARE,AF AFG,AG ATG,AI AIA,AL ALB,AM ARM,AO AGO,AQ ATA,AR ARG,AS ASM,AT AUT,AU AUS,AW ABW,AX ALA,AZ AZE,BA BIH,BB BRB,BD BGD,BE BEL,BF BFA,BG BGR,BH BHR,BI BDI,BJ BEN,BL BLM,BM BMU,BN BRN,BO BOL,BQ BES,BR BRA,BS BHS,BT BTN,BV BVT,BW BWA,BY BLR,BZ BLZ,CA CAN,CC CCK,CD COD,CF CAF,CG COG,CH CHE,CI CIV,CK COK,CL CHL,CM CMR,CN CHN,CO COL,CR CRI,CU CUB,CV CPV,CW CUW,CX CXR,CY CYP,CZ CZE,DE DEU,DJ DJI,DK DNK,DM DMA,DO DOM,DZ DZA,EC ECU,EE EST,EG EGY,EH ESH,ER ERI,ES ESP,ET ETH,FI FIN,FJ FJI,FK FLK,FM FSM,FO FRO,FR FRA,GA GAB,GB GBR,GD GRD,GE GEO,GF GUF,GG GGY,GH GHA,GI GIB,GL GRL,GM GMB,GN GIN,GP GLP,GQ GNQ,GR GRC,GS SGS,GT GTM,GU GUM,GW GNB,GY GUY,HK HKG,HM HMD,HN HND,HR HRV,HT HTI,HU HUN,ID IDN,IE IRL,IL ISR,IM IMN,IN IND,IO IOT,IQ IRQ,IR IRN,IS ISL,IT ITA,JE JEY,JM JAM,JO JOR,JP JPN,KE KEN,KG KGZ,KH KHM,KI KIR,KM COM,KN KNA,KP PRK,KR KOR,KW KWT,KY CYM,KZ KAZ,LA LAO,LB LBN,LC LCA,LI LIE,LK LKA,LR LBR,LS LSO,LT LTU,LU LUX,LV LVA,LY LBY,MA MAR,MC MCO,MD MDA,ME MNE,MF MAF,MG MDG,MH MHL,MK MKD,ML MLI,MM MMR,MN MNG,MO MAC,MP MNP,MQ MTQ,MR MRT,MS MSR,MT MLT,MU MUS,MV MDV,MW MWI,MX MEX,MY MYS,MZ MOZ,NA NAM,NC NCL,NE NER,NF NFK,NG NGA,NI NIC,NL NLD,NO NOR,NP NPL,NR NRU,NU NIU,NZ NZL,OM OMN,PA PAN,PE PER,PF PYF,PG PNG,PH PHL,PK PAK,PL POL,PM SPM,PN PCN,PR PRI,PS PSE,PT PRT,PW PLW,PY PRY,QA QAT,RE REU,RO ROU,RS SRB,RU RUS,RW RWA,SA SAU,SB SLB,SC SYC,SD SDN,SE SWE,SG SGP,SH SHN,SI SVN,SJ SJM,SK SVK,SL SLE,SM SMR,SN SEN,SO SOM,SR SUR,SS SSD,ST STP,SV SLV,SX SXM,SY SYR,SZ SWZ,TC TCA,TD TCD,TF ATF,TG TGO,TH THA,TJ TJK,TK TKL,TL TLS,TM TKM,TN TUN,TO TON,TR TUR,TT TTO,TV TUV,TW TWN,TZ TZA,UA UKR,UG UGA,UM UMI,US USA,UY URY,UZ UZB,VA VAT,VC VCT,VE VEN,VG VGB,VI VIR,VN VNM,VU VUT,WF WLF,WS WSM,YE YEM,YT MYT,ZA ZAF,ZM ZMB,ZW ZWE",dn=(()=>{let e=new Map;for(let t of e1e.split(",")){let[a,r]=t.split(" ");a&&r&&e.set(a,r)}return e})(),t1e=new Set(dn.keys()),a1e=new Set(dn.values()),n1e=["en","fr","es","de","it","pt","ru","ja","zh","ko","ar","hi","tr","pl","he","nl","sv","fi","nb","da","cs","el","uk","ro","id","vi","th","sk","hu","hr"],r1e={usa:"USA","u.s.":"USA","u.s.a.":"USA",us:"USA",america:"USA","united states of america":"USA","the united states":"USA",uk:"GBR","u.k.":"GBR","great britain":"GBR",britain:"GBR",england:"GBR","south korea":"KOR","north korea":"PRK",korea:"KOR","ivory coast":"CIV","cote d ivoire":"CIV",vietnam:"VNM",laos:"LAO",syria:"SYR",iran:"IRN",russia:"RUS",moldova:"MDA",tanzania:"TZA",bolivia:"BOL",venezuela:"VEN",brunei:"BRN","czech republic":"CZE",czechia:"CZE",slovakia:"SVK",uae:"ARE","united arab emirates":"ARE",drc:"COD","dr congo":"COD","democratic republic of the congo":"COD","republic of the congo":"COG",congo:"COG",swaziland:"SWZ",eswatini:"SWZ","cape verde":"CPV","cabo verde":"CPV",burma:"MMR",myanmar:"MMR",holland:"NLD","the netherlands":"NLD",netherlands:"NLD",vatican:"VAT","vatican city":"VAT",palestine:"PSE",macau:"MAC",macao:"MAC","hong kong":"HKG",taiwan:"TWN",turkey:"TUR",turkiye:"TUR",macedonia:"MKD","north macedonia":"MKD",gambia:"GMB","the gambia":"GMB",bahamas:"BHS","the bahamas":"BHS","east timor":"TLS","timor leste":"TLS"},i1e=Object.freeze({"Antigua and Barbuda":"ATG","Bosnia and Herzegovina":"BIH","Heard Island and McDonald Islands":"HMD","Saint Kitts and Nevis":"KNA","St Kitts and Nevis":"KNA","Saint Pierre and Miquelon":"SPM","St Pierre and Miquelon":"SPM","Saint Vincent and the Grenadines":"VCT","St Vincent and the Grenadines":"VCT","Sao Tome and Principe":"STP","South Georgia and the South Sandwich Islands":"SGS","Svalbard and Jan Mayen":"SJM","Trinidad and Tobago":"TTO","Turks and Caicos Islands":"TCA","Turks and Caicos":"TCA","Wallis and Futuna":"WLF","Saint Helena, Ascension and Tristan da Cunha":"SHN","Bonaire, Sint Eustatius and Saba":"BES","United Kingdom of Great Britain and Northern Ireland":"GBR","Bolivia, Plurinational State of":"BOL","Bolivia (Plurinational State of)":"BOL","Brunei Darussalam":"BRN","Congo, The Democratic Republic of the":"COD","Congo, Democratic Republic of the":"COD","Democratic Republic of Congo":"COD","Falkland Islands (Malvinas)":"FLK","Holy See (Vatican City State)":"VAT","Holy See":"VAT","Iran, Islamic Republic of":"IRN","Iran (Islamic Republic of)":"IRN","Islamic Republic of Iran":"IRN","Korea, Republic of":"KOR","Republic of Korea":"KOR","Korea (the Republic of)":"KOR","Korea, Democratic People's Republic of":"PRK","Democratic People's Republic of Korea":"PRK","Korea (the Democratic People's Republic of)":"PRK","Lao People's Democratic Republic":"LAO","Micronesia, Federated States of":"FSM","Micronesia (Federated States of)":"FSM","Moldova, Republic of":"MDA","Republic of Moldova":"MDA","Palestine, State of":"PSE","State of Palestine":"PSE","Russian Federation":"RUS","Syrian Arab Republic":"SYR","Taiwan, Province of China":"TWN","Tanzania, United Republic of":"TZA","United Republic of Tanzania":"TZA","Venezuela, Bolivarian Republic of":"VEN","Venezuela (Bolivarian Republic of)":"VEN","Viet Nam":"VNM","Virgin Islands, British":"VGB","Virgin Islands, U.S.":"VIR","Saint Martin (French part)":"MAF","Sint Maarten (Dutch part)":"SXM","Netherlands (Kingdom of the)":"NLD","Macedonia, the former Yugoslav Republic of":"MKD"}),xf=null,Kf=null;function WU(){if(xf)return xf;let e=new Map,t=[],a=["en",...n1e.filter(n=>n!=="en")];for(let n of a){let i=null;try{i=new Intl.DisplayNames([n],{type:"region"})}catch{continue}for(let[o,s]of dn){let l;try{l=i.of(o)}catch{l=void 0}if(!l||l===o)continue;let u=x1(l);u&&!e.has(u)&&e.set(u,s),t.push([l,s])}}for(let[n,i]of Object.entries(i1e)){let o=x1(n);o&&!e.has(o)&&e.set(o,i),t.push([n,i])}for(let[n,i]of Object.entries(r1e)){let o=x1(n);o&&e.set(o,i),t.push([n,i])}let r=new Yf;for(let[n,i]of t){let o=x1(n);e.get(o)===i&&(r.add(n,i),r.add(o,i))}return xf=e,Kf=r,e}function o1e(){return Kf||WU(),Kf}function s1e(e){if(e==null)return null;let t=String(e).trim();if(!t)return null;let a=x1(t);return WU().get(a)||(ki(a)?null:o1e().get(h0(t))??null)}function z8(e){return dn.get(String(e||"").trim().toUpperCase())??null}function dr(e){if(e==null)return null;let t=String(e).trim();if(!t)return null;let a=t.toUpperCase();return a.length===3&&a1e.has(a)?a:a.length===2&&t1e.has(a)?dn.get(a)??null:s1e(t)}var dU={"north-america":"AG AI AW BB BL BM BQ BS BZ CA CR CU CW DM DO GD GL GP GT HN HT JM KN KY LC MF MQ MS MX NI PA PM PR SV SX TC TT US VC VG VI","south-america":"AR BO BR CL CO EC FK GF GY PE PY SR UY VE",europe:"AD AL AT AX BA BE BG BY CH CY CZ DE DK EE ES FI FO FR GB GG GI GR HR HU IE IM IS IT JE LI LT LU LV MC MD ME MK MT NL NO PL PT RO RS RU SE SI SJ SK SM UA VA",africa:"AO BF BI BJ BW CD CF CG CI CM CV DJ DZ EG EH ER ET GA GH GM GN GQ GW KE KM LR LS LY MA MG ML MR MU MW MZ NA NE NG RE RW SC SD SH SL SN SO SS ST SZ TD TG TN TZ UG YT ZA ZM ZW",asia:"AE AF AM AZ BD BH BN BT CC CN CX GE HK ID IL IN IO IQ IR JO JP KG KH KP KR KW KZ LA LB LK MM MN MO MV MY NP OM PH PK PS QA SA SG SY TH TJ TL TM TR TW UZ VN YE",oceania:"AS AU CK FJ FM GU KI MH MP NC NF NR NU NZ PF PG PN PW SB TK TO TV UM VU WF WS",antarctica:"AQ BV GS HM TF"},R8=(()=>{let e=new Map;for(let t of Object.keys(dU))for(let a of dU[t].split(/\s+/))a&&e.set(a,t);return e})();function l1e(e){for(let[t,a]of e){let r=R8.get(t);r&&!R8.has(a)&&R8.set(a,r)}}l1e(dn);function CU(e){if(!e)return null;let t=String(e).trim().toUpperCase();if(!t)return null;let a=R8.get(t);if(a)return a;let r=dr(String(e));return r?R8.get(r)??null:null}var u1e=new Set("AE BH CY EG IL IQ IR JO KW LB OM PS QA SA SY TR YE".split(" ")),aue=new Set([...u1e].map(e=>dn.get(e)).filter(e=>!!e)),c1e=Symbol.for("@bicharts/shape-core/admin1-lookup/v1"),Yt=(e=>e[c1e]??={lookup:null})(globalThis),d1e=(()=>{let e=new Map;return dn.forEach((t,a)=>e.set(t,a)),e})();function Xf(){return Yt.lookup!==null}function _U(e){let t=dr(e);return t?d1e.get(t)??null:null}var h1e=10;function p1e(e,t={}){if(!Yt.lookup||!e)return{status:"unmatched"};let a=x1(String(e)),r=Yt.lookup.cityByKey.get(a);if(!r||r.length===0)return{status:"unmatched"};let n=t.country?_U(t.country):null;if(t.country&&n?r=r.filter(c=>c.cc===n):t.region&&(r=r.filter(c=>CU(c.cc)===t.region)),r.length===0)return{status:"unmatched"};let i=r.filter(c=>c.primary),o=i.length>0?i:r,s=new Map;for(let c of o){let d=`${c.cc}|${c.a1}|${c.lat}|${c.lon}`;s.has(d)||s.set(d,c)}let l=[...s.values()].sort((c,d)=>d.popK-c.popK),u=l[0];return l.length===1||u.popK>=h1e*Math.max(l[1].popK,1)?!u.a1&&!u.pid?{status:"unmatched"}:{status:"resolved",cc:u.cc,admin1:u.a1,code:`${u.cc}.${u.a1}`,provinceId:u.pid||null,lat:u.lat,lon:u.lon,popK:u.popK}:{status:"ambiguous",candidates:l.length}}function m1e(e,t){if(!Yt.lookup||!e)return[];let a=Yt.lookup.admin1ByKey.get(x1(String(e)))??[],r=t?_U(t):null;return r?a.filter(n=>n.startsWith(r+".")):[...a]}function g1e(e){return!Yt.lookup||!e?null:Yt.lookup.provinceOfCode.get(e)??null}function f1e(e){return!Yt.lookup||!e?null:Yt.lookup.centers?.get(String(e).trim().toUpperCase())??null}function d0(e,t={}){if(!Yt.lookup||!e)return{status:"unmatched"};let a=String(e).trim();if(!a)return{status:"unmatched"};if(Yt.lookup.provinceIds.has(a.toUpperCase()))return{status:"resolved",provinceId:a.toUpperCase()};let r=Yt.lookup.provinceOfCode.get(a.toUpperCase());if(r)return{status:"resolved",provinceId:r};let n=[...new Set(m1e(a,t.country??null).map(g1e).filter(i=>!!i))];if(n.length>1&&t.region){let i=n.filter(o=>CU(o.split("-")[0])===t.region);i.length&&(n=i)}return n.length===1?{status:"resolved",provinceId:n[0]}:n.length?{status:"ambiguous",candidates:n.length}:{status:"unmatched"}}var y1e={"north-america":"N",world:"W"};function AU(e,t){let a=e.filter(r=>r.row.kinds.includes(y1e[t||"north-america"]));return a.length?a:(t||"north-america")==="world"?e:a}var MU=$ee;function b1e(){return MU.length>0}var N1e={US:"washington",CA:"ottawa",MX:"mexico city",GB:"london",FR:"paris",DE:"berlin",IT:"rome",ES:"madrid",PT:"lisbon",NL:"amsterdam",BE:"brussels",CH:"bern",AT:"vienna",IE:"dublin",PL:"warsaw",SE:"stockholm",NO:"oslo",DK:"copenhagen",FI:"helsinki",IS:"reykjavik",CZ:"prague",SK:"bratislava",HU:"budapest",RO:"bucharest",BG:"sofia",GR:"athens",TR:"ankara",UA:"kyiv",RU:"moscow",RS:"belgrade",HR:"zagreb",SI:"ljubljana",EE:"tallinn",LV:"riga",LT:"vilnius",JP:"tokyo",CN:"beijing",KR:"seoul",KP:"pyongyang",IN:"new delhi",PK:"islamabad",BD:"dhaka",LK:"colombo",TH:"bangkok",VN:"hanoi",PH:"manila",ID:"jakarta",MY:"kuala lumpur",SG:"singapore",MM:"naypyidaw",KH:"phnom penh",LA:"vientiane",NP:"kathmandu",AF:"kabul",IR:"tehran",IQ:"baghdad",SA:"riyadh",AE:"abu dhabi",QA:"doha",KW:"kuwait city",BH:"manama",OM:"muscat",JO:"amman",LB:"beirut",SY:"damascus",IL:"jerusalem",YE:"sanaa",EG:"cairo",LY:"tripoli",TN:"tunis",DZ:"algiers",MA:"rabat",SD:"khartoum",ET:"addis ababa",KE:"nairobi",TZ:"dodoma",UG:"kampala",NG:"abuja",GH:"accra",CI:"yamoussoukro",SN:"dakar",ML:"bamako",CM:"yaounde",CD:"kinshasa",CG:"brazzaville",AO:"luanda",ZM:"lusaka",ZW:"harare",MZ:"maputo",BW:"gaborone",NA:"windhoek",ZA:"pretoria",AU:"canberra",NZ:"wellington",PG:"port moresby",FJ:"suva",BR:"brasilia",AR:"buenos aires",CL:"santiago",PE:"lima",CO:"bogota",VE:"caracas",EC:"quito",BO:"la paz",PY:"asuncion",UY:"montevideo",GY:"georgetown",SR:"paramaribo",CU:"havana",DO:"santo domingo",HT:"port au prince",JM:"kingston",TT:"port of spain",PA:"panama city",CR:"san jose",NI:"managua",HN:"tegucigalpa",SV:"san salvador",GT:"guatemala city",BZ:"belmopan",AZ:"baku",AM:"yerevan",GE:"tbilisi",KZ:"astana",UZ:"tashkent",TM:"ashgabat",KG:"bishkek",TJ:"dushanbe",MN:"ulaanbaatar",BY:"minsk",MD:"chisinau",AL:"tirana",MK:"skopje",BA:"sarajevo",ME:"podgorica",XK:"pristina",CY:"nicosia",MT:"valletta",LU:"luxembourg"},zf=null;function $8(){if(zf)return zf;let e=new Map,t=MU,a=(r,n,i)=>{if(!r)return;let o=e.get(r);o?o.some(s=>s.row===n)||o.push({row:n,primary:i}):e.set(r,[{row:n,primary:i}])};for(let r of t.split(",")){let n=r.split("|");if(n.length<7)continue;let i={a1:n[1],cc:n[2],lon:+n[3],lat:+n[4],pop:+n[5],kinds:n[6]||"N"};n.length>8&&n[8]&&(i.tags=n[8].split(";").filter(Boolean));let o=N1e[i.cc];if(o&&ya(n[0])===ya(o)&&(i.tags||(i.tags=[]),i.tags.includes("capital")||i.tags.push("capital")),a(x1(n[0]),i,!0),n.length>7&&n[7])for(let s of n[7].split(";"))a(x1(s),i,!1)}for(let r of e.values())r.sort((n,i)=>i.row.pop-n.row.pop);return zf=e,e}var v1e=200,Rf=null;function PU(){if(Rf)return Rf;let e=new Map;for(let[t,a]of $8()){if(!t.endsWith(" city"))continue;let r=t.slice(0,-5);!r||$8().get(r)?.some(n=>n.primary)||a[0].row.pop<v1e||e.set(r,a)}return Rf=e,e}function UU(e,t){if(!e)return;let a=hU($8(),PU(),e);if(a)return a;if(ki(e))return;let r=t??ya(e);if(E8(r))return hU(S1e(),k1e(),r)}function hU(e,t,a){let r=e.get(a);if(r?.some(o=>o.primary))return r;let n=t.get(a);if(!n)return r;let i=n.map(o=>({row:o.row,primary:!0}));return r?[...i,...r]:i}var Ef=null;function S1e(){return Ef||(Ef=IU($8())),Ef}var $f=null;function k1e(){return $f||($f=IU(PU())),$f}function IU(e){let t=new Map;for(let[a,r]of e){let n=ya(a);if(!E8(n))continue;let i=t.get(n);if(!i){t.set(n,r.slice());continue}for(let o of r){let s=i.findIndex(l=>l.row===o.row);s<0?i.push(o):o.primary&&!i[s].primary&&(i[s]=o)}}for(let a of t.values())a.sort((r,n)=>n.row.pop-r.row.pop);return t}var jf=null;function w1e(){if(jf)return jf;let e=new Map;for(let a of Jee.split(",")){let r=a.split("|");r.length<3||e.set(r[0],{lon:+r[1],lat:+r[2]})}let t=new Map;for(let a of $8().values())for(let r of a){let n=z8(r.row.cc);if(!n)continue;let i=t.get(n);(i===void 0||r.row.pop>i)&&(t.set(n,r.row.pop),e.set(n,{lon:r.row.lon,lat:r.row.lat}))}return jf=e,e}var Of=null;function p0(){if(Of)return Of;let e=new Map;for(let t of Zee.split(",")){let a=t.split("|");if(a.length<5)continue;let r={key:a[0],cc:a[1],name:a[2],lon:+a[3],lat:+a[4]};e.set(x1(r.key),r);let n=x1(r.name);n==="mexico"&&r.cc==="MX"?(e.set("estado de mexico",r),e.set("edomex",r)):e.set(n,r)}return Of=e,e}var Df=null;function W1e(){if(Df)return Df;let e=new Yf;for(let[t,a]of p0())e.add(t,a);return Df=e,e}var Lf=null;function C1e(){if(Lf)return Lf;let e=new Map;for(let t of qee.split(",")){let a=t.split("|");a.length<3||e.set(a[0],{lon:+a[1],lat:+a[2]})}return Lf=e,e}var _1e=new Set(["USA","PRI","VIR","GUM","ASM","MNP"]),ey=new Set(["USA","CAN","MEX"]);function pU(e,t){return t!=="north-america"||!!e&&ey.has(e)}function Si(e){if(e==null)return null;let t=x1(String(e));if(!t)return null;let a=p0().get(t);return a?a.key:ki(t)?null:W1e().get(h0(String(e)))?.key??null}function A1e(e){return p0().get(x1(e))?.cc??null}function M1e(e){let t=A1e(e);return t?z8(t):null}function TU(e){if(e==null)return null;let t=String(e).trim().replace(/\.0+$/,"");if(!t)return null;let a=/^(\d{5})(-\d{4})?$/.exec(t);return a?a[1]:/^\d{3,4}$/.test(t)?t.padStart(5,"0"):null}function ty(e){if(e==null)return[];let t=String(e).trim().replace(/\.0+$/,"");if(!t)return[];if(/^\d{3}$/.test(t)){let r=t.padStart(5,"0").slice(0,3);return r===t?[t]:[t,r]}let a=TU(t);return a?[a.slice(0,3)]:[]}function P1e(e){return!!e&&e.ambiguous===!0&&!("precision"in e)}function U1e(e){let t=null,a=typeof e.lat=="string"?e.lat.trim():e.lat,r=typeof e.lon=="string"?e.lon.trim():e.lon;if(a!=null&&a!==""&&r!==void 0&&r!==null&&r!==""){let o=+a,s=+r;if(isFinite(o)&&isFinite(s)&&o>=-90&&o<=90&&s>=-180&&s<=180)if(o===0&&s===0)t={lat:0,lon:0,precision:"latlon"};else return{lat:o,lon:s,precision:"latlon"}}let n=dr(e.country),i=Si(e.state);if(i&&n&&M1e(i)!==n&&(i=null),i&&e.region&&e.region!=="north-america"&&(i=null),e.city!==void 0&&e.city!==null){let o=x1(String(e.city)),s=UU(o,h0(String(e.city))),l=s?AU(s,e.mapKind):null;if(l&&l.length){let u=e.state===void 0||e.state===null?"":String(e.state).trim(),c=u?x1(u):"",d=u?Si(u):null,h=[],p=-1;for(let g of l){let f=g.row,y=0;if(u&&f.a1!=="")if(d&&f.a1===d||x1(f.a1)===c)y++;else continue;if(n)if(z8(f.cc)===n)y++;else continue;y>p?(p=y,h=[g]):y===p&&h.push(g)}h.some(g=>g.primary)&&(h=h.filter(g=>g.primary));let m=new Map;for(let g of h)m.set(g.row.lon.toFixed(2)+","+g.row.lat.toFixed(2),g.row);if(m.size===1){let g=h[0].row;return{lat:g.lat,lon:g.lon,precision:"city"}}if(m.size>1)return{ambiguous:!0,matches:m.size}}if(Xf()){let u=p1e(String(e.city),{country:e.country??null,region:e.region??null});if(u.status==="ambiguous")return{ambiguous:!0,matches:u.candidates};if(u.status==="resolved"&&pU(z8(u.cc),e.mapKind)){let c=e.state===void 0||e.state===null?"":String(e.state).trim(),d=c?d0(c,{country:e.country??null,region:e.region??null}):null;if(!d||d.status==="resolved"&&d.provinceId===u.provinceId)return{lat:u.lat,lon:u.lon,precision:"city"}}}}if(!n||_1e.has(n))for(let o of ty(e.zip)){let s=C1e().get(o);if(s)return{lat:s.lat,lon:s.lon,precision:"zip3"}}if(i){let o=p0().get(x1(i));if(o)return{lat:o.lat,lon:o.lon,precision:"state"}}if(!i&&e.state!==void 0&&e.state!==null&&String(e.state).trim()&&Xf()){let o=d0(String(e.state),{country:e.country??null,region:e.region??null});if(o.status==="ambiguous")return{ambiguous:!0,matches:o.candidates};if(o.status==="resolved"){let s=z8(o.provinceId.split("-")[0]),l=f1e(o.provinceId);if(l&&(!n||s===n)&&pU(s,e.mapKind))return{lat:l[1],lon:l[0],precision:"state"}}}if(n&&(e.mapKind!=="north-america"||ey.has(n))){let o=w1e().get(n);if(o)return{lat:o.lat,lon:o.lon,precision:"country"}}return t}var c0={latlon:0,city:1,zip3:2,state:3,country:4},mU=8;function xU(e,t,a){let r=new Array(e.length),n=new Array(e.length),i=new Array(e.length),o=new Set,s=[],l=new Set,u=[],c=new Set,d=[],h={latlon:0,city:0,zip3:0,state:0,country:0},p=0,m=0,g=null;for(let y=0;y<e.length;++y){let b=e[y],v=U1e({...b,mapKind:t,region:a});if(P1e(v)){r[y]=null,n[y]=null,i[y]=null,m++;let k=Ff(b);k&&!c.has(k.toLowerCase())&&(c.add(k.toLowerCase()),d.length<mU&&d.push(k))}else if(v){if(r[y]=v.lat,n[y]=v.lon,i[y]=v.precision,p++,h[v.precision]++,(g===null||c0[v.precision]>c0[g])&&(g=v.precision),c0[v.precision]>c0.city){let k=Ff(b);k&&!l.has(k.toLowerCase())&&(l.add(k.toLowerCase()),u.length<mU&&u.push(k))}}else{r[y]=null,n[y]=null,i[y]=null;let k=Ff(b);k&&!o.has(k.toLowerCase())&&(o.add(k.toLowerCase()),s.push(k))}}let f=!b1e()&&e.some(y=>y.city!==null&&y.city!==void 0&&String(y.city).trim()!=="");return{lat:r,lon:n,precisions:i,precision:g,precisionCounts:h,coarseExamples:u,unmatched:s,ambiguousRows:m,ambiguousExamples:d,matchedRows:p,totalRows:e.length,...f?{cityTableMissing:!0}:{}}}function Ff(e){return[e.city,e.state,e.zip,e.country].filter(a=>a!=null&&String(a).trim()!=="").map(a=>String(a).trim()).join(", ")||(e.label===null||e.label===void 0?"":String(e.label).trim())}function zU(e,t){if(!e)return!1;let a=UU(e);return a?AU(a,t).length>0:!1}/*! @bicharts/shape-core — Apache-2.0. Bundled reference data: GeoNames (https://www.geonames.org/) CC BY 4.0; US Census/TIGER (public domain). Full text: NOTICE in this package. */var I1e="006007008009010011012013014015016017018019020021022023024025026027028029030031032033034035036037038039040041042043044045046047048049050051052053054056057058059060061062063064065066067068069070071072073074075076077078079080081082083084085086087088089100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191193194195196197198199200201202203204205206207208209210211212214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310312313314315316317318319320321322323324325326327328329330331333334335336337338339341342344346347349350351352354355356357358359360361362363364365366367368369370371372373374376377378379380381382383384385386387388389390391392393394395396397398400401402403404405406407408409410411412413414415416417418420421422423424425426427430431432433434435436437438439440441442443444445446447448449450451452453454455456457458460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508510511512513514515516520521522523524525526527528530531532534535537538539540541542543544545546547548549550551553554556557558559560561562563564565566567570571572573574575576577580581582583584585586587588590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620622623624625626627628629630631633634635636637638639640641644645646647648650651652653654655656657658660661662664665666667668669670671672673674675676677678679680681683684685686687688689690691692693700701703704705706707708710711712713714716717718719720721722723724725726727728729730731734735736737738739740741743744745746747748749750751752753754755756757758759760761762763764765766767768769770772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816820821822823824825826827828829830831832833834835836837838840841843844845846847850851852853855856857859860863864865870871873874875877878879880881882883884890891893894895897898900902903904905906907908910911912913914915916917918919920921922923924925926927928930931932933934935936937939940941943944945946947948949950951952953954955956957958959960961967968969970971972973974975976977978979980981982983984985986988989990991992993994995996997998999",T1e=new Set(I1e.match(/.{3}/g)??[]),RU=[["AL","Alabama"],["AK","Alaska"],["AZ","Arizona"],["AR","Arkansas"],["CA","California"],["CO","Colorado"],["CT","Connecticut"],["DE","Delaware"],["FL","Florida"],["GA","Georgia"],["HI","Hawaii"],["ID","Idaho"],["IL","Illinois"],["IN","Indiana"],["IA","Iowa"],["KS","Kansas"],["KY","Kentucky"],["LA","Louisiana"],["ME","Maine"],["MD","Maryland"],["MA","Massachusetts"],["MI","Michigan"],["MN","Minnesota"],["MS","Mississippi"],["MO","Missouri"],["MT","Montana"],["NE","Nebraska"],["NV","Nevada"],["NH","New Hampshire"],["NJ","New Jersey"],["NM","New Mexico"],["NY","New York"],["NC","North Carolina"],["ND","North Dakota"],["OH","Ohio"],["OK","Oklahoma"],["OR","Oregon"],["PA","Pennsylvania"],["RI","Rhode Island"],["SC","South Carolina"],["SD","South Dakota"],["TN","Tennessee"],["TX","Texas"],["UT","Utah"],["VT","Vermont"],["VA","Virginia"],["WA","Washington"],["WV","West Virginia"],["WI","Wisconsin"],["WY","Wyoming"],["DC","District of Columbia"],["PR","Puerto Rico"],["GU","Guam"],["VI","U.S. Virgin Islands"],["AS","American Samoa"],["MP","Northern Mariana Islands"]],x1e=new Set(RU.map(e=>e[0])),z1e={"Ala.":"AL","Alab.":"AL","Ariz.":"AZ","Ark.":"AR","Calif.":"CA","Cal.":"CA","Colo.":"CO","Col.":"CO","Conn.":"CT","Del.":"DE","Fla.":"FL","Flor.":"FL","Ga.":"GA","Ill.":"IL","Ind.":"IN","Kan.":"KS","Kans.":"KS","Ky.":"KY","La.":"LA","Md.":"MD","Mass.":"MA","Mich.":"MI","Minn.":"MN","Miss.":"MS","Mo.":"MO","Mont.":"MT","Neb.":"NE","Nebr.":"NE","Nev.":"NV","N.H.":"NH","N.J.":"NJ","N.M.":"NM","N.Mex.":"NM","N. Mex.":"NM","N.Y.":"NY","N.C.":"NC","N.D.":"ND","N.Dak.":"ND","N. Dak.":"ND","Okla.":"OK","Ore.":"OR","Oreg.":"OR","Pa.":"PA","Penn.":"PA","Penna.":"PA","R.I.":"RI","S.C.":"SC","S.D.":"SD","S.Dak.":"SD","S. Dak.":"SD","Tenn.":"TN","Tex.":"TX","Vt.":"VT","Va.":"VA","Wash.":"WA","W.Va.":"WV","W. Va.":"WV","Wis.":"WI","Wisc.":"WI","Wyo.":"WY","D.C.":"DC","Wash. D.C.":"DC","Wash., D.C.":"DC","P.R.":"PR","V.I.":"VI"},EU=(()=>{let e=new Map;for(let[t,a]of RU)e.set(vi(a),t);e.set(vi("Washington DC"),"DC"),e.set(vi("Washington D.C."),"DC"),e.set(vi("US Virgin Islands"),"VI");for(let[t,a]of Object.entries(z1e)){let r=vi(t);r&&!e.has(r)&&e.set(r,a)}return e})(),R1e=(()=>{let e=new Yf;for(let[t,a]of EU)e.add(t,a);return e})();function E1e(e){let t=vi(e);return EU.get(t)||(ki(t)?null:R1e.get(h0(e))??null)}var $1e=new Set(["01","02","04","05","06","08","09","10","11","12","13","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31","32","33","34","35","36","37","38","39","40","41","42","44","45","46","47","48","49","50","51","53","54","55","56","60","66","69","72","78"]);function j1e(e){return e.trim().toUpperCase()}function vi(e){return x1(e)}var O1e=new Set(["zip","zipcode","postal","postcode","plz"]);function D1e(e,t){if(!e)return!1;for(let a of Bee(e))if(t.has(a))return!0;return!1}function L1e(e,t){if(e==null)return null;let a=String(e).trim();if(a.length===0)return null;switch(t){case"country-iso3":case"country-iso2":case"country-name":return dr(a);case"us-state-code":case"us-state-name":{let r=j1e(a);return x1e.has(r)?r:E1e(a)}case"us-zip5":return TU(a);case"us-county-fips":return/^\d{5}$/.test(a)&&$1e.has(a.slice(0,2))?a:null;default:return null}}function $U(e){switch(e){case"country-iso3":case"country-iso2":case"country-name":case"us-state-code":case"us-state-name":case"us-zip5":case"us-county-fips":return!0;default:return!1}}function F1e(e,t){return t==="us-zip5"?T1e.has(e.slice(0,3)):!0}function jU(e,t){let a=new Array(e.length),r=new Set,n=[],i=0;for(let o=0;o<e.length;++o){let s=L1e(e[o],t),l=s!==null&&F1e(s,t)?s:null;if(a[o]=l,l!==null)i++;else{let u=e[o];if(u!=null){let c=String(u).trim();if(c.length>0){let d=c.toLowerCase();r.has(d)||(r.add(d),n.push(c))}}}}return{iso:a,unmatched:n,matchedRows:i,totalRows:e.length}}var nue=uU(Eee(),1);/*! @bicharts/shape-core — Apache-2.0. Bundled reference data: GeoNames (https://www.geonames.org/) CC BY 4.0; US Census/TIGER (public domain). Full text: NOTICE in this package. */var B1e=["rate","ratio","pct","percent","percentage","rating","share","score","index","nps","csat","margin","yield","coverage","utilization","utilisation","z[_-]?score","average","avg","mean","median","stddev","variance","gpa","percentile","quantile","efficiency","accuracy","probability","multiplier","coefficient","correlation","occupancy","age","bmi","temperature","density","pressure","humidity","ph","velocity","speed","elevation","altitude","latency","throughput","bandwidth","iops","ppm","ppb","dpmo","bps","capita","temperatuur","temperatur","temperatura","teplota","lampotila","homerseklet","sicaklik","pression","presion","pressao","pressione","druck","tryck","tlak","paine","nyomas","presiune","humidite","humedad","umidade","umidita","feuchtigkeit","vochtigheid","kosteus","vlhkost","vitesse","velocidad","velocidade","velocita","geschwindigkeit","snelheid","hastighet","hastighed","rychlost","nopeus","sebesseg","brzina","predkosc","densite","densidad","densidade","densita","dichte","dichtheid","hustota","tiheys","gustoca","moyenne","mediane","promedio","mediana","gemiddelde","durchschnitt","mittelwert","genomsnitt","gennemsnit","gjennomsnitt","keskiarvo","atlag","ortalama","prosjek","srednia","prumer","priemer","medie","taux","tasa","taxa","tasso","verhaltnis","verhouding","aandeel","anteil","andel","osuus","podil","udzial","udio","pourcentage","porcentaje","percentual","prozent","procent","prosentti","szazalek","yuzde","participacion","participacao","pondere","omjer","arany","oran","rata","leeftijd","edad","idade","wiek","eletkor","varsta","puntuacion","pontuacao","punteggio","betyg","ocena","indice","indeks","wskaznik","puan","ocupacion","ocupacao","occupazione","auslastung","bezetting","belaggning","belaegning","belegg","kayttoaste","oblozenie","obsazenost","obsadenost","kihasznaltsag","doluluk","ocupare","popunjenost","efficacite","eficiencia","efficienza","effizienz","effectiviteit","verimlilik"],H1e=["pct","percent","percentage","rate","ratio","rating","share","score","index","nps","csat","margin","yield","coverage","utilization","utilisation","gpa","percentile","quantile","bmi","density","pressure","humidity","velocity","efficiency","occupancy","latency","throughput","bandwidth","iops","ppm","ppb","dpmo","bps"],G1e=["latitude","longitude"],K1e=["latitude","longitude"];var X1e=["somme de","suma de","soma de","summe von","som van","somma di","summa av","sum av","sum af","soucet z","suma z","totaal van","total de","toplam","osszeg","nombre de","recuento de","contagem de","anzahl von","aantal van","conteggio di","antal av","lukumaara","pocet z","sum pa","\u0441\u0443\u043C\u043C\u0430","\u043A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E","\u0441\u0443\u043C\u0430","\u043A\u0456\u043B\u044C\u043A\u0456\u0441\u0442\u044C","\u03B1\u03B8\u03C1\u03BF\u03B9\u03C3\u03BC\u03B1","\u03C0\u03BB\u03B7\u03B8\u03BF\u03C2"],V1e=["osszege","sucet","\u7684\u603B\u548C","\u7684\u8BA1\u6570","\u306E\u5408\u8A08","\uC758 \uD569\uACC4"],Z1e=["atlaga","priemer","\u7684\u5E73\u5747\u503C","\u306E\u5E73\u5747","\uC758 \uD3C9\uADE0"],rue=Object.freeze({"nombre de":"count","recuento de":"count","contagem de":"count","anzahl von":"count","aantal van":"count","conteggio di":"count","antal av":"count",lukumaara:"count","pocet z":"count",\u043A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E:"count",\u043A\u0456\u043B\u044C\u043A\u0456\u0441\u0442\u044C:"count",\u03C0\u03BB\u03B7\u03B8\u03BF\u03C2:"count",\u7684\u8BA1\u6570:"count","minimum de":"min","minimo de":"min","minimo di":"min","minimum von":"min","maximum de":"max","maximo de":"max","massimo di":"max","maximum von":"max"});function Vf(e){return[...e].sort((t,a)=>a.length-t.length).map(t=>t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/\s+/g,"\\s+")).join("|")}var iue=new RegExp("^\\s*(?:(?:sum|count|count\\s+distinct|distinct\\s+count)\\s+of\\s+|(?:"+Vf(X1e)+")\\s+)","i");function gU(e){for(let t of e){let a=t.codePointAt(0)??0;if(a>=11904&&a<=40959||a>=44032&&a<=55215)return!0}return!1}var q1e="[\u2013\u2014-]";function OU(e){let t=e.filter(n=>!gU(n)),a=e.filter(gU),r=[];return t.length&&r.push("(?:\\s+|\\s*"+q1e+"\\s*)("+Vf(t)+")"),a.length&&r.push("\\s*("+Vf(a)+")"),new RegExp("(?:"+r.join("|")+")\\s*$","i")}var oue=OU(V1e),sue=OU(Z1e);var lue=new RegExp("\\b("+B1e.join("|")+")\\b|("+H1e.join("|")+")$","i"),uue=new RegExp("\\b("+G1e.join("|")+")\\b|("+K1e.join("|")+")$","i");var J1e=["count (distinct)","count distinct","distinct count","standard deviation","average","variance","median","product","stddev","std dev","count","sum","avg","min","minimum","max","maximum","var"],cue=new RegExp("^\\s*("+[...J1e].sort((e,t)=>t.length-e.length).map(e=>e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/\s+/g,"\\s+")).join("|")+")\\s+of\\s+","i"),Y1e={Sum:["Sum of "],Avg:["Average of "],Average:["Average of "],Count:["Count of "],CountNonNull:["Count of "],Min:["Min of ","First ","Earliest "],Max:["Max of ","Last ","Latest "],Median:["Median of "],StandardDeviation:["Standard deviation of "],Variance:["Variance of "]},due=new RegExp("^("+Object.keys(Y1e).join("|")+")\\((.+)\\)$");var hue=new RegExp([String.raw`\bisMeasure\b`,String.raw`\bdataType\b`,String.raw`\bcolumns\s*\[\s*-?\d`,String.raw`\.iloc\s*\[[^\]]*,`,String.raw`\.iat\s*\[`,String.raw`\bselect_dtypes\b`,String.raw`\b_get_numeric_data\b`,String.raw`\bis_numeric_dtype\b`,String.raw`\bfor\s+\w+\s+in\s+(?:list\s*\(\s*)?df\.columns\b`,String.raw`\bdf\.columns\s*\.\s*(?:tolist|to_list|difference|drop)\b`,String.raw`\bdf\.dtypes\b`,String.raw`\bObject\s*\.\s*(?:keys|values|entries)\s*\(\s*(?:rows|data|df)?\s*\[\s*0\s*\]`,String.raw`\b(?:row|rw|r)\s*\[\s*\d+\s*\]`].join("|"));/*! @bicharts/shape-core — Apache-2.0. Bundled reference data: GeoNames (https://www.geonames.org/) CC BY 4.0; US Census/TIGER (public domain). Full text: NOTICE in this package. */var Bf=2,DU=400;function Zf(e){return!!dr(e)}function wi(e){let t=new Set;for(let a of e){if(a==null)continue;let r=x1(String(a));if(!ki(r)&&!t.has(r)&&(t.add(r),t.size>=DU))break}return Array.from(t)}function x8(e){let t=wi(e);if(t.length===0||qf(e)<95)return!1;let a=t.filter(n=>Zf(n)&&!Si(n)).length,r=t.filter(n=>!Zf(n)&&!!Si(n)).length;return a>=1&&a>=r}function fU(e,t){if(!Si(e))return!1;let a=dr(e);return a?t==="world"?!0:ey.has(a):!1}function qf(e){let t=wi(e);if(t.length===0)return 0;let a=0;for(let r of t)Zf(r)&&a++;return Math.round(a/t.length*1e3)/10}function Jf(e){return Si(e)?!0:Xf()?d0(e).status!=="unmatched"||d0(e.trim().replace(/\s+/g,"-")).status!=="unmatched":!1}function Hf(e){let t=wi(e);if(t.length===0)return 0;let a=0;for(let r of t)Jf(r)&&a++;return Math.round(a/t.length*1e3)/10}function ay(e){let t=new Set;for(let a of e){if(a==null)continue;let r=String(a).trim();if(!ki(x1(r))&&!t.has(r)&&(t.add(r),t.size>=DU))break}return Array.from(t)}function yU(e){let t=ay(e);if(t.length===0)return 0;let a=0;for(let r of t)ty(r).length>0&&a++;return Math.round(a/t.length*1e3)/10}function bU(e,t){return D1e(t,O1e)?!0:ay(e).some(a=>/^\d{5}(-\d{4})?$/.test(a.replace(/\.0+$/,"")))}function Q1e(e,t){let a=wi(e);if(a.length===0)return 0;let r=0;for(let n of a)zU(n,t)&&r++;return Math.round(r/a.length*1e3)/10}function Gf(e,t){let a=0;for(let r of wi(e))t(r)&&a++;return a}function ete(e,t){let a=0;for(let r of ay(e))t(r)&&a++;return a}function LU(e,t,a,r,n){let i=[],o=[],s={},l={},u=new Set(e),c=S=>t.map(M=>M[S]);for(let S of["city","country"]){let M=a?.[S];M&&u.has(M)&&(s[S]=M)}let d=new Set(n??e);for(let S of["lat","lon"]){let M=a?.[S];M&&d.has(M)&&(s[S]=M)}let h=a?.zip;if(h&&u.has(h)){let S=c(h),M=yU(S);M<95?o.push(`zip=${h} (only ${M}% of values read as ZIPs)`):bU(S,h)?s.zip=h:o.push(`zip=${h} (all values are 3-4 digits with nothing to say they are postal)`)}let p=a?.state;if(p&&u.has(p)){let S=c(p),M=wi(S);M.length>0&&M.every(z=>fU(z,r))?o.push(`state=${p} (every value is "CA", which is both Canada and California)`):x8(S)?(o.push(`state=${p} (every value is a country, not a state)`),s.country||(s.country=p)):Hf(S)<95?o.push(`state=${p} (only ${Hf(S)}% of values are states/provinces)`):s.state=p}let m=new Set(Object.values(s).filter(Boolean)),g=e.filter(S=>!m.has(S)&&!S.startsWith("__"));if(!s.state){let S=null;for(let M of g){let z=c(M);if(x8(z))continue;let _=Hf(z);if(_<95)continue;let A=Gf(z,Jf),E=Gf(z,B=>Jf(B)&&!fU(B,r));A<Bf&&E<1||(!S||_>S.pct)&&(S={name:M,pct:_})}S&&(s.state=S.name,m.add(S.name),i.push(`state=${S.name} (${S.pct}% states/provinces)`))}if(!s.zip)for(let S of g){if(m.has(S))continue;let M=c(S),z=yU(M);if(!(z<95)&&bU(M,S)&&!(ete(M,_=>ty(_).length>0)<Bf)){s.zip=S,m.add(S),i.push(`zip=${S} (${z}% ZIP codes)`);break}}let f=s.country;if(!f||!x8(c(f))){let S=null;for(let M of g){if(m.has(M)||!x8(c(M)))continue;let z=qf(c(M));(!S||z>S.pct)&&(S={name:M,pct:z})}S&&(f&&(o.push(`country=${f} (only ${qf(c(f))}% of values are country identifiers; using ${S.name} instead)`),l.country=f),s.country=S.name,m.add(S.name),i.push(`country=${S.name}`))}if(!s.city){let S=null;for(let M of g){if(m.has(M))continue;let z=c(M),_=Q1e(z,r);_<Qee||Gf(z,A=>zU(A,r))<Bf||(!S||_>S.pct)&&(S={name:M,pct:_})}S&&(s.city=S.name,i.push(`city=${S.name} (${S.pct}% known cities)`))}let y=s.country?c(s.country):[],b=!!s.country&&x8(y),v=b?new Set(y.map(S=>dr(S==null?null:String(S))).filter(Boolean)).size:0,k=b&&v>=2,W=!!(s.lat&&s.lon)&&t.some(S=>{let M=+String(S[s.lat]??"").trim(),z=+String(S[s.lon]??"").trim();return isFinite(M)&&isFinite(z)&&M>=-90&&M<=90&&z>=-180&&z<=180&&String(S[s.lat]??"").trim()!==""&&String(S[s.lon]??"").trim()!==""});return s.lat&&s.lon&&!W&&o.push(`lat/lon=${s.lat}/${s.lon} (no row holds a usable coordinate pair)`),s.country&&!k&&!(s.city||s.state||s.zip||W)&&o.push(b?`country=${s.country} (every row resolves to the same country - nothing to place apart)`:`country=${s.country} (values are not country identifiers)`),{bind:s.city||s.state||s.zip||k||W?s:null,backfilled:i,refused:o,...Object.keys(l).length?{labelFallback:l}:{}}}var J=(e,...t)=>({part:e,langs:Object.freeze(t)}),tte=Object.freeze({jaar:J("year","nl"),kwartaal:J("quarter","nl"),maand:J("month","nl"),dag:J("day","nl","sv","da","nb"),jahr:J("year","de"),quartal:J("quarter","de"),monat:J("month","de"),tag:J("day","de"),ann\u00E9e:J("year","fr"),mois:J("month","fr"),jour:J("day","fr"),trimestre:J("quarter","fr","es","pt","it"),a\u00F1o:J("year","es"),mes:J("month","es"),d\u00EDa:J("day","es"),ano:J("year","pt"),m\u00EAs:J("month","pt"),dia:J("day","pt"),anno:J("year","it"),mese:J("month","it"),giorno:J("day","it"),\u0433\u043E\u0434:J("year","ru"),\u043C\u0435\u0441\u044F\u0446:J("month","ru"),\u0440\u0456\u043A:J("year","uk"),\u043C\u0456\u0441\u044F\u0446\u044C:J("month","uk"),\u043A\u0432\u0430\u0440\u0442\u0430\u043B:J("quarter","ru","uk"),\u0434\u0435\u043D\u044C:J("day","ru","uk"),rok:J("year","pl","cs","sk"),kwarta\u0142:J("quarter","pl"),miesi\u0105c:J("month","pl"),dzie\u0144:J("day","pl"),\u010Dtvrtlet\u00ED:J("quarter","cs"),m\u011Bs\u00EDc:J("month","cs"),den:J("day","cs"),\u0161tvr\u0165rok:J("quarter","sk"),mesiac:J("month","sk"),de\u0148:J("day","sk"),\u00E5r:J("year","sv","da","nb"),kvartal:J("quarter","sv","da","nb"),m\u00E5nad:J("month","sv"),m\u00E5ned:J("month","da","nb"),vuosi:J("year","fi"),vuosinelj\u00E4nnes:J("quarter","fi"),kuukausi:J("month","fi"),p\u00E4iv\u00E4:J("day","fi"),\u00E9v:J("year","hu"),negyed\u00E9v:J("quarter","hu"),h\u00F3nap:J("month","hu"),nap:J("day","hu"),y\u0131l:J("year","tr"),\u00E7eyrek:J("quarter","tr"),ay:J("month","tr"),g\u00FCn:J("day","tr"),\u03AD\u03C4\u03BF\u03C2:J("year","el"),\u03C4\u03C1\u03AF\u03BC\u03B7\u03BD\u03BF:J("quarter","el"),\u03BC\u03AE\u03BD\u03B1\u03C2:J("month","el"),\u03B7\u03BC\u03AD\u03C1\u03B1:J("day","el"),an:J("year","ro"),trimestru:J("quarter","ro"),lun\u0103:J("month","ro"),zi:J("day","ro"),godina:J("year","hr"),tromjese\u010Dje:J("quarter","hr"),mjesec:J("month","hr"),dan:J("day","hr"),\u5E74:J("year","ja","zh"),\u56DB\u534A\u671F:J("quarter","ja"),\u5B63\u5EA6:J("quarter","zh"),\u6708:J("month","ja","zh"),\u65E5:J("day","ja","zh"),\uC5F0\uB3C4:J("year","ko"),\uBD84\uAE30:J("quarter","ko"),\uC6D4:J("month","ko"),\uC77C:J("day","ko"),tahun:J("year","id"),kuartal:J("quarter","id"),triwulan:J("quarter","id"),bulan:J("month","id"),hari:J("day","id"),n\u0103m:J("year","vi"),qu\u00FD:J("quarter","vi"),th\u00E1ng:J("month","vi"),ng\u00E0y:J("day","vi"),\u0E1B\u0E35:J("year","th"),\u0E44\u0E15\u0E23\u0E21\u0E32\u0E2A:J("quarter","th"),\u0E40\u0E14\u0E37\u0E2D\u0E19:J("month","th"),\u0E27\u0E31\u0E19:J("day","th"),\u0627\u0644\u0633\u0646\u0629:J("year","ar"),\u0633\u0646\u0629:J("year","ar"),\u0627\u0644\u0639\u0627\u0645:J("year","ar"),\u0639\u0627\u0645:J("year","ar"),\u0627\u0644\u0631\u0628\u0639:J("quarter","ar"),\u0631\u0628\u0639:J("quarter","ar"),"\u0631\u0628\u0639 \u0627\u0644\u0633\u0646\u0629":J("quarter","ar"),\u0627\u0644\u0634\u0647\u0631:J("month","ar"),\u0634\u0647\u0631:J("month","ar"),\u0627\u0644\u064A\u0648\u0645:J("day","ar"),\u064A\u0648\u0645:J("day","ar"),\u05E9\u05E0\u05D4:J("year","he"),\u05E8\u05D1\u05E2\u05D5\u05DF:J("quarter","he"),\u05D7\u05D5\u05D3\u05E9:J("month","he"),\u05D9\u05D5\u05DD:J("day","he"),\u0935\u0930\u094D\u0937:J("year","hi"),\u0938\u093E\u0932:J("year","hi"),\u0924\u093F\u092E\u093E\u0939\u0940:J("quarter","hi"),\u092E\u0939\u0940\u0928\u093E:J("month","hi"),\u092E\u093E\u0939:J("month","hi"),\u0926\u093F\u0928:J("day","hi"),\u0633\u0627\u0644:J("year","fa"),\u0645\u0627\u0647:J("month","fa"),\u0631\u0648\u0632:J("day","fa")}),pue=Object.freeze(Array.from(new Set(Object.values(tte).flatMap(e=>e.langs)))),mue=Object.freeze(["fa","ar","he","th"]),gue=Object.freeze({integer:"number",decimal:"number",double:"number",datetime:"date",date:"date",boolean:"boolean",string:"text"}),fue=Object.freeze({RENDER_START:"render-start",RENDER_OK:"render-ok",RENDER_ERROR:"render-error",VIEW:"view",VIEW_VERDICT:"view-verdict",REDRAW:"redraw",INTERACT:"interact"}),yue=Object.freeze(["open","generate","version","rebind","data","sample","fix","resize","other"]),bue=2**31-1;/*! @bicharts/chart-host — Apache-2.0. Bundled reference data: GeoNames (https://www.geonames.org/) CC BY 4.0; Natural Earth and US Census/TIGER (public domain). Full text: NOTICE in this package. */var hr="1.20.0";var hn="data-row-idx";var pr="llm-xfilter-refresh",j8="__llmAnimStop",ny="__llmXfClear",ry="__llmInitialXfMark";var ate=Object.freeze(["camera","llmZoom"]);var Wi=1e3,m0=250,g0=5e3,f0=3,FU=0,Ci=60,y0=3,b0=500,iy=["animAutoPlay","animPlaySpeedMs","animLoopDelaySec","animStopAtEnd","animMaxIdealFrames","animTimelineStyle","filtersDuringPlay"];var BU="both";var HU=12e4,GU="horizontal",oy="mark",KU="fit",XU="auto",N0=2e3;/*! @bicharts/chart-host — Apache-2.0. Bundled reference data: GeoNames (https://www.geonames.org/) CC BY 4.0; Natural Earth and US Census/TIGER (public domain). Full text: NOTICE in this package. */var VU=new Set(["USA","CAN","MEX","GTM","BLZ","SLV","HND","NIC","CRI","PAN","CUB","JAM","HTI","DOM","BHS","PRI","TTO"]),ZU=75;function nte(e,t){let a=[],r=e.length;for(let n=0;n<r;n++){let i=e[n],o=e[(n+r-1)%r],s=i[1]<=t,l=o[1]<=t;if(s!==l){let u=i[1]-o[1],c=u===0?0:(t-o[1])/u;a.push([o[0]+c*(i[0]-o[0]),t])}s&&a.push(i)}return a.length&&(a[0][0]!==a[a.length-1][0]||a[0][1]!==a[a.length-1][1])&&a.push(a[0]),a}function qU(e,t){let a=e&&e.geometry;if(!a)return null;let r=n=>{let i=n.map(o=>nte(o,t)).filter(o=>o.length>=4);return i.length&&i[0].length>=4?i:null};if(a.type==="Polygon"){let n=r(a.coordinates);return n?{...e,geometry:{type:"Polygon",coordinates:n}}:null}if(a.type==="MultiPolygon"){let n=a.coordinates.map(r).filter(i=>i!==null);return n.length?{...e,geometry:{type:"MultiPolygon",coordinates:n}}:null}return e}/*! @bicharts/chart-host — Apache-2.0. Bundled reference data: GeoNames (https://www.geonames.org/) CC BY 4.0; Natural Earth and US Census/TIGER (public domain). Full text: NOTICE in this package. */var Wue=216/24389,Cue=24389/27;var _ue=Math.PI/180,Aue=180/Math.PI;var rte=Object.freeze(["xlsx","csv"]);var Mue=Date.UTC(1900,0,1);var sy="__rowIdx__";function JU(e,t,a){let r=null,n=null,i=null,o,s=a??null,l=[],u=[],c;if(s){let h=e.filter(g=>!g.isMeasure).map(g=>g.name),p=LU(h,t,s,a?.mapKind,e.map(g=>g.name));s=p.bind,l=p.backfilled,u=p.refused;let m=p.labelFallback;c=m&&(m.country||m.city||m.state||m.zip)}if(!!s&&!!(s.city||s.state||s.zip||s.country||s.lat&&s.lon)){let h=s,p=xU(t.map(m=>({lat:h.lat?m[h.lat]:null,lon:h.lon?m[h.lon]:null,city:h.city?m[h.city]:null,state:h.state?m[h.state]:null,zip:h.zip?m[h.zip]:null,country:h.country?m[h.country]:null,label:c?m[c]:null})),a?.mapKind,a?.region??null);r=p.lat,n=p.lon,i=p.precisions,o={precision:p.precision,precisionCounts:p.precisionCounts,coarseExamples:p.coarseExamples,unplaced:p.totalRows-p.matchedRows-p.ambiguousRows,unplacedExamples:p.unmatched.slice(0,8),ambiguousRows:p.ambiguousRows,...p.ambiguousExamples.length?{ambiguousExamples:p.ambiguousExamples}:{},...l.length?{rolesBackfilled:l}:{},...u.length?{rolesRefused:u}:{}}}return{lat:r,lon:n,prec:i,geoPoint:o,rolesRefused:u}}function ly(e,t,a,r,n,i){e=e.filter(N=>N.name!==sy);let o=null;if(i?.utcDays){let N=SU(e,t);t=N.rows,o=N.columns}let s=null;if(i?.localWallClock){let N=kU(e,t);t=N.rows,s=N.columns}let l=JU(e,t,r),u=JU(e,t,n),c=l.lat,d=l.lon,h=l.prec,p=u.lat,m=u.lon,g=u.prec,f=l.geoPoint,y=u.geoPoint,b=[...l.rolesRefused,...u.rolesRefused.map(N=>`destination: ${N}`)],v=null,k,W,S;if(a&&a.column&&a.grain&&a.grain.toLowerCase()==="admin1"&&a.join){let N=(a.kind||"").toLowerCase(),P=a.fallback??{},U=N.startsWith("admin1-")||N.startsWith("us-state-"),I=N==="latlon"?a.column:P.lat??null,R=P.lon??(I?ite(e.map(O=>O.name)):null),D=N.startsWith("city")?a.column:P.city??null,$=a.locate??void 0,Z=a.join(t.map(O=>({province:U?O[a.column]:void 0,city:D?O[D]:void 0,country:P.country?O[P.country]:void 0,lat:I?O[I]:void 0,lon:R?O[R]:void 0})),{provinceKind:U?N:null,deriveProvinces:a.deriveProvinces,locate:$??void 0});v=Z.iso,k={count:Z.totalRows-Z.matchedRows,examples:Z.unmatched.slice(0,8)},W=Z.unmatched.length;let H={province:0,coordinates:0,city:0};for(let O of Z.source)O&&H[O]++;S={sources:H,ambiguousRows:Z.ambiguousRows,ambiguousExamples:Z.ambiguousExamples,unplacedPoints:Z.unplacedPoints}}else if(a&&a.column&&a.kind&&$U(a.kind)){let N=jU(t.map(P=>P[a.column]),a.kind);v=N.iso,k={count:N.totalRows-N.matchedRows,examples:N.unmatched.slice(0,8)},W=N.unmatched.length}let M=[sy];v&&M.push("__geoIso__"),c&&M.push("__geoLat__","__geoLon__","__geoPrecision__"),p&&M.push("__geoLatD__","__geoLonD__","__geoPrecisionD__");let z=new Set(M);e.some(N=>z.has(N.name))&&(e=e.filter(N=>!z.has(N.name)));let _=e.map(N=>N.name),A=[];if(i?.aliases&&i.aliases.length>0){let N=new Set([..._,...M]);for(let P of i.aliases){let U=P?_.indexOf(P.name):-1;U<0||!P.alias||N.has(P.alias)||(N.add(P.alias),A.push({from:U,name:P.alias}))}}let E=M.length+A.length,B=new Array(t.length);for(let N=0;N<t.length;N++){let P=t[N],U=new Array(e.length+E);for(let R=0;R<e.length;R++){let D=P[_[R]];D instanceof Date?U[R]=D.toISOString():U[R]=D??null}let I=e.length;U[I++]=N,v&&(U[I++]=v[N]),c&&d&&(U[I++]=c[N],U[I++]=d[N],U[I++]=h?h[N]:null),p&&m&&(U[I++]=p[N],U[I++]=m[N],U[I++]=g?g[N]:null);for(let R of A)U[I++]=U[R.from];B[N]=U}let w=[...e,{name:sy,dataType:"Integer",isMeasure:!1,modelDesc:""}];v&&w.push({name:"__geoIso__",dataType:"String",isMeasure:!1,modelDesc:""}),c&&w.push({name:"__geoLat__",dataType:"Double",isMeasure:!1,modelDesc:""},{name:"__geoLon__",dataType:"Double",isMeasure:!1,modelDesc:""},{name:"__geoPrecision__",dataType:"String",isMeasure:!1,modelDesc:""}),p&&w.push({name:"__geoLatD__",dataType:"Double",isMeasure:!1,modelDesc:""},{name:"__geoLonD__",dataType:"Double",isMeasure:!1,modelDesc:""},{name:"__geoPrecisionD__",dataType:"String",isMeasure:!1,modelDesc:""});for(let N of A)w.push({...e[N.from],name:N.name,aliasOf:e[N.from].name});return{columns:w,rows:B,geoUnmatched:k,geoUnmatchedDistinct:W,geoPoint:f,...y?{geoPointDest:y}:{},...b.length?{geoPointRefused:b}:{},...o?{dateCellsAreUtcDays:!0,utcDayColumns:o}:{},...s?{dateCellsAreUtcWallClock:!0,utcWallClockColumns:s}:{},...S?{geoProvince:S}:{}}}function ite(e){let t=a=>a.replace(/([a-z])([A-Z])/g,"$1 $2").toLowerCase().split(/[^a-zÀ-ɏ]+/);return e.find(a=>t(a).some(r=>r==="lon"||r==="lng"||r==="long"||r==="longitude"))??null}function YU(e){let t=String(e??""),a=t.length,r="",n=0,i=[],o="",s="",l=!1,u=()=>o===""||"(,=:[!&|?{};+-*%<>~^".includes(o)?!0:/^(return|typeof|instanceof|in|of|new|delete|void|throw|case|do|else|yield|await)$/.test(s);for(;n<a;){let c=t[n],d=n+1<a?t[n+1]:"",h=i.length>0?i[i.length-1]:null;if(h===-1){if(c==="\\"){r+=t.slice(n,n+2),n+=2;continue}if(c==="`"){i.pop(),r+=c,n++,o="`",s="",l=!1;continue}if(c==="$"&&d==="{"){i[i.length-1]=0,r+="${",n+=2,o="{",s="",l=!1;continue}r+=c,n++;continue}if(c==="/"&&d==="/"){let p=n+2;for(;p<a&&t[p]!==`
111
+ `,'"',u.BYTE_ORDER_MARK],u.WORKERS_SUPPORTED=!i&&!!r.Worker,u.NODE_STREAM_INPUT=1,u.LocalChunkSize=10485760,u.RemoteChunkSize=5242880,u.DefaultDelimiter=",",u.Parser=b,u.ParserHandle=f,u.NetworkStreamer=h,u.FileStreamer=p,u.StringStreamer=m,u.ReadableStreamStreamer=g,r.jQuery&&((n=r.jQuery).fn.parse=function(_){var A=_.config||{},E=[];return this.each(function(N){if(!(n(this).prop("tagName").toUpperCase()==="INPUT"&&n(this).attr("type").toLowerCase()==="file"&&r.FileReader)||!this.files||this.files.length===0)return!0;for(var P=0;P<this.files.length;P++)E.push({file:this.files[P],inputElem:this,instanceConfig:n.extend({},A)})}),B(),this;function B(){if(E.length===0)z(_.complete)&&_.complete();else{var N,P,U,I,R=E[0];if(z(_.before)){var D=_.before(R.file,R.inputElem);if(typeof D=="object"){if(D.action==="abort")return N="AbortError",P=R.file,U=R.inputElem,I=D.reason,void(z(_.error)&&_.error({name:N},P,U,I));if(D.action==="skip")return void w();typeof D.config=="object"&&(R.instanceConfig=n.extend(R.instanceConfig,D.config))}else if(D==="skip")return void w()}var $=R.instanceConfig.complete;R.instanceConfig.complete=function(Z){z($)&&$(Z,R.file,R.inputElem),w()},u.parse(R.file,R.instanceConfig)}}function w(){E.splice(0,1),B()}}),o&&(r.onmessage=function(_){_=_.data,u.WORKER_ID===void 0&&_&&(u.WORKER_ID=_.workerId),typeof _.input=="string"?r.postMessage({workerId:u.WORKER_ID,results:u.parse(_.input,_.config),finished:!0}):(r.File&&_.input instanceof File||_.input instanceof Object)&&(_=u.parse(_.input,_.config))&&r.postMessage({workerId:u.WORKER_ID,results:_,finished:!0})}),(h.prototype=Object.create(d.prototype)).constructor=h,(p.prototype=Object.create(d.prototype)).constructor=p,(m.prototype=Object.create(m.prototype)).constructor=m,(g.prototype=Object.create(d.prototype)).constructor=g,u})}});/*! @bicharts/shape-core — Apache-2.0. Bundled reference data: GeoNames (https://www.geonames.org/) CC BY 4.0; US Census/TIGER (public domain). Full text: NOTICE in this package. */var $ee="6th of October City|giza|EG|31.05|29.82|368|W|,A Coruna|galicia|ES|-8.4|43.37|250|W|corunha;la coruna;coruna;la corogne;the groyne,Aachen|north rhine westphalia|DE|6.08|50.78|265|W|aix la chapelle;aquisgrao;aken;akwizgran;aquisgrana;aquisgrano;aquisgran;cachy;kreisfreie stadt aachen,Aalborg|north denmark|DK|9.92|57.05|142|W|alborg,Aba|abia state|NG|7.37|5.11|1160|W|,Abadan|khuzestan|IR|48.3|30.34|231|W|,Abaetetuba|para|BR|-48.88|-1.72|158|W|,Abakaliki|ebonyi state|NG|8.11|6.32|134|W|,Abakan|khakasiya republic|RU|91.43|53.72|184|W|,Abasolo|MX11|MX|-101.53|20.45|27|N|,Abbotsford|BC|CA|-122.25|49.06|141|NW|,Abbottabad|khyber pakhtunkhwa|PK|73.21|34.15|275|W|,Abeche|ouadai|TD|20.83|13.83|139|W|,Abengourou|comoe district|CI|-3.5|6.73|130|W|,Abeokuta|ogun state|NG|3.35|7.16|735|W|,Aberdeen|scotland|GB|-2.1|57.14|198|W|,Aberdeen|southern district|HK|114.15|22.25|157|W|aberdeen harbour,Aberdeen|SD|US|-98.49|45.46|28|N|,Abha|asir region|SA|42.51|18.22|210|W|,Abidjan|abidjan autonomous district|CI|-4|5.35|6321|W|abican;abidzan;abiyan,Abiko|chiba|JP|140.02|35.87|131|W|,Abilene|TX|US|-99.73|32.45|125|N|,Abington|PA|US|-75.12|40.12|55|N|abington township;municipio de abington,Abobo|abidjan autonomous district|CI|-4.02|5.42|1340|W|,Abohar|punjab|IN|74.2|30.14|145|W|,Abomey-Calavi|atlantique|BJ|2.36|6.45|385|W|,Abu al-Kahsib|basra|IQ|47.88|30.44|357|W|,Abu Dhabi|abu dhabi|AE|54.4|24.45|1807|W|abou dabi;abu dabi;abu zabi,Abu Ghurayb|baghdad|IQ|44.18|33.31|900|W|abou ghraib;abu ghraib;abu ghuraib,Abu Kabir|sharqia|EG|31.67|30.73|154|W|,Abuja|fct|NG|7.5|9.06|2690|W|abudza;abuya,Acambaro|MX11|MX|-100.72|20.03|57|N|,Acapulco de Juarez|MX12|MX|-99.91|16.85|658|NW|acapulco,Acarigua|portuguesa|VE|-69.2|9.55|188|W|,Acatzingo|MX21|MX|-97.78|18.98|25|N|san juan acatzingo,Acayucan|MX30|MX|-94.91|17.95|50|N|,Accra|greater accra|GH|-0.2|5.56|1963|W|acra;akra,Acheng|heilongjiang|CN|126.95|45.55|144|W|,Actopan|MX13|MX|-98.94|20.27|32|N|,Ad-Damazin|blue nile|SD|34.36|11.79|186|W|damazin,Ad-Dawahy|port said|EG|32.28|31.24|148|W|al dawahi,Adachi|tokyo|JP|139.81|35.76|695|W|adachi city,Adana|adana|TR|35.33|36.99|1816|W|antioch on sarus,Adapazari|sakarya|TR|30.4|40.78|286|W|,Addis Ababa|addis ababa|ET|38.75|9.02|3860|W|addis abeba;adis abeba,Addison|IL|US|-87.99|41.93|37|N|,Adelaide|south australia|AU|138.6|-34.93|1469|W|adelaida;adelajda,Adelanto|CA|US|-117.41|34.58|33|N|,Aden|aden|YE|45.04|12.78|1079|W|adem,Adiwerna|central java|ID|109.13|-6.94|134|W|,Adiyaman|adiyaman province|TR|38.28|37.76|290|W|adiyamanska,Admiralteisky|st petersburg|RU|30.3|59.92|157|W|,Ado-Ekiti|ekiti state|NG|5.22|7.62|435|W|,Adoni|andhra pradesh|IN|77.27|15.63|184|W|,Afyonkarahisar|afyonkarahisar province|TR|30.54|38.76|251|W|afyon;afyonkarahissar,Agadez|agadez|NE|7.99|16.97|149|W|agades,Agadir|souss massa|MA|-9.6|30.42|698|W|santa cruz,Agartala|tripura|IN|91.28|23.84|400|W|,Agawam|MA|US|-72.61|42.07|28|N|,Agege|lagos|NG|3.33|6.62|683|W|,Ageo|saitama|JP|139.61|35.97|226|W|,Agincourt North|ON|CA|-79.28|43.8|29|N|,Agra|uttar pradesh|IN|78.02|27.18|1430|W|,Agua Caliente|CA|US|-122.49|38.32|27|N|,Agua Dulce|MX30|MX|-94.15|18.14|36|N|,Agua Prieta|MX26|MX|-109.54|31.32|77|N|,Aguas Lindas de Goias|goias|BR|-48.28|-15.76|245|W|,Aguascalientes|MX01|MX|-102.28|21.88|722|NW|aguascalientes city;aguascalientes by,Ahilyanagar|maharashtra|IN|74.74|19.09|367|W|,Ahmadpur East|punjab|PK|71.26|29.14|196|W|ahmedpur east;ahmedpur sharqia;ahmedpur sarki,Ahmedabad|gujarat|IN|72.59|23.03|6357|W|ahmadabad,Ahuntsic-Cartierville|QC|CA|-73.67|45.57|135|NW|,Ahvaz|khuzestan|IR|48.68|31.32|841|W|ahwas;ahwaz,Ahwatukee Foothills|AZ|US|-111.98|33.34|83|N|,Aihara|kanagawa|JP|139.32|35.6|725|W|,Aihui|heilongjiang|CN|127.48|49.98|192|W|,Aiken|SC|US|-81.72|33.56|30|N|,Airdrie|AB|CA|-114.04|51.3|90|N|,Airport|HI|US|-157.93|21.34|28|N|,Ait Melloul|souss massa|MA|-9.5|30.34|187|W|,Aix-en-Provence|provence alpes cote d azur|FR|5.45|43.53|146|W|,Aizawl|mizoram|IN|92.72|23.73|293|W|aijal;aizol;aizwal,Ajalpan|MX21|MX|-97.26|18.38|28|N|,Ajax|ON|CA|-79.03|43.85|119|N|,Ajdabiya|al wahat|LY|20.23|30.76|131|W|adjdabia;adschdabiya;adzdabija;adzedabija;ajdabiyah;ecdebiye,Ajegunle|lagos|NG|3.33|6.45|550|W|,Ajman|ajman|AE|55.48|25.4|490|W|acman;adschman;adzman;ajman city;ajma;ujman,Ajmer|rajasthan|IN|74.64|26.45|542|W|adzmer,Akashi|hyogo|JP|135.01|34.66|303|W|,Akhmim|sohag|EG|31.75|26.56|151|W|,Akita|akita|JP|140.12|39.72|307|W|akita shi,Akola|maharashtra|IN|77|20.71|428|W|,Akowonjo|lagos|NG|3.31|6.61|308|W|,Akron|OH|US|-81.52|41.08|197|NW|,Aksaray|aksaray|TR|34.03|38.37|327|W|,Aktau|mangystau|KZ|51.17|43.66|147|W|aktaou;aktav;aqtau;aqtaw;shevchenko,Aktobe|aktobe|KZ|57.21|50.28|500|W|aktioube;aktiube;aqtobe;aktyubinsk,Akure|ondo state|NG|5.19|7.25|730|W|,Al Ahmadi|al ahmadi|KW|48.08|29.08|637|W|el ahmedi,Al Ain City|abu dhabi|AE|55.76|24.19|846|W|al ain;al ajn;al ayn,Al Ajaylat|an nuqat al khams|LY|12.38|32.76|130|W|,Al 'Amarah|maysan|IQ|47.14|31.84|323|W|amarah;amara,Al 'Ashir min Ramadan|sharqia|EG|31.75|30.3|246|W|cidade do ramadao;citta del decimo ramadan,Al Bab|aleppo|SY|37.52|36.37|130|W|,Al Basrah al Qadimah|basra|IQ|47.82|30.5|2015|W|,Al Diwaniyah|al qadisiyah|IQ|44.93|31.99|318|W|ad diwaniyah;diwaniya;diwaniyya;divanija;ed divaniye,Al Fallujah|anbar|IQ|43.79|33.35|190|W|al falludza;al falluja;falloujah;falludscha;falluja;fallujah;falludza;faluja;faluya;felluce,Al Fayyum|faiyum|EG|30.84|29.31|519|W|el fayum;faijum;fajum;fayoum;fayyum;fayun,Al Hasakah|al hasakah|SY|40.75|36.5|422|W|al hasaka;hasaka;hasakah;haseke;hassake,Al Hawamidiyah|giza|EG|31.25|29.9|155|W|,Al Hillah|babil|IQ|44.42|32.46|455|W|hillah;al hilla;el hille;hilla,Al Hindiyah|karbala|IQ|44.22|32.54|139|W|,Al Hoceima|tanger tetouan al hoceima|MA|-3.94|35.25|395|W|al husajma;alhucemas;villa alhucemas;villa sanjurjo,Al Hudaydah|al hudaydah|YE|42.95|14.8|734|W|el hudeyda,Al Hufuf|eastern province|SA|49.59|25.36|293|W|hofuf;al hofuf;hufuf,Al Jubayl|eastern province|SA|49.62|27.02|237|W|jubail;al jubail;al dschubail;al dzubajl;el cubeyl,Al-Junaynah|western darfur|SD|22.45|13.45|162|W|geneina;al dschunaina;al dzunajna;el geneina,Al Kharj|riyadh region|SA|47.33|24.16|425|W|al khardj;el harc,Al Khums|al marqab|LY|14.26|32.65|201|W|al jums;al chums;el hums;qabilat al khums,Al Khusus|qalyubia|EG|31.32|30.15|488|W|,Al-Kut|wasit|IQ|45.82|32.51|315|W|kut;al koet,Al Madinah|basra|IQ|47.27|30.96|255|W|,Al Mahallah al Kubra|gharbia|EG|31.17|30.97|592|W|,Al Mahmudiyah|baghdad|IQ|44.37|33.06|350|W|,Al Mansurah|dakahlia|EG|31.38|31.04|621|W|al mansura;el mansura;mansourah;mansura,Al Matariyah|dakahlia|EG|32.03|31.18|162|W|,Al Mawsil al Jadidah|nineveh|IQ|43.11|36.33|2065|W|,Al'met'yevsk|tatarstan republic|RU|52.32|54.9|140|W|almetjevsk;almetjewsk,Al Miqdadiyah|diyala|IQ|44.94|33.98|155|W|,Al Mubarraz|eastern province|SA|49.59|25.41|290|W|,Al Muharraq|muharraq|BH|50.61|26.26|176|W|al muharrak;muharraq,Al Qadarif|al qadarif|SD|35.38|14.03|363|W|gedaref;al kadarif;el gadarif;gadaref;gadarif,Al Qahirah al Jadidah||EG|31.44|30.04|313|W|,Al Qamishli|al hasakah|SY|41.23|37.05|184|W|kamischli;kamishli;kamishlie;kamisli;qamichli;qamischli,Al Qurnah|basra|IQ|47.43|31.02|134|W|,Al-'Ubur|qalyubia|EG|31.48|30.23|138|W|,Alabaster|AL|US|-86.82|33.24|32|N|,Alafaya|FL|US|-81.21|28.56|78|N|,Alagoinhas|bahia|BR|-38.42|-12.14|161|W|,Alameda|CA|US|-122.26|37.77|78|N|,Alamo|MX30|MX|-97.68|20.91|25|N|,Alamogordo|NM|US|-105.96|32.9|30|N|,Alandur|tamil nadu|IN|80.21|13|164|W|,Alanya|antalya|TR|32|36.54|364|W|,Alappuzha|kerala|IN|76.33|9.49|240|W|alleppey,Albacete|castille la mancha|ES|-1.86|38.99|173|W|,Albany|NY|US|-73.76|42.65|101|N|,Albany|GA|US|-84.16|31.58|74|N|albania,Albany|OR|US|-123.11|44.64|52|N|,Albany Park|IL|US|-87.72|41.97|52|N|,Albuquerque|NM|US|-106.65|35.08|564|NW|alburquerque;methville,Alcala de Henares|madrid|ES|-3.36|40.48|193|W|compluto,Alcorcon|madrid|ES|-3.82|40.35|172|W|,Aleppo|aleppo|SY|37.16|36.2|2098|W|alep;alepo;halep,Alexandra|gauteng|ZA|28.1|-26.11|179|W|,Alexandria|alexandria|EG|29.92|31.2|5263|W|alejandria;aleksandria;alessandria d egitto;alexandrie;iskandariyah;iskenderiye,Alexandria|VA|US|-77.05|38.8|159|NW|,Alexandria|LA|US|-92.45|31.31|47|N|,Aley|mount lebanon|LB|35.6|33.81|130|W|alayh,Algiers|algiers|DZ|3.09|36.73|2364|W|alger;algeri;algier;aljir;alzir;argel;cezayir,Algonquin|IL|US|-88.29|42.17|30|N|,Alhambra|AZ|US|-112.13|33.5|127|N|,Alhambra|CA|US|-118.13|34.1|85|N|,Aliamanu / Salt Lakes / Foster Village|HI|US|-157.92|21.36|38|N|salt lake,Aliayabiagba|lagos|NG|3.33|6.45|228|W|,Alicante|valencia|ES|-0.48|38.35|348|W|alacante,Alief|TX|US|-95.6|29.71|98|N|,Aligarh|uttar pradesh|IN|78.07|27.88|753|W|,Alimosho|lagos|NG|3.3|6.61|308|W|,Aliso Viejo|CA|US|-117.73|33.57|50|N|,Allapattah|FL|US|-80.22|25.81|54|N|,Allen|TX|US|-96.67|33.1|98|N|,Allen Park|MI|US|-83.21|42.26|27|N|,Allentown|PA|US|-75.49|40.61|120|N|,Allston|MA|US|-71.13|42.36|28|N|,Alma|QC|CA|-71.65|48.55|29|N|,Almaty|almaty|KZ|76.91|43.25|1977|W|almati;alma ata;werny,Almendares|havana|CU|-82.42|23.11|240|W|,Almere Stad|flevoland|NL|5.21|52.37|176|W|almere,Almeria|andalusia|ES|-2.46|36.84|196|W|,Aloha|OR|US|-122.87|45.49|49|N|,Alor Setar|kedah|MY|100.36|6.12|417|W|alor star,Alpharetta|GA|US|-84.29|34.08|63|N|,Altadena|CA|US|-118.13|34.19|42|N|,Altamira|para|BR|-52.21|-3.2|138|W|,Altamira|MX28|MX|-97.94|22.39|59|N|,Altamonte Springs|FL|US|-81.37|28.66|43|N|,Alto Barinas|barinas|VE|-70.23|8.59|284|W|,Alto Hospicio|tarapaca|CL|-70.1|-20.27|142|W|,Alton|IL|US|-90.18|38.89|27|N|,Altona|hamburg|DE|9.93|53.55|250|W|arrondissement daltona;bezirk altona;distretto di altona;hamburgo altona,Altoona|PA|US|-78.39|40.52|45|N|,Alvaro Obregon|MX09|MX|-99.2|19.36|726|NW|,Alvin|TX|US|-95.24|29.42|25|N|,Alvorada|rio grande do sul|BR|-51.08|-30|187|W|,Alwar|rajasthan|IN|76.62|27.56|322|W|,Amadora|lisbon|PT|-9.23|38.75|178|W|,Amagasaki|hyogo|JP|135.42|34.72|459|W|,Amarapura|mandalay region|MM|96.05|21.91|237|W|,Amarillo|TX|US|-101.83|35.22|198|NW|,Ambala|haryana|IN|76.8|30.36|195|W|,Ambarnath|maharashtra|IN|73.17|19.2|253|W|,Ambato|tungurahua province|EC|-78.62|-1.25|387|W|,Ambattur|tamil nadu|IN|80.16|13.1|466|W|,Ambon|maluku|ID|128.18|-3.7|347|W|ambon city;kota ambon,Ameca|MX14|MX|-104.05|20.55|36|N|municipio ameca,Amecameca|MX15|MX|-98.77|19.12|31|N|amecameca de juarez,American Fork|UT|US|-111.8|40.38|28|N|,Americana|sao paulo|BR|-47.33|-22.74|246|W|,Amersfoort|utrecht|NL|5.39|52.16|139|W|,Ames|IA|US|-93.62|42.03|65|N|,Amherst|NY|US|-78.8|42.98|122|N|,Amherst|MA|US|-72.52|42.37|39|N|,Amiens|hauts de france|FR|2.3|49.9|143|W|,Amman|amman|JO|35.95|31.96|1275|W|aman;ama,Amol|mazandaran|IR|52.35|36.47|237|W|,Amozoc de Mota|MX21|MX|-98.05|19.05|95|N|amozoc,Amravati|maharashtra|IN|77.75|20.93|647|W|,Amritsar|punjab|IN|74.88|31.62|1159|W|,Amroha|uttar pradesh|IN|78.47|28.9|176|W|,Amsterdam|north holland|NL|4.89|52.37|741|W|amesterda;amesterdao;amseutereudam;amsterda;amsterodam;amsut erudam;amusuterudamu;aemstelredamme;aemsterdam,An Nhon|gia lai|VN|109.11|13.89|308|W|,Anaco|anzoategui|VE|-64.46|9.43|139|W|,Anaheim|CA|US|-117.91|33.84|350|NW|,Anand|gujarat|IN|72.96|22.55|209|W|,Ananindeua|para|BR|-48.37|-1.37|535|W|,Anantapur|andhra pradesh|IN|77.61|14.68|267|W|,Anantnag|jammu and kashmir|IN|75.15|33.73|150|W|,Anapolis|goias|BR|-48.95|-16.33|319|W|,Anbu|guangdong|CN|116.68|23.45|162|W|,Ancaster|ON|CA|-79.99|43.22|40|N|,Anchorage|AK|US|-149.9|61.22|289|NW|,Anda|heilongjiang|CN|125.3|46.45|181|W|,Anderlecht|brussels capital|BE|4.31|50.84|160|W|,Anderson|IN|US|-85.68|40.11|55|N|,Anderson|SC|US|-82.65|34.5|27|N|,Andijon|andijan region|UZ|72.35|40.78|747|W|andican;andijan;andisjan;andizan;andizjan,Andimeshk|khuzestan|IR|48.35|32.46|135|W|,Andong|gyeongsangbuk do|KR|128.72|36.57|153|W|,Andover|MN|US|-93.29|45.23|32|N|,Ang Mo Kio New Town||SG|103.84|1.38|159|W|,Angarsk|irkutsk oblast|RU|103.91|52.56|243|W|,Angeles City|central luzon|PH|120.58|15.15|483|W|,Angers|pays de la loire|FR|-0.55|47.47|168|W|,Angono|calabarzon|PH|121.15|14.53|134|W|,Angra dos Reis|rio de janeiro|BR|-44.32|-23.01|179|W|,Angren|tashkent region|UZ|70.14|41.02|191|W|,Anjo|aichi|JP|137.08|34.96|188|W|,Ankang|shaanxi|CN|109.02|32.68|870|W|,Ankara|ankara|TR|32.85|39.92|3517|W|ancara;angora,Ankeny|IA|US|-93.61|41.73|56|N|,Ann Arbor|MI|US|-83.74|42.28|117|N|,Annaba|annaba|DZ|7.77|36.9|342|W|bone,Annandale|VA|US|-77.2|38.83|41|N|,Annapolis|MD|US|-76.49|38.98|40|N|,Annex|ON|CA|-79.4|43.67|30|N|,Anqing|anhui|CN|117.05|30.51|804|W|an khanh;an cching;anking,Anqiu|shandong|CN|119.19|36.43|364|W|,Ansan-si|gyeonggi do|KR|126.82|37.32|623|W|ansan,Anshan|liaoning|CN|122.99|41.12|1450|W|an son;an san,Anshun|guizhou|CN|105.93|26.25|765|W|an sun,Antakya|hatay|TR|36.16|36.21|399|W|antioche;antiochia am orontes;antiochia di siria;antiochia vid orontes;antiochie;antiokia;antioquia;antioch;teopolis,Antalya|antalya|TR|30.7|36.91|1335|W|antalia,Antananarivo|analamanga|MG|47.54|-18.91|1349|W|antananarywa;tananarive,Antelope|CA|US|-121.33|38.71|45|N|,Antioch|CA|US|-121.81|38|110|N|,Antipolo|calabarzon|PH|121.12|14.63|913|W|antipolo city,Antofagasta|antofagasta|CL|-70.4|-23.65|401|W|,Antsirabe|vakinankaratra|MG|47.03|-19.87|260|W|,Antsiranana|diana|MG|49.29|-12.32|136|W|diego suarez,Antwerp|flanders|BE|4.4|51.22|529|W|amberes;antuerpia;antverpy;antwerpen;antwerpia;anvers;anversa;kota antwerpen,Anyama|abidjan autonomous district|CI|-4.05|5.49|133|W|,Anyang|henan|CN|114.38|36.1|1146|W|an duong;an jang,Anyang-si|gyeonggi do|KR|126.93|37.39|595|W|anyang,Aomori|aomori|JP|140.73|40.82|298|W|,Apache Junction|AZ|US|-111.55|33.42|38|N|,Apan|MX13|MX|-98.45|19.71|26|N|,Aparecida de Goiania|goias|BR|-49.24|-16.82|527|W|,Apaseo el Alto|MX11|MX|-100.62|20.46|27|N|,Apaseo el Grande|MX11|MX|-100.69|20.55|26|N|,Apatzingan|MX16|MX|-102.36|19.09|102|N|,Apeldoorn|gelderland|NL|5.97|52.21|136|W|,Apex|NC|US|-78.85|35.73|45|N|,Apizaco|MX29|MX|-98.14|19.41|49|N|ciudad de apizaco,Apopka|FL|US|-81.51|28.68|48|N|,Apple Valley|CA|US|-117.19|34.5|72|N|,Apple Valley|MN|US|-93.22|44.73|51|N|,Appleton|WI|US|-88.42|44.26|74|N|,Apucarana|parana|BR|-51.46|-23.55|134|W|,Aqsu|xinjiang|CN|80.28|41.18|535|W|aksou;aksu;ciudad de aksu,Ar Ramtha|irbid|JO|36.01|32.56|155|W|,Ar Raqqah|raqqa|SY|39.01|35.95|531|W|raqqa;rakka,Ar Rayyan|baladiyat ar rayyan|QA|51.42|25.29|272|W|al rayyan,Arabi|somali|ET|42.49|9.96|148|W|,Aracaju|sergipe|BR|-37.07|-10.91|664|W|,Aracatuba|sao paulo|BR|-50.43|-21.21|208|W|,Arad|arad county|RO|21.32|46.18|169|W|,Araguaina|tocantins|BR|-48.21|-7.19|183|W|,Arak|markazi|IR|49.7|34.09|503|W|,Arakawa|tokyo|JP|139.78|35.74|216|W|arakawa city,Arandas|MX14|MX|-102.35|20.71|52|N|,Arapiraca|alagoas|BR|-36.66|-9.75|243|W|,Arar|northern borders region|SA|41.04|30.98|148|W|,Araraquara|sao paulo|BR|-48.18|-21.79|168|W|,Araras|sao paulo|BR|-47.38|-22.36|135|W|,Araruama|rio de janeiro|BR|-42.34|-22.87|137|W|,Araucaria|parana|BR|-49.41|-25.59|162|W|,Araure|portuguesa|VE|-69.24|9.58|181|W|,Arba Minch|south ethiopia regional state|ET|37.55|6.03|201|W|,Arcadia|CA|US|-118.04|34.14|58|N|,Arcahaie|ouest|HT|-72.51|18.77|130|W|,Archway|england|GB|-0.13|51.57|215|W|,Arcola East|SK|CA|-104.54|50.43|33|N|,Ardabil|ardabil province|IR|48.29|38.25|410|W|ardebil;erdebil,Arden-Arcade|CA|US|-121.38|38.6|92|N|,Ardmore|OK|US|-97.14|34.17|25|N|,Arequipa|arequipa|PE|-71.54|-16.4|1195|W|,Arganzuela|madrid|ES|-3.7|40.4|148|W|,Arhus|central jutland|DK|10.21|56.16|285|W|aarhus,Arica|arica y parinacota region|CL|-70.3|-18.48|241|W|,Arif Wala|balochistan|PK|66.3|26.32|157|W|,Arifwala|punjab|PK|73.07|30.29|854|W|,Arish|north sinai|EG|33.8|31.13|199|W|al arisch;al arish;al arisz;alarixe;aris;el arish;el aris;el arich;city of cut noses,Arkhangel'sk|arkhangelskaya|RU|40.55|64.55|349|W|arkhangelsk;arcangelo;archangelsk;arcangel;arkangeli,Arlington|TX|US|-97.11|32.74|388|NW|,Arlington|VA|US|-77.1|38.88|207|NW|,Arlington|MA|US|-71.16|42.42|42|N|,Arlington Heights|IL|US|-87.98|42.09|75|N|,Armavir|krasnodar krai|RU|41.11|45|199|W|armawir,Armenia|quindio department|CO|-75.67|4.54|304|W|armenien;armenie;ermenistan,Arnavutkoey|istanbul|TR|28.74|41.18|198|W|arnavutkoy,Arnhem|gelderland|NL|5.91|51.98|162|W|arnheim;arnhemia,Arrah|bihar|IN|84.66|25.56|261|W|,Arroyo Naranjo|havana|CU|-82.38|23.04|210|W|,Artux|xinjiang|CN|76.18|39.71|285|W|,Arusha|arusha|TZ|36.68|-3.37|617|W|,Arvada|CO|US|-105.09|39.8|115|N|,As Salimiyah|hawalli|KW|48.08|29.33|147|W|,As Samawah|muthanna|IQ|45.29|31.33|152|W|samawa;samawah;semave,Asahikawa|hokkaido|JP|142.36|43.77|333|W|,Asaka|saitama|JP|139.6|35.8|141|W|,Asansol|west bengal|IN|86.98|23.68|504|W|,Asela|oromiya|ET|39.13|7.95|139|W|,Ash Sharqat|salah ad din|IQ|43.23|35.52|160|W|,Ash Shatrah|dhi qar|IQ|46.17|31.41|182|W|,Ashaiman|greater accra|GH|-0.03|5.7|190|W|ashiaman,Ashburn|VA|US|-77.49|39.04|43|N|,Ashburn|IL|US|-87.71|41.75|42|N|,Ashdod|southern district|IL|34.65|31.79|226|W|aschdod;asdod;asdode;ashdod yam;asjdod;aszdod,Asheboro|NC|US|-79.81|35.71|26|N|,Asheville|NC|US|-82.55|35.6|95|N|,Ashgabat|ashgabat|TM|58.38|37.95|1030|W|achgabat;aschgabat;asgabate;ashkabad;ashkhabad;asjabad;asjchabad;asjkhabad;aszchabad;asgabat;askabat;aschabad,Ashikaga|tochigi|JP|139.45|36.33|144|W|,Ashkelon|southern district|IL|34.57|31.67|144|W|ashqelon;ashquelon,Ashmont|MA|US|-71.07|42.28|30|N|,Ashuganj City|chittagong|BD|91.01|24.04|210|W|,Asmara|maekel|ER|38.93|15.34|563|W|,Aspen Hill|MD|US|-77.07|39.08|48|N|,Assiut|asyut|EG|31.18|27.18|528|W|asyut,Astana|astana|KZ|71.45|51.18|1544|W|akmolinsk;noer soeltan;nour soultan;nur sultan;tselinograd,Astanajapura|west java|ID|108.63|-6.8|148|W|,Astoria|NY|US|-73.93|40.77|150|NW|,Astrakhan|astrakhan oblast|RU|48.04|46.35|533|W|astrachan;astracan;astraca;astrahan,Asuncion|asuncion|PY|-57.65|-25.29|1482|W|assuncao,Aswan|aswan|EG|32.9|24.09|379|W|assouan;assuan;assuao;asuan;asvan,Atani|anambra|NG|6.75|6.01|230|W|,Atascadero|CA|US|-120.67|35.49|29|N|,Atascocita|TX|US|-95.18|30|65|N|,Atasehir|istanbul|TR|29.12|40.98|361|W|,Athens|attica|GR|23.73|37.98|664|W|ateena;aten;atena;atenas;atene;ateny;athen;athena;athene;athenes;atheny;athinai;atina;kota athena,Athens|GA|US|-83.38|33.96|127|N|,Athens|OH|US|-82.1|39.33|25|N|,Athlone|western cape|ZA|18.5|-33.97|237|W|,Atibaia|sao paulo|BR|-46.55|-23.12|158|W|,Atlanta|GA|US|-84.39|33.75|510|NW|,Atlantic City|NJ|US|-74.42|39.36|39|N|kota atlantic,Atlixco|MX21|MX|-98.44|18.91|86|N|,Atotonilco el Alto|MX14|MX|-102.51|20.55|26|N|,Atsiaman|greater accra|GH|-0.33|5.7|202|W|achiaman;ashaiman,Atsugi|kanagawa|JP|139.37|35.44|223|W|acugi,Attleboro|MA|US|-71.29|41.94|44|N|,Attock City|punjab|PK|72.36|33.77|141|W|,Atwater|CA|US|-120.61|37.35|29|N|,Atyrau|atyrau oblisi|KZ|51.88|47.1|290|W|atyraou;atyraw;atirau;atirav;atiraw,Auburn|WA|US|-122.23|47.31|77|N|,Auburn|AL|US|-85.48|32.61|62|N|,Auburn|NY|US|-76.57|42.93|26|N|,Auburn Gresham|IL|US|-87.65|41.74|45|N|,Auckland|auckland|NZ|174.76|-36.85|1547|W|,Augsburg|bavaria|DE|10.9|48.37|301|W|augsbourg;augsburg innenstadt;augsburgo;augusta,Augusta|GA|US|-81.97|33.47|43|N|,Aurangabad|maharashtra|IN|75.34|19.88|1175|W|,Aurora|CO|US|-104.83|39.73|359|NW|,Aurora|IL|US|-88.32|41.76|200|NW|,Aurora|ON|CA|-79.47|44|55|N|,Austin|TX|US|-97.74|30.27|974|NW|,Austintown|OH|US|-80.76|41.1|29|N|,Autlan de Navarro|MX14|MX|-104.37|19.77|45|N|,Avadi|tamil nadu|IN|80.11|13.11|345|W|,Avellaneda|buenos aires|AR|-58.37|-34.66|367|W|,Aventura|FL|US|-80.14|25.96|37|N|,Avondale|AZ|US|-112.35|33.44|80|N|,Avondale|IL|US|-87.71|41.94|39|N|,Avtozavodskyi|poltava|UA|33.43|49.1|157|W|avtozavodskyi rayon;avtozavodskyy;avtozavodskyy rayon,Awasa|sidama region|ET|38.48|7.06|422|W|awassa,Awka|anambra|NG|7.07|6.21|167|W|avka,Ayacucho|ayacucho|PE|-74.22|-13.16|140|W|,Aydin|aydin|TR|27.84|37.85|163|W|tralleis;tralli,Aylmer|QC|CA|-75.81|45.4|56|N|,Az Zawiyah|az zawiyah|LY|12.73|32.76|200|W|ez zaviye;zawiyah,Az-Zuhur|port said|EG|32.26|31.27|266|W|al zohur,Azcapotzalco|MX09|MX|-99.19|19.49|414|NW|,Azusa|CA|US|-117.91|34.13|49|N|,Ba Dinh|hanoi|VN|105.83|21.04|221|W|,Ba Vi|hanoi|VN|105.38|21.08|282|W|,Bab Ezzouar|algiers|DZ|3.18|36.73|275|W|,Babol|mazandaran|IR|52.68|36.55|202|W|,Bac Giang|bac ninh|VN|106.19|21.27|450|W|,Bac Lieu|ca mau|VN|105.73|9.29|156|W|,Bac Ninh|bac ninh|VN|106.08|21.19|287|W|,Bac Tu Liem|hanoi|VN|105.75|21.07|340|W|,Bacau|bacau county|RO|26.91|46.57|136|W|,Bachuan|chongqing|CN|106.05|29.85|208|W|,Back Mountain|PA|US|-76|41.34|26|N|,Bacolod City|western visayas|PH|122.95|10.67|454|W|bacolod,Bacoor|calabarzon|PH|120.94|14.46|356|W|,Badajoz|extremadura|ES|-6.97|38.88|150|W|badajos,Badalona|catalonia|ES|2.25|41.45|217|W|,Bade|taiwan|TW|121.28|24.93|209|W|bade district,Badlapur|maharashtra|IN|73.27|19.16|174|W|,Bafoussam|west|CM|10.42|5.48|373|W|bafousam;bafusam;befoussam,Bagcilar|istanbul|TR|28.86|41.04|740|W|,Bagerhat|khulna division|BD|89.79|22.66|266|W|,Baghdad|baghdad|IQ|44.4|33.34|7216|W|bagdad;bagda;bagdat,Bago|bago region|MM|96.48|17.34|244|W|pegu;pegou,Bago City|western visayas|PH|122.83|10.53|192|W|bago,Bagong Silang|national capital region|PH|121.04|14.78|261|W|,Baguio|cordillera|PH|120.59|16.42|272|W|baguio city;kota baguio,Bahadurgarh|haryana|IN|76.94|28.69|170|W|,Baharampur|west bengal|IN|88.25|24.1|180|W|,Baharkah|erbil|IQ|44.04|36.32|130|W|,Bahawalnagar|punjab|PK|73.25|30|241|W|bahawalpur,Bahawalpur|punjab|PK|71.68|29.4|903|W|,Bahcelievler|istanbul|TR|28.86|41|576|W|,Bahia Blanca|buenos aires|AR|-62.27|-38.72|299|W|,Bahir Dar|amhara|ET|37.39|11.59|350|W|bahar dar;baher dar;bahyr dar,Bahraigh|uttar pradesh|IN|81.59|27.57|182|W|bahraich,Baicheng|jilin|CN|122.83|45.62|316|W|paj ccheng,Baise|guangxi|CN|106.63|23.89|686|W|baise city,Baishan|jilin|CN|126.42|41.94|183|W|paj san,Baiyin|gansu|CN|104.17|36.55|294|W|paj jin,Bakersfield|CA|US|-119.02|35.37|373|NW|,Baku|baki|AZ|49.89|40.38|2351|W|bacu;bakoe;bakou,Balakovo|saratov oblast|RU|47.8|52.03|199|W|balakowo,Balashikha|moscow oblast|RU|37.95|55.79|150|W|balachikha;balaschicha;balasjicha;balasjikha;balasiha;balasicha;balaszycha,Balasore|odisha|IN|86.93|21.49|144|W|baleshwar;baleswar,Balbala|djibouti|DJ|43.11|11.56|554|W|,Balch Springs|TX|US|-96.62|32.73|25|N|,Balcon de la Lisa|havana|CU|-82.45|23.05|147|W|,Baldwin Park|CA|US|-117.96|34.09|77|N|,Bali|west bengal|IN|88.34|22.65|296|W|,Balikesir|balikesir|TR|27.89|39.65|238|W|,Balikpapan|east kalimantan|ID|116.83|-1.27|695|W|kota balikpapan,Baliuag|central luzon|PH|120.9|14.95|135|W|,Ballari|karnataka|IN|76.92|15.14|410|W|bellary,Ballwin|MO|US|-90.55|38.6|30|N|,Balneario Camboriu|santa catarina|BR|-48.63|-26.99|139|W|camboriu,Baltimore|MD|US|-76.61|39.29|585|NW|baltimora,Balurghat|west bengal|IN|88.78|25.22|153|W|,Balvanera|buenos aires f d|AR|-58.4|-34.61|152|W|,Bamako|bamako|ML|-7.98|12.61|4227|W|,Bamenda|north west|CM|10.15|5.96|420|W|,Ban Khlong Prawet|bangkok|TH|100.68|13.72|160|W|,Banan|chongqing|CN|106.54|29.38|508|W|,Banbury-Don Mills|ON|CA|-79.35|43.74|27|N|,Banda|uttar pradesh|IN|80.33|25.48|152|W|,Banda Aceh|aceh|ID|95.33|5.54|267|W|banda acheh;banda achem;banda atjeh;kota banda aceh,Bandar Abbas|hormozgan|IR|56.28|27.19|352|W|bandar e abbas;bender abbas;cambarao;gombroon;gumrun;port comorao,Bandar Bukit Raja|selangor|MY|101.43|3.09|146|W|,Bandar-e Mahshahr|khuzestan|IR|49.19|30.56|162|W|,Bandar Lampung|lampung|ID|105.26|-5.43|1166|W|bandarlampung;kota bandar lampung,Bandar Seri Alam|johor|MY|103.88|1.5|220|W|seri alam city,Bandar Sunway|selangor|MY|101.61|3.07|200|W|sunway city,Bandar Tasik Puteri|selangor|MY|101.47|3.29|150|W|puteri lake city,Bandar Utama|kuala lumpur|MY|101.61|3.15|200|W|,Bandarban|chittagong|BD|92.22|22.2|495|W|,Bandundu Province|kwilu|CD|17.38|-3.32|202|W|bandundu;bandundu bolgesi;provincia de bandundu;provincia di bandundu;provinsi bandundu;provinz bandundu,Bandung|west java|ID|107.61|-6.92|2528|W|kota bandung,Bang Kapi|bangkok|TH|100.65|13.77|147|W|,Bang Khae|bangkok|TH|100.41|13.69|193|W|,Bang Khun Thian|bangkok|TH|100.43|13.66|165|W|,Bangkok|bangkok|TH|100.5|13.75|5104|W|banguecoque;bancoque,Bangor|ME|US|-68.77|44.8|32|N|,Bangui|bangui|CF|18.55|4.36|812|W|bangi,Banha|qalyubia|EG|31.18|30.46|182|W|,Bani Suwayf|beni suweif|EG|31.1|29.07|273|W|,Banja Luka|srpska|BA|17.21|44.78|221|W|bania luka;banya luka,Banjar|west java|ID|107.43|-7.2|209|W|,Banjaran|west java|ID|107.59|-7.05|164|W|,Banjarbaru|south kalimantan|ID|114.84|-3.44|293|W|bandjarbaru,Banjarmasin|south kalimantan|ID|114.59|-3.32|657|W|,Bankura|west bengal|IN|87.07|23.23|133|W|,Banning|CA|US|-116.88|33.93|30|N|,Bannu|khyber pakhtunkhwa|PK|70.6|32.99|1357|W|,Banqiao|taipei|TW|121.47|25.01|551|W|banqiao district;banciao;banciao district,Bao'an|guangdong|CN|113.88|22.55|4476|W|,Bao Loc|lam dong|VN|107.81|11.55|170|W|,Baoding|hebei|CN|115.46|38.87|2739|W|prefettura di baoding,Baoji|shaanxi|CN|107.24|34.37|1437|W|,Baoshan|shanghai|CN|121.49|31.41|2265|W|,Baoshan|yunnan|CN|99.16|25.12|935|W|pao san,Baotou|inner mongolia|CN|109.84|40.65|2150|W|pao tchou,Baqubah|diyala|IQ|44.61|33.75|152|W|bakouba;bakuba;baquba,Barakpur|west bengal|IN|88.36|22.77|148|W|,Baranagar|west bengal|IN|88.38|22.64|260|W|barahanagore,Baranovichi|brest|BY|26.01|53.13|170|W|baranavitsjy;baranawitschy;baranovitchi;baranovitsi;baranowicze,Barasat|west bengal|IN|88.48|22.72|298|W|,Barberton|OH|US|-81.61|41.01|26|N|,Barcarena|para|BR|-48.63|-1.51|139|W|,Barcelona|catalonia|ES|2.16|41.39|1686|W|barcellona;barcelone;barselona;la ciudad condal,Barcelona|anzoategui|VE|-64.69|10.14|815|W|barselona,Barddhaman|west bengal|IN|87.86|23.26|301|W|bardhaman;burdwan,Bareilly|uttar pradesh|IN|79.43|28.37|745|W|bareli,Bari|apulia|IT|16.87|41.12|316|W|,Bariadi|simiyu|TZ|33.98|-2.8|260|W|,Barinas|barinas|VE|-70.23|8.62|397|W|,Barishal|barisal division|BD|90.37|22.7|202|W|,Barking|england|GB|0.08|51.53|218|W|barking town,Barnaul|altai krai|RU|83.73|53.36|632|W|barnaoel;barnaoul,Barnstable|MA|US|-70.3|41.7|47|N|,Barquisimeto|lara|VE|-69.36|10.06|1240|W|,Barra da Tijuca|rio de janeiro|BR|-43.37|-23|421|W|kiki,Barra Mansa|rio de janeiro|BR|-44.17|-22.54|181|W|,Barrancabermeja|santander department|CO|-73.85|7.07|191|W|barracana bermeja,Barranquilla|atlantico|CO|-74.78|10.97|1206|W|barranquilha,Barreiras|bahia|BR|-44.99|-12.15|171|W|,Barrie|ON|CA|-79.67|44.4|147|NW|,Bartlesville|OK|US|-95.98|36.75|36|N|,Bartlett|TN|US|-89.87|35.2|58|N|,Bartlett|IL|US|-88.19|42|41|N|,Barueri|sao paulo|BR|-46.88|-23.51|316|W|tambore,Baruta|miranda|VE|-66.88|10.43|244|W|,Barysaw|minsk|BY|28.5|54.23|133|W|borisov,Basaksehir|istanbul|TR|28.79|41.11|193|W|,Basel|basel city|CH|7.57|47.56|177|W|basilea;basileia;basilej;bazel;bazylea;bale,Basildon|england|GB|0.46|51.57|144|W|,Basirhat City|west bengal|IN|88.85|22.66|143|W|,Basrah|basra|IQ|47.78|30.51|1326|W|basra;al basra;basora;bassora;bassorah;bacora,Basuo|hainan|CN|108.67|19.1|444|W|,Bata|litoral|GQ|9.77|1.86|173|W|,Batala|punjab|IN|75.2|31.81|158|W|,Batam|riau|ID|104.02|1.15|1296|W|kota batam,Batang|central java|ID|110.71|-6.48|139|W|,Batangas|calabarzon|PH|121.06|13.76|237|W|,Batavia|IL|US|-88.31|41.85|26|N|,Bath Beach|NY|US|-74|40.6|33|N|,Bathinda|punjab|IN|74.94|30.21|285|W|,Batikent|ankara|TR|32.73|39.97|300|W|,Batman|batman|TR|41.13|37.89|452|W|,Batna|batna|DZ|6.17|35.56|289|W|batina;batna city;batnah,Baton Rouge|LA|US|-91.19|30.44|227|NW|,Battagram|khyber pakhtunkhwa|PK|73.02|34.68|700|W|battagram city,Battle Creek|MI|US|-85.18|42.32|51|N|,Batu|east java|ID|112.53|-7.87|225|W|kota batu,Batu Caves|selangor|MY|101.68|3.24|254|W|,Batu Pahat|johor|MY|102.93|1.85|156|W|,Batumi|adjara|GE|41.63|41.64|186|W|bat umi;batoemi;batoumi;batum,Baturaja|south sumatra|ID|104.17|-4.13|134|W|,Baubau|southeast sulawesi|ID|122.6|-5.46|161|W|bau bau,Bauchi|bauchi|NG|9.84|10.31|693|W|bauczi,Bauru|sao paulo|BR|-49.06|-22.31|392|W|,Bawshar|muscat|OM|58.4|23.58|383|W|,Bay City|MI|US|-83.89|43.59|33|N|kota bay,Bay Shore|NY|US|-73.25|40.73|26|N|,Bay Street Corridor|ON|CA|-79.39|43.66|25|N|,Bayamo|granma province|CU|-76.64|20.37|192|W|,Bayamon|bayamon|PR|-66.16|18.4|203|W|,Bayan Lepas|penang|MY|100.26|5.3|130|W|,Bayan Nur|inner mongolia|CN|107.39|40.74|1760|W|,Bayji|salah ad din|IQ|43.49|34.93|173|W|,Bayonne|NJ|US|-74.11|40.67|66|N|,Bayside|NY|US|-73.78|40.77|66|N|,Baytown|TX|US|-94.98|29.74|76|N|,Bayview-Hunters Point|CA|US|-122.38|37.73|34|N|,Bazhong|sichuan|CN|106.74|31.87|2712|W|,Beaumont|TX|US|-94.1|30.09|115|N|,Beaumont|CA|US|-116.98|33.93|43|N|,Beauport|QC|CA|-71.19|46.86|81|N|montmorency,Beavercreek|OH|US|-84.06|39.71|46|N|beaver creek,Beaverton|OR|US|-122.8|45.49|96|N|,Beawar|rajasthan|IN|74.32|26.1|151|W|,Bechar|bechar|DZ|-2.22|31.62|165|W|basyar;baszszar,Bedford|TX|US|-97.14|32.84|49|N|,Bedok New Town||SG|103.94|1.33|276|W|,Beed|maharashtra|IN|75.76|18.99|146|W|,Beersheba|southern district|IL|34.79|31.25|186|W|be er scheva;be er sheva;beer sheba;beer szewa;beer seva;beer sheva;beerseba;beerseva;berseba;bersyeba;beer sjeva,Begoua|ombella m poko|CF|18.53|4.45|264|W|,Begusarai|bihar|IN|86.13|25.42|252|W|,Bei'an|heilongjiang|CN|126.6|48.27|436|W|,Beibei|chongqing|CN|106.44|29.83|247|W|,Beihai|guangxi|CN|109.12|21.48|525|W|pej chaj,Beijing|beijing|CN|116.4|39.91|18960|W|pechino;pekin;peking;pequim,Beiliu|guangxi|CN|110.35|22.71|199|W|,Beining|liaoning|CN|121.79|41.6|152|W|,Beipiao|liaoning|CN|120.78|41.79|190|W|,Beira|sofala|MZ|34.84|-19.84|687|W|,Beirut|beirut|LB|35.5|33.89|1916|W|beiroet;beirute;bejrut;beyrouth;beyrut,Bejaia|bejaia|DZ|5.08|36.76|176|W|bidschaya;bijaya;bougie;bugia,Bekasi|west java|ID|106.99|-6.23|2648|W|kota bekasi,Bel Air North|MD|US|-76.37|39.55|30|N|,Bel Air South|MD|US|-76.32|39.51|47|N|,Belagavi|karnataka|IN|74.5|15.85|490|W|belgaum,Belem|para|BR|-48.5|-1.46|1499|W|,Belfast|northern ireland|GB|-5.93|54.6|348|W|belfast city,Belford Roxo|rio de janeiro|BR|-43.4|-22.76|518|W|,Belgorod|belgorod oblast|RU|36.58|50.6|345|W|bielgorod;bilhorod;bilhorod dnistrovskyi,Belgrade|central serbia|RS|20.47|44.8|1273|W|belgrad;belgrado;beograd;belehrad,Belgrano|buenos aires f d|AR|-58.46|-34.56|138|W|barrio belgrano,Bell|CA|US|-118.19|33.98|36|N|,Bell Gardens|CA|US|-118.15|33.97|43|N|,Bella Vista|nacional|DO|-69.95|18.46|175|W|,Bella Vista|AR|US|-94.27|36.48|27|N|,Belleville|ON|CA|-77.38|44.17|50|N|,Belleville|IL|US|-89.98|38.52|42|N|,Belleville|NJ|US|-74.15|40.79|36|N|,Bellevue|WA|US|-122.2|47.61|139|NW|,Bellevue|NE|US|-95.89|41.14|55|N|,Bellflower|CA|US|-118.12|33.88|78|N|,Bellingham|WA|US|-122.49|48.76|85|N|,Bello|antioquia|CO|-75.56|6.34|392|W|,Belmont|CA|US|-122.28|37.52|27|N|,Belmont Cragin|IL|US|-87.77|41.93|79|N|,Belo Horizonte|minas gerais|BR|-43.94|-19.92|2721|W|b h;belo hte;bhte,Beloit|WI|US|-89.03|42.51|36|N|,Beltline|AB|CA|-114.07|51.04|25|N|,Belvidere|IL|US|-88.84|42.26|25|N|,Ben Cat|ho chi minh city hcmc|VN|106.6|11.15|364|W|,Bend|OR|US|-121.32|44.06|87|N|,Bendale|ON|CA|-79.25|43.77|29|N|,Benfica|luanda|AO|13.16|-8.94|191|W|,Bengaluru|karnataka|IN|77.59|12.97|8495|W|bangalore,Bengbu|anhui|CN|117.36|32.94|972|W|,Benghazi|banghazi|LY|20.07|32.11|757|W|banghazi;bengasi;bengazi;bingazi,Bengkulu|bengkulu|ID|102.27|-3.8|397|W|,Benguela|benguela|AO|13.4|-12.58|555|W|,Beni|north kivu|CD|29.47|0.49|140|W|new beni;nouveau beni,Beni Mellal|beni mellal khenifra|MA|-6.35|32.34|210|W|bani mallal;beni melal,Benicia|CA|US|-122.16|38.05|28|N|,Benin City|edo state|NG|5.63|6.34|1782|W|benim;benin;benin by;benin stadt;ciudad de benin;kota benin,Benito Juarez|MX09|MX|-99.16|19.37|385|NW|,Benoni|gauteng|ZA|28.32|-26.19|605|W|,Bensalem|PA|US|-74.95|40.1|60|N|bensalem township;municipio de bensalem;xa bensalem,Bensonhurst|NY|US|-73.99|40.6|60|N|,Benton|AR|US|-92.59|34.56|34|N|,Bentonville|AR|US|-94.21|36.37|44|N|,Benxi|liaoning|CN|123.77|41.29|987|W|pen si,Berazategui|buenos aires|AR|-58.21|-34.77|180|W|,Berbera|woqooyi galbeed|SO|45.01|10.44|242|W|,Bercham|perak|MY|101.14|4.64|150|W|,Berezniki|perm krai|RU|56.82|59.41|167|W|beresniki;bieriezniki,Bergen|vestland|NO|5.32|60.39|294|W|,Bergenfield|NJ|US|-74|40.93|27|N|,Berkeley|CA|US|-122.27|37.87|120|N|,Berlin|state of berlin|DE|13.41|52.52|3426|W|berliini;berlijn;berlim;berlino,Berrechid|casablanca settat|MA|-7.59|33.27|149|W|,Berriozabal|MX05|MX|-93.27|16.8|28|N|,Bertoua|east|CM|13.68|4.58|137|W|,Berwyn|IL|US|-87.79|41.85|56|N|,Bessemer|AL|US|-86.95|33.4|26|N|,Bethel Park|PA|US|-80.04|40.33|32|N|,Bethesda|MD|US|-77.1|38.98|60|N|,Bethlehem|PA|US|-75.37|40.63|74|N|,Betim|minas gerais|BR|-44.2|-19.97|384|W|,Bettendorf|IA|US|-90.52|41.52|35|N|,Bettiah|bihar|IN|84.5|26.8|132|W|,Beverly|MA|US|-70.88|42.56|41|N|,Beverly Cove|MA|US|-70.85|42.55|40|N|,Beverly Hills|CA|US|-118.4|34.07|34|N|,Bexley|england|GB|0.15|51.44|228|W|london borough of bexley,Beylikduezue|istanbul|TR|28.64|40.98|415|W|beylikduzu,Bhadravati|karnataka|IN|75.71|13.85|163|W|,Bhagalpur|bihar|IN|86.97|25.24|400|W|,Bhakkar|punjab|PK|71.06|31.63|131|W|,Bhalswa Jahangirpur|delhi|IN|77.17|28.74|197|W|,Bharatpur|bagmati province|NP|84.44|27.68|369|W|,Bharatpur|rajasthan|IN|77.49|27.22|252|W|,Bharuch|gujarat|IN|72.98|21.69|169|W|,Bhatara|dhaka division|BD|90.45|23.8|324|W|,Bhatpara|west bengal|IN|88.4|22.87|483|W|,Bhavnagar|gujarat|IN|72.15|21.76|605|W|,Bhawana|punjab|PK|72.65|31.57|373|W|bhanawa,Bhayandar|maharashtra|IN|72.85|19.3|809|W|,Bhetia|jharkhand|IN|86.14|22.79|174|W|,Bhilai|chhattisgarh|IN|81.43|21.21|627|W|bhilai nagar;bhilaj nagar,Bhilwara|rajasthan|IN|74.64|25.35|359|W|,Bhimavaram|andhra pradesh|IN|81.52|16.54|146|W|,Bhind|madhya pradesh|IN|78.79|26.57|197|W|,Bhisho|eastern cape|ZA|27.44|-32.85|137|W|bisho,Bhiwandi|maharashtra|IN|73.06|19.3|874|W|,Bhiwani|haryana|IN|76.14|28.79|196|W|,Bhopal|madhya pradesh|IN|77.4|23.25|1798|W|,Bhubaneswar|odisha|IN|85.83|20.27|885|W|bhubaneshwar,Bhuj|gujarat|IN|69.67|23.25|148|W|,Bhusawal|maharashtra|IN|75.79|21.04|187|W|,Bialystok|podlasie|PL|23.16|53.13|295|W|,Bibirevo|moscow|RU|37.6|55.88|159|W|,Bida|niger state|NG|6.01|9.08|400|W|,Bidar|karnataka|IN|77.52|17.91|216|W|,Bielany|mazovia|PL|20.94|52.29|131|W|,Bielefeld|north rhine westphalia|DE|8.53|52.03|331|W|,Bielsko-Biala|silesia|PL|19.05|49.82|176|W|bielitz biala;bilsko bela,Bien Hoa|dong nai|VN|106.82|10.94|1272|W|bienhoa,Big Spring|TX|US|-101.48|32.25|28|N|,Bihar Sharif|bihar|IN|85.52|25.2|297|W|,Bijie|guizhou|CN|105.29|27.3|1137|W|pi tie;prefecture de bijie,Bikaner|rajasthan|IN|73.31|28.02|644|W|,Bila Tserkva|kyiv oblast|UA|30.12|49.8|207|W|belaya tserkov;biala cerkiew;bila cerkva;bila zerkwa;bila terkva,Bilaspur|chhattisgarh|IN|82.16|22.08|365|W|,Bilbao|basque country|ES|-2.93|43.26|347|W|bilbau;el bocho,Bilbeis|sharqia|EG|31.56|30.42|185|W|bilbajs;bilbays;bilbeys,Bilimora|gujarat|IN|72.96|20.77|510|W|,Billerica|MA|US|-71.27|42.56|39|N|,Billings|MT|US|-108.5|45.78|117|N|,Biloxi|MS|US|-88.89|30.4|45|N|,Bilqas|dakahlia|EG|31.36|31.21|137|W|,Bima|west nusa tenggara|ID|118.73|-8.46|165|W|,Bimbo|ombella m poko|CF|18.42|4.26|348|W|,Binan|calabarzon|PH|121.08|14.34|300|W|binan city;kota binan,Binangonan|calabarzon|PH|121.19|14.46|219|W|,Binghamton|NY|US|-75.92|42.1|46|N|,Binh Thanh|ho chi minh city hcmc|VN|106.71|10.81|552|W|,Binjai|north sumatra|ID|98.49|3.6|279|W|kota binjai,Bintulu|sarawak|MY|113.03|3.17|151|W|,Binzhou|shandong|CN|118.02|37.37|682|W|pin cou;tan chau,Biratnagar|koshi|NP|87.27|26.46|244|W|,Birendranagar|karnali pradesh|NP|81.62|28.6|154|W|birendra nagar;birendranagara,Birganj|madhesh|NP|84.88|27.02|268|W|birgunj,Birjand|south khorasan province|IR|59.22|32.87|196|W|birdschand,Birkenhead|england|GB|-3.01|53.39|325|W|,Birmingham|england|GB|-1.9|52.48|1157|W|,Birmingham|AL|US|-86.8|33.52|196|NW|,Biryulevo|moscow|RU|37.68|55.59|144|W|,Bishan|chongqing|CN|106.22|29.59|204|W|,Bishkek|bishkek|KG|74.59|42.87|900|W|bichkek;bischkek;bisjkek;biskek;bisqueque;biszkek,Bishoftu|oromiya|ET|38.98|8.75|207|W|,Biskra|biskra|DZ|5.73|34.85|204|W|biskira,Bismarck|ND|US|-100.78|46.81|75|N|bismarck i nord dakota,Bissau|bissau|GW|-15.6|11.86|439|W|bisau,Bitung|north sulawesi|ID|125.13|1.44|225|W|kota bitung,Biysk|altai krai|RU|85.2|52.53|215|W|biejsk;bijsk,Bizerte|bizerte governorate|TN|9.87|37.27|138|W|biserta;bizert;bizerta,Blackburn|england|GB|-2.48|53.75|146|W|,Blackpool|england|GB|-3.05|53.82|145|W|,Blacksburg|VA|US|-80.41|37.23|44|N|,Blagoveshchensk|amur oblast|RU|127.53|50.28|225|W|blagovesjtsjensk;blagovechtchensk;blagoveschensk;blagovesjtjensk;blagovescensk;blagovestsensk;blagoweschtschensk;blagowieszczensk,Blaine|MN|US|-93.23|45.16|62|N|,Blainville|QC|CA|-73.88|45.67|46|N|,Blantyre|southern region|MW|35.01|-15.78|902|W|,Blida|blida|DZ|2.83|36.47|331|W|al bulajda;buleyde,Blitar|east java|ID|112.17|-8.1|161|W|kota blitar,Bloemfontein|free state|ZA|26.21|-29.12|556|W|,Bloomfield|NJ|US|-74.19|40.81|49|N|,Bloomington|MN|US|-93.3|44.84|86|N|,Bloomington|IN|US|-86.53|39.17|84|N|,Bloomington|IL|US|-88.99|40.48|78|N|,Blue Springs|MO|US|-94.28|39.02|54|N|,Blumenau|santa catarina|BR|-49.07|-26.92|361|W|,Bnei Brak|tel aviv|IL|34.83|32.08|214|W|benai beraq;bene berak;bene beraq;benei beraq;beney beraq;bnei berak;bnej brak;bney brak;bne beraq,Bo|southern province|SL|-11.74|7.96|233|W|,Boa Vista|roraima|BR|-60.67|2.82|419|W|,Boardman|OH|US|-80.66|41.02|35|N|,Bobo-Dioulasso|hauts bassins|BF|-4.29|11.18|904|W|,Bobruysk|mogilev|BY|29.21|53.15|205|W|babroejsk;babruisk;babrujsk;babruysk;bobruisk;bobrujsk,Boca Raton|FL|US|-80.08|26.36|93|N|boca de ratones;wta boca raton,Bochum|north rhine westphalia|DE|7.22|51.48|385|W|,Bocoio|benguela|AO|14.14|-12.47|164|W|,Bogor|west java|ID|106.79|-6.59|1078|W|kota bogor,Bogota|bogota d c|CO|-74.08|4.61|7674|W|santafe de bogota,Bogra|rajshahi division|BD|89.37|24.85|210|W|,Bohuniya|zhytomyr oblast|UA|28.61|50.28|147|W|bohunia;bohuniia;bohunskyi;bohunskyi rayon,Boisbriand|QC|CA|-73.83|45.62|26|N|,Boise|ID|US|-116.2|43.61|235|NW|,Bojnurd|north khorasan|IR|57.33|37.47|192|W|bojnourd,Bokaro|jharkhand|IN|86.15|23.67|564|W|bokaro steel city,Boksburg|gauteng|ZA|28.26|-26.21|445|W|,Bole|xinjiang|CN|82.07|44.89|235|W|,Bolingbrook|IL|US|-88.07|41.7|74|N|,Bologna|emilia romagna|IT|11.34|44.49|394|W|bologne;bolonha;bolonia;bolonya,Bolton|england|GB|-2.43|53.58|141|W|,Bolton|ON|CA|-79.74|43.88|26|N|,Bolu|bolu|TR|31.61|40.74|184|W|,Boma|bas congo|CD|13.05|-5.85|297|W|,Bondoukou|zanzan district|CI|-2.8|8.04|141|W|,Bonita Springs|FL|US|-81.78|26.34|51|N|,Bonn|north rhine westphalia|DE|7.1|50.73|330|W|bona,Bontang|east kalimantan|ID|117.49|0.13|194|W|kota bontang,Borama|awdal|SO|43.18|9.94|597|W|boorama,Bordeaux|new aquitaine|FR|-0.58|44.84|265|W|bordeus;burdeos,Bordj Bou Arreridj|bordj bou arreridj|DZ|4.76|36.07|158|W|burdz bu urajridz,Borivli|maharashtra|IN|72.86|19.23|609|W|borivali,Borough Park|NY|US|-74|40.63|149|NW|,Borshchahivka|kyiv city|UA|30.39|50.43|179|W|,Borujerd|lorestan province|IR|48.75|33.9|251|W|,Boshan|shandong|CN|117.83|36.48|153|W|,Bossier City|LA|US|-93.73|32.52|68|N|,Boston|MA|US|-71.06|42.36|653|NW|,Botad|gujarat|IN|71.67|22.17|130|W|,Bothell|WA|US|-122.21|47.76|42|N|,Botshabelo|free state|ZA|26.73|-29.27|309|W|,Botucatu|sao paulo|BR|-48.45|-22.89|145|W|,Bouake|vallee du bandama district|CI|-5.03|7.69|832|W|,Boucherville|QC|CA|-73.44|45.59|39|N|,Boulder|CO|US|-105.27|40.01|106|N|,Bountiful|UT|US|-111.88|40.89|43|N|,Bournemouth|england|GB|-1.88|50.72|163|W|,Bowie|MD|US|-76.73|38.94|58|N|bowie station;huntington city;huntington station,Bowling Green|KY|US|-86.44|36.99|63|N|,Bowling Green|OH|US|-83.65|41.37|31|N|,Bowmanville|ON|CA|-78.68|43.92|39|N|,Boyeros|havana|CU|-82.4|23.01|188|W|,Boyle Heights|CA|US|-118.21|34.03|92|N|,Boynton Beach|FL|US|-80.07|26.53|73|N|,Bozeman|MT|US|-111.04|45.68|43|N|,Bozhou|anhui|CN|115.77|33.88|1409|W|po cou,Bradenton|FL|US|-82.57|27.5|54|N|,Bradford|england|GB|-1.75|53.79|366|W|,Braga|braga|PT|-8.42|41.55|193|W|,Braganca|para|BR|-46.77|-1.05|132|W|,Braganca Paulista|sao paulo|BR|-46.54|-22.95|176|W|,Brahmanbaria|chittagong|BD|91.11|23.97|264|W|,Brahmapur|odisha|IN|84.79|19.31|356|W|,Braila|braila county|RO|27.97|45.27|154|W|berail;ibrail;brillago;drinago,Braintree|MA|US|-71|42.2|37|N|,Brakpan|gauteng|ZA|28.37|-26.24|305|W|,Brampton|ON|CA|-79.77|43.68|656|NW|,Brandon|FL|US|-82.29|27.94|103|N|,Brandon|MB|CA|-99.95|49.85|48|N|,Branford|CT|US|-72.82|41.28|29|N|,Brant|ON|CA|-80.35|43.13|34|N|,Brantford|ON|CA|-80.27|43.13|104|N|,Brasilandia|sao paulo|BR|-46.69|-23.45|243|W|,Brasilia|federal district|BR|-47.93|-15.78|2207|W|,Brasov|brasov county|RO|25.61|45.65|253|W|kronstadt;braszow,Bratislava|bratislava region|SK|17.11|48.15|423|W|bratyslawa;presbourg;pressburg,Bratsk|irkutsk oblast|RU|101.61|56.13|256|W|brack,Braunschweig|lower saxony|DE|10.53|52.27|244|W|brunswick;brunszwik,Brawley|CA|US|-115.53|32.98|25|N|,Brazzaville|brazzaville|CG|15.28|-4.27|1982|W|brazavil,Brea|CA|US|-117.9|33.92|41|N|,Breda|north brabant|NL|4.78|51.59|184|W|,Bremen|bremen|DE|8.81|53.08|546|W|brema;bremy;breme,Bremerton|WA|US|-122.63|47.57|39|N|,Brent|england|GB|-0.3|51.55|329|W|london borough of brent,Brentwood|NY|US|-73.25|40.78|60|N|,Brentwood|CA|US|-121.7|37.93|58|N|,Brentwood|TN|US|-86.78|36.03|41|N|,Brentwood Estates|TN|US|-86.78|36.03|31|N|,Brescia|lombardy|IT|10.21|45.54|200|W|,Brest|brest|BY|23.72|52.11|347|W|brest nad bugem;brest litovsk;brzesc;brest litowsk,Brest|brittany|FR|-4.49|48.39|144|W|,Briarwood|NY|US|-73.82|40.71|53|N|,Brick|NJ|US|-74.14|40.06|76|N|,Bridgeport|CT|US|-73.19|41.18|147|NW|,Bridgeport|IL|US|-87.65|41.84|33|N|,Bridgeton|NJ|US|-75.23|39.43|25|N|,Bridgewater|NJ|US|-74.65|40.6|44|N|,Brighouse-City Centre|BC|CA|-123.13|49.17|62|N|brighouse;richmond brighouse,Brighton|england|GB|-0.14|50.83|283|W|,Brighton|MA|US|-71.16|42.35|45|N|,Brighton|CO|US|-104.82|39.99|37|N|,Brighton|NY|US|-77.55|43.15|36|N|,Brighton Beach|NY|US|-73.96|40.58|31|N|,Brighton Park|IL|US|-87.7|41.82|44|N|,Brisbane|queensland|AU|153.03|-27.47|2780|W|brisbane city,Bristol|england|GB|-2.6|51.46|479|W|,Bristol|CT|US|-72.95|41.67|60|N|,Bristol|TN|US|-82.19|36.6|26|N|,Brno|south moravian|CZ|16.61|49.2|379|W|brunn,Brockton|MA|US|-71.02|42.08|95|N|,Broken Arrow|OK|US|-95.79|36.05|106|N|,Brookfield|WI|US|-88.11|43.06|38|N|,Brookhaven|GA|US|-84.34|33.86|51|N|north atlanta,Brooklin|ON|CA|-78.96|43.96|25|N|,Brookline|MA|US|-71.12|42.33|58|N|,Brooklyn|NY|US|-73.95|40.65|2736|NW|borough of brooklyn,Brooklyn Center|MN|US|-93.33|45.08|30|N|,Brooklyn Park|MN|US|-93.36|45.09|79|N|,Broomfield|CO|US|-105.09|39.92|65|N|,Brossard|QC|CA|-73.47|45.45|69|N|,Brownsville|TX|US|-97.5|25.9|186|NW|,Brownsville|NY|US|-73.92|40.66|74|N|,Brunswick|OH|US|-81.84|41.24|34|N|,Brusque|santa catarina|BR|-48.91|-27.1|155|W|,Brussels|brussels capital|BE|4.35|50.85|1019|W|brussel;bruxelles;bruksela;brusel;bruselas;bruxelas;bryssel;bruksel;citta di bruxelles;city of brussels;kota brusel,Bryan|TX|US|-96.37|30.67|82|N|,Bryansk|bryansk oblast|RU|34.32|53.27|427|W|brjansk;breansk;briansk;brianski,Bucaramanga|santander department|CO|-73.12|7.12|581|W|,Bucharest|bucharest|RO|26.11|44.43|1877|W|boekarest;bucarest;bucareste;bucuresti;bukarest;bukareszt;bukurest;bukres,Bucheon-si|gyeonggi do|KR|126.78|37.5|850|W|bucheon,Buckeye|AZ|US|-112.58|33.37|50|N|,Buda|budapest|HU|19.03|47.5|510|W|altofen;boeda;budin;ofen,Budapest|budapest|HU|19.04|47.5|1741|W|boedapest;budapesta;budapeste;budapeszt;ofen pest,Budapest XI. keruelet|budapest|HU|19.04|47.48|139|W|budapest xi kerulet;ujbuda,Budaun|uttar pradesh|IN|79.13|28.04|161|W|badaun,Budta|autonomous region in muslim mindanao|PH|124.44|7.2|1273|W|,Buea|south west|CM|9.24|4.15|140|W|,Buena Park|CA|US|-118|33.87|83|N|,Buenaventura|valle del cauca department|CO|-77|3.58|432|W|,Buenaventura Lakes|FL|US|-81.35|28.34|26|N|,Buenavista|MX15|MX|-99.17|19.61|216|NW|,Bueng Kum|bangkok|TH|100.67|13.79|145|W|ban bueng kum;ban cum,Buenos Aires|buenos aires f d|AR|-58.38|-34.61|2891|W|santa maria del buen ayre,Bueyuekcekmece|istanbul|TR|28.59|41.02|163|W|buyukcekmece,Buffalo|NY|US|-78.88|42.89|258|NW|bufalo,Buffalo Grove|IL|US|-87.96|42.15|41|N|,Buguma|rivers state|NG|6.86|4.74|135|W|,Bujumbura|bujumbura mairie|BI|29.36|-3.38|769|W|buyumbura;buzumbura,Bukan|west azerbaijan|IR|46.21|36.52|193|W|,Bukavu|south kivu|CD|28.84|-2.49|816|W|costermansstad;costermansville,Bukhara|bukhara|UZ|64.43|39.77|280|W|boukhara;bucara;buchara;buhara;bujara,Bukit Batok New Town||SG|103.76|1.36|158|W|,Bukit Jalil|kuala lumpur|MY|101.68|3.05|200|W|,Bukit Merah Estate||SG|103.82|1.28|151|W|,Bukit Mertajam|penang|MY|100.47|5.36|212|W|bukit mertarajam,Bukit Panjang New Town||SG|103.76|1.38|138|W|,Bukit Rahman Putra|selangor|MY|101.56|3.22|607|W|,Bukoba|kagera|TZ|31.81|-1.33|144|W|,Bulandshahr|uttar pradesh|IN|77.86|28.4|198|W|bulendsehr,Bulaon|central luzon|PH|120.66|15.08|131|W|,Bulawayo|bulawayo|ZW|28.58|-20.15|665|W|,Bullhead City|AZ|US|-114.57|35.15|39|N|,Bumba|mongala|CD|22.47|2.19|154|W|,Bunamwaya|central region|UG|32.56|0.25|413|W|,Bunda|mara|TZ|33.87|-2.02|182|W|,Bunia|ituri|CD|30.25|1.56|399|W|,Bunkyo|kanagawa|JP|139.42|35.53|240|W|bunkyo city,Buon Ma Thuot|dak lak|VN|108.04|12.67|434|W|,Burari|delhi|IN|77.2|28.76|146|W|,Buraydah|al qassim region|SA|43.97|26.33|745|W|buraidah;burajda;burayda,Burbank|CA|US|-118.31|34.18|105|N|,Burbank|IL|US|-87.78|41.73|29|N|,Burewala|punjab|PK|72.65|30.17|361|W|,Burgas|burgas|BG|27.47|42.51|210|W|boergas;bourgas;burgaz,Burgos|castille and leon|ES|-3.7|42.34|176|W|,Burhanpur|madhya pradesh|IN|76.23|21.31|210|W|,Burien|WA|US|-122.35|47.47|50|N|,Burke|VA|US|-77.27|38.79|41|N|,Burleson|TX|US|-97.32|32.54|43|N|,Burlingame|CA|US|-122.37|37.58|30|N|,Burlington|ON|CA|-79.84|43.39|186|NW|,Burlington|NC|US|-79.44|36.1|52|N|,Burlington|VT|US|-73.21|44.48|42|N|,Burlington|IA|US|-91.11|40.81|25|N|,Burnaby|BC|CA|-122.95|49.27|249|NW|,Burnley|england|GB|-2.23|53.8|149|W|,Burnsville|MN|US|-93.28|44.77|61|N|,Bursa|bursa province|TR|29.06|40.2|3101|W|,Burton|MI|US|-83.62|43|28|N|,Busan|busan|KR|129.03|35.1|3285|W|busan si;pusan,Bush|beni suweif|EG|31.13|29.15|136|W|,Bushehr|bushehr|IR|50.84|28.97|165|W|bandar bushehr;buschehr;bushire;busehr,Bushwick|NY|US|-73.92|40.69|112|N|,Business Bay|dubai|AE|55.27|25.19|191|W|,Bustleton|PA|US|-75.03|40.08|32|N|,Butembo|north kivu|CD|29.29|0.14|286|W|,Butte|MT|US|-112.53|46|34|N|,Butuan|caraga|PH|125.54|8.95|309|W|butuan city;city of butuan;kota butuan,Butwal|lumbini province|NP|83.45|27.69|195|W|,Bydgoszcz|kujawsko pomorskie|PL|18.01|53.12|330|W|bromberg;bydhost,Bytom|silesia|PL|18.93|50.35|189|W|beuthen,Ca Mau|ca mau|VN|105.15|9.18|226|W|,Caala|huambo|AO|15.56|-12.85|130|W|,Cabanatuan City|central luzon|PH|120.97|15.49|343|W|cabanatuan,Cabimas|zulia|VE|-71.45|10.4|351|W|,Cabinda|cabinda|AO|12.19|-5.56|550|W|,Cabo de Santo Agostinho|pernambuco|BR|-35.03|-8.29|216|W|,Cabo Frio|rio de janeiro|BR|-42.03|-22.89|238|W|,Cabo San Lucas|MX03|MX|-109.91|22.89|202|NW|,Cabot|AR|US|-92.02|34.97|25|N|,Cabuyao|calabarzon|PH|121.13|14.27|308|W|cabuyao city,Cachoeirinha|sao paulo|BR|-46.66|-23.45|143|W|,Cachoeirinha|rio grande do sul|BR|-51.09|-29.95|141|W|,Cachoeiro de Itapemirim|espirito santo|BR|-41.11|-20.85|198|W|,Cacuaco|luanda|AO|13.37|-8.78|146|W|,Cadereyta|MX19|MX|-99.98|25.58|67|N|,Cadereyta Jimenez|MX19|MX|-100|25.59|68|N|,Cagayan de Oro|northern mindanao|PH|124.65|8.48|741|W|,Cagliari|sardinia|IT|9.12|39.23|149|W|casteddu,Cai Lay|dong thap|VN|106.12|10.4|143|W|,Cainta|calabarzon|PH|121.12|14.58|283|W|,Cairns|queensland|AU|145.77|-16.92|153|W|,Cairo|cairo|EG|31.25|30.06|9606|W|el cairo;kairo;le caire;il cairo;kahire;kair;kahira,Cajamarca|cajamarca department|PE|-78.5|-7.16|201|W|,Calabar|cross river state|NG|8.33|4.96|540|W|,Calabozo|guarico|VE|-67.43|8.92|168|W|,Calama|antofagasta|CL|-68.92|-22.46|166|W|,Calamba|calabarzon|PH|121.17|14.21|575|W|calamba city;kota calamba,Caldwell|ID|US|-116.69|43.66|51|N|,Caledon|ON|CA|-79.99|43.87|76|N|,Calexico|CA|US|-115.5|32.68|40|N|,Calgary|AB|CA|-114.09|51.05|1306|NW|,Cali|valle del cauca department|CO|-76.52|3.43|2392|W|santiago de cali,Callao|callao|PE|-77.13|-12.05|1226|W|el callao,Caloocan|national capital region|PH|120.97|14.65|1712|W|caloocan city;lungsod ng caloocan,Calpulalpan|MX29|MX|-98.57|19.59|33|N|,Calumbo|bengo|AO|13.42|-9.15|652|W|,Calumet City|IL|US|-87.53|41.62|37|N|calumet,Cam Pha|quang ninh|VN|107.27|21.01|190|W|,Cam Pha Mines|quang ninh|VN|107.3|21.02|135|W|,Cam Ranh|khanh hoa|VN|109.16|11.92|146|W|,Camacari|bahia|BR|-38.32|-12.7|321|W|,Camagueey|camaguey|CU|-77.92|21.38|347|W|camaguey,Camama|luanda|AO|13.27|-8.94|667|W|,Camaragibe|pernambuco|BR|-34.98|-8.02|160|W|,Camarillo|CA|US|-119.04|34.22|67|N|,Camayenne|conakry|GN|-13.69|9.54|1871|W|,Cambridge|england|GB|0.12|52.2|145|W|,Cambridge|ON|CA|-80.31|43.36|129|N|,Cambridge|MA|US|-71.11|42.38|110|N|,Camden|NJ|US|-75.12|39.93|76|N|,Cameta|para|BR|-49.5|-2.24|134|W|,Campbell|CA|US|-121.95|37.29|41|N|,Campbell River|BC|CA|-125.24|50.02|33|N|,Campeche|MX04|MX|-90.52|19.84|220|NW|san francisco de campeche,Campina Grande|paraiba|BR|-35.88|-7.23|443|W|,Campinas|sao paulo|BR|-47.06|-22.91|1031|W|campinas e regiao;regiao de campinas,Campo Grande|mato grosso do sul|BR|-54.65|-20.44|906|W|,Campo Largo|parana|BR|-49.53|-25.46|144|W|,Campo Limpo|sao paulo|BR|-46.77|-23.64|236|W|,Campos dos Goytacazes|rio de janeiro|BR|-41.33|-21.75|483|W|,Can Giuoc|tay ninh|VN|106.67|10.61|152|W|,Can Tho|can tho city|VN|105.79|10.04|1507|W|,Canakkale|canakkale|TR|26.41|40.16|143|W|,Cananea|MX26|MX|-110.3|30.98|31|N|heroica ciudad de cananea,Canarsie|NY|US|-73.9|40.64|87|N|,Canberra|australian capital territory|AU|149.13|-35.28|367|W|camberra;kanberra,Cancun|MX23|MX|-86.85|21.17|888|NW|ciudad cancun,Candelaria|calabarzon|PH|121.42|13.93|137|W|,Cangaiba|sao paulo|BR|-46.52|-23.5|141|W|,Cangzhou|hebei|CN|116.85|38.31|527|W|cchang cou;thuong chau,Cankaya|ankara|TR|32.86|39.92|792|W|,Canoas|rio grande do sul|BR|-51.18|-29.92|328|W|,Canoga Park|CA|US|-118.6|34.2|60|N|,Canton|MI|US|-83.48|42.31|86|N|,Canton|OH|US|-81.38|40.8|71|N|,Canton|GA|US|-84.49|34.24|25|N|,Cantonment|FL|US|-87.34|30.61|26|N|,Canyon Country|CA|US|-118.47|34.42|59|N|,Cao Lanh|dong thap|VN|105.63|10.46|211|W|,Cap-Haitien|nord|HT|-72.2|19.76|134|W|cabo haitiano,Capao Redondo|sao paulo|BR|-46.78|-23.67|270|W|,Capas|central luzon|PH|120.59|15.33|162|W|,Cape Coast|central|GH|-1.25|5.11|212|W|,Cape Coral|FL|US|-81.95|26.56|175|NW|cabo coral,Cape Girardeau|MO|US|-89.52|37.31|39|N|cap girardeau,Cape Town|western cape|ZA|18.42|-33.93|4772|W|citta del capo;cidade do cabo;ciudad del cabo;el cabo;kaapstad;kapkaupunki;kapske mesto;kapstaden;kapstadt;kapsztad;le cap,Capiata|central department|PY|-57.45|-25.36|198|W|,Carabanchel|madrid|ES|-3.72|40.39|253|W|,Caracas|distrito federal|VE|-66.88|10.49|3000|W|karakas,Carapicuiba|sao paulo|BR|-46.84|-23.52|386|W|,Carbondale|IL|US|-89.22|37.73|26|N|,Cardenas|MX27|MX|-93.38|18|91|N|,Cardiff|wales|GB|-3.18|51.48|372|W|,Cariacica|espirito santo|BR|-40.42|-20.26|376|W|,Carletonville|gauteng|ZA|27.4|-26.36|182|W|,Carlsbad|CA|US|-117.35|33.16|114|N|,Carlsbad|NM|US|-104.23|32.42|28|N|,Carmel|IN|US|-86.12|39.98|88|N|,Carmichael|CA|US|-121.33|38.62|61|N|,Carney|MD|US|-76.52|39.39|29|N|,Carol City|FL|US|-80.25|25.94|63|N|,Carol Stream|IL|US|-88.13|41.91|40|N|,Carolina|carolina|PR|-65.96|18.38|170|W|caroline,Carpentersville|IL|US|-88.26|42.12|38|N|,Carrefour|ouest|HT|-72.4|18.53|511|W|,Carrollton|TX|US|-96.89|32.95|133|NW|,Carrollton|GA|US|-85.08|33.58|26|N|,Carrollwood|FL|US|-82.49|28.05|33|N|,Carrollwood Village|FL|US|-82.52|28.07|40|N|,Carson|CA|US|-118.28|33.83|93|N|,Carson City|NV|US|-119.77|39.16|58|N|kota carson,Cartagena|bolivar|CO|-75.49|10.4|914|W|carthagene;cartagena de indias;cartagena das indias;carthagene des indes,Cartagena|murcia|ES|-0.98|37.6|213|W|carthagene;kartagena,Cartago|valle del cauca department|CO|-75.91|4.75|134|W|,Cartierville|QC|CA|-73.7|45.53|34|N|,Caruaru|pernambuco|BR|-35.98|-8.28|402|W|,Carupano|sucre|VE|-63.25|10.67|167|W|,Cary|NC|US|-78.78|35.79|159|NW|,Casa Grande|AZ|US|-111.76|32.88|51|N|,Casablanca|casablanca settat|MA|-7.61|33.59|3665|W|dar ul beyda;kazablanka;white house,Casas Adobes|AZ|US|-111|32.32|66|N|,Cascavel|parana|BR|-53.46|-24.96|368|W|ular derik,Casper|WY|US|-106.31|42.87|60|N|,Casselberry|FL|US|-81.33|28.68|27|N|,Castanhal|para|BR|-47.93|-1.29|192|W|,Castello de la Plana|valencia|ES|-0.05|39.99|171|W|castellon;castellon de la plana,Castle Rock|CO|US|-104.86|39.37|55|N|,Castlewood|CO|US|-104.9|39.58|25|N|,Castro Valley|CA|US|-122.09|37.69|61|N|,Catacamas|olancho department|HN|-85.89|14.85|140|W|,Catalina Foothills|AZ|US|-110.92|32.3|50|N|,Catamarca|catamarca|AR|-65.79|-28.47|159|W|,Catania|sicily|IT|15.07|37.49|311|W|catane;katania,Catemaco|MX30|MX|-95.11|18.42|27|N|,Cathedral City|CA|US|-116.47|33.78|53|N|,Catonsville|MD|US|-76.73|39.27|41|N|,Cau Giay|hanoi|VN|105.8|21.03|292|W|,Caucaia|ceara|BR|-38.65|-3.74|378|W|,Caxias|maranhao|BR|-43.36|-4.86|163|W|,Caxias do Sul|rio grande do sul|BR|-51.18|-29.17|479|W|,Cazenga|luanda|AO|13.28|-8.84|394|W|,Cebu City|central visayas|PH|123.89|10.32|965|W|cebu;ciudad de cebu;cebu sehri;cidade de cebu;city of cebu;kota cebu,Cedar City|UT|US|-113.06|37.68|30|N|,Cedar Falls|IA|US|-92.45|42.53|41|N|,Cedar Hill|TX|US|-96.96|32.59|48|N|,Cedar Park|TX|US|-97.82|30.51|65|N|,Cedar Rapids|IA|US|-91.64|42.01|130|NW|,Ceilandia|federal district|BR|-48.13|-15.81|287|W|,Celaya|MX11|MX|-100.81|20.52|340|NW|,Celina|TX|US|-96.78|33.32|64|N|,Centennial|CO|US|-104.88|39.58|109|N|,Center City|PA|US|-75.16|39.95|57|N|centro de filadelfia,Centereach|NY|US|-73.1|40.86|31|N|,Central|LA|US|-91.04|30.55|28|N|,Central 14th Street / Spring Road|DC|US|-77.03|38.94|25|N|,Central City|AZ|US|-112.06|33.44|58|N|,Central Coast|new south wales|AU|151.37|-33.43|346|W|costa central,Central Islip|NY|US|-73.2|40.79|34|N|,Centralniy|st petersburg|RU|30.36|59.93|214|W|,Centre City|AB|CA|-114.07|51.05|41|N|,Centretown|ON|CA|-75.7|45.42|25|N|,Centreville|VA|US|-77.43|38.84|71|N|,Centro Familiar la Soledad|MX11|MX|-101.75|21.14|32|N|,Centro Habana|havana|CU|-82.37|23.13|158|W|,Centurion|gauteng|ZA|28.19|-25.86|236|W|,Ceres|CA|US|-120.96|37.59|47|N|,Cergy-Pontoise|ile de france|FR|2.08|49.04|183|W|,Cerritos|CA|US|-118.06|33.86|49|N|,Cerro|havana|CU|-82.38|23.11|132|W|,Ch'ongdan-up|south hwanghae|KP|125.94|37.97|142|W|,Chak Jhumra|punjab|PK|73.18|31.57|385|W|,Chakwama|jigawa state|NG|9.66|11.56|200|W|,Chalco|MX15|MX|-98.9|19.26|168|NW|,Chaman|balochistan|PK|66.45|30.92|130|W|caman,Chamartin|madrid|ES|-3.68|40.46|140|W|,Chamberi|madrid|ES|-3.7|40.43|145|W|,Chamblee|GA|US|-84.3|33.89|28|N|,Champaign|IL|US|-88.24|40.12|86|N|,Champoton|MX04|MX|-90.72|19.34|30|N|,Chanda|maharashtra|IN|79.3|19.95|328|W|chandrapur;candrapur,Chandannagar|west bengal|IN|88.37|22.86|180|W|chandernagor;chandernagore;candarnagar,Chandigarh|chandigarh|IN|76.79|30.74|970|W|czandigarh;candigarh,Chandler|AZ|US|-111.84|33.31|260|NW|,Chandpur|chittagong|BD|90.65|23.23|203|W|,Chang-hua|taiwan|TW|120.56|24.07|226|W|,Changam-ch'on|south hamgyong|KP|128.78|40.61|207|W|,Changchun|jilin|CN|125.32|43.88|4714|W|tschangtung;cangcun;cchang cchun,Changde|hunan|CN|111.7|29.03|1457|W|cchang te;changteh,Changhua|taiwan|TW|120.55|24.07|226|W|,Changji|xinjiang|CN|87.3|44.01|198|W|,Changle|shandong|CN|118.83|36.71|259|W|,Changning|shanghai|CN|121.42|31.22|694|W|,Changsha|hunan|CN|112.97|28.2|3093|W|cchang sa,Changsha|guangdong|CN|112.68|22.38|688|W|,Changshu|jiangsu|CN|120.74|31.65|1677|W|,Changwon|gyeongsangnam do|KR|128.68|35.23|1025|W|ch angwon;cchangwon,Changyi|shandong|CN|119.39|36.85|302|W|,Changyuan|chongqing|CN|105.59|29.4|186|W|,Changzheng|shanghai|CN|121.37|31.24|229|W|,Changzhi|shanxi|CN|113.11|36.18|1214|W|cchang c,Changzhou|jiangsu|CN|119.95|31.77|3290|W|cchang cou,Chanhassen|MN|US|-93.53|44.86|25|N|,Channelview|TX|US|-95.11|29.78|38|N|,Chaohu|anhui|CN|117.87|31.6|138|W|,Chaoyang|liaoning|CN|120.46|41.57|410|W|,Chaozhou|guangdong|CN|116.62|23.65|1750|W|cchao cou,Chapeco|santa catarina|BR|-52.62|-27.1|282|W|,Chapel Hill|NC|US|-79.06|35.91|59|N|,Chapra|bihar|IN|84.75|25.78|202|W|,Charleroi|wallonia|BE|4.44|50.41|200|W|,Charlesbourg|QC|CA|-71.31|46.9|82|N|,Charleston|SC|US|-79.93|32.78|132|NW|,Charleston|WV|US|-81.63|38.35|46|N|,Charlotte|NC|US|-80.84|35.23|911|NW|,Charlottesville|VA|US|-78.48|38.03|46|N|,Charlottetown|PE|CA|-63.13|46.23|38|N|,Chas|jharkhand|IN|86.17|23.64|141|W|,Chaska|MN|US|-93.6|44.79|25|N|,Chateauguay|QC|CA|-73.75|45.38|42|N|,Chatham|ON|CA|-82.18|42.41|43|N|,Chatham|IL|US|-87.61|41.74|31|N|,Chatsworth|CA|US|-118.6|34.26|41|N|,Chattanooga|TN|US|-85.31|35.05|181|NW|,Chattogram|chittagong|BD|91.83|22.34|3920|W|chittagong;cottogram;cattagram,Chatuchak|bangkok|TH|100.56|13.83|160|W|,Cheboksary|chuvash republic|RU|47.25|56.13|492|W|ceboksari;czeboksary;tcheboksary;tjeboksary;tscheboksary;tsjeboksary;tseboksary;ceboksary;supaskar,Cheektowaga|NY|US|-78.75|42.9|75|N|,Chelmsford|MA|US|-71.37|42.6|33|N|,Chelsea|MA|US|-71.03|42.39|39|N|,Chelyabinsk|chelyabinsk|RU|61.43|55.16|1202|W|tsjeljabinsk;celeabinsk;celiabinsc;cheliabinsk;czelabinsk;tcheliabinsk;tjeljabinsk;tscheljabinsk;tseljabinsk;celyabinsk;celjabinsk,Chemnitz|saxony|DE|12.93|50.84|247|W|saska kamenice,Chengde|hebei|CN|117.96|40.95|449|W|ccheng te,Chengdu|sichuan|CN|104.07|30.67|13568|W|thanh do;cengdu;ccheng tu,Chengguan Qu|tibet|CN|91.04|29.64|478|W|,Chenghua|guangdong|CN|116.77|23.46|152|W|,Chengzhong|hubei|CN|113.55|30.94|265|W|,Chennai|tamil nadu|IN|80.28|13.09|4681|W|cennaj;cennai;madras,Chenzhou|hunan|CN|113.03|25.8|822|W|,Cheonan|chungcheongnam do|KR|127.15|36.81|658|W|cchonan,Cheongju-si|north chungcheong|KR|127.49|36.64|852|W|cheongju,Cheras|selangor|MY|101.73|3.11|135|W|,Cherepovets|vologda oblast|RU|37.9|59.13|315|W|cerepovet;czerepowiec;tcherepovets;tjerepovets;tscherepowez;tsjerepovets;tserepovets;cerepovets;cerepovec,Cherkasy|cherkasy|UA|32.06|49.44|269|W|cerkasi;czerkasy;tcherkassy;tcherkassi;tjerkasy;tscherkassy;tsjerkasy;tserkasy;cerkassi;cerkasy;cherkassy,Chernihiv|chernihiv oblast|UA|31.29|51.51|282|W|cernigau;chernigov;czernihow;tchernihiv;tjernihiv;tschernihiw;tsjernihiv;tsernihiv;cernigiv;cernihiv;cernihov;cernigovia,Chernivtsi|chernivtsi|UA|25.93|48.29|264|W|cernivci;cernovizza;cernauti;czerniowce;czernowitz;tchernivtsi;tjernivtsi;tschernowitz;tsjernivtsi;tsernivtsi;cernivtsi;cernovice,Cherry Hill|NJ|US|-75.03|39.93|70|N|,Chertanovo Yuzhnoye|moscow|RU|37.6|55.59|142|W|,Chesapeake|VA|US|-76.27|36.82|235|NW|,Cheshire|CT|US|-72.9|41.5|29|N|,Chester|PA|US|-75.36|39.85|34|N|,Chesterfield|MO|US|-90.58|38.66|47|N|,Chestermere|AB|CA|-113.82|51.03|32|N|,Chetumal|MX23|MX|-88.3|18.52|169|NW|,Cheyenne|WY|US|-104.82|41.14|65|N|,Chhatarpur|madhya pradesh|IN|79.59|24.92|142|W|chhattarpur,Chhindwara|madhya pradesh|IN|78.94|22.06|175|W|,Chi Linh|hai phong|VN|106.32|21.07|220|W|,Chiapa de Corzo|MX05|MX|-93.01|16.71|45|N|,Chiayi City|taiwan|TW|120.45|23.48|263|W|jiayi shi,Chiba|chiba|JP|140.12|35.6|979|W|ciba,Chicago|IL|US|-87.65|41.85|2664|NW|sikago,Chicago Heights|IL|US|-87.64|41.51|30|N|,Chicago Lawn|IL|US|-87.7|41.78|55|N|,Chicago Loop|IL|US|-87.63|41.88|33|N|loop,Chichicastenango|quiche|GT|-91.11|14.94|141|W|,Chiclayo|lambayeque|PE|-79.85|-6.77|609|W|,Chico|CA|US|-121.84|39.73|121|N|,Chicoloapan|MX15|MX|-98.9|19.42|172|NW|san vicente chicoloapan,Chicopee|MA|US|-72.61|42.15|56|N|,Chicoutimi|QC|CA|-71.06|48.42|69|N|,Chifeng|inner mongolia|CN|118.96|42.27|346|W|tschifong;xich phong;cch feng,Chigasaki|kanagawa|JP|139.4|35.34|242|W|,Chihuahua|MX06|MX|-106.09|28.64|925|NW|chihuahua city;chihuahua by,Chilanzar|tashkent|UZ|69.18|41.28|260|W|,Chilapa de Alvarez|MX12|MX|-99.17|17.6|31|N|,Chillan|nuble|CL|-72.1|-36.61|150|W|,Chilliwack|BC|CA|-121.95|49.17|101|N|,Chilliwack-Downtown|BC|CA|-121.96|49.16|31|N|,Chillum|MD|US|-76.99|38.96|33|N|,Chilpancingo|MX12|MX|-99.5|17.55|187|NW|chilpancingo de los bravo,Chimbote|ancash|PE|-78.59|-9.08|316|W|,Chimoio|manica|MZ|33.48|-19.12|422|W|,Chinatown|CA|US|-122.41|37.8|100|N|,Chinatown|NY|US|-74|40.72|90|N|,Chincha Alta|ica|PE|-76.13|-13.41|153|W|,Chingola|copperbelt|ZM|27.88|-12.53|256|W|,Chiniot|punjab|PK|72.98|31.72|318|W|,Chinju|gyeongsangnam do|KR|128.08|35.19|307|W|jinju,Chino|CA|US|-117.69|34.01|85|N|,Chino Hills|CA|US|-117.76|33.99|78|N|,Chipata|eastern province|ZM|32.65|-13.63|327|W|,Chirchiq|tashkent region|UZ|69.58|41.47|162|W|circik;tchirtchik;tjirtjik;circig,Chishtian|punjab|PK|72.86|29.8|149|W|,Chisinau|chisinau municipality|MD|28.86|47.01|635|W|kishinev;kiszyniow;kisinev,Chita|zabaykalskiy transbaikal kray|RU|113.49|52.04|349|W|tsjita;tchita;tschita;tsita;cita,Chitato|luanda norte|AO|20.73|-7.3|246|W|,Chitradurga|karnataka|IN|76.4|14.22|145|W|,Chittoor|andhra pradesh|IN|79.1|13.21|160|W|chittur,Chitungwiza|harare|ZW|31.08|-18.01|371|W|,Chizhou|anhui|CN|117.48|30.66|615|W|,Chlef|chlef|DZ|1.33|36.17|178|W|ech cheliff;szalif;asch schalif;ash shalif;al asnam,Cho Lon|ho chi minh city hcmc|VN|106.65|10.75|561|W|,Choa Chu Kang New Town||SG|103.75|1.38|187|W|,Chofu|tokyo|JP|139.55|35.66|242|W|,Choloma|cortes department|HN|-87.95|15.61|139|W|,Cholula|MX21|MX|-98.3|19.06|292|NW|cholula de rivadavia;san pedro cholula,Chom Thong|bangkok|TH|100.48|13.68|158|W|,Chomedey|QC|CA|-73.75|45.53|94|N|,Chon Buri|chon buri|TH|100.98|13.36|219|W|,Chongjin|north hamgyong|KP|129.78|41.8|327|W|ch ongjin;cchongdzin,Chongming||CN|121.7|31.62|637|W|,Chongqing|chongqing|CN|106.56|29.56|7457|W|trung khanh;tsjoengking;congcing;cchung cching,Chongzuo|guangxi|CN|107.37|22.38|384|W|,Christchurch|canterbury|NZ|172.63|-43.53|419|W|,Chula Vista|CA|US|-117.08|32.64|265|NW|,Chuncheon|gangwon do|KR|127.73|37.87|284|W|cunceon;cchuncchon,Chungju|north chungcheong|KR|127.93|36.98|209|W|cungcu;cchungdzu,Chunian|punjab|PK|73.98|30.97|634|W|,Chuo|tokyo|JP|139.78|35.67|169|W|chuo city,Church-Yonge Corridor|ON|CA|-79.38|43.66|31|N|,Chuxiong|yunnan|CN|101.55|25.04|555|W|,Chuzhou|anhui|CN|118.3|32.32|782|W|cchu cou,Ciampea|west java|ID|106.7|-6.55|207|W|,Cianjur|west java|ID|107.14|-6.82|174|W|kabupaten de cianjur,Cibinong|west java|ID|106.85|-6.48|363|W|,Cibolo|TX|US|-98.23|29.56|33|N|,Cicero|IL|US|-87.75|41.85|83|N|,Cicero|NY|US|-76.12|43.18|31|N|,Cidade Ademar|sao paulo|BR|-46.66|-23.67|249|W|,Cidade Dutra|sao paulo|BR|-46.7|-23.73|182|W|,Cidade Lider|sao paulo|BR|-46.49|-23.56|136|W|,Cidade Tiradentes|sao paulo|BR|-46.4|-23.58|192|W|,Ciego de Avila|ciego de avila province|CU|-78.76|21.84|142|W|,Cienfuegos|cienfuegos province|CU|-80.45|22.15|186|W|,Cigli|izmir province|TR|27.07|38.5|214|W|,Cihuatlan|MX14|MX|-104.57|19.24|40|N|,Cikupa|west java|ID|106.51|-6.24|174|W|,Cilacap|central java|ID|109.01|-7.73|256|W|,Cilegon|banten|ID|106.05|-6.01|470|W|,Cileungsir|west java|ID|106.96|-6.39|289|W|,Cimahi|west java|ID|107.54|-6.87|581|W|kota cimahi,Cincinnati|OH|US|-84.51|39.13|311|NW|,Cintalapa de Figueroa|MX05|MX|-93.72|16.68|42|N|,Ciputat|west java|ID|106.7|-6.24|207|W|,Circoiscrizione II|piedmont|IT|7.64|45.05|141|W|,Circoiscrizione III|piedmont|IT|7.63|45.06|130|W|,Circoiscrizione VIII|piedmont|IT|7.67|45.04|134|W|,Cirebon|west java|ID|108.56|-6.71|344|W|kota cirebon,Citeureup|west java|ID|106.88|-6.49|214|W|,Citrus Heights|CA|US|-121.28|38.71|87|N|,City of Milford (balance)|CT|US|-73.06|41.22|51|N|,City of Sammamish|WA|US|-122.04|47.6|45|N|,City of Westminster|england|GB|-0.14|51.5|247|W|,Ciudad Acuna|MX07|MX|-100.95|29.32|216|NW|acuna,Ciudad Altamirano|MX12|MX|-100.67|18.36|25|N|,Ciudad Apodaca|MX19|MX|-100.19|25.78|467|NW|apodaca,Ciudad Benito Juarez|MX19|MX|-100.09|25.65|308|NW|,Ciudad Bolivar|bolivar|VE|-63.55|8.12|412|W|,Ciudad Camilo Cienfuegos|havana|CU|-82.33|23.16|178|W|,Ciudad Constitucion|MX03|MX|-111.66|25.03|40|N|,Ciudad de Allende|MX19|MX|-100.02|25.28|26|N|allende,Ciudad de Huajuapan de Leon|MX20|MX|-97.78|17.81|53|N|huajuapan;huajuapan de leon;huajuapam;huajuapam de leon,Ciudad de Villa de Alvarez|MX08|MX|-103.74|19.27|117|N|,Ciudad del Carmen|MX04|MX|-91.83|18.65|191|NW|cd carmen;cd del carmen;carmen,Ciudad del Este|alto parana department|PY|-54.65|-25.5|301|W|kota del este,Ciudad Delicias|MX06|MX|-105.47|28.19|148|NW|akitakata;delicias,Ciudad Fernandez|MX24|MX|-100.01|21.94|32|N|,Ciudad General Escobedo|MX19|MX|-100.32|25.8|454|NW|gral escobedo;general escobedo,Ciudad Guayana|bolivar|VE|-62.64|8.35|978|W|cidade guaiana;guayana,Ciudad Guzman|MX14|MX|-103.46|19.7|111|N|cd guzman,Ciudad Hidalgo|MX16|MX|-100.56|19.69|60|N|,Ciudad Juarez|MX06|MX|-106.46|31.72|1512|NW|juarez,Ciudad Lazaro Cardenas|MX16|MX|-102.2|17.96|196|NW|lazaro cardenas,Ciudad Lineal|madrid|ES|-3.65|40.45|228|W|,Ciudad Lopez Mateos|MX15|MX|-99.26|19.56|489|NW|adolfo lopez mateos,Ciudad Madero|MX28|MX|-97.84|22.25|197|NW|cd madero,Ciudad Mante|MX28|MX|-98.97|22.74|84|N|,Ciudad Melchor Muzquiz|MX07|MX|-101.52|27.88|35|N|,Ciudad Mendoza|MX30|MX|-97.18|18.81|35|N|,Ciudad Nezahualcoyotl|MX15|MX|-99.01|19.4|1077|NW|cd neza;cd nezahualcoyotl;ciudad neza;neza;nezahualcoyotl,Ciudad Obregon|MX26|MX|-109.94|27.49|329|NW|cd obregon,Ciudad Ojeda|zulia|VE|-71.31|10.2|240|W|,Ciudad Rio Bravo|MX28|MX|-98.09|25.99|95|N|,Ciudad Sabinas Hidalgo|MX19|MX|-100.18|26.5|33|N|,Ciudad Sahagun|MX13|MX|-98.57|19.78|28|N|,Ciudad Valles|MX24|MX|-99.01|22|124|N|,Ciudad Victoria|MX28|MX|-99.14|23.74|332|NW|cd victoria;victoria,Cixi|zhejiang|CN|121.25|30.18|1457|W|,Cizre|sirnak|TR|42.18|37.33|134|W|,Clairlea-Birchmount|ON|CA|-79.28|43.71|26|N|,Claremont|CA|US|-117.72|34.1|36|N|,Clarksville|TN|US|-87.36|36.53|166|NW|,Clay|NY|US|-76.17|43.19|58|N|,Clearfield|UT|US|-112.03|41.11|30|N|,Clearwater|FL|US|-82.8|27.97|117|N|,Cleburne|TX|US|-97.39|32.35|30|N|,Clermont|FL|US|-81.77|28.55|32|N|,Clermont-Ferrand|rhone alpes|FR|3.09|45.78|147|W|,Cleveland|OH|US|-81.7|41.5|365|NW|,Cleveland|TN|US|-84.88|35.16|43|N|,Cleveland Heights|OH|US|-81.56|41.52|44|N|,Clifton|NJ|US|-74.16|40.86|86|N|,Clifton Park|NY|US|-73.77|42.87|36|N|,Clinton|MD|US|-76.9|38.77|35|N|robeystown;surrats;surratsville;surratts;surrattsville,Clinton|IA|US|-90.19|41.84|26|N|,Clinton|MS|US|-90.32|32.34|25|N|,Clinton Township|MI|US|-82.92|42.59|99|N|,Cloverdale|BC|CA|-122.73|49.11|73|N|,Clovis|CA|US|-119.7|36.83|104|N|,Clovis|NM|US|-103.21|34.4|39|N|,Cluj-Napoca|cluj county|RO|23.6|46.77|286|W|klausenburg;clausenburg;kalosvar;kluz napoka;kluz;kolozsvar;clausemburgo,Coacalco|MX15|MX|-99.11|19.63|277|NW|coacalco de berriozaval;san francisco coacalco,Coachella|CA|US|-116.17|33.68|44|N|,Coatepec|MX30|MX|-96.96|19.45|53|N|,Coatzacoalcos|MX30|MX|-94.44|18.15|310|NW|puerto mexico;port of mexico,Coatzintla|MX30|MX|-97.47|20.49|34|N|,Coban|alta verapaz|GT|-90.37|15.47|212|W|,Cobbs Creek|PA|US|-75.24|39.95|33|N|,Cochabamba|cochabamba|BO|-66.16|-17.38|841|W|,Cochrane|AB|CA|-114.47|51.18|32|N|,Coconut Creek|FL|US|-80.18|26.25|59|N|,Cocula|MX14|MX|-103.82|20.37|29|N|,Coeur d'Alene|ID|US|-116.78|47.68|49|N|,Coimbatore|tamil nadu|IN|76.97|11.01|2136|W|koimbatur,Coimbra|coimbra|PT|-8.42|40.21|140|W|,Colchester|england|GB|0.9|51.89|130|W|,Colima|MX08|MX|-103.71|19.24|146|NW|,Colina|santiago metropolitan|CL|-70.67|-33.2|146|W|,College Park|MD|US|-76.94|38.98|32|N|,College Point|NY|US|-73.85|40.79|27|N|,College Station|TX|US|-96.33|30.63|107|N|,Colleyville|TX|US|-97.16|32.88|25|N|,Collierville|TN|US|-89.66|35.04|48|N|,Collinwood|OH|US|-81.57|41.56|34|N|,Colombo|western province|LK|79.85|6.94|648|W|kolombo,Colombo|parana|BR|-49.22|-25.29|232|W|,Colonia del Sol|MX03|MX|-109.93|22.91|48|N|,Colonia del Valle|MX09|MX|-99.16|19.39|250|NW|col del valle;del valle,Colonia Lindavista|MX15|MX|-99.12|19.49|100|N|col lindavista;lindavista,Colonia Nativitas|MX09|MX|-99.14|19.38|60|N|col nativitas;nativitas,Colorado Springs|CO|US|-104.82|38.83|456|NW|colorado spgs,Colton|CA|US|-117.31|34.07|54|N|,Columbia|SC|US|-81.03|34|142|NW|,Columbia|MO|US|-92.33|38.95|129|N|,Columbia|MD|US|-76.84|39.24|99|N|,Columbia|TN|US|-87.04|35.62|36|N|,Columbia Heights|DC|US|-77.03|38.93|38|N|meridian hill;meridian hill heights,Columbus|OH|US|-83|39.96|913|NW|,Columbus|GA|US|-84.99|32.46|206|NW|,Columbus|IN|US|-85.92|39.2|46|N|,Comalcalco|MX27|MX|-93.22|18.26|41|N|,Comilla|chittagong|BD|91.19|23.46|634|W|kumilla,Comitan|MX05|MX|-92.14|16.24|166|NW|comitan de dominguez,Commack|NY|US|-73.29|40.84|36|N|,Commerce City|CO|US|-104.93|39.81|53|N|,Commonwealth|national capital region|PH|121.08|14.7|215|W|,Comodoro Rivadavia|chubut|AR|-67.49|-45.86|140|W|,Compton|CA|US|-118.22|33.9|98|N|,Conakry|conakry|GN|-13.68|9.54|1928|W|conacri;konakry,Concepcion|biobio|CL|-73.05|-36.83|223|W|konsepsi,Concepcion|central luzon|PH|120.66|15.33|178|W|,Conception Bay South|NL|CA|-53|47.5|27|N|,Concord|CA|US|-122.03|37.98|128|N|,Concord|NC|US|-80.58|35.41|87|N|,Concord|NH|US|-71.54|43.21|43|N|,Concordia|entre rios|AR|-58.02|-31.39|145|W|,Coney Island|NY|US|-73.99|40.58|60|N|coney adasi,Confederation|SK|CA|-106.7|52.14|70|N|,Conroe|TX|US|-95.46|30.31|68|N|,Conselheiro Lafaiete|minas gerais|BR|-43.79|-20.66|138|W|,Constanta|constanta county|RO|28.63|44.18|317|W|konstanza;constanza;constanca;costanza;konstanca;kostence;kustence,Constantine|constantine|DZ|6.61|36.37|448|W|constantina,Contagem|minas gerais|BR|-44.05|-19.93|627|W|,Contla|MX29|MX|-98.17|19.33|27|N|,Conway|AR|US|-92.44|35.09|64|N|,Cookeville|TN|US|-85.5|36.16|32|N|,Coon Rapids|MN|US|-93.29|45.12|62|N|,Cooper City|FL|US|-80.27|26.06|35|N|,Copenhagen|capital region|DK|12.57|55.68|1153|W|copenaghen;copenhaga;copenhague;kodan;kopenhag;kopenhaga;kopenhagen;kopenhamn;koopenhamina;kobenhavn,Coppell|TX|US|-97.02|32.95|41|N|,Copperas Cove|TX|US|-97.9|31.12|33|N|,Coquimbo|coquimbo region|CL|-71.34|-29.95|161|W|,Coquitlam|BC|CA|-122.78|49.28|148|NW|,Coquitlam West|BC|CA|-122.88|49.26|25|N|,Coral Gables|FL|US|-80.27|25.72|51|N|,Coral Springs|FL|US|-80.27|26.27|129|N|,Coram|NY|US|-73|40.87|39|N|,Cordoba|cordoba|AR|-64.19|-31.41|2106|W|ciudad de cordoba;cordova,Cordoba|andalusia|ES|-4.77|37.89|325|W|cordoue;cordova;kordoba,Cordoba|MX30|MX|-96.93|18.88|204|NW|,Cordova|TN|US|-89.78|35.16|68|N|,Core Neighbourhoods|SK|CA|-106.67|52.13|36|N|,Cork|munster|IE|-8.47|51.9|224|W|cork city,Corlu|tekirdag|TR|27.8|41.16|202|W|,Cornelius|NC|US|-80.86|35.49|28|N|,Cornwall|ON|CA|-74.73|45.02|48|N|,Coro|falcon|VE|-69.68|11.41|246|W|,Corona|CA|US|-117.57|33.88|164|NW|,Corona|NY|US|-73.86|40.75|109|N|,Corpus Christi|TX|US|-97.4|27.8|316|NW|,Corrientes|corrientes|AR|-58.83|-27.47|346|W|ciudad de corrientes,Cortazar|MX11|MX|-100.96|20.48|61|N|,Corum|corum|TR|34.95|40.55|269|W|,Corvallis|OR|US|-123.26|44.56|55|N|,Cosamaloapan|MX30|MX|-95.8|18.37|30|N|,Costa Mesa|CA|US|-117.92|33.64|113|N|,Cotabato|autonomous region in muslim mindanao|PH|124.25|7.22|383|W|cotabato city,Cote-Saint-Luc|QC|CA|-73.67|45.47|31|N|,Cotia|sao paulo|BR|-46.92|-23.6|253|W|,Cotonou|littoral|BJ|2.42|6.37|679|W|cotonu;kotonu,Cottage Grove|MN|US|-92.94|44.83|35|N|,Cottonwood Heights|UT|US|-111.81|40.62|34|N|,Council Bluffs|IA|US|-95.86|41.26|62|N|co bluffs,Country Club|FL|US|-80.32|25.95|47|N|,Courtenay|BC|CA|-124.99|49.69|28|N|,Coventry|england|GB|-1.51|52.41|345|W|,Coventry|RI|US|-71.68|41.7|35|N|,Covina|CA|US|-117.89|34.09|48|N|,Covington|KY|US|-84.51|39.08|40|N|,Cox's Bazar|chittagong|BD|92.01|21.44|253|W|,Coyoacan|MX09|MX|-99.16|19.35|614|NW|,Coyotepec|MX15|MX|-99.21|19.78|35|N|,Coyula|MX14|MX|-103.23|20.66|29|N|,Cozumel|MX23|MX|-86.94|20.5|77|N|san miguel de cozumel,Craiova|dolj|RO|23.8|44.32|234|W|krajowa,Cranberry Township|PA|US|-80.11|40.68|28|N|,Cranston|RI|US|-71.44|41.78|81|N|,Crato|ceara|BR|-39.41|-7.23|139|W|,Criciuma|santa catarina|BR|-49.37|-28.68|227|W|,Crofton|MD|US|-76.69|39|27|N|,Croix-des-Bouquets|ouest|HT|-72.23|18.58|229|W|,Crown Point|IN|US|-87.37|41.42|28|N|,Croydon|england|GB|-0.1|51.38|173|W|croydon grants,Crystal Lake|IL|US|-88.32|42.24|40|N|,Cua|miranda|VE|-66.88|10.16|182|W|,Cuauhtemoc|MX09|MX|-99.15|19.45|531|NW|,Cuauhtemoc|MX06|MX|-106.87|28.41|168|NW|,Cuautitlan|MX15|MX|-99.18|19.67|178|NW|,Cuautitlan Izcalli|MX15|MX|-99.22|19.64|555|NW|izcalli,Cuautla|MX17|MX|-98.94|18.81|157|NW|,Cuautlancingo|MX21|MX|-98.27|19.09|25|N|san juan b cuautlancingo,Cucuta|norte de santander department|CO|-72.5|7.91|777|W|kukuta,Cuddalore|tamil nadu|IN|79.77|11.76|173|W|gondelour,Cuenca|azuay|EC|-79|-2.9|636|W|,Cuernavaca|MX17|MX|-99.23|18.93|338|NW|,Cuiaba|mato grosso|BR|-56.1|-15.6|618|W|culaba,Cuito|bie|AO|16.93|-12.38|355|W|kuito,Culiacan|MX25|MX|-107.39|24.8|808|NW|,Culver City|CA|US|-118.4|34.02|39|N|,Cumana|sucre|VE|-64.18|10.46|405|W|,Cumberland|RI|US|-71.43|41.97|34|N|,Cupertino|CA|US|-122.03|37.32|60|N|,Curitiba|parana|BR|-49.27|-25.43|1948|W|kurytyba,Curug|banten|ID|106.56|-6.27|191|W|,Cusco|cuzco department|PE|-71.97|-13.53|428|W|ciudad del cuzco;cuzco,Cutler Bay|FL|US|-80.34|25.58|45|N|cutler ridge,Cutler Ridge|FL|US|-80.35|25.58|26|N|,Cuttack|odisha|IN|85.88|20.46|610|W|,Cuyahoga Falls|OH|US|-81.48|41.13|49|N|,Cypress|TX|US|-95.7|29.97|200|NW|,Cypress|CA|US|-118.04|33.82|49|N|,Cypress Hills|NY|US|-73.89|40.68|54|N|,Czestochowa|silesia|PL|19.12|50.8|248|W|czenstochau;censtochova;tschenstochau,Da Lat|lam dong|VN|108.44|11.95|258|W|,Da Nang|da nang city|VN|108.22|16.07|1276|W|danang;thanh thai phien,Dabou|lagunes district|CI|-4.38|5.33|138|W|,Dachang|shanghai|CN|121.42|31.31|371|W|,Dadu|sindh|PK|67.78|26.73|201|W|,Daegu|daegu|KR|128.59|35.87|2365|W|daegu si;taegu;tegu,Daejeon|daejeon|KR|127.38|36.35|1441|W|daejeon si;taejon,Dagupan|ilocos|PH|120.33|16.04|171|W|kota dagupan,Dajal|punjab|PK|70.38|29.56|200|W|,Dakar|dakar|SN|-17.44|14.69|2646|W|dacar,Dakota Ridge|CO|US|-105.14|39.62|33|N|,Dale City|VA|US|-77.31|38.64|65|N|,Dali|yunnan|CN|100.21|25.58|235|W|,Dalian|liaoning|CN|121.6|38.91|4913|W|luta;luda,Daliang|guangdong|CN|113.25|22.84|210|W|shunde,Dallas|TX|US|-96.81|32.78|1326|NW|,Daloa|sassandra marahoue|CI|-6.45|6.88|421|W|,Dalton|GA|US|-84.97|34.77|33|N|,Dalupura|delhi|IN|77.32|28.61|154|W|,Daly City|CA|US|-122.46|37.71|106|N|,Damanhur|beheira|EG|30.47|31.03|318|W|,Damascus|damascus governorate|SY|36.29|33.51|1569|W|damasco;damas;damasc;damaskos;damaskus;damaszek;damasek;sam,Damietta|damietta|EG|31.81|31.42|305|W|damieta;damiette;dimyat;dimyath,Dammam|eastern province|SA|50.1|26.43|1252|W|ad dammam;ed dammam,Damoh|madhya pradesh|IN|79.44|23.83|139|W|,Dana Point|CA|US|-117.7|33.47|34|N|,Danbury|CT|US|-73.45|41.39|84|N|,Dandong|liaoning|CN|124.39|40.13|631|W|dan dong;andong,Dania Beach|FL|US|-80.14|26.05|31|N|,Danli|el paraiso department|HN|-86.58|14.03|233|W|,Danshui|taipei|TW|121.44|25.17|189|W|tamsui,Danvers|MA|US|-70.93|42.58|26|N|,Danville|CA|US|-122|37.82|44|N|,Danville|VA|US|-79.4|36.59|42|N|,Danville|IL|US|-87.63|40.12|32|N|,Daqing|heilongjiang|CN|125|46.58|1604|W|ta cching;taching,Dar Bouazza|casablanca settat|MA|-7.82|33.52|165|W|,Dar es Salaam|dar es salaam region|TZ|39.27|-6.82|5383|W|dar es salam;daressalam;darusselam,Darbhanga|bihar|IN|85.9|26.15|296|W|,Darmstadt|hesse|DE|8.65|49.87|167|W|,Darnytsya|kyiv city|UA|30.7|50.42|343|W|darnytsia;darnytskyi raion;darnytskyi rayon;darnytskyy raion;darnytskyy rayon,Dartmouth|NS|CA|-63.58|44.67|101|N|darmouth,Darwin|northern territory|AU|130.84|-12.46|139|W|port darwin,Dasmarinas|calabarzon|PH|120.94|14.33|441|W|kota dasmarinas,Dasoguz|dasoguz|TM|59.97|41.84|201|W|dashoguz;daszoguz;dashowuz;tasjauz,Datong|shanxi|CN|113.29|40.09|1850|W|ta tchung,Daule|guayas|EC|-79.98|-1.86|173|W|,Davangere|karnataka|IN|75.93|14.47|435|W|,Davao|davao region|PH|125.61|7.07|1848|W|davao city,Davenport|IA|US|-90.58|41.52|102|N|,Davie|FL|US|-80.23|26.06|100|N|,Davis|CA|US|-121.74|38.54|67|N|,Dawei|tanintharyi region|MM|98.19|14.08|136|W|tavoy,Dawukou|ningxia|CN|106.4|39.04|131|W|,Daxing'anling|heilongjiang|CN|124.71|52.33|520|W|,Daye|hubei|CN|114.95|30.08|347|W|,Dayrah|dubai|AE|55.3|25.27|400|W|deira,Dayton|OH|US|-84.19|39.76|135|NW|,Daytona Beach|FL|US|-81.02|29.21|72|N|daytona,Dazhou|sichuan|CN|107.46|31.21|1589|W|ta cou,Dearborn|MI|US|-83.18|42.32|95|N|,Dearborn Heights|MI|US|-83.27|42.34|56|N|,Debre Birhan|amhara|ET|39.53|9.68|146|W|debre berhan;debre byrhan,Debre Mark'os|amhara|ET|37.73|10.35|140|W|,Debrecen|hajdu bihar|HU|21.62|47.53|202|W|debreczyn;debrecin;debretin,Decatur|IL|US|-88.95|39.84|73|N|,Decatur|AL|US|-86.98|34.61|55|N|,Deer Park|TX|US|-95.12|29.71|33|N|,Deer Park|NY|US|-73.33|40.76|27|N|,Deer Valley|AZ|US|-112.13|33.68|165|NW|,Deerfield Beach|FL|US|-80.1|26.32|79|N|,Dehiwala-Mount Lavinia|western province|LK|79.87|6.84|219|W|mount lavinia,Dehradun|uttarakhand|IN|78.03|30.32|522|W|dehra dun,Deir ez-Zor|deir ez zor|SY|40.14|35.34|271|W|dayr az zawr;dajr az zaur;dayr al zawr;deir azzor;deir al zour;deir el zor;deir es sor;der ezzor;deyrez zor;deyrizor,DeKalb|IL|US|-88.75|41.93|43|N|,Del Rio|TX|US|-100.9|29.36|36|N|,DeLand|FL|US|-81.3|29.03|30|N|de land,Delano|CA|US|-119.25|35.77|52|N|,Delaware|OH|US|-83.07|40.3|37|N|,Delegacion Cuajimalpa de Morelos|MX09|MX|-99.29|19.37|160|NW|cuajimalpa de morelos,Delhi|delhi|IN|77.23|28.65|11034|W|dilli;deli;sahdzahanabad,Delmas|ouest|HT|-72.3|18.54|395|W|,Delray Beach|FL|US|-80.07|26.46|66|N|del ray beach,Delta|BC|CA|-123.05|49.09|101|N|,Deltona|FL|US|-81.26|28.9|88|N|,Dengzhou|henan|CN|112.09|32.68|285|W|,Denizli|denizli|TR|29.09|37.77|313|W|,Denpasar|bali|ID|115.22|-8.65|670|W|dempasar;dempassar;denpasar bali;kota denpasar,Denton|TX|US|-97.13|33.21|131|NW|,Denver|CO|US|-104.98|39.74|729|NW|,Deoghar|jharkhand|IN|86.7|24.49|203|W|,Deoli|delhi|IN|77.23|28.5|169|W|,Depok|west java|ID|106.82|-6.4|2163|W|kota depok,Dera Ghazi Khan|punjab|PK|70.64|30.05|494|W|,Dera Ismail Khan|khyber pakhtunkhwa|PK|70.9|31.83|763|W|,Derby|england|GB|-1.48|52.92|270|W|,Derry Village|NH|US|-71.31|42.89|34|N|,Des Moines|IA|US|-93.61|41.6|214|NW|,Des Moines|WA|US|-122.32|47.4|31|N|desmoines,Des Plaines|IL|US|-87.88|42.03|58|N|,Desert Hot Springs|CA|US|-116.5|33.96|28|N|,Desmarchais-Crawford|QC|CA|-73.58|45.45|29|N|,Desna|kyiv city|UA|30.68|50.52|368|W|,Desnyanskyi|chernihiv oblast|UA|31.32|51.51|179|W|desnianskyi;desnianskyi raion;desnyanskyi rayon,DeSoto|TX|US|-96.86|32.59|52|N|,Dessalines|artibonite|HT|-72.52|19.26|181|W|,Dessie|amhara|ET|39.63|11.13|270|W|dese;desje,Detroit|MI|US|-83.05|42.33|645|NW|,Dewas|madhya pradesh|IN|76.06|22.97|289|W|,Deyang|sichuan|CN|104.38|31.13|735|W|te jang,Dezful|khuzestan|IR|48.41|32.38|264|W|dezfoul,Dezhou|shandong|CN|116.37|37.45|679|W|te cou,Dhaka|dhaka division|BD|90.41|23.71|10356|W|daca;dacca;dakka,Dhamar|dhamar|YE|44.41|14.54|160|W|damar,Dhanbad|jharkhand|IN|86.43|23.8|1196|W|,Dhangadhi|sudurpashchim pradesh|NP|80.59|28.7|204|W|,Dharan|koshi|NP|87.28|26.81|173|W|,Dharavi|maharashtra|IN|72.87|19.05|700|W|,Dhaulpur|rajasthan|IN|77.88|26.69|133|W|,Dhirkot|azad kashmir|PK|73.58|34.04|195|W|,Dhule|maharashtra|IN|74.78|20.9|375|W|,Di An|ho chi minh city hcmc|VN|106.77|10.91|463|W|,Diadema|sao paulo|BR|-46.62|-23.69|403|W|,Diamond Bar|CA|US|-117.81|34.03|56|N|,Dibrugarh|assam|IN|94.91|27.48|145|W|,Dieppe|NB|CA|-64.69|46.08|27|N|,Diepsloot|gauteng|ZA|28.01|-25.93|350|W|,Diez de Octubre|havana|CU|-82.36|23.09|227|W|,Digri|sindh|PK|69.11|25.16|234|W|,Dihok|duhok|IQ|42.99|36.87|340|W|dahuk;dohuk;duhok,Dijon|bourgogne|FR|5.01|47.31|159|W|digione,Dila|south ethiopia regional state|ET|38.32|6.42|158|W|,Dili|dili municipality|TL|125.57|-8.56|150|W|,Dimapur|nagaland|IN|93.72|25.91|135|W|,Dimitrovgrad|ulyanovsk|RU|49.62|54.21|132|W|dimitrowgrad,Din Daeng|bangkok|TH|100.57|13.79|130|W|,Dinajpur|rangpur division|BD|88.64|25.63|206|W|,Dinapore|bihar|IN|85.05|25.64|152|W|,Dinapur Nizamat|bihar|IN|85.05|25.64|182|W|,Dindigul|tamil nadu|IN|77.98|10.37|292|W|dindukkal,Dingxi|gansu|CN|104.62|35.57|420|W|,Dingzhou|hebei|CN|114.99|38.51|152|W|,Diourbel|diourbel region|SN|-16.24|14.65|157|W|,Dire Dawa|dire dawa|ET|41.87|9.59|343|W|dire daua,Disuq|kafr el sheikh|EG|30.65|31.13|149|W|,Divinopolis|minas gerais|BR|-44.89|-20.14|231|W|,Divo|goh djiboua|CI|-5.36|5.84|136|W|,Dix Hills|NY|US|-73.34|40.8|26|N|,Dixinn|conakry|GN|-13.67|9.55|137|W|,Diyarbakir|diyarbakir province|TR|40.22|37.91|1833|W|amida,Djelfa|djelfa|DZ|3.26|34.67|265|W|dzilfa,Djibouti|djibouti|DJ|43.15|11.59|626|W|cibuti;dschibuti;dzibuti;gibuti;yibuti,Dnipro|dnipropetrovsk|UA|35.04|48.47|968|W|dniepr;dnjepropetrovsk;dnepropetrovsk;caterinoslavia;catherinoslav;dnipropetrovs k;dnipropetrovsk;dniproslav;katerynoslav;novorosiynsk;novyy kodak;sicheslav,Dniprovskyi|kyiv city|UA|30.6|50.45|357|W|,Dodge City|KS|US|-100.02|37.75|27|N|,Dodoma|dodoma|TZ|35.74|-6.17|765|W|,Doha|baladiyat ad dawhah|QA|51.53|25.29|344|W|ad dauha;dauha,Doilungdeqen|tibet|CN|90.99|29.66|137|W|,Dollard-Des Ormeaux|QC|CA|-73.82|45.49|48|N|,Dolores Hidalgo|MX11|MX|-100.93|21.16|67|N|ciudad de dolores hidalgo,Dombivali|maharashtra|IN|73.08|19.22|1247|W|dombivli,Don Valley Village|ON|CA|-79.35|43.78|27|N|,Donaustadt|state of vienna|AT|16.46|48.23|187|W|,Donetsk|donetsk|UA|37.8|48.02|901|W|donezk;donec k;donetk;donieck;doneck;dinetsk;dinetske;iuziv;iuzivka;iuzove;oleksandrivka;yuziv;yuzove,Dong Ha|quang tri|VN|107.1|16.82|164|W|,Dongguan|guangdong|CN|113.75|23.02|9644|W|,Donghai|guangdong|CN|115.64|22.95|264|W|,Dongling|liaoning|CN|123.58|41.81|171|W|,Dongtai|jiangsu|CN|120.31|32.85|262|W|,Dongyang|zhejiang|CN|120.23|29.27|130|W|,Dongying|shandong|CN|118.49|37.46|998|W|tung jing;dong dinh,Doral|FL|US|-80.36|25.82|75|N|,Dorchester|MA|US|-71.07|42.3|97|N|,Dorset Park|ON|CA|-79.28|43.75|25|N|,Dortmund|north rhine westphalia|DE|7.47|51.51|588|W|,Dosquebradas|risaralda department|CO|-75.67|4.84|206|W|dos quebradas,Dothan|AL|US|-85.39|31.22|68|N|,Douala|littoral|CM|9.7|4.05|1338|W|duala,Douglasville|GA|US|-84.75|33.75|32|N|,Dourados|mato grosso do sul|BR|-54.81|-22.22|264|W|,Dover|DE|US|-75.52|39.16|39|N|,Dover|NH|US|-70.87|43.2|30|N|,Dovercourt-Wallace Emerson-Junction|ON|CA|-79.44|43.67|36|N|,Downers Grove|IL|US|-88.01|41.81|49|N|,Downey|CA|US|-118.13|33.94|114|N|,Downsview-Roding-CFB|ON|CA|-79.49|43.73|35|N|,Downtown DC|DC|US|-77.02|38.89|52|N|,Downtown Halifax|NS|CA|-63.58|44.65|25|N|,Downtown Vancouver|BC|CA|-123.12|49.28|62|N|,Dracut|MA|US|-71.3|42.67|28|N|,Draper|UT|US|-111.86|40.52|46|N|,Dresden|saxony|DE|13.74|51.05|564|W|dresda;dresde;drezno;drazdany,Drexel Heights|AZ|US|-111.03|32.14|27|N|,Drexel Hill|PA|US|-75.29|39.95|28|N|,Drummondville|QC|CA|-72.48|45.88|59|N|,Dubai|dubai|AE|55.31|25.08|3790|W|dubai city;dubaj,Dubai Investments Park|dubai|AE|55.16|25.01|160|W|,Dublin|leinster|IE|-6.25|53.33|1024|W|dublin city;dublino,Dublin|CA|US|-121.94|37.7|57|N|,Dublin|OH|US|-83.11|40.1|45|N|,Dubreka|kindia|GN|-13.52|9.79|182|W|,Dubuque|IA|US|-90.66|42.5|58|N|,Dudley|england|GB|-2.08|52.5|199|W|,Duesseldorf|north rhine westphalia|DE|6.78|51.22|618|W|dusseldorf,Duezce|duzce|TR|31.16|40.84|194|W|duzce,Duisburg|north rhine westphalia|DE|6.77|51.43|504|W|duisbourg;duisburgo,Duluth|MN|US|-92.11|46.78|86|N|,Duluth|GA|US|-84.14|34|29|N|,Dumai|riau|ID|101.44|1.67|349|W|kota dumai,Duncanville|TX|US|-96.91|32.65|39|N|,Dundalk|MD|US|-76.52|39.25|63|N|,Dundee|scotland|GB|-2.97|56.47|148|W|,Dundo|luanda norte|AO|20.82|-7.37|177|W|,Dunedin|otago|NZ|170.5|-45.87|132|W|,Dunedin|FL|US|-82.77|28.02|36|N|,Dunhua|jilin|CN|128.23|43.37|148|W|,Dunhuang|gansu|CN|94.68|40.17|186|W|tun chuang;don hoang,Dunwoody|GA|US|-84.33|33.95|48|N|,Duque de Caxias|rio de janeiro|BR|-43.31|-22.79|866|W|,Durban|kwazulu natal|ZA|31.03|-29.86|3338|W|port natal,Durg|chhattisgarh|IN|81.28|21.19|268|W|,Durgapur|west bengal|IN|87.31|23.52|518|W|,Durham|NC|US|-78.9|35.99|257|NW|,Durres|durres county|AL|19.45|41.32|195|W|drac;durazzo,Dushanbe|dushanbe|TJ|68.78|38.54|679|W|doesjanbe;douchanbe;duschanbe;dusjanbe;duszanbe;dusanbe,Duvernay|QC|CA|-73.67|45.58|37|N|,Duyun|guizhou|CN|107.52|26.27|198|W|,Dyker Heights|NY|US|-74.01|40.62|34|N|,Dzerzhinsk|nizhny novgorod oblast|RU|43.46|56.24|233|W|dserschinsk;dzerjinsk;dzerzjinsk;dzerzinsk;dzierzynsk,E'zhou|hubei|CN|114.89|30.4|668|W|ezhou;wuchang,Eagan|MN|US|-93.17|44.8|66|N|,Eagle Mountain|UT|US|-112.01|40.31|27|N|,Eagle Pass|TX|US|-100.5|28.71|28|N|,East Boston|MA|US|-71.04|42.38|43|N|,East Brunswick|NJ|US|-74.42|40.43|48|N|e brunswick;east brunswick township,East Chattanooga|TN|US|-85.25|35.07|154|NW|,East Chicago|IN|US|-87.45|41.64|28|N|,East Concord|NH|US|-71.54|43.24|42|N|,East Flatbush|NY|US|-73.93|40.65|178|NW|,East Florence|AL|US|-87.65|34.81|35|N|,East Hampton|VA|US|-76.33|37.04|147|NW|,East Harlem|NY|US|-73.94|40.79|115|N|harlem del este,East Hartford|CT|US|-72.61|41.78|51|N|,East Hastings|BC|CA|-123.06|49.27|80|N|,East Haven|CT|US|-72.87|41.28|29|N|,East Helsinki|uusimaa|FI|25.08|60.21|170|W|ita helsinki;ostra helsingfors,East Hill-Meridian|WA|US|-122.17|47.41|29|N|,East Honolulu|HI|US|-157.72|21.29|49|N|,East Independence|MO|US|-94.36|39.1|110|N|,East Jerusalem|west bank|PS|35.23|31.78|428|W|dogu kudus;gerusalemme est;jerusalem oriental;jerusalen este;jerusalem est;oost jeruzalem;ostjerusalem;vychodni jeruzalem;wschodnia jerozolima;yerusalem timur;ostra jerusalem;ost jerusalem;dong jerusalem,East Lake|FL|US|-82.69|28.11|30|N|,East Lansing|MI|US|-84.48|42.74|48|N|,East London|eastern cape|ZA|27.91|-33.02|478|W|buffalo city;kugompo city,East Los Angeles|CA|US|-118.17|34.02|126|N|dogu los angeles;este de los angeles,East Meadow|NY|US|-73.56|40.71|38|N|,East New York|NY|US|-73.88|40.67|173|NW|,East Norwalk|CT|US|-73.4|41.11|84|N|,East Orange|NJ|US|-74.2|40.77|64|N|,East Palo Alto|CA|US|-122.14|37.47|29|N|palo alto timur,East Pensacola Heights|FL|US|-87.18|30.43|54|N|,East Point|GA|US|-84.44|33.68|35|N|,East Providence|RI|US|-71.37|41.81|47|N|dong providence,East Saint Louis|IL|US|-90.15|38.62|27|N|,East Village|NY|US|-73.99|40.73|62|N|,Easton|PA|US|-75.22|40.69|26|N|,Eastpointe|MI|US|-82.96|42.47|32|N|,Eastvale|CA|US|-117.56|33.96|59|N|,Eau Claire|WI|US|-91.5|44.81|67|N|,Ebetsu|hokkaido|JP|141.55|43.11|133|W|,Ebina|kanagawa|JP|139.4|35.38|136|W|,Ebute Ikorodu|lagos|NG|3.49|6.6|535|W|,Ecatepec de Morelos|MX15|MX|-99.06|19.6|1645|NW|ecatepec,Echo Park|CA|US|-118.26|34.08|43|N|,Ede|osun state|NG|4.44|7.74|159|W|,Eden Prairie|MN|US|-93.47|44.85|63|N|,Edgewater|IL|US|-87.66|41.98|54|N|,Edgewood|MD|US|-76.29|39.42|25|N|,Edina|MN|US|-93.35|44.89|50|N|,Edinburg|TX|US|-98.16|26.3|84|N|,Edinburgh|scotland|GB|-3.2|55.95|514|W|edimburgo;edynburg;edimbourg,Edirne|edirne|TR|26.56|41.68|180|W|adrianopol;adrianopoli,Edison|NJ|US|-74.41|40.52|102|N|gmina edison,Edmond|OK|US|-97.48|35.65|90|N|,Edmonds|WA|US|-122.38|47.81|41|N|,Edmonton|AB|CA|-113.47|53.55|1010|NW|,Edogawe|tokyo|JP|139.87|35.69|697|W|edogawa city,Efon-Alaaye|ekiti state|NG|4.92|7.66|279|W|,Egypt Lake-Leto|FL|US|-82.51|28.02|35|N|,Eimsbuettel|hamburg|DE|9.96|53.57|269|W|eimsbuttel;bezirk eimsbuttel;distretto di eimsbuttel;hambourg eimsbuttel;hamburg eimsbuttel,Eindhoven|north brabant|NL|5.48|51.44|235|W|,Eixample|catalonia|ES|2.16|41.39|266|W|distrito del ensanche,Ejigbo|osun state|NG|4.31|7.9|138|W|,El Achir|bordj bou arreridj|DZ|4.63|36.06|158|W|,El Cajon|CA|US|-116.96|32.79|103|N|,El Centro|CA|US|-115.56|32.79|43|N|,El Daein|eastern darfur|SD|26.13|11.46|264|W|ad du ayn;ad duajn;ad du ain;ed daein,El Dibir|bari|SO|51.22|11.77|200|W|,El Dorado Hills|CA|US|-121.08|38.69|42|N|,El Eulma|setif|DZ|5.69|36.15|145|W|,El Fasher|northern darfur|SD|25.35|13.63|252|W|al fashir;al faschir,El Geneina Fort|western darfur|SD|22.46|13.47|134|W|,El Jadida|casablanca settat|MA|-8.51|33.26|212|W|al dzadida;el yadida;mazagao;castilho real;mazaghan,El Limon|aragua|VE|-67.63|10.31|148|W|,El Mirage|AZ|US|-112.32|33.61|33|N|,El Monte|CA|US|-118.03|34.07|116|N|,El Obeid|north kordofan|SD|30.22|13.18|393|W|al ubayyid,El Oued|el oued|DZ|6.86|33.36|186|W|al wadi;oued souf,El Paso|TX|US|-106.49|31.76|678|NW|,El Pueblito|MX22|MX|-100.44|20.54|71|N|corregidora,El Tigre|anzoategui|VE|-64.25|8.89|222|W|,El Vigia|merida|VE|-71.66|8.61|162|W|,Elazig|elazig|TR|39.22|38.67|443|W|,Elche|valencia|ES|-0.7|38.26|234|W|elx,Eldersburg|MD|US|-76.95|39.4|30|N|eldersburgh,Eldoret|uasin gishu county|KE|35.27|0.52|475|W|,Elektrostal'|moscow oblast|RU|38.46|55.79|144|W|,Elgin|IL|US|-88.28|42.04|112|N|,Elizabeth|NJ|US|-74.21|40.66|129|N|,Elizabethtown|KY|US|-85.86|37.69|29|N|,Elk Grove|CA|US|-121.37|38.41|166|NW|,Elk Grove Village|IL|US|-87.97|42|33|N|,Elkhart|IN|US|-85.98|41.68|52|N|,Ellendale|TN|US|-89.83|35.23|25|N|,Ellicott City|MD|US|-76.8|39.27|65|N|,Elmhurst|NY|US|-73.88|40.74|113|N|,Elmhurst|IL|US|-87.94|41.9|45|N|,Elmira|NY|US|-76.81|42.09|28|N|,Elmont|NY|US|-73.71|40.7|33|N|,Eloy Alfaro|guayas|EC|-79.84|-2.17|315|W|duran,Eluru|andhra pradesh|IN|81.1|16.71|218|W|,Elyria|OH|US|-82.11|41.37|53|N|,Emalahleni|mpumalanga|ZA|29.23|-25.87|373|W|,eMbalenhle|mpumalanga|ZA|29.07|-26.53|142|W|,Embu das Artes|sao paulo|BR|-46.85|-23.65|259|W|embu arte,Emiliano Zapata|MX17|MX|-99.18|18.84|49|N|,Emiliano Zapata|MX15|MX|-98.97|19.34|25|N|,Eminabad|punjab|PK|74.26|32.04|150|W|,Empalme|MX26|MX|-110.81|27.96|42|N|,Encanto|AZ|US|-112.08|33.48|54|N|,Encarnacion de Diaz|MX14|MX|-102.24|21.53|25|N|la chona,Enchanted Hills|NM|US|-106.59|35.34|87|N|,Encinitas|CA|US|-117.29|33.04|62|N|,Encino|CA|US|-118.5|34.16|44|N|,Enfield|CT|US|-72.59|41.98|45|N|,Enfield Town|england|GB|-0.08|51.65|156|W|enfield,Engels|saratov oblast|RU|46.11|51.48|196|W|enehl s;engel s;pokrovs ka sloboda,Englewood|CO|US|-104.99|39.65|33|N|new dawn rejuvenation,Englewood|NJ|US|-73.97|40.89|28|N|,Englewood|IL|US|-87.65|41.78|26|N|,Enid|OK|US|-97.88|36.4|51|N|,Enschede|overijssel|NL|6.9|52.22|153|W|,Ensenada|MX02|MX|-116.6|31.87|443|NW|enseada,Enshi|hubei|CN|109.48|30.3|279|W|,Enterprise|NV|US|-115.24|36.03|108|N|,Enterprise|AL|US|-85.86|31.32|27|N|,Enugu|enugu state|NG|7.5|6.44|950|W|,Envigado|antioquia|CO|-75.59|6.18|163|W|,Epworth|harare|ZW|31.15|-17.89|206|W|,Erbil|erbil|IQ|44.01|36.19|1612|W|arbil;hawler;irbil,Eregli|konya|TR|34.05|37.51|156|W|heraclea;heraclea minoa;herakleia,Erfurt|thuringia|DE|11.04|50.98|218|W|,Erie|PA|US|-80.09|42.13|99|N|,Erode|tamil nadu|IN|77.73|11.34|521|W|irodu,Erzincan|erzincan|TR|39.49|39.74|150|W|erzincam;erzinca,Erzurum|erzurum|TR|41.28|39.91|767|W|,Escarcega|MX04|MX|-90.75|18.61|29|N|,Escondido|CA|US|-117.09|33.12|151|NW|,Escuinapa de Hidalgo|MX25|MX|-105.78|22.83|30|N|,Escuintla|escuintla|GT|-90.79|14.3|156|W|,Esenler|istanbul|TR|28.88|41.04|520|W|,Esenyurt|istanbul|TR|28.68|41.03|983|W|,Eskisehir|eskisehir|TR|30.52|39.78|921|W|,Eslamshahr|tehran|IR|51.24|35.55|450|W|eslamchahr;eslamschahr;shadshahr,Esmeraldas|esmeraldas|EC|-79.65|0.96|218|W|,Esna|qena|EG|32.55|25.29|462|W|,Esperanza|MX26|MX|-109.93|27.58|38|N|,Espoo|uusimaa|FI|24.65|60.21|323|W|esbo,Essen|north rhine westphalia|DE|7.01|51.46|593|W|,Essex|MD|US|-76.47|39.31|39|N|,Estero|FL|US|-81.81|26.44|30|N|,Etah|uttar pradesh|IN|78.66|27.56|131|W|,Etawah|uttar pradesh|IN|79.02|26.78|257|W|,Etobicoke|ON|CA|-79.57|43.64|365|NW|,Etwatwa|gauteng|ZA|28.45|-26.13|151|W|,Euclid|OH|US|-81.53|41.59|47|N|,Eugene|OR|US|-123.09|44.05|176|NW|,Euless|TX|US|-97.08|32.84|54|N|,Eureka|CA|US|-124.16|40.8|27|N|,Evans|GA|US|-82.13|33.53|29|N|,Evanston|IL|US|-87.69|42.04|75|N|,Evansville|IN|US|-87.56|37.97|119|N|,Evaton|gauteng|ZA|27.85|-26.53|725|W|,Everett|WA|US|-122.2|47.98|108|N|,Everett|MA|US|-71.05|42.41|46|N|,'Ewa Gentry-West Loch|HI|US|-158.03|21.35|35|N|,Ewing|NJ|US|-74.8|40.27|36|N|,Exeter|england|GB|-3.53|50.72|130|W|,Ezhou|hubei|CN|114.83|30.4|193|W|,Facatativa|cundinamarca|CO|-74.35|4.81|141|W|,Fair Lawn|NJ|US|-74.13|40.94|33|N|,Fair Oaks|CA|US|-121.27|38.64|30|N|,Fairbanks|AK|US|-147.72|64.84|32|N|,Fairborn|OH|US|-84.02|39.82|33|N|,Fairfield|CA|US|-122.04|38.25|112|N|,Fairfield|CT|US|-73.26|41.14|59|N|,Fairfield|OH|US|-84.56|39.35|42|N|,Fairview|BC|CA|-123.13|49.26|33|N|,Faisalabad|punjab|PK|73.09|31.42|3800|W|fajsalabad;lyallpur,Fall River|MA|US|-71.16|41.7|94|N|,Fallbrook|CA|US|-117.25|33.38|30|N|,Fallingbrook|ON|CA|-75.48|45.48|25|N|,Fangchenggang|guangxi|CN|108.36|21.77|276|W|,Fanling|north district|HK|114.14|22.49|263|W|,Far Rockaway|NY|US|-73.76|40.61|39|N|,Fardis|tehran|IR|51|35.76|181|W|,Fargo|ND|US|-96.79|46.88|118|N|,Faridabad|haryana|IN|77.31|28.41|1414|W|,Farmers Branch|TX|US|-96.9|32.93|32|N|,Farmington|NM|US|-108.22|36.73|42|N|,Farmington|CT|US|-72.83|41.72|25|N|,Farmington Hills|MI|US|-83.38|42.49|81|N|,Farrukhabad|uttar pradesh|IN|79.58|27.39|241|W|,Fatehpur|uttar pradesh|IN|80.81|25.93|166|W|,Fatih|istanbul|TR|28.94|41.02|356|W|,Favoriten|state of vienna|AT|16.38|48.16|201|W|,Fayetteville|NC|US|-78.88|35.05|201|NW|,Fayetteville|AR|US|-94.16|36.06|82|N|,Fazenda Rio Grande|parana|BR|-49.31|-25.66|148|W|,Federal Way|WA|US|-122.31|47.32|95|N|,Feira de Santana|bahia|BR|-38.97|-12.27|616|W|,Felipe Carrillo Puerto|MX23|MX|-88.05|19.58|25|N|,Fendou|heilongjiang|CN|124.86|46.64|226|W|,Fengcheng|chongqing|CN|107.06|29.83|175|W|changshohein,Fengcheng|jiangsu|CN|116.59|34.7|161|W|,Fenghuang|hunan|CN|109.6|27.94|370|W|,Fengshan|takao|TW|120.36|22.63|356|W|feng san;fongshan district,Fengxiang|shanghai|CN|121.47|30.86|1140|W|,Fenway/Kenmore|MA|US|-71.1|42.34|37|N|,Fergana|fergana|UZ|71.78|40.38|299|W|ferghana,Ferrara|emilia romagna|IT|11.62|44.84|132|W|ferrare,Ferraz de Vasconcelos|sao paulo|BR|-46.37|-23.54|179|W|,Ferry Pass|FL|US|-87.21|30.51|28|N|,Fes|fes meknes|MA|-5|34.03|1191|W|fez,Fes al Bali|fes meknes|MA|-4.95|34.07|156|W|,Fianarantsoa|upper matsiatra|MG|47.09|-21.45|203|W|,Financial District|NY|US|-74.01|40.71|60|N|,Findlay|OH|US|-83.65|41.04|41|N|,Firozabad|uttar pradesh|IN|78.4|27.15|306|W|,Fishers|IN|US|-86.01|39.96|76|N|,Fitchburg|MA|US|-71.8|42.58|40|N|,Fitchburg|WI|US|-89.47|42.96|27|N|,Flagami|FL|US|-80.32|25.76|50|N|,Flagstaff|AZ|US|-111.65|35.2|70|N|,Flatbush|NY|US|-73.96|40.65|93|N|,Flatlands|NY|US|-73.93|40.62|63|N|,Fleetwood|BC|CA|-122.8|49.17|65|N|,Fleming Island|FL|US|-81.72|30.09|27|N|,Flint|MI|US|-83.69|43.01|98|N|,Florence|tuscany|IT|11.25|43.78|367|W|florencja;firenze;floransa;florencia;florencie;florens;florenz;florenca;florenta,Florence|AL|US|-87.68|34.8|40|N|,Florence|SC|US|-79.76|34.2|38|N|,Florence|KY|US|-84.63|39|32|N|,Florence|AZ|US|-111.39|33.03|31|N|,Florence-Graham|CA|US|-118.24|33.97|63|N|,Florencia|caqueta|CO|-75.6|1.62|168|W|,Florianopolis|santa catarina|BR|-48.55|-27.6|508|W|floripa;nossa senhora do desterro;santa catherina,Floridablanca|santander department|CO|-73.09|7.06|267|W|,Floridsdorf|state of vienna|AT|16.4|48.25|162|W|,Florin|CA|US|-121.41|38.5|47|N|,Florissant|MO|US|-90.32|38.79|52|N|,Flower Mound|TX|US|-97.1|33.01|71|N|,Foggia|apulia|IT|15.55|41.46|137|W|,Folsom|CA|US|-121.18|38.68|76|N|,Fond du Lac|WI|US|-88.44|43.77|42|N|,Fontana|CA|US|-117.44|34.09|212|NW|,Fontanar|havana|CU|-82.41|23.02|178|W|,Foothill Farms|CA|US|-121.35|38.68|33|N|,Fordham|NY|US|-73.9|40.86|94|N|,Forest Hills|NY|US|-73.85|40.72|67|N|,Forest Hills|MI|US|-85.49|42.96|25|N|,Formosa|formosa|AR|-58.17|-26.18|222|W|ciudad de formosa,Fort Bragg|NC|US|-79.01|35.14|29|N|phao dai bragg;fort liberty,Fort Cavazos|TX|US|-97.78|31.13|29|N|,Fort Collins|CO|US|-105.08|40.59|170|NW|ft collins,Fort Erie|ON|CA|-78.93|42.9|30|N|,Fort Garry South|MB|CA|-97.16|49.79|65|N|,Fort Hamilton|NY|US|-74.03|40.62|28|N|,Fort Lauderdale|FL|US|-80.14|26.12|183|NW|,Fort Lee|NJ|US|-73.97|40.85|36|N|,Fort McMurray|AB|CA|-111.38|56.73|66|N|,Fort Myers|FL|US|-81.84|26.62|74|N|,Fort Pierce|FL|US|-80.33|27.45|44|N|ft pierce,Fort Smith|AR|US|-94.4|35.39|88|N|,Fort Wayne|IN|US|-85.13|41.13|260|NW|,Fort Worth|TX|US|-97.32|32.73|1008|NW|ft worth,Fortaleza|ceara|BR|-38.54|-3.72|2400|W|,Fortechnyi|kirovohrad|UA|32.25|48.5|167|W|,Fortuna Foothills|AZ|US|-114.41|32.66|26|N|,Foshan|guangdong|CN|113.13|23.03|9042|W|fo san,Foster City|CA|US|-122.27|37.56|33|N|,Foumban|west|CM|10.9|5.73|130|W|foumbam;fumban,Fountain|CO|US|-104.7|38.68|27|N|,Fountain Valley|CA|US|-117.95|33.71|56|N|,Fountainebleau|FL|US|-80.35|25.77|59|N|fountainbleau,Four Corners|FL|US|-81.65|28.33|26|N|,Foz do Iguacu|parana|BR|-54.59|-25.55|297|W|foz de iguazu,Fraccionamiento Real Palmas|MX19|MX|-100.16|25.9|34|N|,Framingham|MA|US|-71.42|42.28|68|N|,Framingham Center|MA|US|-71.44|42.3|65|N|,Franca|sao paulo|BR|-47.4|-20.54|365|W|,Franceville|haut ogooue|GA|13.58|-1.63|132|W|,Francisco I. Madero|MX07|MX|-103.27|25.77|26|N|,Francisco Morato|sao paulo|BR|-46.75|-23.28|165|W|,Franco da Rocha|sao paulo|BR|-46.73|-23.32|144|W|,Frankfort|KY|US|-84.87|38.2|28|N|,Frankfurt am Main|hesse|DE|8.68|50.12|650|W|francfort sur le main;francoforte sul meno;francfort del meno;francfort;francoforte;frankfurt;frankfurt nad menem;frankfurt nad mohanem;franckfurt,Franklin|TN|US|-86.87|35.93|72|N|,Franklin|WI|US|-88.04|42.89|36|N|,Franklin|MA|US|-71.4|42.08|30|N|,Franklin Square|NY|US|-73.68|40.71|29|N|,Fraser Heights|BC|CA|-122.78|49.2|25|N|,Frederick|MD|US|-77.41|39.41|69|N|,Fredericksburg|VA|US|-77.46|38.3|28|N|,Fredericton|NB|CA|-66.67|45.95|63|N|,Fredericton Northside|NB|CA|-66.64|45.98|28|N|northside fredericton,Freeport|NY|US|-73.58|40.66|43|N|,Freetown|western area|SL|-13.24|8.49|802|W|,Freguesia do O|sao paulo|BR|-46.7|-23.5|137|W|nossa senhora do o,Freiburg|baden wurttemberg|DE|7.85|48|237|W|freiburg im breisgau;fribourg en brisgau;friburgo de brisgovia;friburgo in brisgovia;fryburg bryzgowijski,Fremont|CA|US|-121.99|37.55|232|NW|,Fremont|NE|US|-96.5|41.43|26|N|,Fresh Meadows|NY|US|-73.79|40.73|28|N|,Fresnillo|MX32|MX|-102.87|23.17|143|NW|,Fresno|CA|US|-119.77|36.75|542|NW|,Fridley|MN|US|-93.26|45.09|27|N|,Friendswood|TX|US|-95.2|29.53|38|N|,Frisco|TX|US|-96.82|33.15|154|NW|,Frontera|MX07|MX|-101.45|26.93|69|N|ciudad frontera,Fruit Cove|FL|US|-81.64|30.11|29|N|,Fu'an|fujian|CN|119.64|27.09|154|W|,Fuchu|tokyo|JP|139.48|35.67|262|W|,Fuding|fujian|CN|120.21|27.33|192|W|,Fuencarral|madrid|ES|-3.68|40.5|238|W|,Fuencarral-El Pardo|madrid|ES|-3.73|40.5|220|W|,Fuenlabrada|madrid|ES|-3.79|40.28|190|W|,Fuentes del Valle|MX15|MX|-99.14|19.63|74|N|,Fuerth|bavaria|DE|10.99|49.48|132|W|furth,Fuji|shizuoka|JP|138.68|35.17|245|W|fudzi,Fuji|sichuan|CN|105.37|29.15|131|W|,Fujieda|shizuoka|JP|138.27|34.87|145|W|,Fujinomiya|shizuoka|JP|138.62|35.22|132|W|,Fujisawa|kanagawa|JP|139.48|35.35|439|W|,Fukayacho|saitama|JP|139.28|36.2|141|W|,Fukui-shi|fukui|JP|136.22|36.06|262|W|,Fukuoka|fukuoka|JP|130.42|33.6|1612|W|fukuoka shi;fukuokashi,Fukushima|fukushima|JP|140.47|37.75|294|W|,Fukuyama|hiroshima|JP|133.37|34.48|468|W|,Fuling|chongqing|CN|107.39|29.71|268|W|fuchow,Fullerton|CA|US|-117.93|33.87|140|NW|,Funtua|katsina state|NG|7.31|11.52|136|W|,Fushun|liaoning|CN|123.94|41.89|1400|W|fu sun,Fuxin|liaoning|CN|121.66|42.02|689|W|fu sin,Fuyang|anhui|CN|115.82|32.9|1768|W|fu jang,Fuyu|jilin|CN|124.82|45.18|138|W|,Fuzhou|fujian|CN|119.31|26.06|3740|W|fu cou;fucheu;phuc chau,Fuzhou|jiangxi|CN|116.33|27.96|1089|W|fu cou,Fyzabad|uttar pradesh|IN|82.15|26.78|153|W|faizabad,Gaborone|gaborone|BW|25.91|-24.65|246|W|,Gabriel Leyva Solano|MX25|MX|-108.64|25.66|27|N|benito juarez;leyva solano,Gadag|karnataka|IN|75.63|15.43|172|W|,Gadag-Betageri|karnataka|IN|75.62|15.42|172|W|,Gadsden|AL|US|-86.01|34.01|36|N|,Gage Park|IL|US|-87.7|41.8|41|N|,Gagnoa|goh djiboua|CI|-5.95|6.13|277|W|,Gahanna|OH|US|-82.88|40.02|34|N|,Gainesville|FL|US|-82.32|29.65|145|NW|,Gainesville|GA|US|-83.82|34.3|38|N|,Gaithersburg|MD|US|-77.2|39.14|67|N|,Gajuwaka|andhra pradesh|IN|83.22|17.7|258|W|,Galati|galati county|RO|28.05|45.44|217|W|galatz;galacz,Galesburg|IL|US|-90.37|40.95|31|N|,Gallatin|TN|US|-86.45|36.39|34|N|,Galt|CA|US|-121.3|38.25|25|N|,Galveston|TX|US|-94.8|29.3|50|N|,Gama|federal district|BR|-48.07|-16.03|139|W|,Gandajika|lomami|CD|23.95|-6.75|208|W|,Gandhidham|gujarat|IN|70.13|23.08|247|W|,Gandhinagar|gujarat|IN|72.68|23.22|292|W|,Gangneung|gangwon do|KR|128.87|37.75|208|W|,Ganja|gence|AZ|46.36|40.68|330|W|ganca;gandja;gandza;gence;gandzja,Ganzhou|jiangxi|CN|114.93|25.85|1977|W|cam chau;kan cou,Gao|gao|ML|-0.04|16.27|133|W|,Gaomi|shandong|CN|119.75|36.38|391|W|,Gaoping|sichuan|CN|106.1|30.78|204|W|,Gaozhou|guangdong|CN|110.86|21.92|292|W|,Garanhuns|pernambuco|BR|-36.5|-8.88|151|W|,Garcia|MX19|MX|-100.59|25.8|93|N|,Garden City|KS|US|-100.87|37.97|27|N|,Garden City|MI|US|-83.33|42.33|26|N|,Garden Grove|CA|US|-117.94|33.77|175|NW|,Gardena|CA|US|-118.31|33.89|60|N|,Garfield|NJ|US|-74.11|40.88|31|N|,Garfield Heights|OH|US|-81.61|41.42|28|N|garfield hts,Garhi Khairo|sindh|PK|67.98|28.06|193|W|,Garissa|garissa county|KE|39.65|-0.45|163|W|,Garland|TX|US|-96.64|32.91|236|NW|,Garner|NC|US|-78.61|35.71|28|N|,Garut|west java|ID|107.92|-7.25|131|W|,Gary|IN|US|-87.35|41.59|77|N|,Gasteiz / Vitoria|basque country|ES|-2.67|42.85|257|W|vitoria;vitoria gasteiz,Gastonia|NC|US|-81.19|35.26|74|N|,Gatineau|QC|CA|-75.7|45.48|300|NW|,Gaya|bihar|IN|85|24.8|474|W|,Gaza|gaza strip|PS|34.47|31.5|410|W|gaza city;gazze,Gaziantep|gaziantep|TR|37.38|37.06|2222|W|,Gazipur|dhaka division|BD|90.42|24|2674|W|,Gboko|benue state|NG|9|7.32|365|W|,Gbongan|osun state|NG|4.35|7.48|139|W|,Gdansk|pomerania|PL|18.65|54.35|487|W|danzica;danzig,Gdynia|pomerania|PL|18.53|54.52|257|W|gdingen;gdyne,Gebze|kocaeli|TR|29.43|40.8|281|W|,Geelong|victoria|AU|144.36|-38.15|282|W|,Geita|geita|TZ|32.23|-2.87|318|W|,Gejiu|yunnan|CN|103.15|23.36|136|W|,Gelsenkirchen|north rhine westphalia|DE|7.1|51.51|270|W|,Gemena|sud ubangi|CD|19.77|3.26|197|W|,General Santos|soccsksargen|PH|125.17|6.11|722|W|kota general santos,Geneva|geneva|CH|6.15|46.2|201|W|cenevre;genebra;geneve;genewa;genf;ginebra;ginevra;jenewa;zeneva,Genoa|liguria|IT|8.94|44.4|580|W|genova;cenova;genua;genes;janov,Gent|flanders|BE|3.72|51.05|265|W|gand;gandawa;gante;ghent,Geoje|gyeongsangnam do|KR|128.71|34.81|232|W|,George|western cape|ZA|22.46|-33.96|188|W|,George Town|penang|MY|100.34|5.41|158|W|georgetown;penang,Georgetown|demerara mahaica|GY|-58.16|6.8|235|W|,Georgetown|TX|US|-97.68|30.63|63|N|,Georgetown|ON|CA|-79.92|43.65|44|N|,Georgetown|KY|US|-84.56|38.21|32|N|,Germantown|MD|US|-77.27|39.17|86|N|,Germantown|TN|US|-89.81|35.09|39|N|,Germiston|gauteng|ZA|28.18|-26.23|255|W|germinston,Getafe|madrid|ES|-3.73|40.31|187|W|,Ghardaia|ghardaia|DZ|3.67|32.49|142|W|gardaya;ghardaja,Ghaziabad|uttar pradesh|IN|77.44|28.67|1199|W|gaziabade,Ghazni|ghazni|AF|68.42|33.55|141|W|gazni,Ghulja|xinjiang|CN|81.32|43.92|269|W|yining,Gia Lam|hanoi|VN|105.94|21.02|309|W|,Gia Rai|ca mau|VN|105.46|9.23|145|W|,Gifu|gifu|JP|136.76|35.42|402|W|gifu city,Gijang|busan|KR|129.21|35.24|176|W|,Gijon|asturias|ES|-5.66|43.54|271|W|,Gilbert|AZ|US|-111.79|33.35|247|NW|,Gilgit|gilgit baltistan|PK|74.31|35.92|216|W|,Gillette|WY|US|-105.5|44.29|32|N|,Gilroy|CA|US|-121.57|37.01|53|N|,Gimcheon|gyeongsangbuk do|KR|128.12|36.12|150|W|kimcchon,Gimpo-si|gyeonggi do|KR|126.71|37.62|203|W|gimpo,Gingoog|northern mindanao|PH|125.1|8.83|138|W|,Girga|sohag|EG|31.89|26.34|151|W|jirja,Gisenyi|western province|RW|29.26|-1.7|172|W|gosenyi,Giza|giza|EG|31.21|30.01|4367|W|gizeh;gize;guiza,GJien Ban|da nang city|VN|108.25|15.89|226|W|,GJong GJa|hanoi|VN|105.83|21.01|371|W|,GJong Hoi|quang tri|VN|106.62|17.47|133|W|dong hoi,GJong Xoai|dong nai|VN|106.88|11.53|168|W|dong xoai,GJuc Pho|quang ngai|VN|108.96|14.81|155|W|,GJuc Trong|lam dong|VN|108.37|11.74|161|W|lien nghia,Gladstone|MO|US|-94.55|39.2|26|N|,Glasgow|scotland|GB|-4.26|55.87|626|W|,Glastonbury|CT|US|-72.61|41.71|31|N|,Glen Burnie|MD|US|-76.62|39.16|67|N|,Glen Cove|NY|US|-73.63|40.86|27|N|,Glen Ellyn|IL|US|-88.07|41.88|28|N|,Glendale|AZ|US|-112.19|33.54|240|NW|,Glendale|CA|US|-118.26|34.14|201|NW|,Glendale|NY|US|-73.89|40.7|34|N|,Glendale Heights|IL|US|-88.06|41.91|34|N|,Glendora|CA|US|-117.87|34.14|52|N|,Glenfield-Jane Heights|ON|CA|-79.51|43.75|30|N|,Glenview|IL|US|-87.79|42.07|47|N|,Glenville|NY|US|-74.05|42.93|29|N|,Gliwice|silesia|PL|18.68|50.3|198|W|gleiwitz,Gloucester|ON|CA|-75.63|45.35|150|NW|,Gloucester|england|GB|-2.24|51.87|132|W|,Gloucester|MA|US|-70.66|42.61|29|N|,Godhra|gujarat|IN|73.61|22.78|143|W|,Godome|atlantique|BJ|2.35|6.39|253|W|,Goelbasi|ankara|TR|32.81|39.79|165|W|golbasi,Goiania|goias|BR|-49.25|-16.68|1536|W|,Gojra|punjab|PK|72.68|31.15|214|W|gorja,Gol'yanovo|moscow|RU|37.81|55.82|158|W|,Gold Coast|queensland|AU|153.43|-28|640|W|costa dorada;gold,Golden Glades|FL|US|-80.2|25.91|33|N|,Goldsboro|NC|US|-77.99|35.38|35|N|,Golestan|tehran|IR|51.18|35.52|240|W|,Goleta|CA|US|-119.83|34.44|30|N|goelette;kuunari;schoener;schoner;schooner;skonert;skonnert;szkuner,Golfe|luanda|AO|13.26|-8.87|655|W|,Goma|north kivu|CD|29.23|-1.67|432|W|,Gombe|gombe state|NG|11.17|10.29|560|W|,Gomez Palacio|MX10|MX|-103.5|25.57|257|NW|,Gonbad-e Kavus|golestan|IR|55.17|37.25|151|W|,Gonda City|uttar pradesh|IN|81.95|27.13|133|W|,Gonder|amhara|ET|37.47|12.6|466|W|gondar,Gondia|maharashtra|IN|80.19|21.46|132|W|gondiya,Gongheyong|guangdong|CN|113.79|22.76|204|W|,Gongzhuling|jilin|CN|124.82|43.5|140|W|,Goodyear|AZ|US|-112.36|33.44|79|N|,Goose Creek|SC|US|-80.03|32.98|40|N|,Gorakhpur|haryana|IN|75.67|29.45|1324|W|,Gorakhpur|uttar pradesh|IN|83.37|26.77|674|W|,Gorgan|golestan|IR|54.44|36.84|244|W|,Gorontalo|gorontalo|ID|123.06|0.54|205|W|,Goshen|IN|US|-85.83|41.58|32|N|,Gothenburg|vastra gotaland|SE|11.97|57.71|608|W|goteborg;gotemburgo;gotenburg;gothembourg,Governador Valadares|minas gerais|BR|-41.95|-18.85|266|W|gov valadares;valadares,Goyang-si|gyeonggi do|KR|126.83|37.66|1061|W|goyang,Gqeberha|eastern cape|ZA|25.61|-33.96|1050|W|port elizabeth;porto elizabeth;puerto elizabeth,Grajau|sao paulo|BR|-46.67|-23.77|384|W|,Gramercy Park|NY|US|-73.99|40.74|27|N|,Granada|andalusia|ES|-3.61|37.19|233|W|grenada;grenade;girnata,Granby|QC|CA|-72.73|45.4|66|N|,Grand Forks|ND|US|-97.03|47.93|57|N|,Grand Island|NE|US|-98.34|40.93|51|N|,Grand Junction|CO|US|-108.55|39.06|60|N|,Grand Prairie|TX|US|-97|32.75|187|NW|,Grand Rapids|MI|US|-85.67|42.96|195|NW|,Grande Prairie|AB|CA|-118.8|55.17|70|N|,Grandview|MO|US|-94.53|38.89|25|N|,Grandview-Woodlands|BC|CA|-123.07|49.28|29|N|,Granger|IN|US|-86.11|41.75|30|N|,Granite City|IL|US|-90.15|38.7|29|N|,Grants Pass|OR|US|-123.33|42.44|37|N|,Grapevine|TX|US|-97.08|32.93|51|N|,Gravatai|rio grande do sul|BR|-50.99|-29.94|265|W|,Gravesend|NY|US|-73.97|40.6|112|N|,Graz|styria|AT|15.44|47.07|303|W|styrsky hradec,Great Falls|MT|US|-111.3|47.5|59|N|,Greater Grand Crossing|IL|US|-87.61|41.76|32|N|,Greater Noida|uttar pradesh|IN|77.54|28.5|293|W|,Greater Sudbury|ON|CA|-80.99|46.49|166|NW|sudbury;gran sudbury;grand sudbury,Greeley|CO|US|-104.71|40.42|108|N|,Green|OH|US|-81.48|40.95|25|N|,Green Bay|WI|US|-88.02|44.52|105|N|,Greenacres City|FL|US|-80.13|26.62|32|N|,Greenburgh|NY|US|-73.84|41.03|86|N|,Greenfield|WI|US|-88.01|42.96|37|N|,Greenpoint|NY|US|-73.95|40.72|34|N|,Greensboro|NC|US|-79.79|36.07|285|NW|,Greenville|NC|US|-77.37|35.61|90|N|,Greenville|SC|US|-82.39|34.85|64|N|,Greenville|MS|US|-91.06|33.41|32|N|,Greenville|TX|US|-96.11|33.14|26|N|,Greenwood|IN|US|-86.11|39.61|55|N|,Greer|SC|US|-82.23|34.94|28|N|,Grenoble|rhone alpes|FR|5.71|45.18|158|W|,Gresham|OR|US|-122.43|45.5|110|N|,Grimsby|ON|CA|-79.57|43.2|27|N|,Groningen|groningen|NL|6.57|53.22|244|W|groninga;groningue,Grove City|OH|US|-83.09|39.88|39|N|,Grozny|chechnya|RU|45.69|43.31|297|W|grosnij;grosny;grozni;groznyi;groznyj;groznyy;groznai;groznii,Guacara|carabobo|VE|-67.88|10.23|198|W|,Guadalajara|MX14|MX|-103.35|20.68|1385|NW|,Guadalupe|MX19|MX|-100.26|25.68|673|NW|ciudad guadalupe;villa de guadalupe,Guadalupe|MX32|MX|-102.52|22.75|170|NW|,Guamuchil|MX25|MX|-108.08|25.46|72|N|,Guanajuato|MX11|MX|-101.26|21.02|72|N|guanajuato city,Guang'an|sichuan|CN|106.64|30.47|858|W|,Guangshui|hubei|CN|114|31.62|154|W|,Guangyuan|sichuan|CN|105.82|32.44|516|W|kuang juan,Guangzhou|guangdong|CN|113.25|23.12|16096|W|canton;cantao;kanton;koshu,Guankou|hunan|CN|113.63|28.16|1380|W|,Guantanamo|guantanamo province|CU|-75.21|20.14|272|W|,Guarapari|espirito santo|BR|-40.5|-20.67|136|W|,Guarapuava|parana|BR|-51.47|-25.39|189|W|,Guarenas|miranda|VE|-66.62|10.47|248|W|,Guaruja|sao paulo|BR|-46.26|-23.99|294|W|,Guarulhos|sao paulo|BR|-46.53|-23.46|1345|W|,Guasave|MX25|MX|-108.47|25.57|71|N|,Guatemala City|guatemala|GT|-90.51|14.64|994|W|citta del guatemala;ciudad de guatemala;guatemala;guatemala stadt;guate;cidade da guatemala;ciudad guatemala;guatemala by;guatemala stad;gwatemala;new guatemala;nueva guatemala;santiago de guatimala,Guatire|miranda|VE|-66.54|10.47|227|W|,Guayaquil|guayas|EC|-79.89|-2.2|2723|W|guaiaquil,Gucun|shanghai|CN|121.39|31.35|240|W|,Guediawaye|dakar|SN|-17.4|14.77|329|W|,Guelph|ON|CA|-80.26|43.55|143|NW|,Guigang|guangxi|CN|109.59|23.12|1086|W|kuej kang,Guildford|BC|CA|-122.8|49.19|64|N|,Guilin|guangxi|CN|110.3|25.28|1572|W|kuej lin,Guixi|chongqing|CN|107.35|30.33|188|W|,Guiyang|guizhou|CN|106.72|26.58|3037|W|kuej jang;quy duong,Gujangbagh|xinjiang|CN|79.93|37.11|408|W|chotan;ciudad de jotan;hotan;hoten;khotan,Gujranwala|punjab|PK|74.19|32.16|2511|W|gudzranwala;gudzranvala,Gujrat|punjab|PK|74.08|32.57|574|W|,Gulfport|MS|US|-89.09|30.37|71|N|,Guli|zhejiang|CN|120.03|28.88|536|W|,Gulu|northern region|UG|32.3|2.77|177|W|,Gumi|gyeongsangbuk do|KR|128.34|36.11|404|W|,Guna|madhya pradesh|IN|77.31|24.65|180|W|,Gunan|chongqing|CN|106.65|29.02|208|W|,Gundupalaiyam|puducherry|IN|79.8|11.94|300|W|,Gunpo|gyeonggi do|KR|126.95|37.37|286|W|,Gunsan|jeollabuk do|KR|126.71|35.98|264|W|kunsan;kunsanpo,Guntur|andhra pradesh|IN|80.46|16.3|670|W|gunturu,Gunungsitoli|north sumatra|ID|97.61|1.29|136|W|,Guri-si|gyeonggi do|KR|127.14|37.6|195|W|guri,Gurnee|IL|US|-87.9|42.37|31|N|,Gurue|zambezia province|MZ|36.98|-15.47|168|W|,Gurugram|haryana|IN|77.03|28.46|886|W|gurgaon,Gusau|zamfara state|NG|6.66|12.17|226|W|,Gustavo Adolfo Madero|MX09|MX|-99.11|19.49|1185|NW|gustavo a madero,Guwahati|assam|IN|91.75|26.18|962|W|gauhati,Guyong|central luzon|PH|120.98|14.84|155|W|,Guyuan|ningxia|CN|106.28|36.01|411|W|,Gwalior|madhya pradesh|IN|78.17|26.23|1054|W|,Gwangju|gwangju|KR|126.92|35.15|1401|W|gwangju si;kwangdzu;kwangju,Gwangmyeong|gyeonggi do|KR|126.87|37.48|357|W|,Gwangyang|jeollanam do|KR|127.7|34.94|154|W|,Gweru|midlands province|ZW|29.82|-19.45|158|W|,Gwynn Oak|MD|US|-76.69|39.33|47|N|,Gyanpur|uttar pradesh|IN|82.47|25.33|200|W|,Gyeongju|gyeongsangbuk do|KR|129.21|35.84|245|W|,Gyeongsan-si|gyeongsangbuk do|KR|128.74|35.82|266|W|gyeongsan,Ha'il|ha il region|SA|41.69|27.52|605|W|hail,Ha Long|quang ninh|VN|107.07|20.95|270|W|,Ha Tinh|ha tinh province|VN|105.91|18.34|266|W|ha thin;thanh sen,Haarlem|north holland|NL|4.64|52.38|162|W|,Habra|west bengal|IN|88.66|22.84|139|W|,Hachinohe|aomori|JP|141.5|40.5|239|W|,Hachioji|tokyo|JP|139.32|35.66|579|W|hachiouji,Hacienda Heights|CA|US|-117.97|33.99|54|N|,Hacienda Santa Fe|MX14|MX|-103.38|20.52|86|N|,Hackensack|NJ|US|-74.04|40.89|44|N|,Hada'iq al Qubbah|cairo|EG|31.28|30.09|339|W|,Hadano|kanagawa|JP|139.22|35.37|163|W|,Haeju|south hwanghae|KP|125.71|38.04|222|W|,Hafar Al-Batin|eastern province|SA|45.97|28.43|271|W|,Hafizabad|punjab|PK|73.69|32.07|318|W|,Hagen|north rhine westphalia|DE|7.47|51.36|198|W|,Hagerstown|MD|US|-77.72|39.64|40|N|,Hai Ba Trung|hanoi|VN|105.85|21.01|303|W|hai batrung,Hai Chau|da nang city|VN|108.13|15.92|131|W|,Hai Duong|hai phong|VN|106.33|20.94|241|W|,Haicheng|liaoning|CN|122.75|40.85|191|W|,Haifa|haifa|IL|35|32.81|285|W|hajfa;hayfa,Haikou|hainan|CN|110.35|20.03|2873|W|chaj kchou,Hailar|inner mongolia|CN|119.7|49.2|211|W|,Hailin|heilongjiang|CN|129.39|44.57|144|W|,Haiphong|hai phong|VN|106.68|20.86|2625|W|hai phong;hajfong,Hajipur|bihar|IN|85.21|25.69|147|W|,Hakodate|hokkaido|JP|140.74|41.78|275|W|,Haldia|west bengal|IN|88.11|22.06|170|W|,Haldwani|uttarakhand|IN|79.53|29.22|139|W|haldwani kathgodam;haldwani cum kathgodam,Halifax|NS|CA|-63.58|44.64|471|NW|,Hallandale Beach|FL|US|-80.15|25.98|39|N|hallandale,Halle (Saale)|saxony anhalt|DE|11.98|51.48|237|W|halle;halle an der saale;halle sul saale,Haltom City|TX|US|-97.27|32.8|44|N|,Halton Hills|ON|CA|-79.93|43.64|62|N|,Halwan|cairo|EG|31.3|29.84|230|W|helwan,Hamadan|hamadan province|IR|48.51|34.8|528|W|,Hamah|hama|SY|36.76|35.13|460|W|hama,Hamamatsu|shizuoka|JP|137.73|34.7|791|W|hamamacu;hamamatsu city;hamamatsu shi,Hamburg|hamburg|DE|9.99|53.55|1973|W|hamburgo;amburgo;hamborg;hambourg;hamburk;hampuri,Hamburg-Mitte|hamburg|DE|10.02|53.55|301|W|bezirk hamburg mitte;hamburg centru,Hamburg-Nord|hamburg|DE|9.98|53.59|315|W|bezirk hamburg nord;distretto di hamburg nord,Hamden|CT|US|-72.9|41.4|59|N|,Hamhung|south hamgyong|KP|127.54|39.92|559|W|,Hami|xinjiang|CN|93.51|42.83|246|W|kumul,Hamilton|ON|CA|-79.85|43.25|569|NW|,Hamilton|waikato region|NZ|175.28|-37.78|192|W|,Hamilton|OH|US|-84.56|39.4|62|N|,Hamm|north rhine westphalia|DE|7.82|51.68|178|W|,Hammond|IN|US|-87.5|41.58|77|N|,Hampton|VA|US|-76.35|37.03|137|NW|,Hanam|gyeonggi do|KR|127.21|37.54|254|W|,Handan|hebei|CN|114.49|36.61|1358|W|chan tan;ham dan,Hanfeng|chongqing|CN|108.4|31.17|196|W|,Hanford|CA|US|-119.65|36.33|55|N|,Hangu|tianjin|CN|117.79|39.25|208|W|,Hangzhou|zhejiang|CN|120.16|30.29|9236|W|chang cou;hang chau,Hannover|lower saxony|DE|9.73|52.37|515|W|hanover;hanovra;hanovre;hanower,Hanoi|hanoi|VN|105.84|21.02|8053|W|hanoj;kecho;kescio;thang long,Hanover|MD|US|-76.72|39.19|38|N|,Hanover Park|IL|US|-88.15|42|38|N|,Hanumangarh|rajasthan|IN|74.33|29.58|155|W|,Hanzhong|shaanxi|CN|107.02|33.08|1006|W|chan cung;han trung,Hapur|uttar pradesh|IN|77.78|28.73|242|W|,Harar|harari|ET|42.12|9.31|157|W|harar jugol;harer,Harare|harare|ZW|31.05|-17.83|1542|W|,Harbin|heilongjiang|CN|126.65|45.75|5242|W|charbin;cap nhi tan,Harburg|hamburg|DE|9.98|53.46|169|W|hamburg harburg;bezirk harburg;distretto di harburg;hambourg harburg;hamburgo harburgo,Hargeysa|woqooyi galbeed|SO|44.06|9.56|477|W|hargeisa,Haridwar|uttarakhand|IN|78.16|29.95|186|W|hardwar;haridvar,Harker Heights|TX|US|-97.66|31.08|29|N|,Harlem|NY|US|-73.95|40.81|116|N|,Harlingen|TX|US|-97.7|26.19|65|N|,Harrisburg|PA|US|-76.88|40.27|50|N|,Harrison|NY|US|-73.71|40.97|28|N|,Harrisonburg|VA|US|-78.87|38.45|52|N|,Harrow|england|GB|-0.33|51.58|149|W|,Hartford|CT|US|-72.69|41.76|121|N|,Harunabad|punjab|PK|73.14|29.61|149|W|,Harvey|IL|US|-87.65|41.61|25|N|,Hashtsal|delhi|IN|77.06|28.63|176|W|,Hasilpur|punjab|PK|72.55|29.69|168|W|,Hassan|karnataka|IN|76.1|13.01|155|W|,Hastings-Sunrise|BC|CA|-123.03|49.28|34|N|,Hat Yai|songkhla|TH|100.48|7.01|191|W|,Hathazari|chittagong|BD|91.81|22.51|498|W|,Hattiesburg|MS|US|-89.29|31.33|46|N|,Havana|havana|CU|-82.38|23.13|2163|W|havanna;hawana;l avana;la habana;la havane,Haverhill|MA|US|-71.08|42.78|62|N|,Havertown|PA|US|-75.31|39.98|50|N|,Hawai'i Kai|HI|US|-157.7|21.3|30|N|,Hawalli|hawalli|KW|48.03|29.33|164|W|havalli,Hawthorne|CA|US|-118.35|33.92|88|N|,Hayward|CA|US|-122.08|37.67|158|NW|,Hayy Khilda|amman|JO|35.84|31.99|251|W|,Hazaribagh|jharkhand|IN|85.36|23.99|153|W|hazaribag,Hazelwood|MO|US|-90.37|38.77|25|N|,Hebi|henan|CN|114.29|35.73|634|W|che pi,Hebron|west bank|PS|35.09|31.53|160|W|el halil;hebrom,Hechi|guangxi|CN|108.08|24.69|330|W|,Hechuan|chongqing|CN|106.26|29.99|377|W|,Hefei|anhui|CN|117.28|31.86|5050|W|che fej,Hegang|heilongjiang|CN|130.29|47.35|743|W|che kang,Heidelberg|baden wurttemberg|DE|8.69|49.41|143|W|edelberga;heidelberga,Heihe|heilongjiang|CN|127.49|50.24|223|W|chej che,Hejiang|sichuan|CN|105.83|28.81|137|W|,Helena|MT|US|-112.04|46.59|32|N|,Hell's Kitchen|NY|US|-73.99|40.76|45|N|la cocina del infierno;midtown west,Helsinki|uusimaa|FI|24.94|60.17|658|W|helsingfors;helsinky;helsinquia;khel sinki,Hemet|CA|US|-116.97|33.75|83|N|,Hempstead|NY|US|-73.62|40.71|55|N|,Henderson|NV|US|-114.98|36.04|285|NW|,Henderson|KY|US|-87.59|37.84|28|N|,Hendersonville|TN|US|-86.62|36.3|56|N|,Hengshan|heilongjiang|CN|130.9|45.21|164|W|,Hengshui|hebei|CN|115.68|37.74|522|W|cheng suej,Hengyang|hunan|CN|112.62|26.89|1075|W|cheng jang;hanh duong,Henrietta|NY|US|-77.61|43.06|42|N|,Hepo|guangdong|CN|115.83|23.43|131|W|,Hepu|guangxi|CN|109.2|21.66|192|W|,Herat|herat|AF|62.2|34.35|574|W|,Hercules|CA|US|-122.29|38.02|25|N|,Hermitage|TN|US|-86.62|36.2|37|N|,Hermosillo|MX26|MX|-110.97|29.09|812|NW|,Herne|north rhine westphalia|DE|7.23|51.54|172|W|,Heroica Caborca|MX26|MX|-112.16|30.72|59|N|caborca,Heroica Ciudad de Juchitan de Zaragoza|MX20|MX|-95.02|16.43|88|N|juchitan de zaragoza;juchitan,Heroica Guaymas|MX26|MX|-110.9|27.92|117|N|guaymas,Heroica Matamoros|MX28|MX|-97.5|25.88|510|NW|matamoros,Heroica Zitacuaro|MX16|MX|-100.36|19.44|84|N|,Herriman|UT|US|-112.03|40.51|30|N|,Heshan|hunan|CN|112.35|28.57|1249|W|,Hesperia|CA|US|-117.3|34.43|93|N|,Hetauda|bagmati province|NP|85.03|27.43|195|W|,Heyuan|guangdong|CN|114.68|23.73|463|W|che juan;ha nguyen,Heze|shandong|CN|115.47|35.24|1346|W|che ce,Hezhou|guangxi|CN|111.57|24.4|1005|W|che cou,Hialeah|FL|US|-80.28|25.86|237|NW|,Hickory|NC|US|-81.34|35.73|40|N|,Hicksville|NY|US|-73.53|40.77|41|N|,Hidalgo del Parral|MX06|MX|-105.67|26.93|104|N|parral,Higashihiroshima|hiroshima|JP|132.74|34.41|196|W|,Higashimurayama|tokyo|JP|139.47|35.75|151|W|,Higashiosaka|osaka|JP|135.58|34.67|493|W|,High Point|NC|US|-80.01|35.96|110|N|,High Wycombe|england|GB|-0.75|51.63|133|W|,Highland|CA|US|-117.21|34.13|54|N|,Highland Park|IL|US|-87.8|42.18|29|N|,Highlands Ranch|CO|US|-104.97|39.55|96|N|,Hilliard|OH|US|-83.16|40.03|33|N|,Hillsboro|OR|US|-122.99|45.52|102|N|,Hillsborough|NJ|US|-74.63|40.48|38|N|,Hilo|HI|US|-155.09|19.73|43|N|baie de hilo,Hilton Head|SC|US|-80.75|32.22|37|N|hilton head island,Hilton Head Island|SC|US|-80.74|32.19|40|N|ile de hilton head,Himeji|hyogo|JP|134.7|34.82|530|W|,Hindupur|andhra pradesh|IN|77.49|13.83|151|W|,Hinesville|GA|US|-81.6|31.85|33|N|,Hino|tokyo|JP|139.4|35.67|190|W|,Hinthada|ayeyarwady|MM|95.46|17.65|134|W|henzada,Hirakata|osaka|JP|135.65|34.81|406|W|,Hiratsuka|kanagawa|JP|139.34|35.33|258|W|,Hirosaki|aomori|JP|140.47|40.59|168|W|,Hiroshima|hiroshima|JP|132.45|34.4|1200|W|hiroshima shi;hiroshimashi;hiroszima;hiroxima;hirosima,Hisar|haryana|IN|75.72|29.15|307|W|,Hitachi|ibaraki|JP|140.65|36.6|174|W|,Hitachi-Naka|ibaraki|JP|140.53|36.4|156|W|,Hlaingthaya|yangon|MM|96.07|16.85|687|W|,Ho|volta|GH|0.47|6.6|130|W|,Ho Chi Minh City|ho chi minh city hcmc|VN|106.63|10.82|14002|W|ho chi minh stadt;ho chi minh ville;hcmv;tphcm;cidade de ho chi minh;ciudad ho chi minh;ho chi minh;ho chi minh byen;ho chi minh staden;ho chi minhstad;ho ci minovo mesto;saigon;sai gon,Hoa Thanh|tay ninh|VN|106.13|11.29|147|W|,Hoan Kiem|hanoi|VN|105.85|21.03|135|W|,Hobart|tasmania|AU|147.33|-42.88|254|W|,Hobart|IN|US|-87.26|41.53|28|N|,Hobbs|NM|US|-103.14|32.7|38|N|,Hoboken|NJ|US|-74.03|40.74|53|N|,Hoffman Estates|IL|US|-88.08|42.04|52|N|,Hohhot|inner mongolia|CN|111.65|40.81|2350|W|choch chot;huhhot;kweisui,Hoji ya Henda|luanda|AO|13.29|-8.81|642|W|,Holbrook|NY|US|-73.08|40.81|27|N|,Holguin|holguin province|CU|-76.26|20.89|319|W|,Holladay|UT|US|-111.82|40.67|30|N|,Holland|MI|US|-86.11|42.79|33|N|,Hollister|CA|US|-121.4|36.85|37|N|,Holly Springs|NC|US|-78.83|35.65|31|N|,Hollywood|CA|US|-118.33|34.1|167|NW|,Hollywood|FL|US|-80.15|26.01|149|NW|,Holmesburg|PA|US|-75.03|40.04|28|N|,Holon|tel aviv|IL|34.78|32.01|196|W|cholon;jolon,Holyoke|MA|US|-72.62|42.2|40|N|,Homestead|FL|US|-80.48|25.47|80|N|,Homewood|AL|US|-86.8|33.47|25|N|,Homs|homs|SY|36.73|34.72|775|W|hims;hums;humus,Homyel'|homyel voblasc|BY|30.98|52.43|501|W|homel;homiel;gomel,Honcho|chiba|JP|139.99|35.7|644|W|funabashi,Hong Kong||HK|114.17|22.28|7396|W|hongkong;victoria,Hong Kong Island||HK|114.18|22.26|1195|W|hong kong,Honggang|heilongjiang|CN|124.88|46.4|147|W|,Hongkou|shanghai|CN|121.49|31.25|687|W|,Honolulu|HI|US|-157.86|21.31|350|NW|,Hoofddorp|north holland|NL|4.69|52.3|132|W|,Hoover|AL|US|-86.81|33.41|84|N|,Hopkinsville|KY|US|-87.49|36.87|32|N|,Horlivka|donetsk|UA|38.02|48.3|239|W|gorlowka;gorlovka;horliwka,Horn Lake|MS|US|-90.03|34.96|26|N|,Horta-Guinardo|catalonia|ES|2.17|41.42|168|W|,Hortaleza|madrid|ES|-3.64|40.47|161|W|,Hortolandia|sao paulo|BR|-47.22|-22.86|236|W|,Hosa'ina|central ethiopia regional state|ET|37.85|7.55|188|W|,Hosapete|karnataka|IN|76.39|15.27|206|W|hospet,Hoshiarpur|punjab|IN|75.91|31.54|168|W|,Hosur|tamil nadu|IN|77.83|12.74|229|W|,Hot Springs|AR|US|-93.06|34.5|35|N|,Hougang New Town||SG|103.89|1.36|227|W|hougang,Houma|LA|US|-90.72|29.6|34|N|,Houston|TX|US|-95.36|29.76|2314|NW|,Howard Beach|NY|US|-73.84|40.66|26|N|,Howrah|west bengal|IN|88.32|22.58|1027|W|haora,Hrodna|grodnenskaya|BY|23.83|53.68|363|W|goradnia;grodno,Hsinchu|taiwan|TW|120.97|24.8|453|W|kota hsinchu;sin cu;tan truc;xinzhu,Huadian|jilin|CN|126.74|42.97|139|W|,Huai'an|jiangsu|CN|119.02|33.59|2494|W|chuaj an;huaiyin,Huaibei|anhui|CN|116.79|33.97|1113|W|chuaj pej,Huaihua|hunan|CN|110|27.56|552|W|chuaj chua;hoai hoa,Huainan|anhui|CN|117|32.63|1666|W|,Huamantla|MX29|MX|-97.93|19.31|51|N|,Huambo|huambo|AO|15.74|-12.78|595|W|,Huancayo|junin|PE|-75.21|-12.07|456|W|,Huanggang|hubei|CN|114.87|30.45|366|W|chuang kang;hoang cuong;hwang chau;hwang chow;hwangchow;wangchau;wangchou,Huanggang|guangdong|CN|117|23.68|225|W|,Huangpu|shanghai|CN|121.48|31.24|504|W|,Huangshan|anhui|CN|118.31|29.71|460|W|chuang san;hoang son;huangshan city,Huangshi|hubei|CN|115.05|30.25|688|W|chuang s,Huanuco|huanuco department|PE|-76.24|-9.93|196|W|,Huatabampo|MX26|MX|-109.64|26.83|30|N|,Huatusco|MX30|MX|-96.97|19.15|31|N|,Huauchinango|MX21|MX|-98.05|20.17|56|N|,Huayin|shaanxi|CN|110.07|34.57|242|W|,Hub|balochistan|PK|66.89|25.03|195|W|,Hubballi|karnataka|IN|75.13|15.35|943|W|hubli,Huber Heights|OH|US|-84.12|39.84|38|N|,Huddersfield|england|GB|-1.78|53.65|149|W|,Hue|thua thien hue province|VN|107.6|16.46|1380|W|,Huejotzingo|MX21|MX|-98.41|19.16|25|N|,Huejutla de Reyes|MX13|MX|-98.42|21.14|40|N|,Huelva|andalusia|ES|-6.94|37.27|144|W|,Hugli|west bengal|IN|88.4|22.91|177|W|,Huimanguillo|MX27|MX|-93.39|17.83|27|N|,Huinong|ningxia|CN|106.77|39.23|136|W|,Huixing|chongqing|CN|106.61|29.68|186|W|,Huixquilucan|MX15|MX|-99.35|19.36|124|N|,Huixtla|MX05|MX|-92.46|15.14|32|N|,Huizhou|guangdong|CN|114.42|23.11|2900|W|chuej cou,Hulan Ergi|heilongjiang|CN|123.63|47.2|265|W|,Hull|QC|CA|-75.71|45.43|63|N|,Huludao|liaoning|CN|120.84|40.75|944|W|,Hulunbuir|inner mongolia|CN|119.76|49.21|349|W|,Humen|guangdong|CN|113.67|22.82|191|W|,Hungnam|south hamgyong|KP|127.63|39.84|346|W|,Huntersville|NC|US|-80.84|35.41|52|N|,Huntington|WV|US|-82.45|38.42|48|N|,Huntington Beach|CA|US|-118|33.66|201|NW|,Huntington Park|CA|US|-118.23|33.98|59|N|,Huntington Station|NY|US|-73.41|40.85|33|N|,Huntley|IL|US|-88.43|42.17|26|N|,Hunts Point|NY|US|-73.88|40.81|27|N|,Huntsville|AL|US|-86.59|34.73|215|NW|,Huntsville|TX|US|-95.55|30.72|40|N|,Huocheng|xinjiang|CN|80.87|44.05|360|W|huocheng county,Hurghada|red sea|EG|33.81|27.26|207|W|hurgada,Hurst|TX|US|-97.17|32.82|39|N|,Hutchinson|KS|US|-97.93|38.06|41|N|,Huyen Lam Ha|lam dong|VN|108.21|11.82|144|W|lam ha;lam ha district,Huzhou|zhejiang|CN|120.09|30.87|1015|W|,Hwaseong-si|gyeonggi do|KR|126.82|37.21|640|W|hwaseong,Hyde Park|MA|US|-71.12|42.26|31|N|,Hyde Park|IL|US|-87.59|41.79|26|N|,Hyderabad|telangana|IN|78.46|17.38|6993|W|haiderabad;hajdarabad,Hyderabad|sindh|PK|68.38|25.4|1921|W|hajdarabad;haydarabad,Hyesan|yanggang do|KP|128.18|41.4|192|W|,Iasi|iasi county|RO|27.6|47.17|378|W|jassy;jasy;yas;jassenmarkt,Ibadan|oyo state|NG|3.91|7.38|3649|W|,Ibague|tolima department|CO|-75.2|4.44|529|W|,Ibaraki|osaka|JP|135.57|34.82|287|W|,Ibarra|imbabura|EC|-78.12|0.35|221|W|,Ibb|ibb governorate|YE|44.18|13.97|771|W|,Ibirite|minas gerais|BR|-44.06|-20.02|179|W|,'Ibri|ad dhahirah|OM|56.52|23.23|163|W|,Ica|ica|PE|-75.73|-14.08|282|W|ika,Ichalkaranji|maharashtra|IN|74.46|16.69|287|W|,Icheon-si|gyeonggi do|KR|127.44|37.28|196|W|icheon,Ichihara|chiba|JP|140.08|35.52|283|W|,Ichikawa|chiba|JP|139.91|35.73|496|W|,Ichinomiya|aichi|JP|136.8|35.3|380|W|owari ichinomiya,Idaho Falls|ID|US|-112.03|43.47|59|N|,Idku|beheira|EG|30.3|31.31|177|W|,Ifakara|morogoro|TZ|36.68|-8.13|205|W|,Igboho|oyo state|NG|3.76|8.84|136|W|,Iguala de la Independencia|MX12|MX|-99.54|18.35|118|N|,Iguatemi|sao paulo|BR|-46.43|-23.61|149|W|,Ijebu Ode|ogun state|NG|3.92|6.82|360|W|,Ijero-Ekiti|ekiti state|NG|5.07|7.82|167|W|,Ikare|ondo state|NG|5.75|7.53|465|W|,Ikeja|lagos|NG|3.34|6.6|313|W|,Ikire|osun state|NG|4.19|7.37|222|W|,Ikirun|osun state|NG|4.67|7.91|134|W|,Ikot Ekpene|akwa ibom state|NG|7.71|5.18|254|W|,Iksan|jeollabuk do|KR|126.95|35.94|307|W|,Ila Orangun|osun state|NG|4.9|8.02|179|W|,Ilagan|cagayan valley|PH|121.89|17.15|164|W|,Ilam|ilam province|IR|46.42|33.64|140|W|,Ile-Ife|osun state|NG|4.56|7.48|560|W|,Ilesa|osun state|NG|4.74|7.63|325|W|,Ilford|england|GB|0.07|51.56|168|W|,Ilheus|bahia|BR|-39.03|-14.8|189|W|sao jorge dos ilheos,Iligan|northern mindanao|PH|124.24|8.23|342|W|,Iligan City|soccsksargen|PH|124.4|8.25|312|W|,Iloilo|western visayas|PH|122.56|10.7|473|W|iloilo city,Ilorin|kwara state|NG|4.54|8.5|1080|W|,Imabari|ehime|JP|133|34.07|170|W|,Imperatriz|maranhao|BR|-47.49|-5.53|273|W|,Imperial Beach|CA|US|-117.11|32.58|27|N|,Imphal|manipur|IN|93.94|24.81|277|W|,Imus|calabarzon|PH|120.94|14.43|481|W|,Inazawa|aichi|JP|136.78|35.25|134|W|,Incheon|incheon|KR|126.71|37.46|3015|W|inch on;incheon si;inchon;incchon;nhan xuyen;chemulpo,Indaiatuba|sao paulo|BR|-47.21|-23.09|256|W|,Independence|MO|US|-94.42|39.09|117|N|,Independence|KY|US|-84.54|38.94|26|N|,Indian Trail|NC|US|-80.67|35.08|37|N|,Indianapolis|IN|US|-86.16|39.77|887|NW|indpls,Indio|CA|US|-116.22|33.72|87|N|,Indore|madhya pradesh|IN|75.83|22.72|1994|W|indhur,Inegol|bursa province|TR|29.51|40.08|133|W|,Inezgane|souss massa|MA|-9.54|30.36|142|W|,Inglewood|CA|US|-118.35|33.96|111|N|,Ingombota|luanda|AO|13.23|-8.82|144|W|,Inisa|osun state|NG|4.33|7.85|164|W|,Innisfil|ON|CA|-79.65|44.3|43|N|,Innsbruck|tyrol|AT|11.39|47.26|132|W|,Insein|yangon|MM|96.1|16.89|247|W|,Inver Grove Heights|MN|US|-93.04|44.85|34|N|inver grove,Iowa City|IA|US|-91.53|41.66|74|N|,Ipatinga|minas gerais|BR|-42.54|-19.47|235|W|,Ipoh|perak|MY|101.08|4.58|759|W|,Ipswich|england|GB|1.16|52.06|178|W|,Iquique|tarapaca|CL|-70.15|-20.21|199|W|,Iquitos|loreto|PE|-73.25|-3.75|377|W|,Irakleion|crete|GR|25.14|35.33|137|W|heraklion;candia;heracliao;heraclion;herakleion;iraklio;iraklion;iraclio;kandiye,Iranshahr|sistan and baluchestan|IR|60.68|27.2|131|W|,Irapuato|MX11|MX|-101.36|20.67|380|NW|,Irbid|irbid|JO|35.85|32.56|569|W|,Irewe|lagos|NG|3.14|6.42|139|W|,Iringa|iringa|TZ|35.7|-7.77|202|W|,Irkutsk|irkutsk oblast|RU|104.29|52.3|623|W|irkoetsk;irkoutsk;irkuck;irkutsc;irkutk,Irondequoit|NY|US|-77.58|43.21|51|N|,Iruma|saitama|JP|139.37|35.82|147|W|,Irvine|CA|US|-117.82|33.67|256|NW|,Irving|TX|US|-96.95|32.81|236|NW|,Irving Park|IL|US|-87.74|41.95|56|N|,Irvington|NJ|US|-74.23|40.73|61|N|,Isahaya|nagasaki|JP|130.04|32.84|135|W|,Ise-Ekiti|ekiti state|NG|5.42|7.46|190|W|,Isesaki|gunma|JP|139.2|36.32|211|W|,Iseyin|oyo state|NG|3.6|7.97|365|W|,Isfahan|isfahan|IR|51.67|32.65|1547|W|esfahan;ispahan;kota isfahan,Isfara|sughd|TJ|70.63|40.13|274|W|,Ishinomaki|miyagi|JP|141.3|38.42|140|W|,Isidro Casanova|buenos aires|AR|-58.59|-34.7|131|W|,Isiro|haut uele|CD|27.62|2.77|255|W|,Iskandar Puteri|johor|MY|103.62|1.39|575|W|,Iskenderun|hatay|TR|36.17|36.59|251|W|alejandreta;aleksandretta;alexandretta,Isla|MX30|MX|-95.53|18.03|26|N|,Islamabad|islamabad|PK|73.04|33.72|601|W|islamabade,Islington|england|GB|-0.1|51.54|319|W|,Islington-City Centre West|ON|CA|-79.54|43.63|43|N|,Ismailia|ismailia|EG|32.27|30.6|429|W|el ismalia;ismalia;ismailija;ismailiye,Isparta|isparta|TR|30.55|37.76|172|W|,Issaquah|WA|US|-122.03|47.53|36|N|,Istanbul|istanbul|TR|28.95|41.01|15701|W|estambul;istambul;stambul;byzance;byzantion;byzantium;constantinopla;constantinople;constantinopolen;costantinopoli;konstantinopel;micklagard,Istaravshan|sughd|TJ|69|39.91|273|W|istaravchan;istaravsjan;istaravsan;istarawschan;istarawshan;istarawszan,Itabashi|tokyo|JP|139.71|35.75|584|W|tabashi city,Itaborai|rio de janeiro|BR|-42.86|-22.74|240|W|,Itabuna|bahia|BR|-39.28|-14.79|196|W|,Itaguei|antioquia|CO|-75.6|6.18|281|W|itagui,Itaim Paulista|sao paulo|BR|-46.39|-23.5|205|W|,Itaituba|para|BR|-55.98|-4.28|135|W|,Itajai|santa catarina|BR|-48.66|-26.91|294|W|itajahy,Itami|hyogo|JP|135.4|34.78|198|W|,Itapecerica da Serra|sao paulo|BR|-46.85|-23.72|163|W|,Itapetininga|sao paulo|BR|-48.05|-23.59|164|W|,Itapevi|sao paulo|BR|-46.93|-23.55|240|W|,Itapipoca|ceara|BR|-39.58|-3.49|138|W|,Itaquaquecetuba|sao paulo|BR|-46.35|-23.49|369|W|,Itaquera|sao paulo|BR|-46.44|-23.53|210|W|,Ithaca|NY|US|-76.5|42.44|30|N|,Itu|sao paulo|BR|-47.3|-23.26|175|W|,Ituzaingo|corrientes|AR|-56.69|-27.59|168|W|,Ivano-Frankivsk|ivano frankivsk|UA|24.71|48.92|238|W|ivano frankivs k;iwano frankiwsk;stanislaopoli;stanislau;stanislaw;stanislawow,Ivanovo|ivanovo oblast|RU|40.97|57|406|W|iwanowo,Ivory Park|gauteng|ZA|28.2|-26|184|W|,Iwaki|fukushima|JP|140.88|37.05|357|W|,Iwata|shizuoka|JP|137.85|34.7|166|W|,Iwo|osun state|NG|4.18|7.64|250|W|,Ixmiquilpan|MX13|MX|-99.22|20.48|34|N|,Ixtaczoquitlan|MX30|MX|-97.06|18.85|26|N|,Ixtapa|MX14|MX|-105.21|20.72|29|N|,Ixtapa-Zihuatanejo|MX12|MX|-101.55|17.64|67|N|jose azueta;zihuatanejo,Ixtapaluca|MX15|MX|-98.88|19.32|322|NW|iztapaluca,Ixtepec|MX20|MX|-95.1|16.56|25|N|san geronimo ixtepec;ciudad ixtepec,Izhevsk|udmurtiya republic|RU|53.2|56.85|648|W|izjevsk;ijevsk;ischewsk;izewsk;izevsk,Izmir|izmir province|TR|27.14|38.41|2938|W|esmirna;smirne,Izmit|kocaeli|TR|29.93|40.76|196|W|nicomedia;nicomedie;nikomedia,Iztacalco|MX09|MX|-99.1|19.4|384|NW|,Iztapalapa|MX09|MX|-99.06|19.36|1835|NW|delegacion iztapalapa;delegazione iztapalapa,Izucar de Matamoros|MX21|MX|-98.46|18.6|42|N|izucar,Izumi|osaka|JP|135.43|34.48|184|W|,Izumo|shimane|JP|132.77|35.37|172|W|,Jabalpur|madhya pradesh|IN|79.95|23.17|1081|W|dzabalpur,Jabalya|gaza strip|PS|34.48|31.53|168|W|jabalia,Jabaquara|sao paulo|BR|-46.65|-23.65|214|W|,Jaboatao dos Guararapes|pernambuco|BR|-35.01|-8.11|644|W|,Jacarei|sao paulo|BR|-45.97|-23.31|250|W|,Jackson|MS|US|-90.18|32.3|153|NW|,Jackson|TN|US|-88.81|35.61|66|N|,Jackson|NJ|US|-74.86|39.78|54|N|,Jackson|MI|US|-84.4|42.25|33|N|,Jackson Heights|NY|US|-73.89|40.76|67|N|,Jacksonville|FL|US|-81.66|30.33|1009|NW|,Jacksonville|NC|US|-77.43|34.75|67|N|,Jacksonville|AR|US|-92.11|34.87|28|N|,Jacmel|sud est|HT|-72.54|18.24|137|W|yaquimo,Jacobabad|sindh|PK|68.44|28.28|219|W|khangarh,Jacona de Plancarte|MX16|MX|-102.31|19.96|53|N|,Jaffna|northern province|LK|80.01|9.67|169|W|dzafna,Jahrom|fars|IR|53.56|28.5|141|W|,Jaigaon|west bengal|IN|89.38|26.85|158|W|,Jaipur|rajasthan|IN|75.79|26.92|3046|W|dzajpur,Jajmau|uttar pradesh|IN|80.41|26.43|652|W|,Jakarta|jakarta|ID|106.85|-6.21|8540|W|cakarta;djakarta;dzakarta;giacarta;yakarta;batavia;sunda kelapa;sundapura,Jalalabad|nangarhar|AF|70.45|34.43|271|W|celalabad;dschalalabad;dzalalabad,Jalalpur Jattan|punjab|PK|74.21|32.64|146|W|,Jalalpur Pirwala|punjab|PK|71.22|29.51|500|W|dzalalpur pirwala,Jalandhar|punjab|IN|75.58|31.33|868|W|dzalandhar,Jalapa|jalapa|GT|-89.99|14.64|159|W|,Jalgaon|maharashtra|IN|75.57|21|460|W|,Jalna|maharashtra|IN|75.89|19.84|285|W|,Jaltipan de Morelos|MX30|MX|-94.71|17.97|32|N|,Jamaica|NY|US|-73.81|40.69|216|NW|,Jamaica Plain|MA|US|-71.12|42.31|37|N|,Jamalpur|mymensingh division|BD|89.95|24.92|167|W|,Jambi City|jambi|ID|103.62|-1.6|635|W|jambi,Jamestown|NY|US|-79.24|42.1|30|N|,Jammu|jammu and kashmir|IN|74.86|32.74|576|W|dzammu,Jamnagar|gujarat|IN|70.07|22.47|600|W|dzamnagar,Jampur|punjab|PK|70.6|29.64|155|W|,Jamshedpur|jharkhand|IN|86.19|22.8|1339|W|cemsidpur;dzamsedpur,Jamuria|west bengal|IN|87.08|23.7|160|W|,Janakpur|madhesh|NP|85.93|26.73|195|W|janakpur dham,Janesville|WI|US|-89.02|42.68|64|N|,Janzur|al jafarah|LY|13.02|32.82|154|W|,Jaragua|sao paulo|BR|-46.74|-23.44|211|W|,Jaragua do Sul|santa catarina|BR|-49.07|-26.49|199|W|,Jaranwala|punjab|PK|73.42|31.33|150|W|,Jardim Angela|sao paulo|BR|-46.77|-23.72|311|W|,Jardim Sao Luis|sao paulo|BR|-46.74|-23.68|259|W|,Jardines de la Silla|MX19|MX|-100.19|25.63|53|N|,Jau|sao paulo|BR|-48.56|-22.3|133|W|,Jaunpur|uttar pradesh|IN|82.69|25.75|169|W|jawnpur,Jayapura|papua|ID|140.72|-2.53|410|W|jaya pura;kota jayapura;port numbay;hollandia;noordwijk,Jebel Ali|dubai|AE|55.11|25|210|W|,Jeddah|mecca region|SA|39.19|21.49|4697|W|cidde;djedda;djeddah;dschidda;dzudda;dzidda;jedda;jidda;jida;yida;yidda,Jefferson City|MO|US|-92.17|38.58|42|N|kota jefferson,Jeffersontown|KY|US|-85.56|38.19|26|N|,Jeffersonville|IN|US|-85.74|38.28|46|N|,Jeju City|jeju do|KR|126.52|33.51|488|W|czedzu;jeju;jeju sehri;kota jeju,Jember|east java|ID|113.7|-8.17|298|W|,Jeongeup|jeollabuk do|KR|126.92|35.6|139|W|,Jeonju|jeollabuk do|KR|127.15|35.82|638|W|chonju;condzu,Jepara|central java|ID|110.67|-6.59|1257|W|,Jerez de Garcia Salinas|MX32|MX|-102.99|22.65|43|N|,Jerez de la Frontera|andalusia|ES|-6.14|36.69|212|W|jerez;xeres,Jersey City|NJ|US|-74.08|40.73|264|NW|,Jerusalem|jerusalem|IL|35.22|31.77|971|W|gerusalemme;jerozolima;jerusalen;jeruzalem;al quds;ariel;ierusalim;kudus;yerusalem;zion,Jessore|khulna division|BD|89.21|23.17|243|W|,Jesus Maria|MX01|MX|-102.34|21.96|43|N|,Jhang Sadr|punjab|PK|72.32|31.27|606|W|jhang;jhang sadar,Jhansi|uttar pradesh|IN|78.58|25.46|412|W|,Jhelum|punjab|PK|73.73|32.93|190|W|alessandria bucefala;dzhelam;jhelam,Ji'an|jiangxi|CN|114.98|27.12|538|W|,Ji Parana|rondonia|BR|-61.95|-10.89|140|W|,Jiading|shanghai|CN|121.24|31.39|1886|W|,Jiagedaqi|inner mongolia|CN|124.12|50.42|135|W|jagdaqi,Jiamusi|heilongjiang|CN|130.31|46.8|549|W|tia mu s,Jiangmen|guangdong|CN|113.08|22.58|1795|W|giang mon;kongmoon;tiang men,Jiangyin|jiangsu|CN|120.26|31.91|1779|W|kiang ying,Jianshui|yunnan|CN|101.22|24.28|490|W|,Jiaojiang|zhejiang|CN|121.47|28.7|470|W|,Jiaozhou|shandong|CN|120|36.28|619|W|,Jiaozuo|henan|CN|113.24|35.24|865|W|tieu tac;tiao cuo,Jiashan|zhejiang|CN|120.93|30.85|137|W|,Jiawang|jiangsu|CN|117.44|34.43|133|W|,Jiaxing|zhejiang|CN|120.75|30.75|1180|W|gia hung;tia sing,Jiayuguan|gansu|CN|98.29|39.81|231|W|tia ju kuan,Jiazi|guangdong|CN|116.07|22.88|130|W|,Jieshi|guangdong|CN|115.83|22.81|137|W|,Jieshou|anhui|CN|115.36|33.26|141|W|,Jieyang|guangdong|CN|116.37|23.54|1899|W|tie jang,Jijel|jijel|DZ|5.76|36.82|131|W|dzidzili;yiyel;jijelli,Jijiang|chongqing|CN|106.25|29.29|196|W|,Jijiga|somali|ET|42.8|9.35|483|W|djidjiga;dschidschiga;dzidziga,Jilin|jilin|CN|126.56|43.85|1895|W|jilin city;ciudad de jilin;cat lam;kota jilin;ti lin,Jimeta|adamawa|NG|12.46|9.28|248|W|,Jimma|oromiya|ET|36.83|7.67|250|W|dzimma;gimma;jima,Jinan|shandong|CN|117|36.67|4335|W|ti nan,Jinchang|gansu|CN|102.19|38.5|228|W|kim xuong;tin cchang,Jincheng|shanxi|CN|112.83|35.5|476|W|,Jind|haryana|IN|76.32|29.32|167|W|,Jing'an|shanghai|CN|121.42|31.22|936|W|,Jing'an|guangdong|CN|113.29|22.21|186|W|,Jingdezhen|jiangxi|CN|117.21|29.29|473|W|,Jinghong|yunnan|CN|100.77|22|205|W|,Jingling|hubei|CN|113.1|30.65|224|W|,Jingmen|hubei|CN|112.2|31.03|632|W|kinh mon;ting men,Jingzhou|hubei|CN|112.19|30.35|1052|W|kinh chau;ting cou,Jinhua|zhejiang|CN|119.64|29.11|1463|W|kim hoa;tin chua,Jining|shandong|CN|116.58|35.41|1241|W|ti ning,Jining|inner mongolia|CN|113.11|41.03|258|W|,Jinjiang|fujian|CN|118.57|24.82|1416|W|,Jinshan|shanghai|CN|121.29|30.84|822|W|,Jinshanlu|xinjiang|CN|88.13|47.85|190|W|altay,Jinzhong|shanxi|CN|112.75|37.68|1226|W|,Jinzhou|liaoning|CN|121.14|41.11|604|W|tin cou,Jiroft|kerman|IR|57.74|28.68|130|W|,Jiujiang|jiangxi|CN|116|29.7|1164|W|ciuciang;tiou tiang,Jiuquan|gansu|CN|98.52|39.74|428|W|tiou cchuan,Jiutai|jilin|CN|125.83|44.15|175|W|,Jiutepec|MX17|MX|-99.18|18.88|215|NW|,Jixi|heilongjiang|CN|130.96|45.29|403|W|ke tay;ti si,Jiyuan|henan|CN|112.59|35.09|242|W|,Jizhou|hebei|CN|115.57|37.55|362|W|,Jizzax|jizzakh region|UZ|67.83|40.13|179|W|cizzak;djizak;djizaks;dschizak;dzjizak;dzyzak;jizzak;jizzakh,Joao Pessoa|paraiba|BR|-34.86|-7.12|817|W|,Jodhpur|rajasthan|IN|73.01|26.27|1056|W|dzodhpur;dzodpur,Joetsu|niigata|JP|138.24|37.15|189|W|,Johannesburg|gauteng|ZA|28.04|-26.2|9418|W|johannesbourg;jo anna;joanesburgo;johannesburgo,Johns Creek|GA|US|-84.2|34.03|83|N|,Johnson City|TN|US|-82.35|36.31|66|N|,Johnston|RI|US|-71.51|41.82|29|N|,Johor Bahru|johor|MY|103.76|1.47|858|W|johor baharu,Joint Base Pearl Harbor Hickam|HI|US|-157.95|21.35|42|N|,Joinville|santa catarina|BR|-48.85|-26.3|664|W|,Joliet|IL|US|-88.08|41.53|147|NW|,Joliette|QC|CA|-73.42|46.02|34|N|,Jomvu|mombasa county|KE|39.61|-3.99|163|W|,Jonesboro|AR|US|-90.7|35.84|73|N|,Jonquiere|QC|CA|-71.25|48.42|54|N|,Joplin|MO|US|-94.51|37.08|51|N|,Jos|plateau state|NG|8.89|9.93|1040|W|dzos,Jose C. Paz|buenos aires|AR|-58.77|-34.52|230|W|,Jose Mariano Jimenez|MX06|MX|-104.92|27.13|34|N|,Juazeiro|bahia|BR|-40.5|-9.41|256|W|,Juazeiro do Norte|ceara|BR|-39.32|-7.21|305|W|,Juba|central equatoria|SS|31.58|4.85|450|W|djouba;dschuba,Juiz de Fora|minas gerais|BR|-43.35|-21.76|540|W|,Juja|kiambu county|KE|37.01|-1.1|156|W|,Juliaca|puno|PE|-70.13|-15.5|245|W|,Junagadh|gujarat|IN|70.46|21.52|319|W|,Jundiai|sao paulo|BR|-46.88|-23.19|443|W|,Juneau|AK|US|-134.42|58.3|31|N|,Jupiter|FL|US|-80.09|26.93|62|N|,Jurong Town||SG|103.72|1.33|262|W|,Jurong West||SG|103.72|1.35|253|W|,Jutiapa|jutiapa|GT|-89.89|14.28|145|W|,Juventino Rosas|MX11|MX|-101|20.64|42|N|,Jyvaeskylae|central finland|FI|25.72|62.24|148|W|jyvaskyla,Kabankalan|western visayas|PH|122.81|9.98|210|W|,Kabin Buri|prachin buri|TH|101.72|13.95|140|W|,Kabinda|lomami|CD|24.48|-6.14|219|W|,Kabul|kabul|AF|69.17|34.53|4434|W|cabul;kaboel;kaboul;kabil,Kabwe|central province|ZM|28.45|-14.45|288|W|,Kadapa|andhra pradesh|IN|78.82|14.48|344|W|cuddapah,Kadoma|osaka|JP|135.57|34.74|131|W|,Kaduna|kaduna state|NG|7.44|10.53|1850|W|,Kaech'on|south pyongan|KP|125.89|39.7|319|W|,Kaesong|kaesong|KP|126.55|37.97|338|W|,Kafr ash Shaykh|kafr el sheikh|EG|30.94|31.11|194|W|,Kafrul|dhaka division|BD|90.37|23.79|339|W|,Kagoshima|kagoshima|JP|130.55|31.57|595|W|kagosima,Kahama|shinyanga|TZ|32.6|-3.83|453|W|,Kahramanmaras|kahramanmaras|TR|36.93|37.58|384|W|,Kahului|HI|US|-156.47|20.89|26|N|,Kaifeng|henan|CN|114.31|34.8|1451|W|kai feng;kchaj feng;khai phong,Kaili|guizhou|CN|107.98|26.59|275|W|,Kailua|HI|US|-157.74|21.4|38|N|,Kairouan|kairouan|TN|10.1|35.68|139|W|cairuao;kairuan;kayravan;qairawan;qayrawan,Kaithal|haryana|IN|76.4|29.8|144|W|,Kaiyuan|yunnan|CN|103.3|23.7|198|W|,Kajang|selangor|MY|101.79|2.99|236|W|,Kajansi|central region|UG|32.53|0.22|135|W|,Kakamega|kakamega county|KE|34.75|0.28|1867|W|,Kakamigahara|gifu|JP|136.87|35.42|144|W|,Kakinada|andhra pradesh|IN|82.24|16.96|384|W|,Kakogawacho-honmachi|hyogo|JP|134.83|34.77|271|W|kakogawa,Kalaban Koro|koulikoro|ML|-8.03|12.57|148|W|,Kalaburagi|karnataka|IN|76.84|17.34|543|W|gulbarga;kalaburgi,Kalamazoo|MI|US|-85.59|42.29|76|N|,Kalemie|tanganyika|CD|29.19|-5.95|160|W|,Kalemyo|sagaing region|MM|94.06|23.19|348|W|,Kalihi-Palama|HI|US|-157.88|21.33|43|N|kalihi,Kaliningrad|kaliningrad oblast|RU|20.51|54.71|475|W|krolewiec;caliningrado;kaliningrado;konigsberg;konigsberg in preussen,Kalininskiy|st petersburg|RU|30.39|60|504|W|,Kallakurichi|tamil nadu|IN|78.96|11.73|1682|W|,Kalol|gujarat|IN|72.5|23.25|134|W|,Kaluga|kaluga oblast|RU|36.27|54.53|340|W|kaloega;kalouga,Kalyan|maharashtra|IN|73.14|19.24|1262|W|,Kamakura|kanagawa|JP|139.55|35.31|172|W|,Kamalia|punjab|PK|72.65|30.73|166|W|,Kamalshahr|alborz province|IR|50.87|35.86|141|W|,Kamarhati|west bengal|IN|88.37|22.67|332|W|,Kamensk-Ural'skiy|sverdlovsk oblast|RU|61.93|56.41|182|W|kamensk uralskij;kamensk uralsky;kamensk uralski,Kamina|haut lomami|CD|25|-8.74|200|W|,Kamirenjaku|tokyo|JP|139.55|35.69|195|W|,Kamloops|BC|CA|-120.32|50.67|104|N|,Kamoke|punjab|PK|74.22|31.98|292|W|,Kampala|central region|UG|32.58|0.32|1680|W|campala,Kampong Baharu Cheras Batu Sebelas|selangor|MY|101.77|3.05|232|W|,Kampong Pasir Ris||SG|103.93|1.38|144|W|,Kampung Baru Subang|selangor|MY|101.53|3.15|833|W|,Kampung Kangkar Teberau|johor|MY|103.75|1.53|412|W|,Kampung Larkin Lama|johor|MY|103.74|1.5|500|W|,Kampung Pasir Gudang Baru|johor|MY|103.88|1.47|145|W|,Kampung Sungai Ara|penang|MY|100.27|5.33|140|W|,Kampung Sungai Glugur|penang|MY|100.31|5.37|145|W|,Kamyanske|dnipropetrovsk|UA|34.61|48.52|226|W|dnieprodzierzynsk;dniprodzerzyns k;kam jans ke;kamianske;kamienskie;dniprodzerzhynsk,Kananga|kasai central|CD|22.42|-5.9|1247|W|kanange,Kanasin|MX31|MX|-89.56|20.93|77|N|,Kanata|ON|CA|-75.92|45.3|90|N|,Kanayannur|kerala|IN|76.27|9.97|851|W|,Kanazawa|ishikawa|JP|136.62|36.6|466|W|,Kanchipuram|tamil nadu|IN|79.7|12.84|221|W|kancheepuram;kancipuram;conjevaram,Kanchrapara|west bengal|IN|88.43|22.96|136|W|,Kandahar|kandahar|AF|65.71|31.61|523|W|kandehar,Kaneohe|HI|US|-157.8|21.4|34|N|,Kanggye|chagang|KP|126.59|40.97|209|W|,Kankakee|IL|US|-87.86|41.12|26|N|,Kankan|kankan region|GN|-9.31|10.39|221|W|,Kannapolis|NC|US|-80.62|35.49|46|N|,Kano|kano state|NG|8.52|12|4910|W|,Kanpur|uttar pradesh|IN|80.35|26.47|2823|W|cawnporne,Kansas City|MO|US|-94.58|39.1|475|NW|kota kansas,Kansas City|KS|US|-94.63|39.11|152|NW|,Kaohsiung|takao|TW|120.31|22.62|2737|W|kaohsiung city;cao hung;gaoxiong;takao,Kaolack|kaolack|SN|-16.07|14.15|298|W|,Kapar|selangor|MY|101.38|3.13|269|W|,Karabaglar|izmir province|TR|27.13|38.38|479|W|,Karachi|sindh|PK|67.01|24.86|11624|W|carachi;karaczi;karanchi;karatschi;karaci,Karagandy|karaganda|KZ|73.1|49.8|497|W|karaganda;qaraghandy;qaragandi,Karaikkudi|tamil nadu|IN|78.77|10.07|181|W|karaikudi,Karaj|alborz province|IR|50.99|35.83|1448|W|karadsch;karadz;kerec,Karaman|karaman|TR|33.22|37.18|175|W|,Karamay|xinjiang|CN|84.89|45.58|261|W|kelamayi,Karawalnagar|delhi|IN|77.27|28.73|224|W|,Karawang|west java|ID|107.32|-6.31|307|W|,Karbala|karbala|IQ|44.02|32.62|1218|W|kerbela;kerbala,Kariega|eastern cape|ZA|25.4|-33.76|291|W|uitenhage,Karimnagar|telangana|IN|79.13|18.44|289|W|,Kariya|aichi|JP|136.98|34.98|153|W|,Karlsruhe|baden wurttemberg|DE|8.4|49.01|283|W|,Karnal|haryana|IN|76.98|29.69|302|W|,Karnaphuli|chittagong|BD|92.23|22.69|203|W|,Karol Bagh|delhi|IN|77.19|28.65|505|W|,Karsiyaka|izmir province|TR|27.11|38.46|339|W|cordaleo;cordelio,Karur|tamil nadu|IN|78.08|10.96|234|W|,Karuri|kiambu county|KE|36.76|-1.18|194|W|,Karuri|murang a|KE|37.18|-0.7|194|W|,Kasama|northern province|ZM|31.18|-10.21|179|W|arcidiocesi di kasama,Kasangati|central region|UG|32.6|0.44|207|W|,Kashan|isfahan|IR|51.43|33.98|304|W|,Kashgar|xinjiang|CN|75.99|39.47|506|W|kachgar;kaschgar;kasgar;kaszgar,Kashiwa|chiba|JP|139.98|35.86|433|W|,Kashmar|razavi khorasan|IR|58.47|35.24|131|W|,Kassala|kassala|SD|36.4|15.45|401|W|statul kassala,Kassel|hesse|DE|9.5|51.32|197|W|cassel,Kasugai|aichi|JP|136.97|35.25|308|W|,Kasukabe|saitama|JP|139.75|35.98|229|W|,Kasulu|kigoma|TZ|30.1|-4.58|238|W|,Kasur|punjab|PK|74.45|31.12|510|W|,Katabi|central region|UG|32.47|0.08|154|W|,Kathmandu|bagmati province|NP|85.32|27.7|1442|W|katmandou;catmandu;kathmandou;katmandu,Kati|koulikoro|ML|-8.07|12.74|130|W|,Katihar|bihar|IN|87.57|25.54|240|W|,Katowice|silesia|PL|19.02|50.26|286|W|katovice;kattowitz,Katsina|katsina state|NG|7.6|12.99|670|W|,Katsushika|tokyo|JP|139.85|35.73|453|W|katsushika ku;katsushika city,Katsuta|ibaraki|JP|140.53|36.38|155|W|,Kaunas|kaunas|LT|23.91|54.9|289|W|kowno;kauen,Kawagoe|saitama|JP|139.49|35.91|354|W|,Kawaguchi|saitama|JP|139.71|35.81|607|W|,Kawanishi|hyogo|JP|135.42|34.82|155|W|,Kawasaki|kanagawa|JP|139.72|35.52|1538|W|kawasaki city,Kayes|kayes|ML|-11.44|14.45|194|W|,Kayseri|kayseri|TR|35.49|38.73|1452|W|cesarea in cappadocia,Kaysville|UT|US|-111.94|41.04|30|N|,Kazan|tatarstan republic|RU|49.12|55.79|1243|W|caza;kasan,Kearney|NE|US|-99.08|40.7|33|N|,Kearns|UT|US|-112|40.66|35|N|,Kearny|NJ|US|-74.15|40.77|42|N|,Kediri|east java|ID|112.02|-7.82|301|W|kota kediri,Keelung|taiwan|TW|121.74|25.13|362|W|chilung;co long;kota keelung;ti lung,Keizer|OR|US|-123.03|44.99|37|N|,Kelar|sulaymaniyah|IQ|45.32|34.63|250|W|,Keller|TX|US|-97.25|32.93|45|N|,Kelowna|BC|CA|-119.49|49.88|144|NW|,Kembangan||SG|103.91|1.32|130|W|,Kemerovo|kuzbass|RU|86.1|55.35|558|W|kemerowo,Ken Caryl|CO|US|-105.11|39.58|32|N|,Kendale Lakes|FL|US|-80.41|25.71|56|N|,Kendall|FL|US|-80.32|25.68|80|N|,Kendall West|FL|US|-80.44|25.71|36|N|,Kendari|southeast sulawesi|ID|122.52|-3.98|351|W|kota kendari,Kenema|eastern province|SL|-11.19|7.88|255|W|,Keng Tung|shan state|MM|99.93|21.63|171|W|,Kenitra|rabat sale kenitra|MA|-6.58|34.26|470|W|al kunajtira;kenitre,Kennedy|bogota d c|CO|-74.15|4.62|979|W|,Kenner|LA|US|-90.24|29.99|67|N|,Kennesaw|GA|US|-84.62|34.02|33|N|,Kennewick|WA|US|-119.14|46.21|78|N|,Kenosha|WI|US|-87.82|42.58|99|N|,Kensington|NY|US|-73.97|40.65|39|N|,Kensington-Cedar Cottage|BC|CA|-123.07|49.25|49|N|,Kent|WA|US|-122.23|47.38|126|N|,Kent|OH|US|-81.36|41.15|29|N|,Kentron|yerevan|AM|44.51|40.18|133|W|kentron district,Kentwood|MI|US|-85.64|42.87|51|N|,Kerch|crimea|UA|36.48|45.36|148|W|kerci;kercz;kertch;kertj;kertsch;kertsj;kerts;kerc,Kerman|kerman|IR|57.08|30.28|577|W|,Kermanshah|kermanshah province|IR|47.06|34.31|621|W|kermanschah;kirmansah;province de kermanshah;provincia de kermanshah,Kettering|OH|US|-84.17|39.69|55|N|,Kew Gardens Hills|NY|US|-73.82|40.73|37|N|,Key West|FL|US|-81.78|24.56|25|N|cayo hueso,Khabarovsk|khabarovsk|RU|135.1|48.46|618|W|chabarovsk;chabarowsk;habarovsk;jabarovsk,Khairpur Mir's|sindh|PK|68.76|27.53|191|W|khairpur,Khamis Mushait|asir region|SA|42.73|18.3|387|W|chamis muschait;chamis muszajt;hamis musayt;khamis mushayt,Khammam|telangana|IN|80.14|17.25|196|W|,Khan Yunis|gaza strip|PS|34.31|31.34|173|W|jan yunis;khan younis,Khanaqin|diyala|IQ|45.39|34.35|175|W|,Khandwa|madhya pradesh|IN|76.35|21.82|200|W|,Khanpur|punjab|PK|70.66|28.65|142|W|,Kharagpur|west bengal|IN|87.33|22.34|219|W|,Kharkiv|kharkiv|UA|36.25|49.98|1421|W|charkiv;carcovia;charkiw;charkov;charkow;harkov;harkova;jarkov;kharkov,Khartoum|khartoum|SD|32.53|15.55|1974|W|cartum;chartum;hartum;jartum;khartoem;khartum,Khartoum North|khartoum|SD|32.53|15.65|1012|W|bahri;jartum norte;khartoum nord;khartum nord,Khasnahzan|erbil|IQ|44.14|36.2|146|W|,Khemisset|rabat sale kenitra|MA|-6.07|33.82|143|W|,Khimki|moscow oblast|RU|37.43|55.9|239|W|chimki;himki;jimki,Khirdalan|abseron|AZ|49.76|40.45|196|W|hirdalan;xirdalan,Khlong Sam Wa|bangkok|TH|100.74|13.87|169|W|,Khmelnytskyi|khmelnytskyi|UA|26.98|49.42|274|W|chmel nyc kyj;chmelnyzkyj;chmielnicki;khmel nyts kyy;proscurovia;ploskurow,Khobar|eastern province|SA|50.21|26.28|165|W|al chubar;al khobar;el huber,Khomeyni Shahr|isfahan|IR|51.54|32.69|277|W|three castles,Khoroshevo-Mnevniki|moscow|RU|37.47|55.78|159|W|,Khorramabad|lorestan province|IR|48.36|33.49|329|W|,Khorramshahr|khuzestan|IR|48.18|30.44|330|W|chorramschahr;chorramszahr;chorramsahr;hurremsehr;jorramchar;koramsjar,Khouribga|beni mellal khenifra|MA|-6.91|32.88|214|W|,Khujand|sughd|TJ|69.62|40.28|191|W|choedzjand;chudschand;chudzjand;hucand;hudzand;khodjent,Khulna|khulna division|BD|89.56|22.81|1500|W|,Khuraybat as Suq|amman|JO|35.92|31.88|186|W|,Khuy|west azerbaijan|IR|44.95|38.55|198|W|,Khuzdar|balochistan|PK|66.61|27.81|218|W|,Kiambu|kiambu county|KE|36.84|-1.17|147|W|,Kibaha|pwani|TZ|38.92|-6.77|265|W|,Kiel|schleswig holstein|DE|10.13|54.32|252|W|kilonia,Kielce|swietokrzyskie|PL|20.63|50.87|192|W|,Kigali|kigali|RW|30.06|-1.95|1132|W|,Kigoma|kigoma|TZ|29.63|-4.88|232|W|,Kikolo|luanda|AO|13.33|-8.78|728|W|quicolo,Kikuyu|kiambu county|KE|36.66|-1.25|323|W|,Kikwit|kwilu|CD|18.82|-5.04|509|W|,Kilamba|luanda|AO|13.28|-8.85|237|W|kilamba kiaxi,Killarney|BC|CA|-123.04|49.23|29|N|,Killeen|TX|US|-97.73|31.12|140|NW|,Kima Kieza|luanda|AO|13.3|-8.83|428|W|quima quieza,Kimberley|northern cape|ZA|24.76|-28.73|142|W|,Kimhae|gyeongsangnam do|KR|128.88|35.23|531|W|gimhae,Kindia|kindia|GN|-12.87|10.06|161|W|,Kindu|maniema|CD|25.92|-2.94|234|W|,Kingman|AZ|US|-114.05|35.19|28|N|,Kings Bridge|NY|US|-73.91|40.88|75|N|,Kingsport|TN|US|-82.56|36.55|53|N|,Kingston|kingston|JM|-76.79|18|937|W|,Kingston|ON|CA|-76.48|44.23|132|NW|cataraqui,Kingston upon Hull|england|GB|-0.34|53.74|314|W|hull,Kingsville|TX|US|-97.86|27.52|26|N|,Kinshasa|kinshasa|CD|15.31|-4.33|16000|W|kinsasa;kinszasa;quinxassa,Kipushi|haut katanga|CD|27.25|-11.76|169|W|,Kira|central region|UG|32.63|0.4|462|W|,Kirari Sulemannagar|delhi|IN|77.06|28.7|283|W|,Kirdasah|giza|EG|31.11|30.03|137|W|kerdasa,Kirikkale|kirikkale|TR|33.51|39.85|186|W|,Kirkland|WA|US|-122.21|47.68|87|N|,Kirkuk|kirkuk|IQ|44.39|35.47|1031|W|kerkuk;kirkoek;kirkouk,Kirkwood|MO|US|-90.41|38.58|27|N|,Kirov|kirov oblast|RU|49.66|58.6|507|W|kirow,Kirsehir|kirsehir|TR|34.16|39.15|150|W|,Kiryas Joel|NY|US|-74.17|41.34|32|N|,Kisangani|tshopo|CD|25.19|0.52|1181|W|stanleystad;stanleyville,Kisaran|north sumatra|ID|99.62|2.98|141|W|,Kisarazu|chiba|JP|139.93|35.38|136|W|,Kishangarh|rajasthan|IN|74.85|26.59|154|W|,Kishiwada|osaka|JP|135.37|34.47|205|W|,Kisi|oyo state|NG|3.85|9.08|155|W|,Kislovodsk|stavropol kray|RU|42.72|43.91|132|W|kislowodsk;kislowodzk,Kismayo|lower juba|SO|42.55|-0.36|234|W|chisimayu;kismaayo,Kissimmee|FL|US|-81.42|28.3|69|N|,Kisumu|kisumu county|KE|34.76|-0.1|397|W|,Kita|tokyo|JP|139.73|35.75|332|W|kita ku,Kitakyushu|fukuoka|JP|130.85|33.85|940|W|kitakjusu,Kitale|trans nzoia|KE|35.01|1.02|162|W|,Kitchener|ON|CA|-80.51|43.43|256|NW|,Kitengela|kajiado county|KE|36.96|-1.48|154|W|,Kitsilano|BC|CA|-123.17|49.27|43|N|,Kitwe|copperbelt|ZM|28.21|-12.8|665|W|,Kiziltepe|mardin|TR|40.58|37.19|150|W|,Klaipeda|klaipeda county|LT|21.14|55.71|172|W|klajpeda;memel,Klang|selangor|MY|101.44|3.04|240|W|kelang,Klerksdorp|north west|ZA|26.67|-26.85|227|W|,Kluang|johor|MY|103.32|2.03|323|W|,Klungkung|bali|ID|115.4|-8.53|223|W|,Knoxville|TN|US|-83.92|35.96|190|NW|,Kobe|hyogo|JP|135.18|34.69|1525|W|,Kochi|kerala|IN|76.26|9.94|633|W|cochim;cochin;ernakulam;koczin,Kochi|kochi|JP|133.53|33.55|332|W|kochi shi;kochishi,Kodaira|tokyo|JP|139.49|35.73|198|W|,Koeln|north rhine westphalia|DE|6.95|50.93|1024|W|koln;cologne;colonia;keulen;kolonia;kolin nad rynem,Koforidua|eastern|GH|-0.26|6.09|151|W|,Kofu|yamanashi|JP|138.57|35.67|189|W|,Koga|ibaraki|JP|139.72|36.18|139|W|,Kohat|khyber pakhtunkhwa|PK|71.45|33.58|151|W|,Kokomo|IN|US|-86.13|40.49|57|N|,Kokshetau|aqmola|KZ|69.39|53.28|150|W|kokchetaou;kokczetaw;koksetau;kokcetau;kokschetau;koksjetau;koksetaw,Kolar|karnataka|IN|78.13|13.14|138|W|,Kolhapur|maharashtra|IN|74.23|16.7|549|W|,Kolkata|west bengal|IN|88.36|22.56|4631|W|calcutta;calcuta;kalkata;kalkuta;kalkutta,Kollam|kerala|IN|76.58|8.88|367|W|quilon;coulao,Kolomna|moscow oblast|RU|38.78|55.07|147|W|,Kolpino|st petersburg|RU|30.59|59.75|138|W|kolppina,Kolwezi|lualaba|CD|25.47|-10.71|790|W|,Kom Ombo|aswan|EG|32.95|24.48|409|W|,Komaki|aichi|JP|136.92|35.28|148|W|,Kombolcha|amhara|ET|39.74|11.08|132|W|kembolcza,Komsomolsk-on-Amur|khabarovsk|RU|137.01|50.55|275|W|komsomolsk am amur;komsomolsk del amur;komsomolsk na amure;komsomolsk sur l amour,Kon Tum|quang ngai|VN|108.01|14.35|205|W|,Konak|izmir province|TR|27.1|38.4|332|W|,Konibodom|sughd|TJ|70.43|40.29|211|W|,Konya|konya|TR|32.48|37.87|1433|W|iconio,Korba|chhattisgarh|IN|82.7|22.35|419|W|,Koreatown|CA|US|-118.3|34.06|124|N|,Korhogo|savanes district|CI|-5.63|9.46|440|W|,Koriyama|fukushima|JP|140.38|37.4|327|W|,Korla|xinjiang|CN|86.15|41.76|549|W|,Korolev|moscow oblast|RU|37.83|55.91|139|W|korolyov;koroliov;koroljov;korolow,Koronadal|soccsksargen|PH|124.85|6.5|201|W|koronadal city;kota koronadal,Koshigaya|saitama|JP|139.79|35.89|345|W|,Kosice|kosice region|SK|21.26|48.71|225|W|koszyce;kaschau,Kostanay|kostanay|KZ|63.62|53.21|210|W|kostanai;kostanaj;kustanaj;qostanai;qostanaj;qostanay;kustanay;nikolayevsk,Kosti|white nile|SD|32.66|13.16|345|W|kusti,Kostroma|kostroma oblast|RU|40.93|57.77|277|W|,Kota|rajasthan|IN|75.84|25.18|1001|W|,Kota Bharu|kelantan|MY|102.24|6.12|568|W|kota bahru,Kota Damansara|selangor|MY|101.58|3.15|500|W|,Kota Kinabalu|sabah|MY|116.07|5.97|500|W|,Kota Kuala Muda|kedah|MY|100.37|5.59|544|W|,Koto|kumamoto|JP|130.75|32.78|543|W|koto city,Koudougou|centre ouest|BF|-2.37|12.25|160|W|,Koumassi|abidjan autonomous district|CI|-3.97|5.3|412|W|,Kousseri|far north|CM|15.03|12.08|139|W|,Koutiala|sikasso|ML|-5.47|12.39|218|W|,Kovpakivskyi|sumy|UA|34.79|50.93|142|W|kovpakivskyi rayon,Kovrov|vladimir oblast|RU|41.32|56.36|154|W|kowrow,Kowloon||HK|114.18|22.32|2232|W|koulun,Kowloon City|kowloon city|HK|114.19|22.33|418|W|,Kowloon City Centre|kowloon city|HK|114.19|22.33|194|W|,Kozhikode|kerala|IN|75.78|11.25|550|W|kozikkot;calecute;calicut,Kragujevac|central serbia|RS|20.92|44.02|147|W|,Krakow|lesser poland|PL|19.94|50.06|816|W|cracovia;cracovie;krakau;krakov;krakova;cracow,Kramatorsk|donetsk|UA|37.57|48.73|147|W|kramators k,Krasnodar|krasnodar krai|RU|38.98|45.05|899|W|,Krasnogvargeisky|st petersburg|RU|30.48|59.97|337|W|,Krasnoyarsk|krasnoyarsk krai|RU|92.93|56.04|1090|W|krasnojarsk;krasnoiarsk,Krefeld|north rhine westphalia|DE|6.55|51.34|237|W|,Kremenchuk|poltava|UA|33.4|49.06|224|W|kremencuk;kremenciuk;krementchouk;krementjuk;krementschuk;krementsjoek;krementsjuk;krementsuk;kremencug;krzemienczuk;kremenchug;kreminchuk,Kreuzberg|state of berlin|DE|13.4|52.5|153|W|berlin kreuzberg,Krishnanagar|west bengal|IN|88.49|23.41|145|W|,Kropyvnytskyi|kirovohrad|UA|32.27|48.51|219|W|kropywnycki;kropywnyzkyj;elisavetgrad;elizabethgrad;jelisawetgrad;jelizawietgrad;kirovo;kirovograd;kirovogrado;kirovohrad;kirowograd;kirowohrad;yelisavetgrad;zinovievsk;zinovyevsk;zinowjewsk,Krugersdorp|gauteng|ZA|27.78|-26.09|378|W|,Kryvyy Rih|dnipropetrovsk|UA|33.39|47.91|603|W|krivoj rog;kryvy rig;kryvy rih;kryvyi rih;kryvyj rih;krywyj rih;krzywy rog;krivii rih,Ksar El Kebir|tanger tetouan al hoceima|MA|-5.9|35|138|W|,Kuala Kubu Baharu|selangor|MY|101.66|3.56|194|W|kuala kubu;kuala kubu baru;kuala kubu bharu,Kuala Lumpur|kuala lumpur|MY|101.69|3.14|1453|W|,Kuala Terengganu|terengganu|MY|103.14|5.33|426|W|,Kuantan|pahang|MY|103.33|3.81|548|W|,Kuching|sarawak|MY|110.33|1.55|402|W|,Kuecuekcekmece|istanbul|TR|28.77|40.99|792|W|kucukcekmece,Kuetahya|kutahya|TR|29.98|39.42|185|W|kutahya,Kukatpally|telangana|IN|78.41|17.48|341|W|kukatpalle;kukatpalli,Kukichuo|saitama|JP|139.67|36.07|150|W|,Kulim|kedah|MY|100.56|5.36|170|W|,Kulob|khatlon province|TJ|69.78|37.91|214|W|,Kulti|west bengal|IN|86.84|23.73|305|W|,Kumagaya|saitama|JP|139.39|36.13|195|W|,Kumamoto|kumamoto|JP|130.69|32.81|738|W|kumamoto shi,Kumarapalayam|tamil nadu|IN|77.71|11.44|195|W|komarapalayam,Kumasi|ashanti|GH|-1.62|6.69|2544|W|,Kumba|south west|CM|9.45|4.64|225|W|,Kumbakonam|tamil nadu|IN|79.39|10.96|167|W|,Kunduz|kunduz|AF|68.86|36.73|161|W|konduz;kondoz;kundus;qunduz,Kunming|yunnan|CN|102.72|25.04|3855|W|con minh;kchun ming,Kunri|sindh|PK|69.57|25.18|237|W|,Kunshan|jiangsu|CN|120.95|31.38|2092|W|con son;kchun san,Kuntsevo|moscow|RU|37.4|55.74|147|W|kuncevo;kuncewo;kuntsevo district,Kupang|east nusa tenggara|ID|123.61|-10.17|474|W|kota kupang,Kurashiki|okayama|JP|133.77|34.58|483|W|,Kure|hiroshima|JP|132.57|34.23|214|W|,Kurgan|kurgan oblast|RU|65.34|55.45|309|W|curgan;koergan;kourgan,Kurnool|andhra pradesh|IN|78.04|15.83|460|W|karnulu,Kursk|kursk oblast|RU|36.18|51.73|448|W|koersk;koursk,Kurume|fukuoka|JP|130.52|33.32|303|W|,Kusatsu|shiga|JP|135.97|35.02|143|W|,Kushinagar|uttar pradesh|IN|83.89|26.74|274|W|,Kushiro|hokkaido|JP|144.37|42.98|167|W|kushiro shi;kusiro,Kushtia|khulna division|BD|89.12|23.9|135|W|,Kutaisi|imereti|GE|42.69|42.27|135|W|koutaissi;kutaissi;koetaisi;kutayis,Kuwana|mie|JP|136.67|35.05|140|W|,Kuz'minki|moscow|RU|37.8|55.7|143|W|,KwaDukuza|kwazulu natal|ZA|31.29|-29.33|161|W|,Kwai Chung|kwai tsing district|HK|114.14|22.37|331|W|,Ky Anh|ha tinh province|VN|106.3|18.06|150|W|,Kyaukpyu|rakhine|MM|93.55|19.43|180|W|,Kyauktan|yangon|MM|96.33|16.64|132|W|,Kyengera|central region|UG|32.5|0.3|285|W|,Kyiv|kyiv city|UA|30.52|50.45|2952|W|kiev;kyjiw;ki ep;kiew;kijow;kiova;kyiw;kyjev;chiovia,Kyivskyi|donetsk|UA|37.78|48.05|139|W|kyivskyi rayon,Kyle|TX|US|-97.88|29.99|35|N|,Kyoto|kyoto|JP|135.75|35.02|1463|W|kioto;kjoto;kyoto shi;quioto,Kyzylorda|kyzylorda|KZ|65.51|44.85|354|W|kizilorda;qysylorda;qyzylorda;qizilorda;ak mechet;fort perovsky;kzyl orda;perovsk,L'Amoreaux|ON|CA|-79.31|43.8|43|N|,L'Hospitalet de Llobregat|catalonia|ES|2.1|41.36|257|W|hospitalet de llobregat,La Barca|MX14|MX|-102.54|20.29|35|N|,La Ceiba|atlantida department|HN|-86.78|15.76|222|W|,La Cite-Limoilou|QC|CA|-71.23|46.83|108|N|,La Crosse|WI|US|-91.24|43.8|52|N|,La Gi|lam dong|VN|107.77|10.66|160|W|,La Habra|CA|US|-117.95|33.93|62|N|,La Haute-Saint-Charles|QC|CA|-71.37|46.89|88|N|,La Jolla|CA|US|-117.27|32.85|42|N|,La Joya|MX02|MX|-117|32.44|26|N|,La Laguna|canary islands|ES|-16.32|28.49|150|W|,La Mesa|CA|US|-117.02|32.77|60|N|,La Mirada|CA|US|-118.01|33.92|49|N|,La Paz|la paz department|BO|-68.15|-16.5|2004|W|ciudad la paz,La Paz|MX03|MX|-110.31|24.14|250|NW|,La Piedad de Cabadas|MX16|MX|-102.02|20.34|83|N|la piedad;municipio la piedad,La Pintana|santiago metropolitan|CL|-70.63|-33.58|201|W|,La Plata|buenos aires|AR|-57.95|-34.92|195|W|,La Porte|TX|US|-95.02|29.67|35|N|,La Presa|CA|US|-117|32.71|34|N|,La Puente|CA|US|-117.95|34.02|40|N|,La Quinta|CA|US|-116.31|33.66|40|N|,La Rioja|la rioja|AR|-66.86|-29.41|178|W|ciudad de la rioja;rioja,La Romana|la romana|DO|-68.97|18.42|208|W|,La Serena|coquimbo region|CL|-71.25|-29.91|154|W|,La Trinidad|cordillera|PH|120.59|16.45|142|W|,La Vergne|TN|US|-86.58|36.02|34|N|,La Verne|CA|US|-117.77|34.1|32|N|,Laayoune||EH|-13.19|27.14|196|W|el aaiun;aaiun;al ajoen;al ayun;al ujun;el ayun,Labuan Bajo|east nusa tenggara|ID|119.89|-8.5|188|W|labuanbajo,Lacey|WA|US|-122.82|47.03|46|N|,Ladysmith|kwazulu natal|ZA|29.78|-28.56|143|W|,Lafayette|LA|US|-92.02|30.22|121|N|,Lafayette|IN|US|-86.88|40.42|71|N|,Lafayette|CO|US|-105.09|39.99|27|N|,Lafayette|CA|US|-122.12|37.89|25|N|,Lages|santa catarina|BR|-50.33|-27.82|172|W|,Laghouat|laghouat|DZ|2.87|33.8|134|W|al aghwat;lagouat,Lagos|lagos|NG|3.39|6.45|15388|W|,Lagos de Moreno|MX14|MX|-101.93|21.36|98|N|,LaGrange|GA|US|-85.03|33.04|29|N|la grange,Laguna|CA|US|-121.42|38.42|46|N|,Laguna Hills|CA|US|-117.71|33.61|31|N|,Laguna Niguel|CA|US|-117.71|33.52|65|N|,Lahore|punjab|PK|74.35|31.56|13004|W|lahaur;lahor,Laibin|guangxi|CN|109.22|23.75|910|W|lai tan;laj pin,Laiwu|shandong|CN|117.66|36.19|989|W|lai vu;laj wu,Laixi|shandong|CN|120.53|36.86|341|W|,Laiyang|shandong|CN|120.71|36.98|169|W|,Laizhou|shandong|CN|119.94|37.18|188|W|laichow,Lajeado|sao paulo|BR|-46.41|-23.53|164|W|,Lake Charles|LA|US|-93.2|30.21|76|N|,Lake Elsinore|CA|US|-117.33|33.67|61|N|,Lake Forest|CA|US|-117.69|33.65|82|N|,Lake Havasu City|AZ|US|-114.32|34.48|53|N|,Lake in the Hills|IL|US|-88.33|42.18|29|N|,Lake Jackson|TX|US|-95.43|29.03|27|N|,Lake Magdalene|FL|US|-82.47|28.07|28|N|,Lake Oswego|OR|US|-122.67|45.42|38|N|,Lake Ridge|VA|US|-77.3|38.69|41|N|,Lake Stevens|WA|US|-122.06|48.02|30|N|,Lake Worth Beach|FL|US|-80.07|26.62|37|N|lake worth,Lakeland|FL|US|-81.95|28.04|104|N|,Lakeside|FL|US|-81.77|30.13|30|N|,Lakeville|MN|US|-93.24|44.65|60|N|,Lakewood|CO|US|-105.08|39.7|152|NW|,Lakewood|CA|US|-118.13|33.85|81|N|,Lakewood|WA|US|-122.52|47.17|59|N|,Lakewood|NJ|US|-74.22|40.1|53|N|lakewood township;municipio de lakewood,Lakewood|SK|CA|-106.59|52.11|51|N|,Lakewood|OH|US|-81.8|41.48|50|N|,Lakhimpur|uttar pradesh|IN|80.78|27.95|140|W|,Lal Bahadur Nagar|telangana|IN|78.56|17.35|261|W|,Lampang|lampang|TH|99.49|18.29|156|W|,Lancaster|CA|US|-118.14|34.7|161|NW|,Lancaster|PA|US|-76.31|40.04|59|N|,Lancaster|OH|US|-82.6|39.71|39|N|,Lancaster|TX|US|-96.76|32.59|38|N|,Land O' Lakes|FL|US|-82.46|28.22|31|N|,Lander|miranda|VE|-66.7|10.18|176|W|,Lang'ata|nairobi county|KE|36.73|-1.37|172|W|,Lang Son|lang son province|VN|106.76|21.85|200|W|,Langfang|hebei|CN|116.71|39.52|868|W|,Langford|BC|CA|-123.5|48.45|46|N|,Langley|BC|CA|-122.66|49.1|132|NW|ciudad de langley,Langsa|aceh|ID|97.97|4.47|184|W|,Lansing|MI|US|-84.56|42.73|112|N|,Lansing|IL|US|-87.54|41.56|28|N|,Lanus|buenos aires|AR|-58.39|-34.71|212|W|,Lanzhou|gansu|CN|103.84|36.06|3000|W|lan chau;lan cou,Lao Cai|lao cai|VN|103.97|22.49|130|W|laos,Laohekou|hubei|CN|111.67|32.39|253|W|,Laplace|LA|US|-90.48|30.07|29|N|,Lapu-Lapu City|central visayas|PH|123.95|10.31|497|W|lapu lapu,Larache|tanger tetouan al hoceima|MA|-6.16|35.19|136|W|al araisz;laraxe,Laramie|WY|US|-105.59|41.31|32|N|,Laredo|TX|US|-99.51|27.51|256|NW|,Largo|FL|US|-82.79|27.91|81|N|,Larisa|thessaly|GR|22.42|39.63|146|W|larissa;yenisehir,Larkana|sindh|PK|68.21|27.56|364|W|,Las Choapas|MX30|MX|-94.1|17.91|42|N|,Las Cruces|NM|US|-106.78|32.31|101|N|,Las Guacamayas|MX16|MX|-102.21|18.02|37|N|,Las Palmas de Gran Canaria|canary islands|ES|-15.42|28.1|383|W|las palmas;las palmas de g c;palmas de gran canaria,Las Pinas|national capital region|PH|120.98|14.45|615|W|,Las Pintitas|MX14|MX|-103.3|20.56|26|N|,Las Tunas|las tunas province|CU|-76.95|20.96|203|W|victoria de las tunas,Las Vegas|NV|US|-115.14|36.17|641|NW|,LaSalle|ON|CA|-83.06|42.24|32|N|,Lashio|shan state|MM|97.75|22.94|131|W|lasho;lasio,Lat Krabang|bangkok|TH|100.78|13.72|163|W|,Latacunga|cotopaxi|EC|-78.62|-0.93|205|W|,Latakia|latakia|SY|35.79|35.53|709|W|laodicea;lataquia;lattakia;lattaquie;lazkiye;lazikija,Latina|madrid|ES|-3.75|40.39|256|W|,Latkrabang|bangkok|TH|100.75|13.73|173|W|,Latur|maharashtra|IN|76.57|18.4|382|W|,Lauderdale Lakes|FL|US|-80.21|26.17|34|N|,Lauderhill|FL|US|-80.21|26.14|71|N|,Laurel|MD|US|-76.85|39.1|26|N|,Lauro de Freitas|bahia|BR|-38.33|-12.89|203|W|,Lausanne|vaud|CH|6.63|46.52|139|W|lausana;losanna;lozan;lozanna,Laval|QC|CA|-73.69|45.57|438|NW|,Laval-des-Rapides|QC|CA|-73.7|45.56|36|N|,Lawndale|CA|US|-118.35|33.89|33|N|,Lawrence|KS|US|-95.24|38.97|93|N|,Lawrence|MA|US|-71.16|42.71|80|N|,Lawrence|IN|US|-86.03|39.84|47|N|,Lawrenceville|GA|US|-83.99|33.96|30|N|,Lawson|SK|CA|-106.64|52.16|34|N|,Lawton|OK|US|-98.39|34.61|96|N|,Layton|UT|US|-111.97|41.06|74|N|,Layyah|punjab|PK|70.94|30.96|151|W|,Le Havre|normandy|FR|0.11|49.49|185|W|el havre;hawr;le port de grace,Le Mans|pays de la loire|FR|0.2|48|144|W|,Le Plateau-Mont-Royal|QC|CA|-73.58|45.53|105|N|,Le Sud-Ouest|QC|CA|-73.59|45.47|86|N|,Le Vieux-Longueuil|QC|CA|-73.51|45.54|135|NW|,League City|TX|US|-95.09|29.51|98|N|,Leamington|ON|CA|-82.6|42.05|35|N|,Leander|TX|US|-97.85|30.58|59|N|,Leavenworth|KS|US|-94.92|39.31|35|N|,Leawood|KS|US|-94.62|38.97|34|N|,Lebanon|TN|US|-86.29|36.21|30|N|,Lebanon|PA|US|-76.41|40.34|25|N|,Lee's Summit|MO|US|-94.38|38.91|95|N|,Leeds|england|GB|-1.55|53.8|536|W|,Leesburg|VA|US|-77.56|39.12|51|N|,Leganes|madrid|ES|-3.76|40.33|188|W|,Legaspi|bicol region|PH|123.74|13.14|179|W|legazpi;legaspi city;legazpi city,Lehi|UT|US|-111.85|40.39|58|N|,Lehigh Acres|FL|US|-81.62|26.63|86|N|,Leicester|england|GB|-1.13|52.64|368|W|,Leipzig|saxony|DE|12.37|51.34|504|W|lipsca;lipsia;lipsk;lipsko,Leisure City|FL|US|-80.43|25.5|26|N|,Lekki|lagos|NG|3.48|6.45|401|W|,Lembang|west java|ID|107.62|-6.81|183|W|,Lemon Grove|CA|US|-117.03|32.74|26|N|,Lemoore|CA|US|-119.78|36.3|25|N|,Lenexa|KS|US|-94.73|38.95|52|N|,Leogane|ouest|HT|-72.63|18.51|134|W|,Leominster|MA|US|-71.76|42.53|41|N|,Leon|leon department|NI|-86.88|12.44|144|W|,Leon de los Aldama|MX11|MX|-101.68|21.12|1579|NW|leon;leon guanajuato;leon de los aldamas,Lerdo|MX10|MX|-103.52|25.54|79|N|,Les Rivieres|QC|CA|-71.27|46.82|77|N|,Leshan|sichuan|CN|103.76|29.56|662|W|le san,Lethbridge|AB|CA|-112.82|49.7|103|N|,Leverkusen|north rhine westphalia|DE|6.98|51.03|162|W|,Levis|QC|CA|-71.18|46.8|143|NW|,Levittown|PA|US|-74.83|40.16|52|N|,Levittown|NY|US|-73.51|40.73|51|N|lewittown,Lewiston|ME|US|-70.21|44.1|36|N|,Lewiston|ID|US|-117.02|46.42|32|N|,Lewiston Orchards|ID|US|-116.98|46.38|31|N|,Lewisville|TX|US|-96.99|33.05|104|N|,Lexington|KY|US|-84.48|37.99|320|NW|,Lexington|MA|US|-71.22|42.45|31|N|lexington village;cambridge farms;lexington centre,Lexington-Fayette|KY|US|-84.46|38.05|314|NW|,Lhoka|tibet|CN|91.77|29.24|353|W|,Lhokseumawe|aceh|ID|97.15|5.18|200|W|kota lhokseumawe,Lianghu|zhejiang|CN|120.9|29.99|155|W|,Liangping|chongqing|CN|107.77|30.66|137|W|,Lianshan|liaoning|CN|120.85|40.76|313|W|,Lianyungang|jiangsu|CN|119.22|34.6|2001|W|,Liaocheng|shandong|CN|116|36.45|1229|W|liao ccheng;lieu thanh,Liaoyang|liaoning|CN|123.17|41.27|687|W|liao jang;lieu duong,Libertad|caraga|PH|125.5|8.94|250|W|,Liberty|MO|US|-94.42|39.25|30|N|,Libreville|estuaire|GA|9.45|0.39|846|W|,Licheng|guangdong|CN|113.82|23.3|172|W|,Lichinga|niassa province|MZ|35.24|-13.31|281|W|,Liege|wallonia|BE|5.57|50.63|195|W|luttich;liegi;lieja;luik;lutych,Lijiang|yunnan|CN|100.22|26.87|211|W|cidade antiga de lijiang;li tiang,Likasi|haut katanga|CD|26.74|-10.98|635|W|jadotstad;jadotsville,Lille|hauts de france|FR|3.06|50.63|238|W|rijsel;lila;lilla,Lilongwe|central region|MW|33.79|-13.97|1115|W|lilongue,Lima|lima province|PE|-77.03|-12.04|7737|W|,Lima|OH|US|-84.11|40.74|37|N|,Limassol|limassol|CY|33.04|34.68|154|W|lemesos;limasol;limisso,Limbe|south west|CM|9.21|4.02|131|W|,Limeira|sao paulo|BR|-47.4|-22.56|291|W|,Limoges|new aquitaine|FR|1.25|45.83|141|W|,Limuru|kiambu county|KE|36.64|-1.11|159|W|,Linares|MX19|MX|-99.57|24.86|70|N|,Lincang|yunnan|CN|100.09|23.88|323|W|,Lincoln|NE|US|-96.67|40.8|294|NW|,Lincoln|CA|US|-121.29|38.89|49|N|,Lincoln Park|IL|US|-87.65|41.92|66|N|,Lincoln Park|MI|US|-83.18|42.25|37|N|,Lincoln Square|IL|US|-87.69|41.98|40|N|,Linden|NJ|US|-74.24|40.62|42|N|,Lindenhurst|NY|US|-73.37|40.69|27|N|,Linfen|shanxi|CN|111.52|36.09|959|W|lin fen,Linhares|espirito santo|BR|-40.07|-19.39|183|W|,Linkoeping|ostergotland|SE|15.62|58.41|166|W|linkoping,Linqu|shandong|CN|118.54|36.52|299|W|,Linton Hall|VA|US|-77.57|38.76|35|N|,Linxia Chengguanzhen|gansu|CN|103.21|35.6|274|W|linxia,Linyi|shandong|CN|118.34|35.06|2743|W|lam nghi,Linz|upper austria|AT|14.29|48.31|204|W|linec,Lipa City|calabarzon|PH|121.16|13.94|212|W|,Lipetsk|lipetsk oblast|RU|39.55|52.59|509|W|lipezk;lipeck;lipetk;lipieck,Lisbon|lisbon|PT|-9.15|38.73|517|W|lisboa;lisabon;lisabona;lisbona;lisbonne;lissabon;lizbon;lizbona,Lishui|zhejiang|CN|119.91|28.46|451|W|li suej,Little Elm|TX|US|-96.94|33.16|38|N|,Little Havana|FL|US|-80.23|25.77|53|N|la pequena habana,Little Rock|AR|US|-92.29|34.75|202|NW|,Littleton|CO|US|-105.02|39.61|46|N|,Liupanshui|guizhou|CN|104.83|26.59|1320|W|liou pchan suej,Liuzhi|guizhou|CN|105.43|26.23|138|W|,Liuzhou|guangxi|CN|109.41|24.32|1436|W|liou cou;liuchow,Livermore|CA|US|-121.77|37.68|88|N|,Liverpool|england|GB|-2.98|53.41|496|W|,Livingston|NJ|US|-74.31|40.8|27|N|,Livingstone|southern province|ZM|25.85|-17.84|178|W|,Livonia|MI|US|-83.35|42.37|94|N|,Livorno|tuscany|IT|10.33|43.54|157|W|livourne,Lizhi|chongqing|CN|107.4|29.7|156|W|,Ljubljana|ljubljana|SI|14.51|46.05|272|W|liubliana;lubiana;lublana;lublan;laibach,Lleida|catalonia|ES|0.62|41.62|140|W|lerida,Lloydminster|AB|CA|-110.02|53.27|31|N|,Loa Janan|east kalimantan|ID|117.1|-0.58|212|W|,Lobito|benguela|AO|13.54|-12.36|393|W|,Lochearn|MD|US|-76.72|39.34|25|N|,Lockport|IL|US|-88.06|41.59|25|N|,Lodhran|punjab|PK|71.63|29.53|144|W|,Lodi|CA|US|-121.27|38.13|64|N|,Lodz|lodz voivodeship|PL|19.47|51.77|639|W|litzmannstadt,Logan|UT|US|-111.83|41.74|50|N|,Logan City|queensland|AU|153.11|-27.64|345|W|citta di logan;logan,Logan Square|IL|US|-87.7|41.92|73|N|,Logrono|la rioja|ES|-2.45|42.47|151|W|,Loja|loja|EC|-79.2|-3.99|274|W|,Loma Bonita|MX20|MX|-95.88|18.11|40|N|,Lombard|IL|US|-88.01|41.88|43|N|,Lome|maritime|TG|1.22|6.13|2188|W|,Lompoc|CA|US|-120.46|34.64|44|N|,London|england|GB|-0.13|51.51|8961|W|londres;londen;londra;londyn;lontoo;luan don,London|ON|CA|-81.23|42.98|422|NW|,Londrina|parana|BR|-51.16|-23.31|581|W|,Long Beach|CA|US|-118.19|33.77|474|NW|,Long Beach|NY|US|-73.66|40.59|33|N|,Long Bien|hanoi|VN|105.9|21.03|347|W|,Long Branch|NJ|US|-73.99|40.3|30|N|,Long Island City|NY|US|-73.95|40.74|25|N|lic,Long Khanh|dong nai|VN|107.25|10.93|171|W|,Long Xuyen|an giang|VN|105.44|10.39|286|W|,Longfellow Community|MN|US|-93.23|44.94|29|N|,Longfeng|heilongjiang|CN|125.1|46.53|152|W|,Longgang|guangdong|CN|114.26|22.72|215|W|district de longgang;long cuong;longgang district,Longling County|yunnan|CN|98.69|24.59|270|W|,Longmont|CO|US|-105.1|40.17|92|N|,Longshan|jilin|CN|125.14|42.89|465|W|liao juan;liaoyuan;lieu nguyen,Longueuil|QC|CA|-73.47|45.52|229|NW|,Longview|TX|US|-94.74|32.5|82|N|,Longview|WA|US|-122.94|46.14|36|N|,Longyan|fujian|CN|117.02|25.07|1025|W|long nham;lung jen,Loni|uttar pradesh|IN|77.29|28.75|516|W|,Lorain|OH|US|-82.18|41.45|63|N|,Los Altos|CA|US|-122.11|37.39|30|N|,Los Angeles|CA|US|-118.24|34.05|3820|NW|l a,Los Banos|CA|US|-120.85|37.06|37|N|,Los Gatos|CA|US|-121.97|37.23|30|N|,Los Mochis|MX25|MX|-109|25.79|256|NW|,Los Reyes Acaquilpan|MX15|MX|-98.98|19.36|85|N|los reyes la paz;reyes la paz,Los Reyes de Salgado|MX16|MX|-102.47|19.59|39|N|,Los Teques|miranda|VE|-67.04|10.35|252|W|,Loudi|hunan|CN|111.99|27.73|497|W|,Louisville|KY|US|-85.76|38.25|624|NW|,Loveland|CO|US|-105.07|40.4|75|N|,Lowell|MA|US|-71.32|42.63|110|N|,Lower Sackville|NS|CA|-63.68|44.78|51|N|,Lower West Side|IL|US|-87.67|41.85|34|N|,Lu'an|anhui|CN|116.52|31.74|1644|W|,Luancheng|hebei|CN|114.65|37.88|597|W|,Luanda|luanda|AO|13.23|-8.84|2776|W|loanda,Luanshya|copperbelt|ZM|28.42|-13.14|193|W|,Lubango|huila|AO|13.49|-14.92|600|W|sa da bandeira,Lubbock|TX|US|-101.86|33.58|249|NW|,Lublin|lublin|PL|22.57|51.25|336|W|lublino,Lubuklinggau|south sumatra|ID|102.86|-3.29|234|W|kota lubuklinggau,Lubumbashi|haut katanga|CD|27.48|-11.66|2221|W|elizabethstad;elisabethville,Lucena|calabarzon|PH|121.62|13.93|228|W|kota lucena;lucena city,Lucknow|uttar pradesh|IN|80.92|26.84|2472|W|lakhnau;laknau,Ludhiana|punjab|IN|75.85|30.91|1618|W|ludhijana,Ludwigshafen am Rhein|rheinland pfalz|DE|8.45|49.48|163|W|ludwigshafen;ludwigshafen sul reno,Luebeck|schleswig holstein|DE|10.69|53.87|212|W|lubeck;lubeca;lubecca;lubeka;lyypekki,Lueliang|shanxi|CN|111.14|37.52|3346|W|luliang,Luena|moxico|AO|19.92|-11.78|273|W|,Lufkin|TX|US|-94.73|31.34|36|N|,Luhansk|luhansk|UA|39.31|48.57|397|W|loehansk;louhansk;lugansk;luhans k;voroshilovgrad;woroschilowgrad,Luohe|henan|CN|114.03|33.57|1294|W|luo che;thap ha,Luohu District|guangdong|CN|114.13|22.55|1143|W|,Luojiang|sichuan|CN|104.5|31.3|212|W|,Luoyang|henan|CN|112.44|34.67|1390|W|luo jang,Lusail|al daayen|QA|51.51|25.42|198|W|,Lusaka|lusaka province|ZM|28.29|-15.41|2212|W|,Lushui|yunnan|CN|98.86|25.82|197|W|,Luton|england|GB|-0.42|51.88|225|W|,Lutsk|volyn|UA|25.35|50.76|215|W|loetsk;loutsk;luc k;luzk;luck;lucioria,Luxor|luxor|EG|32.64|25.7|422|W|el uksur;louxor;luksor,Luzhou|sichuan|CN|105.43|28.89|998|W|lu cou;lo chau,Luziania|goias|BR|-47.95|-16.25|221|W|,Lviv|lviv|UA|24.02|49.84|717|W|leopoli;lwow;leopolo;leopolis;liov;lvov;lwiw;lemberg,Lynchburg|VA|US|-79.14|37.41|79|N|,Lynn|MA|US|-70.95|42.47|92|N|,Lynnwood|WA|US|-122.32|47.82|36|N|,Lynwood|CA|US|-118.21|33.93|71|N|,Lyon|rhone alpes|FR|4.85|45.75|520|W|lione,Lyubertsy|moscow oblast|RU|37.89|55.68|154|W|lioubertsy;liubertsi;liuberti;liubertsy;ljoebertsy;ljubercy;ljubertsy;ljuberzy;lubiercy,Lyublino|moscow|RU|37.76|55.68|172|W|,M'Sila|m sila|DZ|4.54|35.71|132|W|,Ma'anshan|anhui|CN|118.51|31.69|741|W|,Ma On Shan|sha tin|HK|114.24|22.41|215|W|,Mabalacat City|central luzon|PH|120.57|15.22|188|W|mabalacat,Mableton|GA|US|-84.58|33.82|37|N|,Macae|rio de janeiro|BR|-41.78|-22.38|264|W|,Macapa|amapa|BR|-51.07|0.04|512|W|,Macau||MO|113.55|22.2|649|W|ma cao;macao;makao;makau,Maceio|alagoas|BR|-35.74|-9.67|1031|W|macelo,Machala|el oro|EC|-79.96|-3.26|289|W|,Machida|tokyo|JP|139.45|35.54|431|W|,Machilipatnam|andhra pradesh|IN|81.14|16.19|192|W|masulipatao,Machiques|zulia|VE|-72.55|10.06|132|W|,Macon|GA|US|-83.63|32.84|91|N|,Macuspana|MX27|MX|-92.6|17.76|32|N|,Madanapalle|andhra pradesh|IN|78.5|13.55|180|W|,Madera|CA|US|-120.06|36.96|64|N|,Madhurampur Dehri|bihar|IN|84.2|24.97|137|W|,Madhyamgram|west bengal|IN|88.45|22.69|161|W|,Madinah|medina region|SA|39.61|24.47|1300|W|medina;al madinah al munawwarah;medine;medyna,Madinat an Nasr|cairo|EG|31.3|30.07|668|W|,Madinat Hamad|northern|BH|50.51|26.12|133|W|hamad town,Madison|WI|US|-89.4|43.07|280|NW|,Madison|AL|US|-86.75|34.7|46|N|,Madison|MS|US|-90.12|32.46|25|N|,Madison Heights|MI|US|-83.11|42.49|30|N|madison hts,Madiun|east java|ID|111.52|-7.63|202|W|kota madiun,Madrid|madrid|ES|-3.7|40.42|3255|W|madryt,Madrid|cundinamarca|CO|-74.26|4.73|135|W|,Madrid Centro|madrid|ES|-3.7|40.42|149|W|madrid city center,Madurai|tamil nadu|IN|78.12|9.92|1465|W|maduraj,Maebashi|gunma|JP|139.08|36.4|332|W|maebasi,Magdalena Atlicpac|MX15|MX|-98.95|19.37|26|N|,Magdalena Contreras|MX09|MX|-99.21|19.33|238|NW|,Magdalena de Kino|MX26|MX|-110.96|30.63|26|N|,Magdeburg|saxony anhalt|DE|11.63|52.13|244|W|maagdenburg;magdebourg;magdeburgo;magdeburk,Mage|rio de janeiro|BR|-43.04|-22.65|244|W|,Magna|UT|US|-112.1|40.71|26|N|,Magnitogorsk|chelyabinsk|RU|59.01|53.4|413|W|,Magugpo Poblacion|davao region|PH|125.8|7.45|233|W|tagum;tagum city,Mahabad|west azerbaijan|IR|45.72|36.76|168|W|mehabad,Mahajanga|boeny|MG|46.32|-15.72|260|W|,Maharagama|western province|LK|79.93|6.85|195|W|,Mahbubnagar|telangana|IN|77.99|16.74|190|W|,Mahesana|gujarat|IN|72.38|23.6|190|W|,Maheshtala|west bengal|IN|88.25|22.51|448|W|,Mahilyow|mogilev|BY|30.34|53.91|352|W|mahiljou;mogilev;maguilov;mahiliou;mahiljow;mahileu;mogiljow;moguilev;mohylew,Maianga|luanda|AO|13.24|-8.85|727|W|,Maicao|la guajira department|CO|-72.24|11.38|166|W|,Maiduguri|borno state|NG|13.16|11.85|1110|W|,Maijdi|chittagong|BD|91.1|22.87|132|W|,Mainz|rheinland pfalz|DE|8.28|49.98|222|W|magonza;maguncia;mayence;moguncja;moguncia;mohuc;maienta;ments,Maipu|santiago metropolitan|CL|-70.77|-33.51|503|W|,Majie|yunnan|CN|102.64|25.03|131|W|,Makakilo / Kapolei / Honokai Hale|HI|US|-158.1|21.34|46|N|,Makassar|south sulawesi|ID|119.43|-5.15|1474|W|kota makassar;macassar;makasar,Makati City|national capital region|PH|121.03|14.55|510|W|makati,Makhachkala|dagestan|RU|47.5|42.98|596|W|machaczkala;machatjkala;machatschkala;machatsjkala;machackala;mahackala;mahatskala;mahckale;majachkala;makhatchkala;makhatsjkala,Makiki / Lower Punchbowl / Tantalus|HI|US|-157.83|21.32|31|N|,Makiyivka|donetsk|UA|37.93|48.05|338|W|makiejewka;makiivka,Makkah|mecca region|SA|39.83|21.43|1578|W|mecca;la meca;la mecca;la mecque;makkah al mukarramah;meca;mecka;mekka;mekkah;mekke,Makurdi|benue state|NG|8.52|7.73|390|W|,Malabo|bioko norte|GQ|8.78|3.76|155|W|ciudad de malabo;santa isabel,Malabon|national capital region|PH|120.94|14.67|365|W|,Malacca|melaka|MY|102.24|2.2|579|W|malakka;malaca;malaka;melaka,Malaga|andalusia|ES|-4.42|36.72|592|W|,Malakal|upper nile|SS|31.66|9.53|160|W|,Malang|east java|ID|112.63|-7.98|889|W|kabupaten malang;kota malang,Malanje|malanje|AO|16.34|-9.54|455|W|,Malatia-Sebastia|yerevan|AM|44.45|40.17|150|W|,Malatya|malatya|TR|38.32|38.35|750|W|,Malayer|hamadan province|IR|48.82|34.3|170|W|,Malda|west bengal|IN|88.15|25|170|W|english bazar,Malden|MA|US|-71.07|42.43|61|N|,Malegaon|maharashtra|IN|74.53|20.55|481|W|,Maler Kotla|punjab|IN|75.88|30.53|135|W|,Malingao|soccsksargen|PH|124.47|7.16|1121|W|,Malir Cantonment|sindh|PK|67.21|24.94|300|W|,Malkajgiri|telangana|IN|78.53|17.45|150|W|,Mallawi|minya|EG|30.84|27.73|212|W|,Malmoe|skane|SE|13|55.61|362|W|malmo,Malolos|central luzon|PH|120.81|14.84|269|W|malolos city,Maltepe|istanbul|TR|29.16|40.94|427|W|,Malvern|ON|CA|-79.22|43.81|43|N|,Man|montagnes|CI|-7.55|7.41|241|W|,Man'gyongdae-ri|pyongyang|KP|125.66|38.99|321|W|,Manado|north sulawesi|ID|124.85|1.48|458|W|kota manado,Managua|managua department|NI|-86.25|12.13|973|W|,Manama|manama|BH|50.59|26.23|147|W|al manamah;manamah,Manassas|VA|US|-77.48|38.75|41|N|,Manaus|amazonas|BR|-60.02|-3.1|2219|W|manaos,Manchester|england|GB|-2.24|53.48|568|W|,Manchester|NH|US|-71.45|43|110|N|,Manchester|CT|US|-72.52|41.78|30|N|,Mandalay|mandalay region|MM|96.08|21.97|1208|W|mandalaj,Mandaluyong|national capital region|PH|121.04|14.58|425|W|,Mandaluyong City|national capital region|PH|121.04|14.58|465|W|mandaluyong,Mandaue City|central visayas|PH|123.92|10.32|331|W|,Mandsaur|madhya pradesh|IN|75.07|24.07|141|W|,Mandya|karnataka|IN|76.9|12.52|137|W|mandja,Maneah|kindia|GN|-13.42|9.73|194|W|,Mangaluru|karnataka|IN|74.86|12.92|499|W|mangalore,Mango|jharkhand|IN|86.22|22.83|223|W|,Manhattan|NY|US|-73.97|40.78|1487|NW|,Manhattan|KS|US|-96.57|39.18|56|N|,Manhattan Beach|CA|US|-118.41|33.88|35|N|,Manhattan Valley|NY|US|-73.97|40.79|38|N|,Manila|national capital region|PH|120.98|14.6|1600|W|city of manila;manila city;manilla;manille,Manisa|manisa|TR|27.43|38.61|243|W|magnesia ad sipylum;magnesia am sipylos,Manitowoc|WI|US|-87.66|44.09|33|N|,Manizales|caldas department|CO|-75.51|5.07|434|W|,Manjhand|sindh|PK|68.24|25.91|140|W|,Mankato|MN|US|-94.01|44.16|41|N|,Mannheim|baden wurttemberg|DE|8.47|49.49|307|W|,Manokwari|west papua|ID|134.06|-0.86|132|W|,Mansa|luapula province|ZM|28.89|-11.2|170|W|,Mansfield|england|GB|-1.2|53.13|171|W|,Mansfield|TX|US|-97.14|32.56|64|N|,Mansfield|OH|US|-82.52|40.76|46|N|,Mansfield City|CT|US|-72.23|41.77|26|N|,Mansilingan|western visayas|PH|122.98|10.63|454|W|,Manta|manabi|EC|-80.73|-0.95|264|W|manta ecuador,Mantampay|northern mindanao|PH|124.22|8.17|265|W|,Manteca|CA|US|-121.22|37.8|75|N|,Mantilla|havana|CU|-82.34|23.07|206|W|,Manukau City|auckland|NZ|174.88|-36.99|362|W|manukau,Manzanillo|MX08|MX|-104.34|19.12|159|NW|,Maoming|guangdong|CN|110.91|21.67|1307|W|chaozhou;mao ming,Maple Grove|MN|US|-93.46|45.07|68|N|,Maple Ridge|BC|CA|-122.6|49.22|82|N|,Maple Valley|WA|US|-122.05|47.39|25|N|,Maplewood|MN|US|-93|44.95|40|N|,Maplewood|NJ|US|-74.27|40.73|25|N|,Maputo|maputo city|MZ|32.58|-25.97|1254|W|lourenco marques,Mar del Plata|buenos aires|AR|-57.56|-38|593|W|,Mar'ino|moscow|RU|37.72|55.65|243|W|,Maraba|para|BR|-49.13|-5.38|283|W|,Maracaibo|zulia|VE|-71.61|10.64|1752|W|,Maracanau|ceara|BR|-38.63|-3.88|251|W|,Maracay|aragua|VE|-67.59|10.25|464|W|,Maradi|maradi region|NE|7.1|13.5|361|W|,Maragheh|east azerbaijan|IR|46.24|37.39|262|W|,Maragheh|razavi khorasan|IR|59.63|35.83|262|W|,Marana|AZ|US|-111.23|32.44|41|N|,Maravatio de Ocampo|MX16|MX|-100.44|19.89|34|N|,Marawi City|autonomous region in muslim mindanao|PH|124.28|8|259|W|,Marbella|andalusia|ES|-4.89|36.52|156|W|,Marcory|abidjan autonomous district|CI|-3.99|5.31|214|W|,Mardan|khyber pakhtunkhwa|PK|72.05|34.2|300|W|,Marfil|MX11|MX|-101.29|21|29|N|,Marg'ilon|fergana|UZ|71.72|40.47|253|W|margilan,Margate|FL|US|-80.21|26.24|57|N|,Marianao|havana|CU|-82.43|23.07|134|W|,Marica|rio de janeiro|BR|-42.82|-22.92|211|W|,Maricopa|AZ|US|-112.05|33.06|48|N|,Marienthal|hamburg|DE|10.08|53.57|287|W|hamburg marienthal,Marietta|GA|US|-84.55|33.95|59|N|,Marikina City|national capital region|PH|121.11|14.65|471|W|,Marilia|sao paulo|BR|-49.95|-22.21|237|W|,Maringa|parana|BR|-51.94|-23.43|409|W|,Marion|IA|US|-91.6|42.03|37|N|,Marion|OH|US|-83.13|40.59|36|N|,Marion|IN|US|-85.66|40.56|29|N|,Mariupol|donetsk|UA|37.54|47.1|230|W|marioepol;marioupol,Marivan|kurdistan province|IR|46.18|35.52|136|W|,Mariveles|central luzon|PH|120.49|14.43|156|W|,Marka|lower shabeelle|SO|44.77|1.72|230|W|merca,Markham|ON|CA|-79.27|43.87|338|NW|,Marlboro|NJ|US|-74.25|40.32|40|N|,Marlborough|MA|US|-71.55|42.35|39|N|,Marne La Vallee|ile de france|FR|2.64|48.84|318|W|,Maroua|far north|CM|14.32|10.59|314|W|,Marpole|BC|CA|-123.13|49.21|27|N|,Marrakesh|marrakesh safi|MA|-8|31.63|995|W|marrakech;marakes;marrakesch;marrakesz;marraquexe;marrakes,Marrero|LA|US|-90.1|29.9|33|N|,Marsa Matruh|matruh|EG|27.24|31.35|176|W|mersa matruh,Marseille|provence alpes cote d azur|FR|5.38|43.3|877|W|marselha;marsella;marsiglia;marsilia;marsilya;marsylia,Marshalltown|IA|US|-92.91|42.05|27|N|,Martapura|south kalimantan|ID|114.86|-3.41|131|W|,Martinez|CA|US|-122.13|38.02|38|N|,Martinez|GA|US|-82.08|33.52|35|N|,Martinez de la Torre|MX30|MX|-97.06|20.07|60|N|,Marvdasht|fars|IR|52.8|29.87|148|W|,Mary|mary|TM|61.83|37.59|167|W|,Maryland Heights|MO|US|-90.43|38.71|27|N|,Marysville|WA|US|-122.18|48.05|66|N|,Maryvale|AZ|US|-112.18|33.5|208|NW|,Maryville|TN|US|-83.97|35.76|28|N|,Masai|johor|MY|103.88|1.49|141|W|,Masan|gwangju|KR|126.83|35.13|434|W|,Masaya|masaya department|NI|-86.1|11.97|130|W|,Mascouche|QC|CA|-73.6|45.75|34|N|,Maseru|maseru district|LS|27.48|-29.32|359|W|,Mashhad|razavi khorasan|IR|59.61|36.3|2307|W|maschhad;mashad;masyhad;meszhed;mexed;meshed;alexandria;sanaabad,Masina|kinshasa|CD|15.39|-4.38|485|W|,Mason|OH|US|-84.31|39.36|32|N|,Mason City|IA|US|-93.2|43.15|27|N|,Maspeth|NY|US|-73.91|40.72|48|N|,Massillon|OH|US|-81.52|40.8|32|N|,Matadi|bas congo|CD|13.46|-5.84|425|W|,Matamoros|MX07|MX|-103.23|25.53|52|N|,Matanzas|matanzas province|CU|-81.58|23.04|146|W|,Mataram|west nusa tenggara|ID|116.12|-8.58|441|W|kota mataram,Matehuala|MX24|MX|-100.64|23.65|77|N|,Mathura|uttar pradesh|IN|77.67|27.5|330|W|matura,Matola|maputo province|MZ|32.46|-25.96|1198|W|,Matsubara|osaka|JP|135.55|34.57|130|W|,Matsudo|chiba|JP|139.9|35.78|498|W|,Matsue|shimane|JP|133.05|35.48|203|W|macue,Matsumoto|nagano|JP|137.97|36.23|241|W|macumoto,Matsusaka|mie|JP|136.54|34.58|159|W|,Matsuyama|ehime|JP|132.77|33.84|511|W|macujama;matsuyama shi,Mattapan|MA|US|-71.09|42.27|36|N|,Matthews|NC|US|-80.72|35.12|30|N|,Matuga|kwale county|KE|39.57|-4.17|194|W|,Maturin|monagas|VE|-63.18|9.75|647|W|,Mau|uttar pradesh|IN|83.56|25.94|246|W|,Maua|sao paulo|BR|-46.46|-23.67|418|W|,Mauldin|SC|US|-82.31|34.78|25|N|,Mawlamyine|mon|MM|97.63|16.49|438|W|mawlamyaing;moulmein;mulmejn,Maykop|adygeya republic|RU|40.1|44.61|141|W|maikop;majkop,Maywood|CA|US|-118.19|33.99|27|N|,Mazar-e Sharif|balkh|AF|67.11|36.71|523|W|masar e scharif;mazar e charif;mazar i szarif;mazari sharif;mazar e sarif;mezirek i serif,Mazatlan|MX25|MX|-106.42|23.22|381|NW|ciudad mazatlan,Mbandaka|equateur|CD|18.26|0.05|455|W|,Mbanza Kongo|zaire|AO|14.24|-6.27|148|W|mbanza congo,Mbanza-Ngungu|bas congo|CD|14.86|-5.26|142|W|,Mbarara|western region|UG|30.65|-0.6|221|W|,Mbeya|mbeya|TZ|33.45|-8.9|541|W|,Mbour|thies|SN|-16.96|14.42|284|W|,Mbuji-Mayi|east kasai|CD|23.59|-6.14|2101|W|,McAllen|TX|US|-98.23|26.2|140|NW|,McCully - Moiliili|HI|US|-157.83|21.29|28|N|,McHenry|IL|US|-88.27|42.33|26|N|,McKinney|TX|US|-96.62|33.2|162|NW|,McLean|VA|US|-77.18|38.93|48|N|,McMinnville|OR|US|-123.2|45.21|33|N|,Mdantsane|eastern cape|ZA|27.78|-32.93|205|W|,Meadow Woods|FL|US|-81.37|28.39|25|N|,Meads|KY|US|-82.71|38.41|288|NW|,Mechanicsville|VA|US|-77.37|37.61|36|N|,Medan|north sumatra|ID|98.67|3.58|2486|W|kota medan,Medea|medea|DZ|2.75|36.26|145|W|al madijja,Medellin|antioquia|CO|-75.57|6.25|1999|W|medelim,Medford|OR|US|-122.88|42.33|79|N|,Medford|MA|US|-71.11|42.42|57|N|,Medicine Hat|AB|CA|-110.68|50.04|63|N|,Medina|OH|US|-81.86|41.14|26|N|,Medinipur|west bengal|IN|87.32|22.42|153|W|,Meerut|uttar pradesh|IN|77.71|28.98|1223|W|merath,Meguro|tokyo|JP|139.7|35.63|288|W|meguro city,Mehlville|MO|US|-90.32|38.51|28|N|,Meiktila|mandalay region|MM|95.86|20.88|177|W|miktila,Meishan|sichuan|CN|103.84|30.04|1107|W|mej san;mi son,Meizhou|guangdong|CN|116.12|24.29|992|W|mai chau;mej cou,Mejicanos|san salvador department|SV|-89.19|13.72|160|W|,Mek'ele|tigray|ET|39.48|13.5|457|W|macalle;mekelie,Meknes|fes meknes|MA|-5.55|33.89|568|W|,Melbourne|victoria|AU|144.96|-37.81|5435|W|greater melbourne;melbourne city,Melbourne|FL|US|-80.61|28.08|84|N|,Melchor Ocampo|MX15|MX|-99.14|19.7|38|N|,Melitopol|zaporizhzhia|UA|35.38|46.85|148|W|kyzyl yar;melitopoli;novoalexandrovka,Melrose|MA|US|-71.07|42.46|27|N|,Melrose Park|IL|US|-87.86|41.9|25|N|,Memphis|TN|US|-90.05|35.15|633|NW|menfis,Mengzi|yunnan|CN|103.38|23.37|595|W|,Menifee|CA|US|-117.15|33.73|87|N|,Menlo Park|CA|US|-122.18|37.45|33|N|,Menomonee Falls|WI|US|-88.12|43.18|36|N|,Menongue|cubango|AO|17.69|-14.66|251|W|,Mentor|OH|US|-81.34|41.67|46|N|,Mentougou|beijing|CN|116.09|39.94|197|W|,Merced|CA|US|-120.48|37.3|82|N|,Mercer Island|WA|US|-122.22|47.57|25|N|,Mercerville-Hamilton Square|NJ|US|-74.67|40.23|26|N|hamilton square,Mercier-Hochelaga-Maisonneuve|QC|CA|-73.55|45.57|142|NW|,Merida|MX31|MX|-89.62|20.97|1201|NW|,Merida|merida|VE|-71.17|8.58|300|W|,Meriden|CT|US|-72.81|41.54|59|N|,Meridian|ID|US|-116.39|43.61|90|N|,Meridian|MS|US|-88.7|32.36|39|N|,Merkezefendi|denizli|TR|29.04|37.81|280|W|,Merlo|buenos aires|AR|-58.73|-34.67|268|W|,Merrillville|IN|US|-87.33|41.48|35|N|,Merrimack|NH|US|-71.49|42.87|26|N|east merrimack,Merritt Island|FL|US|-80.69|28.36|34|N|,Mersin|mersin|TR|34.64|36.81|537|W|myrte;icel,Mesa|AZ|US|-111.82|33.42|471|NW|,Mesquite|TX|US|-96.6|32.77|144|NW|,Messina|sicily|IT|15.55|38.19|219|W|mesina;messine;mesyna,Mestre|veneto|IT|12.25|45.49|147|W|mestre bei venedig,Metairie|LA|US|-90.15|29.98|138|NW|,Metairie Terrace|LA|US|-90.16|29.98|142|NW|,Metepec|MX15|MX|-99.6|19.26|28|N|municipio metepec;municipio de metepec,Methuen|MA|US|-71.19|42.73|52|N|,Metro|lampung|ID|105.31|-5.11|182|W|kota metro,Metrotown|BC|CA|-123|49.23|52|N|,Mexicali|MX02|MX|-115.45|32.63|1032|NW|,Mexico City|MX09|MX|-99.13|19.43|12294|NW|ciudad de mexico;mexico by;cidade do mexico;citta del messico;ciudad de mejico;meksyk;mexico;mexico d f;mexico stad;mexiko stadt;mexico distrito federal;valle de mexico,Meycauayan|central luzon|PH|120.96|14.74|228|W|kota meycauayan;meycauayan city,Miami|FL|US|-80.19|25.77|487|NW|,Miami Beach|FL|US|-80.13|25.79|92|N|,Miami Gardens|FL|US|-80.25|25.94|113|N|,Miami Lakes|FL|US|-80.31|25.91|30|N|,Mian Channun|punjab|PK|72.36|30.44|140|W|mian channu,Miandoab|west azerbaijan|IR|46.11|36.97|134|W|,Mianyang|sichuan|CN|104.68|31.47|1550|W|mien jang;mien duong,Mianzhu Deyang Sichuan|sichuan|CN|104.22|31.34|510|W|,Miass|chelyabinsk|RU|60.11|55.05|167|W|,Michigan City|IN|US|-86.9|41.71|31|N|,Mid-City|CA|US|-118.36|34.04|83|N|,Middelburg|mpumalanga|ZA|29.46|-25.78|196|W|,Middle River|MD|US|-76.44|39.33|25|N|,Middle Village|NY|US|-73.88|40.72|29|N|,Middlesbrough|england|GB|-1.23|54.58|142|W|,Middletown|NJ|US|-74.12|40.39|65|N|middletown township;municipio de middletown,Middletown|OH|US|-84.4|39.52|48|N|,Middletown|CT|US|-72.65|41.56|46|N|,Middletown|NY|US|-74.42|41.45|27|N|,Midland|TX|US|-102.08|32|132|NW|,Midland|MI|US|-84.25|43.62|42|N|,Midvale|UT|US|-111.9|40.61|32|N|,Midwest City|OK|US|-97.4|35.45|57|N|,Miguel Aleman (La Doce)|MX26|MX|-111.48|28.84|30|N|,Miguel Hidalgo|MX09|MX|-99.2|19.43|372|NW|delegacion miguel hidalgo,Milagro|guayas|EC|-79.59|-2.13|133|W|,Milan|lombardy|IT|9.19|45.46|1371|W|milano;mailand;mediolan;milaan;milao,Milford|CT|US|-73.06|41.22|52|N|,Milford|MA|US|-71.52|42.14|25|N|,Milford Mill|MD|US|-76.77|39.35|29|N|,Mililani Town|HI|US|-158.02|21.45|27|N|,Millcreek|UT|US|-111.88|40.69|62|N|,Milliken|ON|CA|-79.3|43.82|26|N|,Millville|NJ|US|-75.04|39.4|28|N|,Milpitas|CA|US|-121.91|37.43|77|N|,Milton|ON|CA|-79.88|43.52|132|NW|,Milton|GA|US|-84.3|34.13|37|N|,Milton|MA|US|-71.07|42.25|27|N|,Milton Keynes|england|GB|-0.76|52.04|256|W|,Milwaukee|WI|US|-87.91|43.04|563|NW|,Mimico|ON|CA|-79.51|43.62|33|N|,Minamirinkan|kanagawa|JP|139.44|35.5|224|W|,Minatitlan|MX30|MX|-94.56|18|112|N|,Minato|wakayama|JP|135.15|34.22|375|W|,Minato City|tokyo|JP|139.75|35.66|260|W|minato,Mingala Tangnyunt|yangon|MM|96.17|16.79|132|W|,Mingaladon|yangon|MM|96.1|16.92|136|W|,Mingora|khyber pakhtunkhwa|PK|72.36|34.78|361|W|mingaora,Minhang|shanghai|CN|121.37|31.11|2716|W|,Minna|niger state|NG|6.55|9.62|425|W|,Minneapolis|MN|US|-93.26|44.98|410|NW|mineapolis,Minnetonka|MN|US|-93.5|44.91|51|N|,Minnetonka Mills|MN|US|-93.44|44.94|50|N|,Minoh|osaka|JP|135.47|34.83|136|W|,Minot|ND|US|-101.3|48.23|49|N|,Minsk|minsk city|BY|27.57|53.9|1742|W|,Mint Hill|NC|US|-80.65|35.18|25|N|,Minya|minya|EG|30.76|28.09|283|W|,Mira Mesa|CA|US|-117.14|32.92|70|N|,Mirabel|QC|CA|-74.08|45.65|34|N|,Miraflores|lima region|PE|-77.03|-12.11|187|W|san borja,Miramar|FL|US|-80.23|25.99|137|NW|,Miramar|MX28|MX|-97.9|22.36|118|N|,Miri|sarawak|MY|113.99|4.4|300|W|marabu,Mirpur Khas|sindh|PK|69.01|25.53|267|W|,Mirpur Model Thana|dhaka division|BD|90.36|23.81|546|W|,Mirzapur|uttar pradesh|IN|82.57|25.14|220|W|,Misantla|MX30|MX|-96.85|19.93|26|N|,Misato Saitama|saitama|JP|139.88|35.84|142|W|,Mishawaka|IN|US|-86.16|41.66|48|N|,Miskolc|borsod abauj zemplen|HU|20.78|48.1|154|W|miszkolc,Misratah|misratah|LY|15.09|32.38|355|W|al misratah;misrata,Mission|TX|US|-98.33|26.22|83|N|,Mission|BC|CA|-122.3|49.13|41|N|,Mission Bend|TX|US|-95.66|29.69|36|N|,Mission District|CA|US|-122.42|37.76|47|N|,Mission Viejo|CA|US|-117.67|33.6|97|N|,Mississauga|ON|CA|-79.66|43.58|717|NW|,Missoula|MT|US|-113.99|46.87|71|N|,Missouri City|TX|US|-95.54|29.62|74|N|,Mit Ghamr|dakahlia|EG|31.26|30.72|153|W|,Mito|ibaraki|JP|140.45|36.35|270|W|,Mixco|guatemala|GT|-90.61|14.63|465|W|,Mixquiahuala de Juarez|MX13|MX|-99.21|20.23|25|N|,Miyakonojo|miyazaki|JP|131.07|31.73|161|W|,Miyazaki|miyazaki|JP|131.42|31.92|401|W|miyazaki shi;miyazakishi,Mlolongo|machakos county|KE|36.94|-1.4|136|W|,Mobile|AL|US|-88.04|30.69|183|NW|,Mocuba|zambezia province|MZ|36.99|-16.84|196|W|,Modena|emilia romagna|IT|10.93|44.65|184|W|modene,Modesto|CA|US|-121|37.64|211|NW|,Modinagar|uttar pradesh|IN|77.57|28.83|475|W|,Moenchengladbach|north rhine westphalia|DE|6.44|51.19|261|W|monchengladbach,Moga|punjab|IN|75.17|30.81|163|W|,Mogadishu|banaadir|SO|45.34|2.04|2587|W|mogadischu;mogadiscio;mogadiszu;mogadisu;mogadiso,Mogi das Cruzes|sao paulo|BR|-46.19|-23.52|325|W|,Mogi Guacu|sao paulo|BR|-46.95|-22.37|160|W|,Mohali|punjab|IN|76.72|30.68|166|W|,Mohammadpur|rajshahi division|BD|88.53|24.9|527|W|,Mohammedia|casablanca settat|MA|-7.38|33.69|227|W|al muhammadijja;muhammediye;fedala,Mojokerto|east java|ID|112.43|-7.47|141|W|kota mojokerto,Mokotow|mazovia|PL|21.03|52.19|217|W|,Mokpo|jeollanam do|KR|126.39|34.81|268|W|mogpo,Moline|IL|US|-90.52|41.51|42|N|,Mombasa|mombasa county|KE|39.66|-4.05|1208|W|mombassa;mombaca,Monclova|MX07|MX|-101.42|26.91|215|NW|,Moncton|NB|CA|-64.8|46.09|86|N|,Monroe|LA|US|-92.12|32.51|49|N|,Monroe|NC|US|-80.55|34.99|34|N|,Monroeville|PA|US|-79.79|40.42|28|N|,Monrovia|montserrado county|LR|-10.8|6.3|1542|W|monrowia,Monrovia|CA|US|-118|34.15|37|N|,Montclair|NJ|US|-74.21|40.83|39|N|,Montclair|CA|US|-117.69|34.08|38|N|,Montebello|CA|US|-118.11|34.01|63|N|,Montemorelos|MX19|MX|-99.83|25.19|67|N|,Monterey|CA|US|-121.89|36.6|28|N|monterrey,Monterey Park|CA|US|-118.12|34.06|61|N|,Monteria|cordoba|CO|-75.88|8.75|490|W|,Monterrey|MX19|MX|-100.32|25.68|1135|NW|monterrei;monterrey city,Montes Claros|minas gerais|BR|-43.86|-16.73|437|W|,Montevideo|montevideo department|UY|-56.19|-34.9|1270|W|montevideu,Montgomery|AL|US|-86.3|32.37|195|NW|,Montgomery Village|MD|US|-77.2|39.18|32|N|,Montpellier|occitanie|FR|3.88|43.61|248|W|,Montreal|QC|CA|-73.59|45.51|1762|NW|montreal city,Montreal-Nord|QC|CA|-73.63|45.6|86|N|,Monywa|sagaing region|MM|95.14|22.11|182|W|munywa,Moore|OK|US|-97.49|35.34|60|N|,Mooresville|NC|US|-80.81|35.58|36|N|,Moorhead|MN|US|-96.77|46.87|42|N|,Moorpark|CA|US|-118.88|34.29|36|N|,Moose Jaw|SK|CA|-105.53|50.4|33|N|,Mopti|mopti|ML|-4.18|14.48|186|W|,Moradabad|uttar pradesh|IN|78.78|28.84|721|W|,Moratuwa|western province|LK|79.88|6.77|168|W|,Morelia|MX16|MX|-101.18|19.7|743|NW|,Morena|madhya pradesh|IN|78|26.5|200|W|,Moreno|buenos aires|AR|-58.79|-34.63|148|W|,Moreno Valley|CA|US|-117.23|33.94|204|NW|,Morgan Hill|CA|US|-121.65|37.13|42|N|,Morgantown|WV|US|-79.96|39.63|30|N|,Moriguchi|osaka|JP|135.57|34.73|143|W|,Morioka|iwate|JP|141.15|39.7|290|W|,Morningside Heights|NY|US|-73.96|40.81|55|N|,Moro|sindh|PK|68|26.66|142|W|,Morogoro|morogoro|TZ|37.66|-6.82|471|W|,Moroleon|MX11|MX|-101.19|20.13|43|N|,Morris Heights|NY|US|-73.92|40.85|40|N|,Morristown|TN|US|-83.29|36.21|29|N|,Morvi|gujarat|IN|70.84|22.82|210|W|,Moscow|moscow|RU|37.62|55.75|10381|W|moscou;moscova;moscovo;moscu;matxcova;mosca;moskau;moskou;moskova;moskva;moskwa;mat xco va,Moscow|ID|US|-117|46.73|25|N|,Moshi|kilimanjaro|TZ|37.33|-3.35|221|W|,Mossamedes|namibe|AO|12.15|-15.2|255|W|mocamedes;namibe,Mossoro|rio grande do norte|BR|-37.34|-5.19|264|W|,Mostaganem|mostaganem|DZ|0.09|35.93|162|W|mustaghanam,Mostoles|madrid|ES|-3.86|40.32|207|W|,Mosul|nineveh|IQ|43.12|36.34|1683|W|mosoel;mossoul;mossul;musul,Motijheel|dhaka division|BD|90.42|23.73|202|W|,Mott Haven|NY|US|-73.92|40.81|51|N|,Moundou|logone occidental|TD|16.08|8.57|196|W|,Mount Juliet|TN|US|-86.52|36.2|31|N|,Mount Laurel|NJ|US|-74.89|39.93|41|N|,Mount Lebanon|PA|US|-80.05|40.36|32|N|,Mount Olive-Silverstone-Jamestown|ON|CA|-79.59|43.75|32|N|,Mount Pleasant|SC|US|-79.86|32.79|81|N|mt pleasant,Mount Pleasant|DC|US|-77.04|38.93|35|N|ingleside;mount pleasant village;rosemont park;walbridge,Mount Pleasant|BC|CA|-123.1|49.27|33|N|,Mount Pleasant|WI|US|-87.86|42.7|26|N|,Mount Pleasant|MI|US|-84.77|43.6|26|N|mt pleasant,Mount Pleasant West|ON|CA|-79.39|43.7|29|N|,Mount Prospect|IL|US|-87.94|42.07|54|N|,Mount Vernon|NY|US|-73.84|40.91|68|N|,Mount Vernon|WA|US|-122.33|48.42|34|N|,Mountain View|CA|US|-122.08|37.39|80|N|,Moyotzingo|MX21|MX|-98.4|19.25|27|N|,Mpanda|katavi|TZ|31.07|-6.34|204|W|,Mpumalanga|kwazulu natal|ZA|30.64|-29.81|140|W|epumalanga;hammarsdale,Mt Pleasant|BC|CA|-123.1|49.26|32|N|,Mthatha|eastern cape|ZA|28.78|-31.59|164|W|umtata,Mtwara|mtwara|TZ|40.18|-10.27|140|W|,Mu-se|shan state|MM|97.9|24|165|W|,Muar|johor|MY|102.57|2.04|314|W|muar town,Mubi|adamawa|NG|13.27|10.27|225|W|,Mudanjiang|heilongjiang|CN|129.63|44.55|665|W|mu tan tiang,Mueang Nonthaburi|nonthaburi|TH|100.51|13.86|254|W|nonthaburi,Muelheim|north rhine westphalia|DE|6.88|51.43|173|W|mulheim;muelheim an der ruhr;mulheim an der ruhr,Muenster|north rhine westphalia|DE|7.63|51.96|308|W|munster,Mufulira|copperbelt|ZM|28.24|-12.55|169|W|,Mukalla|muhafazat hadramaout|YE|49.12|14.54|594|W|al mukalla;mukala,Mukim Pulai|johor|MY|103.67|1.53|505|W|,Mukono|central region|UG|32.76|0.35|191|W|,Mulenvos|luanda|AO|13.33|-8.87|882|W|,Multan|punjab|PK|71.48|30.2|2169|W|,Mulugu|telangana|IN|79.94|18.19|297|W|,Mumbai|maharashtra|IN|72.88|19.07|12691|W|mumbaj;mumbay;bombay;bombaim;bombaj,Muncie|IN|US|-85.39|40.19|70|N|,Mundelein|IL|US|-88|42.26|31|N|,Munger|bihar|IN|86.47|25.37|213|W|,Munich|bavaria|DE|11.58|48.14|1505|W|munchen;mnichov;monachium;monaco di baviera;muenchen;munique;munih,Muntinlupa|calabarzon|PH|121.05|14.39|552|W|city of muntinlupa,Muratpasa|antalya|TR|30.76|36.89|450|W|,Murcia|murcia|ES|-1.13|37.99|471|W|murcie;murcja,Murfreesboro|TN|US|-86.39|35.85|165|NW|,Muricay|zamboanga peninsula|PH|123.48|7.83|132|W|,Muridke|punjab|PK|74.26|31.8|254|W|muridike,Murmansk|murmansk|RU|33.1|68.97|295|W|moermansk;mourmansk;muurmanski;romanov;romanov on murman;semenova,Murray|UT|US|-111.89|40.67|49|N|,Murrieta|CA|US|-117.21|33.55|109|N|,Murwara|madhya pradesh|IN|80.39|23.84|221|W|,Musaffah|abu dhabi|AE|54.48|24.36|243|W|musaffah city,Musanze|northern province|RW|29.63|-1.5|153|W|ruhengeri,Musashino|tokyo|JP|139.56|35.71|150|W|,Muscat|muscat|OM|58.41|23.58|797|W|mascate;maskat;masqat;muskat,Mushin|lagos|NG|3.35|6.53|199|W|,Muskegon|MI|US|-86.25|43.23|38|N|,Muskogee|OK|US|-95.37|35.75|38|N|,Musoma|mara|TZ|33.8|-1.5|164|W|,Mutare|manicaland|ZW|32.67|-18.97|224|W|,Muzaffarabad|azad kashmir|PK|73.47|34.37|725|W|,Muzaffargarh|punjab|PK|71.19|30.07|235|W|,Muzaffarnagar|uttar pradesh|IN|77.7|29.47|349|W|,Muzaffarpur|bihar|IN|85.39|26.12|354|W|,Mwala|machakos county|KE|37.45|-1.35|181|W|,Mwanza|mwanza|TZ|32.9|-2.52|1104|W|,Mwene|lualaba|CD|22.87|-9.82|295|W|,Mwene-Ditu|lomami|CD|23.45|-7.01|189|W|,My Tho|dong thap|VN|106.36|10.36|270|W|,Myeik|tanintharyi region|MM|98.6|12.44|173|W|mergui,Myingyan|mandalay region|MM|95.39|21.46|141|W|,Mykolayiv|mykolaiv|UA|31.99|46.98|470|W|mikolajow;mykolaiv;nicolopoli;vernoleninsk,Mymensingh|mymensingh division|BD|90.41|24.76|225|W|,Myrtle Beach|SC|US|-78.89|33.69|31|N|,Mysuru|karnataka|IN|76.64|12.3|920|W|maisur;mysore,Mytishchi|moscow oblast|RU|37.73|55.91|160|W|mitischi;mytichtchi;mytischtschi;mytisjtji;mytisjtsji;mytiszczi;mytistsi;mytisci;mitisci;miytisci,Mzuzu|northern region|MW|34.02|-11.47|249|W|,N'dalatando|cuanza norte|AO|14.91|-9.3|161|W|ndalatando,N'Djamena|n djamena|TD|15.04|12.11|1359|W|yamena;indschamina;ndjamena;ndzamena,Naberezhnyye Chelny|tatarstan republic|RU|52.42|55.74|509|W|naberezhnye chelny;naberejnye chelny;nabereschnyje tschelny;naberezjnye tsjelny;nabereznyje tselny;nabereznyje celny;brezhnev,Nablus|west bank|PS|35.25|32.22|130|W|naplouse;shechem;sichem;siquem;sychem,Nacala|nampula|MZ|40.69|-14.56|239|W|cidade de nacala;nacala porto,Nacogdoches|TX|US|-94.66|31.6|33|N|,Nada|hainan|CN|109.58|19.52|256|W|danzhou,Nadiad|gujarat|IN|72.86|22.69|225|W|,Nador|oriental|MA|-2.93|35.17|176|W|,Naga|bicol region|PH|123.18|13.62|174|W|kota naga,Naga|central visayas|PH|123.76|10.21|138|W|city of naga;kota naga;naga city,Nagano|nagano|JP|138.18|36.65|372|W|,Nagaoka|niigata|JP|138.85|37.45|266|W|,Nagar Naluakot|dhaka division|BD|90.77|24.16|273|W|nogor noluakot,Nagareyama|chiba|JP|139.9|35.86|200|W|,Nagarpur|dhaka division|BD|89.88|24.06|238|W|,Nagasaki|nagasaki|JP|129.88|32.75|409|W|nagasaki shi;nagasakishi;nangasaque,Nagercoil|tamil nadu|IN|77.43|8.18|224|W|nagarkoil;nagarkovil,Nagoya|aichi|JP|136.91|35.18|2332|W|nagoia;nagoja;nagoya city;nagoya shi,Nagpur|maharashtra|IN|79.08|21.15|2405|W|,Naha|okinawa|JP|127.68|26.21|317|W|,Naihati|west bengal|IN|88.42|22.89|253|W|,Nairobi|nairobi county|KE|36.82|-1.28|4397|W|,Naivasha|nakuru county|KE|36.43|-0.71|198|W|,Najaf|najaf|IQ|44.35|32.03|482|W|an nadzaf;an najaf;nadjaf;nadschaf;nadzaf;nayaf;necef,Najafabad|isfahan|IR|51.37|32.63|235|W|,Najafgarh|delhi|IN|76.98|28.61|1365|W|,Najran|najran region|SA|44.13|17.49|505|W|necran,Nakano|tokyo|JP|139.67|35.7|344|W|nakano city,Nakhodka|primorye|RU|132.92|42.84|146|W|nachodka;nahodka;najodka;langouwai,Nakuru|nakuru county|KE|36.07|-0.31|570|W|,Nalchik|kabardino balkariya republic|RU|43.62|43.5|239|W|nal chik;naltschik;naltsik;nalcik,Nalgonda|telangana|IN|79.27|17.05|154|W|,Nam GJinh|ninh binh|VN|106.18|20.43|448|W|nam dinh,Namangan|namangan|UZ|71.67|41|713|W|namanga;nemengan,Namp'o|nampo|KP|125.41|38.74|455|W|nampo,Nampa|ID|US|-116.56|43.54|89|N|,Nampula|nampula|MZ|39.27|-15.12|770|W|,Nanaimo|BC|CA|-123.94|49.17|90|N|,Nanchang|jiangxi|CN|115.85|28.68|2357|W|nam xuong;nan cchang,Nanchital de Lazaro Cardenas del Rio|MX30|MX|-94.41|18.07|25|N|villa nanchital,Nanchong|sichuan|CN|106.08|30.8|1858|W|nam sung;nan cchung,Nanchuan|chongqing|CN|107.1|29.15|204|W|,Nanded|maharashtra|IN|77.31|19.16|550|W|,Nandyal|andhra pradesh|IN|78.48|15.48|211|W|,Nangloi Jat|delhi|IN|77.07|28.68|205|W|,Nanjin|chongqing|CN|106.27|29.98|143|W|,Nanjing|jiangsu|CN|118.78|32.06|9314|W|nankin;nam kinh;nanchino;nanquim;nankijn,Nankana Sahib|punjab|PK|73.71|31.45|130|W|,Nanning|guangxi|CN|108.32|22.82|3839|W|nam ninh;nan ning,Nanpiao|liaoning|CN|120.75|41.1|157|W|,Nanping|fujian|CN|118.17|26.64|467|W|nam binh;nan pching,Nanqiao|shanghai|CN|121.45|30.92|361|W|,Nansana|central region|UG|32.53|0.36|532|W|,Nantes|pays de la loire|FR|-1.55|47.22|325|W|,Nantong|jiangsu|CN|120.87|32.03|2273|W|nam thong;nan tchung,Nantou|guangdong|CN|113.29|22.72|130|W|,Nanyang|henan|CN|112.55|33.01|1811|W|nam duong;nan jang,Napa|CA|US|-122.29|38.3|80|N|,Naperville|IL|US|-88.15|41.79|147|NW|,Naples|campania|IT|14.27|40.85|909|W|neapel;napels;napoli;neapol;neapole;napoles,Nara-shi|nara|JP|135.8|34.69|367|W|nara,Narashino|chiba|JP|140.04|35.68|176|W|,Narayanganj|dhaka division|BD|90.5|23.61|223|W|,Narela|delhi|IN|77.09|28.85|800|W|,Narita|chiba|JP|140.32|35.78|132|W|,Narowal|punjab|PK|74.87|32.1|130|W|,Narsingdi|dhaka division|BD|90.72|23.92|281|W|,Nashik|maharashtra|IN|73.79|20|1486|W|,Nashua|NH|US|-71.47|42.77|87|N|,Nashville|TN|US|-86.78|36.17|689|NW|,Nasim Shahr|tehran|IR|51.16|35.57|200|W|,Nasimshahr|tehran|IR|51.16|35.57|200|W|,Nasiriyah|dhi qar|IQ|46.26|31.06|558|W|an nasiriya;nasirijja;nasiriya,Nassau|new providence|BS|-77.34|25.06|227|W|nasau,Natal|rio grande do norte|BR|-35.21|-5.79|896|W|,Natick|MA|US|-71.35|42.28|32|N|,National City|CA|US|-117.1|32.68|61|N|,Natore|rajshahi division|BD|88.99|24.41|369|W|,Naucalpan de Juarez|MX15|MX|-99.24|19.48|834|NW|naucalpan,Naugatuck|CT|US|-73.05|41.49|31|N|,Navarre|FL|US|-86.86|30.4|31|N|,Navegantes|benguela|AO|13.39|-12.59|240|W|,Navi Mumbai|maharashtra|IN|73.02|19.04|2600|W|nova bombaim;new bombay,Navoiy|navoiy region|UZ|65.38|40.08|144|W|navoi;nawoi;nevai,Navojoa|MX26|MX|-109.44|27.07|113|N|,Navolato|MX25|MX|-107.7|24.77|29|N|,Navotas|national capital region|PH|120.95|14.67|249|W|,Navsari|gujarat|IN|72.92|20.94|171|W|,Nawabganj|rajshahi division|BD|88.27|24.59|142|W|,Nawabshah|sindh|PK|68.4|26.24|363|W|,Nay Pyi Taw|nay pyi taw|MM|96.13|19.75|925|W|naipidau;naypyidaw;naypyitaw,Nazarabad|alborz province|IR|50.61|35.95|213|W|,Nazran|ingushetiya republic|RU|44.77|43.23|164|W|nasran,Nazret|oromiya|ET|39.27|8.55|456|W|,Ndola|copperbelt|ZM|28.64|-12.96|627|W|,Near North Side|IL|US|-87.63|41.9|85|N|,Needham|MA|US|-71.23|42.28|28|N|,Neenah|WI|US|-88.46|44.19|25|N|,Negombo|western province|LK|79.84|7.21|137|W|negumbo,Neihu|taiwan|TW|121.59|25.08|274|W|distretto di neihu;district de neihu;distrik neihu;neihu district,Neijiang|sichuan|CN|105.06|29.58|1251|W|nej tiang,Neiva|huila department|CO|-75.28|2.93|357|W|,Nek'emte|oromiya|ET|36.55|9.08|156|W|,Nellore|andhra pradesh|IN|79.99|14.45|547|W|nellur,Nepalgunj|lumbini province|NP|81.62|28.05|166|W|,Nepean|ON|CA|-75.72|45.34|180|NW|,Netanya|central district|IL|34.86|32.33|228|W|netania;netanja,Neue Neustadt|saxony anhalt|DE|11.63|52.15|226|W|,Neufchatel-Est-Lebourgneuf|QC|CA|-71.34|46.85|37|N|,Neukoelln|state of berlin|DE|13.43|52.48|164|W|neukolln;berlin neukolln,Neuquen|neuquen|AR|-68.06|-38.95|231|W|ciudad de neuquen,Neuss|north rhine westphalia|DE|6.69|51.2|152|W|,Nevinnomyssk|stavropol kray|RU|41.94|44.63|134|W|nevinnomissk;newinnomyssk;niewinnomyssk,New Albany|IN|US|-85.82|38.29|36|N|,New Bedford|MA|US|-70.93|41.64|101|N|,New Berlin|WI|US|-88.11|42.98|39|N|,New Bern|NC|US|-77.04|35.11|30|N|,New Braunfels|TX|US|-98.12|29.7|70|N|,New Britain|CT|US|-72.78|41.66|72|N|,New Brunswick|NJ|US|-74.45|40.49|57|N|nuevo brunswick,New Cairo|cairo|EG|31.47|30.03|313|W|,New City|IL|US|-87.66|41.81|40|N|,New City|NY|US|-73.99|41.15|33|N|,New Delhi|delhi|IN|77.21|28.62|317|W|neu delhi;nova deli;nove dilli;nueva delhi;nuova delhi;yeni delhi,New Haven|CT|US|-72.93|41.31|130|NW|,New Iberia|LA|US|-91.82|30|30|N|la nouvelle iberie;nueva iberia,New Kingston|saint andrew parish|JM|-76.78|18.01|583|W|,New Lenox|IL|US|-87.97|41.51|25|N|,New London|CT|US|-72.1|41.36|27|N|,New Orleans|LA|US|-90.08|29.95|362|NW|nova orleaes;nowy orlean;nueva orleans;new orleans louisiana;la nouvelle orleans,New Rochelle|NY|US|-73.78|40.91|79|N|nouvelle rochelle;nueva rochelle,New South Memphis|TN|US|-90.06|35.09|641|NW|,New Taipei City|taipei|TW|121.46|25.06|4004|W|new taipei;neu taipeh;nieuw taipei;nouveau taipei;nova taipe;nova tchaj pej;nowe tajpej;nueva taipei;nuova taipei;xinbei city;yeni taipei,New Territories||HK|114.11|22.42|3984|W|new territory hong kong,New Westminster|BC|CA|-122.91|49.21|78|N|new westminister,New York City|NY|US|-74.01|40.71|8804|NW|new york;nueva york;kota new york;new york kenti;nova iorque;nowy jork;nuova york,Newark|NJ|US|-74.17|40.74|281|NW|,Newark|OH|US|-82.4|40.06|47|N|,Newark|CA|US|-122.04|37.53|45|N|,Newark|DE|US|-75.75|39.68|33|N|,Newburgh|NY|US|-74.01|41.5|28|N|,Newcastle|new south wales|AU|151.78|-32.93|508|W|,Newcastle|kwazulu natal|ZA|29.93|-27.76|404|W|,Newcastle upon Tyne|england|GB|-1.61|54.97|300|W|newcastle;newcastle tren song tyne;newcastle on tyne,Newington|CT|US|-72.72|41.7|30|N|,Newmarket|ON|CA|-79.47|44.05|91|N|,Newnan|GA|US|-84.8|33.38|37|N|,Newport|wales|GB|-3|51.59|161|W|,Newport Beach|CA|US|-117.93|33.62|87|N|,Newport News|VA|US|-76.43|36.98|186|NW|,Newton|BC|CA|-122.85|49.13|159|NW|surrey newton,Newton|MA|US|-71.21|42.34|88|N|,Neyagawa|osaka|JP|135.63|34.77|238|W|,Neyshabur|razavi khorasan|IR|58.8|36.21|220|W|nichapur;nischapur;nishapur,Neyveli|tamil nadu|IN|79.5|11.61|179|W|,Ngaoundere|adamaoua|CM|13.58|7.33|238|W|ngaundere,Nghi Son|thanh hoa province|VN|105.82|19.33|302|W|,Nha Trang|khanh hoa|VN|109.19|12.25|579|W|,NIA Valencia|northern mindanao|PH|125.09|7.91|223|W|kota valencia;valencia city,Niagara|ON|CA|-79.41|43.64|31|N|,Niagara Falls|ON|CA|-79.07|43.1|99|N|cataratas del niagara;chutes niagara,Niagara Falls|NY|US|-79.06|43.09|48|N|,Niamey|niamey|NE|2.11|13.51|1323|W|,Nianbo|qinghai|CN|102.42|36.48|260|W|haidong,Nice|provence alpes cote d azur|FR|7.27|43.7|342|W|niza;nicea;nisa;nizza,Nicholasville|KY|US|-84.57|37.88|29|N|,Nicolas Romero|MX15|MX|-99.31|19.64|281|NW|ciudad nicolas romero,Nicosia|nicosia|CY|33.35|35.17|200|W|lefkosa;nikosia;lefkosia;nicosie;nikozja;nikosie,Nigel|gauteng|ZA|28.48|-26.43|140|W|,Niigata|niigata|JP|139.04|37.92|797|W|,Niiza|saitama|JP|139.56|35.82|166|W|,Nijmegen|gelderland|NL|5.85|51.84|177|W|nimwegen;nimega;nimegue,Niles|IL|US|-87.8|42.02|29|N|,Nilopolis|rio de janeiro|BR|-43.41|-22.81|155|W|,Niluefer|bursa province|TR|28.92|40.21|536|W|nilufer,Nimes|occitanie|FR|4.36|43.84|148|W|,Ning'er|yunnan|CN|101.04|23.04|162|W|,Ningbo|zhejiang|CN|121.55|29.88|3731|W|ninh ba,Ningde|fujian|CN|119.52|26.66|429|W|ningteh,Ninh Hoa|khanh hoa|VN|109.12|12.49|230|W|,Nis|central serbia|RS|21.9|43.32|250|W|nisz,Nishi-Tokyo-shi|tokyo|JP|139.54|35.73|207|W|,Nishinomiya|hyogo|JP|135.33|34.72|485|W|,Nishio|aichi|JP|137.05|34.87|169|W|,Niteroi|rio de janeiro|BR|-43.1|-22.88|515|W|,Nizamabad|telangana|IN|78.1|18.67|311|W|,Nizhnekamsk|tatarstan republic|RU|51.82|55.64|234|W|nijnekamsk;nischnekamsk;nizjnekamsk;nizniekamsk;niznekamsk;tubenkama;tuban kama,Nizhnevartovsk|khanty mansia|RU|76.55|60.93|244|W|nijnevartovsk;nischnewartowsk;nizjnevartovsk;nizniewartowsk;niznevartovsk,Nizhniy Novgorod|nizhny novgorod oblast|RU|44|56.33|1259|W|nijni novgorod;nischni nowgorod;nizhny novgorod;nizhni novgorod;nizjnij novgorod;nizni novgorod;gorkij,Nizhny Tagil|sverdlovsk oblast|RU|59.97|57.92|381|W|nizjnij tagil,Njeru|central region|UG|33.18|0.44|178|W|,Nkongsamba|littoral|CM|9.94|4.95|162|W|,Nnewi|anambra|NG|6.92|6.02|193|W|,Noblesville|IN|US|-86.01|40.05|59|N|,Noda|chiba|JP|139.87|35.95|154|W|noda shi,Nogales|MX26|MX|-110.94|31.31|264|NW|heroica nogales;los nogales,Noida|uttar pradesh|IN|77.33|28.58|293|W|,Nong Chok|bangkok|TH|100.86|13.86|157|W|,Nong Khaem|bangkok|TH|100.35|13.71|150|W|,Nor Nork|yerevan|AM|44.57|40.2|137|W|,Norco|CA|US|-117.55|33.93|26|N|,Norfolk|VA|US|-76.29|36.85|238|NW|,Norfolk County|ON|CA|-80.38|42.83|60|N|,Norilsk|krasnoyarsk krai|RU|88.2|69.35|140|W|noril sk;norylsk,Normal|IL|US|-88.99|40.51|54|N|,Norman|OK|US|-97.44|35.22|128|N|,Norristown|PA|US|-75.34|40.12|34|N|,North Andover|MA|US|-71.14|42.7|28|N|,North Bay|ON|CA|-79.47|46.32|50|N|,North Bel Air|MD|US|-76.35|39.54|33|N|,North Bergen|NJ|US|-74.01|40.8|63|N|,North Bethesda|MD|US|-77.12|39.04|43|N|,North Brunswick|NJ|US|-74.48|40.45|43|N|,North Center|IL|US|-87.68|41.95|34|N|,North Charleston|SC|US|-79.97|32.85|108|N|,North Chicago|IL|US|-87.84|42.33|29|N|,North Chicopee|MA|US|-72.6|42.18|55|N|,North Cowichan|BC|CA|-123.69|48.84|29|N|,North Creek|WA|US|-122.18|47.82|26|N|,North Delta|BC|CA|-122.92|49.17|60|N|nord delta,North Fort Myers|FL|US|-81.88|26.67|39|N|n ft myers,North Highlands|CA|US|-121.37|38.69|42|N|,North Hills|CA|US|-118.48|34.24|56|N|,North Hollywood|CA|US|-118.38|34.17|64|N|lankershim;toluca,North Kingstown|RI|US|-71.47|41.55|28|N|n kingstown,North La Crosse|WI|US|-91.25|43.85|50|N|,North Las Vegas|NV|US|-115.12|36.2|234|NW|,North Lauderdale|FL|US|-80.23|26.22|43|N|n lauderdale,North Lawndale|IL|US|-87.72|41.86|35|N|,North Little Rock|AR|US|-92.27|34.77|66|N|,North Miami|FL|US|-80.19|25.89|62|N|,North Miami Beach|FL|US|-80.16|25.93|43|N|,North Olmsted|OH|US|-81.92|41.42|32|N|,North Peoria|IL|US|-89.58|40.72|113|N|,North Port|FL|US|-82.24|27.04|62|N|,North Providence|RI|US|-71.47|41.85|33|N|,North Richland Hills|TX|US|-97.23|32.83|69|N|,North Ridgeville|OH|US|-82.02|41.39|32|N|,North Royalton|OH|US|-81.72|41.31|30|N|n royalton,North Shore|auckland|NZ|174.75|-36.8|258|W|,North Stamford|CT|US|-73.54|41.14|121|N|,North Tonawanda|NY|US|-78.86|43.04|30|N|,North Vancouver|BC|CA|-123.07|49.32|88|N|vancouver utara,Northampton|england|GB|-0.88|52.25|245|W|,Northampton|MA|US|-72.64|42.33|28|N|,Northbrook|IL|US|-87.83|42.13|33|N|,Northglenn|CO|US|-104.99|39.89|39|N|,Northridge|CA|US|-118.54|34.23|68|N|,Norwalk|CA|US|-118.08|33.9|107|N|,Norwalk|CT|US|-73.41|41.12|88|N|,Norwich|england|GB|1.3|52.63|143|W|,Norwich|CT|US|-72.08|41.52|39|N|,Norwood|MA|US|-71.2|42.19|28|N|,Norzagaray|central luzon|PH|121.05|14.91|140|W|,Nossa Senhora do Socorro|sergipe|BR|-37.13|-10.86|204|W|,Notre-Dame-de-Grace|QC|CA|-73.61|45.48|68|N|,Nottingham|england|GB|-1.15|52.95|323|W|,Nou Barris|catalonia|ES|2.18|41.44|166|W|distrito nou barris;distrito de nou barris,Nouadhibou|dakhlet nouadhibou|MR|-17.04|20.94|146|W|nawazibu;nouadibou;nuadibu;port etienne,Nouakchott||MR|-15.98|18.09|1184|W|nawakszut;nuakchot;nuaksot;nuaksott,Nova Friburgo|rio de janeiro|BR|-42.53|-22.28|189|W|nueva friburgo,Nova Iguacu|rio de janeiro|BR|-43.45|-22.76|843|W|,Nova Vida|luanda|AO|13.22|-8.91|464|W|,Novato|CA|US|-122.57|38.11|55|N|,Novi|MI|US|-83.48|42.48|58|N|,Novi Sad|vojvodina|RS|19.84|45.25|215|W|nowy sad;neusatz,Novo Hamburgo|rio grande do sul|BR|-51.13|-29.68|253|W|,Novocherkassk|rostov|RU|40.09|47.42|166|W|novotcherkassk;novotjerkassk;novotsjerkassk;novotserkassk;novocerkassk;nowoczerkask;nowotscherkassk,Novokuznetsk|kuzbass|RU|87.14|53.76|539|W|novokoeznetsk;novokouznetsk;novokusnetsk;novokuzneck;novokuznetk;nowokusnezk;nowokuznieck,Novomoskovsk|tula oblast|RU|38.29|54.01|130|W|nowomoskowsk,Novorossiysk|krasnodar krai|RU|37.76|44.73|241|W|novorossijsk;novorossiejsk;noworossijsk;noworosyjsk,Novosibirsk|novosibirsk oblast|RU|82.93|55.02|1612|W|novossibirsk;nowosibirsk;nowosybirsk;novo nikolaevsk;novonikolayevsk,Novozavodskyi|chernihiv oblast|UA|31.26|51.49|179|W|novozavodskyi raion;novozavodskyi rayon,Novyye Kuz'minki|moscow|RU|37.75|55.7|143|W|,Nowrangapur|odisha|IN|82.55|19.23|1220|W|,Nueva Italia de Ruiz|MX16|MX|-102.09|19.02|32|N|,Nueva Rosita|MX07|MX|-101.22|27.94|38|N|,Nuevo Casas Grandes|MX06|MX|-107.91|30.42|55|N|,Nuevo Laredo|MX28|MX|-99.52|27.48|416|NW|novo laredo,Nuevo Mexico|MX14|MX|-103.44|20.76|28|N|,Nukus|karakalpakstan|UZ|59.61|42.46|332|W|noukous,Numazu|shizuoka|JP|138.87|35.1|189|W|,Nunoa|santiago metropolitan|CL|-70.58|-33.45|255|W|,Nuremberg|bavaria|DE|11.08|49.45|515|W|nurnberg;neurenberg;norimberga;norimberk;norymberga;nuremberga,Nusantara|east kalimantan|ID|116.71|-0.97|147|W|ikn nusantara;ibu kota negara nusantara;nusantara capital city,Nutana Sector|SK|CA|-106.64|52.1|72|N|,Nutley|NJ|US|-74.16|40.82|27|N|,Nyala|southern darfur|SD|24.88|12.05|565|W|niala;nijala,Nyingchi|tibet|CN|94.36|29.65|200|W|,Nyzhnodniprovsk|dnipropetrovsk|UA|35.12|48.48|160|W|nyzhnodniprovsk vuzol,Nzerekore|nzerekore region|GN|-8.82|7.76|226|W|,O'Fallon|MO|US|-90.7|38.81|85|N|,O'Fallon|IL|US|-89.91|38.59|29|N|,Oak Creek|WI|US|-87.86|42.89|35|N|,Oak Forest|IL|US|-87.74|41.6|28|N|,Oak Hill|VA|US|-77.4|38.93|33|N|,Oak Lawn|IL|US|-87.76|41.71|56|N|oaklawn,Oak Park|IL|US|-87.78|41.89|52|N|,Oak Park|MI|US|-83.18|42.46|29|N|,Oak Ridge|TN|US|-84.27|36.01|29|N|,Oakdale|MN|US|-92.96|44.96|28|N|,Oakland|CA|US|-122.27|37.8|419|NW|,Oakland Park|FL|US|-80.13|26.17|44|N|,Oakley|CA|US|-121.71|38|39|N|,Oakton|VA|US|-77.3|38.88|34|N|,Oakville|ON|CA|-79.68|43.45|213|NW|,Oakville|MO|US|-90.3|38.47|36|N|,Oaxaca|MX20|MX|-96.73|17.06|255|NW|oaxaca city;oaxaca by;oaxaca de juarez,Obalende|lagos|NG|3.42|6.45|342|W|,Oberhausen|north rhine westphalia|DE|6.86|51.48|219|W|,Obihiro|hokkaido|JP|143.2|42.92|166|W|,Obolon|kyiv city|UA|30.51|50.51|239|W|obolonskyi raion;obolonskyi rayon;obolonskyy raion;obolonskyy rayon,Obuase|ashanti|GH|-1.67|6.2|179|W|obuasi,Ocala|FL|US|-82.14|29.19|58|N|,Oceanside|CA|US|-117.38|33.2|175|NW|,Oceanside|NY|US|-73.64|40.64|32|N|,Ocoee|FL|US|-81.54|28.57|43|N|,Ocosingo|MX05|MX|-92.09|16.91|41|N|,Ocotlan|MX14|MX|-102.77|20.35|83|N|,Ocoyoacac|MX15|MX|-99.46|19.27|26|N|,Ocozocoautla de Espinosa|MX05|MX|-93.37|16.76|39|N|la ventosa,Ocumare del Tuy|miranda|VE|-66.78|10.12|166|W|ocumare,Odawara|kanagawa|JP|139.16|35.26|188|W|,Odense|south denmark|DK|10.39|55.4|180|W|ottensee,Odenton|MD|US|-76.7|39.08|37|N|,Odesa|odesa|UA|30.74|46.49|1010|W|odessa;khadjibey,Odessa|TX|US|-102.37|31.85|114|N|,Odintsovo|moscow oblast|RU|37.28|55.67|137|W|odincovo;odincowo;odinzowo;odintovo,OErebro|orebro|SE|15.21|59.27|155|W|orebro,Ogaki|gifu|JP|136.62|35.35|161|W|,Ogbomoso|oyo state|NG|4.24|8.13|433|W|,Ogden|UT|US|-111.97|41.22|85|N|,Oildale|CA|US|-119.02|35.42|32|N|,Oita|oita|JP|131.6|33.23|477|W|oita shi;oitashi,Ojinaga|MX06|MX|-104.54|29.57|28|N|,Ojo de Agua|MX15|MX|-99.01|19.68|386|NW|,Okanagan Mission|BC|CA|-119.48|49.82|38|N|,Okara|punjab|PK|73.45|30.81|533|W|,Okayama|okayama|JP|133.93|34.65|724|W|okajama,Okazaki|aichi|JP|137.17|34.95|384|W|,Okene|kogi state|NG|6.24|7.55|479|W|,Okinawa|okinawa|JP|127.8|26.34|142|W|,Oklahoma City|OK|US|-97.52|35.47|681|NW|kota oklahoma;okla city,Okotoks|AB|CA|-113.98|50.73|30|N|,Okrika|rivers state|NG|7.08|4.74|133|W|,Olathe|KS|US|-94.82|38.88|134|NW|,Oldenburg|lower saxony|DE|8.21|53.14|159|W|oldemburgo;oldenbourg;oldenburgo,Oldham|england|GB|-2.12|53.54|237|W|,Olinda|pernambuco|BR|-34.86|-8.01|364|W|,Olive Branch|MS|US|-89.83|34.96|36|N|,Olmaliq|tashkent region|UZ|69.6|40.84|133|W|almalyk;almalik,Olney|PA|US|-75.12|40.04|39|N|mccartersville,Olney|MD|US|-77.07|39.15|33|N|,Olongapo|central luzon|PH|120.28|14.83|221|W|kota olongapo;olongapo city,Olsztyn|warmia masuria|PL|20.49|53.78|169|W|olstyn;allenstein,Olympia|WA|US|-122.9|47.04|55|N|,Omaha|NE|US|-95.94|41.26|486|NW|,Omdurman|khartoum|SD|32.48|15.64|1849|W|omdourman;umm durman,Ome|tokyo|JP|139.24|35.78|133|W|oume,Omsk|omsk oblast|RU|73.37|54.99|1172|W|omsc,Omuta|fukuoka|JP|130.45|33.03|131|W|,Ondo|ondo state|NG|4.84|7.09|375|W|,Ongata Rongai|kajiado county|KE|36.76|-1.4|172|W|,Ongole|andhra pradesh|IN|80.04|15.5|208|W|,Onitsha|anambra|NG|6.79|6.15|1553|W|,Onomichi|hiroshima|JP|133.2|34.42|131|W|onomici,Ontario|CA|US|-117.65|34.06|171|NW|,Ooty|tamil nadu|IN|76.7|11.41|233|W|ootacamund;udagamandalam;udhagamandalam;utakamand,Opelika|AL|US|-85.38|32.65|29|N|,Opportunity|WA|US|-117.24|47.65|25|N|,Oradea|bihor county|RO|21.92|47.05|183|W|grosswardein;gran varadino;oradea mare;oradia;velky varadin,Orai|uttar pradesh|IN|79.45|25.99|158|W|,Oral|west kazakhstan|KZ|51.43|51.25|330|W|oural;uralsk;ural sk,Oran|oran|DZ|-0.64|35.7|803|W|orano;ora,Orange|CA|US|-117.85|33.79|140|NW|,Orange|NJ|US|-74.23|40.77|34|N|,Orangevale|CA|US|-121.23|38.68|33|N|,Orangeville|ON|CA|-80.1|43.92|30|N|,Orcutt|CA|US|-120.44|34.87|28|N|,Ordos|inner mongolia|CN|109.78|39.61|1940|W|,Ordu|ordu|TR|37.89|40.98|229|W|cotyora,Oregon City|OR|US|-122.61|45.36|35|N|,Orekhovo-Borisovo|moscow|RU|37.73|55.61|144|W|,Orel|oryol oblast|RU|36.08|52.97|303|W|orjol;oryol;orzel,Orem|UT|US|-111.69|40.3|94|N|,Orenburg|orenburg oblast|RU|55.1|51.77|564|W|orenbourg;oremburgo,Orillia|ON|CA|-79.42|44.61|31|N|,Orizaba|MX30|MX|-97.1|18.85|123|N|,Orland Park|IL|US|-87.85|41.63|58|N|,Orlando|FL|US|-81.38|28.54|334|NW|,Orleans|ON|CA|-75.5|45.46|125|N|,Ormoc|eastern visayas|PH|124.61|11.01|238|W|kota ormoc;ormoc city,Ormond Beach|FL|US|-81.06|29.29|40|N|,Oro Valley|AZ|US|-110.97|32.39|45|N|,Orsk|orenburg oblast|RU|58.49|51.23|246|W|,Orumiyeh|west azerbaijan|IR|45.08|37.55|577|W|ourmia;urmia;urmiye,Oruro|oruro|BO|-67.09|-17.97|208|W|,Osaka|osaka|JP|135.5|34.69|2753|W|osaka shi;osaacke,Osan|gyeonggi do|KR|127.07|37.15|238|W|,Osasco|sao paulo|BR|-46.79|-23.53|728|W|,Osh|osh region|KG|72.8|40.53|322|W|och;osch;osj;osz,Oshawa|ON|CA|-78.85|43.9|175|NW|,Oshkosh|WI|US|-88.54|44.02|66|N|,Oshodi|lagos|NG|3.34|6.56|170|W|,Oslo|oslo|NO|10.75|59.91|1082|W|,Osmaniye|osmaniye|TR|36.25|37.07|202|W|,Osnabrueck|lower saxony|DE|8.05|52.27|166|W|osnabruck,Osogbo|osun state|NG|4.56|7.77|645|W|oshogbo,Osorno|los lagos region|CL|-73.13|-40.57|135|W|,Ossining|NY|US|-73.86|41.16|25|N|,Ostrava|moravian silesian region|CZ|18.28|49.83|279|W|mahrisch ostrau;ostrawa,Oswego|IL|US|-88.35|41.68|33|N|,Ota|tokyo|JP|139.72|35.56|748|W|ota ku,Ota|ogun state|NG|3.23|6.69|251|W|,Ota|gunma|JP|139.37|36.3|224|W|,Otsu|shiga|JP|135.87|35|345|W|ocu,Ottawa|ON|CA|-75.7|45.41|1017|NW|otava;aa,Ottawa South|ON|CA|-75.69|45.39|125|N|,Ouagadougou|centre|BF|-1.53|12.37|2415|W|uagadugu;wagadugu,Ouargla|ouargla|DZ|5.33|31.95|169|W|uargla;warkala,Oujda|oriental|MA|-1.91|34.68|539|W|ucda;ujda;wadzda,Oulu|north ostrobothnia|FI|25.47|65.01|216|W|uleaborg,Overbrook|PA|US|-75.24|39.99|32|N|,Overland Park|KS|US|-94.67|38.98|186|NW|,Oviedo|asturias|ES|-5.84|43.36|220|W|,Oviedo|FL|US|-81.21|28.67|38|N|,Owasso|OK|US|-95.85|36.27|34|N|,Owatonna|MN|US|-93.23|44.08|25|N|,Owensboro|KY|US|-87.11|37.77|59|N|,Owerri|imo state|NG|7.03|5.48|545|W|,Owings Mills|MD|US|-76.78|39.42|30|N|,Owo|ondo state|NG|5.59|7.2|276|W|,Oxford|england|GB|-1.26|51.75|162|W|oksford;oxonia;oxnaford,Oxford Circle|PA|US|-75.07|40.05|48|N|,Oxnard|CA|US|-119.18|34.2|207|NW|,Oxon Hill-Glassmanor|MD|US|-76.97|38.8|35|N|,Oyama|tochigi|JP|139.8|36.3|167|W|,Oyo|oyo state|NG|3.93|7.85|736|W|oio,Ozone Park|NY|US|-73.84|40.68|53|N|,Paarl|western cape|ZA|18.98|-33.73|236|W|,Pabellon de Arteaga|MX01|MX|-102.28|22.15|28|N|,Pabna|rajshahi division|BD|89.24|24.01|186|W|,Pachuca de Soto|MX13|MX|-98.73|20.12|256|NW|pachuca,Pacifica|CA|US|-122.49|37.61|39|N|,Paco do Lumiar|maranhao|BR|-44.11|-2.53|155|W|,Padalarang|west java|ID|107.47|-6.84|193|W|,Padang|west sumatra|ID|100.35|-0.95|942|W|kota padang,Padangsidempuan|north sumatra|ID|99.27|1.38|243|W|,Paderborn|north rhine westphalia|DE|8.75|51.72|142|W|,Padua|veneto|IT|11.89|45.41|203|W|padova;padoa;padoue;padwa,Paech'on-up|south hwanghae|KP|126.3|37.99|159|W|,Pagadian|zamboanga peninsula|PH|123.44|7.83|206|W|,Pahrump|NV|US|-115.98|36.21|36|N|,Pak Kret|nonthaburi|TH|100.5|13.91|190|W|,Pakdasht|tehran|IR|51.68|35.48|236|W|,Palakkad|kerala|IN|76.65|10.77|132|W|palakkat,Palangkaraya|central kalimantan|ID|113.92|-2.21|318|W|kota palangka raya;palangka raya,Palanpur|gujarat|IN|72.44|24.17|141|W|,Palatine|IL|US|-88.03|42.11|69|N|,Palembang|south sumatra|ID|104.75|-2.92|1801|W|kota palembang;palimbao,Palenque|MX05|MX|-91.98|17.51|42|N|ruinas de palenque,Palermo|sicily|IT|13.36|38.12|648|W|palerme;palermu,Palhoca|santa catarina|BR|-48.67|-27.65|222|W|,Pali|rajasthan|IN|73.32|25.77|230|W|,Pallabi|dhaka division|BD|90.37|23.82|597|W|,Pallavaram|tamil nadu|IN|80.15|12.97|233|W|,Palm Bay|FL|US|-80.59|28.03|119|N|,Palm Beach Gardens|FL|US|-80.14|26.82|52|N|,Palm Coast|FL|US|-81.21|29.58|82|N|,Palm Desert|CA|US|-116.38|33.72|51|N|,Palm Harbor|FL|US|-82.76|28.08|57|N|,Palm Springs|CA|US|-116.55|33.83|47|N|,Palma|balearic islands|ES|2.65|39.57|438|W|palma de mallorca;palma de maiorca;palma di maiorca,Palmas|tocantins|BR|-48.33|-10.17|306|W|,Palmdale|CA|US|-118.12|34.58|158|NW|,Palmira|valle del cauca department|CO|-76.3|3.54|312|W|,Palo Alto|CA|US|-122.14|37.44|66|N|,Palopo|south sulawesi|ID|120.2|-2.99|184|W|,Paltan|dhaka division|BD|90.41|23.74|184|W|,Palu|central sulawesi|ID|119.87|-0.91|389|W|kabupaten poso;kota palu,Palwal|haryana|IN|77.33|28.14|131|W|,Pamplona|navarre|ES|-1.64|42.82|208|W|pampeluna;pampelune,Pamulang|west java|ID|106.74|-6.34|174|W|,Panabo|davao region|PH|125.68|7.31|211|W|panabo city,Panalanoy|eastern visayas|PH|125.01|11.25|189|W|,Panama City|panama|PA|-79.52|8.99|408|W|panama;ciudad de panama;panama by;panama stadt;panama stad,Panama City|FL|US|-85.66|30.16|38|N|,Panchkula|haryana|IN|76.85|30.69|211|W|panchkula urban estate,Pandi|central luzon|PH|120.96|14.87|162|W|,Pangkalpinang|bangka belitung islands|ID|106.11|-2.13|226|W|,Panguila|bengo|AO|13.45|-8.69|158|W|,Panihati|west bengal|IN|88.37|22.69|378|W|,Panipat|haryana|IN|76.97|29.39|295|W|,Panjin|liaoning|CN|122.07|41.12|1166|W|,Panorama Hills|AB|CA|-114.08|51.15|25|N|,Panshan|liaoning|CN|122.05|41.19|625|W|,Panuco|MX30|MX|-98.18|22.05|40|N|,Panvel|maharashtra|IN|73.11|18.99|195|W|,Panzhihua|sichuan|CN|101.71|26.59|787|W|,Papantla de Olarte|MX30|MX|-97.32|20.45|53|N|,Par Naogaon|rajshahi division|BD|88.95|24.8|192|W|naogaon,Paracho de Verduzco|MX16|MX|-102.05|19.65|37|N|,Paradise|NV|US|-115.15|36.1|223|NW|,Paradise|CA|US|-121.62|39.76|26|N|,Paragould|AR|US|-90.5|36.06|27|N|,Paraiso|MX27|MX|-93.21|18.4|86|N|,Parakou|borgou|BJ|2.63|9.34|255|W|,Paramaribo|paramaribo district|SR|-55.17|5.87|223|W|,Paramount|CA|US|-118.16|33.89|55|N|,Paramus|NJ|US|-74.08|40.94|26|N|,Parana|entre rios|AR|-60.53|-31.73|247|W|,Paranagua|parana|BR|-48.53|-25.52|150|W|,Paranaque City|national capital region|PH|121.02|14.48|703|W|,Parauapebas|para|BR|-49.9|-6.07|305|W|,Parbhani|maharashtra|IN|76.77|19.27|307|W|,Parc-Extension|QC|CA|-73.63|45.53|33|N|,Parelheiros|sao paulo|BR|-46.73|-23.83|153|W|,Parepare|south sulawesi|ID|119.63|-4.01|160|W|,Paris|ile de france|FR|2.35|48.85|2138|W|parijs;pa ri;parigi;pariisi;paryz;pariz,Paris 11 Popincourt|ile de france|FR|2.38|48.86|138|W|,Paris 11e Arrondissement|ile de france|FR|2.38|48.86|144|W|,Paris 12 Reuilly|ile de france|FR|2.39|48.84|138|W|,Paris 12e Arrondissement|ile de france|FR|2.44|48.84|140|W|,Paris 13 Gobelins|ile de france|FR|2.36|48.83|181|W|,Paris 13e Arrondissement|ile de france|FR|2.36|48.83|177|W|,Paris 14 Observatoire|ile de france|FR|2.33|48.83|136|W|,Paris 15 Vaugirard|ile de france|FR|2.3|48.84|229|W|,Paris 16 Passy|ile de france|FR|2.28|48.86|159|W|,Paris 17 Batignolles-Monceau|ile de france|FR|2.32|48.88|159|W|,Paris 18 Buttes-Montmartre|ile de france|FR|2.34|48.89|183|W|,Paris 19 Buttes-Chaumont|ile de france|FR|2.38|48.88|178|W|,Paris 20 Menilmontant|ile de france|FR|2.4|48.86|185|W|,Park Ridge|IL|US|-87.84|42.01|37|N|,Park Slope|NY|US|-73.99|40.67|65|N|,Parkchester|NY|US|-73.86|40.84|65|N|,Parker|CO|US|-104.76|39.52|49|N|,Parkersburg|WV|US|-81.56|39.27|30|N|,Parkland|WA|US|-122.43|47.16|35|N|,Parkland|FL|US|-80.24|26.31|30|N|,Parkville|MD|US|-76.54|39.38|30|N|,Parkwoods-Donalda|ON|CA|-79.33|43.76|34|N|,Parma|emilia romagna|IT|10.33|44.8|198|W|parme,Parma|OH|US|-81.72|41.4|79|N|,Parnaiba|piaui|BR|-41.78|-2.9|170|W|,Parnamirim|rio grande do norte|BR|-35.26|-5.92|271|W|,Parras de la Fuente|MX07|MX|-102.18|25.44|33|N|,Parsippany|NJ|US|-74.43|40.86|51|N|,Pasadena|TX|US|-95.21|29.69|153|NW|,Pasadena|CA|US|-118.14|34.15|142|NW|,Pasarkemis|west java|ID|106.53|-6.17|263|W|,Pasay|national capital region|PH|121|14.54|416|W|,Pasco|WA|US|-119.1|46.24|69|N|,Pasig City|national capital region|PH|121.06|14.59|853|W|pasig,Pasir Gudang|johor|MY|103.91|1.46|534|W|,Pasir Mas|kelantan|MY|102.14|6.05|230|W|,Pasir Puteh|kelantan|MY|102.4|5.83|137|W|,Paso Robles|CA|US|-120.69|35.63|27|N|el paso de robles,Passaic|NJ|US|-74.13|40.86|71|N|,Passo Fundo|rio grande do sul|BR|-52.41|-28.26|214|W|,Pasto|narino|CO|-77.28|1.21|392|W|,Pasuruan|east java|ID|112.91|-7.65|213|W|kota pasuruan;pasoeroean,Patan|bagmati province|NP|85.31|27.68|299|W|lalitpur,Patan|gujarat|IN|72.13|23.85|133|W|,Paterson|NJ|US|-74.17|40.92|147|NW|,Pathankot|punjab|IN|75.65|32.27|174|W|,Pathein|ayeyarwady|MM|94.73|16.78|237|W|basejn,Patiala|punjab|IN|76.39|30.34|446|W|,Patna|bihar|IN|85.14|25.59|1684|W|,Patos de Minas|minas gerais|BR|-46.52|-18.58|159|W|,Patra|west greece|GR|21.74|38.25|168|W|patrai;patras;patrasso,Patzcuaro|MX16|MX|-101.61|19.51|55|N|,Paulista|pernambuco|BR|-34.87|-7.94|342|W|,Pavlodar|pavlodar region|KZ|76.97|52.28|329|W|pawlodar,Pawtucket|RI|US|-71.38|41.88|71|N|,Paya Terubong|penang|MY|100.28|5.37|226|W|,Payakumbuh|west sumatra|ID|100.63|-0.22|139|W|kota payakumbuh,Peabody|MA|US|-70.93|42.53|52|N|,Peachtree City|GA|US|-84.6|33.4|35|N|,Peachtree Corners|GA|US|-84.22|33.97|40|N|,Pearl|MS|US|-90.13|32.27|26|N|,Pearl City|HI|US|-157.98|21.4|47|N|,Pearland|TX|US|-95.29|29.56|108|N|,Pecs|baranya|HU|18.23|46.08|145|W|cinquechiese;funfkirchen;pecz,Pedreira|sao paulo|BR|-46.65|-23.71|163|W|,Peicheng|jiangsu|CN|116.92|34.74|195|W|,Pekalongan|central java|ID|109.68|-6.89|324|W|kota pekalongan,Pekanbaru|riau|ID|101.44|0.52|1167|W|kota pekanbaru;pakanbaru,Pekin|IL|US|-89.64|40.57|33|N|,Pelentong|johor|MY|103.82|1.52|583|W|,Pelotas|rio grande do sul|BR|-52.34|-31.77|336|W|,Pemalang|central java|ID|109.38|-6.89|184|W|,Pematangsiantar|north sumatra|ID|99.07|2.96|279|W|,Pemba|cabo delgado province|MZ|40.52|-12.97|232|W|,Pembroke Pines|FL|US|-80.22|26|166|NW|,Penalolen|santiago metropolitan|CL|-70.53|-33.47|241|W|,Pengpu|shanghai|CN|121.44|31.29|152|W|,Pengze|jiangxi|CN|116.55|29.9|350|W|,Penjamo|MX11|MX|-101.72|20.43|40|N|,Penn Hills|PA|US|-79.84|40.5|44|N|,Pennsauken|NJ|US|-75.06|39.96|36|N|,Pennsport|PA|US|-75.15|39.93|26|N|,Pensacola|FL|US|-87.22|30.42|53|N|pensacola i florida,Penticton|BC|CA|-119.59|49.48|33|N|,Penza|penza oblast|RU|45.01|53.2|523|W|pensa,Peoria|AZ|US|-112.24|33.58|190|NW|,Peoria|IL|US|-89.59|40.69|115|N|,Perbaungan|north sumatra|ID|98.96|3.57|157|W|,Percut|north sumatra|ID|98.86|3.63|311|W|,Pereira|risaralda department|CO|-75.69|4.81|467|W|,Peristeri|attica|GR|23.69|38.02|139|W|peristerion,Perm|perm krai|RU|56.25|58.01|982|W|molotov,Perote|MX30|MX|-97.24|19.56|37|N|,Perris|CA|US|-117.23|33.78|74|N|,Perry Hall|MD|US|-76.46|39.41|28|N|,Perth|western australia|AU|115.86|-31.95|2384|W|,Perth Amboy|NJ|US|-74.27|40.51|52|N|,Pervouralsk|sverdlovsk oblast|RU|59.94|56.91|133|W|perwouralsk,Peshawar|khyber pakhtunkhwa|PK|71.58|34.01|4758|W|peschawar;pesjawar;peszawar;pexauar;pesaver;pesavar,Pest|budapest|HU|19.08|47.5|1001|W|pesta;peste;peszt,Petah Tiqva|central district|IL|34.89|32.09|253|W|petah tikva;mulebbis;petach tikva;petach tikwa;petah tikwah;petah tiqwa;petaj tikva;pethah tiqva,Petaling Jaya|selangor|MY|101.61|3.11|807|W|,Petaluma|CA|US|-122.64|38.23|60|N|,Petapa|guatemala|GT|-90.56|14.5|135|W|,Petare|miranda|VE|-66.81|10.48|364|W|,Peterborough|england|GB|-0.25|52.57|163|W|,Peterborough|ON|CA|-78.32|44.3|85|N|,Petersburg|VA|US|-77.4|37.23|32|N|,Petionville|ouest|HT|-72.29|18.51|376|W|,Petrogradka|st petersburg|RU|30.31|59.97|130|W|,Petrolina|pernambuco|BR|-40.5|-9.4|418|W|,Petropavl|north kazakhstan|KZ|69.15|54.87|200|W|kizilyar;petropawl;pietropawlowsk,Petropavlovsk-Kamchatsky|kamchatka|RU|158.63|53.06|181|W|petropavlovsk kamchatskiy;petropavlovsk kamciatki;petropavlovsk kamchatski;petropavlovsk kamtchatski;petropavlovsk kamtjatskij;petropavlovsk kamtsjatski;petropavlovsk kamtsatski;petropavlovsk kamcatski;petropavlovsk kamcatskij;pietropawlowsk kamczacki,Petropolis|rio de janeiro|BR|-43.18|-22.5|294|W|,Petrozavodsk|karelia|RU|34.35|61.78|279|W|petroskoi;petrosavodsk;petrosawodsk;petroskoj;petrozawodzk;pietrozawodsk;aanislinna,Pflugerville|TX|US|-97.62|30.44|57|N|,Phan Rang-Thap Cham|khanh hoa|VN|108.99|11.56|207|W|phan rang,Phan Thiet|lam dong|VN|108.1|10.93|228|W|,Pharr|TX|US|-98.18|26.19|76|N|,Phenix City|AL|US|-85|32.47|37|N|,Philadelphia|PA|US|-75.16|39.95|1573|NW|filadelfia;filadelfie;philadelphie,Phnom Penh|phnom penh|KH|104.92|11.56|1573|W|nom pen;phnompenh;phon phen;pnom pene;pnom penh,Pho Yen|thai nguyen|VN|105.89|21.42|231|W|,Phoenix|AZ|US|-112.07|33.45|1650|NW|,Phra Pradaeng|samut prakan|TH|100.53|13.66|196|W|amphoe phra pradaeng,Phu Ly|ninh binh|VN|105.91|20.55|136|W|,Phu My|ho chi minh city hcmc|VN|107.07|10.63|287|W|,Phu Quoc|an giang|VN|103.97|10.22|294|W|koh trol,Phuc Yen|phu tho|VN|105.7|21.24|180|W|,Phusro|jharkhand|IN|86.01|23.76|185|W|,Pickering|ON|CA|-79.13|43.9|91|N|,Pico Rivera|CA|US|-118.1|33.98|64|N|,Piedecuesta|santander department|CO|-73.05|6.99|163|W|,Piedras Negras|MX07|MX|-100.52|28.7|150|NW|piedrasnegras,Pierrefonds|QC|CA|-73.89|45.46|59|N|,Pierrefonds-Roxboro|QC|CA|-73.84|45.5|73|N|,Pietermaritzburg|kwazulu natal|ZA|30.39|-29.62|839|W|,Pijijiapan|MX05|MX|-93.21|15.69|50|N|,Pikesville|MD|US|-76.72|39.37|30|N|,Pikine|dakar|SN|-17.39|14.76|1170|W|,Pilibhit|uttar pradesh|IN|79.8|28.63|131|W|,Pilsen|plzen region|CZ|13.38|49.75|168|W|plzen;pilzno,Pimpri|maharashtra|IN|73.81|18.62|1284|W|,Pimpri-Chinchwad|maharashtra|IN|73.8|18.62|1727|W|pimpri cincvad,Pinar del Rio|pinar del rio|CU|-83.7|22.42|186|W|,Pindamonhangaba|sao paulo|BR|-45.46|-22.92|172|W|,Pindi Bhattian|punjab|PK|73.27|31.9|493|W|,Pine Bluff|AR|US|-92|34.23|44|N|,Pine Hills|FL|US|-81.45|28.56|60|N|,Pinellas Park|FL|US|-82.7|27.84|51|N|,Pinetown|kwazulu natal|ZA|30.89|-29.82|144|W|,Pingdingshan|henan|CN|113.32|33.73|979|W|pching ting san,Pingdu|shandong|CN|119.95|36.78|542|W|,Pingliang|gansu|CN|106.69|35.54|504|W|binh luong;pching liang,Pingwu County|sichuan|CN|104.53|32.41|180|W|,Pingxiang|jiangxi|CN|113.85|27.62|893|W|binh huong;pching siang,Pinotepa Nacional|MX20|MX|-98.05|16.34|29|N|pinotepa,Piracicaba|sao paulo|BR|-47.65|-22.73|440|W|,Piraeus|attica|GR|23.65|37.94|163|W|el pireo;il pireo;le piree;peiraias;peiraiefs;pire;pireo;pireu;pireus;piraus,Piranshahr|west azerbaijan|IR|45.14|36.7|168|W|khaneh;piranschahr;piranszahr;piransehr,Pirituba|sao paulo|BR|-46.73|-23.49|179|W|,Piscataway|NJ|US|-74.4|40.5|56|N|,Pitalito|huila department|CO|-76.05|1.85|135|W|,Pitesti|arges|RO|24.87|44.85|141|W|piteszt;pitest;pitesk,Pittsburg|CA|US|-121.88|38.03|69|N|,Pittsburgh|PA|US|-80|40.44|304|NW|pitsburgo,Pittsfield|MA|US|-73.25|42.45|43|N|,Piura|piura|PE|-80.66|-5.18|630|W|,Pizhou|jiangsu|CN|117.95|34.31|343|W|,Placentia|CA|US|-117.87|33.87|52|N|,Plainfield|NJ|US|-74.41|40.63|51|N|,Plainfield|IL|US|-88.2|41.63|42|N|,Plainfield|IN|US|-86.4|39.7|30|N|,Plainview|NY|US|-73.47|40.78|26|N|,Planaltina|federal district|BR|-47.65|-15.62|189|W|,Plano|TX|US|-96.7|33.02|283|NW|,Plano Piloto|federal district|BR|-47.88|-15.79|198|W|,Plant City|FL|US|-82.11|28.02|37|N|,Plantation|FL|US|-80.23|26.13|92|N|,Playa del Carmen|MX23|MX|-87.08|20.63|149|NW|,Plaza de la Revolucion|havana|CU|-82.39|23.12|139|W|,Pleasant Grove|UT|US|-111.74|40.36|38|N|pleasant grv,Pleasant Hill|CA|US|-122.06|37.95|34|N|,Pleasanton|CA|US|-121.87|37.66|79|N|,Pleasure Ridge Park|KY|US|-85.86|38.15|25|N|,Ploiesti|prahova|RO|26.02|44.95|180|W|ploeszti,Plovdiv|plovdiv|BG|24.75|42.15|329|W|filibe;filippopoli;plowdiw,Plum|PA|US|-79.75|40.5|27|N|,Plumbon|west java|ID|108.47|-6.71|167|W|,Plymouth|england|GB|-4.14|50.37|260|W|,Plymouth|MN|US|-93.46|45.01|75|N|,Pocatello|ID|US|-112.45|42.87|54|N|,Pocos de Caldas|minas gerais|BR|-46.56|-21.79|172|W|,Podgorica|podgorica|ME|19.26|42.44|236|W|,Podolsk|moscow oblast|RU|37.55|55.42|179|W|,Pohang|gyeongsangbuk do|KR|129.36|36.03|492|W|,Poinciana|FL|US|-81.46|28.14|53|N|,Pointe-Claire|QC|CA|-73.82|45.45|30|N|,Pointe-Noire|pointe noire|CG|11.86|-4.78|1032|W|,Pokhara|gandaki pradesh|NP|83.97|28.27|600|W|,Polanco|MX09|MX|-99.2|19.43|50|N|col polanco;colonia polanco,Polokwane|limpopo|ZA|29.47|-23.9|272|W|pietersburg,Poltava|poltava|UA|34.55|49.59|279|W|poltawa;pultava;baltavar;ltava,Pomona|CA|US|-117.75|34.06|153|NW|,Pompano Beach|FL|US|-80.12|26.24|107|N|,Ponce|ponce|PR|-66.62|18.01|137|W|,Ponta Grossa|parana|BR|-50.16|-25.09|292|W|,Ponte Vedra Beach|FL|US|-81.39|30.24|35|N|,Pontiac|MI|US|-83.29|42.64|59|N|,Pontianak|west kalimantan|ID|109.33|-0.03|686|W|kota pontianak,Poole|england|GB|-1.98|50.71|151|W|,Popayan|cauca department|CO|-76.61|2.44|318|W|,Porbandar|gujarat|IN|69.61|21.64|152|W|,Porlamar|nueva esparta|VE|-63.87|10.96|216|W|,Port Arthur|TX|US|-93.94|29.89|55|N|,Port-au-Prince|ouest|HT|-72.34|18.54|1234|W|porto principe;puerto principe,Port Charlotte|FL|US|-82.09|26.98|54|N|,Port Chester|NY|US|-73.67|41|29|N|,Port Coquitlam|BC|CA|-122.77|49.27|58|N|,Port-de-Paix|nord ouest|HT|-72.83|19.94|306|W|porto da paz,Port-Gentil|ogooue maritime|GA|8.78|-0.72|164|W|mandji,Port Harcourt|rivers state|NG|7.01|4.78|2120|W|,Port Huron|MI|US|-82.42|42.97|29|N|,Port Louis|port louis|MU|57.5|-20.16|155|W|puerto louis,Port Moody|BC|CA|-122.82|49.28|27|N|,Port Moresby|national capital|PG|147.15|-9.48|283|W|puerto moresby,Port Orange|FL|US|-81|29.14|59|N|,Port Richmond|PA|US|-75.1|39.99|27|N|richmond,Port Said|port said|EG|32.3|31.27|780|W|bursaid;porto said;puerto said,Port Saint Lucie|FL|US|-80.35|27.29|164|NW|,Port Sudan|red sea|SD|37.22|19.62|489|W|bur sudan;port soudan;porto sudan;porto sudao;puerto sudan,Portage|MI|US|-85.58|42.2|48|N|,Portage|IN|US|-87.18|41.58|36|N|,Portage Park|IL|US|-87.77|41.96|64|N|,Porterville|CA|US|-119.02|36.07|56|N|,Porticos de San Antonio|MX02|MX|-117.03|32.44|34|N|,Portland|OR|US|-122.68|45.52|652|NW|,Portland|ME|US|-70.26|43.66|66|N|,Porto|porto|PT|-8.61|41.15|252|W|oporto,Porto Alegre|rio grande do sul|BR|-51.23|-30.03|1488|W|puerto alegre,Porto-Novo|oueme|BJ|2.6|6.5|264|W|,Porto Seguro|bahia|BR|-39.06|-16.45|182|W|,Porto Velho|rondonia|BR|-63.9|-8.76|548|W|,Portoviejo|manabi|EC|-80.45|-1.06|321|W|,Portsmouth|england|GB|-1.09|50.8|208|W|,Portsmouth|VA|US|-76.3|36.84|96|N|,Portsmouth Heights|VA|US|-76.37|36.82|99|N|,Posadas|misiones|AR|-55.92|-27.39|305|W|,Post Falls|ID|US|-116.95|47.72|30|N|,Potchefstroom|north west|ZA|27.1|-26.72|178|W|,Potomac|MD|US|-77.21|39.02|44|N|,Potosi|potosi department|BO|-65.75|-19.58|141|W|,Potsdam|brandenburg|DE|13.07|52.4|184|W|poczdam;postupim,Poughkeepsie|NY|US|-73.92|41.7|30|N|,Pouso Alegre|minas gerais|BR|-45.94|-22.23|162|W|,Poway|CA|US|-117.04|32.96|50|N|,Poza Rica de Hidalgo|MX30|MX|-97.46|20.53|185|NW|poza rica,Poznan|greater poland|PL|16.93|52.41|536|W|posen;posnania;possen,Praga Poludnie|mazovia|PL|21.09|52.24|179|W|,Prague|prague|CZ|14.42|50.09|1165|W|praag;prag;praga;praha,Praia|praia|CV|-23.51|14.93|137|W|cidade da praia;municipio da praia,Praia Grande|sao paulo|BR|-46.4|-24.01|367|W|,Prairieville|LA|US|-90.97|30.3|26|N|,Prato|tuscany|IT|11.1|43.88|195|W|,Prattville|AL|US|-86.46|32.46|35|N|,Pravyi Bereh|donetsk|UA|37.59|47.11|352|W|pravyy bereh,Prayagraj|uttar pradesh|IN|81.84|25.44|1073|W|allahabad,Prenzlauer Berg Bezirk|state of berlin|DE|13.42|52.54|148|W|prenzlauer berg,Prescott|AZ|US|-112.47|34.54|41|N|,Prescott Valley|AZ|US|-112.32|34.61|42|N|,Presidente Prudente|sao paulo|BR|-51.39|-22.13|234|W|,Preston|england|GB|-2.7|53.76|313|W|,Pretoria|gauteng|ZA|28.19|-25.74|2112|W|pretorie,Prince Albert|SK|CA|-105.77|53.2|35|N|,Prince Edward|ON|CA|-77.25|44|25|N|prince edward county,Prince George|BC|CA|-122.75|53.92|78|N|,Princeton|FL|US|-80.41|25.54|39|N|,Princeton|NJ|US|-74.66|40.35|29|N|stony brook,Prior Lake|MN|US|-93.42|44.71|25|N|,Probolinggo|east java|ID|113.22|-7.75|243|W|kota probolinggo,Proddatur|andhra pradesh|IN|78.55|14.75|177|W|,Progreso|MX31|MX|-89.66|21.28|37|N|progreso de castro,Prokop'yevsk|kuzbass|RU|86.72|53.92|219|W|prokopjevsk;prokopyevsk;prokopjewsk,Providence|RI|US|-71.41|41.82|190|NW|,Provo|UT|US|-111.66|40.23|115|N|,Pskov|pskov oblast|RU|28.33|57.82|210|W|pihkova;pleskau;pskow,Pu'er|yunnan|CN|100.97|22.79|296|W|,Pucallpa|ucayali|PE|-74.55|-8.38|326|W|,Puchong|selangor|MY|101.62|3|375|W|,Pudong|shanghai|CN|121.5|31.24|5681|W|,Puducherry|puducherry|IN|79.83|11.93|657|W|pondichery;pondicherry;territoire de pondichery;pondicherri,Puebla|MX21|MX|-98.21|19.05|1692|NW|puebla city;puebla de zaragoza;puebla de los angeles,Pueblo|CO|US|-104.61|38.25|109|N|,Pueblo West|CO|US|-104.72|38.35|29|N|,Puente Alto|santiago metropolitan|CL|-70.58|-33.61|568|W|,Puente de Vallecas|madrid|ES|-3.66|40.39|244|W|,Puerto Cabello|carabobo|VE|-68.01|10.47|174|W|,Puerto Cortez|cortes department|HN|-87.93|15.83|142|W|puerto cortes,Puerto Escondido|MX20|MX|-97.07|15.86|29|N|,Puerto La Cruz|anzoategui|VE|-64.63|10.21|370|W|puerto cruz;puerto de la cruz,Puerto Montt|los lagos region|CL|-72.94|-41.47|245|W|port montt,Puerto Penasco|MX26|MX|-113.54|31.32|62|N|,Puerto Plata|puerto plata|DO|-70.69|19.79|146|W|,Puerto Princesa|mimaropa|PH|118.74|9.74|222|W|kota puerto princesa;puerto princesa city,Puerto Vallarta|MX14|MX|-105.23|20.62|224|NW|pto vallarta,Pullman|WA|US|-117.18|46.73|32|N|,Punasa|madhya pradesh|IN|76.39|22.24|350|W|,Pune|maharashtra|IN|73.86|18.52|3124|W|poona,Punggol||SG|103.91|1.41|204|W|,Puning|guangdong|CN|116.17|23.31|874|W|,Punto Fijo|falcon|VE|-70.2|11.69|141|W|,Puqi|hubei|CN|113.88|29.72|132|W|,Puri|odisha|IN|85.82|19.8|200|W|,Purisima de Bustos|MX11|MX|-101.88|21.03|43|N|,Purnia|bihar|IN|87.47|25.78|282|W|,Puruandiro|MX16|MX|-101.52|20.09|30|N|,Purwakarta|west java|ID|107.44|-6.56|179|W|kota purwakarta,Purwodadi|central java|ID|110.92|-7.09|139|W|purwodadi grobogan,Purwokerto|central java|ID|109.23|-7.42|230|W|kota purwokerto,Puthia|rajshahi division|BD|88.83|24.37|159|W|,Putian|fujian|CN|119.01|25.44|1539|W|pchu tchien,Putuo|shanghai|CN|121.39|31.25|1239|W|,Puxi|shanghai|CN|121.47|31.24|6683|W|,Puyallup|WA|US|-122.29|47.19|39|N|,Puyang|zhejiang|CN|119.89|29.46|3590|W|pujiang,Puyang|henan|CN|115.04|35.76|655|W|pchu jang,Pyatigorsk|stavropol kray|RU|43.05|44.05|142|W|piatigorsk;pjatigorsk,Pyay|bago region|MM|95.22|18.82|135|W|prome;pyain,Pyeongtaek|gyeonggi do|KR|127.09|36.99|364|W|pyeongtaek si,Pyongyang|pyongyang|KP|125.75|39.03|3222|W|p yongyang;p yongyang si;pchjongjang;phenian;pionguiangue;pionyang;pjongjang;pyongyang si,Qa'em Shahr|mazandaran|IR|52.87|36.47|204|W|,Qadirpur Ran|punjab|PK|71.67|30.29|200|W|,Qalyub|qalyubia|EG|31.21|30.18|156|W|,Qarchak|tehran|IR|51.58|35.43|251|W|,Qarshi|qashqadaryo|UZ|65.79|38.86|278|W|karchi;karsji;karszy;karsi;qarsi,Qazvin|qazvin province|IR|50|36.27|333|W|kazvin;kazwin,Qeladize|sulaymaniyah|IQ|45.13|36.18|140|W|,Qianjiang|hubei|CN|112.89|30.42|179|W|,Qianjiang|chongqing|CN|108.77|29.53|143|W|,Qibao|shanghai|CN|121.36|31.15|283|W|,Qina|qena|EG|32.73|26.16|252|W|,Qingdao|shandong|CN|120.38|36.06|7172|W|cching tao;tsingtau,Qingpu|shanghai|CN|121.11|31.15|1271|W|,Qingyang|gansu|CN|107.64|35.71|2125|W|,Qingyuan|guangdong|CN|113.03|23.7|1738|W|cching juan,Qingzhou|shandong|CN|118.48|36.7|236|W|,Qinhuangdao|hebei|CN|119.59|39.94|759|W|cchin chuang tao,Qinzhou|guangxi|CN|108.65|21.98|1296|W|kham chau;cchin cou,Qionghai|hainan|CN|110.46|19.24|528|W|,Qiqihar|heilongjiang|CN|123.96|47.34|882|W|cicikar,Qitaihe|heilongjiang|CN|131|45.77|345|W|,Qo'qon|fergana|UZ|70.94|40.53|259|W|kokand,Qods|tehran|IR|51.11|35.72|309|W|,Qom|qom province|IR|50.88|34.64|900|W|kom;kum,Quan Ba|ho chi minh city hcmc|VN|106.69|10.77|220|W|,Quan Bon|ho chi minh city hcmc|VN|106.71|10.77|199|W|,Quan GJuc Thinh||VN|105.74|10.31|132|W|,Quan Muoi|ho chi minh city hcmc|VN|106.67|10.77|399|W|,Quan Muoi Mot|ho chi minh city hcmc|VN|106.64|10.76|332|W|,Quan Nam|ho chi minh city hcmc|VN|106.67|10.76|187|W|,Quan Sau|ho chi minh city hcmc|VN|106.65|10.75|271|W|,Quang Ngai|quang ngai|VN|108.79|15.12|278|W|,Quanzhou|fujian|CN|118.59|24.91|1469|W|cchuan cou;chinchew;chinchu;zayton,Quarto Oggiaro|lombardy|IT|9.14|45.51|182|W|,Quebec|QC|CA|-71.21|46.81|531|NW|kota quebec;quebec city,Queen Creek|AZ|US|-111.63|33.25|34|N|,Queens|NY|US|-73.84|40.68|2316|NW|borough of queens;comte de queens;condado de queens;queens county,Queens Village|NY|US|-73.74|40.73|51|N|,Queensbury|NY|US|-73.61|43.38|27|N|,Queimados|rio de janeiro|BR|-43.56|-22.72|149|W|,Quelimane|zambezia province|MZ|36.89|-17.88|349|W|,Quetta|balochistan|PK|67|30.18|1565|W|ketta;kveta;kweta,Quetzaltenango|quetzaltenango|GT|-91.52|14.84|180|W|,Quevedo|los rios|EC|-79.46|-1.03|213|W|,Quezon City|national capital region|PH|121.05|14.65|3084|W|ciudad quezon;quezon stadt,Qui Nhon|gia lai|VN|109.22|13.78|519|W|quy nhon,Quilicura|santiago metropolitan|CL|-70.71|-33.37|210|W|,Quillacollo|cochabamba|BO|-66.28|-17.39|172|W|,Quilmes|buenos aires|AR|-58.25|-34.72|262|W|,Quilpue|valparaiso|CL|-71.44|-33.05|130|W|,Quincy|MA|US|-71|42.25|93|N|,Quincy|IL|US|-91.41|39.94|40|N|,Quinte West|ON|CA|-77.57|44.18|43|N|,Quito|pichincha|EC|-78.52|-0.23|2781|W|san francisco de quito,Qujing|yunnan|CN|103.78|25.48|1408|W|khuc tinh;cchu ting,Quthbullapur|telangana|IN|78.46|17.5|225|W|,Quzhou|zhejiang|CN|118.87|28.96|902|W|cu chau;cchu cou,Ra's Bayrut|beirut|LB|35.48|33.9|1251|W|,Rabak|white nile|SD|32.74|13.18|135|W|,Rabat|rabat sale kenitra|MA|-6.83|34.01|1655|W|,Rach Gia|an giang|VN|105.08|10.01|459|W|,Racine|WI|US|-87.78|42.73|77|N|,Radnor|PA|US|-75.36|40.05|30|N|,Radom|mazovia|PL|21.15|51.4|226|W|,Raebareli|uttar pradesh|IN|81.23|26.23|186|W|rae bareli,Rafsanjan|kerman|IR|55.99|30.41|147|W|,Rahim Yar Khan|punjab|PK|70.3|28.42|517|W|rahimjar khan;rahimyar khan,Rahway|NJ|US|-74.28|40.61|29|N|,Raichur|karnataka|IN|77.36|16.21|234|W|,Raiganj|west bengal|IN|88.12|25.61|170|W|,Raigarh|chhattisgarh|IN|83.4|21.9|150|W|rajgarh,Raipur|chhattisgarh|IN|81.63|21.23|1027|W|,Raj-Nandgaon|chhattisgarh|IN|81.03|21.1|163|W|,Rajamahendravaram|andhra pradesh|IN|81.78|17.01|376|W|rajahmundry,Rajapalayam|tamil nadu|IN|77.55|9.45|130|W|,Rajkot|gujarat|IN|70.79|22.29|1390|W|radzkot,Rajpur Sonarpur|west bengal|IN|88.43|22.44|424|W|rajpur;sonarpur;sonarpur rajpur,Rajshahi|rajshahi division|BD|88.6|24.37|763|W|,Raleigh|NC|US|-78.64|35.77|482|NW|,Ramadi|anbar|IQ|43.31|33.42|223|W|al ramadi;al rumadi;ar ramadi,Ramagundam|telangana|IN|79.47|18.75|242|W|,Ramat Gan|tel aviv|IL|34.81|32.08|170|W|,Ramenki|moscow|RU|37.5|55.7|130|W|,Ramgundam|telangana|IN|79.45|18.8|452|W|,Ramiros|luanda|AO|13.05|-9.06|323|W|,Ramna Maidan|dhaka division|BD|90.4|23.73|143|W|,Ramos Arizpe|MX07|MX|-100.95|25.54|66|N|,Rampur|uttar pradesh|IN|79.03|28.81|296|W|,Ramsey|MN|US|-93.45|45.26|25|N|,Rancagua|o higgins region|CL|-70.74|-34.17|212|W|,Ranchi|jharkhand|IN|85.31|23.34|1120|W|ranci,Rancho Cordova|CA|US|-121.3|38.59|71|N|,Rancho Cucamonga|CA|US|-117.59|34.11|175|NW|,Rancho Palos Verdes|CA|US|-118.39|33.74|42|N|,Rancho Penasquitos|CA|US|-117.12|32.96|60|N|,Rancho Santa Margarita|CA|US|-117.6|33.64|49|N|,Randallstown|MD|US|-76.8|39.37|32|N|,Randburg|gauteng|ZA|28|-26.09|337|W|rendburg,Randfontein|gauteng|ZA|27.7|-26.18|133|W|,Randolph|MA|US|-71.04|42.16|32|N|,Randolph|NJ|US|-74.58|40.85|25|N|randolph township,Rangel|luanda|AO|13.26|-8.83|190|W|,Rangkasbitung|banten|ID|106.25|-6.36|137|W|,Rangpur|rangpur division|BD|89.25|25.75|1031|W|rangpur city;rongpur,Raniganj|telangana|IN|78.49|17.43|217|W|,Raniganj|west bengal|IN|87.13|23.62|131|W|,Ranipet|tamil nadu|IN|79.33|12.92|264|W|,Rapid City|SD|US|-103.23|44.08|73|N|,Ras Al Khaimah|ras al khaimah|AE|55.94|25.79|351|W|ras el khaimah;ra s al chaima;ras al khaimah city;ras al chajma;ras el kheima;resu l hayme,Rasapudipalem|andhra pradesh|IN|83.32|17.73|1728|W|,Rasht|gilan province|IR|49.59|37.28|594|W|rascht;rasjt;raszt;rast;rest,Ratlam|madhya pradesh|IN|75.04|23.33|264|W|,Raurkela Industrial Township|odisha|IN|84.86|22.2|216|W|,Rawalpindi|punjab|PK|73.05|33.6|3357|W|ravalpindi,Rawang|selangor|MY|101.58|3.32|199|W|,Rawson|san juan|AR|-68.54|-31.58|130|W|,Rayon KTZ|kharkiv|UA|36.37|49.94|200|W|khtz district;khtz settlement;novyy kharkiv;rayon khtz;new kharkiv;novyi kharkiv,Raytown|MO|US|-94.46|39.01|29|N|,Reading|england|GB|-0.97|51.46|318|W|,Reading|PA|US|-75.93|40.34|87|N|,Recife|pernambuco|BR|-34.88|-8.05|1653|W|,Red Deer|AB|CA|-113.8|52.27|100|N|,Redan|GA|US|-84.13|33.75|33|N|,Redding|CA|US|-122.39|40.59|91|N|,Redford|MI|US|-83.3|42.38|49|N|,Redlands|CA|US|-117.18|34.06|71|N|,Redmond|WA|US|-122.12|47.67|60|N|,Redmond|OR|US|-121.17|44.27|28|N|,Redondo Beach|CA|US|-118.39|33.85|68|N|,Redwood City|CA|US|-122.24|37.49|85|N|,Reedley|CA|US|-119.45|36.6|25|N|,Reforma|MX05|MX|-93.15|17.86|26|N|,Regensburg|bavaria|DE|12.1|49.02|151|W|ratisbona;ratisbonne;ratyzbona;regensburgo;rezno,Reggio Calabria|calabria|IT|15.66|38.11|182|W|reggio de calabre;reggio di calabria;regio de calabria,Reggio nell'Emilia|emilia romagna|IT|10.63|44.7|171|W|reggio emilia;reggio d emilie,Regina|SK|CA|-104.62|50.45|226|NW|,Rego Park|NY|US|-73.85|40.73|43|N|,Rehovot|central district|IL|34.81|31.89|149|W|rechovot;rechowot;rejovot,Reims|grand est|FR|4.03|49.27|196|W|remes,Reisterstown|MD|US|-76.83|39.47|25|N|,Renca|santiago metropolitan|CL|-70.71|-33.4|147|W|,Renfrew-Collingwood|BC|CA|-123.04|49.24|51|N|,Rengasdengklok|west java|ID|107.3|-6.16|201|W|,Rennes|brittany|FR|-1.67|48.11|227|W|,Reno|NV|US|-119.81|39.53|264|NW|,Renton|WA|US|-122.22|47.48|100|N|,Repentigny|QC|CA|-73.45|45.74|84|N|,Reseda|CA|US|-118.54|34.2|65|N|,Resende|rio de janeiro|BR|-44.45|-22.47|137|W|,Resistencia|chaco|AR|-58.99|-27.46|290|W|ciudad de resistencia,Reston|VA|US|-77.34|38.97|58|N|,Revere|MA|US|-71.01|42.41|53|N|,Rewa|madhya pradesh|IN|81.29|24.53|235|W|,Rewari|haryana|IN|76.62|28.2|143|W|,Rexburg|ID|US|-111.79|43.83|27|N|,Reynoldsburg|OH|US|-82.81|39.95|37|N|,Reynosa|MX28|MX|-98.28|26.08|589|NW|,Rhawnhurst|PA|US|-75.06|40.06|25|N|,Rialto|CA|US|-117.37|34.11|103|N|,Ribeirao das Neves|minas gerais|BR|-44.09|-19.77|346|W|,Ribeirao Preto|sao paulo|BR|-47.81|-21.18|698|W|ribeirao,Richards Bay|kwazulu natal|ZA|32.04|-28.78|252|W|,Richardson|TX|US|-96.73|32.95|110|N|,Richfield|MN|US|-93.28|44.88|36|N|,Richland|WA|US|-119.28|46.29|54|N|,Richmond|VA|US|-77.46|37.55|226|NW|,Richmond|BC|CA|-123.14|49.17|209|NW|,Richmond|CA|US|-122.35|37.94|109|N|,Richmond|IN|US|-84.89|39.83|35|N|,Richmond|KY|US|-84.29|37.75|33|N|,Richmond Hill|ON|CA|-79.44|43.87|202|NW|,Richmond Hill|NY|US|-73.83|40.7|98|N|,Richmond West|FL|US|-80.43|25.61|35|N|,Ridgecrest|CA|US|-117.67|35.62|28|N|,Ridgewood|NY|US|-73.91|40.7|69|N|,Ridgewood|NJ|US|-74.12|40.98|25|N|,Riga|riga|LV|24.11|56.95|742|W|riika;ryga,Rimini|emilia romagna|IT|12.57|44.06|148|W|,Rimouski|QC|CA|-68.52|48.45|42|N|,Rincon de Romos|MX01|MX|-102.32|22.23|27|N|,Rio Blanco|MX30|MX|-97.16|18.83|40|N|,Rio Branco|acre|BR|-67.81|-9.97|419|W|,Rio Claro|sao paulo|BR|-47.56|-22.41|201|W|,Rio Cuarto|cordoba|AR|-64.35|-33.13|157|W|ciudad de rio cuarto,Rio das Ostras|rio de janeiro|BR|-41.95|-22.53|168|W|,Rio de Janeiro|rio de janeiro|BR|-43.18|-22.91|6747|W|,Rio de Teapa|MX27|MX|-92.9|17.77|26|N|,Rio Grande|rio grande do sul|BR|-52.1|-32.03|198|W|,Rio Grande|MX32|MX|-103.03|23.83|32|N|,Rio Pequeno|sao paulo|BR|-46.76|-23.57|131|W|,Rio Rancho|NM|US|-106.66|35.23|87|N|,Rio Verde|goias|BR|-50.93|-17.8|241|W|,Riobamba|chimborazo province|EC|-78.66|-1.67|264|W|,Riohacha|la guajira department|CO|-72.91|11.54|188|W|rio de la hacha,Rioverde|MX24|MX|-99.99|21.93|53|N|,Rishon LeTsiyyon|central district|IL|34.79|31.97|258|W|rishon leziyyon;rischon lezion;rishon le zion;rishon lezion;rishon letsiyon;rishon lsiyon;rishon le siyon;rishon le ziyon;risjon letsion;riszon le cijjon,Riverside|CA|US|-117.4|33.95|317|NW|,Riverton|UT|US|-111.94|40.52|41|N|,Riverview|FL|US|-82.33|27.87|71|N|,Riviera Beach|FL|US|-80.06|26.78|34|N|,Riviere-des-Prairies-Pointe-aux-Trembles|QC|CA|-73.58|45.64|113|N|,Rivne|rivne oblast|UA|26.24|50.62|243|W|riwne;rowne,Riyadh|riyadh region|SA|46.72|24.69|4205|W|riad;riade;rijad;riyad,Rizhao|shandong|CN|119.53|35.41|661|W|z cao,Roanoke|VA|US|-79.94|37.27|100|N|,Robertsonpet|karnataka|IN|78.28|12.96|162|W|robertson pet,Rochester|NY|US|-77.62|43.15|209|NW|,Rochester|MN|US|-92.47|44.02|112|N|,Rochester|NH|US|-70.98|43.3|30|N|,Rochester Hills|MI|US|-83.15|42.66|73|N|,Rock Forest|QC|CA|-72|45.36|35|N|,Rock Hill|SC|US|-81.03|34.92|71|N|,Rock Island|IL|US|-90.58|41.51|38|N|,Rockford|IL|US|-89.09|42.27|148|NW|,Rocklin|CA|US|-121.24|38.79|61|N|,Rockville|MD|US|-77.15|39.08|66|N|hungerford s tavern;hungerfords;hungerfords tavern;montgomery court house;montgomery courthouse;owen s ordinary;williamsburg;williamsburgh,Rockwall|TX|US|-96.46|32.93|42|N|,Rocky Mount|NC|US|-77.79|35.94|55|N|,Rodriguez|calabarzon|PH|121.2|14.76|134|W|,Rogers|AR|US|-94.12|36.33|63|N|,Rogers Park|IL|US|-87.67|42.01|54|N|,Rohini|delhi|IN|77.07|28.74|860|W|,Rohnert Park|CA|US|-122.7|38.34|42|N|,Rohtak|haryana|IN|76.59|28.89|374|W|,Rome|lazio|IT|12.51|41.89|2318|W|rom;roma;rooma;rzym;rim,Rome|GA|US|-85.16|34.26|36|N|,Rome|NY|US|-75.46|43.21|32|N|roma,Romeoville|IL|US|-88.09|41.65|39|N|,Rondonopolis|mato grosso|BR|-54.64|-16.47|263|W|,Roodepoort|gauteng|ZA|27.87|-26.16|326|W|,Rosario|santa fe|AR|-60.64|-32.95|948|W|,Rosarito|MX02|MX|-117.05|32.36|100|N|rosario;rosarito beach baja,Rosedale|NY|US|-73.74|40.66|25|N|,Rosemead|CA|US|-118.07|34.08|54|N|,Rosemont-La Petite-Patrie|QC|CA|-73.61|45.54|146|NW|,Rosenberg|TX|US|-95.81|29.56|35|N|,Rosetta|beheira|EG|30.42|31.4|301|W|rasyid;resid;roseta;rosette,Roseville|CA|US|-121.29|38.75|130|NW|,Roseville|MI|US|-82.94|42.5|47|N|,Roseville|MN|US|-93.16|45.01|35|N|,Roslindale|MA|US|-71.12|42.29|27|N|,Rostock|mecklenburg vorpommern|DE|12.14|54.09|198|W|,Rostov-on-Don|rostov|RU|39.71|47.22|1130|W|rostov na donu;rostow am don;rostov aan de don;rostov del don;rostov do don;rostov sul don;rostov tren song dong;rostov ved don;rostov pe don;rostov sur le don;rostow nad donem,Roswell|GA|US|-84.36|34.02|94|N|,Roswell|NM|US|-104.52|33.39|48|N|,Rotterdam|south holland|NL|4.48|51.92|868|W|roterdao;roterdam,Rouge|ON|CA|-79.17|43.8|46|N|,Round Lake Beach|IL|US|-88.09|42.37|27|N|,Round Rock|TX|US|-97.68|30.51|115|N|,Rourkela|odisha|IN|84.86|22.22|273|W|,Rowland Heights|CA|US|-117.91|33.98|48|N|,Rowlett|TX|US|-96.56|32.9|60|N|,Roxas City|western visayas|PH|122.75|11.59|185|W|,Roy|UT|US|-112.03|41.16|37|N|,Royal Oak|MI|US|-83.14|42.49|59|N|,Royal Palm Beach|FL|US|-80.23|26.71|37|N|,Rubidoux|CA|US|-117.41|34|34|N|,Rubtsovsk|altai krai|RU|81.21|51.51|161|W|roebtsovsk;roubtsovsk;rubcovsk;rubcowsk;rubzowsk;rubtovsk,Ruda Slaska|silesia|PL|18.86|50.26|146|W|ruda o s,Rudrapur|uttarakhand|IN|79.4|28.98|154|W|,Rufisque|dakar|SN|-17.27|14.72|295|W|,Rufisque est|dakar|SN|-17.27|14.72|221|W|,Rugao|jiangsu|CN|120.58|32.37|257|W|,Rui'an|zhejiang|CN|120.66|27.78|927|W|,Ruiru|kiambu county|KE|36.96|-1.15|490|W|,Ruqi|awdal|SO|43.43|9.97|148|W|,Russeifa|zarqa|JO|36.05|32.02|268|W|ar rusajfa;rusajfa;ruseyfa,Russellville|AR|US|-93.13|35.28|29|N|,Rustenburg|north west|ZA|27.24|-25.67|373|W|rustemburgo,Rutchenkivskyi|donetsk|UA|37.7|47.98|168|W|rutchenkivskyi district;rutchenkivskyi rayon;rutchenkove;kirovskyi;kirovskyi rayon,Rutland|BC|CA|-119.39|49.9|34|N|,Ryazan'|ryazan oblast|RU|39.7|54.63|538|W|rjazan;riazan;rjasan,Rybinsk|yaroslavl oblast|RU|38.84|58.05|216|W|ribinsk,Rybnik|silesia|PL|18.54|50.1|142|W|,Rzeszow|subcarpathia|PL|22|50.04|198|W|resov,'s-Hertogenbosch|north brabant|NL|5.3|51.7|160|W|den bosch;bois le duc;bolduque;boscoducale;hertogenbosch;herzogenbusch,Sa Dec|dong thap|VN|105.76|10.29|214|W|,Saaba|centre|BF|-1.41|12.37|136|W|,Saanich|BC|CA|-123.37|48.55|117|N|,Saarbruecken|saarland|DE|7.01|49.23|182|W|saarbrucken;sarrebruck,Sabadell|catalonia|ES|2.11|41.54|211|W|,Sabah as Salim|mubarak al kabir|KW|48.06|29.26|139|W|sabah al salem,Sabha|sabha district|LY|14.43|27.04|149|W|sebha,Sabinas|MX07|MX|-101.12|27.86|54|N|ciudad sabinas,Sabya|jazan region|SA|42.63|17.15|228|W|,Sabzevar|razavi khorasan|IR|57.68|36.21|243|W|sabzawar;sabzewar;sebzevar,Sacaba|cochabamba|BO|-66.04|-17.4|180|W|,Sacoma|sao paulo|BR|-46.6|-23.63|261|W|,Sacramento|CA|US|-121.49|38.58|524|NW|,Saddiqabad|punjab|PK|70.13|28.31|274|W|,Sadr City|baghdad|IQ|44.46|33.39|1211|W|,Safi|marrakesh safi|MA|-9.24|32.3|336|W|asfi;safim;asafi,Saga|saga|JP|130.3|33.23|233|W|saga shi,Sagamihara|kanagawa|JP|139.24|35.57|720|W|,Saginaw|MI|US|-83.95|43.42|49|N|,Saguenay|QC|CA|-71.07|48.42|148|NW|,Saham|al batinah north|OM|56.89|24.17|140|W|,Saharanpur|uttar pradesh|IN|77.55|29.97|484|W|,Saharsa|bihar|IN|86.6|25.87|156|W|,Sahiwal|punjab|PK|72.33|31.97|538|W|,Sahuarita|AZ|US|-110.96|31.96|25|N|,Sahuayo de Morelos|MX16|MX|-102.72|20.06|64|N|,Sai Mai|bangkok|TH|100.65|13.92|188|W|,Saida|saida|DZ|0.15|34.83|142|W|sa ida,Saidpur|rangpur division|BD|88.89|25.78|199|W|,Saint Charles|MO|US|-90.48|38.78|65|N|st charles,Saint Charles|MD|US|-76.94|38.6|36|N|st charles,Saint Clair Shores|MI|US|-82.89|42.5|59|N|st clair shores;saint clr shores,Saint Cloud|MN|US|-94.16|45.56|65|N|st cloud,Saint Cloud|FL|US|-81.28|28.25|35|N|st cloud,Saint-Constant|QC|CA|-73.57|45.37|27|N|,Saint-Denis|reunion|RE|55.45|-20.88|154|W|saint denis de la reunion;st denis,Saint-Etienne|rhone alpes|FR|4.39|45.43|176|W|st etienne,Saint-Eustache|QC|CA|-73.91|45.56|42|N|,Saint George|UT|US|-113.58|37.1|72|N|st george,Saint-Georges|QC|CA|-70.67|46.11|31|N|,Saint-Hubert|QC|CA|-73.42|45.5|82|N|,Saint-Hyacinthe|QC|CA|-72.96|45.63|50|N|st hyacinthe,Saint-Jean-sur-Richelieu|QC|CA|-73.26|45.31|98|N|,Saint-Jerome|QC|CA|-74|45.78|54|N|,Saint John|NB|CA|-66.06|45.27|71|N|saint jean,Saint Joseph|MO|US|-94.85|39.77|76|N|st joseph,Saint-Laurent|QC|CA|-73.67|45.5|98|N|st laurent,Saint-Leonard|QC|CA|-73.6|45.59|79|N|,Saint-Louis|saint louis|SN|-16.49|16.02|254|W|,Saint-Louis-de-Terrebonne|QC|CA|-73.79|45.7|119|N|,Saint Louis Park|MN|US|-93.35|44.95|45|N|st louis park,Saint-Marc|artibonite|HT|-72.7|19.11|266|W|,Saint-Michel|QC|CA|-73.62|45.57|56|N|,Saint Paul|MN|US|-93.09|44.94|303|NW|st paul,Saint Peters|MO|US|-90.63|38.8|52|N|city of saint peters,Saint Petersburg|st petersburg|RU|30.31|59.94|5351|W|pietari;san petersburgo;st petersburg;petrohrad;saint petersbourg;san pietroburgo;sankt peterburg;sankt petersborg;sankt petersburg;sint petersburg;sao petersburgo;leningrad;leningrado;petrograd;petrogrado,Saint-Quentin-en-Yvelines|ile de france|FR|2.02|48.77|146|W|,Sainte-Foy|QC|CA|-71.29|46.78|111|N|,Sainte-Julie|QC|CA|-73.33|45.58|29|N|,Sainte-Therese|QC|CA|-73.83|45.64|25|N|,Saitama|saitama|JP|139.66|35.91|1324|W|,Sakai|osaka|JP|135.47|34.58|826|W|,Saki|oyo state|NG|3.39|8.67|178|W|,Sakura|chiba|JP|140.23|35.72|173|W|,Salaberry-de-Valleyfield|QC|CA|-74.13|45.25|42|N|,Salalah|dhofar|OM|54.09|17.02|163|W|salala,Salamanca|MX11|MX|-101.2|20.57|160|NW|,Salamanca|madrid|ES|-3.68|40.43|147|W|,Salamanca|castille and leon|ES|-5.66|40.97|144|W|salamanka;salamanque,Salatiga|central java|ID|110.49|-7.33|198|W|,Salavat|bashkortostan republic|RU|55.91|53.38|159|W|salauat;salawat,Sale|rabat sale kenitra|MA|-6.8|34.05|972|W|sala,Sale Al Jadida|rabat sale kenitra|MA|-6.74|34|200|W|,Salem|tamil nadu|IN|78.16|11.65|917|W|selam,Salem|OR|US|-123.04|44.94|175|NW|,Salem|MA|US|-70.9|42.52|42|N|,Salem|NH|US|-71.2|42.79|29|N|,Salem|VA|US|-80.05|37.29|25|N|,Salina|KS|US|-97.61|38.84|47|N|,Salina Cruz|MX20|MX|-95.19|16.18|84|N|,Salinas|CA|US|-121.66|36.68|157|NW|,Salisbury|NC|US|-80.47|35.67|34|N|,Salisbury|MD|US|-75.6|38.36|32|N|,Salt Lake City|UT|US|-111.89|40.76|215|NW|kota salt lake,Salta|salta|AR|-65.42|-24.81|520|W|ciudad de salta,Saltillo|MX07|MX|-100.98|25.43|709|NW|,Saltivka|kharkiv|UA|36.35|50.02|409|W|saltivskyi masyv,Salto|sao paulo|BR|-47.29|-23.2|141|W|,Salvador|bahia|BR|-38.49|-12.98|2711|W|salvador de bahia,Salvatierra|MX11|MX|-100.88|20.22|37|N|,Salzburg|state of salzburg|AT|13.04|47.8|157|W|salcburk;salisburgo;salzbourg;salzburgo,Samalut|minya|EG|30.71|28.31|142|W|,Samambaia|federal district|BR|-48.1|-15.88|218|W|,Samara|samara oblast|RU|50.14|53.21|1163|W|kuibyschew;kuibyshev;kuybyshev,Samarinda|east kalimantan|ID|117.15|-0.49|865|W|kota samarinda,Samarkand|samarqand region|UZ|66.96|39.65|595|W|samarcanda;samarcande;samarkanda;samarqand;semerkant,Samarra'|salah ad din|IQ|43.89|34.2|158|W|,Samba|luanda|AO|13.2|-8.88|364|W|,Sambalpur|odisha|IN|83.98|21.47|189|W|,Sambhal|uttar pradesh|IN|78.57|28.58|196|W|,Sambizanga|luanda|AO|13.28|-8.79|177|W|sambizanha,Sammamish|WA|US|-122.08|47.64|52|N|,Sampit|central kalimantan|ID|112.95|-2.53|166|W|,Samsun|samsun|TR|36.34|41.28|394|W|,Samut Prakan|samut prakan|TH|100.6|13.6|388|W|mueang samut prakan;paknam,San Agustin|MX14|MX|-103.47|20.55|30|N|colonia san agustin,San Andres Cholula|MX21|MX|-98.3|19.05|39|N|,San Andres Tuxtla|MX30|MX|-95.21|18.45|61|N|,San Angelo|TX|US|-100.44|31.46|99|N|,San Antonio|TX|US|-98.49|29.42|1526|NW|,San Bernardino|CA|US|-117.29|34.11|216|NW|,San Bernardino Tlaxcalancingo|MX21|MX|-98.28|19.03|54|N|,San Bernardo|santiago metropolitan|CL|-70.7|-33.59|249|W|,San Blas-Canillejas|madrid|ES|-3.62|40.44|157|W|,San Bruno|CA|US|-122.41|37.63|43|N|,San Buenaventura|MX15|MX|-98.86|19.3|44|N|,San Carlos|CA|US|-122.26|37.51|29|N|,San Clemente|CA|US|-117.61|33.43|65|N|,San Cristobal|tachira|VE|-72.24|7.77|289|W|,San Cristobal|san cristobal|DO|-70.11|18.42|154|W|,San Cristobal de las Casas|MX05|MX|-92.64|16.73|215|NW|san cristobal,San Diego|CA|US|-117.16|32.72|1404|NW|,San Dimas|CA|US|-117.81|34.11|34|N|,San Felipe|yaracuy|VE|-68.74|10.34|206|W|,San Felipe|MX11|MX|-101.22|21.48|28|N|,San Fernando|central luzon|PH|120.68|15.03|251|W|kota san fernando;san fernando city,San Fernando|MX28|MX|-98.15|24.85|29|N|,San Fernando de Apure|apure|VE|-67.47|7.89|229|W|san fernando,San Francisco|CA|US|-122.42|37.77|827|NW|sao francisco,San Francisco Acuautla|MX15|MX|-98.86|19.35|27|N|acuautla,San Francisco del Rincon|MX11|MX|-101.86|21.02|71|N|,San Francisco Tesistan|MX14|MX|-103.48|20.8|62|N|,San Gabriel|CA|US|-118.11|34.1|40|N|sao gabriel,San Isidro|MX15|MX|-98.95|19.34|33|N|,San Jacinto|CA|US|-116.96|33.78|46|N|,San Jeronimo|MX15|MX|-99.59|19.28|26|N|,San Jeronimo Cuatro Vientos|MX15|MX|-98.84|19.29|36|N|,San Jose|CA|US|-121.89|37.34|997|NW|,San Jose|san jose|CR|-84.08|9.93|335|W|,San Jose|mimaropa|PH|121.07|12.35|143|W|,San Jose del Cabo|MX03|MX|-109.7|23.05|136|NW|,San Jose del Castillo|MX14|MX|-103.24|20.51|39|N|,San Jose del Monte|central luzon|PH|121.05|14.81|357|W|kota san jose del monte;san jose del monte city,San Jose Guadalupe Otzacatipan|MX15|MX|-99.59|19.34|31|N|,San Juan|san juan|PR|-66.11|18.47|418|W|,San Juan|national capital region|PH|121.03|14.6|134|W|san juan city,San Juan|TX|US|-98.16|26.19|36|N|,San Juan Capistrano|CA|US|-117.66|33.5|36|N|,San Juan de los Lagos|MX14|MX|-102.33|21.25|48|N|,San Juan de los Morros|guarico|VE|-67.35|9.91|160|W|,San Juan del Rio|MX22|MX|-100|20.39|138|NW|,San Juan Sacatepequez|guatemala|GT|-90.64|14.72|136|W|,San Leandro|CA|US|-122.16|37.72|90|N|,San Lorenzo|central department|PY|-57.51|-25.34|227|W|,San Luis|san luis|AR|-66.32|-33.29|169|W|ciudad de san luis,San Luis|AZ|US|-114.78|32.49|31|N|,San Luis de la Paz|MX11|MX|-100.51|21.3|49|N|,San Luis Obispo|CA|US|-120.66|35.28|47|N|,San Luis Potosi|MX24|MX|-100.97|22.15|722|NW|san luis potosi city,San Luis Rio Colorado|MX26|MX|-114.77|32.46|176|NW|,San Marcos|CA|US|-117.17|33.14|92|N|,San Marcos|TX|US|-97.94|29.88|60|N|,San Martin|piura|PE|-80.67|-5.19|130|W|,San Martin Azcatepec|MX15|MX|-98.97|19.69|35|N|,San Martin Texmelucan de Labastida|MX21|MX|-98.44|19.28|155|NW|san martin texmelucan,San Mateo|calabarzon|PH|121.12|14.7|134|W|,San Mateo|CA|US|-122.33|37.56|103|N|,San Mateo Atenco|MX15|MX|-99.53|19.27|67|N|,San Miguel|san miguel department|SV|-88.18|13.48|247|W|,San Miguel|buenos aires|AR|-58.71|-34.54|168|W|,San Miguel Ajusco|MX09|MX|-99.2|19.22|29|N|,San Miguel de Allende|MX11|MX|-100.74|20.92|174|NW|,San Miguel de Tucuman|tucuman|AR|-65.21|-26.82|548|W|tucuman,San Miguel del Padron|havana|CU|-82.33|23.1|159|W|,San Miguel Topilejo|MX09|MX|-99.14|19.2|34|N|,San Miguelito|panama|PA|-79.47|9.05|321|W|,San Nicolas de los Arroyos|buenos aires|AR|-60.21|-33.33|134|W|san nicolas,San Nicolas de los Garza|MX19|MX|-100.3|25.74|412|NW|san nicolas de los garzas,San Pablo|calabarzon|PH|121.33|14.07|300|W|san pablo city,San Pablo|CA|US|-122.35|37.96|30|N|,San Pablo Autopan|MX15|MX|-99.66|19.36|35|N|,San Pablo de las Salinas|MX15|MX|-99.09|19.67|156|NW|san pablo,San-Pedro|bas sassandra district|CI|-6.64|4.75|390|W|,San Pedro|calabarzon|PH|121.05|14.36|348|W|,San Pedro|CA|US|-118.29|33.74|83|N|san pedro y san pablo,San Pedro|MX07|MX|-102.98|25.76|48|N|san pedro de las colonias,San Pedro de Macoris|san pedro de macoris|DO|-69.31|18.45|217|W|,San Pedro Garza Garcia|MX19|MX|-100.4|25.66|132|NW|garza garcia;san pedro,San Pedro Sula|cortes department|HN|-88.03|15.51|801|W|,San Rafael|CA|US|-122.53|37.97|59|N|sao rafael,San Ramon|CA|US|-121.98|37.78|76|N|,San Salvador|san salvador department|SV|-89.19|13.69|525|W|salvador;san salwador,San Salvador de Jujuy|jujuy|AR|-65.29|-24.19|257|W|,San Salvador Tizatlalli|MX15|MX|-99.59|19.26|61|N|,San Sebastian|basque country|ES|-1.97|43.31|185|W|donostia;la bella easo;saint sebastien;sanse;sao sebastiao,San Sebastian el Grande|MX14|MX|-103.43|20.53|28|N|,San Tan Valley|AZ|US|-111.53|33.19|81|N|,Sanaa|amanat alasimah|YE|44.21|15.35|1937|W|san a;sana;sana a,Sanandaj|kurdistan province|IR|47|35.31|349|W|sanandadsch;sanandadz;sanandij;senendec,Sancaktepe|istanbul|TR|29.23|41|489|W|,Sanctorum|MX21|MX|-98.25|19.1|27|N|,Sandacho|hyogo|JP|135.23|34.88|132|W|,Sandakan|sabah|MY|118.12|5.84|439|W|,Sandusky|OH|US|-82.71|41.45|25|N|,Sandy|UT|US|-111.88|40.59|87|N|sandy city,Sandy Hills|UT|US|-111.85|40.58|89|N|,Sandy Springs|GA|US|-84.38|33.92|105|N|,Sanford|FL|US|-81.27|28.8|58|N|,Sanford|NC|US|-79.18|35.48|29|N|,Sangli|maharashtra|IN|74.56|16.85|601|W|turmeric city,Sanhe|hebei|CN|117.07|39.98|965|W|,Sanhe|chongqing|CN|107.73|29.87|140|W|fengdu xian;fengtuhein,Sanliurfa|sanliurfa|TR|38.79|37.17|449|W|sanli urfa;edesse;edesa;edessa,Sanmenxia|henan|CN|111.19|34.78|669|W|san men sia,Sanming|fujian|CN|117.62|26.25|602|W|san ming;tam minh,Sanshui|guangdong|CN|112.89|23.15|153|W|,Sant Andreu|catalonia|ES|2.19|41.44|142|W|distrito sant andreu,Sant Marti|catalonia|ES|2.2|41.42|235|W|distrito de sant marti,Santa Ana|CA|US|-117.87|33.75|310|NW|,Santa Ana|santa ana department|SV|-89.56|13.99|176|W|,Santa Ana Chiautempan|MX29|MX|-98.19|19.31|48|N|,Santa Anita - Los Ficus|lima region|PE|-76.97|-12.05|184|W|,Santa Barbara|CA|US|-119.7|34.42|91|N|,Santa Barbara d'Oeste|sao paulo|BR|-47.41|-22.75|189|W|,Santa Catarina|MX19|MX|-100.46|25.67|304|NW|ciudad santa catarina,Santa Clara|villa clara province|CU|-79.97|22.41|250|W|,Santa Clara|CA|US|-121.96|37.35|126|N|,Santa Clarita|CA|US|-118.54|34.39|182|NW|,Santa Cruz|CA|US|-122.03|36.97|64|N|,Santa Cruz de la Sierra|santa cruz department|BO|-63.18|-17.79|1831|W|santa cruz;santa cruz da serra,Santa Cruz de Tenerife|canary islands|ES|-16.25|28.47|211|W|tenerife;teneriffa,Santa Cruz do Sul|rio grande do sul|BR|-52.43|-29.72|138|W|,Santa Cruz Xoxocotlan|MX20|MX|-96.74|17.03|67|N|santa cruz;xoxocotlan,Santa Fe|santa fe|AR|-60.71|-31.65|391|W|ciudad de santa fe,Santa Fe|NM|US|-105.94|35.69|87|N|,Santa Isabel|MX02|MX|-115.57|32.63|29|N|,Santa Luzia|minas gerais|BR|-43.85|-19.77|219|W|,Santa Maria|rio grande do sul|BR|-53.81|-29.68|271|W|,Santa Maria|CA|US|-120.44|34.95|105|N|,Santa Maria Chimalhuacan|MX15|MX|-98.95|19.42|70|N|,Santa Marta|magdalena department|CO|-74.19|11.24|499|W|,Santa Monica|CA|US|-118.49|34.02|93|N|,Santa Paula|CA|US|-119.06|34.35|30|N|,Santa Rita|paraiba|BR|-34.98|-7.11|149|W|,Santa Rosa|calabarzon|PH|121.11|14.31|216|W|kota santa rosa;santa rosa city,Santa Rosa|CA|US|-122.71|38.44|178|NW|,Santa Rosa Beach|FL|US|-86.23|30.4|32|N|,Santa Rosalia de Camargo|MX06|MX|-105.17|27.68|40|N|,Santa Teresa|MX15|MX|-99.23|19.84|36|N|,Santa Teresa del Tuy|miranda|VE|-66.66|10.23|278|W|,Santana de Parnaiba|sao paulo|BR|-46.92|-23.44|163|W|,Santander|cantabria|ES|-3.8|43.47|173|W|,Santarem|para|BR|-54.71|-2.44|360|W|,Santee|CA|US|-116.97|32.84|57|N|,Santiago|santiago metropolitan|CL|-70.65|-33.46|4837|W|santiago de chile;santiago del cile;santiago do chile;santiago du chili,Santiago|MX19|MX|-100.15|25.43|36|N|villa de santiago,Santiago de Cuba|santiago de cuba province|CU|-75.82|20.02|555|W|santiago di cuba,Santiago de los Caballeros|santiago province|DO|-70.69|19.45|1200|W|santiago,Santiago de Queretaro|MX22|MX|-100.39|20.59|1594|NW|queretaro city,Santiago de Surco|lima region|PE|-77.01|-12.14|251|W|,Santiago del Estero|santiago del estero|AR|-64.26|-27.8|252|W|,Santiago Papasquiaro|MX10|MX|-105.42|25.04|26|N|,Santiago Teyahualco|MX15|MX|-99.12|19.66|53|N|teyahualco,Santo Andre|sao paulo|BR|-46.54|-23.66|662|W|,Santo Domingo|nacional|DO|-69.89|18.47|2201|W|saint domingue;santo domingo city;ciudad trujillo,Santo Domingo de los Colorados|santo domingo de los tsachilas|EC|-79.18|-0.25|458|W|santo domingo,Santo Domingo Este|santo domingo province|DO|-69.85|18.49|700|W|,Santo Domingo Oeste|santo domingo province|DO|-70|18.5|701|W|,Santo Domingo Tehuantepec|MX20|MX|-95.24|16.32|67|N|,Santol|central luzon|PH|120.57|15.16|298|W|,Santos|sao paulo|BR|-46.33|-23.96|418|W|baixada santista,Sants-Montjuic|catalonia|ES|2.15|41.37|183|W|,Sanya|hainan|CN|109.51|18.25|1031|W|san ja;tam a,Sao Bernardo do Campo|sao paulo|BR|-46.56|-23.69|840|W|,Sao Caetano do Sul|sao paulo|BR|-46.55|-23.62|172|W|,Sao Carlos|sao paulo|BR|-47.89|-22.02|266|W|,Sao Felix do Xingu|para|BR|-51.99|-6.64|132|W|,Sao Joao de Meriti|rio de janeiro|BR|-43.37|-22.8|466|W|,Sao Jose|santa catarina|BR|-48.63|-27.62|295|W|,Sao Jose de Ribamar|maranhao|BR|-44.06|-2.56|259|W|,Sao Jose do Rio Preto|sao paulo|BR|-49.38|-20.82|480|W|rio preto,Sao Jose dos Campos|sao paulo|BR|-45.89|-23.18|727|W|sjcampos;vale paraiba;vale do paraiba,Sao Jose dos Pinhais|parana|BR|-49.21|-25.53|349|W|,Sao Leopoldo|rio grande do sul|BR|-51.15|-29.76|209|W|,Sao Lucas|sao paulo|BR|-46.54|-23.59|138|W|,Sao Luis|maranhao|BR|-44.3|-2.53|917|W|maranham,Sao Mateus|sao paulo|BR|-46.48|-23.61|155|W|,Sao Mateus|espirito santo|BR|-39.86|-18.72|134|W|,Sao Paulo|sao paulo|BR|-46.64|-23.55|12400|W|san paolo;sao paulo capital,Sao Rafael|sao paulo|BR|-46.45|-23.63|148|W|,Sao Vicente|sao paulo|BR|-46.39|-23.96|338|W|,Sapele|delta|NG|5.68|5.89|305|W|,Sapopemba|sao paulo|BR|-46.52|-23.6|266|W|,Sapporo|hokkaido|JP|141.35|43.07|1973|W|sapporo shi;sapporoshi,Sapucaia do Sul|rio grande do sul|BR|-51.15|-29.82|132|W|,Saqqez|kurdistan province|IR|46.27|36.25|165|W|saggiz;saghghez,Sarajevo|federation of b h|BA|18.36|43.85|696|W|sarajewo;saraybosna,Saransk|mordoviya republic|RU|45.17|54.18|318|W|,Sarasota|FL|US|-82.53|27.34|55|N|,Saratoga|CA|US|-122.02|37.26|30|N|,Saratoga Springs|NY|US|-73.78|43.08|27|N|saratoga spgs,Saratoga Springs|UT|US|-111.9|40.35|25|N|,Saratov|saratov oblast|RU|45.99|51.54|844|W|saratow,Sargodha|punjab|PK|72.67|32.09|975|W|,Sarh|moyen chari|TD|18.38|9.15|138|W|,Sari|mazandaran|IR|53.06|36.56|255|W|,Sariwon-si|north hwanghae|KP|125.76|38.51|310|W|sariwon,Sarnia|ON|CA|-82.4|42.98|72|N|,Sarria-Sant Gervasi|catalonia|ES|2.14|41.4|147|W|,Sasaram|bihar|IN|84.02|24.95|147|W|,Sasebo|nagasaki|JP|129.73|33.17|243|W|,Saskatoon|SK|CA|-106.67|52.13|266|NW|,Sasolburg|free state|ZA|27.82|-26.81|135|W|,Satna|madhya pradesh|IN|80.83|24.58|282|W|,Saugor|madhya pradesh|IN|78.74|23.84|274|W|,Saugus|MA|US|-71.01|42.46|26|N|,Sault Ste. Marie|ON|CA|-84.33|46.52|72|N|sault sainte marie,Saurimo|lunda sul|AO|20.39|-9.66|393|W|,Savage|MN|US|-93.34|44.78|30|N|,Savannah|GA|US|-81.1|32.08|147|NW|,Savar|dhaka division|BD|90.25|23.85|286|W|sabhar;savar upazila,Saveh|markazi|IR|50.36|35.02|220|W|,Sawangan|west java|ID|106.77|-6.4|197|W|,Sawtelle|CA|US|-118.45|34.04|39|N|,Sayama|saitama|JP|139.41|35.85|160|W|,Sayreville|NJ|US|-74.36|40.46|44|N|,Sayreville Junction|NJ|US|-74.33|40.47|42|N|,Sayula|MX14|MX|-103.6|19.88|26|N|,Schaerbeek|brussels capital|BE|4.38|50.87|132|W|schaarbeek;schaerbeek schaarbeek,Schaumburg|IL|US|-88.08|42.03|74|N|,Schenectady|NY|US|-73.94|42.81|65|N|,Schererville|IN|US|-87.45|41.48|28|N|,Schertz|TX|US|-98.27|29.55|43|N|,Scottsdale|AZ|US|-111.9|33.51|236|NW|,Scranton|PA|US|-75.66|41.41|77|N|,Seaside|CA|US|-121.85|36.61|33|N|,SeaTac|WA|US|-122.29|47.45|28|N|,Seattle|WA|US|-122.33|47.61|780|NW|,Sector 1|bucharest|RO|26.05|44.49|225|W|,Sector 2|bucharest|RO|26.13|44.45|290|W|,Sector 3|bucharest|RO|26.17|44.42|385|W|,Sector 4|bucharest|RO|26.12|44.38|287|W|,Sector 5|bucharest|RO|26.07|44.39|271|W|,Sector 6|bucharest|RO|26.02|44.44|367|W|,Secunderabad|telangana|IN|78.54|17.5|204|W|,Security-Widefield|CO|US|-104.71|38.75|32|N|,Seeb|muscat|OM|58.19|23.67|470|W|as sib;sib,Segou|segou|ML|-6.26|13.44|205|W|segu,Seguin|TX|US|-97.96|29.57|27|N|,Sejong|sejong si|KR|127.29|36.59|394|W|sedzong;yeongi,Sekondi|western|GH|-1.71|4.93|285|W|,Sekondi-Takoradi|western|GH|-1.76|4.93|138|W|sekondi,Selayang Baru Utara|selangor|MY|101.67|3.25|542|W|,Semarang|central java|ID|110.42|-6.99|1694|W|kota semarang,Semey|abai region|KZ|80.25|50.42|292|W|semei;semej;alash kala;semipalatinsk,Senador Canedo|goias|BR|-49.09|-16.71|175|W|,Sendai|miyagi|JP|140.87|38.27|1096|W|,Sengkang New Town||SG|103.89|1.39|267|W|sengkang,Sennar|sennar|SD|33.57|13.57|130|W|sannar;sinnar,Seogwipo|jeju do|KR|126.56|33.25|178|W|,Seongnam-si|gyeonggi do|KR|127.14|37.44|914|W|seongnam,Seoul|seoul|KR|126.98|37.57|10349|W|seoel;seoul si;seul;soul;hanyang,Sepang|selangor|MY|101.75|2.69|212|W|,Sept-Iles|QC|CA|-66.38|50.2|28|N|,Serang|banten|ID|106.15|-6.12|735|W|kabupaten serang,Serekunda|banjul|GM|-16.68|13.44|340|W|serrekunda,Seremban|negeri sembilan|MY|101.94|2.73|372|W|,Seri Kembangan|selangor|MY|101.72|3.03|130|W|,Serilingampalle|telangana|IN|78.3|17.49|150|W|,Serra|espirito santo|BR|-40.31|-20.13|520|W|,Setagaya|tokyo|JP|139.65|35.64|940|W|setagaya city,Setapak|selangor|MY|101.73|3.21|353|W|,Sete Lagoas|minas gerais|BR|-44.25|-19.47|238|W|,Setia Alam|selangor|MY|101.46|3.1|150|W|,Setif|setif|DZ|5.41|36.19|252|W|sathif;satif,Settat|casablanca settat|MA|-7.62|33|155|W|sattat,Sevastopol|sevastopol city|UA|33.52|44.61|547|W|akyar;sebastopol;sebastopoli;sewastopol;sivastopol,Severn|MD|US|-76.7|39.14|44|N|,Severna Park|MD|US|-76.55|39.07|37|N|,Severnyy|moscow|RU|37.55|55.94|200|W|,Severodvinsk|arkhangelskaya|RU|39.83|64.56|194|W|sewerodwinsk;siewierodwinsk,Sevilla|andalusia|ES|-5.97|37.38|686|W|seville;sevilha;sevilia;sewilla;siviglia,Sewell|NJ|US|-75.14|39.77|37|N|,Sfax|sfax governorate|TN|10.76|34.74|280|W|safakes;safakis,Sha Tin|sha tin|HK|114.18|22.38|495|W|shatin,Shagamu|ogun state|NG|3.65|6.85|214|W|sagamu,Shah Alam|selangor|MY|101.53|3.09|740|W|,Shahin Shahr|isfahan|IR|51.55|32.86|173|W|,Shahjanpur|uttar pradesh|IN|79.91|27.88|320|W|shahjahanpur,Shahkot|punjab|PK|73.49|31.57|244|W|,Shahreza|isfahan|IR|51.86|32.01|134|W|,Shahriar|tehran|IR|51.06|35.66|309|W|,Shahrisabz|qashqadaryo|UZ|66.83|39.06|142|W|chakhrisabz;sachrisabz;sjachrisabz;sehr i sebz;sachrizabz,Shahrud|semnan|IR|54.98|36.42|165|W|emamshahr,Shahuwadi|maharashtra|IN|73.95|16.91|180|W|,Shaker Heights|OH|US|-81.54|41.47|27|N|,Shakhty|rostov|RU|40.22|47.72|221|W|chakhty;schachty;shajty;sjachty;sjakhty;szachty;sahti;sachty;sahty,Shakopee|MN|US|-93.53|44.8|39|N|,Sham Shui Po|sham shui po district|HK|114.16|22.33|431|W|,Shanghai|shanghai|CN|121.46|31.22|24874|W|schanghai;shangai;sjanghai;szanghaj;xangai;sangay;sanghay;sanghaj,Shangluo|shaanxi|CN|109.93|33.87|531|W|,Shangqiu|henan|CN|115.66|34.41|1859|W|,Shangrao|jiangxi|CN|117.94|28.45|1116|W|sang zao,Shangri-La|yunnan|CN|99.71|27.83|186|W|,Shangyu|zhejiang|CN|120.87|30.02|770|W|,Shangzhi|heilongjiang|CN|128|45.21|131|W|,Shanhaiguan|hebei|CN|119.75|40|140|W|,Shantipur|west bengal|IN|88.43|23.25|149|W|,Shantou|guangdong|CN|116.68|23.35|3838|W|san tchou,Shanwei|guangdong|CN|115.35|22.78|491|W|san vi;san wej,Shaoguan|guangdong|CN|113.58|24.8|1028|W|sao kuan,Shaoxing|zhejiang|CN|120.58|30|2300|W|sao sing,Shaoyang|hunan|CN|111.46|27.24|753|W|sao jang,Sharjah|sharjah|AE|55.41|25.33|1800|W|sharjah city;charjah;sarja;schardscha;sharja;szardza;sarika;sardza,Shashamane|oromiya|ET|38.6|7.2|208|W|shashemene,Shawinigan|QC|CA|-72.75|46.57|38|N|,Shawnee|KS|US|-94.72|39.04|65|N|,Shawnee|OK|US|-96.93|35.33|31|N|,Sheboygan|WI|US|-87.71|43.75|48|N|,Sheepshead Bay|NY|US|-73.94|40.59|122|N|,Sheffield|england|GB|-1.47|53.38|556|W|,Shekhupura|punjab|PK|73.99|31.71|591|W|sekhupura,Shelby|MI|US|-83.03|42.67|74|N|,Shelton|CT|US|-73.09|41.32|41|N|,Shengavit|yerevan|AM|44.48|40.16|140|W|,Shenglilu|chongqing|CN|105.88|29.35|134|W|,Shenyang|liaoning|CN|123.43|41.79|7050|W|sen jang,Shenzhen|guangdong|CN|114.07|22.55|17494|W|sen cen,Sherbrooke|QC|CA|-71.9|45.4|129|N|,Sherman|TX|US|-96.61|33.64|40|N|,Sherman Oaks|CA|US|-118.45|34.15|52|N|,Sherwood|AR|US|-92.22|34.82|30|N|,Sherwood Park|AB|CA|-113.32|53.52|70|N|,Shevchenkivskyi|kyiv city|UA|30.47|50.46|220|W|,Shevchenko|poltava|UA|34.54|49.56|147|W|shevchenkivskyi rayon,Shibganj|rajshahi division|BD|89.32|25|378|W|,Shibin al Kawm|monufia|EG|31.01|30.55|267|W|,Shibuya|tokyo|JP|139.71|35.66|230|W|shibuya city,Shihezi|xinjiang|CN|86.04|44.3|572|W|,Shijiazhuang|hebei|CN|114.48|38.04|3938|W|s tia cuang,Shijie|guangdong|CN|113.79|23.1|246|W|,Shikarpur|sindh|PK|68.64|27.96|204|W|,Shillong|meghalaya|IN|91.88|25.57|143|W|,Shimla|himachal pradesh|IN|77.17|31.1|173|W|simla,Shimonoseki|yamaguchi|JP|130.94|33.96|265|W|simonoseki,Shimotoda|saitama|JP|139.69|35.81|140|W|,Shinagawa|ehime|JP|133.01|33.64|422|W|shinagawa city,Shinjuku|tokyo|JP|139.71|35.69|349|W|,Shinyanga|shinyanga|TZ|33.42|-3.66|139|W|,Shiqi|guangdong|CN|113.39|22.52|342|W|,Shiqiao|guangdong|CN|113.36|22.95|135|W|,Shiraz|fars|IR|52.53|29.61|1249|W|schiras;chiraz;sziraz;xiraz;siraz,Shirley|NY|US|-72.87|40.8|27|N|,Shivaji Nagar|maharashtra|IN|73.85|18.53|1000|W|,Shivamogga|karnataka|IN|75.57|13.93|322|W|shimoga,Shivpuri|madhya pradesh|IN|77.66|25.42|179|W|,Shiyan|hubei|CN|110.78|32.65|3460|W|s jen,Shizuishan|ningxia|CN|106.39|38.98|739|W|,Shizuoka|shizuoka|JP|138.38|34.98|693|W|sizuoka,Sholapur|maharashtra|IN|75.91|17.67|997|W|solapur,Shomolu|lagos|NG|3.37|6.54|154|W|,Shoreline|WA|US|-122.34|47.76|55|N|,Shoreview|MN|US|-93.15|45.08|26|N|,Shouguang|shandong|CN|118.74|36.88|473|W|,Shreveport|LA|US|-93.75|32.53|187|NW|,Shrewsbury|MA|US|-71.71|42.3|33|N|,Shrirampur|west bengal|IN|88.34|22.75|226|W|serampore,Shuangcheng|heilongjiang|CN|126.31|45.38|130|W|,Shuangyashan|heilongjiang|CN|131.13|46.68|600|W|song ap son;suang ja san,Shubra al Khaymah|qalyubia|EG|31.25|30.13|1240|W|,Shuizhai|guangdong|CN|115.76|23.93|140|W|,Shujaabad|punjab|PK|71.29|29.88|151|W|,Shulin|taipei|TW|121.42|24.99|180|W|shulin district;sulin,Shunan|yamaguchi|JP|131.83|34.08|149|W|,Shuozhou|shanxi|CN|112.42|39.32|433|W|,Shyamnagar|west bengal|IN|88.37|22.83|441|W|,Shymkent|shymkent|KZ|69.6|42.31|1200|W|chymkent;schymkent;sjymkent;szymkent;tsjimkent;cimkent;simkent;symkent,Si Racha|chon buri|TH|100.93|13.17|178|W|,Sialkot|punjab|PK|74.53|32.49|911|W|sijalkot,Sibiu|sibiu county|RO|24.15|45.8|134|W|hermannstadt;sybin;sibin,Sibu|sarawak|MY|111.82|2.3|198|W|,Sicklerville|NJ|US|-74.97|39.72|42|N|,Sidi Bel Abbes|sidi bel abbes|DZ|-0.63|35.19|210|W|sidi belabbas;sidi bilabbas;sidi bu l abbas,Sidoarjo|east java|ID|112.72|-7.45|139|W|,Sidon|south governorate|LB|35.37|33.56|163|W|saida;sayda;sidone;sydon,Siem Reap|siem reap|KH|103.86|13.36|139|W|ciudad de siem riep;khett siem reab;siem reab,Sierra Vista|AZ|US|-110.3|31.55|43|N|,Siguiri|kankan region|GN|-9.17|11.42|148|W|,Sikar|rajasthan|IN|75.14|27.61|244|W|,Sikasso|sikasso|ML|-5.67|11.32|349|W|,Silao de la Victoria|MX11|MX|-101.43|20.94|74|N|silao,Silchar|assam|IN|92.8|24.83|178|W|,Silifke|mersin|TR|33.93|36.38|132|W|,Siliguri|west bengal|IN|88.43|26.71|515|W|shiliguri,Silver Lake|CA|US|-118.27|34.09|32|N|,Silver Spring|MD|US|-77.03|38.99|71|N|,Simele|duhok|IQ|42.85|36.86|152|W|,Simferopol|crimea|UA|34.11|44.96|336|W|simferopoli;akmescit;sinferopoli;symferopol,Simi Valley|CA|US|-118.78|34.27|126|N|,Sincelejo|sucre department|CO|-75.39|9.3|277|W|,Sinch'on-up|south hwanghae|KP|125.48|38.35|141|W|,Sinfra|zanzan district|CI|-5.91|6.62|245|W|,Singa|sennar|SD|33.93|13.15|250|W|sindscha;sindza,Singapore||SG|103.85|1.29|5638|W|singapour;singapur;singapura;danmaxi;temasek,Singaraja|bali|ID|115.09|-8.11|133|W|,Singida|singida|TZ|34.74|-4.82|232|W|,Singkawang|west kalimantan|ID|108.98|0.91|253|W|,Singosari|east java|ID|112.67|-7.89|182|W|,Singrauli|madhya pradesh|IN|82.68|24.2|220|W|,Sinjhoro|sindh|PK|68.81|26.03|354|W|,Sinnuris|faiyum|EG|30.87|29.41|133|W|,Sinop|mato grosso|BR|-55.5|-11.86|223|W|,Sinp'o|south hamgyong|KP|128.19|40.04|152|W|,Sinuiju|p yongan bukto|KP|124.4|40.1|288|W|,Sioux City|IA|US|-96.4|42.5|82|N|kota sioux,Sioux Falls|SD|US|-96.73|43.54|171|NW|,Siping|jilin|CN|124.38|43.16|555|W|s pching;ssupingkai,Sirjan|kerman|IR|55.68|29.45|199|W|sircan;sirdschan;sirdzan,Sirsa|haryana|IN|75.03|29.53|182|W|,Sisli|istanbul|TR|28.99|41.06|314|W|,Sitapur|uttar pradesh|IN|80.68|27.56|164|W|,Sitiawan|perak|MY|100.7|4.22|156|W|,Sittwe|rakhine|MM|92.9|20.15|177|W|akyab,Situbondo|east java|ID|114.01|-7.71|685|W|,Sivakasi|tamil nadu|IN|77.8|9.45|234|W|,Sivas|sivas|TR|37.02|39.75|264|W|,Siverek|sanliurfa|TR|39.32|37.76|175|W|,Siwan|bihar|IN|84.36|26.22|135|W|,Skardu|gilgit baltistan|PK|75.63|35.3|260|W|,Skikda|skikda|DZ|6.91|36.88|182|W|sukaikida;sukajkida,Skokie|IL|US|-87.73|42.03|64|N|,Skopje|grad skopje|MK|21.43|42|474|W|escopia;uskup,Skudai|johor|MY|103.66|1.54|159|W|,Slidell|LA|US|-89.78|30.28|27|N|,Slough|england|GB|-0.6|51.51|164|W|,Smithtown|NY|US|-73.2|40.86|26|N|,Smolensk|smolensk oblast|RU|32.05|54.78|330|W|,Smyrna|GA|US|-84.51|33.88|56|N|,Smyrna|TN|US|-86.52|35.98|46|N|,Snowdon|QC|CA|-73.63|45.49|32|N|,Soacha|cundinamarca|CO|-74.22|4.58|655|W|,Sobral|ceara|BR|-40.35|-3.69|216|W|,Soc Trang|can tho city|VN|105.97|9.6|221|W|,Sochi|krasnodar krai|RU|39.72|43.6|327|W|sotsji;soci;soczi;sotchi;sotji;sotschi;sotsi,Socorro|TX|US|-106.3|31.65|33|N|,Socorro Mission Number 1 Colonia|TX|US|-106.29|31.64|28|N|,Sodo|south ethiopia regional state|ET|37.76|6.86|204|W|,Sofia|sofia capital|BG|23.32|42.7|1152|W|sofie;sofya,Sohag|sohag|EG|31.69|26.56|266|W|sauhadz;sevhac,Soka|saitama|JP|139.8|35.84|249|W|,Sokoto|sokoto|NG|5.24|13.06|1040|W|,Soledad|atlantico|CO|-74.76|10.92|342|W|,Soledad|CA|US|-121.33|36.42|25|N|solebad,Soledad de Graciano Sanchez|MX24|MX|-100.94|22.19|332|NW|,Solingen|north rhine westphalia|DE|7.08|51.17|164|W|,Sollentuna|stockholm|SE|17.95|59.43|139|W|,Solwezi|north western|ZM|26.39|-12.17|301|W|solwesi,Somerset West|western cape|ZA|18.82|-34.08|225|W|somerset wes,Somerton|PA|US|-75.01|40.12|33|N|,Somerville|MA|US|-71.1|42.39|80|N|,Son Tay|hanoi|VN|105.51|21.14|230|W|,Sonargaon|dhaka division|BD|90.62|23.65|130|W|,Songcheng|fujian|CN|120|26.88|165|W|,Songea|ruvuma|TZ|35.65|-10.68|286|W|,Songjiang|shanghai|CN|121.22|31.03|1973|W|,Songnim-ni|north hwanghae|KP|125.64|38.76|152|W|,Sonipat|haryana|IN|77.02|28.99|289|W|,Sorel-Tracy|QC|CA|-73.11|46.04|41|N|sorel,Sorocaba|sao paulo|BR|-47.46|-23.5|762|W|,Sorong|southwest papua|ID|131.26|-0.88|219|W|kota sorong,Sorsogon|bicol region|PH|123.99|12.97|187|W|,Soshanguve|gauteng|ZA|28.1|-25.47|872|W|,Sosnowiec|silesia|PL|19.1|50.29|227|W|sosnovec,Soubre|bas sassandra district|CI|-6.59|5.78|131|W|,Souk Ahras|souk ahras|DZ|7.95|36.29|153|W|souq ahras;suk aharas;suk ahras,Sousse|sousse governorate|TN|10.64|35.83|221|W|susa,South Bel Air|MD|US|-76.34|39.53|48|N|,South Bend|IN|US|-86.25|41.68|101|N|,South Boston|MA|US|-71.05|42.33|571|NW|,South Chicago|IL|US|-87.55|41.74|28|N|guney chicago,South Dublin|leinster|IE|-6.34|53.29|301|W|comte de dublin sud;condado de dublin sur;condado de south dublin;contea di south dublin;dublin poludniowy;dublin south;jizni dublin,South Fulton|GA|US|-84.67|33.59|107|N|,South Gate|CA|US|-118.21|33.95|96|N|,South Gate|MD|US|-76.63|39.13|29|N|,South Hill|WA|US|-122.27|47.14|52|N|,South Jordan|UT|US|-111.93|40.56|66|N|,South Jordan Heights|UT|US|-111.95|40.56|37|N|,South Kingstown|RI|US|-71.52|41.45|30|N|,South Laurel|MD|US|-76.85|39.07|26|N|,South Lawndale|IL|US|-87.71|41.84|73|N|,South Miami Heights|FL|US|-80.38|25.6|36|N|,South Ozone Park|NY|US|-73.82|40.67|75|N|,South Pasadena|CA|US|-118.15|34.12|26|N|,South Peabody|MA|US|-70.95|42.51|50|N|,South Portland|ME|US|-70.24|43.64|25|N|,South Riverdale|ON|CA|-79.34|43.65|27|N|,South San Francisco|CA|US|-122.41|37.65|67|N|,South Shore|IL|US|-87.58|41.76|51|N|,South Suffolk|VA|US|-76.59|36.72|80|N|,South Surrey|BC|CA|-122.79|49.05|77|N|,South Tangerang|banten|ID|106.72|-6.29|1429|W|tangerang selatan,South Valley|NM|US|-106.68|35.01|40|N|,South Vineland|NJ|US|-75.03|39.45|58|N|,South Whittier|CA|US|-118.04|33.95|57|N|,Southampton|england|GB|-1.4|50.9|269|W|,Southaven|MS|US|-90.01|34.99|52|N|southhaven,Southend-on-Sea|england|GB|0.71|51.54|295|W|,Southfield|MI|US|-83.22|42.47|73|N|,Southgate|MI|US|-83.19|42.21|29|N|,Southglenn|CO|US|-104.95|39.59|42|N|,Southington|CT|US|-72.88|41.6|43|N|,Southlake|TX|US|-97.13|32.94|29|N|,Soweto|gauteng|ZA|27.86|-26.27|1695|W|,Soyapango|san salvador department|SV|-89.14|13.71|329|W|,Soyo|zaire|AO|12.37|-6.13|221|W|,Spanaway|WA|US|-122.43|47.1|27|N|,Spanish Fork|UT|US|-111.65|40.11|37|N|,Spanish Town|saint catherine parish|JM|-76.96|17.99|145|W|,Sparks|NV|US|-119.75|39.53|96|N|,Spartanburg|SC|US|-81.93|34.95|37|N|,Split|split dalmatia|HR|16.44|43.51|149|W|spalato,Spokane|WA|US|-117.43|47.66|229|NW|,Spokane Valley|WA|US|-117.24|47.67|94|N|,Spring|TX|US|-95.42|30.08|54|N|,Spring Hill|FL|US|-82.53|28.48|98|N|,Spring Hill|TN|US|-86.93|35.75|36|N|,Spring Valley|NV|US|-115.25|36.11|178|NW|,Spring Valley|NY|US|-74.04|41.11|32|N|,Spring Valley|CA|US|-117|32.74|28|N|,Springdale|AR|US|-94.13|36.19|77|N|,Springfield|MO|US|-93.3|37.22|170|NW|,Springfield|MA|US|-72.59|42.1|154|NW|,Springfield|IL|US|-89.64|39.8|114|N|,Springfield|OR|US|-123.02|44.05|60|N|,Springfield|OH|US|-83.81|39.92|59|N|,Springfield|VA|US|-77.19|38.79|30|N|,Springfield Gardens|NY|US|-73.76|40.66|30|N|,Springs|gauteng|ZA|28.4|-26.25|186|W|,Springville|UT|US|-111.61|40.17|32|N|,Spruce Grove|AB|CA|-113.92|53.53|38|N|,Sri Ganganagar|rajasthan|IN|73.87|29.92|237|W|,Srikakulam|andhra pradesh|IN|83.9|18.3|137|W|,Srinagar|jammu and kashmir|IN|74.81|34.09|1206|W|,St. Albert|AB|CA|-113.64|53.63|57|N|saint albert,St. Catharines|ON|CA|-79.24|43.17|136|NW|sainte catharine,St. Charles|MD|US|-76.92|38.61|33|N|,St. Charles|IL|US|-88.31|41.91|32|N|,St Helens|england|GB|-2.73|53.45|183|W|,St. James-Assiniboia East|MB|CA|-97.23|49.89|27|N|,St. John's|NL|CA|-52.71|47.56|110|N|saint john s;saint jean de terre neuve;saint jean;san juan de terranova;st johns,St. Johns|FL|US|-81.55|30.08|40|N|,St. Louis|MO|US|-90.2|38.63|279|NW|saint louis;san luis,St. Petersburg|FL|US|-82.68|27.77|257|NW|saint pete;saint petersburg,St. Thomas|ON|CA|-81.18|42.77|38|N|saint thomas,Stamford|CT|US|-73.54|41.05|128|N|,Stanton|CA|US|-117.99|33.8|38|N|,Starkville|MS|US|-88.82|33.45|25|N|,Staryy Oskol|belgorod oblast|RU|37.85|51.3|226|W|stary oskol;staryi oskol,State College|PA|US|-77.86|40.79|42|N|,Staten Island|NY|US|-74.14|40.56|468|NW|borough of staten island,Statesboro|GA|US|-81.78|32.45|30|N|,Statesville|NC|US|-80.89|35.78|26|N|,Stavanger|rogaland|NO|5.73|58.97|151|W|,Stavropol|stavropol kray|RU|41.96|45.03|433|W|stawropol;stauropoli,Sterling|VA|US|-77.43|39.01|27|N|,Sterling Heights|MI|US|-83.03|42.58|132|NW|,Sterlitamak|bashkortostan republic|RU|55.95|53.64|267|W|starletamaq,Stevens Point|WI|US|-89.57|44.52|26|N|,Steveston|BC|CA|-123.18|49.13|25|N|,Stillwater|OK|US|-97.06|36.12|48|N|,Stittsville|ON|CA|-75.92|45.25|40|N|,Stockbridge|GA|US|-84.23|33.54|28|N|,Stockholm|stockholm|SE|18.07|59.33|1515|W|estocolmo;stoccolma;stokolm;sztokholm;tukholma,Stockport|england|GB|-2.16|53.41|139|W|,Stockton|CA|US|-121.29|37.96|305|NW|,Stoke-on-Trent|england|GB|-2.19|53|258|W|,Stonecrest|GA|US|-84.13|33.71|50|N|,Stonegate-Queensway|ON|CA|-79.5|43.64|25|N|,Stoney Creek|ON|CA|-79.77|43.22|76|N|,Stouffville|ON|CA|-79.25|43.97|36|N|,Stoughton|MA|US|-71.1|42.13|26|N|,Stow|OH|US|-81.44|41.16|34|N|,Strasbourg|grand est|FR|7.75|48.58|274|W|estrasburgo;straatsburg;strasburg;strasburgo;strazburg;strassburg;strasburk,Stratford|CT|US|-73.13|41.18|51|N|,Stratford|ON|CA|-80.95|43.37|31|N|,Strawberry Hill|BC|CA|-122.88|49.13|41|N|,Streamwood|IL|US|-88.18|42.03|40|N|,Strogino|moscow|RU|37.41|55.82|152|W|,Strongsville|OH|US|-81.84|41.31|44|N|,Studio City|CA|US|-118.4|34.15|34|N|,Stuttgart|baden wurttemberg|DE|9.18|48.78|612|W|estugarda;stoccarda,Subang|west java|ID|107.76|-6.57|137|W|,Subang Jaya|selangor|MY|101.58|3.04|708|W|,Sucre|chuquisaca department|BO|-65.26|-19.03|224|W|,Suez|suez|EG|32.53|29.97|699|W|sues;suveys,Suffolk|VA|US|-76.58|36.73|88|N|,Sugar Land|TX|US|-95.63|29.62|88|N|,Suginami|ibaraki|JP|140.28|36.2|588|W|suginami city,Suicheng|jiangsu|CN|117.93|33.9|256|W|,Suihua|heilongjiang|CN|126.97|46.65|252|W|suej chua;tuy hoa,Suining|sichuan|CN|105.57|30.51|656|W|suej ning,Suisun|CA|US|-122.04|38.24|28|N|,Suita|osaka|JP|135.52|34.76|385|W|,Suitland|MD|US|-76.92|38.85|25|N|,Suitland-Silver Hill|MD|US|-76.93|38.85|33|N|silver hill,Suizhou|hubei|CN|113.36|31.71|618|W|suej cou;tuy chau,Sujangarh|rajasthan|IN|74.47|27.7|183|W|,Sujiatun|liaoning|CN|123.34|41.66|148|W|,Sukabumi|west java|ID|106.93|-6.92|365|W|kota sukabumi,Sukkur|sindh|PK|68.86|27.7|563|W|,Sukrah|ariana governorate|TN|10.25|36.88|159|W|,Sulaymaniyah|sulaymaniyah|IQ|45.43|35.56|878|W|as sulajmanijja;slemani;solimania;souleimaniye;sulaimaniyya;sulaymaniyya;suleimania;suleimaniya;sulejmanie;suleymaniye,Suleja|niger state|NG|7.18|9.18|162|W|,Sullana|piura|PE|-80.69|-4.9|160|W|,Sultan Pur Majra|delhi|IN|77.08|28.69|181|W|,Sultanah|medina region|SA|39.59|24.49|946|W|,Sultanbeyli|istanbul|TR|29.27|40.96|358|W|,Sultangazi|istanbul|TR|28.87|41.11|436|W|,Sumare|sao paulo|BR|-47.27|-22.82|279|W|,Sumayl|duhok|IQ|42.85|36.86|152|W|,Sumbawanga|rukwa|TZ|31.62|-7.97|303|W|,Sumbe|kwanza sul|AO|13.84|-11.21|205|W|,Sumedang|west java|ID|107.92|-6.86|200|W|,Sumgayit|sumqayit|AZ|49.67|40.59|427|W|sumgait;sumgjajet;sumqayit,Sumida|tokyo|JP|139.82|35.73|287|W|sumida city,Summerville|SC|US|-80.18|33.02|48|N|,Sumter|SC|US|-80.34|33.92|40|N|,Sumy|sumy|UA|34.8|50.92|256|W|soemy;soumy;sumi,Sun City|AZ|US|-112.27|33.6|37|N|,Sun Prairie|WI|US|-89.21|43.18|32|N|,Sunch'on|south pyongan|KP|125.93|39.43|437|W|,Suncheon|jeollanam do|KR|127.49|34.95|276|W|sunch on,Sunderland|england|GB|-1.38|54.9|170|W|,Sungai Buloh|selangor|MY|101.56|3.21|222|W|,Sungai Petani|kedah|MY|100.49|5.65|544|W|,Sunggal|north sumatra|ID|98.62|3.58|157|W|,Sunnyside|NY|US|-73.94|40.74|49|N|,Sunnyvale|CA|US|-122.04|37.37|155|NW|,Sunrise|FL|US|-80.11|26.13|84|N|,Sunrise Manor|NV|US|-115.07|36.21|189|NW|,Sunset|BC|CA|-123.1|49.22|36|N|,Sunset Park|NY|US|-74.01|40.65|126|N|,Sunshine Coast|queensland|AU|153.08|-26.66|398|W|costa de sunshine;costa do sunshine;cote du soleil,Superior|WI|US|-92.1|46.72|26|N|,Suqian|jiangsu|CN|118.3|33.95|1437|W|,Surabaya|east java|ID|112.75|-7.25|3018|W|kota surabaya;soerabaja;surabaia;surabaja,Surakarta|central java|ID|110.83|-7.56|526|W|kota surakarta,Surat|gujarat|IN|72.83|21.2|4591|W|surate,Surat Thani|surat thani|TH|99.33|9.14|132|W|,Surendranagar|gujarat|IN|71.65|22.73|179|W|,Surgut|khanty mansia|RU|73.42|61.26|300|W|soergoet;sourgout,Surprise|AZ|US|-112.33|33.63|143|NW|,Surrey|BC|CA|-122.83|49.11|568|NW|,Surrey City Centre|BC|CA|-122.85|49.19|33|N|,Surulere|lagos|NG|3.36|6.5|191|W|,Sutton|england|GB|-0.2|51.35|187|W|london borough of sutton,Suwaylih|balqa|JO|35.84|32.02|151|W|,Suwon|gyeonggi do|KR|127.01|37.29|1234|W|suwon si,Suzano|sao paulo|BR|-46.31|-23.54|320|W|,Suzhou|jiangsu|CN|120.6|31.3|6715|W|su cou;to chau,Suzhou|anhui|CN|116.98|33.64|1647|W|,Suzuka|mie|JP|136.58|34.88|195|W|,Swansea|wales|GB|-3.94|51.62|300|W|,Swindon|england|GB|-1.78|51.56|201|W|,Sydney|new south wales|AU|151.21|-33.87|5638|W|sidney;syd;sydney city,Sydney|NS|CA|-60.18|46.14|105|N|,Sykhiv|lviv|UA|24.06|49.79|151|W|,Syktyvkar|komi|RU|50.82|61.66|245|W|syktywkar;siktivkar,Sylhet|sylhet division|BD|91.87|24.9|237|W|srihotto,Sylmar|CA|US|-118.45|34.31|79|N|,Syracuse|NY|US|-76.15|43.05|144|NW|siracusa,Syracuse|UT|US|-112.06|41.09|27|N|,Syzran|samara oblast|RU|48.47|53.16|189|W|sysran,Szczecin|west pomerania|PL|14.55|53.43|395|W|stettin;estetino;stettino;stetin,Szeged|csongrad|HU|20.15|46.25|160|W|seghedin;seghedino;szegedin;szeghed,Ta'if|mecca region|SA|40.42|21.27|688|W|at ta if;taif;taef,Taboao da Serra|sao paulo|BR|-46.79|-23.63|273|W|,Tabora|tabora|TZ|32.83|-5.02|308|W|,Tabriz|east azerbaijan|IR|46.29|38.08|1424|W|tebriz;tabris,Tabuk|tabuk region|SA|36.57|28.4|667|W|tebuk,Tacambaro de Codallos|MX16|MX|-101.46|19.24|25|N|,Tacheng|xinjiang|CN|82.96|46.75|161|W|,Tachikawa|tokyo|JP|139.42|35.71|183|W|,Tacloban|eastern visayas|PH|125|11.24|259|W|kota tacloban;tacloban city,Tacna|tacna|PE|-70.25|-18.01|286|W|,Tacoma|WA|US|-122.44|47.25|222|NW|,Taganrog|rostov|RU|38.91|47.24|279|W|,Taguatinga|federal district|BR|-48.06|-15.83|193|W|,Taguig|national capital region|PH|121.08|14.52|1308|W|city of taguig,Tahoua|tahoua region|NE|5.27|14.89|159|W|,Tahta|sohag|EG|31.5|26.77|134|W|,Tai'an|shandong|CN|117.12|36.19|1735|W|,Tai Po|tai po|HK|114.17|22.45|274|W|,Taicang|jiangsu|CN|121.09|31.45|831|W|,Taichung|taiwan|TW|120.68|24.15|2850|W|kota taichung;taizhong;tchaj cung;dai trung,Tainan|taiwan|TW|120.21|22.99|1856|W|kota tainan;tainan city;tchaj nan;dai nam,Taipei|taiwan|TW|121.53|25.05|7871|W|kota taipei;taipeh;taipe;tajpej;tchaj pej,Taiping|perak|MY|100.73|4.85|217|W|,Taishan|guangdong|CN|112.78|22.25|145|W|dai son,Taito|tokyo|JP|139.78|35.71|211|W|taito city,Taiyuan|shanxi|CN|112.56|37.87|4303|W|tchaj juan;thai nguyen,Taiz|ta izz|YE|44.02|13.58|940|W|taez,Taizhou|jiangsu|CN|119.91|32.49|1607|W|tchaj cou;thai chau,Taizhou|zhejiang|CN|121.43|28.66|1485|W|tchaj cou;thai chau,Takamatsu|kagawa|JP|134.05|34.33|418|W|takamacu;takamatsu shi;takamatsushi,Takaoka|toyama|JP|137.02|36.75|170|W|,Takarazuka|hyogo|JP|135.36|34.8|226|W|,Takasaki|gunma|JP|139.02|36.33|372|W|,Takatsuki|osaka|JP|135.62|34.85|354|W|,Takeo|takeo|KH|104.78|10.99|843|W|,Takoradi|western|GH|-1.76|4.9|389|W|takoradze,Tala|MX14|MX|-103.7|20.65|35|N|,Talatona|luanda|AO|13.19|-8.92|500|W|,Talca|maule region|CL|-71.65|-35.42|197|W|,Talcahuano|biobio|CL|-73.12|-36.72|150|W|,Talhar|sindh|PK|68.81|24.88|200|W|,Talisay|central visayas|PH|123.85|10.24|133|W|talisay city,Tallahassee|FL|US|-84.28|30.44|201|NW|,Tallinn|harjumaa|EE|24.75|59.44|394|W|tallinna;talin;tallin;lindanas;reval;revel;raaveli,Tam Ky|da nang city|VN|108.47|15.57|165|W|,Tam O'Shanter-Sullivan|ON|CA|-79.3|43.78|27|N|,Tama|tokyo|JP|139.47|35.64|148|W|,Tamale|northern|GH|-0.84|9.4|464|W|,Taman Petaling|kuala lumpur|MY|101.65|3.2|423|W|,Tamarac|FL|US|-80.25|26.21|64|N|,Tambacounda|tambacounda|SN|-13.67|13.77|149|W|,Tambaram|tamil nadu|IN|80.13|12.92|174|W|,Tambov|tambov oblast|RU|41.44|52.74|293|W|tambow,Tamiami|FL|US|-80.4|25.76|55|N|,Tampa|FL|US|-82.46|27.95|414|NW|,Tampere|pirkanmaa|FI|23.79|61.5|260|W|tammerfors,Tampico|MX28|MX|-97.88|22.29|309|NW|,Tampines Estate||SG|103.94|1.36|265|W|tampines,Tampines New Town||SG|103.95|1.35|259|W|,Tan An|tay ninh|VN|106.41|10.54|215|W|,Tan Chau|an giang|VN|105.24|10.8|175|W|,Tando Adam|sindh|PK|68.66|25.77|174|W|,Tando Allahyar|sindh|PK|68.72|25.46|421|W|,Tando Bago|sindh|PK|68.97|24.79|426|W|,Tanga|tanga|TZ|39.1|-5.07|393|W|,Tangail|dhaka division|BD|89.92|24.25|180|W|,Tangerang|banten|ID|106.63|-6.18|1927|W|kota tangerang,Tanggu|tianjin|CN|117.65|39.02|535|W|taku,Tanghe|henan|CN|112.83|32.69|278|W|,Tangier|tanger tetouan al hoceima|MA|-5.8|35.77|1035|W|tanger;tanca;tangeri,Tangshan|hebei|CN|118.18|39.64|3372|W|tchang san,Tanjung Pinang|riau islands|ID|104.46|0.92|227|W|kota tanjungpinang,Tanjungbalai|north sumatra|ID|99.8|2.97|190|W|,Tanta|gharbia|EG|31|30.79|576|W|,Tantou|guangdong|CN|113.83|22.75|320|W|,Tantoyuca|MX30|MX|-98.23|21.35|30|N|,Tanzhou|guangdong|CN|113.47|22.26|382|W|,Taoyuan|taiwan|TW|121.3|24.99|475|W|taoyuan district;dao vien;taoyuan city,Taozhou|anhui|CN|119.41|30.91|146|W|,Tapachula|MX05|MX|-92.26|14.91|353|NW|,Tarakan|north kalimantan|ID|117.59|3.31|255|W|kota tarakan,Taranto|apulia|IT|17.25|40.46|198|W|tarde;tarent;tarente;tarento,Taraz|zhambyl|KZ|71.37|42.9|358|W|taras,Targu Mures|mures county|RO|24.56|46.54|212|W|neumarkt am mieresch;neumarkt;tirgu mures,Tariba|tachira|VE|-72.22|7.82|138|W|,Tarija|tarija department|BO|-64.73|-21.54|159|W|,Tarime|mara|TZ|34.37|-1.35|133|W|,Tarlac City|central luzon|PH|120.6|15.48|401|W|,Tarragona|catalonia|ES|1.25|41.12|141|W|tarragone,Tarsus|mersin|TR|34.89|36.92|350|W|tars;tarse;tarso,Tartus|tartus|SY|35.89|34.89|458|W|tartous,Tasek Glugor|penang|MY|100.5|5.48|135|W|tasek gelugor,Tashkent|tashkent|UZ|69.22|41.26|1978|W|tachkent;taschkent;tasjkent;taskent;taszkent,Tasikmalaya|west java|ID|108.22|-7.33|770|W|kota tasikmalaya,Taubate|sao paulo|BR|-45.56|-23.03|322|W|,Taunggyi|shan state|MM|97.04|20.79|160|W|,Taunton|MA|US|-71.09|41.9|56|N|,Tauranga|bay of plenty|NZ|176.17|-37.69|161|W|,Tawau|sabah|MY|117.89|4.24|372|W|tawao,Taxco de Alarcon|MX12|MX|-99.61|18.55|50|N|taxco,Tay Ho|hanoi|VN|105.81|21.07|168|W|,Tay Ninh|tay ninh|VN|106.1|11.31|135|W|,Taylor|MI|US|-83.27|42.24|61|N|,Taylorsville|UT|US|-111.94|40.67|60|N|,Taytay|calabarzon|PH|121.13|14.56|231|W|,Taza|fes meknes|MA|-4.01|34.21|162|W|,Tbilisi|tbilisi|GE|44.83|41.69|1049|W|tbilissi;tiblissi;tiflis,Teaneck|NJ|US|-74.02|40.9|40|N|,Teapa|MX27|MX|-92.95|17.56|26|N|,Tebessa|tebessa|DZ|8.12|35.4|194|W|tibissa,Tecamachalco|MX21|MX|-97.73|18.88|28|N|,Tecate|MX02|MX|-116.63|32.57|64|N|,Tecax|MX31|MX|-89.29|20.21|25|N|tekax,Tecoman|MX08|MX|-103.88|18.92|85|N|,Tegal|central java|ID|109.14|-6.87|297|W|kota tegal,Tegucigalpa|francisco morazan department|HN|-87.21|14.08|850|W|,Tehran|tehran|IR|51.42|35.69|7153|W|tahran;teera;teerao;teheran,Tehuacan|MX21|MX|-97.4|18.46|248|NW|,Teixeira de Freitas|bahia|BR|-39.74|-17.54|145|W|,Tejupilco de Hidalgo|MX15|MX|-100.15|18.9|25|N|,Tel Aviv|tel aviv|IL|34.78|32.08|432|W|tel aviv yaffo;tel aviv yafo;tel awiw,Telford|england|GB|-2.45|52.68|155|W|,Teluk Intan|perak|MY|101.02|4.02|232|W|teluk anson,Teluknaga|west java|ID|106.64|-6.1|175|W|,Tema|greater accra|GH|-0.02|5.67|155|W|,Temara|rabat sale kenitra|MA|-6.91|33.93|342|W|,Temecula|CA|US|-117.15|33.49|110|N|,Temirtau|karaganda|KZ|72.95|50.05|170|W|temirtaou;temirtaw;temyrtau,Temixco|MX17|MX|-99.23|18.85|97|N|,Tempe|AZ|US|-111.91|33.41|175|NW|,Tempe Junction|AZ|US|-111.94|33.41|158|NW|,Temple|TX|US|-97.34|31.1|72|N|,Temple City|CA|US|-118.06|34.11|36|N|,Temple Terrace|FL|US|-82.39|28.04|25|N|,Temuco|araucania|CL|-72.6|-38.74|238|W|,Teni|tamil nadu|IN|77.48|10.01|1034|W|theni,Tenosique|MX27|MX|-91.42|17.47|32|N|,Teofilo Otoni|minas gerais|BR|-41.51|-17.86|142|W|,Teoloyucan|MX15|MX|-99.18|19.74|51|N|,Tepatitlan de Morelos|MX14|MX|-102.76|20.82|91|N|,Tepeaca|MX21|MX|-97.9|18.97|27|N|tepeaca de negrete,Tepeji del Rio de Ocampo|MX13|MX|-99.34|19.9|80|N|,Tepexpan|MX15|MX|-98.94|19.61|102|N|,Tepic|MX18|MX|-104.89|21.51|332|NW|,Tepotzotlan|MX15|MX|-99.22|19.72|38|N|,Tequila|MX14|MX|-103.84|20.88|29|N|municipio tequila,Tequisquiapan|MX22|MX|-99.89|20.52|29|N|,Teresina|piaui|BR|-42.8|-5.09|871|W|,Teresopolis|rio de janeiro|BR|-42.98|-22.42|176|W|,Ternate|north maluku|ID|127.38|0.79|210|W|kota ternate,Ternopil|ternopil|UA|25.59|49.55|225|W|tarnopol;tarnopoli,Terrassa|catalonia|ES|2.02|41.57|218|W|,Terre Haute|IN|US|-87.41|39.47|60|N|,Terrebonne|QC|CA|-73.65|45.7|111|N|,Teshi Old Town|greater accra|GH|-0.11|5.58|144|W|teshie,Tete|tete|MZ|33.59|-16.16|357|W|vila de santiago maior,Tetouan|tanger tetouan al hoceima|MA|-5.37|35.58|415|W|tetuan;tetuao,Tetuan de las Victorias|madrid|ES|-3.7|40.46|155|W|tetuan,Tewksbury|MA|US|-71.23|42.61|29|N|,Texarkana|TX|US|-94.05|33.43|37|N|,Texarkana|AR|US|-94.04|33.44|30|N|,Texas City|TX|US|-94.9|29.38|47|N|,Texcoco de Mora|MX15|MX|-98.88|19.51|105|N|texcoco,Teziutlan|MX21|MX|-97.36|19.82|103|N|,Thai Nguyen|thai nguyen|VN|105.85|21.59|420|W|,Thane|maharashtra|IN|72.96|19.2|1841|W|thana,Thanesar|haryana|IN|76.83|29.97|155|W|,Thanh Hoa|thanh hoa province|VN|105.77|19.8|850|W|,Thanh Khe|da nang city|VN|108.19|16.07|201|W|,Thanh Pho Ba Ria|ho chi minh city hcmc|VN|107.17|10.5|235|W|,Thanh Xuan|hanoi|VN|105.8|20.99|293|W|,Thanjavur|tamil nadu|IN|79.14|10.79|291|W|tanjavur;tandzawur;tancavur,The Acreage|FL|US|-80.27|26.79|38|N|,The Bronx|NY|US|-73.87|40.85|1385|NW|bronx;borough of bronx,The Colony|TX|US|-96.89|33.09|41|N|,The Hague|south holland|NL|4.3|52.08|474|W|den haag;a haia;haag;haga;l aia;la haya;la haye;lahey;s gravenhage,The Hammocks|FL|US|-80.44|25.67|51|N|,The Trails of Frisco|TX|US|-96.87|33.16|51|N|,The Villages|FL|US|-81.96|28.93|51|N|,The Woodlands|TX|US|-95.49|30.16|93|N|woodlands,Thembisa|gauteng|ZA|28.23|-26|511|W|,Thenali|andhra pradesh|IN|80.64|16.24|164|W|,Thessaloniki|central macedonia|GR|22.93|40.64|317|W|salonica;ftohomana;salonic;salonicco;saloniki;selanik;solun;tesalonica;thessalonique,Thetford-Mines|QC|CA|-71.31|46.09|25|N|,Thi Tran GJai Tu|thai nguyen|VN|105.64|21.63|179|W|,Thi Tran GJong Trieu|quang ninh|VN|106.51|21.08|248|W|,Thi Tran Thuan Chau|son la province|VN|103.69|21.44|153|W|,Thies|thies|SN|-16.93|14.79|317|W|,Thies Nones|thies|SN|-16.97|14.78|252|W|,Thika|nairobi county|KE|37.07|-1.03|251|W|,Thiruvananthapuram|kerala|IN|76.95|8.49|788|W|tiruvanantapuram;trivandrum,Thomasville|NC|US|-80.08|35.88|27|N|,Thoothukudi|tamil nadu|IN|78.13|8.77|410|W|thoothukkudi;tuticorin,Thornton|CO|US|-104.97|39.87|133|NW|,Thot Not|can tho city|VN|105.53|10.27|158|W|,Thousand Oaks|CA|US|-118.84|34.17|129|N|,Thrissur|kerala|IN|76.22|10.52|315|W|trichur,Throgs Neck|NY|US|-73.82|40.82|33|N|,Thu Dau Mot|ho chi minh city hcmc|VN|106.65|10.98|373|W|,Thu GJuc|ho chi minh city hcmc|VN|106.77|10.85|524|W|,Thuan An|ho chi minh city hcmc|VN|106.71|10.92|588|W|,Thuan Thanh|bac ninh|VN|106.08|21.05|199|W|,Thunder Bay|ON|CA|-89.25|48.38|108|N|,Thuqbah|eastern province|SA|50.2|26.26|248|W|,Tianjin|tianjin|CN|117.18|39.14|11090|W|tchien tin;thien tan;tiencin;tientsin,Tianshui|gansu|CN|105.74|34.58|1212|W|,Tiaret|tiaret|DZ|1.32|35.37|178|W|tijarat,Ticul|MX31|MX|-89.53|20.4|32|N|,Tieling|liaoning|CN|123.84|42.29|333|W|,Tierra Blanca|MX30|MX|-96.36|18.45|47|N|,Tigard|OR|US|-122.77|45.43|51|N|,Tijuana|MX02|MX|-117|32.5|1922|NW|,Tilburg|north brabant|NL|5.09|51.56|221|W|tilburgo,Timika|central papua|ID|136.68|-4.61|142|W|,Timisoara|timis county|RO|21.23|45.75|250|W|temeswar;freidorf;josephs stadt;temeschburg;temeschwar;temesvar,Timmins|ON|CA|-81.33|48.47|41|N|,Timon|maranhao|BR|-42.84|-5.09|174|W|,Tin Shui Wai|yuen long|HK|114|22.46|286|W|,Tinh Bien|an giang|VN|104.94|10.6|143|W|,Tinley Park|IL|US|-87.78|41.57|57|N|,Tirana|tirana|AL|19.82|41.33|418|W|tiran,Tiraspol|transnistria|MD|29.63|46.84|157|W|tiraspoli;tyraspol,Tirmiz|surxondaryo region|UZ|67.28|37.22|182|W|termez;termiz,Tiruchirappalli|tamil nadu|IN|78.7|10.82|1022|W|tiruchchirappalli;tiruchirapalli;tiruccirappalli;tiruchi;trichinopoly;trichy,Tirunelveli|tamil nadu|IN|77.68|8.73|1435|W|tirunelweli,Tirupati|andhra pradesh|IN|79.42|13.64|295|W|tirumala tirupati,Tiruppur|tamil nadu|IN|77.35|11.12|963|W|tirupur,Tiruvannamalai|tamil nadu|IN|79.07|12.23|145|W|,Tiruvottiyur|tamil nadu|IN|80.3|13.16|249|W|,Titusville|FL|US|-80.81|28.61|45|N|,Tizayuca|MX13|MX|-98.98|19.84|43|N|,Tizimin|MX31|MX|-88.15|21.14|46|N|,Tlahuac|MX09|MX|-99.01|19.29|305|NW|delegacion tlahuac,Tlajomulco de Zuniga|MX14|MX|-103.45|20.47|30|N|,Tlalnepantla|MX15|MX|-99.2|19.54|653|NW|tlalnepantla de baz;tlanepantla de baz,Tlalpan|MX09|MX|-99.16|19.3|574|NW|delegacion tlalpan,Tlapa de Comonfort|MX12|MX|-98.58|17.55|46|N|,Tlapacoyan|MX30|MX|-97.21|19.96|35|N|,Tlaquepaque|MX14|MX|-103.29|20.64|650|NW|san pedro tlaquepaque,Tlaxcala|MX29|MX|-98.24|19.32|84|N|tlaxcala city;tlaxcala de xicotencatl,Tlemcen|tlemcen|DZ|-1.31|34.88|173|W|tilimsan;tremecen,Toamasina|atsinanana|MG|49.4|-18.15|345|W|tamatave,Tobruk|al butnan|LY|23.95|32.09|141|W|thubruq;tobroek;tobrouk;tobruch,Tochigi|tochigi|JP|139.73|36.38|159|W|,Tokch'on|south pyongan|KP|126.26|39.75|237|W|,Tokorozawa|saitama|JP|139.47|35.8|344|W|,Tokushima|tokushima|JP|134.57|34.07|267|W|tokusima,Tokyo|tokyo|JP|139.69|35.69|9733|W|tokio;toquio;edo,Toledo|OH|US|-83.56|41.66|265|NW|,Toledo|central visayas|PH|123.64|10.38|206|W|toledo city,Toledo|parana|BR|-53.74|-24.71|160|W|,Toli-Toli|central sulawesi|ID|120.82|1.04|242|W|tolitoli,Toliara|atsimo andrefana|MG|43.67|-23.35|178|W|tulear,Toluca|MX15|MX|-99.65|19.29|489|NW|toluca de lerdo,Tolyatti|samara oblast|RU|49.35|53.53|702|W|togliatti;togliattigrad;tol yatti;toliatti;toljatti;stavropol,Tomakomai|hokkaido|JP|141.6|42.64|174|W|,Toms River|NJ|US|-74.2|39.95|88|N|,Tomsk|tomsk oblast|RU|84.98|56.5|574|W|,Tonala|MX14|MX|-103.24|20.62|408|NW|,Tonala|MX05|MX|-93.75|16.09|35|N|,Tondabayashicho|osaka|JP|135.6|34.5|132|W|tondabayashi,Tongchuan|shaanxi|CN|108.95|34.9|417|W|,Tongchuanshi|shaanxi|CN|109.08|35.07|223|W|tchung cchuan,Tonghua|jilin|CN|125.93|41.72|510|W|tchung chua;thong hoa,Tongliao|inner mongolia|CN|122.27|43.61|261|W|thong lieu,Tongling|anhui|CN|117.78|30.95|402|W|,Tongshan|jiangsu|CN|117.16|34.18|329|W|xuzhou,Tongzhou|beijing|CN|116.66|39.9|163|W|,Tonk|rajasthan|IN|75.79|26.17|165|W|,Tooele|UT|US|-112.3|40.53|33|N|,Toowoomba|queensland|AU|151.95|-27.56|142|W|,Topeka|KS|US|-95.68|39.05|125|N|,Torbat-e Heydariyeh|razavi khorasan|IR|59.22|35.27|140|W|,Tordher|khyber pakhtunkhwa|PK|72.29|33.99|150|W|,Toronto|ON|CA|-79.4|43.71|2794|NW|,Torrance|CA|US|-118.34|33.84|143|NW|,Torreon|MX07|MX|-103.42|25.54|735|NW|,Torrington|CT|US|-73.12|41.8|34|N|,Torun|kujawsko pomorskie|PL|18.6|53.01|196|W|thorn,Toshima|tokyo|JP|139.74|35.76|301|W|toshima city,Tottenham|england|GB|-0.07|51.6|130|W|,Tottori-shi|tottori|JP|134.23|35.5|188|W|,Touba|diourbel region|SN|-15.88|14.86|1120|W|,Touggourt|touggourt|DZ|6.07|33.11|143|W|tukkurt,Toulon|provence alpes cote d azur|FR|5.93|43.12|168|W|tolone;tolon;tulon,Toulouse|occitanie|FR|1.44|43.6|511|W|tolosa;tolosa de francia;tuluza,Tours|centre val de loire|FR|0.7|47.39|141|W|,Town 'n' Country|FL|US|-82.58|28.01|78|N|,Townsville|queensland|AU|146.81|-19.27|201|W|,Towson|MD|US|-76.6|39.4|55|N|,Toyama|toyama|JP|137.22|36.7|415|W|toyama shi;toyamashi,Toyohashi|aichi|JP|137.38|34.77|377|W|toyohashi shi,Toyokawa|aichi|JP|137.4|34.82|184|W|,Toyonaka|osaka|JP|135.47|34.78|401|W|,Toyota|aichi|JP|137.15|35.08|426|W|tojota,Tra Vinh|vinh long|VN|106.34|9.95|160|W|thanh pho tra vinh,Trabzon|trabzon|TR|39.73|41.01|244|W|trapisonda;trebisonda;trebizonda,Tracy|CA|US|-121.43|37.74|87|N|,Trang Bang|tay ninh|VN|106.36|11.03|161|W|,Trenton|NJ|US|-74.74|40.22|89|N|,Tres Lagoas|mato grosso do sul|BR|-51.7|-20.79|143|W|,Tri-Cities|WA|US|-119.2|46.25|244|NW|,Trieste|friuli venezia giulia|IT|13.78|45.65|204|W|terst;triest,Trindade|goias|BR|-49.49|-16.65|142|W|,Tripoli|tripoli|LY|13.19|32.89|1302|W|trablus;tripolis;trypolis,Tripoli|north lebanon|LB|35.84|34.43|229|W|trablussam;tripolis;trypolis,Trois-Rivieres|QC|CA|-72.55|46.35|144|NW|,Trondheim|trondelag|NO|10.4|63.43|216|W|,Troy|MI|US|-83.15|42.61|83|N|,Troy|NY|US|-73.69|42.73|49|N|,Troy|OH|US|-84.2|40.04|25|N|,Trujillo|la libertad|PE|-79.03|-8.12|1067|W|,Trumbull|CT|US|-73.2|41.24|36|N|,Tsentralnyi|donetsk|UA|37.55|47.1|179|W|tsentralnyi rayon;molotovskyi;molotovskyi rayon;zhovtnevyi;zhovtnevyi rayon,Tseung Kwan O|sai kung district|HK|114.25|22.33|412|W|,Tshikapa|kasai|CD|20.8|-6.42|634|W|,Tsing Yi Town|kwai tsing district|HK|114.1|22.35|182|W|tsing yi,Tsu|mie|JP|136.52|34.73|274|W|,Tsuchiura|ibaraki|JP|140.21|36.09|144|W|,Tsuen Wan|tsuen wan|HK|114.11|22.37|318|W|,Tsukuba|ibaraki|JP|140.12|36.08|241|W|cukuba,Tualatin|OR|US|-122.76|45.38|27|N|,Tuckahoe|VA|US|-77.56|37.59|44|N|,Tucker|GA|US|-84.22|33.85|27|N|,Tucson|AZ|US|-110.93|32.22|542|NW|,Tuen Mun|tuen mun|HK|113.97|22.39|507|W|tuenmen,Tuerkmenabat|lebap|TM|63.58|39.07|230|W|turkmenabat;charjou,Tuguegarao|cagayan valley|PH|121.72|17.62|167|W|tuguegarao city;tuguegaro,Tujunga|CA|US|-118.29|34.25|26|N|,Tula|tula oblast|RU|37.62|54.2|482|W|toela;toula,Tula de Allende|MX13|MX|-99.34|20.05|28|N|,Tulancingo|MX13|MX|-98.36|20.08|102|N|tulancingo de bravo,Tulare|CA|US|-119.35|36.21|62|N|,Tulsa|OK|US|-95.99|36.15|413|NW|,Tultepec|MX15|MX|-99.13|19.68|65|N|,Tultitlan de Mariano Escobedo|MX15|MX|-99.17|19.65|28|N|,Tulua|valle del cauca department|CO|-76.2|4.08|221|W|,Tumkur|karnataka|IN|77.1|13.34|307|W|tumakuru,Tumxuk|xinjiang|CN|79.06|39.87|135|W|tumushuke,Tunduma|songwe|TZ|32.77|-9.3|219|W|,Tungi|dhaka division|BD|90.4|23.89|337|W|tongi,Tunis|tunis governorate|TN|10.17|36.82|693|W|tunez;tunes;tunisi;tunus,Tunja|boyaca|CO|-73.36|5.54|172|W|,Tuong Mai|hanoi|VN|105.86|20.99|136|W|,Tupelo|MS|US|-88.7|34.26|35|N|,Turin|piedmont|IT|7.69|45.07|847|W|torino;turijn;turim;turyn,Turkistan|turkistan|KZ|68.26|43.29|227|W|turkestan;turquistao,Turku|southwest finland|FI|22.27|60.45|206|W|abo,Turlock|CA|US|-120.85|37.49|72|N|,Turmero|aragua|VE|-67.47|10.23|344|W|,Turpan|xinjiang|CN|89.18|42.95|273|W|tourfan;turfan,Tuscaloosa|AL|US|-87.57|33.21|111|N|,Tustin|CA|US|-117.83|33.75|80|N|,Tuxpam de Rodriguez Cano|MX30|MX|-97.41|20.96|84|N|tuxpam,Tuxpan|MX14|MX|-103.38|19.56|27|N|,Tuxtepec|MX20|MX|-96.13|18.09|159|NW|san juan bautista;san juan bautista tuxtla,Tuxtla|MX05|MX|-93.12|16.75|604|NW|tuxtla gtz;tuxtla gutierrez,Tuy Hoa|dak lak|VN|109.32|13.1|155|W|,Tuzla|federation of b h|BA|18.67|44.54|142|W|,Tver|tver oblast|RU|35.9|56.86|420|W|twer;kalinin,Twentynine Palms|CA|US|-116.05|34.14|26|N|,Twin Falls|ID|US|-114.46|42.56|47|N|,Tychy|silesia|PL|18.97|50.14|130|W|tichau,Tyler|TX|US|-95.3|32.35|103|N|,Tyre|south governorate|LB|35.19|33.27|135|W|sur;tiro;tyr;tyros;tyrus,Tyumen|tyumen oblast|RU|65.53|57.15|768|W|tioumen;tjumen;tiumen;tjoemen;tumen,Ube|yamaguchi|JP|131.25|33.94|173|W|,Uberaba|minas gerais|BR|-47.93|-19.75|356|W|,Uberlandia|minas gerais|BR|-48.28|-18.92|754|W|,Udaipur|rajasthan|IN|73.71|24.59|451|W|udajpur,Udon Thani|udon thani|TH|102.79|17.42|130|W|,Udupi|karnataka|IN|74.75|13.33|165|W|,Ueda|nagano|JP|138.28|36.4|157|W|,UEruemqi|xinjiang|CN|87.6|43.8|3029|W|urumqi;urumchi;urumczi;urumtschi;urumci;dihua,UEskuedar|istanbul|TR|29.01|41.02|524|W|uskudar;scutari;skutari,Ufa|bashkortostan republic|RU|55.97|54.74|1120|W|oefa;oufa,Ugep|cross river state|NG|8.08|5.81|200|W|,Uige|uige|AO|15.06|-7.61|322|W|,Uijeongbu-si|gyeonggi do|KR|127.05|37.74|479|W|uijeongbu,Uji|kyoto|JP|135.8|34.89|192|W|udzi,Ujjain|madhya pradesh|IN|75.78|23.18|515|W|udzdzain,Ulan Bator|ulaanbaatar|MN|106.88|47.91|844|W|ulaanbaatar;oulan bator;ulaan baatar;ulan batur;ulanbatar;ula bator,Ulan-Ude|buryatiya republic|RU|107.6|51.83|360|W|oelan oede;oulan oude,Ulanhot|inner mongolia|CN|122.08|46.08|165|W|,Ulanqab|inner mongolia|CN|113.13|40.99|550|W|,Ulhasnagar|maharashtra|IN|73.15|19.22|516|W|,Ulsan|ulsan|KR|129.32|35.54|1098|W|ulsan si,Ulu Bedok||SG|103.93|1.33|276|W|,Uluberiya|west bengal|IN|88.1|22.48|235|W|,Ulyanovsk|ulyanovsk|RU|48.39|54.33|626|W|oulianovsk;uljanowsk;oeljanovsk;ul janovsk;ulianovsk;uljanovsk,Uman|MX31|MX|-89.75|20.88|39|N|,Umarkot|sindh|PK|69.74|25.36|144|W|,Umea|vasterbotten|SE|20.26|63.83|130|W|uumaja,Umraniye|istanbul|TR|29.12|41.02|573|W|,Umuahia|abia state|NG|7.49|5.52|370|W|,Unaizah|al qassim region|SA|44|26.1|183|W|,Ungaran|central java|ID|110.41|-7.14|171|W|,Union|NJ|US|-74.26|40.7|56|N|,Union City|CA|US|-122.02|37.6|74|N|,Union City|NJ|US|-74.02|40.78|69|N|east cost cities,Universal City|CA|US|-118.35|34.14|105|N|,University|FL|US|-82.44|28.07|41|N|,University City|MO|US|-90.31|38.66|35|N|,University Heights|SK|CA|-106.58|52.14|51|N|,University Heights|NY|US|-73.91|40.86|27|N|,University of Texas|TX|US|-97.74|30.29|53|N|,University Park|FL|US|-80.37|25.75|26|N|,University Place|WA|US|-122.55|47.24|32|N|,Unnao|uttar pradesh|IN|80.49|26.55|161|W|,Upland|CA|US|-117.65|34.1|76|N|,Upper Alton|IL|US|-90.15|38.91|29|N|,Upper Arlington|OH|US|-83.06|39.99|34|N|,Upper West Side|NY|US|-73.98|40.79|226|NW|,Uppsala|uppsala|SE|17.64|59.86|177|W|upsala,Uptown|IL|US|-87.65|41.97|55|N|,Urayasu|chiba|JP|139.9|35.66|171|W|,Urbana|IL|US|-88.21|40.11|42|N|,Urbandale|IA|US|-93.71|41.63|44|N|,Urdaneta|ilocos|PH|120.57|15.98|145|W|kota urdaneta;urdaneta de pangasinan,Urganch|xorazm region|UZ|60.63|41.55|145|W|ourguentch;urgench;urgentj;urgenc,Uriangato|MX11|MX|-101.18|20.14|51|N|,Ursynow|mazovia|PL|21.05|52.15|149|W|,Uruapan|MX16|MX|-102.06|19.42|299|NW|uruapan del progreso,Usak|usak|TR|29.41|38.67|369|W|,Usera|madrid|ES|-3.7|40.39|141|W|,Ussuriysk|primorye|RU|131.96|43.8|157|W|oessoeriejsk;ussurijsk;ussuryjsk,Ust-Kamenogorsk|east kazakhstan|KZ|82.61|49.97|319|W|ust kamienogorsk;oskemen,Utica|NY|US|-75.23|43.1|61|N|,Utrecht|utrecht|NL|5.12|52.09|376|W|utreque,Utsunomiya|tochigi|JP|139.88|36.57|518|W|ucunomija,Uvira|south kivu|CD|29.14|-3.4|407|W|,Uyo|akwa ibom state|NG|7.93|5.05|436|W|,Vacaville|CA|US|-121.99|38.36|96|N|,Vadodara|gujarat|IN|73.21|22.3|1822|W|,Val-d'Or|QC|CA|-77.8|48.1|25|N|,Val-des-Arbres|QC|CA|-73.68|45.6|40|N|,Valdivia|los rios region|CL|-73.25|-39.81|133|W|,Valdosta|GA|US|-83.28|30.83|55|N|,Valencia|carabobo|VE|-68|10.16|1619|W|,Valencia|valencia|ES|-0.38|39.47|824|W|valence;valencie;valensiya;valenza;walencja,Valencia|CA|US|-118.61|34.44|148|NW|,Valente Diaz|MX30|MX|-96.22|19.16|25|N|,Valenzuela|national capital region|PH|120.97|14.7|725|W|,Valera|trujillo|VE|-70.6|9.32|244|W|,Valinhos|sao paulo|BR|-47|-22.97|132|W|,Valladolid|castille and leon|ES|-4.72|41.66|300|W|pincia;pucela,Valladolid|MX31|MX|-88.2|20.69|48|N|,Valle de Bravo|MX15|MX|-100.13|19.2|25|N|,Valle de La Pascua|guarico|VE|-66.01|9.22|153|W|,Valle de Santiago|MX11|MX|-101.19|20.39|68|N|,Valle Hermoso|MX28|MX|-97.81|25.67|48|N|,Valledupar|cesar department|CO|-73.25|10.47|490|W|,Vallejo|CA|US|-122.26|38.1|121|N|,Valley Glen|CA|US|-118.42|34.19|60|N|,Valley Stream|NY|US|-73.71|40.66|37|N|,Valparaiso|valparaiso|CL|-71.63|-33.04|282|W|,Valparaiso|IN|US|-87.06|41.47|32|N|,Valparaiso de Goias|goias|BR|-47.98|-16.07|218|W|,Valrico|FL|US|-82.24|27.94|35|N|,Valsad|gujarat|IN|72.93|20.61|139|W|,Van|van|TR|43.38|38.49|525|W|,Van Nuys|CA|US|-118.45|34.19|136|NW|,Vancouver|BC|CA|-123.12|49.25|662|NW|vancover,Vancouver|WA|US|-122.66|45.64|196|NW|,Vanderbijlpark|gauteng|ZA|27.84|-26.71|246|W|,Vantaa|uusimaa|FI|25.04|60.29|252|W|vanda,Vapi|gujarat|IN|72.9|20.37|163|W|,Varamin|tehran|IR|51.65|35.32|225|W|,Varanasi|uttar pradesh|IN|83.01|25.32|1164|W|benares;kashi;waranasi,Varginha|minas gerais|BR|-45.43|-21.55|136|W|,Varna|varna|BG|27.91|43.22|318|W|warna,Varzea Grande|mato grosso|BR|-56.13|-15.65|300|W|,Vasyl'evsky Ostrov|st petersburg|RU|30.25|59.94|203|W|vasilinsaari,Vaudreuil-Dorion|QC|CA|-74.03|45.4|25|N|,Vaughan|ON|CA|-79.5|43.84|323|NW|,Velikiy Novgorod|novgorod oblast|RU|31.27|58.52|222|W|velikij novgorod;novgorod;nowogrod wielki;veliki novgorod;veliky novgorod;weliki nowgorod,Vellore|tamil nadu|IN|79.13|12.92|484|W|velur,Venice|CA|US|-118.46|33.99|40|N|venice beach,Ventura|CA|US|-119.29|34.28|96|N|,Venustiano Carranza|MX09|MX|-99.1|19.44|430|NW|,Veracruz|MX30|MX|-96.14|19.18|428|NW|veracruz llave,Veraval|gujarat|IN|70.37|20.91|171|W|,Verdun|QC|CA|-73.57|45.46|69|N|,Vereeniging|gauteng|ZA|27.93|-26.67|474|W|,Verhunskyi|luhansk|UA|39.37|48.59|185|W|verhunskyi rayon;zhovtnevyi;zhovtnevyi rayon,Vermont Square|CA|US|-118.3|34|47|N|,Vernon|BC|CA|-119.27|50.27|40|N|,Vernon Hills|IL|US|-87.98|42.22|26|N|,Verona|veneto|IT|10.99|45.44|258|W|verone;werona,Vespasiano|minas gerais|BR|-43.92|-19.69|138|W|,Vestal|NY|US|-76.05|42.09|28|N|,Vestavia Hills|AL|US|-86.79|33.45|34|N|,Viamao|rio grande do sul|BR|-51.02|-30.08|231|W|,Viana|luanda|AO|13.37|-8.91|865|W|,Victor Rosales|MX32|MX|-102.7|22.95|32|N|,Victoria|central and western|HK|114.14|22.29|956|W|,Victoria|BC|CA|-123.35|48.44|289|NW|,Victoria|TX|US|-97|28.81|67|N|,Victoria de Durango|MX10|MX|-104.66|24.02|518|NW|durango,Victoria-Downtown|BC|CA|-123.36|48.43|46|N|downtown victoria,Victoria-Fraserview|BC|CA|-123.07|49.22|31|N|,Victoriaville|QC|CA|-71.97|46.05|34|N|,Victorville|CA|US|-117.29|34.54|122|N|,Vidisha|madhya pradesh|IN|77.81|23.53|155|W|vidisa,Vienna|state of vienna|AT|16.37|48.21|1691|W|viena;viyana;wien;vienne;vien;viden;wenen;wieden;bec,Vientiane|vientiane prefecture|LA|102.6|17.97|840|W|vienciana;vientian;wientian,Viet Tri|phu tho|VN|105.4|21.32|415|W|,Viet Yen|bac ninh|VN|106.13|21.27|205|W|distretto di viet yen,Vigo|galicia|ES|-8.72|42.23|293|W|,Vijayapura|karnataka|IN|75.72|16.82|327|W|bidzapur;bijapur;vijapura,Vijayawada|andhra pradesh|IN|80.65|16.51|1143|W|vidzajavada;widzajawada;bejawada,Vila Andrade|sao paulo|BR|-46.73|-23.63|168|W|,Vila Curuca|sao paulo|BR|-46.42|-23.51|140|W|,Vila Flor|luanda|AO|13.31|-8.98|256|W|,Vila Jacui|sao paulo|BR|-46.46|-23.5|134|W|,Vila Velha|espirito santo|BR|-40.29|-20.33|394|W|,Villa Canales|guatemala|GT|-90.53|14.48|155|W|,Villa Mercedes|biobio|CL|-71.98|-37.4|131|W|,Villa Nueva|guatemala|GT|-90.59|14.53|618|W|,Villa Vicente Guerrero|MX29|MX|-98.17|19.12|60|N|,Villaflores|MX05|MX|-93.27|16.23|37|N|,Villagran|MX11|MX|-101|20.51|27|N|,Villahermosa|MX27|MX|-92.94|17.99|353|NW|villa hermosa,Villavicencio|meta department|CO|-73.63|4.13|321|W|,Ville-Emard|QC|CA|-73.6|45.45|30|N|,Ville-Marie|QC|CA|-73.57|45.5|104|N|,Villeray-Saint-Michel-Parc-Extension|QC|CA|-73.61|45.56|144|NW|,Villeurbanne|rhone alpes|FR|4.88|45.77|131|W|,Vilnius|vilnius|LT|25.28|54.69|542|W|vilna;vilnus;wilno;wilna,Vina del Mar|valparaiso|CL|-71.55|-33.02|334|W|,Vineland|NJ|US|-75.03|39.49|60|N|,Vinh|nghe an province|VN|105.69|18.67|790|W|,Vinh Chau|can tho city|VN|105.98|9.32|183|W|,Vinh Long|vinh long|VN|105.97|10.25|137|W|,Vinnytsya|vinnytsia|UA|28.47|49.23|430|W|vinnycja;vinniza;vinnytsia;winnica;winnyzja,Viransehir|sanliurfa|TR|39.76|37.22|154|W|,Virar|maharashtra|IN|72.81|19.46|1222|W|,Virginia Beach|VA|US|-75.98|36.85|454|NW|virginian bch,Visakhapatnam|andhra pradesh|IN|83.2|17.68|1063|W|vishakhapatnam;vizag,Visalia|CA|US|-119.29|36.33|130|NW|,Vista|CA|US|-117.24|33.2|100|N|,Vitebsk|vitebsk|BY|30.2|55.19|358|W|wizebsk;vicebsk;vitsebsk;vitsyebsk;witebsk,Vitoria|espirito santo|BR|-40.34|-20.32|312|W|,Vitoria da Conquista|bahia|BR|-40.84|-14.87|396|W|,Vitoria de Santo Antao|pernambuco|BR|-35.29|-8.12|134|W|,Vizianagaram|andhra pradesh|IN|83.41|18.12|228|W|,Vladikavkaz|north ossetia alania|RU|44.67|43.04|306|W|vladicaucaso;wladikawkas;wladykaukaz,Vladimir|vladimir oblast|RU|40.4|56.14|357|W|wladimir;wladymir;wlodzimierz,Vladivostok|primorye|RU|131.87|43.11|604|W|vladyvostok;wladiwostok;wladywostok,Volgodonsk|rostov|RU|42.15|47.51|167|W|wolgodonsk,Volgograd|volgograd oblast|RU|44.5|48.71|1013|W|volgogrado;wolgograd;estalingrado;stalingrad;stalingrado;tsaritsyn;zarizyn,Vologda|vologda oblast|RU|39.88|59.22|312|W|wologda,Volta Redonda|rio de janeiro|BR|-44.1|-22.52|279|W|v redonda,Volzhsky|volgograd oblast|RU|44.78|48.79|323|W|volzjskij;volzski;wolschski,Voronezh|voronezh oblast|RU|39.19|51.67|1047|W|voronej;voronezj;voronez;woronesch;woronez,Votorantim|sao paulo|BR|-47.44|-23.55|133|W|,Vryheid|kwazulu natal|ZA|30.79|-27.77|150|W|,Vung Tau|ho chi minh city hcmc|VN|107.08|10.35|464|W|cap saint jacques;cape saint james;saint james;st james;ville du cap,Vyhurivshchyna-Troyeshchyna|kyiv city|UA|30.6|50.51|240|W|,Vykhino-Zhulebino|moscow|RU|37.81|55.7|216|W|,Waco|TX|US|-97.15|31.55|132|NW|,Wad Medani|al jazirah|SD|33.52|14.4|332|W|vad medeni;wad madani,Wadi as Sir|amman|JO|35.82|31.95|181|W|wadi al seer,Wafangdian|liaoning|CN|122.01|39.62|454|W|,Wah Cantt|punjab|PK|72.75|33.77|400|W|,Waiau-Pacific Palisades|HI|US|-157.95|21.4|47|N|,Waipahu|HI|US|-158.01|21.39|38|N|,Wakayama|wakayama|JP|135.17|34.23|356|W|,Wake Forest|NC|US|-78.51|35.98|38|N|,Wakefield|NY|US|-73.85|40.9|52|N|,Waldorf|MD|US|-76.94|38.62|67|N|,Walla Walla|WA|US|-118.34|46.06|32|N|,Walnut|CA|US|-117.87|34.02|30|N|,Walnut Creek|CA|US|-122.06|37.91|68|N|,Walnut Grove|BC|CA|-122.64|49.16|25|N|,Walsall|england|GB|-1.98|52.59|172|W|,Waltham|MA|US|-71.24|42.38|63|N|,Wan Chai|wan chai|HK|114.17|22.28|166|W|wanchai,Wandsbek|hamburg|DE|10.08|53.58|411|W|,Wangsa Maju|kuala lumpur|MY|101.74|3.2|215|W|,Wanning|hainan|CN|110.38|18.8|545|W|,Wanxian|chongqing|CN|108.37|30.82|859|W|wan hsien;wanshien,Wanzhou|chongqing|CN|108.4|30.76|1545|W|,Warangal|telangana|IN|79.58|18|704|W|,Warder|somali|ET|45.34|6.97|450|W|,Warner Robins|GA|US|-83.63|32.62|73|N|,Warren|MI|US|-83.01|42.49|134|NW|,Warren|OH|US|-80.82|41.24|40|N|,Warri|delta|NG|5.75|5.52|910|W|,Warrington|england|GB|-2.58|53.39|172|W|,Warsaw|mazovia|PL|21.01|52.23|1702|W|warszawa;varsavia;varsova;varsovia;varsovie;varsava;warsawa;warschau,Warwick|RI|US|-71.42|41.7|81|N|,Wasco|CA|US|-119.34|35.59|26|N|,Washington|DC|US|-77.04|38.9|689|NW|washington d c;district of columbia;washington dc;waszyngton;territory of columbia,Washington Heights|NY|US|-73.94|40.85|152|NW|,Watampone|south sulawesi|ID|120.33|-4.54|149|W|,Waterbury|CT|US|-73.05|41.56|108|N|,Waterford|MI|US|-83.41|42.69|75|N|,Waterfront Communities-The Island|ON|CA|-79.38|43.63|65|N|,Waterloo|ON|CA|-80.52|43.47|104|N|,Waterloo|IA|US|-92.34|42.49|68|N|,Watertown|MA|US|-71.18|42.37|31|N|,Watertown|NY|US|-75.91|43.97|26|N|,Watsonville|CA|US|-121.76|36.91|53|N|,Watthana|bangkok|TH|100.59|13.73|171|W|vadhana,Waukegan|IL|US|-87.84|42.36|88|N|,Waukesha|WI|US|-88.23|43.01|71|N|,Wausau|WI|US|-89.63|44.96|39|N|,Wauwatosa|WI|US|-88.01|43.05|47|N|,Waxahachie|TX|US|-96.85|32.39|33|N|,Wayne|NJ|US|-74.28|40.93|57|N|,Wayne|PA|US|-75.39|40.04|30|N|,Wazirabad|punjab|PK|74.12|32.44|152|W|,Weatherford|TX|US|-97.8|32.76|28|N|,Weifang|shandong|CN|119.1|36.71|2044|W|wej fang,Weihai|shandong|CN|122.11|37.51|844|W|wej chaj,Weinan|shaanxi|CN|109.51|34.5|1199|W|wej nan,Welkom|free state|ZA|26.74|-27.98|431|W|,Welland|ON|CA|-79.25|42.98|52|N|,Wellesley|MA|US|-71.29|42.3|27|N|,Wellington|wellington region|NZ|174.78|-41.29|381|W|,Wellington|FL|US|-80.24|26.66|62|N|,Wenatchee|WA|US|-120.31|47.42|33|N|,Wenchang|hainan|CN|110.8|19.55|560|W|van xuong,Wenshan City|yunnan|CN|104.25|23.36|450|W|,Wentzville|MO|US|-90.85|38.81|35|N|,Wenzhou|zhejiang|CN|120.67|28|2650|W|wen cou;on chau;yongjia,Weru|west java|ID|108.5|-6.71|139|W|,Weslaco|TX|US|-97.99|26.16|39|N|,Wesley Chapel|FL|US|-82.33|28.24|44|N|,West Albany|NY|US|-73.78|42.68|93|N|,West Allis|WI|US|-88.01|43.02|60|N|,West Babylon|NY|US|-73.35|40.72|43|N|,West Bend|WI|US|-88.18|43.43|31|N|,West Bloomfield Township|MI|US|-83.38|42.57|64|N|west bloomfield;xa west bloomfield,West Chicago|IL|US|-88.2|41.88|27|N|,West Coon Rapids|MN|US|-93.35|45.16|62|N|,West Covina|CA|US|-117.94|34.07|108|N|,West Des Moines|IA|US|-93.71|41.58|64|N|,West Elkridge|MD|US|-76.73|39.21|28|N|,West End|BC|CA|-123.13|49.28|47|N|vancouver west end,West Englewood|IL|US|-87.67|41.78|32|N|,West Falls Church|VA|US|-77.19|38.86|29|N|,West Fargo|ND|US|-96.9|46.87|33|N|tay fargo,West Gulfport|MS|US|-89.09|30.4|71|N|,West Hartford|CT|US|-72.74|41.76|63|N|,West Haven|CT|US|-72.95|41.27|54|N|,West Hill|ON|CA|-79.18|43.77|27|N|,West Hills|CA|US|-118.64|34.2|41|N|,West Hollywood|FL|US|-80.18|26.02|60|N|,West Hollywood|CA|US|-118.36|34.09|36|N|tay hollywood,West Humber-Clairville|ON|CA|-79.6|43.72|33|N|,West Islip|NY|US|-73.31|40.71|28|N|,West Jerusalem|jerusalem|IL|35.22|31.78|400|W|vest jerusalem;vestjerusalem;vastra jerusalem;westjerusalem,West Jordan|UT|US|-111.94|40.61|111|N|,West Kelowna|BC|CA|-119.58|49.86|28|N|district of west kelowna,West Lafayette|IN|US|-86.91|40.43|45|N|,West Lake Sammamish|WA|US|-122.1|47.58|33|N|,West Lawn|IL|US|-87.72|41.77|32|N|,West Linn|OR|US|-122.61|45.37|26|N|,West Little River|FL|US|-80.24|25.86|34|N|,West Lynchburg|VA|US|-79.18|37.4|65|N|,West Memphis|AR|US|-90.18|35.15|25|N|,West Milford|NJ|US|-74.37|41.13|26|N|,West New York|NJ|US|-74.01|40.79|53|N|,West Oak Lane|PA|US|-75.17|40.07|38|N|,West Orange|NJ|US|-74.24|40.8|48|N|,West Palm Beach|FL|US|-80.05|26.72|120|N|,West Raleigh|NC|US|-78.66|35.79|338|NW|,West Ridge|IL|US|-87.69|42|72|N|,West Roxbury|MA|US|-71.15|42.28|30|N|,West Sacramento|CA|US|-121.53|38.58|52|N|,West Scarborough|ME|US|-70.39|43.57|27|N|,West Seneca|NY|US|-78.8|42.85|44|N|,West Springfield|MA|US|-72.62|42.11|27|N|,West Torrington|CT|US|-73.14|41.82|36|N|,West Town|IL|US|-87.67|41.89|86|N|,West Valley City|UT|US|-112|40.69|136|NW|west valley,West Vancouver|BC|CA|-123.16|49.33|45|N|vancouver barat,West Village|NY|US|-74.01|40.73|32|N|,West Warwick|RI|US|-71.52|41.7|30|N|,West Whittier-Los Nietos|CA|US|-118.07|33.98|25|N|,Westchester|FL|US|-80.33|25.75|29|N|,Westerville|OH|US|-82.93|40.13|38|N|,Westfield|MA|US|-72.75|42.13|41|N|westfield centre,Westfield|IN|US|-86.13|40.04|36|N|,Westfield|NJ|US|-74.35|40.66|30|N|,Westlake|OH|US|-81.92|41.46|32|N|,Westland|MI|US|-83.4|42.32|82|N|,Westminster|CO|US|-105.04|39.84|116|N|,Westminster|CA|US|-118.01|33.76|92|N|,Westminster-Branson|ON|CA|-79.45|43.78|26|N|,Westmont|CA|US|-118.3|33.94|31|N|,Weston|FL|US|-80.4|26.1|69|N|,Westonaria|gauteng|ZA|27.65|-26.32|156|W|,Westport|CT|US|-73.36|41.14|26|N|,Wethersfield|CT|US|-72.65|41.71|26|N|,Wexford/Maryvale|ON|CA|-79.3|43.75|27|N|,Weymouth|MA|US|-70.94|42.22|54|N|,Whalley|BC|CA|-122.87|49.18|102|N|,Wharton|PA|US|-75.16|39.93|49|N|,Wheat Ridge|CO|US|-105.08|39.77|31|N|wheatridge,Wheaton|IL|US|-88.11|41.87|53|N|,Wheaton|MD|US|-77.06|39.04|48|N|,Wheeling|IL|US|-87.93|42.14|38|N|,Wheeling|WV|US|-80.72|40.06|27|N|,Whitby|ON|CA|-78.93|43.88|138|NW|,Whitchurch-Stouffville|ON|CA|-79.32|44|49|N|,White Bear Lake|MN|US|-93.01|45.08|25|N|,White Plains|NY|US|-73.76|41.03|58|N|,Whitehorse|YT|CA|-135.05|60.72|28|N|,Whitestone|NY|US|-73.82|40.79|36|N|,Whitman|PA|US|-75.16|39.92|49|N|,Whitney|NV|US|-115.04|36.1|38|N|,Whittier|CA|US|-118.03|33.98|87|N|,Wichita|KS|US|-97.34|37.69|396|NW|,Wichita Falls|TX|US|-98.49|33.91|104|N|,Wiesbaden|hesse|DE|8.24|50.09|288|W|,Wigan|england|GB|-2.64|53.54|175|W|,Wildomar|CA|US|-117.28|33.6|35|N|,Wildwood|MO|US|-90.66|38.58|35|N|,Wilkes-Barre|PA|US|-75.88|41.25|40|N|,Williamsburg|NY|US|-73.95|40.71|33|N|,Williamsport|PA|US|-77|41.24|29|N|,Willingboro|NJ|US|-74.87|40.03|31|N|,Williston|ND|US|-103.62|48.15|26|N|,Willoughby|BC|CA|-122.68|49.13|31|N|,Willowbrook|CA|US|-118.26|33.92|35|N|,Willowdale|ON|CA|-79.4|43.77|79|N|,Willowdale East|ON|CA|-79.4|43.77|50|N|,Wilmette|IL|US|-87.72|42.07|27|N|,Wilmington|NC|US|-77.95|34.24|115|N|,Wilmington|DE|US|-75.55|39.75|70|N|,Wilmington|CA|US|-118.26|33.78|52|N|,Wilson|NC|US|-77.92|35.72|49|N|,Winchester|NV|US|-115.12|36.13|27|N|,Winchester|VA|US|-78.16|39.19|27|N|,Windhoek|khomas region|NA|17.08|-22.56|386|W|vinduque;windhuk,Windsor|ON|CA|-83.02|42.3|229|NW|,Windsor|CO|US|-104.9|40.48|32|N|,Windsor|CT|US|-72.64|41.85|28|N|,Windsor|CA|US|-122.82|38.55|27|N|,Winejok|northern bahr al ghazal|SS|27.57|9.01|300|W|,Winnetka|CA|US|-118.57|34.21|47|N|,Winnipeg|MB|CA|-97.15|49.88|749|NW|vinnipeg;winnipeg city,Winona|MN|US|-91.64|44.05|27|N|,Winston-Salem|NC|US|-80.24|36.1|241|NW|,Winter Garden|FL|US|-81.59|28.57|40|N|,Winter Haven|FL|US|-81.73|28.02|37|N|,Winter Park|FL|US|-81.34|28.6|29|N|,Winter Springs|FL|US|-81.31|28.7|34|N|,Woburn|ON|CA|-79.23|43.77|53|N|,Woburn|MA|US|-71.15|42.48|39|N|,Wola|mazovia|PL|20.96|52.23|140|W|,Wollongong|new south wales|AU|150.89|-34.42|280|W|,Wolverhampton|england|GB|-2.12|52.59|263|W|,Wong Tai Sin|wong tai sin district|HK|114.18|22.35|425|W|,Wonju|gangwon do|KR|127.95|37.35|332|W|,Wonsan|kangwon do|KP|127.44|39.15|329|W|gensan,Woodburn|OR|US|-122.86|45.14|25|N|,Woodbury|MN|US|-92.96|44.92|67|N|,Woodhaven|NY|US|-73.86|40.69|36|N|,Woodland|CA|US|-121.77|38.68|58|N|,Woodland Hills|CA|US|-118.61|34.17|70|N|,Woodlands||SG|103.79|1.44|254|W|,Woodlawn|MD|US|-76.73|39.32|37|N|,Woodridge|IL|US|-88.05|41.75|33|N|,Woodside|NY|US|-73.91|40.75|41|N|,Woodstock|ON|CA|-80.75|43.13|40|N|,Woodstock|GA|US|-84.52|34.1|29|N|,Woodstock|IL|US|-88.45|42.31|25|N|,Woonsocket|RI|US|-71.51|42|41|N|,Wooster|OH|US|-81.94|40.81|26|N|,Worcester|MA|US|-71.8|42.26|206|NW|,Wroclaw|lower silesia|PL|17.03|51.1|672|W|breslau;breslavia;vratislav;bresslau;vratislavie,Wuerzburg|bavaria|DE|9.95|49.79|133|W|wurzburg;wurtzbourg;wurtzburgo;wurzburgo,Wugang|hunan|CN|110.63|26.73|132|W|,Wuhai|inner mongolia|CN|106.82|39.68|218|W|wu chaj,Wuhan|hubei|CN|114.27|30.58|10392|W|vuhan;vu han;wu chan,Wuhu|anhui|CN|118.43|31.35|1598|W|wu chu,Wujiaqu|xinjiang|CN|87.52|44.16|154|W|,Wuppertal|north rhine westphalia|DE|7.15|51.26|360|W|,Wuwei|gansu|CN|102.63|37.93|1010|W|,Wuxi|jiangsu|CN|120.29|31.57|4396|W|vo tich;wu si,Wuxue|hubei|CN|115.55|29.85|220|W|,Wuyishan|fujian|CN|118.03|27.76|137|W|ciudad de wuyishan;vu di son;wuyishan city,Wuzhong|ningxia|CN|106.2|37.99|7202|W|,Wuzhou|guangxi|CN|111.29|23.48|761|W|ngo chau;wu cou,Wyandotte|MI|US|-83.15|42.21|25|N|,Wylie|TX|US|-96.54|33.02|46|N|,Wyoming|MI|US|-85.71|42.91|75|N|,Xai-Xai|gaza province|MZ|33.64|-25.05|154|W|,Xalapa de Enriquez|MX30|MX|-96.92|19.53|424|NW|xalapa;jalapa;jalapa enriques;jalapa enriquez,Xalisco|MX18|MX|-104.9|21.44|35|N|jalisco,Xenia|OH|US|-83.93|39.68|25|N|,Xi'an|shaanxi|CN|108.93|34.26|9600|W|tay an;xian,Xiamen|fujian|CN|118.08|24.48|4617|W|amoy;sia men,Xiangtan|hunan|CN|112.9|27.85|959|W|siang tchan;tuong dam,Xiangyang|hubei|CN|112.14|32.04|1294|W|siang jang;tuong duong;xiangfan,Xianning|hubei|CN|114.32|29.84|512|W|,Xiantao|hubei|CN|113.44|30.37|239|W|sientaochen,Xianyang|shaanxi|CN|108.7|34.34|1034|W|ham duong;sien jang,Xiaogan|hubei|CN|113.92|30.93|908|W|siao kan,Xiayang|shanghai|CN|121.12|31.15|137|W|,Xichang|sichuan|CN|102.26|27.9|481|W|,Xico|MX15|MX|-98.95|19.27|384|NW|san miguel xico,Xicotepec de Juarez|MX21|MX|-97.96|20.28|39|N|,Xilinhot|inner mongolia|CN|116.07|43.94|349|W|,Xindi|hubei|CN|113.47|29.82|175|W|,Xingning|guangdong|CN|115.72|24.15|274|W|,Xingtai|hebei|CN|114.49|37.06|798|W|hinh dai;sing tchaj,Xingyi|guizhou|CN|104.91|25.1|322|W|,Xining|qinghai|CN|101.76|36.63|1677|W|si ning;sining;tay ninh,Xinji|hebei|CN|115.22|37.93|145|W|,Xinqiao|shanghai|CN|121.31|31.07|155|W|,Xintai|shandong|CN|117.75|35.9|222|W|,Xinxiang|henan|CN|113.8|35.19|1047|W|,Xinyang|henan|CN|114.07|32.12|1230|W|,Xinyi|jiangsu|CN|118.35|34.38|300|W|,Xinyu|jiangxi|CN|114.93|27.8|839|W|sin ju;tan du,Xinyuan|xinjiang|CN|83.25|43.43|282|W|,Xinzhou|shanxi|CN|112.73|38.41|544|W|han chau;sin cou,Xiuying|hainan|CN|110.29|20|290|W|,Xizhi|taipei|TW|121.66|25.07|204|W|hsichih;xizhi district,Xochimilco|MX09|MX|-99.1|19.25|442|NW|delegacion xochimilco,Xuan Loc|dong nai|VN|107.23|10.93|253|W|,Xuancheng|anhui|CN|118.76|30.95|774|W|,Xuanhua|hebei|CN|115.06|40.61|373|W|,Xuchang|henan|CN|113.86|34.03|1265|W|,Xuhui|shanghai|CN|121.45|31.2|1109|W|,Xuzhou|jiangsu|CN|117.28|34.2|1253|W|pengcheng,Ya'an|sichuan|CN|103|29.99|612|W|,Yachiyo|chiba|JP|140.12|35.74|199|W|,Yaizu|shizuoka|JP|138.32|34.87|139|W|,Yakima|WA|US|-120.51|46.6|93|N|,Yakutsk|sakha|RU|129.72|62.03|235|W|iakoutsk;jakutsk,Yamagata|yamagata|JP|140.37|38.23|248|W|,Yamaguchi|yamaguchi|JP|131.47|34.18|193|W|jamaguci,Yamato|kanagawa|JP|139.45|35.47|242|W|,Yamoussoukro|lacs district|CI|-5.28|6.82|275|W|jamusukro;yamusukro,Yamuna Nagar|haryana|IN|77.28|30.13|217|W|yamunanagar,Yan'an|shaanxi|CN|109.49|36.6|475|W|,Yanbu|medina region|SA|38.06|24.09|200|W|yambo;yanbu al bahr;yenbo,Yancheng|jiangsu|CN|120.16|33.36|1615|W|diem thanh;jen ccheng,Yangcheng|chongqing|CN|106.26|30|186|W|,Yangchun|guangdong|CN|111.78|22.17|153|W|,Yanghang|shanghai|CN|121.44|31.37|204|W|,Yangjiang|guangdong|CN|111.96|21.86|1292|W|duong giang;jang tiang,Yangju|gyeonggi do|KR|127.06|37.83|179|W|,Yangon|yangon|MM|96.16|16.81|4477|W|rangoon;rangoun;rangum;rangun;yankoun,Yangpu|shanghai|CN|121.52|31.26|1210|W|,Yangquan|shanxi|CN|113.56|37.86|731|W|jang cchuan,Yangsan|gyeongsangnam do|KR|129.03|35.34|358|W|jangsan,Yangshuo|guangxi|CN|110.49|24.78|300|W|,Yangzhou|jiangsu|CN|119.44|32.4|1584|W|duong chau;jang cou,Yanji|jilin|CN|129.5|42.89|326|W|dien cat,Yantai|shandong|CN|121.44|37.48|2227|W|jen tchaj;yen dai;chefoo,Yanzhou|shandong|CN|116.83|35.55|254|W|,Yao|osaka|JP|135.6|34.62|273|W|,Yaounde|centre|CM|11.52|3.87|1299|W|jaunde;yaunde,Yarmouth|MA|US|-70.23|41.71|25|N|,Yaroslavl|yaroslavl oblast|RU|39.87|57.63|608|W|jaroslawl;iaroslavl;jaroslavl;jaroslaw,Yasenevo|moscow|RU|37.52|55.61|180|W|,Yautepec|MX17|MX|-99.07|18.88|105|N|yautepec de zaragoza,Yawnghwe|shan state|MM|96.93|20.66|188|W|,Yazd|yazd province|IR|54.37|31.9|477|W|jasd;jazd,Yei|central equatoria|SS|30.68|4.09|260|W|,Yekaterinburg|sverdlovsk oblast|RU|60.62|56.86|1495|W|jekaterinburg;ekaterimburgo;ekaterinbourg;ekaterinburg;ekaterinburgo;jekaterinenburg;jekaterynburg,Yenagoa|bayelsa state|NG|6.27|4.93|365|W|,Yeosu|jeollanam do|KR|127.66|34.76|268|W|josu,Yerevan|yerevan|AM|44.51|40.18|1144|W|erevan;erivan;erywan;jerevan;jerewan,Yibin|sichuan|CN|104.64|28.76|836|W|nghi tan,Yichang|hubei|CN|111.28|30.71|1350|W|i cchang;nghi xuong,Yichun|jiangxi|CN|114.4|27.83|1045|W|i cchun;nghi xuan,Yichun|heilongjiang|CN|128.88|47.72|155|W|i cchun;y xuan,Yinchuan|ningxia|CN|106.27|38.47|1487|W|jin cchuan;ngan xuyen,Yingkou|liaoning|CN|122.23|40.66|591|W|newchwang;eiko,Yingtan|jiangxi|CN|117|28.23|214|W|jing tchan;ung dam,Yintai|shaanxi|CN|109.1|35.12|217|W|,Yishun New Town||SG|103.83|1.43|228|W|,Yiwu|zhejiang|CN|120.08|29.32|1481|W|,Yixing|jiangsu|CN|119.82|31.36|1285|W|,Yizhou|guangxi|CN|108.67|24.5|155|W|,Yogyakarta|yogyakarta|ID|110.36|-7.8|375|W|di yogyakarta;jogjakarta;kota yogyakarta,Yokkaichi|mie|JP|136.62|34.97|305|W|,Yokohama|kanagawa|JP|139.65|35.43|3777|W|jokohama,Yokosuka|kanagawa|JP|139.67|35.28|409|W|jokosuka,Yola|adamawa|NG|12.48|9.21|460|W|,Yonago|tottori|JP|133.33|35.43|148|W|,Yong'an|chongqing|CN|109.46|31.02|144|W|fengjie;feng chieh;kweichow,Yongchuan|chongqing|CN|105.89|29.35|192|W|,Yongji|shanxi|CN|110.44|34.87|452|W|,Yongkang|taiwan|TW|120.26|23.02|233|W|vinh khang;yongkang district,Yongzhou|hunan|CN|111.61|26.42|1020|W|lingling,Yonkers|NY|US|-73.9|40.93|201|NW|,Yopal|casanare department|CO|-72.39|5.34|168|W|,Yorba Linda|CA|US|-117.81|33.89|67|N|,York|england|GB|-1.08|53.96|156|W|,York|PA|US|-76.73|39.96|43|N|,York University Heights|ON|CA|-79.49|43.77|27|N|,Yoshkar-Ola|mariy el republic|RU|47.89|56.64|268|W|iochkar ola;joschkar ola;josjkar ola;joszkar ola;joskar ola,Youngstown|OH|US|-80.65|41.1|64|N|,Yuba City|CA|US|-121.62|39.14|66|N|kota yuba,Yucaipa|CA|US|-117.04|34.03|53|N|,Yuci|shanxi|CN|112.73|37.68|235|W|,Yuen Long|yuen long|HK|114.03|22.45|200|W|,Yuen Long Kau Hui|yuen long|HK|114.03|22.45|169|W|,Yuen Long San Hui|yuen long|HK|114.03|22.43|200|W|,Yuepu|shanghai|CN|121.42|31.43|139|W|,Yueyang|hunan|CN|113.09|29.37|991|W|jue jang,Yukon|OK|US|-97.76|35.51|25|N|,Yulin|guangxi|CN|110.15|22.63|1056|W|ju lin,Yuma|AZ|US|-114.62|32.73|95|N|,Yuncheng|shanxi|CN|110.99|35.02|680|W|jun ccheng,Yunfu|guangdong|CN|112.04|22.93|2612|W|jun fu;van phu,Yunlong|jiangsu|CN|117.25|34.25|345|W|,Yunusobod|tashkent|UZ|69.28|41.37|352|W|,Yuriria|MX11|MX|-101.13|20.21|25|N|,Yushu|qinghai|CN|97.01|33|141|W|,Yuzhno-Sakhalinsk|sakhalin oblast|RU|142.74|46.95|198|W|juzjno sakhalinsk;ioujno sakhalinsk;iujno sahalinsk;iujno sakhalinsk;joezjno sachalinsk;juschno sachalinsk;juzjno sachalinsk;juznosachalinsk;juzno sachalinsk;juzno sahalinsk;yujno sahalinsk;yuzhno sajalinsk,Zaanstad|north holland|NL|4.81|52.45|140|W|,Zabrze|silesia|PL|18.79|50.32|192|W|hindenburg,Zacapu|MX16|MX|-101.79|19.82|50|N|,Zacatecas|MX32|MX|-102.58|22.77|129|N|zacatecas city,Zacatelco|MX29|MX|-98.24|19.22|42|N|,Zacatlan|MX21|MX|-97.96|19.94|33|N|,Zagazig|sharqia|EG|31.5|30.59|430|W|,Zagreb|zagreb|HR|15.98|45.81|663|W|zagabria;zagrep;zagrzeb;zahreb;agram,Zahedan|sistan and baluchestan|IR|60.86|29.5|551|W|,Zama|kanagawa|JP|139.39|35.49|132|W|,Zamboanga|zamboanga peninsula|PH|122.07|6.91|1018|W|zamboanga city,Zamora de Hidalgo|MX16|MX|-102.29|19.98|186|NW|zamora,Zanesville|OH|US|-82.01|39.94|25|N|,Zango|luanda|AO|13.38|-9.01|198|W|,Zanjan|zanjan|IR|48.5|36.68|357|W|zandschan,Zanzibar|zanzibar urban west|TZ|39.2|-6.16|709|W|sansibar stadt;zanzibar by,Zaoyang|hubei|CN|112.75|32.13|184|W|,Zaozhuang|shandong|CN|117.55|34.86|899|W|cao cuang,Zapopan|MX14|MX|-103.39|20.72|1476|NW|,Zaporizhzhya|zaporizhzhia|UA|35.12|47.85|710|W|zaporizjzja;zaporizzja;alessandrovia;saporischschja;zaporiggia;zaporijjia;zaporiyia;zaporizhzhia;zaporoye;zaporozhye;zaporoze;zaporozi;alexandrovsk;saporoschje;saporoshje,Zapotlanejo|MX14|MX|-103.07|20.62|32|N|,Zaragoza|aragon|ES|-0.88|41.66|686|W|saragossa;saragosse;saragozza;saragoca;zaragosa,Zaria|kaduna state|NG|7.72|11.11|980|W|,Zarichnyi|sumy|UA|34.81|50.9|150|W|zarichnyi rayon,Zarqa|zarqa|JO|36.09|32.07|792|W|zarka,Zawiya|az zawiyah|LY|12.73|32.75|186|W|,Zelenograd|moscow|RU|37.18|55.98|215|W|selenograd,Zemun|central serbia|RS|20.4|44.85|155|W|semlin,Zenica|federation of b h|BA|17.9|44.2|164|W|,Zeytinburnu|istanbul|TR|28.9|40.99|280|W|,Zhabei|shanghai|CN|121.46|31.26|840|W|,Zhalantun|inner mongolia|CN|122.74|48.01|132|W|,Zhangjiagang|jiangsu|CN|120.54|31.86|1432|W|,Zhangjiajie|hunan|CN|110.48|29.13|441|W|cang tia tie,Zhangjiakou|hebei|CN|114.87|40.78|692|W|cang tia kchou,Zhangye|gansu|CN|100.45|38.93|507|W|cang jie,Zhangzhou|fujian|CN|117.66|24.51|589|W|chuong chau;cang cou,Zhanjiang|guangdong|CN|110.39|21.23|1400|W|,Zhaodong|heilongjiang|CN|125.96|46.05|154|W|,Zhaoqing|guangdong|CN|112.46|23.05|1553|W|cao cching;shiu hing,Zhaotong|yunnan|CN|103.72|27.32|787|W|chieu thong;cao tchung,Zheleznodorozhnyy|moscow oblast|RU|38.02|55.74|141|W|zjeleznodorozjnyj,Zhengding|hebei|CN|114.57|38.15|193|W|,Zhengzhou|henan|CN|113.65|34.76|4253|W|czengczou;cengcou;ceng cou,Zhenjiang|jiangsu|CN|119.46|32.21|950|W|chinkiang,Zhenping|henan|CN|112.23|33.03|181|W|,Zhenzhou|jiangsu|CN|119.17|32.28|176|W|icheng ku,Zhicheng|hubei|CN|111.5|30.3|159|W|chihkiang,Zhongshan|guangdong|CN|113.38|22.52|3841|W|trung son;xiangshan;cung san,Zhongwei|ningxia|CN|105.19|37.51|1174|W|cung wej,Zhoukou|henan|CN|114.63|33.63|505|W|cou kchou,Zhoushan|zhejiang|CN|122.2|29.99|882|W|,Zhu Cheng City|shandong|CN|119.4|36|1000|W|,Zhubei|taiwan|TW|121.01|24.84|212|W|cu pej,Zhucheng|shandong|CN|119.4|35.99|499|W|,Zhuhai|guangdong|CN|113.57|22.28|2207|W|cu chaj,Zhulebino|moscow|RU|37.85|55.7|150|W|,Zhumadian|henan|CN|114.03|32.98|721|W|,Zhuzhou|hunan|CN|113.15|27.83|1129|W|chu chau;cu cou;jianning,Zhytomyr|zhytomyr oblast|UA|28.68|50.26|261|W|jytomyr;jitomir;schytomyr;zjytomyr;zytomierz;zitomir;zytomyr,Zibo|shandong|CN|118.06|36.79|3129|W|c po;truy bac,Zigong|sichuan|CN|104.78|29.34|1262|W|c kung,Ziguinchor|ziguinchor|SN|-16.27|12.57|214|W|,Zinacantepec|MX15|MX|-99.73|19.28|54|N|,Zinder|zinder region|NE|8.99|13.81|318|W|,Zionsville|IN|US|-86.26|39.95|26|N|,Zipaquira|cundinamarca|CO|-74|5.02|130|W|,Zitong|chongqing|CN|105.83|30.18|212|W|,Ziyang|sichuan|CN|104.65|30.12|905|W|,Zlatoust|chelyabinsk|RU|59.65|55.17|191|W|slatoust;zlato oest;zlatooust,Zliten|misratah|LY|14.57|32.47|203|W|zalitan;zlitan,Zoucheng|shandong|CN|116.97|35.4|277|W|trau thanh,Zuerich|zurich|CH|8.55|47.37|415|W|zurich;curych;zurigo;zurique;zurych;zurih,Zuglo|budapest|HU|19.11|47.52|130|W|lerchenfeld,Zumpango|MX15|MX|-99.1|19.8|280|NW|zumpango de ocampo,Zunyi|guizhou|CN|106.91|27.69|2037|W|cun i;tuan nghia";/*! @bicharts/shape-core — Apache-2.0. Bundled reference data: GeoNames (https://www.geonames.org/) CC BY 4.0; US Census/TIGER (public domain). Full text: NOTICE in this package. */var NU=Object.freeze({\u00F8:"o",\u0153:"oe",\u00E6:"ae",\u00DF:"ss",\u0142:"l",\u0111:"d",\u00F0:"d",\u00FE:"th",\u0131:"i",\u0127:"h",\u0167:"t",\u014B:"n",\u0138:"k",\u0259:"e",\u01DD:"e",\u0133:"ij",\u0140:"l",\u017F:"s"}),jee=new RegExp(`[${Object.keys(NU).join("")}]`,"gu");function vU(e){return e.replace(jee,t=>NU[t]??t)}function ya(e){return e==null?"":vU(String(e).replace(new RegExp("\\p{No}","gu")," ").normalize("NFKD").replace(new RegExp("\\p{Diacritic}","gu"),"").toLowerCase()).replace(/&/g,"and").replace(/[^\p{L}\p{Nd}]/gu,"")}var Oee=4;function E8(e){return e.length>=Oee}var Yf=class{constructor(e=(t,a)=>t===a){this.same=e}same;map=new Map;add(e,t){let a=ya(e);if(!E8(a))return;let r=this.map.get(a);if(!r){this.map.set(a,{value:t,ambiguous:!1});return}!r.ambiguous&&!this.same(r.value,t)&&(r.ambiguous=!0)}get(e){if(!E8(e))return;let t=this.map.get(e);return t&&!t.ambiguous?t.value:void 0}isAmbiguous(e){return this.map.get(e)?.ambiguous===!0}entries(){return Array.from(this.map.entries())}};/*! @bicharts/shape-core — Apache-2.0. Bundled reference data: GeoNames (https://www.geonames.org/) CC BY 4.0; US Census/TIGER (public domain). Full text: NOTICE in this package. */var Dee=new RegExp("([\\p{Ll}\\p{Nd}])(\\p{Lu})","gu"),Lee=/[_\-./]+/g,Fee=/[^\p{L}\p{M}\p{N}\x00-\x7F]/gu;function Bee(e){return e?String(e).normalize("NFC").replace(Dee,"$1 $2").replace(Lee," ").replace(Fee," ").toLowerCase().split(/\s+/).filter(t=>t.length>0):[]}function Qf(e){return!(e instanceof Date)||isNaN(e.getTime())?null:e.getUTCHours()===0&&e.getUTCMinutes()===0&&e.getUTCSeconds()===0&&e.getUTCMilliseconds()===0?"utc":e.getHours()===0&&e.getMinutes()===0&&e.getSeconds()===0&&e.getMilliseconds()===0?"local":null}function Hee(e){let t=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate())),a=e.getFullYear();return a>=0&&a<100&&t.setUTCFullYear(a),t}function Gee(e,t){let a=[];for(let r of e){if(!r||!/date|time/i.test(String(r.dataType??"")))continue;let n=0,i=!0;for(let o of t){let s=o?o[r.name]:void 0;if(s==null||s==="")continue;if(!(s instanceof Date)){i=!1;break}let l=Qf(s);if(l===null){i=!1;break}l==="local"&&n++}i&&n>0&&a.push(r.name)}return a}function SU(e,t){let a=Gee(e,t);return a.length===0?{rows:t,columns:a}:{rows:t.map(r=>{if(!r)return r;let n={...r};for(let i of a){let o=n[i];o instanceof Date&&Qf(o)==="local"&&(n[i]=Hee(o))}return n}),columns:a}}function Kee(e){let t=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds())),a=e.getFullYear();return a>=0&&a<100&&t.setUTCFullYear(a),t}function Xee(e){let t=!1;for(let a of e)if(!(a==null||a==="")){if(!(a instanceof Date)||isNaN(a.getTime()))return!1;Qf(a)===null&&(t=!0)}return t}function Vee(e,t){let a=[];for(let r of e)!r||!/date|time/i.test(String(r.dataType??""))||Xee(t.map(n=>n?n[r.name]:void 0))&&a.push(r.name);return a}function kU(e,t){let a=Vee(e,t);return a.length===0?{rows:t,columns:a}:{rows:t.map(r=>{if(!r)return r;let n={...r};for(let i of a){let o=n[i];o instanceof Date&&(n[i]=Kee(o))}return n}),columns:a}}/*! @bicharts/shape-core — Apache-2.0. Bundled reference data: GeoNames (https://www.geonames.org/) CC BY 4.0; US Census/TIGER (public domain). Full text: NOTICE in this package. */var Zee="AB|CA|Alberta|-113.75|52.18,AK|US|Alaska|-148.32|61.29,AL|US|Alabama|-86.73|33.08,AR|US|Arkansas|-92.85|35.29,AZ|US|Arizona|-111.99|33.32,BC|CA|British Columbia|-122.73|49.27,CA|US|California|-119.21|35.2,CO|US|Colorado|-105|39.63,CT|US|Connecticut|-73.01|41.42,DC|US|District of Columbia|-77.04|38.9,DE|US|Delaware|-75.59|39.57,FL|US|Florida|-81.29|27.53,GA|US|Georgia|-84.02|33.43,HI|US|Hawaii|-157.73|21.26,IA|US|Iowa|-92.79|41.88,ID|US|Idaho|-115.65|44.2,IL|US|Illinois|-88.05|41.67,IN|US|Indiana|-86.27|40.23,KS|US|Kansas|-96|38.59,KY|US|Kentucky|-84.91|38.13,LA|US|Louisiana|-91.28|30.57,MA|US|Massachusetts|-71.28|42.32,MB|CA|Manitoba|-97.3|49.88,MD|US|Maryland|-76.79|39.18,ME|US|Maine|-70.01|43.92,MI|US|Michigan|-83.69|42.56,MN|US|Minnesota|-93.26|44.98,MO|US|Missouri|-92.66|38.73,MS|US|Mississippi|-89.62|32.36,MT|US|Montana|-111.07|46.37,MX01|MX|Aguascalientes|-102.29|21.91,MX02|MX|Baja California|-116.5|32.46,MX03|MX|Baja California Sur|-110.12|23.52,MX04|MX|Campeche|-91.08|19.25,MX05|MX|Chiapas|-92.77|16.28,MX06|MX|Chihuahua|-106.27|30.1,MX07|MX|Coahuila|-101.88|26.32,MX08|MX|Colima|-103.94|19.15,MX09|MX|Mexico City|-99.13|19.41,MX10|MX|Durango|-104.24|24.64,MX11|MX|Guanajuato|-101.37|20.87,MX12|MX|Guerrero|-99.83|17.31,MX13|MX|Hidalgo|-98.81|20.13,MX14|MX|Jalisco|-103.39|20.64,MX15|MX|M\xE9xico|-99.14|19.51,MX16|MX|Michoac\xE1n|-101.68|19.49,MX17|MX|Morelos|-99.15|18.88,MX18|MX|Nayarit|-104.89|21.5,MX19|MX|Nuevo Le\xF3n|-100.26|25.69,MX20|MX|Oaxaca|-96.23|17.05,MX21|MX|Puebla|-98.12|19.07,MX22|MX|Quer\xE9taro|-100.35|20.57,MX23|MX|Quintana Roo|-87.09|20.7,MX24|MX|San Luis Potos\xED|-100.7|22.22,MX25|MX|Sinaloa|-107.49|24.63,MX26|MX|Sonora|-111.05|29.37,MX27|MX|Tabasco|-92.98|17.99,MX28|MX|Tamaulipas|-98.33|24.92,MX29|MX|Tlaxcala|-98.19|19.31,MX30|MX|Veracruz|-96.31|19.2,MX31|MX|Yucat\xE1n|-89.52|20.94,MX32|MX|Zacatecas|-102.7|22.93,NB|CA|New Brunswick|-65.73|45.83,NC|US|North Carolina|-79.61|35.57,ND|US|North Dakota|-98.8|47.31,NE|US|Nebraska|-96.42|41.07,NH|US|New Hampshire|-71.37|43,NJ|US|New Jersey|-74.34|40.51,NL|CA|Newfoundland and Labrador|-52.77|47.55,NM|US|New Mexico|-106.28|34.69,NS|CA|Nova Scotia|-63.11|44.86,NV|US|Nevada|-115.95|36.72,NY|US|New York|-74.13|40.89,OH|US|Ohio|-82.75|40.53,OK|US|Oklahoma|-97.01|35.66,ON|CA|Ontario|-79.27|43.94,OR|US|Oregon|-122.75|44.96,PA|US|Pennsylvania|-76.12|40.23,PE|CA|Prince Edward Island|-63.13|46.23,QC|CA|Quebec|-73.14|45.89,RI|US|Rhode Island|-71.45|41.79,SC|US|South Carolina|-80.69|33.6,SD|US|South Dakota|-98.66|43.89,SK|CA|Saskatchewan|-105.99|51.63,TN|US|Tennessee|-87.53|35.63,TX|US|Texas|-97.51|31.01,UT|US|Utah|-111.96|40.5,VA|US|Virginia|-77.08|37.61,VT|US|Vermont|-73.21|44.48,WA|US|Washington|-121.46|47.29,WI|US|Wisconsin|-88.6|43.36,WV|US|West Virginia|-81.42|38.99,WY|US|Wyoming|-105.54|42.26,YT|CA|Yukon|-135.05|60.72",qee="006|-66.84|18.26,007|-66.15|18.15,008|-64.74|17.74,009|-66.12|18.37,010|-72.6|42.26,011|-72.53|42.07,012|-73.21|42.37,013|-72.51|42.58,014|-71.81|42.59,015|-71.85|42.23,016|-71.84|42.28,017|-71.44|42.33,018|-71.21|42.64,019|-70.89|42.66,020|-71.28|42.12,021|-71.05|42.31,022|-71.04|42.35,023|-70.86|41.98,024|-71.22|42.37,025|-70.6|41.71,026|-70.2|41.73,027|-71.07|41.77,028|-71.62|41.69,029|-71.47|41.82,030|-71.51|42.9,031|-71.48|43,032|-71.65|43.57,033|-71.58|43.26,034|-72.19|42.91,035|-71.31|44.69,036|-72.32|43.17,037|-72.13|43.69,038|-71.1|43.56,039|-70.76|43.24,040|-70.6|43.78,041|-70.27|43.7,042|-70.49|44.38,043|-69.75|44.3,044|-68.83|45.45,045|-69.57|43.99,046|-67.8|44.79,047|-68.34|46.55,048|-69.17|44.2,049|-69.97|44.99,050|-72.43|43.85,051|-72.65|43.28,052|-73.14|43.03,053|-72.77|42.94,054|-72.98|44.58,056|-72.6|44.35,057|-73.04|43.69,058|-72.12|44.68,059|-71.7|44.79,060|-72.81|41.88,061|-72.69|41.74,062|-72.12|41.81,063|-72.03|41.5,064|-72.61|41.46,065|-72.94|41.36,066|-73.22|41.24,067|-73.24|41.68,068|-73.42|41.28,069|-73.57|41.14,070|-74.28|40.76,071|-74.2|40.74,072|-74.2|40.68,073|-74.08|40.71,074|-74.4|41.09,075|-74.17|40.92,076|-74.01|40.94,077|-74.17|40.28,078|-74.81|40.97,079|-74.55|40.74,080|-74.98|39.78,081|-75.07|39.94,082|-74.68|39.32,083|-75.04|39.45,084|-74.48|39.35,085|-74.62|40.25,086|-74.68|40.23,087|-74.22|39.96,088|-74.72|40.54,089|-74.48|40.45,100|-73.96|40.77,101|-73.95|40.78,102|-74.02|40.72,103|-74.15|40.58,104|-73.85|40.9,105|-73.75|41.27,106|-73.74|41.02,107|-73.84|40.96,108|-73.8|40.95,109|-74.27|41.3,110|-73.69|40.74,111|-73.93|40.76,112|-73.94|40.66,113|-73.84|40.73,114|-73.77|40.69,115|-73.62|40.71,116|-73.88|40.57,117|-73.23|40.82,118|-73.5|40.77,119|-72.53|40.95,120|-74.22|42.92,121|-74.4|43.46,122|-73.81|42.7,123|-73.96|42.82,124|-74.27|42.09,125|-73.7|41.89,126|-73.88|41.69,127|-74.75|41.74,128|-73.91|43.61,129|-74.03|44.53,130|-76.16|43.08,131|-76.46|43.27,132|-76.2|43.03,133|-75.07|43.45,134|-75.35|43.03,135|-75.15|43.14,136|-75.39|44.33,137|-75.2|42.21,138|-75.46|42.43,139|-75.88|42.12,140|-78.48|43.01,141|-78.7|42.49,142|-78.8|42.91,143|-78.96|43.12,144|-77.71|42.96,145|-77.17|43.14,146|-77.65|43.17,147|-78.84|42.21,148|-77.18|42.29,149|-76.78|42.09,150|-80.23|40.56,151|-80.18|40.53,152|-79.97|40.46,153|-80.24|40.01,154|-79.65|39.92,155|-78.8|39.95,156|-79.47|40.33,157|-79.02|40.71,158|-78.66|41.32,159|-78.84|40.35,160|-79.88|40.93,161|-80.3|41.19,162|-79.35|41.08,163|-79.58|41.59,164|-80|41.87,165|-80.04|42.1,166|-78.28|40.48,167|-78.47|41.76,168|-78|40.97,169|-77.37|41.8,170|-77.29|40.44,171|-76.78|40.33,172|-77.81|39.98,173|-76.93|39.89,174|-76.72|39.97,175|-76.24|40.05,176|-76.34|40.05,177|-77.22|41.34,178|-76.77|40.93,179|-76.27|40.69,180|-75.45|40.67,181|-75.47|40.6,182|-75.88|40.9,183|-75.19|41.12,184|-75.38|41.53,185|-75.68|41.37,186|-76.17|41.4,187|-75.86|41.22,188|-76.12|41.82,189|-75.14|40.36,190|-75.37|39.97,191|-75.15|40.01,193|-75.78|39.92,194|-75.46|40.19,195|-75.9|40.42,196|-75.95|40.34,197|-75.68|39.53,198|-75.58|39.77,199|-75.46|38.83,200|-77.02|38.9,201|-77.68|38.9,202|-77.03|38.89,203|-77.01|38.86,204|-77.05|38.89,205|-77.01|38.87,206|-76.76|38.45,207|-76.78|38.88,208|-77.23|39.15,209|-76.99|39.05,210|-76.32|39.53,211|-76.73|39.58,212|-76.58|39.31,214|-76.55|39,215|-79.08|39.56,216|-76.02|38.86,217|-77.5|39.52,218|-75.57|38.27,219|-75.94|39.57,220|-77.25|38.78,221|-77.25|38.92,222|-77.11|38.88,223|-77.13|38.79,224|-77.25|38.22,225|-77.51|38.09,226|-78.25|39.03,227|-78.05|38.49,228|-78.79|38.57,229|-78.55|38.02,230|-78.09|37.66,231|-76.96|37.55,232|-77.46|37.51,233|-76.3|36.68,234|-76.66|36.77,235|-76.26|36.87,236|-76.44|37.12,237|-76.38|36.85,238|-77.41|36.94,239|-78.39|37.03,240|-80.1|37.23,241|-79.89|36.9,242|-82.49|36.83,243|-81.13|36.86,244|-79.51|38.05,245|-79.11|37.15,246|-81.8|37.19,247|-81.14|37.39,248|-81.64|37.47,249|-80.32|37.95,250|-81.45|38.27,251|-81.89|38.64,252|-81.45|38.77,253|-81.64|38.42,254|-78.11|39.45,255|-82.19|38.25,256|-82.08|37.76,257|-82.41|38.4,258|-81.21|37.72,259|-80.89|37.83,260|-80.63|40.05,261|-81.27|39.2,262|-80.02|38.75,263|-80.23|39.27,264|-80.65|39.21,265|-80.05|39.59,266|-80.8|38.48,267|-78.98|39.33,268|-79.12|38.88,270|-80.45|36.24,271|-80.24|36.06,272|-79.82|35.86,273|-79.52|35.55,274|-79.81|36.09,275|-78.54|35.93,276|-78.65|35.81,277|-78.9|35.99,278|-77.32|35.88,279|-76.5|36.19,280|-81.2|35.4,281|-80.41|35.21,282|-80.83|35.22,283|-78.94|34.96,284|-78.23|34.39,285|-77.23|35.06,286|-81.36|36.06,287|-82.78|35.51,288|-82.55|35.6,289|-83.97|35.11,290|-80.88|34.19,291|-80.62|33.71,292|-80.96|34.04,293|-81.86|34.78,294|-80.08|33.05,295|-79.49|34.07,296|-82.57|34.61,297|-80.92|34.83,298|-81.74|33.51,299|-80.96|32.55,300|-84.08|33.85,301|-84.91|34.04,302|-84.55|33.25,303|-84.42|33.77,304|-82.11|32.48,305|-83.81|34.58,306|-83.14|33.86,307|-85.1|34.71,308|-82.34|33.35,309|-82.01|33.4,310|-83.42|32.64,312|-83.64|32.83,313|-81.49|31.68,314|-81.15|32.03,315|-82.21|31.4,316|-83.21|31.02,317|-83.87|31.48,318|-84.69|32.45,319|-84.95|32.47,320|-82.58|30.27,321|-81.48|29.39,322|-81.69|30.3,323|-84.25|30.29,324|-85.58|30.55,325|-87.03|30.76,326|-82.6|29.58,327|-81.28|28.79,328|-81.32|28.47,329|-80.67|27.96,330|-80.58|25.31,331|-80.38|25.74,333|-80.25|26.13,334|-81.01|26.64,335|-82.22|28.19,336|-82.47|28.01,337|-82.73|27.85,338|-81.64|27.72,339|-81.71|26.77,341|-81.32|26.11,342|-82.16|27.29,344|-82.35|29.01,346|-82.52|28.41,347|-81.4|28.29,349|-80.72|27.34,350|-86.8|34.05,351|-86.38|33.43,352|-86.77|33.5,354|-87.86|33.07,355|-87.71|33.96,356|-87.4|34.67,357|-86.26|34.75,358|-86.59|34.69,359|-85.94|34.27,360|-86.09|32.09,361|-86.27|32.31,362|-85.65|33.53,363|-85.56|31.34,364|-86.97|31.38,365|-88.14|31.32,366|-88.19|30.68,367|-87.34|32.33,368|-85.41|32.61,369|-88.25|32.12,370|-87.02|36.12,371|-86.23|35.75,372|-86.83|36.15,373|-85.36|35.32,374|-85.33|35.06,376|-82.3|36.36,377|-84.31|36.27,378|-83.35|36.3,379|-83.97|35.97,380|-89.43|35.55,381|-89.96|35.1,382|-88.68|36.29,383|-88.5|35.61,384|-87.36|35.34,385|-85.34|36.18,386|-89.76|34.57,387|-90.81|33.54,388|-88.63|34.36,389|-89.9|33.77,390|-90|32.53,391|-90.67|32.51,392|-90.22|32.32,393|-88.8|32.42,394|-89.26|31.23,395|-89|30.59,396|-90.67|31.32,397|-88.87|33.53,398|-84.67|31.32,400|-85.29|38.07,401|-86.2|37.85,402|-85.66|38.19,403|-84.2|38.06,404|-84.42|37.53,405|-84.45|38.04,406|-84.87|38.22,407|-84.12|36.95,408|-83.26|36.9,409|-83.74|36.95,410|-84.32|38.64,411|-83.06|38.38,412|-82.67|37.89,413|-83.48|37.58,414|-83.15|37.84,415|-82.39|37.46,416|-82.78|37.54,417|-83.25|37.23,418|-82.88|37.21,420|-88.57|36.9,421|-86.09|36.89,422|-87.11|36.95,423|-87.02|37.52,424|-87.7|37.47,425|-84.71|37.15,426|-84.82|36.81,427|-85.73|37.32,430|-82.9|40.21,431|-82.99|39.69,432|-82.97|39.98,433|-83.38|40.55,434|-83.3|41.42,435|-84.22|41.46,436|-83.54|41.67,437|-81.66|39.85,438|-81.88|40.27,439|-80.9|40.25,440|-80.97|41.64,441|-81.66|41.42,442|-81.6|41.13,443|-81.54|41.07,444|-80.77|41.09,445|-80.64|41.05,446|-81.53|40.65,447|-81.39|40.83,448|-82.77|41.02,449|-82.55|40.74,450|-84.48|39.43,451|-83.84|39.16,452|-84.48|39.18,453|-84.3|39.97,454|-84.18|39.74,455|-83.81|39.94,456|-82.86|38.99,457|-81.78|39.35,458|-84.23|40.83,460|-86.13|40.17,461|-86.18|39.62,462|-86.14|39.79,463|-87.05|41.41,464|-87.34|41.55,465|-86.08|41.44,466|-86.28|41.66,467|-85.21|41.17,468|-85.17|41.09,469|-86.14|40.76,470|-85.08|39.16,471|-86.02|38.43,472|-85.74|39.05,473|-85.15|40.09,474|-86.63|38.99,475|-87.03|38.46,476|-87.53|38.13,477|-87.58|38.03,478|-87.29|39.45,479|-87.11|40.5,480|-82.79|42.83,481|-83.62|42.2,482|-83.1|42.38,483|-83.35|42.66,484|-83.22|43.29,485|-83.69|43.03,486|-84.36|43.99,487|-83.67|44.45,488|-84.67|43.02,489|-84.59|42.74,490|-85.54|42.2,491|-86.36|41.87,492|-84.36|42.06,493|-85.57|43.33,494|-86.14|43.39,495|-85.66|42.96,496|-85.52|44.44,497|-84.37|45.17,498|-86.94|46.17,499|-88.93|46.6,500|-94.77|41.63,501|-92.79|41.84,502|-93.67|42.12,503|-93.63|41.59,504|-93.37|43.17,505|-94.45|42.77,506|-92.45|42.65,507|-92.31|42.49,508|-94.56|40.96,510|-95.91|42.6,511|-96.39|42.52,512|-96.06|43.28,513|-95.16|43.27,514|-95.08|42.11,515|-95.55|41.44,516|-95.37|40.74,520|-90.98|42.46,521|-91.73|43.2,522|-92.31|41.9,523|-91.66|41.87,524|-91.69|41.96,525|-92.46|40.95,526|-91.44|40.88,527|-90.88|41.64,528|-90.61|41.56,530|-88.24|43.51,531|-88.33|42.75,532|-87.98|43.06,534|-87.86|42.74,535|-89.66|42.95,537|-89.38|43.08,538|-90.73|42.88,539|-89.55|43.64,540|-92.46|45.08,541|-88.23|45.09,542|-87.6|44.52,543|-88.01|44.53,544|-89.85|44.93,545|-89.86|45.89,546|-90.87|43.93,547|-91.52|44.85,548|-91.63|46.04,549|-88.96|44.19,550|-92.98|45.17,551|-93.08|44.96,553|-94.06|44.99,554|-93.31|45.01,556|-91.03|47.67,557|-92.68|47.39,558|-92.08|46.96,559|-92.28|43.89,560|-94.04|44.02,561|-95.65|43.92,562|-95.75|45.08,563|-94.59|45.83,564|-94.5|46.63,565|-96.08|46.86,566|-94.31|47.88,567|-96.22|48.39,570|-97.07|43.48,571|-96.76|43.54,572|-97.18|45.04,573|-98.53|43.91,574|-98.93|45.36,575|-100.61|43.86,576|-101.59|45.43,577|-103.11|44.26,580|-97.39|46.66,581|-96.83|46.86,582|-97.72|48.25,583|-99.34|48.32,584|-99.12|46.88,585|-100.98|46.76,586|-102.99|46.75,587|-101.7|48.34,588|-103.48|48.2,590|-108.62|45.98,591|-108.45|45.69,592|-105.6|48.2,593|-105.58|46.4,594|-111.24|47.79,595|-109.12|48.38,596|-111.74|46.65,597|-112.31|45.48,598|-114.25|46.97,599|-114.57|48.37,600|-88.15|42.29,601|-88.47|42.01,602|-87.69|42.04,603|-87.79|41.89,604|-88.09|41.39,605|-88.55|41.69,606|-87.69|41.83,607|-87.82|42.03,608|-87.76|41.84,609|-87.92|40.8,610|-89.56|42.18,611|-89.08|42.28,612|-90.29|41.5,613|-89.16|41.34,614|-90.43|40.82,615|-89.68|40.71,616|-89.61|40.72,617|-88.89|40.52,618|-88.15|40.11,619|-88.19|39.66,620|-90.01|39.13,622|-89.72|38.41,623|-91.02|39.99,624|-88.19|39.04,625|-89.21|39.63,626|-90|39.86,627|-89.66|39.8,628|-88.65|38.35,629|-88.89|37.55,630|-90.83|38.35,631|-90.32|38.64,633|-91.11|39.02,634|-91.78|39.93,635|-92.61|40.2,636|-90.64|37.61,637|-89.81|37.37,638|-89.73|36.55,639|-90.62|36.84,640|-94.1|39.07,641|-94.58|39.14,644|-94.69|40.13,645|-94.83|39.75,646|-93.55|39.89,647|-94.15|38.06,648|-94.35|36.93,650|-92.23|38.45,651|-92.19|38.51,652|-92.38|39.21,653|-93.26|38.71,654|-92.03|37.93,655|-91.92|37.67,656|-93.08|36.76,657|-92.43|37.03,658|-93.3|37.22,660|-95.12|38.84,661|-94.73|39.11,662|-94.72|38.95,664|-96.15|39.64,665|-96.34|39.4,666|-95.76|39.06,667|-95.23|37.64,668|-96.39|38.36,669|-97.86|39.77,670|-98.49|37.33,671|-98.4|37.44,672|-97.33|37.7,673|-95.81|37.23,674|-97.79|38.98,675|-98.99|38.25,676|-99.47|39.34,677|-101.15|39.35,678|-100.82|37.91,679|-101.43|37.18,680|-96.46|41.55,681|-96.05|41.24,683|-96.93|40.39,684|-97.26|40.89,685|-96.69|40.82,686|-97.68|41.55,687|-98.16|42.43,688|-99.15|41.34,689|-98.9|40.34,690|-100.99|40.37,691|-101.59|41.42,692|-100.64|42.67,693|-102.84|42.29,700|-89.93|29.63,701|-89.93|30.02,703|-90.65|29.62,704|-90.27|30.66,705|-92.25|30.2,706|-93.21|30.34,707|-91.2|30.57,708|-91.1|30.45,710|-93.4|32.45,711|-93.75|32.47,712|-91.95|32.56,713|-91.86|31.43,714|-92.84|31.57,716|-91.75|33.61,717|-92.79|33.48,718|-93.84|33.66,719|-93.61|34.4,720|-91.9|34.92,721|-92.56|34.93,722|-92.37|34.7,723|-90.59|35.07,724|-90.76|36.04,725|-91.81|36.01,726|-92.93|36.15,727|-94.05|36.11,728|-93.33|35.3,729|-94.08|35.29,730|-97.83|35.31,731|-97.5|35.43,734|-97.14|34.21,735|-98.81|34.53,736|-99.33|35.52,737|-98.2|36.42,738|-99.54|36.5,739|-101.67|36.74,740|-96.19|36.34,741|-95.96|36.15,743|-95.02|36.55,744|-95.44|35.64,745|-95.65|34.66,746|-97.05|36.71,747|-95.41|34.02,748|-96.66|35.17,749|-94.69|35.23,750|-96.76|33.06,751|-96.32|32.48,752|-96.78|32.79,753|-96.84|32.81,754|-95.67|33.37,755|-94.45|33.3,756|-94.58|32.49,757|-95.37|32.24,758|-95.68|31.44,759|-94.29|31.29,760|-97.54|32.59,761|-97.38|32.77,762|-97.44|33.52,763|-98.87|33.73,764|-98.59|32.61,765|-97.62|31.11,766|-97.06|31.7,767|-97.15|31.57,768|-99.37|31.23,769|-100.88|31.03,770|-95.39|29.79,772|-95.37|29.77,773|-95.24|30.48,774|-96.02|29.38,775|-94.98|29.68,776|-94.16|30.27,777|-94.19|29.96,778|-96.32|30.67,779|-96.95|28.92,780|-99.01|28.67,781|-97.93|29.08,782|-98.53|29.47,783|-98.14|27.63,784|-97.44|27.73,785|-98.19|26.39,786|-98.1|30.27,787|-97.78|30.3,788|-100.26|29.44,789|-96.87|29.92,790|-101.63|35.48,791|-101.85|35.21,792|-100.57|34.25,793|-102.15|33.37,794|-101.88|33.58,795|-100.31|32.7,796|-99.72|32.46,797|-102.22|31.57,798|-104.17|30.53,799|-106.16|31.8,800|-105.11|39.91,801|-104.47|39.51,802|-104.93|39.78,803|-105.31|40.04,804|-106.16|39.98,805|-105.35|40.57,806|-104.49|40.38,807|-103.09|40.4,808|-103.16|39.12,809|-104.67|38.79,810|-103.58|37.77,811|-106.39|37.54,812|-106.39|38.46,813|-108.42|37.49,814|-108.02|38.43,815|-108.7|38.92,816|-107.86|39.99,820|-105.27|41.31,821|-110.51|44.57,822|-104.67|42.39,823|-107.03|41.75,824|-108.65|44.32,825|-108.91|43.14,826|-106.43|43.1,827|-105|44.2,828|-106.71|44.55,829|-109.71|42.82,830|-110.51|43.7,831|-110.53|42.6,832|-112.17|42.66,833|-114.23|42.81,834|-111.63|43.86,835|-115.77|46.07,836|-115.99|44,837|-116.04|43.58,838|-116.47|47.77,840|-110.86|40.53,841|-111.81|40.71,843|-112.18|41.67,844|-112.01|41.23,845|-109.72|38.09,846|-111.68|39.63,847|-112.82|37.61,850|-112.09|33.63,851|-111.41|33,852|-111.69|33.6,853|-113.44|33.49,855|-110.3|33.43,856|-110.59|32,857|-111.09|32.18,859|-109.81|34.23,860|-111.15|35.89,863|-112.57|34.85,864|-113.79|35.66,865|-109.55|36.03,870|-106.9|35.22,871|-106.72|35.12,873|-108.56|35.44,874|-108.23|36.59,875|-106.04|36.27,877|-104.68|36.06,878|-107.94|34,879|-107.48|33.2,880|-108.03|32.37,881|-103.81|34.26,882|-104.07|32.87,883|-105.48|33.62,884|-103.79|35.74,890|-114.84|37,891|-115.42|36.33,893|-116.96|39.5,894|-118.06|41.29,895|-119.72|39.9,897|-119.8|39.18,898|-115.71|40.95,900|-118.32|34.04,902|-118.76|34.07,903|-118.34|33.95,904|-118.48|34.02,905|-118.33|33.83,906|-118.03|33.93,907|-118.45|33.39,908|-118.18|33.8,910|-118.25|34.28,911|-118.13|34.15,912|-118.25|34.19,913|-118.55|34.36,914|-118.47|34.18,915|-118.33|34.19,916|-118.38|34.18,917|-117.78|34.14,918|-118.13|34.09,919|-116.62|32.73,920|-116.7|33.16,921|-117.14|32.85,922|-115.5|33.59,923|-117.14|34.66,924|-117.33|34.17,925|-117.06|33.68,926|-117.73|33.63,927|-117.85|33.74,928|-117.71|33.85,930|-119.12|34.39,931|-119.97|34.48,932|-119.07|35.98,933|-119.01|35.35,934|-120.5|35.38,935|-118.36|37.37,936|-119.72|36.95,937|-119.85|36.71,939|-121.42|36.34,940|-122.31|37.41,941|-122.44|37.77,943|-122.13|37.44,944|-122.32|37.53,945|-122.05|38.09,946|-122.19|37.78,947|-122.26|37.89,948|-122.3|37.97,949|-122.74|38.14,950|-121.42|36.85,951|-121.76|37.33,952|-120.79|38.14,953|-120.56|37.62,954|-123.15|39.08,955|-123.75|40.5,956|-121.34|38.62,957|-120.86|39.13,958|-121.44|38.58,959|-121.73|39.47,960|-122.42|41.06,961|-120.33|40.52,967|-155.53|19.6,968|-157.83|21.34,969|144.77|13.45,970|-121.45|45.3,971|-123.79|45.64,972|-122.74|45.57,973|-123.26|44.68,974|-123.46|43.61,975|-123.06|42.34,976|-120.4|42.67,977|-120.77|44.32,978|-118.59|45.21,979|-117.63|43.34,980|-121.78|47.42,981|-122.32|47.6,982|-121.79|48.39,983|-123.87|47.96,984|-122.46|47.18,985|-123.27|46.94,986|-122.15|45.99,988|-119.91|48,989|-120.57|46.71,990|-117.56|47.62,991|-118.13|47.91,992|-117.4|47.67,993|-118.82|46.4,994|-117.21|46.2,995|-156.93|60.89,996|-151.66|60.82,997|-146.69|65.19,998|-136.2|58.94,999|-131.24|55.86",Jee="ABW|-70.02|12.54,AFG|68|34.63,AGO|14.24|-9.84,AIA|-63.06|18.22,ALA|19.93|60.1,ALB|19.81|41.14,AND|1.53|42.51,ARE|55.24|24.99,ARG|-61.28|-32.95,ARM|44.52|40.23,ASM|-170.7|-14.28,ATA|21.28|-80.52,ATF|70.22|-49.35,ATG|-61.84|17.12,AUS|144.91|-33.49,AUT|15.51|47.93,AZE|49.02|40.37,BDI|29.49|-3.34,BEL|4.37|50.89,BEN|2.33|7.65,BES|-68.27|12.15,BFA|-2.08|12.15,BGD|90.42|23.65,BGR|24.92|42.71,BHR|50.57|26.18,BHS|-77.34|25.06,BIH|17.97|44.18,BLM|-62.85|17.9,BLR|27.81|53.57,BLZ|-88.41|17.54,BMU|-64.78|32.29,BOL|-65.79|-17.39,BRA|-45.89|-17.51,BRB|-59.62|13.11,BRN|114.74|4.82,BTN|89.69|27.32,BWA|25.99|-23.43,CAF|18.32|4.94,CAN|-79.4|43.71,CCK|96.82|-12.16,CHE|7.96|47.07,CHL|-71.21|-33.72,CHN|114.44|32,CIV|-4.89|6.16,CMR|11.19|5.41,COD|20.23|-4.72,COG|14.18|-4.04,COK|-159.78|-21.21,COL|-74.85|5.93,COM|43.58|-11.89,CPV|-23.87|15.66,CRI|-84.14|9.99,CUB|-80.25|22.21,CUW|-68.88|12.12,CXR|105.68|-10.42,CYM|-81.38|19.32,CYP|33.31|35,CZE|15.44|49.89,DEU|9.65|51.24,DJI|43.15|11.59,DMA|-61.39|15.3,DNK|11.42|55.79,DOM|-70.07|18.75,DZA|3.55|35.62,ECU|-79.29|-1.4,EGY|31.22|29.84,ERI|38.84|15.25,ESH|-13.19|27.14,ESP|-2.91|39.69,EST|25.17|59.29,ETH|39.02|9.26,FIN|24.87|61.26,FJI|178.2|-17.85,FLK|-57.86|-51.69,FRA|2.87|47.28,FRO|-6.77|62.01,FSM|158.16|6.92,GAB|10.22|-0.06,GBR|-1.37|52.49,GEO|43.92|41.84,GGY|-2.54|49.46,GHA|-0.98|6.4,GIB|-5.35|36.14,GIN|-12.8|9.75,GLP|-61.53|16.23,GMB|-16.59|13.41,GNB|-15.48|11.9,GNQ|9.77|1.86,GRC|23.73|37.98,GRD|-61.75|12.05,GRL|-51.72|64.18,GTM|-90.71|14.73,GUF|-52.64|5.04,GUM|144.82|13.5,GUY|-58.11|6.63,HKG|114.15|22.33,HMD|73.5|-53.1,HND|-87.41|14.94,HRV|16.21|45.31,HTI|-72.34|18.54,HUN|19.21|47.39,IDN|106.85|-6.21,IMN|-4.48|54.15,IND|78.36|21,IOT|71.35|-6.19,IRL|-6.87|53.12,IRN|51.6|34.4,IRQ|44.78|33.65,ISL|-21.7|64.22,ISR|34.97|32.07,ITA|12|42.73,JAM|-76.91|18.03,JEY|-2.1|49.19,JOR|35.96|32.03,JPN|137.27|35.53,KAZ|70.17|47.24,KEN|36.81|-0.97,KGZ|73.96|41.94,KHM|104.7|11.75,KIR|172.98|1.33,KNA|-62.72|17.3,KOR|127.51|36.58,KWT|48.06|29.2,Kosovo|20.9|42.58,LAO|102.6|17.97,LBN|35.53|33.87,LBR|-10.39|6.36,LBY|13.19|32.89,LCA|-60.97|14.04,LIE|9.52|47.14,LKA|80.25|7.25,LSO|27.67|-29.38,LTU|24.18|55.04,LUX|6.08|49.56,LVA|24.13|56.85,MAC|113.55|22.19,MAF|-63.08|18.07,MAR|-6.65|33.43,MCO|7.42|43.74,MDA|28.82|47.09,MDG|47.46|-18.89,MDV|73.51|4.18,MEX|-100.65|21.59,MHL|171.38|7.09,MKD|21.47|41.8,MLI|-7.15|12.95,MLT|14.46|35.91,MMR|96.18|18.74,MNE|19.17|42.53,MNG|105.33|47.94,MNP|145.75|15.21,MOZ|32.58|-25.97,MRT|-14.58|18.01,MSR|-62.21|16.79,MTQ|-61.01|14.64,MUS|57.51|-20.23,MWI|34.34|-14.24,MYS|103.35|3.45,MYT|45.23|-12.77,N. Cyprus|33.56|35.27,NAM|17.19|-21.34,NCL|166.47|-22.26,NER|5.05|14.04,NFK|167.97|-29.05,NGA|5.91|7.87,NIC|-86.17|12.33,NIU|-169.92|-19.05,NLD|5.21|52.09,NOR|9.62|60.46,NPL|84.7|27.64,NRU|166.93|-0.55,NZL|174.54|-38.9,OMN|57.69|23.27,PAK|71.47|30.24,PAN|-79.83|8.98,PCN|-130.1|-25.07,PER|-76.4|-11.18,PHL|121.05|14.65,PLW|134.58|7.52,PNG|147.4|-7.71,POL|19.26|51.79,PRI|-66.24|18.35,PRK|126.54|39.52,PRT|-9.08|39.42,PRY|-57.15|-25.27,PSE|35.23|31.78,PYF|-149.59|-17.57,QAT|51.49|25.32,REU|55.45|-21.08,ROU|25.47|45.38,RUS|51.84|54.52,RWA|29.78|-1.98,SAU|43.01|23.76,SDN|31.67|14.67,SEN|-16.73|14.66,SGP|103.85|1.33,SGS|-36.51|-54.28,SHN|-5.72|-15.92,SJM|15.65|78.22,SLB|159.97|-9.44,SLE|-12.4|8.36,SLV|-89.08|13.7,SMR|12.45|43.94,SOM|44.96|4.91,SPM|-56.18|46.78,SRB|20.62|44.5,SSD|29.91|6.61,STP|6.73|0.34,SUR|-55.18|5.84,SVK|18.69|48.55,SVN|14.83|46.16,SWE|16.03|58.86,SWZ|31.28|-26.43,SXM|-63.05|18.03,SYC|55.46|-4.62,SYR|37.18|35.12,Somaliland|46.23|9.76,TCA|-72.1|21.74,TCD|16.57|11.53,TGO|1.16|6.8,THA|100.71|13.71,TJK|69.39|39.08,TKM|59.4|38.74,TLS|125.65|-8.67,TON|-175.2|-21.14,TTO|-61.4|10.5,TUN|10.23|35.87,TUR|32.1|39.5,TUV|179.19|-8.52,TWN|121.06|24.37,TZA|36.11|-5.88,UGA|32.23|0.59,UKR|32.8|48.99,URY|-56.28|-34.1,USA|-93.51|37.4,UZB|69.22|41.26,VAT|12.45|41.9,VCT|-61.21|13.14,VEN|-67.82|9.83,VGB|-64.62|18.43,VIR|-64.8|17.9,VNM|106.63|10.82,VUT|168.31|-17.74,WLF|-176.17|-13.28,WSM|-171.77|-13.83,YEM|44.62|14.36,ZAF|26.96|-28.33,ZMB|28.41|-13.86,ZWE|30.49|-18.56",wU=new Set(["n a","none","null","nil","unknown","not applicable","not available","not specified","unspecified","missing","blank","empty","tbd","to be determined"]),Yee=new Set(Array.from(wU).filter(e=>e.includes(" ")&&e!=="n a").map(e=>e.replace(/ /g,"")));function ki(e){return e?wU.has(e)||Yee.has(e.replace(/ /g,"")):!0}var Qee=80;function x1(e){return vU(e.normalize("NFD").replace(new RegExp("\\p{Diacritic}","gu"),"").toLowerCase()).replace(/[^\p{L}\p{Nd}\s]/gu," ").replace(/\s+/g," ").trim()}function h0(e){return ya(e)}var e1e="AD AND,AE ARE,AF AFG,AG ATG,AI AIA,AL ALB,AM ARM,AO AGO,AQ ATA,AR ARG,AS ASM,AT AUT,AU AUS,AW ABW,AX ALA,AZ AZE,BA BIH,BB BRB,BD BGD,BE BEL,BF BFA,BG BGR,BH BHR,BI BDI,BJ BEN,BL BLM,BM BMU,BN BRN,BO BOL,BQ BES,BR BRA,BS BHS,BT BTN,BV BVT,BW BWA,BY BLR,BZ BLZ,CA CAN,CC CCK,CD COD,CF CAF,CG COG,CH CHE,CI CIV,CK COK,CL CHL,CM CMR,CN CHN,CO COL,CR CRI,CU CUB,CV CPV,CW CUW,CX CXR,CY CYP,CZ CZE,DE DEU,DJ DJI,DK DNK,DM DMA,DO DOM,DZ DZA,EC ECU,EE EST,EG EGY,EH ESH,ER ERI,ES ESP,ET ETH,FI FIN,FJ FJI,FK FLK,FM FSM,FO FRO,FR FRA,GA GAB,GB GBR,GD GRD,GE GEO,GF GUF,GG GGY,GH GHA,GI GIB,GL GRL,GM GMB,GN GIN,GP GLP,GQ GNQ,GR GRC,GS SGS,GT GTM,GU GUM,GW GNB,GY GUY,HK HKG,HM HMD,HN HND,HR HRV,HT HTI,HU HUN,ID IDN,IE IRL,IL ISR,IM IMN,IN IND,IO IOT,IQ IRQ,IR IRN,IS ISL,IT ITA,JE JEY,JM JAM,JO JOR,JP JPN,KE KEN,KG KGZ,KH KHM,KI KIR,KM COM,KN KNA,KP PRK,KR KOR,KW KWT,KY CYM,KZ KAZ,LA LAO,LB LBN,LC LCA,LI LIE,LK LKA,LR LBR,LS LSO,LT LTU,LU LUX,LV LVA,LY LBY,MA MAR,MC MCO,MD MDA,ME MNE,MF MAF,MG MDG,MH MHL,MK MKD,ML MLI,MM MMR,MN MNG,MO MAC,MP MNP,MQ MTQ,MR MRT,MS MSR,MT MLT,MU MUS,MV MDV,MW MWI,MX MEX,MY MYS,MZ MOZ,NA NAM,NC NCL,NE NER,NF NFK,NG NGA,NI NIC,NL NLD,NO NOR,NP NPL,NR NRU,NU NIU,NZ NZL,OM OMN,PA PAN,PE PER,PF PYF,PG PNG,PH PHL,PK PAK,PL POL,PM SPM,PN PCN,PR PRI,PS PSE,PT PRT,PW PLW,PY PRY,QA QAT,RE REU,RO ROU,RS SRB,RU RUS,RW RWA,SA SAU,SB SLB,SC SYC,SD SDN,SE SWE,SG SGP,SH SHN,SI SVN,SJ SJM,SK SVK,SL SLE,SM SMR,SN SEN,SO SOM,SR SUR,SS SSD,ST STP,SV SLV,SX SXM,SY SYR,SZ SWZ,TC TCA,TD TCD,TF ATF,TG TGO,TH THA,TJ TJK,TK TKL,TL TLS,TM TKM,TN TUN,TO TON,TR TUR,TT TTO,TV TUV,TW TWN,TZ TZA,UA UKR,UG UGA,UM UMI,US USA,UY URY,UZ UZB,VA VAT,VC VCT,VE VEN,VG VGB,VI VIR,VN VNM,VU VUT,WF WLF,WS WSM,YE YEM,YT MYT,ZA ZAF,ZM ZMB,ZW ZWE",dn=(()=>{let e=new Map;for(let t of e1e.split(",")){let[a,r]=t.split(" ");a&&r&&e.set(a,r)}return e})(),t1e=new Set(dn.keys()),a1e=new Set(dn.values()),n1e=["en","fr","es","de","it","pt","ru","ja","zh","ko","ar","hi","tr","pl","he","nl","sv","fi","nb","da","cs","el","uk","ro","id","vi","th","sk","hu","hr"],r1e={usa:"USA","u.s.":"USA","u.s.a.":"USA",us:"USA",america:"USA","united states of america":"USA","the united states":"USA",uk:"GBR","u.k.":"GBR","great britain":"GBR",britain:"GBR",england:"GBR","south korea":"KOR","north korea":"PRK",korea:"KOR","ivory coast":"CIV","cote d ivoire":"CIV",vietnam:"VNM",laos:"LAO",syria:"SYR",iran:"IRN",russia:"RUS",moldova:"MDA",tanzania:"TZA",bolivia:"BOL",venezuela:"VEN",brunei:"BRN","czech republic":"CZE",czechia:"CZE",slovakia:"SVK",uae:"ARE","united arab emirates":"ARE",drc:"COD","dr congo":"COD","democratic republic of the congo":"COD","republic of the congo":"COG",congo:"COG",swaziland:"SWZ",eswatini:"SWZ","cape verde":"CPV","cabo verde":"CPV",burma:"MMR",myanmar:"MMR",holland:"NLD","the netherlands":"NLD",netherlands:"NLD",vatican:"VAT","vatican city":"VAT",palestine:"PSE",macau:"MAC",macao:"MAC","hong kong":"HKG",taiwan:"TWN",turkey:"TUR",turkiye:"TUR",macedonia:"MKD","north macedonia":"MKD",gambia:"GMB","the gambia":"GMB",bahamas:"BHS","the bahamas":"BHS","east timor":"TLS","timor leste":"TLS"},i1e=Object.freeze({"Antigua and Barbuda":"ATG","Bosnia and Herzegovina":"BIH","Heard Island and McDonald Islands":"HMD","Saint Kitts and Nevis":"KNA","St Kitts and Nevis":"KNA","Saint Pierre and Miquelon":"SPM","St Pierre and Miquelon":"SPM","Saint Vincent and the Grenadines":"VCT","St Vincent and the Grenadines":"VCT","Sao Tome and Principe":"STP","South Georgia and the South Sandwich Islands":"SGS","Svalbard and Jan Mayen":"SJM","Trinidad and Tobago":"TTO","Turks and Caicos Islands":"TCA","Turks and Caicos":"TCA","Wallis and Futuna":"WLF","Saint Helena, Ascension and Tristan da Cunha":"SHN","Bonaire, Sint Eustatius and Saba":"BES","United Kingdom of Great Britain and Northern Ireland":"GBR","Bolivia, Plurinational State of":"BOL","Bolivia (Plurinational State of)":"BOL","Brunei Darussalam":"BRN","Congo, The Democratic Republic of the":"COD","Congo, Democratic Republic of the":"COD","Democratic Republic of Congo":"COD","Falkland Islands (Malvinas)":"FLK","Holy See (Vatican City State)":"VAT","Holy See":"VAT","Iran, Islamic Republic of":"IRN","Iran (Islamic Republic of)":"IRN","Islamic Republic of Iran":"IRN","Korea, Republic of":"KOR","Republic of Korea":"KOR","Korea (the Republic of)":"KOR","Korea, Democratic People's Republic of":"PRK","Democratic People's Republic of Korea":"PRK","Korea (the Democratic People's Republic of)":"PRK","Lao People's Democratic Republic":"LAO","Micronesia, Federated States of":"FSM","Micronesia (Federated States of)":"FSM","Moldova, Republic of":"MDA","Republic of Moldova":"MDA","Palestine, State of":"PSE","State of Palestine":"PSE","Russian Federation":"RUS","Syrian Arab Republic":"SYR","Taiwan, Province of China":"TWN","Tanzania, United Republic of":"TZA","United Republic of Tanzania":"TZA","Venezuela, Bolivarian Republic of":"VEN","Venezuela (Bolivarian Republic of)":"VEN","Viet Nam":"VNM","Virgin Islands, British":"VGB","Virgin Islands, U.S.":"VIR","Saint Martin (French part)":"MAF","Sint Maarten (Dutch part)":"SXM","Netherlands (Kingdom of the)":"NLD","Macedonia, the former Yugoslav Republic of":"MKD"}),xf=null,Kf=null;function WU(){if(xf)return xf;let e=new Map,t=[],a=["en",...n1e.filter(n=>n!=="en")];for(let n of a){let i=null;try{i=new Intl.DisplayNames([n],{type:"region"})}catch{continue}for(let[o,s]of dn){let l;try{l=i.of(o)}catch{l=void 0}if(!l||l===o)continue;let u=x1(l);u&&!e.has(u)&&e.set(u,s),t.push([l,s])}}for(let[n,i]of Object.entries(i1e)){let o=x1(n);o&&!e.has(o)&&e.set(o,i),t.push([n,i])}for(let[n,i]of Object.entries(r1e)){let o=x1(n);o&&e.set(o,i),t.push([n,i])}let r=new Yf;for(let[n,i]of t){let o=x1(n);e.get(o)===i&&(r.add(n,i),r.add(o,i))}return xf=e,Kf=r,e}function o1e(){return Kf||WU(),Kf}function s1e(e){if(e==null)return null;let t=String(e).trim();if(!t)return null;let a=x1(t);return WU().get(a)||(ki(a)?null:o1e().get(h0(t))??null)}function z8(e){return dn.get(String(e||"").trim().toUpperCase())??null}function dr(e){if(e==null)return null;let t=String(e).trim();if(!t)return null;let a=t.toUpperCase();return a.length===3&&a1e.has(a)?a:a.length===2&&t1e.has(a)?dn.get(a)??null:s1e(t)}var dU={"north-america":"AG AI AW BB BL BM BQ BS BZ CA CR CU CW DM DO GD GL GP GT HN HT JM KN KY LC MF MQ MS MX NI PA PM PR SV SX TC TT US VC VG VI","south-america":"AR BO BR CL CO EC FK GF GY PE PY SR UY VE",europe:"AD AL AT AX BA BE BG BY CH CY CZ DE DK EE ES FI FO FR GB GG GI GR HR HU IE IM IS IT JE LI LT LU LV MC MD ME MK MT NL NO PL PT RO RS RU SE SI SJ SK SM UA VA",africa:"AO BF BI BJ BW CD CF CG CI CM CV DJ DZ EG EH ER ET GA GH GM GN GQ GW KE KM LR LS LY MA MG ML MR MU MW MZ NA NE NG RE RW SC SD SH SL SN SO SS ST SZ TD TG TN TZ UG YT ZA ZM ZW",asia:"AE AF AM AZ BD BH BN BT CC CN CX GE HK ID IL IN IO IQ IR JO JP KG KH KP KR KW KZ LA LB LK MM MN MO MV MY NP OM PH PK PS QA SA SG SY TH TJ TL TM TR TW UZ VN YE",oceania:"AS AU CK FJ FM GU KI MH MP NC NF NR NU NZ PF PG PN PW SB TK TO TV UM VU WF WS",antarctica:"AQ BV GS HM TF"},R8=(()=>{let e=new Map;for(let t of Object.keys(dU))for(let a of dU[t].split(/\s+/))a&&e.set(a,t);return e})();function l1e(e){for(let[t,a]of e){let r=R8.get(t);r&&!R8.has(a)&&R8.set(a,r)}}l1e(dn);function CU(e){if(!e)return null;let t=String(e).trim().toUpperCase();if(!t)return null;let a=R8.get(t);if(a)return a;let r=dr(String(e));return r?R8.get(r)??null:null}var u1e=new Set("AE BH CY EG IL IQ IR JO KW LB OM PS QA SA SY TR YE".split(" ")),aue=new Set([...u1e].map(e=>dn.get(e)).filter(e=>!!e)),c1e=Symbol.for("@bicharts/shape-core/admin1-lookup/v1"),Yt=(e=>e[c1e]??={lookup:null})(globalThis),d1e=(()=>{let e=new Map;return dn.forEach((t,a)=>e.set(t,a)),e})();function Xf(){return Yt.lookup!==null}function _U(e){let t=dr(e);return t?d1e.get(t)??null:null}var h1e=10;function p1e(e,t={}){if(!Yt.lookup||!e)return{status:"unmatched"};let a=x1(String(e)),r=Yt.lookup.cityByKey.get(a);if(!r||r.length===0)return{status:"unmatched"};let n=t.country?_U(t.country):null;if(t.country&&n?r=r.filter(c=>c.cc===n):t.region&&(r=r.filter(c=>CU(c.cc)===t.region)),r.length===0)return{status:"unmatched"};let i=r.filter(c=>c.primary),o=i.length>0?i:r,s=new Map;for(let c of o){let d=`${c.cc}|${c.a1}|${c.lat}|${c.lon}`;s.has(d)||s.set(d,c)}let l=[...s.values()].sort((c,d)=>d.popK-c.popK),u=l[0];return l.length===1||u.popK>=h1e*Math.max(l[1].popK,1)?!u.a1&&!u.pid?{status:"unmatched"}:{status:"resolved",cc:u.cc,admin1:u.a1,code:`${u.cc}.${u.a1}`,provinceId:u.pid||null,lat:u.lat,lon:u.lon,popK:u.popK}:{status:"ambiguous",candidates:l.length}}function m1e(e,t){if(!Yt.lookup||!e)return[];let a=Yt.lookup.admin1ByKey.get(x1(String(e)))??[],r=t?_U(t):null;return r?a.filter(n=>n.startsWith(r+".")):[...a]}function g1e(e){return!Yt.lookup||!e?null:Yt.lookup.provinceOfCode.get(e)??null}function f1e(e){return!Yt.lookup||!e?null:Yt.lookup.centers?.get(String(e).trim().toUpperCase())??null}function d0(e,t={}){if(!Yt.lookup||!e)return{status:"unmatched"};let a=String(e).trim();if(!a)return{status:"unmatched"};if(Yt.lookup.provinceIds.has(a.toUpperCase()))return{status:"resolved",provinceId:a.toUpperCase()};let r=Yt.lookup.provinceOfCode.get(a.toUpperCase());if(r)return{status:"resolved",provinceId:r};let n=[...new Set(m1e(a,t.country??null).map(g1e).filter(i=>!!i))];if(n.length>1&&t.region){let i=n.filter(o=>CU(o.split("-")[0])===t.region);i.length&&(n=i)}return n.length===1?{status:"resolved",provinceId:n[0]}:n.length?{status:"ambiguous",candidates:n.length}:{status:"unmatched"}}var y1e={"north-america":"N",world:"W"};function AU(e,t){let a=e.filter(r=>r.row.kinds.includes(y1e[t||"north-america"]));return a.length?a:(t||"north-america")==="world"?e:a}var MU=$ee;function b1e(){return MU.length>0}var N1e={US:"washington",CA:"ottawa",MX:"mexico city",GB:"london",FR:"paris",DE:"berlin",IT:"rome",ES:"madrid",PT:"lisbon",NL:"amsterdam",BE:"brussels",CH:"bern",AT:"vienna",IE:"dublin",PL:"warsaw",SE:"stockholm",NO:"oslo",DK:"copenhagen",FI:"helsinki",IS:"reykjavik",CZ:"prague",SK:"bratislava",HU:"budapest",RO:"bucharest",BG:"sofia",GR:"athens",TR:"ankara",UA:"kyiv",RU:"moscow",RS:"belgrade",HR:"zagreb",SI:"ljubljana",EE:"tallinn",LV:"riga",LT:"vilnius",JP:"tokyo",CN:"beijing",KR:"seoul",KP:"pyongyang",IN:"new delhi",PK:"islamabad",BD:"dhaka",LK:"colombo",TH:"bangkok",VN:"hanoi",PH:"manila",ID:"jakarta",MY:"kuala lumpur",SG:"singapore",MM:"naypyidaw",KH:"phnom penh",LA:"vientiane",NP:"kathmandu",AF:"kabul",IR:"tehran",IQ:"baghdad",SA:"riyadh",AE:"abu dhabi",QA:"doha",KW:"kuwait city",BH:"manama",OM:"muscat",JO:"amman",LB:"beirut",SY:"damascus",IL:"jerusalem",YE:"sanaa",EG:"cairo",LY:"tripoli",TN:"tunis",DZ:"algiers",MA:"rabat",SD:"khartoum",ET:"addis ababa",KE:"nairobi",TZ:"dodoma",UG:"kampala",NG:"abuja",GH:"accra",CI:"yamoussoukro",SN:"dakar",ML:"bamako",CM:"yaounde",CD:"kinshasa",CG:"brazzaville",AO:"luanda",ZM:"lusaka",ZW:"harare",MZ:"maputo",BW:"gaborone",NA:"windhoek",ZA:"pretoria",AU:"canberra",NZ:"wellington",PG:"port moresby",FJ:"suva",BR:"brasilia",AR:"buenos aires",CL:"santiago",PE:"lima",CO:"bogota",VE:"caracas",EC:"quito",BO:"la paz",PY:"asuncion",UY:"montevideo",GY:"georgetown",SR:"paramaribo",CU:"havana",DO:"santo domingo",HT:"port au prince",JM:"kingston",TT:"port of spain",PA:"panama city",CR:"san jose",NI:"managua",HN:"tegucigalpa",SV:"san salvador",GT:"guatemala city",BZ:"belmopan",AZ:"baku",AM:"yerevan",GE:"tbilisi",KZ:"astana",UZ:"tashkent",TM:"ashgabat",KG:"bishkek",TJ:"dushanbe",MN:"ulaanbaatar",BY:"minsk",MD:"chisinau",AL:"tirana",MK:"skopje",BA:"sarajevo",ME:"podgorica",XK:"pristina",CY:"nicosia",MT:"valletta",LU:"luxembourg"},zf=null;function $8(){if(zf)return zf;let e=new Map,t=MU,a=(r,n,i)=>{if(!r)return;let o=e.get(r);o?o.some(s=>s.row===n)||o.push({row:n,primary:i}):e.set(r,[{row:n,primary:i}])};for(let r of t.split(",")){let n=r.split("|");if(n.length<7)continue;let i={a1:n[1],cc:n[2],lon:+n[3],lat:+n[4],pop:+n[5],kinds:n[6]||"N"};n.length>8&&n[8]&&(i.tags=n[8].split(";").filter(Boolean));let o=N1e[i.cc];if(o&&ya(n[0])===ya(o)&&(i.tags||(i.tags=[]),i.tags.includes("capital")||i.tags.push("capital")),a(x1(n[0]),i,!0),n.length>7&&n[7])for(let s of n[7].split(";"))a(x1(s),i,!1)}for(let r of e.values())r.sort((n,i)=>i.row.pop-n.row.pop);return zf=e,e}var v1e=200,Rf=null;function PU(){if(Rf)return Rf;let e=new Map;for(let[t,a]of $8()){if(!t.endsWith(" city"))continue;let r=t.slice(0,-5);!r||$8().get(r)?.some(n=>n.primary)||a[0].row.pop<v1e||e.set(r,a)}return Rf=e,e}function UU(e,t){if(!e)return;let a=hU($8(),PU(),e);if(a)return a;if(ki(e))return;let r=t??ya(e);if(E8(r))return hU(S1e(),k1e(),r)}function hU(e,t,a){let r=e.get(a);if(r?.some(o=>o.primary))return r;let n=t.get(a);if(!n)return r;let i=n.map(o=>({row:o.row,primary:!0}));return r?[...i,...r]:i}var Ef=null;function S1e(){return Ef||(Ef=IU($8())),Ef}var $f=null;function k1e(){return $f||($f=IU(PU())),$f}function IU(e){let t=new Map;for(let[a,r]of e){let n=ya(a);if(!E8(n))continue;let i=t.get(n);if(!i){t.set(n,r.slice());continue}for(let o of r){let s=i.findIndex(l=>l.row===o.row);s<0?i.push(o):o.primary&&!i[s].primary&&(i[s]=o)}}for(let a of t.values())a.sort((r,n)=>n.row.pop-r.row.pop);return t}var jf=null;function w1e(){if(jf)return jf;let e=new Map;for(let a of Jee.split(",")){let r=a.split("|");r.length<3||e.set(r[0],{lon:+r[1],lat:+r[2]})}let t=new Map;for(let a of $8().values())for(let r of a){let n=z8(r.row.cc);if(!n)continue;let i=t.get(n);(i===void 0||r.row.pop>i)&&(t.set(n,r.row.pop),e.set(n,{lon:r.row.lon,lat:r.row.lat}))}return jf=e,e}var Of=null;function p0(){if(Of)return Of;let e=new Map;for(let t of Zee.split(",")){let a=t.split("|");if(a.length<5)continue;let r={key:a[0],cc:a[1],name:a[2],lon:+a[3],lat:+a[4]};e.set(x1(r.key),r);let n=x1(r.name);n==="mexico"&&r.cc==="MX"?(e.set("estado de mexico",r),e.set("edomex",r)):e.set(n,r)}return Of=e,e}var Df=null;function W1e(){if(Df)return Df;let e=new Yf;for(let[t,a]of p0())e.add(t,a);return Df=e,e}var Lf=null;function C1e(){if(Lf)return Lf;let e=new Map;for(let t of qee.split(",")){let a=t.split("|");a.length<3||e.set(a[0],{lon:+a[1],lat:+a[2]})}return Lf=e,e}var _1e=new Set(["USA","PRI","VIR","GUM","ASM","MNP"]),ey=new Set(["USA","CAN","MEX"]);function pU(e,t){return t!=="north-america"||!!e&&ey.has(e)}function Si(e){if(e==null)return null;let t=x1(String(e));if(!t)return null;let a=p0().get(t);return a?a.key:ki(t)?null:W1e().get(h0(String(e)))?.key??null}function A1e(e){return p0().get(x1(e))?.cc??null}function M1e(e){let t=A1e(e);return t?z8(t):null}function TU(e){if(e==null)return null;let t=String(e).trim().replace(/\.0+$/,"");if(!t)return null;let a=/^(\d{5})(-\d{4})?$/.exec(t);return a?a[1]:/^\d{3,4}$/.test(t)?t.padStart(5,"0"):null}function ty(e){if(e==null)return[];let t=String(e).trim().replace(/\.0+$/,"");if(!t)return[];if(/^\d{3}$/.test(t)){let r=t.padStart(5,"0").slice(0,3);return r===t?[t]:[t,r]}let a=TU(t);return a?[a.slice(0,3)]:[]}function P1e(e){return!!e&&e.ambiguous===!0&&!("precision"in e)}function U1e(e){let t=null,a=typeof e.lat=="string"?e.lat.trim():e.lat,r=typeof e.lon=="string"?e.lon.trim():e.lon;if(a!=null&&a!==""&&r!==void 0&&r!==null&&r!==""){let o=+a,s=+r;if(isFinite(o)&&isFinite(s)&&o>=-90&&o<=90&&s>=-180&&s<=180)if(o===0&&s===0)t={lat:0,lon:0,precision:"latlon"};else return{lat:o,lon:s,precision:"latlon"}}let n=dr(e.country),i=Si(e.state);if(i&&n&&M1e(i)!==n&&(i=null),i&&e.region&&e.region!=="north-america"&&(i=null),e.city!==void 0&&e.city!==null){let o=x1(String(e.city)),s=UU(o,h0(String(e.city))),l=s?AU(s,e.mapKind):null;if(l&&l.length){let u=e.state===void 0||e.state===null?"":String(e.state).trim(),c=u?x1(u):"",d=u?Si(u):null,h=[],p=-1;for(let g of l){let f=g.row,y=0;if(u&&f.a1!=="")if(d&&f.a1===d||x1(f.a1)===c)y++;else continue;if(n)if(z8(f.cc)===n)y++;else continue;y>p?(p=y,h=[g]):y===p&&h.push(g)}h.some(g=>g.primary)&&(h=h.filter(g=>g.primary));let m=new Map;for(let g of h)m.set(g.row.lon.toFixed(2)+","+g.row.lat.toFixed(2),g.row);if(m.size===1){let g=h[0].row;return{lat:g.lat,lon:g.lon,precision:"city"}}if(m.size>1)return{ambiguous:!0,matches:m.size}}if(Xf()){let u=p1e(String(e.city),{country:e.country??null,region:e.region??null});if(u.status==="ambiguous")return{ambiguous:!0,matches:u.candidates};if(u.status==="resolved"&&pU(z8(u.cc),e.mapKind)){let c=e.state===void 0||e.state===null?"":String(e.state).trim(),d=c?d0(c,{country:e.country??null,region:e.region??null}):null;if(!d||d.status==="resolved"&&d.provinceId===u.provinceId)return{lat:u.lat,lon:u.lon,precision:"city"}}}}if(!n||_1e.has(n))for(let o of ty(e.zip)){let s=C1e().get(o);if(s)return{lat:s.lat,lon:s.lon,precision:"zip3"}}if(i){let o=p0().get(x1(i));if(o)return{lat:o.lat,lon:o.lon,precision:"state"}}if(!i&&e.state!==void 0&&e.state!==null&&String(e.state).trim()&&Xf()){let o=d0(String(e.state),{country:e.country??null,region:e.region??null});if(o.status==="ambiguous")return{ambiguous:!0,matches:o.candidates};if(o.status==="resolved"){let s=z8(o.provinceId.split("-")[0]),l=f1e(o.provinceId);if(l&&(!n||s===n)&&pU(s,e.mapKind))return{lat:l[1],lon:l[0],precision:"state"}}}if(n&&(e.mapKind!=="north-america"||ey.has(n))){let o=w1e().get(n);if(o)return{lat:o.lat,lon:o.lon,precision:"country"}}return t}var c0={latlon:0,city:1,zip3:2,state:3,country:4},mU=8;function xU(e,t,a){let r=new Array(e.length),n=new Array(e.length),i=new Array(e.length),o=new Set,s=[],l=new Set,u=[],c=new Set,d=[],h={latlon:0,city:0,zip3:0,state:0,country:0},p=0,m=0,g=null;for(let y=0;y<e.length;++y){let b=e[y],v=U1e({...b,mapKind:t,region:a});if(P1e(v)){r[y]=null,n[y]=null,i[y]=null,m++;let k=Ff(b);k&&!c.has(k.toLowerCase())&&(c.add(k.toLowerCase()),d.length<mU&&d.push(k))}else if(v){if(r[y]=v.lat,n[y]=v.lon,i[y]=v.precision,p++,h[v.precision]++,(g===null||c0[v.precision]>c0[g])&&(g=v.precision),c0[v.precision]>c0.city){let k=Ff(b);k&&!l.has(k.toLowerCase())&&(l.add(k.toLowerCase()),u.length<mU&&u.push(k))}}else{r[y]=null,n[y]=null,i[y]=null;let k=Ff(b);k&&!o.has(k.toLowerCase())&&(o.add(k.toLowerCase()),s.push(k))}}let f=!b1e()&&e.some(y=>y.city!==null&&y.city!==void 0&&String(y.city).trim()!=="");return{lat:r,lon:n,precisions:i,precision:g,precisionCounts:h,coarseExamples:u,unmatched:s,ambiguousRows:m,ambiguousExamples:d,matchedRows:p,totalRows:e.length,...f?{cityTableMissing:!0}:{}}}function Ff(e){return[e.city,e.state,e.zip,e.country].filter(a=>a!=null&&String(a).trim()!=="").map(a=>String(a).trim()).join(", ")||(e.label===null||e.label===void 0?"":String(e.label).trim())}function zU(e,t){if(!e)return!1;let a=UU(e);return a?AU(a,t).length>0:!1}/*! @bicharts/shape-core — Apache-2.0. Bundled reference data: GeoNames (https://www.geonames.org/) CC BY 4.0; US Census/TIGER (public domain). Full text: NOTICE in this package. */var I1e="006007008009010011012013014015016017018019020021022023024025026027028029030031032033034035036037038039040041042043044045046047048049050051052053054056057058059060061062063064065066067068069070071072073074075076077078079080081082083084085086087088089100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191193194195196197198199200201202203204205206207208209210211212214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310312313314315316317318319320321322323324325326327328329330331333334335336337338339341342344346347349350351352354355356357358359360361362363364365366367368369370371372373374376377378379380381382383384385386387388389390391392393394395396397398400401402403404405406407408409410411412413414415416417418420421422423424425426427430431432433434435436437438439440441442443444445446447448449450451452453454455456457458460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508510511512513514515516520521522523524525526527528530531532534535537538539540541542543544545546547548549550551553554556557558559560561562563564565566567570571572573574575576577580581582583584585586587588590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620622623624625626627628629630631633634635636637638639640641644645646647648650651652653654655656657658660661662664665666667668669670671672673674675676677678679680681683684685686687688689690691692693700701703704705706707708710711712713714716717718719720721722723724725726727728729730731734735736737738739740741743744745746747748749750751752753754755756757758759760761762763764765766767768769770772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816820821822823824825826827828829830831832833834835836837838840841843844845846847850851852853855856857859860863864865870871873874875877878879880881882883884890891893894895897898900902903904905906907908910911912913914915916917918919920921922923924925926927928930931932933934935936937939940941943944945946947948949950951952953954955956957958959960961967968969970971972973974975976977978979980981982983984985986988989990991992993994995996997998999",T1e=new Set(I1e.match(/.{3}/g)??[]),RU=[["AL","Alabama"],["AK","Alaska"],["AZ","Arizona"],["AR","Arkansas"],["CA","California"],["CO","Colorado"],["CT","Connecticut"],["DE","Delaware"],["FL","Florida"],["GA","Georgia"],["HI","Hawaii"],["ID","Idaho"],["IL","Illinois"],["IN","Indiana"],["IA","Iowa"],["KS","Kansas"],["KY","Kentucky"],["LA","Louisiana"],["ME","Maine"],["MD","Maryland"],["MA","Massachusetts"],["MI","Michigan"],["MN","Minnesota"],["MS","Mississippi"],["MO","Missouri"],["MT","Montana"],["NE","Nebraska"],["NV","Nevada"],["NH","New Hampshire"],["NJ","New Jersey"],["NM","New Mexico"],["NY","New York"],["NC","North Carolina"],["ND","North Dakota"],["OH","Ohio"],["OK","Oklahoma"],["OR","Oregon"],["PA","Pennsylvania"],["RI","Rhode Island"],["SC","South Carolina"],["SD","South Dakota"],["TN","Tennessee"],["TX","Texas"],["UT","Utah"],["VT","Vermont"],["VA","Virginia"],["WA","Washington"],["WV","West Virginia"],["WI","Wisconsin"],["WY","Wyoming"],["DC","District of Columbia"],["PR","Puerto Rico"],["GU","Guam"],["VI","U.S. Virgin Islands"],["AS","American Samoa"],["MP","Northern Mariana Islands"]],x1e=new Set(RU.map(e=>e[0])),z1e={"Ala.":"AL","Alab.":"AL","Ariz.":"AZ","Ark.":"AR","Calif.":"CA","Cal.":"CA","Colo.":"CO","Col.":"CO","Conn.":"CT","Del.":"DE","Fla.":"FL","Flor.":"FL","Ga.":"GA","Ill.":"IL","Ind.":"IN","Kan.":"KS","Kans.":"KS","Ky.":"KY","La.":"LA","Md.":"MD","Mass.":"MA","Mich.":"MI","Minn.":"MN","Miss.":"MS","Mo.":"MO","Mont.":"MT","Neb.":"NE","Nebr.":"NE","Nev.":"NV","N.H.":"NH","N.J.":"NJ","N.M.":"NM","N.Mex.":"NM","N. Mex.":"NM","N.Y.":"NY","N.C.":"NC","N.D.":"ND","N.Dak.":"ND","N. Dak.":"ND","Okla.":"OK","Ore.":"OR","Oreg.":"OR","Pa.":"PA","Penn.":"PA","Penna.":"PA","R.I.":"RI","S.C.":"SC","S.D.":"SD","S.Dak.":"SD","S. Dak.":"SD","Tenn.":"TN","Tex.":"TX","Vt.":"VT","Va.":"VA","Wash.":"WA","W.Va.":"WV","W. Va.":"WV","Wis.":"WI","Wisc.":"WI","Wyo.":"WY","D.C.":"DC","Wash. D.C.":"DC","Wash., D.C.":"DC","P.R.":"PR","V.I.":"VI"},EU=(()=>{let e=new Map;for(let[t,a]of RU)e.set(vi(a),t);e.set(vi("Washington DC"),"DC"),e.set(vi("Washington D.C."),"DC"),e.set(vi("US Virgin Islands"),"VI");for(let[t,a]of Object.entries(z1e)){let r=vi(t);r&&!e.has(r)&&e.set(r,a)}return e})(),R1e=(()=>{let e=new Yf;for(let[t,a]of EU)e.add(t,a);return e})();function E1e(e){let t=vi(e);return EU.get(t)||(ki(t)?null:R1e.get(h0(e))??null)}var $1e=new Set(["01","02","04","05","06","08","09","10","11","12","13","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31","32","33","34","35","36","37","38","39","40","41","42","44","45","46","47","48","49","50","51","53","54","55","56","60","66","69","72","78"]);function j1e(e){return e.trim().toUpperCase()}function vi(e){return x1(e)}var O1e=new Set(["zip","zipcode","postal","postcode","plz"]);function D1e(e,t){if(!e)return!1;for(let a of Bee(e))if(t.has(a))return!0;return!1}function L1e(e,t){if(e==null)return null;let a=String(e).trim();if(a.length===0)return null;switch(t){case"country-iso3":case"country-iso2":case"country-name":return dr(a);case"us-state-code":case"us-state-name":{let r=j1e(a);return x1e.has(r)?r:E1e(a)}case"us-zip5":return TU(a);case"us-county-fips":return/^\d{5}$/.test(a)&&$1e.has(a.slice(0,2))?a:null;default:return null}}function $U(e){switch(e){case"country-iso3":case"country-iso2":case"country-name":case"us-state-code":case"us-state-name":case"us-zip5":case"us-county-fips":return!0;default:return!1}}function F1e(e,t){return t==="us-zip5"?T1e.has(e.slice(0,3)):!0}function jU(e,t){let a=new Array(e.length),r=new Set,n=[],i=0;for(let o=0;o<e.length;++o){let s=L1e(e[o],t),l=s!==null&&F1e(s,t)?s:null;if(a[o]=l,l!==null)i++;else{let u=e[o];if(u!=null){let c=String(u).trim();if(c.length>0){let d=c.toLowerCase();r.has(d)||(r.add(d),n.push(c))}}}}return{iso:a,unmatched:n,matchedRows:i,totalRows:e.length}}var nue=uU(Eee(),1);/*! @bicharts/shape-core — Apache-2.0. Bundled reference data: GeoNames (https://www.geonames.org/) CC BY 4.0; US Census/TIGER (public domain). Full text: NOTICE in this package. */var B1e=["rate","ratio","pct","percent","percentage","rating","share","score","index","nps","csat","margin","yield","coverage","utilization","utilisation","z[_-]?score","average","avg","mean","median","stddev","variance","gpa","percentile","quantile","efficiency","accuracy","probability","multiplier","coefficient","correlation","occupancy","age","bmi","temperature","density","pressure","humidity","ph","velocity","speed","elevation","altitude","latency","throughput","bandwidth","iops","ppm","ppb","dpmo","bps","capita","temperatuur","temperatur","temperatura","teplota","lampotila","homerseklet","sicaklik","pression","presion","pressao","pressione","druck","tryck","tlak","paine","nyomas","presiune","humidite","humedad","umidade","umidita","feuchtigkeit","vochtigheid","kosteus","vlhkost","vitesse","velocidad","velocidade","velocita","geschwindigkeit","snelheid","hastighet","hastighed","rychlost","nopeus","sebesseg","brzina","predkosc","densite","densidad","densidade","densita","dichte","dichtheid","hustota","tiheys","gustoca","moyenne","mediane","promedio","mediana","gemiddelde","durchschnitt","mittelwert","genomsnitt","gennemsnit","gjennomsnitt","keskiarvo","atlag","ortalama","prosjek","srednia","prumer","priemer","medie","taux","tasa","taxa","tasso","verhaltnis","verhouding","aandeel","anteil","andel","osuus","podil","udzial","udio","pourcentage","porcentaje","percentual","prozent","procent","prosentti","szazalek","yuzde","participacion","participacao","pondere","omjer","arany","oran","rata","leeftijd","edad","idade","wiek","eletkor","varsta","puntuacion","pontuacao","punteggio","betyg","ocena","indice","indeks","wskaznik","puan","ocupacion","ocupacao","occupazione","auslastung","bezetting","belaggning","belaegning","belegg","kayttoaste","oblozenie","obsazenost","obsadenost","kihasznaltsag","doluluk","ocupare","popunjenost","efficacite","eficiencia","efficienza","effizienz","effectiviteit","verimlilik"],H1e=["pct","percent","percentage","rate","ratio","rating","share","score","index","nps","csat","margin","yield","coverage","utilization","utilisation","gpa","percentile","quantile","bmi","density","pressure","humidity","velocity","efficiency","occupancy","latency","throughput","bandwidth","iops","ppm","ppb","dpmo","bps"],G1e=["latitude","longitude"],K1e=["latitude","longitude"];var X1e=["somme de","suma de","soma de","summe von","som van","somma di","summa av","sum av","sum af","soucet z","suma z","totaal van","total de","toplam","osszeg","nombre de","recuento de","contagem de","anzahl von","aantal van","conteggio di","antal av","lukumaara","pocet z","sum pa","\u0441\u0443\u043C\u043C\u0430","\u043A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E","\u0441\u0443\u043C\u0430","\u043A\u0456\u043B\u044C\u043A\u0456\u0441\u0442\u044C","\u03B1\u03B8\u03C1\u03BF\u03B9\u03C3\u03BC\u03B1","\u03C0\u03BB\u03B7\u03B8\u03BF\u03C2"],V1e=["osszege","sucet","\u7684\u603B\u548C","\u7684\u8BA1\u6570","\u306E\u5408\u8A08","\uC758 \uD569\uACC4"],Z1e=["atlaga","priemer","\u7684\u5E73\u5747\u503C","\u306E\u5E73\u5747","\uC758 \uD3C9\uADE0"],rue=Object.freeze({"nombre de":"count","recuento de":"count","contagem de":"count","anzahl von":"count","aantal van":"count","conteggio di":"count","antal av":"count",lukumaara:"count","pocet z":"count",\u043A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u043E:"count",\u043A\u0456\u043B\u044C\u043A\u0456\u0441\u0442\u044C:"count",\u03C0\u03BB\u03B7\u03B8\u03BF\u03C2:"count",\u7684\u8BA1\u6570:"count","minimum de":"min","minimo de":"min","minimo di":"min","minimum von":"min","maximum de":"max","maximo de":"max","massimo di":"max","maximum von":"max"});function Vf(e){return[...e].sort((t,a)=>a.length-t.length).map(t=>t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/\s+/g,"\\s+")).join("|")}var iue=new RegExp("^\\s*(?:(?:sum|count|count\\s+distinct|distinct\\s+count)\\s+of\\s+|(?:"+Vf(X1e)+")\\s+)","i");function gU(e){for(let t of e){let a=t.codePointAt(0)??0;if(a>=11904&&a<=40959||a>=44032&&a<=55215)return!0}return!1}var q1e="[\u2013\u2014-]";function OU(e){let t=e.filter(n=>!gU(n)),a=e.filter(gU),r=[];return t.length&&r.push("(?:\\s+|\\s*"+q1e+"\\s*)("+Vf(t)+")"),a.length&&r.push("\\s*("+Vf(a)+")"),new RegExp("(?:"+r.join("|")+")\\s*$","i")}var oue=OU(V1e),sue=OU(Z1e);var lue=new RegExp("\\b("+B1e.join("|")+")\\b|("+H1e.join("|")+")$","i"),uue=new RegExp("\\b("+G1e.join("|")+")\\b|("+K1e.join("|")+")$","i");var J1e=["count (distinct)","count distinct","distinct count","standard deviation","average","variance","median","product","stddev","std dev","count","sum","avg","min","minimum","max","maximum","var"],cue=new RegExp("^\\s*("+[...J1e].sort((e,t)=>t.length-e.length).map(e=>e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/\s+/g,"\\s+")).join("|")+")\\s+of\\s+","i"),Y1e={Sum:["Sum of "],Avg:["Average of "],Average:["Average of "],Count:["Count of "],CountNonNull:["Count of "],Min:["Min of ","First ","Earliest "],Max:["Max of ","Last ","Latest "],Median:["Median of "],StandardDeviation:["Standard deviation of "],Variance:["Variance of "]},due=new RegExp("^("+Object.keys(Y1e).join("|")+")\\((.+)\\)$");var hue=new RegExp([String.raw`\bisMeasure\b`,String.raw`\bdataType\b`,String.raw`\bcolumns\s*\[\s*-?\d`,String.raw`\.iloc\s*\[[^\]]*,`,String.raw`\.iat\s*\[`,String.raw`\bselect_dtypes\b`,String.raw`\b_get_numeric_data\b`,String.raw`\bis_numeric_dtype\b`,String.raw`\bfor\s+\w+\s+in\s+(?:list\s*\(\s*)?df\.columns\b`,String.raw`\bdf\.columns\s*\.\s*(?:tolist|to_list|difference|drop)\b`,String.raw`\bdf\.dtypes\b`,String.raw`\bObject\s*\.\s*(?:keys|values|entries)\s*\(\s*(?:rows|data|df)?\s*\[\s*0\s*\]`,String.raw`\b(?:row|rw|r)\s*\[\s*\d+\s*\]`].join("|"));/*! @bicharts/shape-core — Apache-2.0. Bundled reference data: GeoNames (https://www.geonames.org/) CC BY 4.0; US Census/TIGER (public domain). Full text: NOTICE in this package. */var Bf=2,DU=400;function Zf(e){return!!dr(e)}function wi(e){let t=new Set;for(let a of e){if(a==null)continue;let r=x1(String(a));if(!ki(r)&&!t.has(r)&&(t.add(r),t.size>=DU))break}return Array.from(t)}function x8(e){let t=wi(e);if(t.length===0||qf(e)<95)return!1;let a=t.filter(n=>Zf(n)&&!Si(n)).length,r=t.filter(n=>!Zf(n)&&!!Si(n)).length;return a>=1&&a>=r}function fU(e,t){if(!Si(e))return!1;let a=dr(e);return a?t==="world"?!0:ey.has(a):!1}function qf(e){let t=wi(e);if(t.length===0)return 0;let a=0;for(let r of t)Zf(r)&&a++;return Math.round(a/t.length*1e3)/10}function Jf(e){return Si(e)?!0:Xf()?d0(e).status!=="unmatched"||d0(e.trim().replace(/\s+/g,"-")).status!=="unmatched":!1}function Hf(e){let t=wi(e);if(t.length===0)return 0;let a=0;for(let r of t)Jf(r)&&a++;return Math.round(a/t.length*1e3)/10}function ay(e){let t=new Set;for(let a of e){if(a==null)continue;let r=String(a).trim();if(!ki(x1(r))&&!t.has(r)&&(t.add(r),t.size>=DU))break}return Array.from(t)}function yU(e){let t=ay(e);if(t.length===0)return 0;let a=0;for(let r of t)ty(r).length>0&&a++;return Math.round(a/t.length*1e3)/10}function bU(e,t){return D1e(t,O1e)?!0:ay(e).some(a=>/^\d{5}(-\d{4})?$/.test(a.replace(/\.0+$/,"")))}function Q1e(e,t){let a=wi(e);if(a.length===0)return 0;let r=0;for(let n of a)zU(n,t)&&r++;return Math.round(r/a.length*1e3)/10}function Gf(e,t){let a=0;for(let r of wi(e))t(r)&&a++;return a}function ete(e,t){let a=0;for(let r of ay(e))t(r)&&a++;return a}function LU(e,t,a,r,n){let i=[],o=[],s={},l={},u=new Set(e),c=S=>t.map(M=>M[S]);for(let S of["city","country"]){let M=a?.[S];M&&u.has(M)&&(s[S]=M)}let d=new Set(n??e);for(let S of["lat","lon"]){let M=a?.[S];M&&d.has(M)&&(s[S]=M)}let h=a?.zip;if(h&&u.has(h)){let S=c(h),M=yU(S);M<95?o.push(`zip=${h} (only ${M}% of values read as ZIPs)`):bU(S,h)?s.zip=h:o.push(`zip=${h} (all values are 3-4 digits with nothing to say they are postal)`)}let p=a?.state;if(p&&u.has(p)){let S=c(p),M=wi(S);M.length>0&&M.every(z=>fU(z,r))?o.push(`state=${p} (every value is "CA", which is both Canada and California)`):x8(S)?(o.push(`state=${p} (every value is a country, not a state)`),s.country||(s.country=p)):Hf(S)<95?o.push(`state=${p} (only ${Hf(S)}% of values are states/provinces)`):s.state=p}let m=new Set(Object.values(s).filter(Boolean)),g=e.filter(S=>!m.has(S)&&!S.startsWith("__"));if(!s.state){let S=null;for(let M of g){let z=c(M);if(x8(z))continue;let _=Hf(z);if(_<95)continue;let A=Gf(z,Jf),E=Gf(z,B=>Jf(B)&&!fU(B,r));A<Bf&&E<1||(!S||_>S.pct)&&(S={name:M,pct:_})}S&&(s.state=S.name,m.add(S.name),i.push(`state=${S.name} (${S.pct}% states/provinces)`))}if(!s.zip)for(let S of g){if(m.has(S))continue;let M=c(S),z=yU(M);if(!(z<95)&&bU(M,S)&&!(ete(M,_=>ty(_).length>0)<Bf)){s.zip=S,m.add(S),i.push(`zip=${S} (${z}% ZIP codes)`);break}}let f=s.country;if(!f||!x8(c(f))){let S=null;for(let M of g){if(m.has(M)||!x8(c(M)))continue;let z=qf(c(M));(!S||z>S.pct)&&(S={name:M,pct:z})}S&&(f&&(o.push(`country=${f} (only ${qf(c(f))}% of values are country identifiers; using ${S.name} instead)`),l.country=f),s.country=S.name,m.add(S.name),i.push(`country=${S.name}`))}if(!s.city){let S=null;for(let M of g){if(m.has(M))continue;let z=c(M),_=Q1e(z,r);_<Qee||Gf(z,A=>zU(A,r))<Bf||(!S||_>S.pct)&&(S={name:M,pct:_})}S&&(s.city=S.name,i.push(`city=${S.name} (${S.pct}% known cities)`))}let y=s.country?c(s.country):[],b=!!s.country&&x8(y),v=b?new Set(y.map(S=>dr(S==null?null:String(S))).filter(Boolean)).size:0,k=b&&v>=2,W=!!(s.lat&&s.lon)&&t.some(S=>{let M=+String(S[s.lat]??"").trim(),z=+String(S[s.lon]??"").trim();return isFinite(M)&&isFinite(z)&&M>=-90&&M<=90&&z>=-180&&z<=180&&String(S[s.lat]??"").trim()!==""&&String(S[s.lon]??"").trim()!==""});return s.lat&&s.lon&&!W&&o.push(`lat/lon=${s.lat}/${s.lon} (no row holds a usable coordinate pair)`),s.country&&!k&&!(s.city||s.state||s.zip||W)&&o.push(b?`country=${s.country} (every row resolves to the same country - nothing to place apart)`:`country=${s.country} (values are not country identifiers)`),{bind:s.city||s.state||s.zip||k||W?s:null,backfilled:i,refused:o,...Object.keys(l).length?{labelFallback:l}:{}}}var J=(e,...t)=>({part:e,langs:Object.freeze(t)}),tte=Object.freeze({jaar:J("year","nl"),kwartaal:J("quarter","nl"),maand:J("month","nl"),dag:J("day","nl","sv","da","nb"),jahr:J("year","de"),quartal:J("quarter","de"),monat:J("month","de"),tag:J("day","de"),ann\u00E9e:J("year","fr"),mois:J("month","fr"),jour:J("day","fr"),trimestre:J("quarter","fr","es","pt","it"),a\u00F1o:J("year","es"),mes:J("month","es"),d\u00EDa:J("day","es"),ano:J("year","pt"),m\u00EAs:J("month","pt"),dia:J("day","pt"),anno:J("year","it"),mese:J("month","it"),giorno:J("day","it"),\u0433\u043E\u0434:J("year","ru"),\u043C\u0435\u0441\u044F\u0446:J("month","ru"),\u0440\u0456\u043A:J("year","uk"),\u043C\u0456\u0441\u044F\u0446\u044C:J("month","uk"),\u043A\u0432\u0430\u0440\u0442\u0430\u043B:J("quarter","ru","uk"),\u0434\u0435\u043D\u044C:J("day","ru","uk"),rok:J("year","pl","cs","sk"),kwarta\u0142:J("quarter","pl"),miesi\u0105c:J("month","pl"),dzie\u0144:J("day","pl"),\u010Dtvrtlet\u00ED:J("quarter","cs"),m\u011Bs\u00EDc:J("month","cs"),den:J("day","cs"),\u0161tvr\u0165rok:J("quarter","sk"),mesiac:J("month","sk"),de\u0148:J("day","sk"),\u00E5r:J("year","sv","da","nb"),kvartal:J("quarter","sv","da","nb"),m\u00E5nad:J("month","sv"),m\u00E5ned:J("month","da","nb"),vuosi:J("year","fi"),vuosinelj\u00E4nnes:J("quarter","fi"),kuukausi:J("month","fi"),p\u00E4iv\u00E4:J("day","fi"),\u00E9v:J("year","hu"),negyed\u00E9v:J("quarter","hu"),h\u00F3nap:J("month","hu"),nap:J("day","hu"),y\u0131l:J("year","tr"),\u00E7eyrek:J("quarter","tr"),ay:J("month","tr"),g\u00FCn:J("day","tr"),\u03AD\u03C4\u03BF\u03C2:J("year","el"),\u03C4\u03C1\u03AF\u03BC\u03B7\u03BD\u03BF:J("quarter","el"),\u03BC\u03AE\u03BD\u03B1\u03C2:J("month","el"),\u03B7\u03BC\u03AD\u03C1\u03B1:J("day","el"),an:J("year","ro"),trimestru:J("quarter","ro"),lun\u0103:J("month","ro"),zi:J("day","ro"),godina:J("year","hr"),tromjese\u010Dje:J("quarter","hr"),mjesec:J("month","hr"),dan:J("day","hr"),\u5E74:J("year","ja","zh"),\u56DB\u534A\u671F:J("quarter","ja"),\u5B63\u5EA6:J("quarter","zh"),\u6708:J("month","ja","zh"),\u65E5:J("day","ja","zh"),\uC5F0\uB3C4:J("year","ko"),\uBD84\uAE30:J("quarter","ko"),\uC6D4:J("month","ko"),\uC77C:J("day","ko"),tahun:J("year","id"),kuartal:J("quarter","id"),triwulan:J("quarter","id"),bulan:J("month","id"),hari:J("day","id"),n\u0103m:J("year","vi"),qu\u00FD:J("quarter","vi"),th\u00E1ng:J("month","vi"),ng\u00E0y:J("day","vi"),\u0E1B\u0E35:J("year","th"),\u0E44\u0E15\u0E23\u0E21\u0E32\u0E2A:J("quarter","th"),\u0E40\u0E14\u0E37\u0E2D\u0E19:J("month","th"),\u0E27\u0E31\u0E19:J("day","th"),\u0627\u0644\u0633\u0646\u0629:J("year","ar"),\u0633\u0646\u0629:J("year","ar"),\u0627\u0644\u0639\u0627\u0645:J("year","ar"),\u0639\u0627\u0645:J("year","ar"),\u0627\u0644\u0631\u0628\u0639:J("quarter","ar"),\u0631\u0628\u0639:J("quarter","ar"),"\u0631\u0628\u0639 \u0627\u0644\u0633\u0646\u0629":J("quarter","ar"),\u0627\u0644\u0634\u0647\u0631:J("month","ar"),\u0634\u0647\u0631:J("month","ar"),\u0627\u0644\u064A\u0648\u0645:J("day","ar"),\u064A\u0648\u0645:J("day","ar"),\u05E9\u05E0\u05D4:J("year","he"),\u05E8\u05D1\u05E2\u05D5\u05DF:J("quarter","he"),\u05D7\u05D5\u05D3\u05E9:J("month","he"),\u05D9\u05D5\u05DD:J("day","he"),\u0935\u0930\u094D\u0937:J("year","hi"),\u0938\u093E\u0932:J("year","hi"),\u0924\u093F\u092E\u093E\u0939\u0940:J("quarter","hi"),\u092E\u0939\u0940\u0928\u093E:J("month","hi"),\u092E\u093E\u0939:J("month","hi"),\u0926\u093F\u0928:J("day","hi"),\u0633\u0627\u0644:J("year","fa"),\u0645\u0627\u0647:J("month","fa"),\u0631\u0648\u0632:J("day","fa")}),pue=Object.freeze(Array.from(new Set(Object.values(tte).flatMap(e=>e.langs)))),mue=Object.freeze(["fa","ar","he","th"]),gue=Object.freeze({integer:"number",decimal:"number",double:"number",datetime:"date",date:"date",boolean:"boolean",string:"text"}),fue=Object.freeze({RENDER_START:"render-start",RENDER_OK:"render-ok",RENDER_ERROR:"render-error",VIEW:"view",VIEW_VERDICT:"view-verdict",REDRAW:"redraw",INTERACT:"interact"}),yue=Object.freeze(["open","generate","version","rebind","data","sample","fix","resize","other"]),bue=2**31-1;/*! @bicharts/chart-host — Apache-2.0. Bundled reference data: GeoNames (https://www.geonames.org/) CC BY 4.0; Natural Earth and US Census/TIGER (public domain). Full text: NOTICE in this package. */var hr="1.21.0";var hn="data-row-idx";var pr="llm-xfilter-refresh";var j8="__llmAnimStop",ny="__llmXfClear",ry="__llmInitialXfMark";var ate=Object.freeze(["camera","llmZoom"]);var Wi=1e3,m0=250,g0=5e3,f0=3,FU=0,Ci=60,y0=3,b0=500,iy=["animAutoPlay","animPlaySpeedMs","animLoopDelaySec","animStopAtEnd","animMaxIdealFrames","animTimelineStyle","filtersDuringPlay"];var BU="both";var HU=12e4,GU="horizontal",oy="mark",KU="fit",XU="auto",N0=2e3;/*! @bicharts/chart-host — Apache-2.0. Bundled reference data: GeoNames (https://www.geonames.org/) CC BY 4.0; Natural Earth and US Census/TIGER (public domain). Full text: NOTICE in this package. */var VU=new Set(["USA","CAN","MEX","GTM","BLZ","SLV","HND","NIC","CRI","PAN","CUB","JAM","HTI","DOM","BHS","PRI","TTO"]),ZU=75;function nte(e,t){let a=[],r=e.length;for(let n=0;n<r;n++){let i=e[n],o=e[(n+r-1)%r],s=i[1]<=t,l=o[1]<=t;if(s!==l){let u=i[1]-o[1],c=u===0?0:(t-o[1])/u;a.push([o[0]+c*(i[0]-o[0]),t])}s&&a.push(i)}return a.length&&(a[0][0]!==a[a.length-1][0]||a[0][1]!==a[a.length-1][1])&&a.push(a[0]),a}function qU(e,t){let a=e&&e.geometry;if(!a)return null;let r=n=>{let i=n.map(o=>nte(o,t)).filter(o=>o.length>=4);return i.length&&i[0].length>=4?i:null};if(a.type==="Polygon"){let n=r(a.coordinates);return n?{...e,geometry:{type:"Polygon",coordinates:n}}:null}if(a.type==="MultiPolygon"){let n=a.coordinates.map(r).filter(i=>i!==null);return n.length?{...e,geometry:{type:"MultiPolygon",coordinates:n}}:null}return e}/*! @bicharts/chart-host — Apache-2.0. Bundled reference data: GeoNames (https://www.geonames.org/) CC BY 4.0; Natural Earth and US Census/TIGER (public domain). Full text: NOTICE in this package. */var Wue=216/24389,Cue=24389/27;var _ue=Math.PI/180,Aue=180/Math.PI;var rte=Object.freeze(["xlsx","csv"]);var Mue=Date.UTC(1900,0,1);var sy="__rowIdx__";function JU(e,t,a){let r=null,n=null,i=null,o,s=a??null,l=[],u=[],c;if(s){let h=e.filter(g=>!g.isMeasure).map(g=>g.name),p=LU(h,t,s,a?.mapKind,e.map(g=>g.name));s=p.bind,l=p.backfilled,u=p.refused;let m=p.labelFallback;c=m&&(m.country||m.city||m.state||m.zip)}if(!!s&&!!(s.city||s.state||s.zip||s.country||s.lat&&s.lon)){let h=s,p=xU(t.map(m=>({lat:h.lat?m[h.lat]:null,lon:h.lon?m[h.lon]:null,city:h.city?m[h.city]:null,state:h.state?m[h.state]:null,zip:h.zip?m[h.zip]:null,country:h.country?m[h.country]:null,label:c?m[c]:null})),a?.mapKind,a?.region??null);r=p.lat,n=p.lon,i=p.precisions,o={precision:p.precision,precisionCounts:p.precisionCounts,coarseExamples:p.coarseExamples,unplaced:p.totalRows-p.matchedRows-p.ambiguousRows,unplacedExamples:p.unmatched.slice(0,8),ambiguousRows:p.ambiguousRows,...p.ambiguousExamples.length?{ambiguousExamples:p.ambiguousExamples}:{},...l.length?{rolesBackfilled:l}:{},...u.length?{rolesRefused:u}:{}}}return{lat:r,lon:n,prec:i,geoPoint:o,rolesRefused:u}}function ly(e,t,a,r,n,i){e=e.filter(N=>N.name!==sy);let o=null;if(i?.utcDays){let N=SU(e,t);t=N.rows,o=N.columns}let s=null;if(i?.localWallClock){let N=kU(e,t);t=N.rows,s=N.columns}let l=JU(e,t,r),u=JU(e,t,n),c=l.lat,d=l.lon,h=l.prec,p=u.lat,m=u.lon,g=u.prec,f=l.geoPoint,y=u.geoPoint,b=[...l.rolesRefused,...u.rolesRefused.map(N=>`destination: ${N}`)],v=null,k,W,S;if(a&&a.column&&a.grain&&a.grain.toLowerCase()==="admin1"&&a.join){let N=(a.kind||"").toLowerCase(),P=a.fallback??{},U=N.startsWith("admin1-")||N.startsWith("us-state-"),I=N==="latlon"?a.column:P.lat??null,R=P.lon??(I?ite(e.map(O=>O.name)):null),D=N.startsWith("city")?a.column:P.city??null,$=a.locate??void 0,Z=a.join(t.map(O=>({province:U?O[a.column]:void 0,city:D?O[D]:void 0,country:P.country?O[P.country]:void 0,lat:I?O[I]:void 0,lon:R?O[R]:void 0})),{provinceKind:U?N:null,deriveProvinces:a.deriveProvinces,locate:$??void 0});v=Z.iso,k={count:Z.totalRows-Z.matchedRows,examples:Z.unmatched.slice(0,8)},W=Z.unmatched.length;let H={province:0,coordinates:0,city:0};for(let O of Z.source)O&&H[O]++;S={sources:H,ambiguousRows:Z.ambiguousRows,ambiguousExamples:Z.ambiguousExamples,unplacedPoints:Z.unplacedPoints}}else if(a&&a.column&&a.kind&&$U(a.kind)){let N=jU(t.map(P=>P[a.column]),a.kind);v=N.iso,k={count:N.totalRows-N.matchedRows,examples:N.unmatched.slice(0,8)},W=N.unmatched.length}let M=[sy];v&&M.push("__geoIso__"),c&&M.push("__geoLat__","__geoLon__","__geoPrecision__"),p&&M.push("__geoLatD__","__geoLonD__","__geoPrecisionD__");let z=new Set(M);e.some(N=>z.has(N.name))&&(e=e.filter(N=>!z.has(N.name)));let _=e.map(N=>N.name),A=[];if(i?.aliases&&i.aliases.length>0){let N=new Set([..._,...M]);for(let P of i.aliases){let U=P?_.indexOf(P.name):-1;U<0||!P.alias||N.has(P.alias)||(N.add(P.alias),A.push({from:U,name:P.alias}))}}let E=M.length+A.length,B=new Array(t.length);for(let N=0;N<t.length;N++){let P=t[N],U=new Array(e.length+E);for(let R=0;R<e.length;R++){let D=P[_[R]];D instanceof Date?U[R]=D.toISOString():U[R]=D??null}let I=e.length;U[I++]=N,v&&(U[I++]=v[N]),c&&d&&(U[I++]=c[N],U[I++]=d[N],U[I++]=h?h[N]:null),p&&m&&(U[I++]=p[N],U[I++]=m[N],U[I++]=g?g[N]:null);for(let R of A)U[I++]=U[R.from];B[N]=U}let w=[...e,{name:sy,dataType:"Integer",isMeasure:!1,modelDesc:""}];v&&w.push({name:"__geoIso__",dataType:"String",isMeasure:!1,modelDesc:""}),c&&w.push({name:"__geoLat__",dataType:"Double",isMeasure:!1,modelDesc:""},{name:"__geoLon__",dataType:"Double",isMeasure:!1,modelDesc:""},{name:"__geoPrecision__",dataType:"String",isMeasure:!1,modelDesc:""}),p&&w.push({name:"__geoLatD__",dataType:"Double",isMeasure:!1,modelDesc:""},{name:"__geoLonD__",dataType:"Double",isMeasure:!1,modelDesc:""},{name:"__geoPrecisionD__",dataType:"String",isMeasure:!1,modelDesc:""});for(let N of A)w.push({...e[N.from],name:N.name,aliasOf:e[N.from].name});return{columns:w,rows:B,geoUnmatched:k,geoUnmatchedDistinct:W,geoPoint:f,...y?{geoPointDest:y}:{},...b.length?{geoPointRefused:b}:{},...o?{dateCellsAreUtcDays:!0,utcDayColumns:o}:{},...s?{dateCellsAreUtcWallClock:!0,utcWallClockColumns:s}:{},...S?{geoProvince:S}:{}}}function ite(e){let t=a=>a.replace(/([a-z])([A-Z])/g,"$1 $2").toLowerCase().split(/[^a-zÀ-ɏ]+/);return e.find(a=>t(a).some(r=>r==="lon"||r==="lng"||r==="long"||r==="longitude"))??null}function YU(e){let t=String(e??""),a=t.length,r="",n=0,i=[],o="",s="",l=!1,u=()=>o===""||"(,=:[!&|?{};+-*%<>~^".includes(o)?!0:/^(return|typeof|instanceof|in|of|new|delete|void|throw|case|do|else|yield|await)$/.test(s);for(;n<a;){let c=t[n],d=n+1<a?t[n+1]:"",h=i.length>0?i[i.length-1]:null;if(h===-1){if(c==="\\"){r+=t.slice(n,n+2),n+=2;continue}if(c==="`"){i.pop(),r+=c,n++,o="`",s="",l=!1;continue}if(c==="$"&&d==="{"){i[i.length-1]=0,r+="${",n+=2,o="{",s="",l=!1;continue}r+=c,n++;continue}if(c==="/"&&d==="/"){let p=n+2;for(;p<a&&t[p]!==`
112
112
  `&&t[p]!=="\r";)p++;r+=" ",n=p,l=!1;continue}if(c==="/"&&d==="*"){let p=t.indexOf("*/",n+2),g=(p<0?t.slice(n+2):t.slice(n+2,p)).match(/\r\n|\r|\n/g);r+=g?g.join(""):" ",n=p<0?a:p+2,l=!1;continue}if(c==="'"||c==='"'){let p=n+1;for(;p<a&&t[p]!==c&&t[p]!==`
113
113
  `;)p+=t[p]==="\\"?2:1;r+=t.slice(n,Math.min(p+1,a)),n=p+1,o=c,s="",l=!1;continue}if(c==="`"){i.push(-1),r+=c,n++,l=!1;continue}if(c==="/"&&u()){let p=n+1,m=!1;for(;p<a&&t[p]!==`
114
- `;){let g=t[p];if(g==="\\"){p+=2;continue}if(g==="[")m=!0;else if(g==="]")m=!1;else if(g==="/"&&!m)break;p++}if(p<a&&t[p]==="/"){for(p++;p<a&&/[A-Za-z]/.test(t[p]);)p++;r+=t.slice(n,p),n=p,o="/",s="",l=!1;continue}}if(h!==null&&h>=0){if(c==="{")i[i.length-1]=h+1;else if(c==="}"){if(h===0){i[i.length-1]=-1,r+=c,n++;continue}i[i.length-1]=h-1}}r+=c,n++,/\s/.test(c)?l=!1:(/[A-Za-z0-9_$]/.test(c)?(s=l?s+c:c,l=!0):(s="",l=!1),o=c)}return r}var ote=8,ste=1.5,Pue=ote/2+ste;var QU=Object.freeze({sankey:"d3-sankey",sankeyLinkHorizontal:"d3-sankey",sankeyJustify:"d3-sankey",sankeyCenter:"d3-sankey",sankeyLeft:"d3-sankey",sankeyRight:"d3-sankey",hexbin:"d3-hexbin",voronoiTreemap:"d3-voronoi-treemap",voronoiMap:"d3-voronoi-map",weightedVoronoi:"d3-weighted-voronoi",mermaid:"mermaid",llmMermaid:"mermaid"});function O8(e){let t=new Set,a=YU(String(e||"")),r=n=>{let i=QU[n];i&&t.add(i)};for(let n of a.matchAll(/\bd3\s*\.\s*(\w+)/g))r(n[1]);for(let n of a.matchAll(/\bd3\s*\[\s*['"](\w+)['"]\s*\]/g))r(n[1]);for(let n of a.matchAll(/\{([^{}]*)\}\s*=\s*d3\b/g))for(let i of n[1].split(","))r(i.split(":")[0].trim());return[...t].sort()}var Uue=Object.freeze({sourceId:null,rows:Object.freeze([])});/*! @bicharts/chart-host — Apache-2.0. Bundled reference data: GeoNames (https://www.geonames.org/) CC BY 4.0; Natural Earth and US Census/TIGER (public domain). Full text: NOTICE in this package. */var lte=10,ute=1e5,cte=1e4,Qe=e=>Object.freeze({...e,...e.values?{values:Object.freeze([...e.values])}:{}}),Pi=Object.freeze({aggregation:Qe({timing:"live-and-next-generate",default:"",values:["","sum","average","median","min","max","count","distinct"],wire:"request"}),colorScaleLow:Qe({timing:"live-and-next-generate",default:"",wire:"request"}),colorScaleHigh:Qe({timing:"live-and-next-generate",default:"",wire:"request"}),palette:Qe({timing:"live-and-next-generate",default:"",wire:"request"}),maxMapPoints:Qe({timing:"live-and-next-generate",default:N0,min:lte,max:ute,wire:"clientHints"}),pageSize:Qe({timing:"live",default:0,min:0}),valueAxisBaseline:Qe({timing:"live",default:KU,values:["fit","zero","auto"]}),seasonalMarkers:Qe({timing:"live",default:XU,values:["auto","always","never"]}),animAutoPlay:Qe({timing:"live",default:!1}),animPlaySpeedMs:Qe({timing:"live",default:Wi,min:m0,max:g0}),animLoopDelaySec:Qe({timing:"live",default:f0,min:FU}),animStopAtEnd:Qe({timing:"live",default:!1}),animMaxIdealFrames:Qe({timing:"live",default:Ci,min:y0,max:b0}),animTimelineStyle:Qe({timing:"live",default:"",values:["","line","boxes"]}),filtersDuringPlay:Qe({timing:"live",default:!1}),flipMode:Qe({timing:"live",default:BU,values:["both","all","single"]}),flipIntervalMs:Qe({timing:"live",default:"",min:0,max:HU}),flipDirection:Qe({timing:"live",default:GU,values:["horizontal","vertical"]}),cardBackgroundColor:Qe({timing:"live",default:""}),hoverDropLines:Qe({timing:"live",default:"",values:["","on","off"]}),geoBorders:Qe({timing:"live",default:!0}),deriveProvinces:Qe({timing:"next-generate",default:!0}),levelOfDetail:Qe({timing:"next-generate",default:"",values:["","High","Medium","Low"],wire:"clientHints"}),favorLimitTo:Qe({timing:"next-generate",default:"",values:["","latest","top / greatest","bottom / smallest","most common","outliers"],wire:"clientHints"}),favorLimitCount:Qe({timing:"next-generate",default:0,min:0,max:cte,wire:"clientHints"}),favorTitle:Qe({timing:"next-generate",default:"",values:["","1","0"],wire:"clientHints"}),favorDPValues:Qe({timing:"next-generate",default:"",values:["","1","0"],wire:"clientHints"}),legendPlacement:Qe({timing:"next-generate",default:"",values:["","outside","inside","none"],wire:"clientHints"}),industryContext:Qe({timing:"next-generate",default:"",wire:"clientHints"}),suggestFontFamily:Qe({timing:"next-generate",default:"",wire:"clientHints"}),visionReview:Qe({timing:"after-render",default:!1}),saveThumbnails:Qe({timing:"after-render",default:!1})}),Dde=Object.freeze(Object.keys(Pi).filter(e=>Pi[e].timing==="live"||Pi[e].timing==="live-and-next-generate"));function iI(e,t){return!e||!Object.prototype.hasOwnProperty.call(Pi,t)?!1:new RegExp(`\\boptions\\.${t}\\b`).test(e)}var dte=/\.(?:getFullYear|getMonth|getDate|getDay|getHours|getMinutes|setFullYear|setMonth|setDate|setHours|setMinutes|setSeconds|setMilliseconds)\s*\(/,hte=/\bd3\s*\.\s*(?:scaleTime|time[A-Z]\w*)\b/,pte=/\bnew\s+Date\s*\(\s*[^(),]+,/,mte=/\bIntl\s*\.\s*DateTimeFormat\b|\.toLocaleDateString\s*\(|\.toLocaleTimeString\s*\(/;function oI(e){return e?dte.test(e)||hte.test(e)||pte.test(e)?!0:mte.test(e)&&!/timeZone/.test(e):!1}var Lde=Object.freeze(["TILE_TOO_NARROW","TILE_TOO_SHORT","TILE_NOT_SQUARE","TILE_NOT_TALL","TILE_TOO_SMALL","EMBED_NOTHING_FITS_TILE","EMBED_BEESWARM_TILE_TOO_SMALL"]);var sI="loose";function lI(e){return typeof e=="string"&&e.trim().toLowerCase()==="exact"?"exact":sI}function uy(e){return typeof e!="string"||e===""?"":e.normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/\s+/g," ").trim()}var eI=2;function tI(e,t){for(let a=e.indexOf(t);a>=0;a=e.indexOf(t,a+1)){if(a===0)return!0;let r=e.charCodeAt(a-1);if(!(r>=97&&r<=122||r>=48&&r<=57))return!0}return!1}function aI(e){let t="",a=new Set,r=!1;for(let n of e){let i=ya(n),o=n.charCodeAt(0),s=o>=97&&o<=122||o>=48&&o<=57;i&&(r||a.add(t.length),t+=i),r=s}return{form:t,starts:a}}function nI(e,t){for(let a=e.form.indexOf(t);a>=0;a=e.form.indexOf(t,a+1))if(e.starts.has(a))return!0;return!1}function L8(e,t,a,r=sI){let n=Array.isArray(e)?e.slice():[],i=uy(t);if(i.length<eI)return{rows:n,tier:"all",term:""};let o=r==="loose"?ya(i):"",s=o.length>=eI?o:"",l=[],u=[],c=[];for(let d of n){let h=a(d),p=uy(h.name);if(p==="")continue;if(p.indexOf(i)>=0){(tI(p,i)?l:u).push(d);continue}if(s&&nI(aI(p),s)){l.push(d);continue}let m=uy(h.description);(tI(m,i)||s&&nI(aI(m),s))&&c.push(d)}return l.length>0?{rows:l,tier:"name",term:i}:u.length>0?{rows:u,tier:"namePart",term:i}:c.length>0?{rows:c,tier:"desc",term:i}:{rows:[],tier:"none",term:i}}function W0(e){return{name:e.name,description:e.description}}function uI(e){return{name:e.name,description:e.reason}}function Et(e,t,a,r){var n,i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,a):r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(e,t,a,r);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(o=(i<3?n(o):i>3?n(t,a,o):n(t,a))||o);return i>3&&o&&Object.defineProperty(t,a,o),o}function v3(e,t,a){if(a||arguments.length===2)for(var r,n=0,i=t.length;n<i;n++)!r&&n in t||(r||(r=Array.prototype.slice.call(t,0,n)),r[n]=t[n]);return e.concat(r||Array.prototype.slice.call(t))}var cI=function(e,t,a){return[e,t,a].map((function(r){return(r/=255)>.04045?Math.pow((r+.055)/1.055,2.4):r/12.92}))},dI=function(e,t,a){return[e,t,a].map((function(r){return 255*(r<=.00304?12.92*r:1.055*Math.pow(r,1/2.4)-.055)}))},M1=function(e,t,a){return Math.min(Math.max(e,t),a)},hI=function(e,t){return Math.round((e+Number.EPSILON)*Math.pow(10,t))/Math.pow(10,t)},v0=function(e,t){return Math.floor(Math.random()*(t-e+1)-e)},pI=function(e,t,a,r){for(var n,i=[e,t,a],o="#",s=0;s<i.length;s++)o+=(n=i[s],Math.round(M1(n,0,255)).toString(16).padStart(2,"0"));return r!=null&&(o+=Math.round(M1(r,0,100)/100*255).toString(16).padStart(2,"0")),o},mI=function(e){var t=e.length,a=(e=(function(i){var o=(i=/^#/.test(i)?i.slice(1):i).length;if(![3,4,6,8].includes(o))return"000000";if(o===6||o===8)return i;if(o===3||o===4){for(var s="",l=0;l<o;l++){var u=i[l];s+=""+u+u}return s}return"000000"})(e).padEnd(8,"ff")).match(/.{2}/g);if(!a)return[0,0,0,1];var r=[0,0,0],n=!1;return a.forEach((function(i,o){o<3?r[o]=parseInt(i,16):n=100*parseInt(i,16)/255})),n===!1||t<8?r:v3(v3([],r,!0),[n],!1)},gI=function(e,t,a){var r;r=[e,t,a].map((function(o){return o/255})),e=r[0],t=r[1],a=r[2];var n=1-Math.max(e,t,a),i=n<1?1/(1-n):0;return[(1-e-n)*i*100,(1-t-n)*i*100,(1-a-n)*i*100,100*n]},fI=function(e,t,a,r){return r===100?[0,0,0]:(r/=100,[e,t,a].map((function(n){return(n/=100)>=1?0:255*(1-n)*(1-r)})))};function gy(e,t,a,r){var n;r===void 0&&(r="l"),n=[e,t,a].map((function(p){return p/255})),e=n[0],t=n[1],a=n[2];var i=Math.max(e,t,a),o=Math.min(e,t,a),s=(function(p,m,g,f){var y;f===void 0&&(f=!1),y=[p,m,g].map((function(S){return S/255})),p=y[0],m=y[1],g=y[2];var b=Math.max(p,m,g),v=Math.min(p,m,g),k=0;if(b!==v)if(f)k=(p-m+(p-g))/2,k/=Math.sqrt((p-m)*(p-m)+(p-g)*(m-g)),k=Math.acos(k),g>m&&(k=2*Math.PI-k),k/=2*Math.PI;else{var W=b-v;k=b===p?(m-g)/W+(m<g?6:0):b===m?(g-p)/W+2:(p-m)/W+4,k/=6}else k=NaN;return 360*k})(e,t,a,r==="i"),l=0,u=(i+o)/2,c=i-o,d=i,h=(e+t+a)/3;return r==="v"&&(l=i===0?0:c/i),i!==o&&r==="l"&&(l=u>.5?c/(2-i-o):c/(i+o)),r==="i"&&(l=h>0?1-o/h:0),l*=100,u*=100,h*=100,r==="l"?[s,l,u]:r==="v"?[s,l,d*=100]:[s,l,h]}var fy=function(e,t,a){return gy(e,t,a,"l")},mn=function(e,t,a){var r,n,i=function(o){return 6*(o=o<0?o+1:o>1?o-1:o)<1?r+(n-r)*o*6:2*o<1?n:3*o<2?r+(n-r)*(.6666666666666666-o)*6:r};return e=e%360/360,t=M1(t/100,0,1),a=M1(a/100,0,1),r=2*a-(n=a<=.5?a*(t+1):a+t-a*t),[255*i(e+1/3),255*i(e),255*i(e-1/3)]},yI=function(e,t,a){return gy(e,t,a,"v")},yy=function(e,t,a){var r,n,i=[a/=100,a*(1-(t/=100)),a*(1-(n=(e=e%360/360*360)/60-(r=Math.floor(e/60%6)))*t),a*(1-(1-n)*t)],o=[[0,3,1],[2,0,1],[1,0,3],[1,2,0],[3,1,0],[0,1,2]];return[255*i[o[r][0]],255*i[o[r][1]],255*i[o[r][2]]]},bI=function(e,t,a){return gy(e,t,a,"i")},by=function(e,t,a){var r,n,i,o;t/=100,a/=100,isNaN(e)&&(e=0),isNaN(t)&&(t=0);var s=function(l){return(1+t*Math.cos(2*Math.PI*l)/Math.cos(Math.PI/3-2*Math.PI*l))/3};return(e=(360+e)%360/360)<1/3?i=1-((o=(1-t)/3)+(n=s(e))):e<2/3?o=1-((n=(1-t)/3)+(i=s(e-=1/3))):n=1-((i=(1-t)/3)+(o=s(e-=2/3))),r=[n,i,o].map((function(l){return 255*M1(a*l*3,0,1)})),[n=r[0],i=r[1],o=r[2]]},NI=function(e,t,a){return[fy(e,t,a)[0],100*(Math.min(e,t,a)/255),100*(1-Math.max(e,t,a)/255)]};function Ny(e,t,a){return t/=100,a/=100,mn(e,100,50).map((function(r){return 255*(r/255*(1-t-a)+t)}))}var cy={x:[.4124564,.3575761,.1804375],y:[.2126729,.7151522,.072175],z:[.0193339,.119192,.9503041]},dy={r:[3.2404542,-1.5371385,-.4985314],g:[-.969266,1.8760108,.041556],b:[.0556434,-.2040259,1.0572252]},vI=.95047,SI=1,kI=1.08883,gte=.206896552,fte=.008856452,wI=24389/27,hy=function(e,t,a){var r=cI(e,t,a);return[100*cy.x.reduce((function(n,i,o){return n+i*r[o]}),0),100*cy.y.reduce((function(n,i,o){return n+i*r[o]}),0),100*cy.z.reduce((function(n,i,o){return n+i*r[o]}),0)]},F8=function(e,t,a){var r=[e,t,a],n=dy.r.reduce((function(s,l,u){return s+l*r[u]}),0)/100,i=dy.g.reduce((function(s,l,u){return s+l*r[u]}),0)/100,o=dy.b.reduce((function(s,l,u){return s+l*r[u]}),0)/100;return dI(n,i,o)},S0=function(e,t,a){var r;return r=[e=e/vI/100,t=t/SI/100,a=a/kI/100].map((function(n){return n>fte?Math.pow(n,1/3):(wI*n+16)/116})),e=r[0],t=r[1],a=r[2],[Math.max(0,116*t-16),500*(e-t),200*(t-a)]},vy=function(e,t,a){var r,n=(e+16)/116,i=isNaN(t)?n:n+t/500,o=isNaN(a)?n:n-a/200;return r=[i,n,o].map((function(s){return s>gte?Math.pow(s,3):(116*s-16)/wI})),i=r[0],n=r[1],o=r[2],[i*vI*100,n*SI*100,o*kI*100]},Sy=function(e,t,a){return F8.apply(void 0,vy(e,t,a))},py=function(e,t,a){t=M1(t,-100,100),a=M1(a,-100,100);var r=Math.sqrt(t*t+a*a),n=(180*Math.atan2(a,t)/Math.PI+360)%360;return Math.round(1e4*r)===0&&(n=Number.NaN),[e,r,n]},WI=function(e,t,a){return isNaN(a)&&(a=0),a*=Math.PI/180,[e,Math.cos(a)*t,Math.sin(a)*t]},ky=function(e,t,a){return vy.apply(void 0,WI(e,t,a))},CI=function(e,t,a){var r=e+t+a,n=0,i=0;return r>0&&(n=e/r,i=t/r),[n,i,t]},yte=Object.freeze({__proto__:null,linear2rgb:dI,rgb2linear:cI,rgb2hex:pI,hex2rgb:mI,rgb2cmyk:gI,cmyk2rgb:fI,rgb2hsl:fy,hsl2rgb:mn,rgb2hsv:yI,hsv2rgb:yy,rgb2hsi:bI,hsi2rgb:by,rgb2hwb:NI,hwb2rgb:Ny,rgb2xyz:hy,xyz2rgb:F8,xyz2lab:S0,lab2xyz:vy,rgb2lab:function(e,t,a){return S0.apply(void 0,hy(e,t,a))},lab2rgb:Sy,lch2lab:WI,lab2lch:py,xyz2lch:function(e,t,a){return py.apply(void 0,S0(e,t,a))},lch2xyz:ky,xyY2xyz:function(e,t,a){return t===0?[0,0,0]:[e*(a/t),a,a/t*(1-e-t)]},xyz2xyY:CI});function N3(e,t){return t===void 0&&(t=!1),function(a,r,n){var i=n.value;n.value=function(){for(var o=[],s=0;s<arguments.length;s++)o[s]=arguments[s];if(o.length>0&&t){var l=JSON.stringify(o);e+=l}if(this.cache.has(e))return this.cache.get(e);var u=i.call.apply(i,v3([this],o,!1));return this.cache.set(e,u),u}}}function Qt(e,t,a,r){return e===void 0&&(e=[0,2,2]),t===void 0&&(t=0),a===void 0&&(a=!0),r===void 0&&(r=0),function(n,i,o){var s=o.value;o.value=function(){for(var l=[],u=0;u<arguments.length;u++)l[u]=arguments[u];var c=l[r]===void 0?a:l[r],d=s.call.apply(s,v3([this],l,!1));if(c===!1)return d;var h=typeof c=="number"?Math.round(c):0,p=typeof e=="number"?new Array(d.length).fill(e):e,m=p.map((function(g){return t===1?typeof c=="number"?h:g:g+h}));return d.map((function(g,f){return hI(g,m[f])}))}}}var _I=function(e,t,a){var r=e instanceof T1?e:new T1(e),n=t instanceof T1?t:new T1(t),i=M1(a,0,100)/100,o=2*i-1,s=r.alpha()-n.alpha(),l=((o*s==-1?o:(o+s)/(1+o*s))+1)/2,u=1-l,c=[Math.round(M1(r.red()*l+n.red()*u,0,255)),Math.round(M1(r.green()*l+n.green()*u,0,255)),Math.round(M1(r.blue()*l+n.blue()*u,0,255))],d=r.alpha()*i+n.alpha()*(1-i);return new T1(c,d)},Ct=Math.sqrt,Ke=Math.pow,_i=Math.cos,D8=Math.abs,rI=Math.sin,bte=Math.exp,Nte=Math.atan2,AI=Math.PI,pn=function(e){return AI*e/180},my=function(e,t,a){a===void 0&&(a=!0);var r=Nte(t,e);return a&&(r=(r=(r=180*r/AI)>0?r:r+360)>360?r-360:r),r},Ai=function(e,t){t===void 0&&(t=!0);var a=e.lab(!1),r=a[0],n=a[1],i=a[2];return[r,Ct(Ke(n,2)+Ke(i,2)),my(n,i,t),n,i]},vte=["CMC","CIE","CIE2000","CIE1994","CIE1976"],Ste="CMC",kte="CIE2000",wte="CIE1994",Wte="CIE1976",MI=function(e,t,a,r){a===void 0&&(a="CIE");var n=(function(c){var d=c.toUpperCase();return vte.includes(d)&&d!=="CIE"?d:kte})(a);if(r=r||{},n===Ste){var i=Object.assign({},{l:1,c:1},r);return(function(c,d,h,p){h===void 0&&(h=1),p===void 0&&(p=1);var m=Ai(c,!0),g=m[0],f=m[1],y=m[2],b=m[3],v=m[4],k=Ai(d),W=k[0],S=k[1],M=k[3],z=f-S,_=g-W,A=v-k[4],E=Ct(Ke(b-M,2)+Ke(A,2)-Ke(z,2)),B=g<16?.511:.040975*g/(1+.01765*g),w=.0638*f/(1+.0131*f)+.638,N=164<=y&&y<=345?.56+D8(.2*_i(pn(y+168))):.36+D8(.4*_i(pn(y+35))),P=Ct(Ke(f,4)/(Ke(f,4)+1900)),U=w*(P*N+1-P);return Ct(Ke(_/(h*B),2)+Ke(z/(p*w),2)+Ke(E/U,2))})(e,t,i.l,i.c)}if(n===wte){var o={kL:1,kC:1,kH:1,cate:"graphic"},s=Object.assign({},o,r);return(function(c,d,h,p,m,g){h===void 0&&(h=1),p===void 0&&(p=1),m===void 0&&(m=1),g===void 0&&(g="graphic");var f=g==="textiles"?.048:.045,y=g==="textiles"?.014:.015;h=g==="textiles"?2:h;var b=Ai(c),v=b[0],k=b[1],W=b[3],S=b[4],M=Ai(d),z=M[0],_=M[1],A=M[3],E=v-z,B=k-_,w=S-M[4],N=1+f*k,P=1+y*k,U=Ct(Ke(W-A,2)+Ke(w,2)-Ke(B,2));return Ct(Ke(E/(1*h),2)+Ke(B/(p*N),2)+Ke(U/(m*P),2))})(e,t,s.kL,s.kC,s.kH,s.cate)}if(n===Wte)return(function(c,d){var h=c.lab(!1),p=h[0],m=h[1],g=h[2],f=d.lab(!1),y=f[0],b=f[1],v=f[2];return Ct(Ke(p-y,2)+Ke(m-b,2)+Ke(g-v,2))})(e,t);var l={kL:1,kC:1,kH:1},u=Object.assign({},l,r);return(function(c,d,h,p,m){h===void 0&&(h=1),p===void 0&&(p=1),m===void 0&&(m=1);var g=Ai(c),f=g[0],y=g[1],b=g[3],v=g[4],k=Ai(d),W=k[0],S=k[1],M=k[3],z=k[4],_=(f+W)/2,A=(y+S)/2,E=(1-Ct(Ke(A,7)/(Ke(A,7)+Ke(25,7))))/2,B=b*(1+E),w=M*(1+E),N=Ct(Ke(B,2)+Ke(v,2)),P=Ct(Ke(w,2)+Ke(z,2)),U=my(B,v,!0),I=my(w,z,!0),R=(N+P)/2,D=D8(U-I)>180?(U+I+360)/2:(U+I)/2,$=1-.17*_i(pn(D-30))+.24*_i(pn(2*D))+.32*_i(pn(3*D+6))-.2*_i(pn(4*D-63)),Z=D8(I-U)<=180?I-U:D8(I-U)>180&&I<=U?I-U+360:I-U-360,H=W-f,O=S-y,j=2*Ct(N*P)*rI(pn(Z)/2),Y=1+.015*Ke(_-50,2)/Ct(20+Ke(_-50,2)),L=1+.045*R,ee=1+.015*R*$,de=30*bte(-Ke((D-275)/25,2)),K=-2*Ct(Ke(R,7)/(Ke(R,7)+Ke(25,7)))*rI(2*pn(de));return Ct(Ke(H/(h*Y),2)+Ke(O/(p*L),2)+Ke(j/(m*ee),2)+K*(O/(p*L))*(j/(m*ee)))})(e,t,u.kL,u.kC,u.kH)},Cte=function(e,t,a){var r=Math.abs,n=Math.max,i=Math.min,o=e instanceof T1?e:new T1(e),s=t instanceof T1?t:new T1(t),l=Object.assign({},{b:125,c:500},a);return!(r(255*o.brightness()/100-255*s.brightness()/100)<=l.b)&&!(n(o.red(),s.red())-i(o.red(),s.red())+(n(o.green(),s.green())-i(o.green(),s.green()))+(n(o.blue(),s.blue())-i(o.blue(),s.blue()))<=l.c)},Mi=function(e,t,a){var r,n=function(u){return M1(u,0,100)},i=function(u){return M1(u,0,255)},o={h:[0,function(u){return u%360}],s:[1,n],l:[2,n],r:[0,i],g:[1,i],b:[2,i]},s=o[t][0];if(["h","s","l"].includes(t)){var l=e.hsl();if(a===void 0)return l[s];a=o[t][1](a),l[s]=a,r=mn.apply(void 0,l)}else{if(r=e.rgb(),a===void 0)return r[s];a=o[t][1](a),r[s]=a}return new T1(r,e.alpha())},w0={},_te=new Set(["rgb","rgba","cmyk","lab","hsl","hsla","hsv","hsva","hsi","hsia","xyz","lch","hwb","hwba"]),Ate=/^([a-zA-Z]+)\(([\s\S]+)\)$/,k0=function(e){return typeof e=="string"?e.indexOf("%")===-1?k0(Number(e.trim())):(e=e.split("%")[0],(e=Number(e.trim()))||0):Math.abs(e)<1?100*e:e},PI=function(e,t){t===void 0&&(t=new Set);var a=typeof e=="string"?e:e.join(",");if(t.has(a))throw new Error("Invalid Color");t.add(a);var r="rgb",n=[0,0,0],i=100;if(Array.isArray(e)){if(e.length<3)throw new Error("Invalid Color");for(var o=0;o<e.length;o++)if(o<3)n[o]=e[o];else{if(o!==3||e[3]===void 0)break;i=e[3]}}else{var s=!1,l=e.trim().match(Ate);if(l||(s=!0),l){var u=l[1].toLocaleLowerCase();if(r=u,_te.has(u)||(s=!0),l[2]&&!s){var c=l[2],d=c.indexOf(",")!==-1?",":" ",h=c.split(d);for(o=0;o<3;o++)h[o]!==void 0&&(["lch","lab"].includes(r)&&o===0||["hsl","hsla","hsv","hsva","hwb","hwba","hsi","hsia"].includes(r)&&o>0?n[o]=k0(h[o]):n[o]=Number(h[o].trim()));["rgba","hsla","hsva","hwba","hsia"].includes(r)?(r=r.slice(0,-1),h[3]!==void 0&&(i=k0(h[3]))):r==="cmyk"&&n.push(h[3]!==void 0?k0(h[3]):0)}}if(s){if(!/^#(([a-fA-F\d]{3}){1,2}|[a-fA-F\d]{8})$/.test(e))try{return e=(function(p,m){if(m===void 0&&(m=!1),p=p.toLowerCase(),w0[p]===void 0){if(m)throw new Error("Unknown color name: ".concat(p,")"));return p}return w0[p]})(e,!0),PI(e,t)}catch{throw new Error("Invalid Color")}n=mI(e)}}return[r,n,i]},UI={thowParseError:!1},T1=(function(){function e(t,a,r){this.cache=new Map,this._rgb=[0,0,0],this._alpha=100;var n={thowParseError:UI.thowParseError},i=Object.assign({},n,r??{});try{var o=(function(u){var c,d={lab2rgb:Sy,hsl2rgb:mn,hsv2rgb:yy,xyz2rgb:F8,hwb2rgb:Ny,hsi2rgb:by},h=PI(u),p=h[0],m=h[1],g=h[2];if(p==="rgb")return[m,g];p==="lch"&&(p=(c=["xyz",ky(m[0],m[1],m[2])])[0],m=c[1]);var f=m[0],y=m[1],b=m[2],v=m[3];if(p==="cmyk")return[fI(f,y,b,v).map((function(W){return M1(W,0,255)})),g];var k="".concat(p,"2rgb");if(typeof d[k]=="function")return[d[k](f,y,b).map((function(W){return M1(W,0,255)})),g];throw new Error("Invalid color")})(t),s=o[0],l=o[1];this._alpha=l,this._rgb=s}catch(u){if(i.thowParseError)throw u}a!==void 0&&(this._alpha=M1(a,0,100))}return e.prototype.red=function(t){return Mi(this,"r",t)},e.prototype.green=function(t){return Mi(this,"g",t)},e.prototype.blue=function(t){return Mi(this,"b",t)},e.prototype.alpha=function(t){return t===void 0?this._alpha:(t=M1(t,0,100),new e(this.rgb(),t))},e.prototype.fadeIn=function(t,a){return t===void 0&&(t=10),t=a&&a==="relative"?this._alpha*t/100:t,new e(this.rgb(),M1(this._alpha+t,0,100))},e.prototype.fadeOut=function(t,a){return t===void 0&&(t=10),t=a&&a==="relative"?this._alpha*t/100:t,new e(this.rgb(),M1(this._alpha-t,0,100))},e.prototype.opacify=function(t,a){return t===void 0&&(t=10),this.fadeIn(t,a)},e.prototype.transparentize=function(t,a){return t===void 0&&(t=10),this.fadeOut(t,a)},e.prototype.hue=function(t){return Mi(this,"h",t)},e.prototype.saturation=function(t){return Mi(this,"s",t)},e.prototype.lightness=function(t){return Mi(this,"l",t)},e.prototype.rgb=function(t){return v3([],this._rgb,!0)},e.prototype.rgba=function(t){return v3(v3([],this.rgb(!1),!0),[this._alpha],!1)},e.prototype.cmyk=function(t){return gI.apply(void 0,this._rgb)},e.prototype.hsl=function(t){return fy.apply(void 0,this._rgb)},e.prototype.hsla=function(t){return v3(v3([],this.hsl(!1),!0),[this._alpha],!1)},e.prototype.hsv=function(t){return yI.apply(void 0,this._rgb)},e.prototype.hsi=function(t){return bI.apply(void 0,this._rgb)},e.prototype.hwb=function(t){return NI.apply(void 0,this._rgb)},e.prototype.xyz=function(t){return hy.apply(void 0,this._rgb)},e.prototype.lab=function(t){return S0.apply(void 0,this.xyz(!1))},e.prototype.lch=function(t){return py.apply(void 0,this.lab(!1))},e.prototype.xyY=function(t){return CI.apply(void 0,this.xyz(!1))},e.prototype.hex=function(t){t===void 0&&(t=2);var a=t===0?void 0:t===1?this._alpha:this._alpha===100?void 0:this._alpha,r="color:hex:param_".concat(t);if(this.cache.has(r))return this.cache.get(r);var n=pI.apply(void 0,v3(v3([],this._rgb,!1),[a],!1));return this.cache.set(r,n),n},e.prototype.lighten=function(t,a){t===void 0&&(t=5);var r=this.hsl(!1),n=r[0],i=r[1],o=r[2];return o=M1(o+=a!==void 0&&a==="relative"?o*(t/100):t,0,100),new e(mn(n,i,o),this._alpha)},e.prototype.darken=function(t,a){return t===void 0&&(t=5),this.lighten(-t,a)},e.prototype.saturate=function(t,a){t===void 0&&(t=5);var r=this.hsl(!1),n=r[0],i=r[1],o=r[2];return i=M1(i+=a!==void 0&&a==="relative"?i*(t/100):t,0,100),new e(mn(n,i,o),this._alpha)},e.prototype.desaturate=function(t,a){return t===void 0&&(t=5),this.saturate(-t,a)},e.prototype.spin=function(t){var a=this.hsl(!1),r=a[0],n=a[1],i=a[2];return new e(mn(r=(r+t%360+360)%360,n,i),this._alpha)},e.prototype.adjustHue=function(t){return this.spin(t)},e.prototype.complement=function(){return this.spin(180)},e.prototype.invert=function(){var t=this._rgb.map((function(a){return 255-a}));return new e([t[0],t[1],t[2]],this._alpha)},e.prototype.mix=function(t,a){return a===void 0&&(a=50),_I(this,t,100-M1(a,0,100))},e.prototype.luma=function(){var t=this._rgb.map((function(a){return(a/=255)<=.03928?a/12.92:Math.pow((a+.055)/1.055,2.4)}));return .2126*t[0]+.7152*t[1]+.0722*t[2]},e.prototype.brightness=function(){var t=this._rgb;return(function(a,r,n){return(299*a+587*r+114*n)/1e3/255*100})(t[0],t[1],t[2])},e.prototype.deltaE=function(t,a,r){return a===void 0&&(a="CMC"),MI(this,t,a,r)},e.prototype.visibility=function(t,a){return Cte(this,t,a)},Et([Qt(0,1,!0,0),N3("color:rgb")],e.prototype,"rgb",null),Et([Qt(0,1,!0,0)],e.prototype,"rgba",null),Et([Qt(0,1,!0,0),N3("color:cmyk")],e.prototype,"cmyk",null),Et([Qt(0,1,!0,0),N3("color:hsl")],e.prototype,"hsl",null),Et([Qt(0,1,!0,0)],e.prototype,"hsla",null),Et([Qt(0,1,!0,0),N3("color:hsv")],e.prototype,"hsv",null),Et([Qt(0,1,!0,0),N3("color:hsi")],e.prototype,"hsi",null),Et([Qt(0,1,!0,0),N3("color: hwb")],e.prototype,"hwb",null),Et([Qt(2,1,!0,0),N3("color:xyz")],e.prototype,"xyz",null),Et([Qt(2,1,!0,0),N3("color:lab")],e.prototype,"lab",null),Et([Qt(2,1,!0,0),N3("color:lch")],e.prototype,"lch",null),Et([Qt(2,1,!0,0),N3("color:xyY")],e.prototype,"xyY",null),Et([N3("color:luma")],e.prototype,"luma",null),e})(),Mte=function(e,t,a,r){return new T1([e,t,a],r)},Pte=function(e,t,a,r){return new T1(mn(e,t,a),r)},Ute=function(e,t,a,r){return new T1(yy(e,t,a),r)},Ite=function(e,t,a,r){return new T1(by(e,t,a),r)},Tte=function(e,t,a,r){return new T1(Ny(e,t,a),r)},xte=function(e,t,a,r){return new T1(F8(e,t,a),r)},zte=function(e,t,a,r){return new T1(Sy(e,t,a),r)},Rte=function(e,t,a,r){return new T1(F8.apply(void 0,ky(e,t,a)),r)};function V1(e,t,a){return new T1(e,t,a)}V1.config=function(e){Object.assign(UI,e)},V1.random=function(){var e=v0(0,255),t=v0(0,255),a=v0(0,255);return new T1([e,t,a])},V1.convertor=yte,V1.Color=T1,V1.rgb=Mte,V1.hsl=Pte,V1.hsv=Ute,V1.hsi=Ite,V1.hwb=Tte,V1.xyz=xte,V1.lab=zte,V1.lch=Rte,V1.mix=_I,V1.deltaE=MI,V1.utils={roundDecimal:hI,randomRange:v0},V1.useNames=function(e,t){return(function(a,r){if(r!==void 0&&typeof r=="function"){var n={};for(var i in a){var o=r(i,a[i]),s=o[0],l=o[1];n[s]=l}Object.assign(w0,n)}else Object.assign(w0,a)})(e,t),V1};var II=9e5,Ete=15e3,TI=2e3,$te=12e4,jte=3e4,Ote=3e5,Dte=6e4;function xI(e){return e<$te?Ete:e<Ote?jte:Dte}function wy(e){if(!e)return;let t=Math.floor(e.t);return Number.isFinite(t)&&t>0?t:void 0}function Lte(e){return e?typeof e.c!="string"||e.c.trim()==="":!1}function zI(e,t){return!e||typeof e.c!="string"||e.c.trim()===""||typeof t!="string"||t.trim()===""?!1:t.trim().toLowerCase()===e.c.trim().toLowerCase()}function RI(e,t,a){return e?(a??0)>=e.v?"delivered":t-e.t>II?"expired":Lte(e)?"blind":"poll":"none"}function EI(e,t){return Math.max(0,e.t+II-t)}function C0(e,t){return t}var Wy="The connection dropped before the chart finished. You were charged only for the work already done. Generate again.";function $I(e){let t=String(e??"").trim();return t!==""?t:Wy}function Cy(e){if(!e)return null;let t=String(e.pollOutcome??"").trim().toLowerCase();if(e.isGenerationCancelled===!0||e.isPollFinal===!0&&t==="cancelled")return"cancelled";if(e.isPollFinal===!0)return t==="not-received"?"not-received":t==="lost-in-restart"?"lost-in-restart":"failed";if(e.isPollFinal==null&&e.isVersionNotFound===!0){let a=String(e.errorCode??"").trim().toUpperCase();if(a==="GENERATION_NOT_RECEIVED")return"not-received";if(a==="GENERATION_LOST_IN_RESTART")return"lost-in-restart";if(a==="GENERATION_FAILED")return"failed";if(a==="GENERATION_CANCELLED")return"cancelled"}return null}function _y(e){return e==="window-closed"||e==="hard-error"||e==="unreachable"}var jI=3;function Ay(e,t){return!t&&e>=jI}var OI="The charting service has no record of that request, so nothing was generated and nothing was charged. Generate again.",DI="That chart didn't finish on the server, so there's nothing to show. Generate again.",LI="The charting service restarted while your chart was being built, so nothing was delivered. Click Generate to build it again.",My="We couldn't reach the charting service to check on your chart - it may be offline, or blocked on this network. Try again in a moment.";function Py(e,t){let a=String(t??"").trim();return a!==""?a:e==="cancelled"?Wy:e==="not-received"?OI:e==="lost-in-restart"?LI:DI}var A0=e=>Pi[e];function S3(e,t){let a=(A0(e).values??[]).filter(n=>n!==""),r=a.filter(n=>!(n in t));if(r.length)throw new Error(`settings catalog: ${e} has vocabulary values with no argument spelling: ${r.join(", ")}`);return a.map(n=>({value:t[n][0],label:t[n][1]}))}function _0(e,t){let a={};for(let r of(A0(e).values??[]).filter(n=>n!==""))a[String(t[r][0])]=r;return a}function mr(e,t={}){let a=A0(e);return{min:Math.max(a.min??0,t.min??0),...a.max!==void 0?{max:a.max}:{},...t.integer?{integer:!0}:{}}}function w1(e,t,a){let r=A0(e).default;return r===""?t:r===0&&a!==void 0?a:String(r)}var B8=[{value:!0,label:"On"},{value:!1,label:"Off"}],K3="the engine decides",tt="the chart's own",FI={1:[!0,"Include a title"],0:[!1,"No title"]},BI={1:["include","Show data labels"],0:["exclude","No data labels"]},HI={outside:["outside","Outside the plot"],inside:["inside","Inside the plot"],none:["none","No standalone legend"]},GI={latest:["latest","The latest period"],"top / greatest":["top","The top by the measure"],"bottom / smallest":["bottom","The bottom by the measure"],"most common":["most_common","The most common values"],outliers:["outliers","The outliers"]},Fte={High:["High","Every observation as its own mark"],Medium:["Medium","Every row, shown as a distribution"],Low:["Low","One mark per category"]},Bte={fit:["fit","Fit the data's range"],zero:["zero","Always include zero"],auto:["auto","Fit, except where marks encode magnitude by length"]},Hte={auto:["auto","Only where the sampling grid is even and the peak is proven"],always:["always","On any grid"],never:["never","Never"]},Gte={line:["line","A continuous line"],boxes:["boxes","One box per period"]},Kte={both:["both","Each card's own arrows and one strip for the deck"],all:["all","One strip that moves every card together"],single:["single","Each card's own arrows only"]},Xte={horizontal:["horizontal","Side to side"],vertical:["vertical","Top to bottom"]},Vte={on:["on","On"],off:["off","Off"]},Zte=["Retail & e-commerce","Logistics & shipping","Manufacturing","Healthcare & life sciences","Finance & banking","Insurance","Marketing & advertising","SaaS & technology","Telecom","Energy & utilities","Real estate","Education","Government & public sector","Hospitality & travel"],KI=["level_of_detail","font_family","culture"],e3=Object.freeze([{key:"favorGeneralType",timing:"next-generate",arg:"chart_style",label:"Chart style",description:"Narrows the charts considered to one family: 'traditional' = the familiar forms (bar, stacked and grouped bar, line, area, pie, donut, card, gauge), 'non_traditional' = every other chart type. A chart named in chart_type is still honored unless the data shape disqualifies it, and 'traditional' also turns chart_variety off. Unset considers both families.",values:[{value:"traditional",label:"Only the familiar forms"},{value:"non_traditional",label:"Only the other chart types"}],default:K3,ask:"offer",appliesWhen:"always",wire:{to:"clientHints",field:"favorGeneralType",encode:{traditional:"TR",non_traditional:"NT"}},codes:["GENTYPE_TR","GENTYPE_NT"]},{key:"favorTitle",timing:"next-generate",arg:"show_title",label:"Chart title",description:"Whether the person wants a title inside the chart: true asks for a concise one, false asks for none. A yes or no, not the title's text. Unset: a chart narrower than 400 px or shorter than 300 px gets none, and a larger one draws at random whether to have one.",values:S3("favorTitle",FI),default:w1("favorTitle",K3),ask:"when-stated",appliesWhen:"always",wire:{to:"clientHints",field:"favorTitle",encode:_0("favorTitle",FI)},codes:["INCTITLE"]},{key:"favorDPValues",timing:"next-generate",arg:"data_labels",label:"Data labels",description:"Whether the person wants the value printed on each mark: 'include' asks for the labels, 'exclude' for none. Per-mark labels are suppressed when more than 30 marks would carry one. Unset: the engine decides.",values:S3("favorDPValues",BI),default:w1("favorDPValues",K3),ask:"when-stated",appliesWhen:"always",wire:{to:"clientHints",field:"favorDPValues",encode:_0("favorDPValues",BI)},codes:["INCDPVALS"]},{key:"legendPlacement",timing:"next-generate",arg:"legend_placement",label:"Legend placement",description:"Where the person wants the legend: 'outside' = in the chart margin, 'inside' = within the plot area where it overlaps the data least, 'none' = no standalone legend (the chart's own labels carry the names). A single-series chart draws no legend whichever is chosen. Unset: outside on a chart at least 500 px wide, the renderer's default on a narrower one.",values:S3("legendPlacement",HI),default:w1("legendPlacement","automatic"),ask:"when-stated",appliesWhen:"always",wire:{to:"clientHints",field:"legendPlacement",encode:_0("legendPlacement",HI)},codes:["NOLEGEND","LEGENDPLACEMENT"]},{key:"favorLimitTo",timing:"next-generate",arg:"limit_to",label:"Limit to",description:"The subset the person asks for, passed on as an authoritative instruction to limit to or focus on exactly it: 'latest', 'top' (top / greatest), 'bottom' (bottom / smallest), 'most_common' or 'outliers'. limit_count says how many are kept. Unset: the engine decides.",values:S3("favorLimitTo",GI),default:w1("favorLimitTo",K3),ask:"when-stated",appliesWhen:"always",wire:{to:"clientHints",field:"favorLimitTo",encode:_0("favorLimitTo",GI)},codes:["LIMITTO"]},{key:"favorLimitCount",timing:"next-generate",arg:"limit_count",label:"Limit count",description:"How many groups or categories the person asks to keep, from 1 to 10000. The engine keeps exactly that many by the measure, and its own Top-N, 'Other'-cap and cardinality rules yield to it. Unset: no limit from the person (the engine's own Top-N rules still apply).",range:mr("favorLimitCount",{integer:!0,min:1}),default:w1("favorLimitCount",K3,"no limit"),ask:"when-stated",appliesWhen:"always",wire:{to:"clientHints",field:"favorLimitCount"},codes:["LIMITCNT"]},{key:"industryContext",timing:"next-generate",arg:"industry",label:"Industry",description:"The industry the person names for the data, one of the listed values. A recognized metric name is used only when the columns are that industry's inputs for it. Unset: no industry context is added.",values:Zte.map(e=>({value:e,label:e})),default:w1("industryContext",K3),ask:"when-stated",appliesWhen:"always",wire:{to:"clientHints",field:"industryContext"},codes:[]},{key:"inChartCaption",timing:"next-generate",arg:"in_chart_caption",label:"Caption inside the chart",description:"Whether the person asks for a one-line subtitle under the chart title naming the chart type, any derived measure used and any non-default aggregation. Unset or false: none.",values:B8,default:"false",ask:"when-stated",appliesWhen:"always",wire:{to:"clientHints",field:"inChartCaption"},codes:["INCAPTION"]},{key:"compactness",timing:"next-generate",arg:"compactness",label:"Compactness",description:"How roomy the person wants the chart: 'spacious' = roomier margins and more aggressive aggregation of a high-cardinality column, 'balanced' = standard margins and label density, 'compact' = tighter margins and denser axes, aggregating only when cardinality clearly exceeds what fits. Unset: a level is drawn at random for each generation.",values:[{value:"spacious",label:"Spacious"},{value:"balanced",label:"Balanced"},{value:"compact",label:"Compact"}],default:"the engine decides, and can vary between generations",ask:"when-stated",appliesWhen:"always",wire:{to:"request",field:"compactness"},codes:["COMPACTNESS"]},{key:"favorDateSum",timing:"next-generate",arg:"date_grain",label:"Date grain",description:"The time grain the person asks for on the time axis: day, week, month, quarter, year or decade. It is passed on as a strong request, and a different bucket the engine plans is rewritten to it when the dates give that grain 2 or more periods; data with no date column can't honor it. Unset: the engine chooses, from the number of periods the dates give at each grain.",values:["day","week","month","quarter","year","decade"].map(e=>({value:e,label:e[0].toUpperCase()+e.slice(1)})),default:K3,ask:"when-stated",appliesWhen:"hasDateColumn",wire:{to:"clientHints",field:"favorDateSum"},codes:["DATESUM"]},{key:"favorEnhancement",timing:"next-generate",arg:"overlay",label:"Overlay",description:"The analytical layer the person asks for: 'moving_avg' = moving average, 'trend_line' = trend / regression line, 'anomaly' = anomaly highlights, 'confidence_band' = confidence band, 'forecast' = forecast / projection, 'yoy' = year-over-year comparison. It is strongly preferred where it applies to the chosen chart and data (the engine adds the derived measures it needs); where it can't apply, this data can't honor it. Unset: the engine decides.",values:[{value:"moving_avg",label:"Moving average"},{value:"trend_line",label:"Trend / regression line"},{value:"anomaly",label:"Anomaly highlights"},{value:"confidence_band",label:"Confidence band"},{value:"forecast",label:"Forecast"},{value:"yoy",label:"Year-over-year"}],default:K3,ask:"when-stated",appliesWhen:"always",wire:{to:"clientHints",field:"favorEnhancement"},codes:[]},{key:"allowGroupToOthers",timing:"next-generate",arg:"group_others",label:"Group the rest into Others",description:"Whether the person allows the categories beyond a limit to be grouped into one 'Others' bucket. True is the same as unset: under a limit the rest is grouped and the total stays whole; with no limit the engine decides whether to group. False: the rest is dropped and nothing is grouped. Unset: grouping allowed. group_others true is not sent with rows_policy 'all', which draws every row.",values:B8,default:"true (grouping allowed)",ask:"when-stated",appliesWhen:"always",conflictsWith:["rows_policy"],wire:{to:"clientHints",field:"allowGroupToOthers"},codes:["TOPN_FORCE"]},{key:"groupToOthersLabel",timing:"next-generate",arg:"others_label",label:"Name for the Others bucket",description:"The name the person gives the 'Others' bucket, at most 40 characters; quotes, backticks and control characters are removed and longer text is cut. Unset: 'Other'. Not sent when group_others is false.",valueHint:"plain text of at most 40 characters",maxLength:40,default:"Other",ask:"when-stated",appliesWhen:"always",conflictsWith:["group_others","rows_policy"],wire:{to:"clientHints",field:"groupToOthersLabel"},codes:["OTHERSLABEL"]},{key:"allowGeneratedMeasures",timing:"next-generate",arg:"derived_measures",label:"Derived measures",description:"Whether the person allows derived measures (ratios, z-scores, percent change, rank, index): 'discourage' keeps the chart to the raw columns (aggregations and sorts still apply); 'encourage' keeps them allowed and rules out the draw that would turn them off, without asking for more of them. Unset: a weighted draw for each generation. 'encourage' is not sent with forbid_derived_columns.",values:[{value:"encourage",label:"Keep derived measures allowed"},{value:"discourage",label:"Raw columns only"}],default:"the engine decides, and can vary between generations",ask:"when-stated",appliesWhen:"always",conflictsWith:["forbid_derived_columns"],wire:{to:"clientHints",field:"allowGeneratedMeasures",encode:{encourage:"YES",discourage:"NO"}},codes:["ALLOWMEAS_YES","ALLOWMEAS_NO"]},{key:"adventurousPct",timing:"next-generate",arg:"chart_variety",label:"Chart variety",description:"How much variety the person asks for: the probability, from 0 to 1, that the choice among the charts that fit this data is nudged toward a less conventional one, when the engine runs its planning pass. The nudge is among already-valid charts only: when only the obvious chart honestly fits, it is kept. It has no effect with an explicit chart_type, chart_style 'traditional' or reasoning_mode 1P or CP. Unset: the server's own default.",range:{min:0,max:1},default:"the server's default",ask:"when-stated",appliesWhen:"always",wire:{to:"clientHints",field:"adventurousPct"},codes:["ADVENTUROUS"]},{key:"levelOfDetail",timing:"next-generate",arg:"level_of_detail",label:"Level of detail",description:"The user's own preference for how much of the data to see, as they've stated it; it isn't a property of the data. 'High' = every observation drawn as its own mark (scatter, beeswarm, strip). 'Medium' = every row used, but shown as a distribution (box, violin, histogram). 'Low' = one mark per category (bars, cards, pies). Unset when the user hasn't stated one; unset is a proven no-op and the engine decides. This is a strong nudge, not a filter: it reorders charts that already fit, and an explicit chart_type still wins.",values:S3("levelOfDetail",Fte),default:w1("levelOfDetail",K3),ask:"offer",appliesWhen:"always",wire:{to:"clientHints",field:"levelOfDetail"},codes:[]},{key:"suggestFontFamily",timing:"next-generate",arg:"font_family",label:"Font",description:"The font family the person names for the chart's own text (titles, axis labels, tick labels, legends), or the one their house style says: a family such as 'Segoe UI' or a stack such as 'Segoe UI, Arial, sans-serif'. A font isn't a property of the data or the project. It applies to whichever renderer is chosen, and an unavailable family falls back to a web-safe stack rather than failing. Unset: the engine decides.",valueHint:"a font family or stack, such as 'Segoe UI, Arial, sans-serif'",maxLength:100,default:w1("suggestFontFamily",K3),ask:"when-stated",appliesWhen:"always",wire:{to:"clientHints",field:"suggestFontFamily"},codes:["FONTFAMILY"]},{key:"cultureCode",timing:"next-generate",arg:"culture",label:"Language and region",description:"The language and region the chart's labels and other output text are written in, as a BCP 47 tag such as 'de-DE', 'fr' or 'ja-JP'. It also breaks the tie when a CSV's numbers or dates are ambiguous. It does not translate the data.",valueHint:"a BCP 47 language tag, such as 'de-DE', 'fr' or 'ja-JP'",default:"en-US",ask:"offer",appliesWhen:"always",wire:{to:"request",field:"cultureCode"},codes:[]},{key:"maxMapPoints",timing:"live",option:"maxMapPoints",label:"Max map points",description:"The most places a point map plots; it caps what is drawn and decides which maps are offered.",range:mr("maxMapPoints",{integer:!0}),default:w1("maxMapPoints",tt),ask:"when-stated",appliesWhen:"codeReads",codes:[]},{key:"pageSize",timing:"live",option:"pageSize",label:"Rows per page",description:"How many rows a list-style chart shows at a time, with a pager; 0 draws every row.",range:mr("pageSize",{integer:!0}),default:w1("pageSize",tt),ask:"when-stated",appliesWhen:"codeReads",codes:[]},{key:"valueAxisBaseline",timing:"live",option:"valueAxisBaseline",label:"Value axis start",description:"Where a value axis starts: 'fit' follows the data's range, 'zero' always includes zero, 'auto' fits only where the marks don't encode magnitude by length. A bar keeps its zero floor whatever this says.",values:S3("valueAxisBaseline",Bte),default:w1("valueAxisBaseline",tt),ask:"when-stated",appliesWhen:"codeReads",codes:[]},{key:"seasonalMarkers",timing:"live",option:"seasonalMarkers",label:"Seasonal markers",description:"Whether a chart may name a lag or cycle with a calendar word: 'auto' only where the sampling grid is even and the peak is proven, 'always' on any grid, 'never' not at all.",values:S3("seasonalMarkers",Hte),default:w1("seasonalMarkers",tt),ask:"when-stated",appliesWhen:"codeReads",codes:[]},{key:"animAutoPlay",timing:"live",option:"animAutoPlay",label:"Auto-play",description:"Whether an animated chart starts playing by itself when it loads; off, it rests at its overview until a period is picked or play is pressed.",values:B8,default:w1("animAutoPlay",tt),ask:"offer",askWhen:"this chart animates (its code reads the option)",appliesWhen:"codeReads",codes:[]},{key:"animPlaySpeedMs",timing:"live",option:"animPlaySpeedMs",label:"Animation speed",description:"How long each period stays on screen while an animation plays, in milliseconds; lower is faster.",range:mr("animPlaySpeedMs",{integer:!0}),default:w1("animPlaySpeedMs",tt),ask:"when-stated",appliesWhen:"codeReads",codes:[]},{key:"animLoopDelaySec",timing:"live",option:"animLoopDelaySec",label:"Restart delay",description:"How long an animation rests after a play-through before it plays again, in seconds; 0 restarts at once and a very large value plays once per viewing.",range:mr("animLoopDelaySec",{integer:!0}),default:w1("animLoopDelaySec",tt),ask:"when-stated",appliesWhen:"codeReads",codes:[]},{key:"animStopAtEnd",timing:"live",option:"animStopAtEnd",label:"Rest at the last period",description:"Whether playback parks on the final period (and the chart opens there) instead of returning to the overview of all periods.",values:B8,default:w1("animStopAtEnd",tt),ask:"when-stated",appliesWhen:"codeReads",codes:[]},{key:"animMaxIdealFrames",timing:"live",option:"animMaxIdealFrames",label:"Most animation steps",description:"The target ceiling on how many steps an animation walks: dates are summarized to the finest calendar grain that stays at or under it.",range:mr("animMaxIdealFrames",{integer:!0}),default:w1("animMaxIdealFrames",tt),ask:"when-stated",appliesWhen:"codeReads",codes:[]},{key:"animTimelineStyle",timing:"live",option:"animTimelineStyle",label:"Timeline style",description:"How an animation's period scrubber is drawn: 'line' = a continuous line with a moving tick (many periods), 'boxes' = one selectable box per period (a handful); unset picks by the number of periods.",values:S3("animTimelineStyle",Gte),default:w1("animTimelineStyle","by the number of periods"),ask:"when-stated",appliesWhen:"codeReads",codes:[]},{key:"filtersDuringPlay",timing:"live",option:"filtersDuringPlay",label:"Filters during play",description:"Whether the page filter follows the animation frame by frame; off, it changes only when a mark or a period is clicked.",values:B8,default:w1("filtersDuringPlay",tt),ask:"when-stated",appliesWhen:"codeReads",codes:[]},{key:"flipMode",timing:"live",option:"flipMode",label:"Card flip controls",description:"Where a card deck's flip controls live: each card's own arrows, one strip that moves the whole deck, or both.",values:S3("flipMode",Kte),default:w1("flipMode",tt),ask:"offer",askWhen:"this chart is a card deck that flips (its code reads the option)",appliesWhen:"codeReads",codes:[]},{key:"flipIntervalMs",timing:"live",option:"flipIntervalMs",label:"Card flip interval",description:"How long each face stays before a deck or carousel turns by itself, in milliseconds; 0 is manual only. Unset uses the chart's own.",range:mr("flipIntervalMs",{integer:!0}),default:w1("flipIntervalMs",tt),ask:"when-stated",appliesWhen:"codeReads",codes:[]},{key:"flipDirection",timing:"live",option:"flipDirection",label:"Flip direction",description:"Which way a face turns, for any chart that turns between faces: side to side or top to bottom.",values:S3("flipDirection",Xte),default:w1("flipDirection",tt),ask:"when-stated",appliesWhen:"codeReads",codes:[]},{key:"cardBackgroundColor",timing:"live",option:"cardBackgroundColor",label:"Card background",description:"The fill behind each card of a deck and each face of a carousel, as a CSS color; unset uses the chart's own.",valueHint:"a CSS color",default:w1("cardBackgroundColor",tt),ask:"when-stated",appliesWhen:"codeReads",codes:[]},{key:"hoverDropLines",timing:"live",option:"hoverDropLines",label:"Hover drop lines",description:"For a 3D scatter: hovering a point draws a dashed line from it to each back wall of the cube, so its three values read off the gridlines there. Unset is off unless the request asked for them.",values:S3("hoverDropLines",Vte),default:w1("hoverDropLines",tt),ask:"when-stated",appliesWhen:"codeReads",codes:[]},{key:"approximatePositions",timing:"live",option:"approximatePositions",label:"Approximate positions",description:"What a map does with rows a gazetteer could place only roughly: 'mark' draws the mark at the coarse position, 'aggregate' rolls them into the coarser area they did resolve to, 'skip' draws no mark for them (totals still count them).",values:[{value:"mark",label:"Draw at the coarse position"},{value:"aggregate",label:"Roll into the coarser area"},{value:"skip",label:"Draw nothing for them"}],default:oy,ask:"when-stated",appliesWhen:"codeReads",codes:[]},{key:"geoPointRadiusPx",timing:"live",option:"geoPointRadiusPx",label:"Map dot radius",description:"The radius in pixels of the dot a map draws where a region would be too small to see; 0 lets the chart size it from its viewport.",range:{min:0,max:100,integer:!0},default:"0",ask:"when-stated",appliesWhen:"codeReads",codes:[]},{key:"noDataText",timing:"live",option:"noDataText",label:"Empty-chart text",description:"What the chart says when it has no rows to draw.",valueHint:"plain text",default:tt,ask:"when-stated",appliesWhen:"codeReads",codes:[]}]),Gde=Object.freeze([{key:"palette",reason:"theming is the host's: the app supplies its own colors"},{key:"visionReview",reason:"a setting of the Power BI visual only; nothing in an agent's app reads it"},{key:"saveThumbnails",reason:"a setting of the Power BI visual only; nothing in an agent's app reads it"},{key:"aggregation",reason:"already reaches generation through the prompt; the agent states it there"},{key:"colorScaleLow",reason:"already reaches generation through the prompt; the agent states it there"},{key:"colorScaleHigh",reason:"already reaches generation through the prompt; the agent states it there"},{key:"geoBorders",reason:"applies to province maps only, which this server does not offer yet"},{key:"deriveProvinces",reason:"applies to province maps only, which this server does not offer yet"}]),Kde=Object.freeze(["theme","size","width","height","selection","crossFiltering","dimOpacity","selectionGlyph","layoutPass","lasso","lasso.effect"]),M0=Object.freeze(e3.filter(e=>e.arg&&!KI.includes(e.arg)).map(e=>e.arg)),P0=e=>e3.find(t=>t.key===e),XI=e=>e3.find(t=>t.arg===e);function Uy(e){let t=P0(e);if(!t)throw new Error(`settings catalog: no row for ${e}`);return t.description}function U0(e){return e.timing==="live"?`chart-host option ${e.option}`:`argument ${e.arg}`}function gr(e){return C.preprocess(t=>t===null||t===""?void 0:t,e.optional())}function VI(){let e={};for(let t of e3){if(!t.arg||KI.includes(t.arg))continue;let a;if(t.range){let r=C.number(),n=(t.range.integer?r.int():r).min(t.range.min);a=t.range.max!==void 0?n.max(t.range.max):n}else t.values&&t.values.every(r=>typeof r.value=="boolean")?a=C.boolean():t.values?a=C.enum(["",...t.values.map(r=>r.value)]):a=C.string();e[t.arg]=gr(a).describe(t.description)}return e}var I0=(()=>{let e=e3.filter(a=>a.ask==="offer"&&a.timing==="next-generate"&&a.arg).map(a=>a.arg);return`The arguments ${e.length>1?`${e.slice(0,-1).join(", ")} and ${e[e.length-1]}`:e.join("")} are the person's choices, and the guide's 'settings' topic lists every choice a person can make with its options.`})();var Iy=40,gn=(...e)=>String.fromCodePoint(...e),qte=gn(917504)+"-"+gn(917631),Jte=new RegExp("[\\p{Cc}\\p{Zl}\\p{Zp}]+","gu"),Yte=gn(12644,10240,65440,847,4447,4448,6068,6069,6158,65279)+gn(8203)+"-"+gn(8207)+gn(8288)+"-"+gn(8292),Qte=new RegExp("[\\p{Cf}\\p{Co}\\p{Cs}"+qte+Yte+"]+","gu"),e3e=/[\p{L}\p{N}]/u,t3e=new RegExp("["+gn(34,39,96,8216,8217,8218,8219,8220,8221,8222,8223,8249,8250,171,187)+"{}$]","gu");function qI(e){if(typeof e!="string")return{text:"",removed:!1,cut:!1,noName:!1};let t=e.replace(Jte," ").replace(Qte,"").replace(t3e,"").replace(/%{2,}/g,"").replace(/\s+/g," ").trim(),a=Array.from(t),r=a.slice(0,Iy).join("").trim(),n=e.replace(/\s+/g," ").trim(),i=r!==""&&!e3e.test(r);return{text:i?"":r,removed:t!==n,cut:a.length>Iy,noName:i}}function a3e(e){return qI(e).text}var n3e=e=>typeof e=="string"&&e!==""?e:void 0,ZI=e=>e==null||e==="";function r3e(e,t,a){if(t==="others_label"){let n=qI(a);if(n.noName)return{refused:"it has no letter or digit once quotes, control and other special characters were removed"};if(!n.text)return{refused:"nothing was left of it once quotes, control and other special characters were removed"};let i=[n.removed?"characters that could be read as prompt syntax were removed":"",n.cut?`cut to ${Iy} characters`:""];return{shown:n.text,wire:n.text,...i.some(Boolean)?{note:i.filter(Boolean).join("; ")}:{}}}if(e.range){let n=typeof a=="number"?a:NaN;if(!Number.isFinite(n))return{refused:"it is not a number"};if(t==="limit_count"&&n<e.range.min)return{refused:"a count below 1 means no limit, and no limit is sent as no value"};let i=Math.min(e.range.max??n,Math.max(e.range.min,n)),o=e.range.integer?Math.trunc(i):i,s=[i!==n?`held to the range ${e.range.min} to ${e.range.max}`:"",o!==i?"rounded down to a whole number":""];return{shown:o,wire:o,...s.some(Boolean)?{note:s.filter(Boolean).join("; ")}:{}}}if(e.values?.every(n=>typeof n.value=="boolean")){if(typeof a!="boolean")return{refused:"it is not true or false"};let n=e.wire?.encode&&String(a)in e.wire.encode?e.wire.encode[String(a)]:a;return{shown:a,wire:n}}let r=n3e(a);return r===void 0?{refused:"it is not text"}:e.values&&!e.values.some(n=>n.value===r)?{refused:`'${r.slice(0,40)}' is not one of its choices`}:{shown:r,wire:e.wire?.encode&&r in e.wire.encode?e.wire.encode[r]:r}}function i3e(e,t,a){if(t.to==="clientHints"){e.clientHints[t.field]=a;return}if(t.field!=="compactness")throw new Error(`settings wire: the request field '${t.field}' is not placed by resolveSettings`);e.compactness=String(a)}function T0(e){let t={clientHints:{},sent:{},adjusted:{},conflicts:[]},a=e.settings??{},r=o=>!ZI(a[o]),n=new Map,i=e.rowsPolicy==="all";i&&a.group_others===!0&&n.set("group_others","rows_policy all draws every row, so nothing is grouped"),i&&r("limit_to")&&n.set("limit_to","rows_policy all draws every row, so no limit applies"),i&&r("limit_count")&&n.set("limit_count","rows_policy all draws every row, so no limit applies"),e.forbidDerivedColumns===!0&&a.derived_measures==="encourage"&&n.set("derived_measures","forbid_derived_columns allows no derived columns, so none can be encouraged"),e.forbidDerivedColumns===!0&&r("overlay")&&n.set("overlay","forbid_derived_columns allows no derived columns, and an overlay adds them"),r("others_label")&&a3e(a.others_label)!==""&&(a.group_others===!1?n.set("others_label","group_others is false, so nothing is grouped and there is no Others bucket to name"):i&&n.set("others_label","rows_policy all draws every row, so there is no Others bucket to name")),r("chart_variety")&&(e.chartType?n.set("chart_variety","an explicit chart_type leaves the variety nudge out, so chart_variety has no effect"):a.chart_style==="traditional"?n.set("chart_variety","chart_style traditional leaves the variety nudge out, so chart_variety has no effect"):(e.reasoningMode==="1P"||e.reasoningMode==="CP")&&n.set("chart_variety",`reasoning_mode ${e.reasoningMode} runs no planning pass, which is the only place chart_variety is read, so it has no effect`));for(let o of M0){let s=a[o];if(ZI(s))continue;let l=XI(o);if(!l?.wire)continue;let u=n.get(o);if(u){t.conflicts.push({dropped:o,because:u});continue}let c=r3e(l,o,s);if("refused"in c){t.conflicts.push({dropped:o,because:c.refused});continue}t.sent[o]=c.shown,c.note&&(t.adjusted[o]=c.note),i3e(t,l.wire,c.wire)}return t}var o3e=new Set(["0","false","off","no"]);function Ui(e){return!o3e.has(String(e.BIC_MCP_TELEMETRY??"").trim().toLowerCase())}function fn(e){if(!(typeof e!="string"||e.trim()===""))try{let t=Intl.getCanonicalLocales(e.trim());return t.length!==1?void 0:(new Intl.NumberFormat(t[0]),t[0])}catch{return}}var JI=e=>!!e&&typeof e=="object"&&!Array.isArray(e);function YI(e){let t=typeof e=="number"?e:typeof e=="string"&&e.trim()!==""?Number(e):NaN;return Number.isFinite(t)&&t>=1?Math.floor(t):void 0}function Ty(e){try{let t=y1(e,"capabilities");if(!JI(t))return;let a=y1(t,"lasso");if(!JI(a))return;let r=YI(y1(a,"rowCap"));return{lasso:r===void 0?{}:{rowCap:r}}}catch{return}}function x0(e){let t=e?.lasso;if(!t)return;let a=YI(t.rowCap);return{capable:!0,enabled:!0,...a!==void 0?{rowCap:a}:{}}}var QI="A circled group arrives through the same `selects` a click uses, as many keys (filter.values): on a page, pass this chart `selects` and give the other charts filterBy or filterQuery/treatAs, as for a click, so the circled group filters the page. With no `selects` the lasso only highlights inside this chart.";import{createServer as s3e}from"node:http";import{createHash as l3e,randomBytes as tT}from"node:crypto";import{spawn as u3e}from"node:child_process";import{homedir as c3e,hostname as d3e}from"node:os";import{dirname as h3e,join as p3e}from"node:path";import{chmodSync as m3e,mkdirSync as g3e,readFileSync as f3e,renameSync as y3e,rmSync as b3e,writeFileSync as N3e}from"node:fs";var H8="OAUTH_TOKEN_EXPIRED",X3="OAUTH_SIGNED_OUT";function eT(e,t){let a=(t??"").trim();return!a||e.licenseKey!==""||e.licensee!==""||e.secretKey!==""?{}:{accessToken:a}}var Ry="chart-mcp",v3e=18e4,S3e=6e4,k3e=6e5,aT=384,Ii="SIGN_IN_REQUIRED",Ey="SIGN_IN_UNREACHABLE";function w3e(e){let[t,a]=process.platform==="win32"?["rundll32",["url.dll,FileProtocolHandler",e]]:process.platform==="darwin"?["open",[e]]:["xdg-open",[e]],r=u3e(t,a,{detached:!0,stdio:"ignore",windowsHide:!0});r.on("error",()=>{}),r.unref()}var W3e={fetch:(e,t)=>fetch(e,t),openBrowser:w3e,log:e=>{process.stderr.write(e+`
114
+ `;){let g=t[p];if(g==="\\"){p+=2;continue}if(g==="[")m=!0;else if(g==="]")m=!1;else if(g==="/"&&!m)break;p++}if(p<a&&t[p]==="/"){for(p++;p<a&&/[A-Za-z]/.test(t[p]);)p++;r+=t.slice(n,p),n=p,o="/",s="",l=!1;continue}}if(h!==null&&h>=0){if(c==="{")i[i.length-1]=h+1;else if(c==="}"){if(h===0){i[i.length-1]=-1,r+=c,n++;continue}i[i.length-1]=h-1}}r+=c,n++,/\s/.test(c)?l=!1:(/[A-Za-z0-9_$]/.test(c)?(s=l?s+c:c,l=!0):(s="",l=!1),o=c)}return r}var ote=8,ste=1.5,Pue=ote/2+ste;var QU=Object.freeze({sankey:"d3-sankey",sankeyLinkHorizontal:"d3-sankey",sankeyJustify:"d3-sankey",sankeyCenter:"d3-sankey",sankeyLeft:"d3-sankey",sankeyRight:"d3-sankey",hexbin:"d3-hexbin",voronoiTreemap:"d3-voronoi-treemap",voronoiMap:"d3-voronoi-map",weightedVoronoi:"d3-weighted-voronoi",mermaid:"mermaid",llmMermaid:"mermaid"});function O8(e){let t=new Set,a=YU(String(e||"")),r=n=>{let i=QU[n];i&&t.add(i)};for(let n of a.matchAll(/\bd3\s*\.\s*(\w+)/g))r(n[1]);for(let n of a.matchAll(/\bd3\s*\[\s*['"](\w+)['"]\s*\]/g))r(n[1]);for(let n of a.matchAll(/\{([^{}]*)\}\s*=\s*d3\b/g))for(let i of n[1].split(","))r(i.split(":")[0].trim());return[...t].sort()}var Uue=Object.freeze({sourceId:null,rows:Object.freeze([])});/*! @bicharts/chart-host — Apache-2.0. Bundled reference data: GeoNames (https://www.geonames.org/) CC BY 4.0; Natural Earth and US Census/TIGER (public domain). Full text: NOTICE in this package. */var lte=10,ute=1e5,cte=1e4,Qe=e=>Object.freeze({...e,...e.values?{values:Object.freeze([...e.values])}:{}}),Pi=Object.freeze({aggregation:Qe({timing:"live-and-next-generate",default:"",values:["","sum","average","median","min","max","count","distinct"],wire:"request"}),colorScaleLow:Qe({timing:"live-and-next-generate",default:"",wire:"request"}),colorScaleHigh:Qe({timing:"live-and-next-generate",default:"",wire:"request"}),palette:Qe({timing:"live-and-next-generate",default:"",wire:"request"}),maxMapPoints:Qe({timing:"live-and-next-generate",default:N0,min:lte,max:ute,wire:"clientHints"}),pageSize:Qe({timing:"live",default:0,min:0}),valueAxisBaseline:Qe({timing:"live",default:KU,values:["fit","zero","auto"]}),seasonalMarkers:Qe({timing:"live",default:XU,values:["auto","always","never"]}),animAutoPlay:Qe({timing:"live",default:!1}),animPlaySpeedMs:Qe({timing:"live",default:Wi,min:m0,max:g0}),animLoopDelaySec:Qe({timing:"live",default:f0,min:FU}),animStopAtEnd:Qe({timing:"live",default:!1}),animMaxIdealFrames:Qe({timing:"live",default:Ci,min:y0,max:b0}),animTimelineStyle:Qe({timing:"live",default:"",values:["","line","boxes"]}),filtersDuringPlay:Qe({timing:"live",default:!1}),flipMode:Qe({timing:"live",default:BU,values:["both","all","single"]}),flipIntervalMs:Qe({timing:"live",default:"",min:0,max:HU}),flipDirection:Qe({timing:"live",default:GU,values:["horizontal","vertical"]}),cardBackgroundColor:Qe({timing:"live",default:""}),hoverDropLines:Qe({timing:"live",default:"",values:["","on","off"]}),geoBorders:Qe({timing:"live",default:!0}),deriveProvinces:Qe({timing:"next-generate",default:!0}),levelOfDetail:Qe({timing:"next-generate",default:"",values:["","High","Medium","Low"],wire:"clientHints"}),favorLimitTo:Qe({timing:"next-generate",default:"",values:["","latest","top / greatest","bottom / smallest","most common","outliers"],wire:"clientHints"}),favorLimitCount:Qe({timing:"next-generate",default:0,min:0,max:cte,wire:"clientHints"}),favorTitle:Qe({timing:"next-generate",default:"",values:["","1","0"],wire:"clientHints"}),favorDPValues:Qe({timing:"next-generate",default:"",values:["","1","0"],wire:"clientHints"}),legendPlacement:Qe({timing:"next-generate",default:"",values:["","outside","inside","none"],wire:"clientHints"}),industryContext:Qe({timing:"next-generate",default:"",wire:"clientHints"}),suggestFontFamily:Qe({timing:"next-generate",default:"",wire:"clientHints"}),visionReview:Qe({timing:"after-render",default:!1}),saveThumbnails:Qe({timing:"after-render",default:!1})}),Fde=Object.freeze(Object.keys(Pi).filter(e=>Pi[e].timing==="live"||Pi[e].timing==="live-and-next-generate"));function iI(e,t){return!e||!Object.prototype.hasOwnProperty.call(Pi,t)?!1:new RegExp(`\\boptions\\.${t}\\b`).test(e)}var dte=/\.(?:getFullYear|getMonth|getDate|getDay|getHours|getMinutes|setFullYear|setMonth|setDate|setHours|setMinutes|setSeconds|setMilliseconds)\s*\(/,hte=/\bd3\s*\.\s*(?:scaleTime|time[A-Z]\w*)\b/,pte=/\bnew\s+Date\s*\(\s*[^(),]+,/,mte=/\bIntl\s*\.\s*DateTimeFormat\b|\.toLocaleDateString\s*\(|\.toLocaleTimeString\s*\(/;function oI(e){return e?dte.test(e)||hte.test(e)||pte.test(e)?!0:mte.test(e)&&!/timeZone/.test(e):!1}var Bde=Object.freeze(["TILE_TOO_NARROW","TILE_TOO_SHORT","TILE_NOT_SQUARE","TILE_NOT_TALL","TILE_TOO_SMALL","EMBED_NOTHING_FITS_TILE","EMBED_BEESWARM_TILE_TOO_SMALL"]);var sI="loose";function lI(e){return typeof e=="string"&&e.trim().toLowerCase()==="exact"?"exact":sI}function uy(e){return typeof e!="string"||e===""?"":e.normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().replace(/\s+/g," ").trim()}var eI=2;function tI(e,t){for(let a=e.indexOf(t);a>=0;a=e.indexOf(t,a+1)){if(a===0)return!0;let r=e.charCodeAt(a-1);if(!(r>=97&&r<=122||r>=48&&r<=57))return!0}return!1}function aI(e){let t="",a=new Set,r=!1;for(let n of e){let i=ya(n),o=n.charCodeAt(0),s=o>=97&&o<=122||o>=48&&o<=57;i&&(r||a.add(t.length),t+=i),r=s}return{form:t,starts:a}}function nI(e,t){for(let a=e.form.indexOf(t);a>=0;a=e.form.indexOf(t,a+1))if(e.starts.has(a))return!0;return!1}function L8(e,t,a,r=sI){let n=Array.isArray(e)?e.slice():[],i=uy(t);if(i.length<eI)return{rows:n,tier:"all",term:""};let o=r==="loose"?ya(i):"",s=o.length>=eI?o:"",l=[],u=[],c=[];for(let d of n){let h=a(d),p=uy(h.name);if(p==="")continue;if(p.indexOf(i)>=0){(tI(p,i)?l:u).push(d);continue}if(s&&nI(aI(p),s)){l.push(d);continue}let m=uy(h.description);(tI(m,i)||s&&nI(aI(m),s))&&c.push(d)}return l.length>0?{rows:l,tier:"name",term:i}:u.length>0?{rows:u,tier:"namePart",term:i}:c.length>0?{rows:c,tier:"desc",term:i}:{rows:[],tier:"none",term:i}}function W0(e){return{name:e.name,description:e.description}}function uI(e){return{name:e.name,description:e.reason}}function Et(e,t,a,r){var n,i=arguments.length,o=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,a):r;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")o=Reflect.decorate(e,t,a,r);else for(var s=e.length-1;s>=0;s--)(n=e[s])&&(o=(i<3?n(o):i>3?n(t,a,o):n(t,a))||o);return i>3&&o&&Object.defineProperty(t,a,o),o}function v3(e,t,a){if(a||arguments.length===2)for(var r,n=0,i=t.length;n<i;n++)!r&&n in t||(r||(r=Array.prototype.slice.call(t,0,n)),r[n]=t[n]);return e.concat(r||Array.prototype.slice.call(t))}var cI=function(e,t,a){return[e,t,a].map((function(r){return(r/=255)>.04045?Math.pow((r+.055)/1.055,2.4):r/12.92}))},dI=function(e,t,a){return[e,t,a].map((function(r){return 255*(r<=.00304?12.92*r:1.055*Math.pow(r,1/2.4)-.055)}))},M1=function(e,t,a){return Math.min(Math.max(e,t),a)},hI=function(e,t){return Math.round((e+Number.EPSILON)*Math.pow(10,t))/Math.pow(10,t)},v0=function(e,t){return Math.floor(Math.random()*(t-e+1)-e)},pI=function(e,t,a,r){for(var n,i=[e,t,a],o="#",s=0;s<i.length;s++)o+=(n=i[s],Math.round(M1(n,0,255)).toString(16).padStart(2,"0"));return r!=null&&(o+=Math.round(M1(r,0,100)/100*255).toString(16).padStart(2,"0")),o},mI=function(e){var t=e.length,a=(e=(function(i){var o=(i=/^#/.test(i)?i.slice(1):i).length;if(![3,4,6,8].includes(o))return"000000";if(o===6||o===8)return i;if(o===3||o===4){for(var s="",l=0;l<o;l++){var u=i[l];s+=""+u+u}return s}return"000000"})(e).padEnd(8,"ff")).match(/.{2}/g);if(!a)return[0,0,0,1];var r=[0,0,0],n=!1;return a.forEach((function(i,o){o<3?r[o]=parseInt(i,16):n=100*parseInt(i,16)/255})),n===!1||t<8?r:v3(v3([],r,!0),[n],!1)},gI=function(e,t,a){var r;r=[e,t,a].map((function(o){return o/255})),e=r[0],t=r[1],a=r[2];var n=1-Math.max(e,t,a),i=n<1?1/(1-n):0;return[(1-e-n)*i*100,(1-t-n)*i*100,(1-a-n)*i*100,100*n]},fI=function(e,t,a,r){return r===100?[0,0,0]:(r/=100,[e,t,a].map((function(n){return(n/=100)>=1?0:255*(1-n)*(1-r)})))};function gy(e,t,a,r){var n;r===void 0&&(r="l"),n=[e,t,a].map((function(p){return p/255})),e=n[0],t=n[1],a=n[2];var i=Math.max(e,t,a),o=Math.min(e,t,a),s=(function(p,m,g,f){var y;f===void 0&&(f=!1),y=[p,m,g].map((function(S){return S/255})),p=y[0],m=y[1],g=y[2];var b=Math.max(p,m,g),v=Math.min(p,m,g),k=0;if(b!==v)if(f)k=(p-m+(p-g))/2,k/=Math.sqrt((p-m)*(p-m)+(p-g)*(m-g)),k=Math.acos(k),g>m&&(k=2*Math.PI-k),k/=2*Math.PI;else{var W=b-v;k=b===p?(m-g)/W+(m<g?6:0):b===m?(g-p)/W+2:(p-m)/W+4,k/=6}else k=NaN;return 360*k})(e,t,a,r==="i"),l=0,u=(i+o)/2,c=i-o,d=i,h=(e+t+a)/3;return r==="v"&&(l=i===0?0:c/i),i!==o&&r==="l"&&(l=u>.5?c/(2-i-o):c/(i+o)),r==="i"&&(l=h>0?1-o/h:0),l*=100,u*=100,h*=100,r==="l"?[s,l,u]:r==="v"?[s,l,d*=100]:[s,l,h]}var fy=function(e,t,a){return gy(e,t,a,"l")},mn=function(e,t,a){var r,n,i=function(o){return 6*(o=o<0?o+1:o>1?o-1:o)<1?r+(n-r)*o*6:2*o<1?n:3*o<2?r+(n-r)*(.6666666666666666-o)*6:r};return e=e%360/360,t=M1(t/100,0,1),a=M1(a/100,0,1),r=2*a-(n=a<=.5?a*(t+1):a+t-a*t),[255*i(e+1/3),255*i(e),255*i(e-1/3)]},yI=function(e,t,a){return gy(e,t,a,"v")},yy=function(e,t,a){var r,n,i=[a/=100,a*(1-(t/=100)),a*(1-(n=(e=e%360/360*360)/60-(r=Math.floor(e/60%6)))*t),a*(1-(1-n)*t)],o=[[0,3,1],[2,0,1],[1,0,3],[1,2,0],[3,1,0],[0,1,2]];return[255*i[o[r][0]],255*i[o[r][1]],255*i[o[r][2]]]},bI=function(e,t,a){return gy(e,t,a,"i")},by=function(e,t,a){var r,n,i,o;t/=100,a/=100,isNaN(e)&&(e=0),isNaN(t)&&(t=0);var s=function(l){return(1+t*Math.cos(2*Math.PI*l)/Math.cos(Math.PI/3-2*Math.PI*l))/3};return(e=(360+e)%360/360)<1/3?i=1-((o=(1-t)/3)+(n=s(e))):e<2/3?o=1-((n=(1-t)/3)+(i=s(e-=1/3))):n=1-((i=(1-t)/3)+(o=s(e-=2/3))),r=[n,i,o].map((function(l){return 255*M1(a*l*3,0,1)})),[n=r[0],i=r[1],o=r[2]]},NI=function(e,t,a){return[fy(e,t,a)[0],100*(Math.min(e,t,a)/255),100*(1-Math.max(e,t,a)/255)]};function Ny(e,t,a){return t/=100,a/=100,mn(e,100,50).map((function(r){return 255*(r/255*(1-t-a)+t)}))}var cy={x:[.4124564,.3575761,.1804375],y:[.2126729,.7151522,.072175],z:[.0193339,.119192,.9503041]},dy={r:[3.2404542,-1.5371385,-.4985314],g:[-.969266,1.8760108,.041556],b:[.0556434,-.2040259,1.0572252]},vI=.95047,SI=1,kI=1.08883,gte=.206896552,fte=.008856452,wI=24389/27,hy=function(e,t,a){var r=cI(e,t,a);return[100*cy.x.reduce((function(n,i,o){return n+i*r[o]}),0),100*cy.y.reduce((function(n,i,o){return n+i*r[o]}),0),100*cy.z.reduce((function(n,i,o){return n+i*r[o]}),0)]},F8=function(e,t,a){var r=[e,t,a],n=dy.r.reduce((function(s,l,u){return s+l*r[u]}),0)/100,i=dy.g.reduce((function(s,l,u){return s+l*r[u]}),0)/100,o=dy.b.reduce((function(s,l,u){return s+l*r[u]}),0)/100;return dI(n,i,o)},S0=function(e,t,a){var r;return r=[e=e/vI/100,t=t/SI/100,a=a/kI/100].map((function(n){return n>fte?Math.pow(n,1/3):(wI*n+16)/116})),e=r[0],t=r[1],a=r[2],[Math.max(0,116*t-16),500*(e-t),200*(t-a)]},vy=function(e,t,a){var r,n=(e+16)/116,i=isNaN(t)?n:n+t/500,o=isNaN(a)?n:n-a/200;return r=[i,n,o].map((function(s){return s>gte?Math.pow(s,3):(116*s-16)/wI})),i=r[0],n=r[1],o=r[2],[i*vI*100,n*SI*100,o*kI*100]},Sy=function(e,t,a){return F8.apply(void 0,vy(e,t,a))},py=function(e,t,a){t=M1(t,-100,100),a=M1(a,-100,100);var r=Math.sqrt(t*t+a*a),n=(180*Math.atan2(a,t)/Math.PI+360)%360;return Math.round(1e4*r)===0&&(n=Number.NaN),[e,r,n]},WI=function(e,t,a){return isNaN(a)&&(a=0),a*=Math.PI/180,[e,Math.cos(a)*t,Math.sin(a)*t]},ky=function(e,t,a){return vy.apply(void 0,WI(e,t,a))},CI=function(e,t,a){var r=e+t+a,n=0,i=0;return r>0&&(n=e/r,i=t/r),[n,i,t]},yte=Object.freeze({__proto__:null,linear2rgb:dI,rgb2linear:cI,rgb2hex:pI,hex2rgb:mI,rgb2cmyk:gI,cmyk2rgb:fI,rgb2hsl:fy,hsl2rgb:mn,rgb2hsv:yI,hsv2rgb:yy,rgb2hsi:bI,hsi2rgb:by,rgb2hwb:NI,hwb2rgb:Ny,rgb2xyz:hy,xyz2rgb:F8,xyz2lab:S0,lab2xyz:vy,rgb2lab:function(e,t,a){return S0.apply(void 0,hy(e,t,a))},lab2rgb:Sy,lch2lab:WI,lab2lch:py,xyz2lch:function(e,t,a){return py.apply(void 0,S0(e,t,a))},lch2xyz:ky,xyY2xyz:function(e,t,a){return t===0?[0,0,0]:[e*(a/t),a,a/t*(1-e-t)]},xyz2xyY:CI});function N3(e,t){return t===void 0&&(t=!1),function(a,r,n){var i=n.value;n.value=function(){for(var o=[],s=0;s<arguments.length;s++)o[s]=arguments[s];if(o.length>0&&t){var l=JSON.stringify(o);e+=l}if(this.cache.has(e))return this.cache.get(e);var u=i.call.apply(i,v3([this],o,!1));return this.cache.set(e,u),u}}}function Qt(e,t,a,r){return e===void 0&&(e=[0,2,2]),t===void 0&&(t=0),a===void 0&&(a=!0),r===void 0&&(r=0),function(n,i,o){var s=o.value;o.value=function(){for(var l=[],u=0;u<arguments.length;u++)l[u]=arguments[u];var c=l[r]===void 0?a:l[r],d=s.call.apply(s,v3([this],l,!1));if(c===!1)return d;var h=typeof c=="number"?Math.round(c):0,p=typeof e=="number"?new Array(d.length).fill(e):e,m=p.map((function(g){return t===1?typeof c=="number"?h:g:g+h}));return d.map((function(g,f){return hI(g,m[f])}))}}}var _I=function(e,t,a){var r=e instanceof T1?e:new T1(e),n=t instanceof T1?t:new T1(t),i=M1(a,0,100)/100,o=2*i-1,s=r.alpha()-n.alpha(),l=((o*s==-1?o:(o+s)/(1+o*s))+1)/2,u=1-l,c=[Math.round(M1(r.red()*l+n.red()*u,0,255)),Math.round(M1(r.green()*l+n.green()*u,0,255)),Math.round(M1(r.blue()*l+n.blue()*u,0,255))],d=r.alpha()*i+n.alpha()*(1-i);return new T1(c,d)},Ct=Math.sqrt,Ke=Math.pow,_i=Math.cos,D8=Math.abs,rI=Math.sin,bte=Math.exp,Nte=Math.atan2,AI=Math.PI,pn=function(e){return AI*e/180},my=function(e,t,a){a===void 0&&(a=!0);var r=Nte(t,e);return a&&(r=(r=(r=180*r/AI)>0?r:r+360)>360?r-360:r),r},Ai=function(e,t){t===void 0&&(t=!0);var a=e.lab(!1),r=a[0],n=a[1],i=a[2];return[r,Ct(Ke(n,2)+Ke(i,2)),my(n,i,t),n,i]},vte=["CMC","CIE","CIE2000","CIE1994","CIE1976"],Ste="CMC",kte="CIE2000",wte="CIE1994",Wte="CIE1976",MI=function(e,t,a,r){a===void 0&&(a="CIE");var n=(function(c){var d=c.toUpperCase();return vte.includes(d)&&d!=="CIE"?d:kte})(a);if(r=r||{},n===Ste){var i=Object.assign({},{l:1,c:1},r);return(function(c,d,h,p){h===void 0&&(h=1),p===void 0&&(p=1);var m=Ai(c,!0),g=m[0],f=m[1],y=m[2],b=m[3],v=m[4],k=Ai(d),W=k[0],S=k[1],M=k[3],z=f-S,_=g-W,A=v-k[4],E=Ct(Ke(b-M,2)+Ke(A,2)-Ke(z,2)),B=g<16?.511:.040975*g/(1+.01765*g),w=.0638*f/(1+.0131*f)+.638,N=164<=y&&y<=345?.56+D8(.2*_i(pn(y+168))):.36+D8(.4*_i(pn(y+35))),P=Ct(Ke(f,4)/(Ke(f,4)+1900)),U=w*(P*N+1-P);return Ct(Ke(_/(h*B),2)+Ke(z/(p*w),2)+Ke(E/U,2))})(e,t,i.l,i.c)}if(n===wte){var o={kL:1,kC:1,kH:1,cate:"graphic"},s=Object.assign({},o,r);return(function(c,d,h,p,m,g){h===void 0&&(h=1),p===void 0&&(p=1),m===void 0&&(m=1),g===void 0&&(g="graphic");var f=g==="textiles"?.048:.045,y=g==="textiles"?.014:.015;h=g==="textiles"?2:h;var b=Ai(c),v=b[0],k=b[1],W=b[3],S=b[4],M=Ai(d),z=M[0],_=M[1],A=M[3],E=v-z,B=k-_,w=S-M[4],N=1+f*k,P=1+y*k,U=Ct(Ke(W-A,2)+Ke(w,2)-Ke(B,2));return Ct(Ke(E/(1*h),2)+Ke(B/(p*N),2)+Ke(U/(m*P),2))})(e,t,s.kL,s.kC,s.kH,s.cate)}if(n===Wte)return(function(c,d){var h=c.lab(!1),p=h[0],m=h[1],g=h[2],f=d.lab(!1),y=f[0],b=f[1],v=f[2];return Ct(Ke(p-y,2)+Ke(m-b,2)+Ke(g-v,2))})(e,t);var l={kL:1,kC:1,kH:1},u=Object.assign({},l,r);return(function(c,d,h,p,m){h===void 0&&(h=1),p===void 0&&(p=1),m===void 0&&(m=1);var g=Ai(c),f=g[0],y=g[1],b=g[3],v=g[4],k=Ai(d),W=k[0],S=k[1],M=k[3],z=k[4],_=(f+W)/2,A=(y+S)/2,E=(1-Ct(Ke(A,7)/(Ke(A,7)+Ke(25,7))))/2,B=b*(1+E),w=M*(1+E),N=Ct(Ke(B,2)+Ke(v,2)),P=Ct(Ke(w,2)+Ke(z,2)),U=my(B,v,!0),I=my(w,z,!0),R=(N+P)/2,D=D8(U-I)>180?(U+I+360)/2:(U+I)/2,$=1-.17*_i(pn(D-30))+.24*_i(pn(2*D))+.32*_i(pn(3*D+6))-.2*_i(pn(4*D-63)),Z=D8(I-U)<=180?I-U:D8(I-U)>180&&I<=U?I-U+360:I-U-360,H=W-f,O=S-y,j=2*Ct(N*P)*rI(pn(Z)/2),Y=1+.015*Ke(_-50,2)/Ct(20+Ke(_-50,2)),L=1+.045*R,ee=1+.015*R*$,de=30*bte(-Ke((D-275)/25,2)),K=-2*Ct(Ke(R,7)/(Ke(R,7)+Ke(25,7)))*rI(2*pn(de));return Ct(Ke(H/(h*Y),2)+Ke(O/(p*L),2)+Ke(j/(m*ee),2)+K*(O/(p*L))*(j/(m*ee)))})(e,t,u.kL,u.kC,u.kH)},Cte=function(e,t,a){var r=Math.abs,n=Math.max,i=Math.min,o=e instanceof T1?e:new T1(e),s=t instanceof T1?t:new T1(t),l=Object.assign({},{b:125,c:500},a);return!(r(255*o.brightness()/100-255*s.brightness()/100)<=l.b)&&!(n(o.red(),s.red())-i(o.red(),s.red())+(n(o.green(),s.green())-i(o.green(),s.green()))+(n(o.blue(),s.blue())-i(o.blue(),s.blue()))<=l.c)},Mi=function(e,t,a){var r,n=function(u){return M1(u,0,100)},i=function(u){return M1(u,0,255)},o={h:[0,function(u){return u%360}],s:[1,n],l:[2,n],r:[0,i],g:[1,i],b:[2,i]},s=o[t][0];if(["h","s","l"].includes(t)){var l=e.hsl();if(a===void 0)return l[s];a=o[t][1](a),l[s]=a,r=mn.apply(void 0,l)}else{if(r=e.rgb(),a===void 0)return r[s];a=o[t][1](a),r[s]=a}return new T1(r,e.alpha())},w0={},_te=new Set(["rgb","rgba","cmyk","lab","hsl","hsla","hsv","hsva","hsi","hsia","xyz","lch","hwb","hwba"]),Ate=/^([a-zA-Z]+)\(([\s\S]+)\)$/,k0=function(e){return typeof e=="string"?e.indexOf("%")===-1?k0(Number(e.trim())):(e=e.split("%")[0],(e=Number(e.trim()))||0):Math.abs(e)<1?100*e:e},PI=function(e,t){t===void 0&&(t=new Set);var a=typeof e=="string"?e:e.join(",");if(t.has(a))throw new Error("Invalid Color");t.add(a);var r="rgb",n=[0,0,0],i=100;if(Array.isArray(e)){if(e.length<3)throw new Error("Invalid Color");for(var o=0;o<e.length;o++)if(o<3)n[o]=e[o];else{if(o!==3||e[3]===void 0)break;i=e[3]}}else{var s=!1,l=e.trim().match(Ate);if(l||(s=!0),l){var u=l[1].toLocaleLowerCase();if(r=u,_te.has(u)||(s=!0),l[2]&&!s){var c=l[2],d=c.indexOf(",")!==-1?",":" ",h=c.split(d);for(o=0;o<3;o++)h[o]!==void 0&&(["lch","lab"].includes(r)&&o===0||["hsl","hsla","hsv","hsva","hwb","hwba","hsi","hsia"].includes(r)&&o>0?n[o]=k0(h[o]):n[o]=Number(h[o].trim()));["rgba","hsla","hsva","hwba","hsia"].includes(r)?(r=r.slice(0,-1),h[3]!==void 0&&(i=k0(h[3]))):r==="cmyk"&&n.push(h[3]!==void 0?k0(h[3]):0)}}if(s){if(!/^#(([a-fA-F\d]{3}){1,2}|[a-fA-F\d]{8})$/.test(e))try{return e=(function(p,m){if(m===void 0&&(m=!1),p=p.toLowerCase(),w0[p]===void 0){if(m)throw new Error("Unknown color name: ".concat(p,")"));return p}return w0[p]})(e,!0),PI(e,t)}catch{throw new Error("Invalid Color")}n=mI(e)}}return[r,n,i]},UI={thowParseError:!1},T1=(function(){function e(t,a,r){this.cache=new Map,this._rgb=[0,0,0],this._alpha=100;var n={thowParseError:UI.thowParseError},i=Object.assign({},n,r??{});try{var o=(function(u){var c,d={lab2rgb:Sy,hsl2rgb:mn,hsv2rgb:yy,xyz2rgb:F8,hwb2rgb:Ny,hsi2rgb:by},h=PI(u),p=h[0],m=h[1],g=h[2];if(p==="rgb")return[m,g];p==="lch"&&(p=(c=["xyz",ky(m[0],m[1],m[2])])[0],m=c[1]);var f=m[0],y=m[1],b=m[2],v=m[3];if(p==="cmyk")return[fI(f,y,b,v).map((function(W){return M1(W,0,255)})),g];var k="".concat(p,"2rgb");if(typeof d[k]=="function")return[d[k](f,y,b).map((function(W){return M1(W,0,255)})),g];throw new Error("Invalid color")})(t),s=o[0],l=o[1];this._alpha=l,this._rgb=s}catch(u){if(i.thowParseError)throw u}a!==void 0&&(this._alpha=M1(a,0,100))}return e.prototype.red=function(t){return Mi(this,"r",t)},e.prototype.green=function(t){return Mi(this,"g",t)},e.prototype.blue=function(t){return Mi(this,"b",t)},e.prototype.alpha=function(t){return t===void 0?this._alpha:(t=M1(t,0,100),new e(this.rgb(),t))},e.prototype.fadeIn=function(t,a){return t===void 0&&(t=10),t=a&&a==="relative"?this._alpha*t/100:t,new e(this.rgb(),M1(this._alpha+t,0,100))},e.prototype.fadeOut=function(t,a){return t===void 0&&(t=10),t=a&&a==="relative"?this._alpha*t/100:t,new e(this.rgb(),M1(this._alpha-t,0,100))},e.prototype.opacify=function(t,a){return t===void 0&&(t=10),this.fadeIn(t,a)},e.prototype.transparentize=function(t,a){return t===void 0&&(t=10),this.fadeOut(t,a)},e.prototype.hue=function(t){return Mi(this,"h",t)},e.prototype.saturation=function(t){return Mi(this,"s",t)},e.prototype.lightness=function(t){return Mi(this,"l",t)},e.prototype.rgb=function(t){return v3([],this._rgb,!0)},e.prototype.rgba=function(t){return v3(v3([],this.rgb(!1),!0),[this._alpha],!1)},e.prototype.cmyk=function(t){return gI.apply(void 0,this._rgb)},e.prototype.hsl=function(t){return fy.apply(void 0,this._rgb)},e.prototype.hsla=function(t){return v3(v3([],this.hsl(!1),!0),[this._alpha],!1)},e.prototype.hsv=function(t){return yI.apply(void 0,this._rgb)},e.prototype.hsi=function(t){return bI.apply(void 0,this._rgb)},e.prototype.hwb=function(t){return NI.apply(void 0,this._rgb)},e.prototype.xyz=function(t){return hy.apply(void 0,this._rgb)},e.prototype.lab=function(t){return S0.apply(void 0,this.xyz(!1))},e.prototype.lch=function(t){return py.apply(void 0,this.lab(!1))},e.prototype.xyY=function(t){return CI.apply(void 0,this.xyz(!1))},e.prototype.hex=function(t){t===void 0&&(t=2);var a=t===0?void 0:t===1?this._alpha:this._alpha===100?void 0:this._alpha,r="color:hex:param_".concat(t);if(this.cache.has(r))return this.cache.get(r);var n=pI.apply(void 0,v3(v3([],this._rgb,!1),[a],!1));return this.cache.set(r,n),n},e.prototype.lighten=function(t,a){t===void 0&&(t=5);var r=this.hsl(!1),n=r[0],i=r[1],o=r[2];return o=M1(o+=a!==void 0&&a==="relative"?o*(t/100):t,0,100),new e(mn(n,i,o),this._alpha)},e.prototype.darken=function(t,a){return t===void 0&&(t=5),this.lighten(-t,a)},e.prototype.saturate=function(t,a){t===void 0&&(t=5);var r=this.hsl(!1),n=r[0],i=r[1],o=r[2];return i=M1(i+=a!==void 0&&a==="relative"?i*(t/100):t,0,100),new e(mn(n,i,o),this._alpha)},e.prototype.desaturate=function(t,a){return t===void 0&&(t=5),this.saturate(-t,a)},e.prototype.spin=function(t){var a=this.hsl(!1),r=a[0],n=a[1],i=a[2];return new e(mn(r=(r+t%360+360)%360,n,i),this._alpha)},e.prototype.adjustHue=function(t){return this.spin(t)},e.prototype.complement=function(){return this.spin(180)},e.prototype.invert=function(){var t=this._rgb.map((function(a){return 255-a}));return new e([t[0],t[1],t[2]],this._alpha)},e.prototype.mix=function(t,a){return a===void 0&&(a=50),_I(this,t,100-M1(a,0,100))},e.prototype.luma=function(){var t=this._rgb.map((function(a){return(a/=255)<=.03928?a/12.92:Math.pow((a+.055)/1.055,2.4)}));return .2126*t[0]+.7152*t[1]+.0722*t[2]},e.prototype.brightness=function(){var t=this._rgb;return(function(a,r,n){return(299*a+587*r+114*n)/1e3/255*100})(t[0],t[1],t[2])},e.prototype.deltaE=function(t,a,r){return a===void 0&&(a="CMC"),MI(this,t,a,r)},e.prototype.visibility=function(t,a){return Cte(this,t,a)},Et([Qt(0,1,!0,0),N3("color:rgb")],e.prototype,"rgb",null),Et([Qt(0,1,!0,0)],e.prototype,"rgba",null),Et([Qt(0,1,!0,0),N3("color:cmyk")],e.prototype,"cmyk",null),Et([Qt(0,1,!0,0),N3("color:hsl")],e.prototype,"hsl",null),Et([Qt(0,1,!0,0)],e.prototype,"hsla",null),Et([Qt(0,1,!0,0),N3("color:hsv")],e.prototype,"hsv",null),Et([Qt(0,1,!0,0),N3("color:hsi")],e.prototype,"hsi",null),Et([Qt(0,1,!0,0),N3("color: hwb")],e.prototype,"hwb",null),Et([Qt(2,1,!0,0),N3("color:xyz")],e.prototype,"xyz",null),Et([Qt(2,1,!0,0),N3("color:lab")],e.prototype,"lab",null),Et([Qt(2,1,!0,0),N3("color:lch")],e.prototype,"lch",null),Et([Qt(2,1,!0,0),N3("color:xyY")],e.prototype,"xyY",null),Et([N3("color:luma")],e.prototype,"luma",null),e})(),Mte=function(e,t,a,r){return new T1([e,t,a],r)},Pte=function(e,t,a,r){return new T1(mn(e,t,a),r)},Ute=function(e,t,a,r){return new T1(yy(e,t,a),r)},Ite=function(e,t,a,r){return new T1(by(e,t,a),r)},Tte=function(e,t,a,r){return new T1(Ny(e,t,a),r)},xte=function(e,t,a,r){return new T1(F8(e,t,a),r)},zte=function(e,t,a,r){return new T1(Sy(e,t,a),r)},Rte=function(e,t,a,r){return new T1(F8.apply(void 0,ky(e,t,a)),r)};function V1(e,t,a){return new T1(e,t,a)}V1.config=function(e){Object.assign(UI,e)},V1.random=function(){var e=v0(0,255),t=v0(0,255),a=v0(0,255);return new T1([e,t,a])},V1.convertor=yte,V1.Color=T1,V1.rgb=Mte,V1.hsl=Pte,V1.hsv=Ute,V1.hsi=Ite,V1.hwb=Tte,V1.xyz=xte,V1.lab=zte,V1.lch=Rte,V1.mix=_I,V1.deltaE=MI,V1.utils={roundDecimal:hI,randomRange:v0},V1.useNames=function(e,t){return(function(a,r){if(r!==void 0&&typeof r=="function"){var n={};for(var i in a){var o=r(i,a[i]),s=o[0],l=o[1];n[s]=l}Object.assign(w0,n)}else Object.assign(w0,a)})(e,t),V1};var II=9e5,Ete=15e3,TI=2e3,$te=12e4,jte=3e4,Ote=3e5,Dte=6e4;function xI(e){return e<$te?Ete:e<Ote?jte:Dte}function wy(e){if(!e)return;let t=Math.floor(e.t);return Number.isFinite(t)&&t>0?t:void 0}function Lte(e){return e?typeof e.c!="string"||e.c.trim()==="":!1}function zI(e,t){return!e||typeof e.c!="string"||e.c.trim()===""||typeof t!="string"||t.trim()===""?!1:t.trim().toLowerCase()===e.c.trim().toLowerCase()}function RI(e,t,a){return e?(a??0)>=e.v?"delivered":t-e.t>II?"expired":Lte(e)?"blind":"poll":"none"}function EI(e,t){return Math.max(0,e.t+II-t)}function C0(e,t){return t}var Wy="The connection dropped before the chart finished. You were charged only for the work already done. Generate again.";function $I(e){let t=String(e??"").trim();return t!==""?t:Wy}function Cy(e){if(!e)return null;let t=String(e.pollOutcome??"").trim().toLowerCase();if(e.isGenerationCancelled===!0||e.isPollFinal===!0&&t==="cancelled")return"cancelled";if(e.isPollFinal===!0)return t==="not-received"?"not-received":t==="lost-in-restart"?"lost-in-restart":"failed";if(e.isPollFinal==null&&e.isVersionNotFound===!0){let a=String(e.errorCode??"").trim().toUpperCase();if(a==="GENERATION_NOT_RECEIVED")return"not-received";if(a==="GENERATION_LOST_IN_RESTART")return"lost-in-restart";if(a==="GENERATION_FAILED")return"failed";if(a==="GENERATION_CANCELLED")return"cancelled"}return null}function _y(e){return e==="window-closed"||e==="hard-error"||e==="unreachable"}var jI=3;function Ay(e,t){return!t&&e>=jI}var OI="The charting service has no record of that request, so nothing was generated and nothing was charged. Generate again.",DI="That chart didn't finish on the server, so there's nothing to show. Generate again.",LI="The charting service restarted while your chart was being built, so nothing was delivered. Click Generate to build it again.",My="We couldn't reach the charting service to check on your chart - it may be offline, or blocked on this network. Try again in a moment.";function Py(e,t){let a=String(t??"").trim();return a!==""?a:e==="cancelled"?Wy:e==="not-received"?OI:e==="lost-in-restart"?LI:DI}var A0=e=>Pi[e];function S3(e,t){let a=(A0(e).values??[]).filter(n=>n!==""),r=a.filter(n=>!(n in t));if(r.length)throw new Error(`settings catalog: ${e} has vocabulary values with no argument spelling: ${r.join(", ")}`);return a.map(n=>({value:t[n][0],label:t[n][1]}))}function _0(e,t){let a={};for(let r of(A0(e).values??[]).filter(n=>n!==""))a[String(t[r][0])]=r;return a}function mr(e,t={}){let a=A0(e);return{min:Math.max(a.min??0,t.min??0),...a.max!==void 0?{max:a.max}:{},...t.integer?{integer:!0}:{}}}function w1(e,t,a){let r=A0(e).default;return r===""?t:r===0&&a!==void 0?a:String(r)}var B8=[{value:!0,label:"On"},{value:!1,label:"Off"}],K3="the engine decides",tt="the chart's own",FI={1:[!0,"Include a title"],0:[!1,"No title"]},BI={1:["include","Show data labels"],0:["exclude","No data labels"]},HI={outside:["outside","Outside the plot"],inside:["inside","Inside the plot"],none:["none","No standalone legend"]},GI={latest:["latest","The latest period"],"top / greatest":["top","The top by the measure"],"bottom / smallest":["bottom","The bottom by the measure"],"most common":["most_common","The most common values"],outliers:["outliers","The outliers"]},Fte={High:["High","Every observation as its own mark"],Medium:["Medium","Every row, shown as a distribution"],Low:["Low","One mark per category"]},Bte={fit:["fit","Fit the data's range"],zero:["zero","Always include zero"],auto:["auto","Fit, except where marks encode magnitude by length"]},Hte={auto:["auto","Only where the sampling grid is even and the peak is proven"],always:["always","On any grid"],never:["never","Never"]},Gte={line:["line","A continuous line"],boxes:["boxes","One box per period"]},Kte={both:["both","Each card's own arrows and one strip for the deck"],all:["all","One strip that moves every card together"],single:["single","Each card's own arrows only"]},Xte={horizontal:["horizontal","Side to side"],vertical:["vertical","Top to bottom"]},Vte={on:["on","On"],off:["off","Off"]},Zte=["Retail & e-commerce","Logistics & shipping","Manufacturing","Healthcare & life sciences","Finance & banking","Insurance","Marketing & advertising","SaaS & technology","Telecom","Energy & utilities","Real estate","Education","Government & public sector","Hospitality & travel"],KI=["level_of_detail","font_family","culture"],e3=Object.freeze([{key:"favorGeneralType",timing:"next-generate",arg:"chart_style",label:"Chart style",description:"Narrows the charts considered to one family: 'traditional' = the familiar forms (bar, stacked and grouped bar, line, area, pie, donut, card, gauge), 'non_traditional' = every other chart type. A chart named in chart_type is still honored unless the data shape disqualifies it, and 'traditional' also turns chart_variety off. Unset considers both families.",values:[{value:"traditional",label:"Only the familiar forms"},{value:"non_traditional",label:"Only the other chart types"}],default:K3,ask:"offer",appliesWhen:"always",wire:{to:"clientHints",field:"favorGeneralType",encode:{traditional:"TR",non_traditional:"NT"}},codes:["GENTYPE_TR","GENTYPE_NT"]},{key:"favorTitle",timing:"next-generate",arg:"show_title",label:"Chart title",description:"Whether the person wants a title inside the chart: true asks for a concise one, false asks for none. A yes or no, not the title's text. Unset: a chart narrower than 400 px or shorter than 300 px gets none, and a larger one draws at random whether to have one.",values:S3("favorTitle",FI),default:w1("favorTitle",K3),ask:"when-stated",appliesWhen:"always",wire:{to:"clientHints",field:"favorTitle",encode:_0("favorTitle",FI)},codes:["INCTITLE"]},{key:"favorDPValues",timing:"next-generate",arg:"data_labels",label:"Data labels",description:"Whether the person wants the value printed on each mark: 'include' asks for the labels, 'exclude' for none. Per-mark labels are suppressed when more than 30 marks would carry one. Unset: the engine decides.",values:S3("favorDPValues",BI),default:w1("favorDPValues",K3),ask:"when-stated",appliesWhen:"always",wire:{to:"clientHints",field:"favorDPValues",encode:_0("favorDPValues",BI)},codes:["INCDPVALS"]},{key:"legendPlacement",timing:"next-generate",arg:"legend_placement",label:"Legend placement",description:"Where the person wants the legend: 'outside' = in the chart margin, 'inside' = within the plot area where it overlaps the data least, 'none' = no standalone legend (the chart's own labels carry the names). A single-series chart draws no legend whichever is chosen. Unset: outside on a chart at least 500 px wide, the renderer's default on a narrower one.",values:S3("legendPlacement",HI),default:w1("legendPlacement","automatic"),ask:"when-stated",appliesWhen:"always",wire:{to:"clientHints",field:"legendPlacement",encode:_0("legendPlacement",HI)},codes:["NOLEGEND","LEGENDPLACEMENT"]},{key:"favorLimitTo",timing:"next-generate",arg:"limit_to",label:"Limit to",description:"The subset the person asks for, passed on as an authoritative instruction to limit to or focus on exactly it: 'latest', 'top' (top / greatest), 'bottom' (bottom / smallest), 'most_common' or 'outliers'. limit_count says how many are kept. Unset: the engine decides.",values:S3("favorLimitTo",GI),default:w1("favorLimitTo",K3),ask:"when-stated",appliesWhen:"always",wire:{to:"clientHints",field:"favorLimitTo",encode:_0("favorLimitTo",GI)},codes:["LIMITTO"]},{key:"favorLimitCount",timing:"next-generate",arg:"limit_count",label:"Limit count",description:"How many groups or categories the person asks to keep, from 1 to 10000. The engine keeps exactly that many by the measure, and its own Top-N, 'Other'-cap and cardinality rules yield to it. Unset: no limit from the person (the engine's own Top-N rules still apply).",range:mr("favorLimitCount",{integer:!0,min:1}),default:w1("favorLimitCount",K3,"no limit"),ask:"when-stated",appliesWhen:"always",wire:{to:"clientHints",field:"favorLimitCount"},codes:["LIMITCNT"]},{key:"industryContext",timing:"next-generate",arg:"industry",label:"Industry",description:"The industry the person names for the data, one of the listed values. A recognized metric name is used only when the columns are that industry's inputs for it. Unset: no industry context is added.",values:Zte.map(e=>({value:e,label:e})),default:w1("industryContext",K3),ask:"when-stated",appliesWhen:"always",wire:{to:"clientHints",field:"industryContext"},codes:[]},{key:"inChartCaption",timing:"next-generate",arg:"in_chart_caption",label:"Caption inside the chart",description:"Whether the person asks for a one-line subtitle under the chart title naming the chart type, any derived measure used and any non-default aggregation. Unset or false: none.",values:B8,default:"false",ask:"when-stated",appliesWhen:"always",wire:{to:"clientHints",field:"inChartCaption"},codes:["INCAPTION"]},{key:"compactness",timing:"next-generate",arg:"compactness",label:"Compactness",description:"How roomy the person wants the chart: 'spacious' = roomier margins and more aggressive aggregation of a high-cardinality column, 'balanced' = standard margins and label density, 'compact' = tighter margins and denser axes, aggregating only when cardinality clearly exceeds what fits. Unset: a level is drawn at random for each generation.",values:[{value:"spacious",label:"Spacious"},{value:"balanced",label:"Balanced"},{value:"compact",label:"Compact"}],default:"the engine decides, and can vary between generations",ask:"when-stated",appliesWhen:"always",wire:{to:"request",field:"compactness"},codes:["COMPACTNESS"]},{key:"favorDateSum",timing:"next-generate",arg:"date_grain",label:"Date grain",description:"The time grain the person asks for on the time axis: day, week, month, quarter, year or decade. It is passed on as a strong request, and a different bucket the engine plans is rewritten to it when the dates give that grain 2 or more periods; data with no date column can't honor it. Unset: the engine chooses, from the number of periods the dates give at each grain.",values:["day","week","month","quarter","year","decade"].map(e=>({value:e,label:e[0].toUpperCase()+e.slice(1)})),default:K3,ask:"when-stated",appliesWhen:"hasDateColumn",wire:{to:"clientHints",field:"favorDateSum"},codes:["DATESUM"]},{key:"favorEnhancement",timing:"next-generate",arg:"overlay",label:"Overlay",description:"The analytical layer the person asks for: 'moving_avg' = moving average, 'trend_line' = trend / regression line, 'anomaly' = anomaly highlights, 'confidence_band' = confidence band, 'forecast' = forecast / projection, 'yoy' = year-over-year comparison. It is strongly preferred where it applies to the chosen chart and data (the engine adds the derived measures it needs); where it can't apply, this data can't honor it. Unset: the engine decides.",values:[{value:"moving_avg",label:"Moving average"},{value:"trend_line",label:"Trend / regression line"},{value:"anomaly",label:"Anomaly highlights"},{value:"confidence_band",label:"Confidence band"},{value:"forecast",label:"Forecast"},{value:"yoy",label:"Year-over-year"}],default:K3,ask:"when-stated",appliesWhen:"always",wire:{to:"clientHints",field:"favorEnhancement"},codes:[]},{key:"allowGroupToOthers",timing:"next-generate",arg:"group_others",label:"Group the rest into Others",description:"Whether the person allows the categories beyond a limit to be grouped into one 'Others' bucket. True is the same as unset: under a limit the rest is grouped and the total stays whole; with no limit the engine decides whether to group. False: the rest is dropped and nothing is grouped. Unset: grouping allowed. group_others true is not sent with rows_policy 'all', which draws every row.",values:B8,default:"true (grouping allowed)",ask:"when-stated",appliesWhen:"always",conflictsWith:["rows_policy"],wire:{to:"clientHints",field:"allowGroupToOthers"},codes:["TOPN_FORCE"]},{key:"groupToOthersLabel",timing:"next-generate",arg:"others_label",label:"Name for the Others bucket",description:"The name the person gives the 'Others' bucket, at most 40 characters; quotes, backticks and control characters are removed and longer text is cut. Unset: 'Other'. Not sent when group_others is false.",valueHint:"plain text of at most 40 characters",maxLength:40,default:"Other",ask:"when-stated",appliesWhen:"always",conflictsWith:["group_others","rows_policy"],wire:{to:"clientHints",field:"groupToOthersLabel"},codes:["OTHERSLABEL"]},{key:"allowGeneratedMeasures",timing:"next-generate",arg:"derived_measures",label:"Derived measures",description:"Whether the person allows derived measures (ratios, z-scores, percent change, rank, index): 'discourage' keeps the chart to the raw columns (aggregations and sorts still apply); 'encourage' keeps them allowed and rules out the draw that would turn them off, without asking for more of them. Unset: a weighted draw for each generation. 'encourage' is not sent with forbid_derived_columns.",values:[{value:"encourage",label:"Keep derived measures allowed"},{value:"discourage",label:"Raw columns only"}],default:"the engine decides, and can vary between generations",ask:"when-stated",appliesWhen:"always",conflictsWith:["forbid_derived_columns"],wire:{to:"clientHints",field:"allowGeneratedMeasures",encode:{encourage:"YES",discourage:"NO"}},codes:["ALLOWMEAS_YES","ALLOWMEAS_NO"]},{key:"adventurousPct",timing:"next-generate",arg:"chart_variety",label:"Chart variety",description:"How much variety the person asks for: the probability, from 0 to 1, that the choice among the charts that fit this data is nudged toward a less conventional one, when the engine runs its planning pass. The nudge is among already-valid charts only: when only the obvious chart honestly fits, it is kept. It has no effect with an explicit chart_type, chart_style 'traditional' or reasoning_mode 1P or CP. Unset: the server's own default.",range:{min:0,max:1},default:"the server's default",ask:"when-stated",appliesWhen:"always",wire:{to:"clientHints",field:"adventurousPct"},codes:["ADVENTUROUS"]},{key:"levelOfDetail",timing:"next-generate",arg:"level_of_detail",label:"Level of detail",description:"The user's own preference for how much of the data to see, as they've stated it; it isn't a property of the data. 'High' = every observation drawn as its own mark (scatter, beeswarm, strip). 'Medium' = every row used, but shown as a distribution (box, violin, histogram). 'Low' = one mark per category (bars, cards, pies). Unset when the user hasn't stated one; unset is a proven no-op and the engine decides. This is a strong nudge, not a filter: it reorders charts that already fit, and an explicit chart_type still wins.",values:S3("levelOfDetail",Fte),default:w1("levelOfDetail",K3),ask:"offer",appliesWhen:"always",wire:{to:"clientHints",field:"levelOfDetail"},codes:[]},{key:"suggestFontFamily",timing:"next-generate",arg:"font_family",label:"Font",description:"The font family the person names for the chart's own text (titles, axis labels, tick labels, legends), or the one their house style says: a family such as 'Segoe UI' or a stack such as 'Segoe UI, Arial, sans-serif'. A font isn't a property of the data or the project. It applies to whichever renderer is chosen, and an unavailable family falls back to a web-safe stack rather than failing. Unset: the engine decides.",valueHint:"a font family or stack, such as 'Segoe UI, Arial, sans-serif'",maxLength:100,default:w1("suggestFontFamily",K3),ask:"when-stated",appliesWhen:"always",wire:{to:"clientHints",field:"suggestFontFamily"},codes:["FONTFAMILY"]},{key:"cultureCode",timing:"next-generate",arg:"culture",label:"Language and region",description:"The language and region the chart's labels and other output text are written in, as a BCP 47 tag such as 'de-DE', 'fr' or 'ja-JP'. It also breaks the tie when a CSV's numbers or dates are ambiguous. It does not translate the data.",valueHint:"a BCP 47 language tag, such as 'de-DE', 'fr' or 'ja-JP'",default:"en-US",ask:"offer",appliesWhen:"always",wire:{to:"request",field:"cultureCode"},codes:[]},{key:"maxMapPoints",timing:"live",option:"maxMapPoints",label:"Max map points",description:"The most places a point map plots; it caps what is drawn and decides which maps are offered.",range:mr("maxMapPoints",{integer:!0}),default:w1("maxMapPoints",tt),ask:"when-stated",appliesWhen:"codeReads",codes:[]},{key:"pageSize",timing:"live",option:"pageSize",label:"Rows per page",description:"How many rows a list-style chart shows at a time, with a pager; 0 draws every row.",range:mr("pageSize",{integer:!0}),default:w1("pageSize",tt),ask:"when-stated",appliesWhen:"codeReads",codes:[]},{key:"valueAxisBaseline",timing:"live",option:"valueAxisBaseline",label:"Value axis start",description:"Where a value axis starts: 'fit' follows the data's range, 'zero' always includes zero, 'auto' fits only where the marks don't encode magnitude by length. A bar keeps its zero floor whatever this says.",values:S3("valueAxisBaseline",Bte),default:w1("valueAxisBaseline",tt),ask:"when-stated",appliesWhen:"codeReads",codes:[]},{key:"seasonalMarkers",timing:"live",option:"seasonalMarkers",label:"Seasonal markers",description:"Whether a chart may name a lag or cycle with a calendar word: 'auto' only where the sampling grid is even and the peak is proven, 'always' on any grid, 'never' not at all.",values:S3("seasonalMarkers",Hte),default:w1("seasonalMarkers",tt),ask:"when-stated",appliesWhen:"codeReads",codes:[]},{key:"animAutoPlay",timing:"live",option:"animAutoPlay",label:"Auto-play",description:"Whether an animated chart starts playing by itself when it loads; off, it rests at its overview until a period is picked or play is pressed.",values:B8,default:w1("animAutoPlay",tt),ask:"offer",askWhen:"this chart animates (its code reads the option)",appliesWhen:"codeReads",codes:[]},{key:"animPlaySpeedMs",timing:"live",option:"animPlaySpeedMs",label:"Animation speed",description:"How long each period stays on screen while an animation plays, in milliseconds; lower is faster.",range:mr("animPlaySpeedMs",{integer:!0}),default:w1("animPlaySpeedMs",tt),ask:"when-stated",appliesWhen:"codeReads",codes:[]},{key:"animLoopDelaySec",timing:"live",option:"animLoopDelaySec",label:"Restart delay",description:"How long an animation rests after a play-through before it plays again, in seconds; 0 restarts at once and a very large value plays once per viewing.",range:mr("animLoopDelaySec",{integer:!0}),default:w1("animLoopDelaySec",tt),ask:"when-stated",appliesWhen:"codeReads",codes:[]},{key:"animStopAtEnd",timing:"live",option:"animStopAtEnd",label:"Rest at the last period",description:"Whether playback parks on the final period (and the chart opens there) instead of returning to the overview of all periods.",values:B8,default:w1("animStopAtEnd",tt),ask:"when-stated",appliesWhen:"codeReads",codes:[]},{key:"animMaxIdealFrames",timing:"live",option:"animMaxIdealFrames",label:"Most animation steps",description:"The target ceiling on how many steps an animation walks: dates are summarized to the finest calendar grain that stays at or under it.",range:mr("animMaxIdealFrames",{integer:!0}),default:w1("animMaxIdealFrames",tt),ask:"when-stated",appliesWhen:"codeReads",codes:[]},{key:"animTimelineStyle",timing:"live",option:"animTimelineStyle",label:"Timeline style",description:"How an animation's period scrubber is drawn: 'line' = a continuous line with a moving tick (many periods), 'boxes' = one selectable box per period (a handful); unset picks by the number of periods.",values:S3("animTimelineStyle",Gte),default:w1("animTimelineStyle","by the number of periods"),ask:"when-stated",appliesWhen:"codeReads",codes:[]},{key:"filtersDuringPlay",timing:"live",option:"filtersDuringPlay",label:"Filters during play",description:"Whether the page filter follows the animation frame by frame; off, it changes only when a mark or a period is clicked.",values:B8,default:w1("filtersDuringPlay",tt),ask:"when-stated",appliesWhen:"codeReads",codes:[]},{key:"flipMode",timing:"live",option:"flipMode",label:"Card flip controls",description:"Where a card deck's flip controls live: each card's own arrows, one strip that moves the whole deck, or both.",values:S3("flipMode",Kte),default:w1("flipMode",tt),ask:"offer",askWhen:"this chart is a card deck that flips (its code reads the option)",appliesWhen:"codeReads",codes:[]},{key:"flipIntervalMs",timing:"live",option:"flipIntervalMs",label:"Card flip interval",description:"How long each face stays before a deck or carousel turns by itself, in milliseconds; 0 is manual only. Unset uses the chart's own.",range:mr("flipIntervalMs",{integer:!0}),default:w1("flipIntervalMs",tt),ask:"when-stated",appliesWhen:"codeReads",codes:[]},{key:"flipDirection",timing:"live",option:"flipDirection",label:"Flip direction",description:"Which way a face turns, for any chart that turns between faces: side to side or top to bottom.",values:S3("flipDirection",Xte),default:w1("flipDirection",tt),ask:"when-stated",appliesWhen:"codeReads",codes:[]},{key:"cardBackgroundColor",timing:"live",option:"cardBackgroundColor",label:"Card background",description:"The fill behind each card of a deck and each face of a carousel, as a CSS color; unset uses the chart's own.",valueHint:"a CSS color",default:w1("cardBackgroundColor",tt),ask:"when-stated",appliesWhen:"codeReads",codes:[]},{key:"hoverDropLines",timing:"live",option:"hoverDropLines",label:"Hover drop lines",description:"For a 3D scatter: hovering a point draws a dashed line from it to each back wall of the cube, so its three values read off the gridlines there. Unset is off unless the request asked for them.",values:S3("hoverDropLines",Vte),default:w1("hoverDropLines",tt),ask:"when-stated",appliesWhen:"codeReads",codes:[]},{key:"approximatePositions",timing:"live",option:"approximatePositions",label:"Approximate positions",description:"What a map does with rows a gazetteer could place only roughly: 'mark' draws the mark at the coarse position, 'aggregate' rolls them into the coarser area they did resolve to, 'skip' draws no mark for them (totals still count them).",values:[{value:"mark",label:"Draw at the coarse position"},{value:"aggregate",label:"Roll into the coarser area"},{value:"skip",label:"Draw nothing for them"}],default:oy,ask:"when-stated",appliesWhen:"codeReads",codes:[]},{key:"geoPointRadiusPx",timing:"live",option:"geoPointRadiusPx",label:"Map dot radius",description:"The radius in pixels of the dot a map draws where a region would be too small to see; 0 lets the chart size it from its viewport.",range:{min:0,max:100,integer:!0},default:"0",ask:"when-stated",appliesWhen:"codeReads",codes:[]},{key:"noDataText",timing:"live",option:"noDataText",label:"Empty-chart text",description:"What the chart says when it has no rows to draw.",valueHint:"plain text",default:tt,ask:"when-stated",appliesWhen:"codeReads",codes:[]}]),Xde=Object.freeze([{key:"palette",reason:"theming is the host's: the app supplies its own colors"},{key:"visionReview",reason:"a setting of the Power BI visual only; nothing in an agent's app reads it"},{key:"saveThumbnails",reason:"a setting of the Power BI visual only; nothing in an agent's app reads it"},{key:"aggregation",reason:"already reaches generation through the prompt; the agent states it there"},{key:"colorScaleLow",reason:"already reaches generation through the prompt; the agent states it there"},{key:"colorScaleHigh",reason:"already reaches generation through the prompt; the agent states it there"},{key:"geoBorders",reason:"applies to province maps only, which this server does not offer yet"},{key:"deriveProvinces",reason:"applies to province maps only, which this server does not offer yet"}]),Vde=Object.freeze(["theme","size","width","height","selection","crossFiltering","dimOpacity","selectionGlyph","layoutPass","lasso","lasso.effect"]),M0=Object.freeze(e3.filter(e=>e.arg&&!KI.includes(e.arg)).map(e=>e.arg)),P0=e=>e3.find(t=>t.key===e),XI=e=>e3.find(t=>t.arg===e);function Uy(e){let t=P0(e);if(!t)throw new Error(`settings catalog: no row for ${e}`);return t.description}function U0(e){return e.timing==="live"?`chart-host option ${e.option}`:`argument ${e.arg}`}function gr(e){return C.preprocess(t=>t===null||t===""?void 0:t,e.optional())}function VI(){let e={};for(let t of e3){if(!t.arg||KI.includes(t.arg))continue;let a;if(t.range){let r=C.number(),n=(t.range.integer?r.int():r).min(t.range.min);a=t.range.max!==void 0?n.max(t.range.max):n}else t.values&&t.values.every(r=>typeof r.value=="boolean")?a=C.boolean():t.values?a=C.enum(["",...t.values.map(r=>r.value)]):a=C.string();e[t.arg]=gr(a).describe(t.description)}return e}var I0=(()=>{let e=e3.filter(a=>a.ask==="offer"&&a.timing==="next-generate"&&a.arg).map(a=>a.arg);return`The arguments ${e.length>1?`${e.slice(0,-1).join(", ")} and ${e[e.length-1]}`:e.join("")} are the person's choices, and the guide's 'settings' topic lists every choice a person can make with its options.`})();var Iy=40,gn=(...e)=>String.fromCodePoint(...e),qte=gn(917504)+"-"+gn(917631),Jte=new RegExp("[\\p{Cc}\\p{Zl}\\p{Zp}]+","gu"),Yte=gn(12644,10240,65440,847,4447,4448,6068,6069,6158,65279)+gn(8203)+"-"+gn(8207)+gn(8288)+"-"+gn(8292),Qte=new RegExp("[\\p{Cf}\\p{Co}\\p{Cs}"+qte+Yte+"]+","gu"),e3e=/[\p{L}\p{N}]/u,t3e=new RegExp("["+gn(34,39,96,8216,8217,8218,8219,8220,8221,8222,8223,8249,8250,171,187)+"{}$]","gu");function qI(e){if(typeof e!="string")return{text:"",removed:!1,cut:!1,noName:!1};let t=e.replace(Jte," ").replace(Qte,"").replace(t3e,"").replace(/%{2,}/g,"").replace(/\s+/g," ").trim(),a=Array.from(t),r=a.slice(0,Iy).join("").trim(),n=e.replace(/\s+/g," ").trim(),i=r!==""&&!e3e.test(r);return{text:i?"":r,removed:t!==n,cut:a.length>Iy,noName:i}}function a3e(e){return qI(e).text}var n3e=e=>typeof e=="string"&&e!==""?e:void 0,ZI=e=>e==null||e==="";function r3e(e,t,a){if(t==="others_label"){let n=qI(a);if(n.noName)return{refused:"it has no letter or digit once quotes, control and other special characters were removed"};if(!n.text)return{refused:"nothing was left of it once quotes, control and other special characters were removed"};let i=[n.removed?"characters that could be read as prompt syntax were removed":"",n.cut?`cut to ${Iy} characters`:""];return{shown:n.text,wire:n.text,...i.some(Boolean)?{note:i.filter(Boolean).join("; ")}:{}}}if(e.range){let n=typeof a=="number"?a:NaN;if(!Number.isFinite(n))return{refused:"it is not a number"};if(t==="limit_count"&&n<e.range.min)return{refused:"a count below 1 means no limit, and no limit is sent as no value"};let i=Math.min(e.range.max??n,Math.max(e.range.min,n)),o=e.range.integer?Math.trunc(i):i,s=[i!==n?`held to the range ${e.range.min} to ${e.range.max}`:"",o!==i?"rounded down to a whole number":""];return{shown:o,wire:o,...s.some(Boolean)?{note:s.filter(Boolean).join("; ")}:{}}}if(e.values?.every(n=>typeof n.value=="boolean")){if(typeof a!="boolean")return{refused:"it is not true or false"};let n=e.wire?.encode&&String(a)in e.wire.encode?e.wire.encode[String(a)]:a;return{shown:a,wire:n}}let r=n3e(a);return r===void 0?{refused:"it is not text"}:e.values&&!e.values.some(n=>n.value===r)?{refused:`'${r.slice(0,40)}' is not one of its choices`}:{shown:r,wire:e.wire?.encode&&r in e.wire.encode?e.wire.encode[r]:r}}function i3e(e,t,a){if(t.to==="clientHints"){e.clientHints[t.field]=a;return}if(t.field!=="compactness")throw new Error(`settings wire: the request field '${t.field}' is not placed by resolveSettings`);e.compactness=String(a)}function T0(e){let t={clientHints:{},sent:{},adjusted:{},conflicts:[]},a=e.settings??{},r=o=>!ZI(a[o]),n=new Map,i=e.rowsPolicy==="all";i&&a.group_others===!0&&n.set("group_others","rows_policy all draws every row, so nothing is grouped"),i&&r("limit_to")&&n.set("limit_to","rows_policy all draws every row, so no limit applies"),i&&r("limit_count")&&n.set("limit_count","rows_policy all draws every row, so no limit applies"),e.forbidDerivedColumns===!0&&a.derived_measures==="encourage"&&n.set("derived_measures","forbid_derived_columns allows no derived columns, so none can be encouraged"),e.forbidDerivedColumns===!0&&r("overlay")&&n.set("overlay","forbid_derived_columns allows no derived columns, and an overlay adds them"),r("others_label")&&a3e(a.others_label)!==""&&(a.group_others===!1?n.set("others_label","group_others is false, so nothing is grouped and there is no Others bucket to name"):i&&n.set("others_label","rows_policy all draws every row, so there is no Others bucket to name")),r("chart_variety")&&(e.chartType?n.set("chart_variety","an explicit chart_type leaves the variety nudge out, so chart_variety has no effect"):a.chart_style==="traditional"?n.set("chart_variety","chart_style traditional leaves the variety nudge out, so chart_variety has no effect"):(e.reasoningMode==="1P"||e.reasoningMode==="CP")&&n.set("chart_variety",`reasoning_mode ${e.reasoningMode} runs no planning pass, which is the only place chart_variety is read, so it has no effect`));for(let o of M0){let s=a[o];if(ZI(s))continue;let l=XI(o);if(!l?.wire)continue;let u=n.get(o);if(u){t.conflicts.push({dropped:o,because:u});continue}let c=r3e(l,o,s);if("refused"in c){t.conflicts.push({dropped:o,because:c.refused});continue}t.sent[o]=c.shown,c.note&&(t.adjusted[o]=c.note),i3e(t,l.wire,c.wire)}return t}var o3e=new Set(["0","false","off","no"]);function Ui(e){return!o3e.has(String(e.BIC_MCP_TELEMETRY??"").trim().toLowerCase())}function fn(e){if(!(typeof e!="string"||e.trim()===""))try{let t=Intl.getCanonicalLocales(e.trim());return t.length!==1?void 0:(new Intl.NumberFormat(t[0]),t[0])}catch{return}}var JI=e=>!!e&&typeof e=="object"&&!Array.isArray(e);function YI(e){let t=typeof e=="number"?e:typeof e=="string"&&e.trim()!==""?Number(e):NaN;return Number.isFinite(t)&&t>=1?Math.floor(t):void 0}function Ty(e){try{let t=y1(e,"capabilities");if(!JI(t))return;let a=y1(t,"lasso");if(!JI(a))return;let r=YI(y1(a,"rowCap"));return{lasso:r===void 0?{}:{rowCap:r}}}catch{return}}function x0(e){let t=e?.lasso;if(!t)return;let a=YI(t.rowCap);return{capable:!0,enabled:!0,...a!==void 0?{rowCap:a}:{}}}var QI="A circled group arrives through the same `selects` a click uses, as many keys (filter.values): on a page, pass this chart `selects` and give the other charts filterBy or filterQuery/treatAs, as for a click, so the circled group filters the page. With no `selects` the lasso only highlights inside this chart.";import{createServer as s3e}from"node:http";import{createHash as l3e,randomBytes as tT}from"node:crypto";import{spawn as u3e}from"node:child_process";import{homedir as c3e,hostname as d3e}from"node:os";import{dirname as h3e,join as p3e}from"node:path";import{chmodSync as m3e,mkdirSync as g3e,readFileSync as f3e,renameSync as y3e,rmSync as b3e,writeFileSync as N3e}from"node:fs";var H8="OAUTH_TOKEN_EXPIRED",X3="OAUTH_SIGNED_OUT";function eT(e,t){let a=(t??"").trim();return!a||e.licenseKey!==""||e.licensee!==""||e.secretKey!==""?{}:{accessToken:a}}var Ry="chart-mcp",v3e=18e4,S3e=6e4,k3e=6e5,aT=384,Ii="SIGN_IN_REQUIRED",Ey="SIGN_IN_UNREACHABLE";function w3e(e){let[t,a]=process.platform==="win32"?["rundll32",["url.dll,FileProtocolHandler",e]]:process.platform==="darwin"?["open",[e]]:["xdg-open",[e]],r=u3e(t,a,{detached:!0,stdio:"ignore",windowsHide:!0});r.on("error",()=>{}),r.unref()}var W3e={fetch:(e,t)=>fetch(e,t),openBrowser:w3e,log:e=>{process.stderr.write(e+`
115
115
  `)},now:()=>Date.now(),hostname:()=>d3e()},Ti={...W3e},oT=null;function sT(e){oT=e}function $y(e){if(e==null)return;let t=e.trim();return t===""||/^\$\{[^}]*\}$/.test(t)?void 0:t}function jy(e=process.env){return/^(off|0|false|no)$/i.test($y(e.BIC_SIGNIN)??"")}function lT(e){let t=Number($y(e.BIC_SIGNIN_WAIT_MS));return Number.isFinite(t)&&t>=0?t:v3e}function Oy(e=process.env){return $y(e.BIC_OAUTH_FILE)??p3e(c3e(),".bic","oauth.json")}function Dy(e){try{let t=JSON.parse(f3e(Oy(e),"utf-8"));return t&&typeof t=="object"&&!Array.isArray(t)?t:{}}catch{return{}}}function uT(e,t=process.env){let a=Dy(t)[e];return!a||typeof a!="object"||a.base!==e||typeof a.accessToken!="string"||typeof a.refreshToken!="string"||!a.refreshToken?null:a}function cT(e,t=process.env){let a=Dy(t);a[e.base]=e,dT(a,t)}function nT(e,t=process.env){let a=Dy(t);if(e in a){if(delete a[e],Object.keys(a).length>0){dT(a,t);return}try{b3e(Oy(t),{force:!0})}catch{}}}function dT(e,t){let a=Oy(t);g3e(h3e(a),{recursive:!0,mode:448});let r=`${a}.${process.pid}.tmp`;N3e(r,JSON.stringify(e,null,2),{encoding:"utf-8",mode:aT});try{m3e(r,aT)}catch{}y3e(r,a)}function hT(e){return`Sign in to continue. It's free to try, and nothing needs configuring: ${e} - or, on a machine with no browser, set a license key instead (BIC_LICENSEE and BIC_LICENSE_KEY).`}function pT(e){return`You've been signed out. Sign in again to continue: ${e}`}function C3e(e){return`Run the request again to open a new sign-in: the last one was canceled in the browser, so nothing was sent. ${e}`}function rT(e,t){return`Run the request again to open a new sign-in: the last one didn't finish (${e}). ${t}`}function _3e(e,t){return`Try the request again in a moment: your sign-in couldn't be renewed because the service didn't answer (${e}). ${t}`}async function mT(e,t,a){let r;try{r=await Ti.fetch(`${e}/api/oauth/token`,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams(t).toString(),signal:AbortSignal.timeout(3e4)})}catch(u){return{kind:"unreachable",detail:String(u?.message??u)}}let n=null;try{n=JSON.parse(await r.text())}catch{}if(r.status>=500||r.status!==200&&!n)return{kind:"unreachable",detail:`HTTP ${r.status}`};if(r.status!==200)return{kind:"rejected",error:String(n?.error??"invalid_request"),description:String(n?.error_description??"")};let i=typeof n?.access_token=="string"?n.access_token:"",o=typeof n?.refresh_token=="string"&&n.refresh_token?n.refresh_token:a;if(!i||!o)return{kind:"unreachable",detail:"the answer carried no sign-in"};let s=Ti.now(),l=Number(n.expires_in);return{kind:"ok",entry:{base:e,accessToken:i,accessExpiresUtc:new Date(s+(Number.isFinite(l)&&l>0?l:3600)*1e3).toISOString(),refreshToken:o,obtainedUtc:new Date(s).toISOString()}}}var xy=new Map;function A3e(e,t,a){let r=xy.get(e);if(r)return r;let n=(async()=>{let i=await mT(e,{grant_type:"refresh_token",refresh_token:t.refreshToken,client_id:Ry},t.refreshToken);return i.kind==="ok"&&cT(i.entry,a),i})().finally(()=>xy.delete(e));return xy.set(e,n),n}var R0=new Map,z0=new Map;function zy(e){return e.toString("base64").replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function G8(e,t,a,r){let n=`<!doctype html><html><head><meta charset="utf-8"><title>${a}</title></head><body style="font-family:system-ui,sans-serif;max-width:32em;margin:4em auto;line-height:1.5"><h1 style="font-size:1.4em">${a}</h1><p>${r}</p></body></html>`;e.writeHead(t,{"Content-Type":"text/html; charset=utf-8","Cache-Control":"no-store",Connection:"close"}),e.end(n)}async function M3e(e,t){let a=zy(tT(32)),r=zy(l3e("sha256").update(a).digest()),n=zy(tT(16)),i=null,o=null,s,l=new Promise(f=>{s=f}),u=!1,c=f=>{u||(u=!0,s(f),R0.get(e)===g&&R0.delete(e),o&&clearTimeout(o),setTimeout(()=>i?.close(),50).unref?.())},d="";i=s3e((f,y)=>{(async()=>{let b=new URL(f.url??"/","http://127.0.0.1");if(b.pathname!=="/callback"){y.writeHead(404,{Connection:"close"}),y.end();return}if(b.searchParams.get("state")!==n){G8(y,400,"This sign-in link is out of date","It doesn't match the sign-in your editor is waiting for. Close this tab and use the newest link.");return}let v=b.searchParams.get("error");if(v){G8(y,200,"Sign-in canceled","Nothing was shared. You can close this tab."),c({ok:!1,canceled:v==="access_denied",detail:v});return}let k=b.searchParams.get("code")??"",W=await mT(e,{grant_type:"authorization_code",code:k,code_verifier:a,redirect_uri:d,client_id:Ry},null);if(W.kind!=="ok"){let S=W.kind==="rejected"?W.description||W.error:W.detail;G8(y,200,"Sign-in didn't finish",`${S}. You can close this tab and try again from your editor.`),c({ok:!1,canceled:!1,detail:S});return}cT(W.entry,t),G8(y,200,"You're signed in","You can close this tab and go back to your editor - it's carrying on."),c({ok:!0,entry:W.entry})})().catch(b=>{try{G8(y,500,"Sign-in didn't finish","Something went wrong here. You can close this tab.")}catch{}c({ok:!1,canceled:!1,detail:String(b?.message??b)})})}),await new Promise((f,y)=>{i.once("error",y),i.listen(0,"127.0.0.1",()=>f())}),d=`http://127.0.0.1:${i.address().port}/callback`;let p=new URLSearchParams({response_type:"code",client_id:Ry,redirect_uri:d,code_challenge:r,code_challenge_method:"S256",state:n,scope:"charts",device_name:(Ti.hostname()||"").slice(0,64)}),g={url:`${e}/oauth/authorize?${p.toString()}`,done:l,waitedOut:!1,close:()=>c({ok:!1,canceled:!1,detail:"the sign-in was closed"})};return o=setTimeout(()=>c({ok:!1,canceled:!1,detail:"the sign-in link expired"}),Math.max(k3e,lT(t))),o.unref?.(),i.unref(),g}function P3e(e){let t=`Sign in to continue - your browser is opening this page (open it yourself if it doesn't): ${e}`;Ti.log(`[bic-chart] ${t}`);try{oT?.(t)}catch{}}async function U3e(e,t,a){let r=R0.get(e);if(!r){let u=z0.get(e),c=!u;u||(u=M3e(e,t).then(d=>(R0.set(e,d),P3e(d.url),d)),z0.set(e,u),u.then(()=>z0.delete(e),()=>z0.delete(e)));try{r=await u}catch(d){return{ok:!1,code:Ii,message:rT(`no local port: ${d?.message??d}`,e)}}if(c)try{await Ti.openBrowser(r.url)}catch{}}let n=()=>({ok:!1,code:a?X3:Ii,message:a?pT(r.url):hT(r.url)}),i=u=>{if(u.ok===!0)return{ok:!0,accessToken:u.entry.accessToken};let c=u;return{ok:!1,code:Ii,message:c.canceled?C3e(e):rT(c.detail,e)}};if(r.waitedOut)return n();let o=null,s=new Promise(u=>{o=setTimeout(()=>u("timeout"),lT(t))}),l=await Promise.race([r.done,s]);return o&&clearTimeout(o),l==="timeout"?(r.waitedOut=!0,n()):i(l)}async function gT(e,t,a){let r=uT(e,t),n=!!r&&!!a.refused&&r.accessToken===a.refused.token,i=!r&&!!a.refused?.signedOut;if(r&&n&&a.refused.signedOut&&(nT(e,t),r=null,i=!0),r){let o=Date.parse(r.accessExpiresUtc)-Ti.now();if(!n&&o>S3e)return{ok:!0,accessToken:r.accessToken};let s=await A3e(e,r,t);if(s.kind==="ok")return{ok:!0,accessToken:s.entry.accessToken};if(s.kind==="unreachable")return!n&&o>0?{ok:!0,accessToken:r.accessToken}:{ok:!1,code:Ey,message:_3e(s.detail,e)};nT(e,t),i=!0}return a.interactive?U3e(e,t,i):{ok:!1,code:i?X3:Ii,message:i?pT(e):hT(e)}}var iT=!1;function fT(e,t,a){return iT||a||jy(t)||uT(e,t)?null:(iT=!0,"Sign in to see which charts fit this data: call list_eligible_charts, and its first call opens a browser sign-in. It's free to try, and nothing needs configuring.")}import{AsyncLocalStorage as I3e}from"node:async_hooks";var Ly="X-BIC-Client-IP",E0=new I3e,yT=!1;function bT(e,t){return E0.run(e,t)}function NT(){return E0.getStore()}function vT(){yT=!0}function t3(){return yT||E0.getStore()!==void 0}var Fy="Reconnect this chart server to continue: your sign-in for it has expired or was signed out. Reconnect it in your app's connector or MCP settings and sign in again, then repeat the request.";function ST(e){let t=Array.isArray(e)?e[0]:e,a=/^\s*Bearer\s+(\S+)\s*$/i.exec(t??"");return a?a[1]:null}function kT(e){let t=(Array.isArray(e)?e[0]:e??"").trim();return/^[0-9A-Za-z.:%_-]{1,64}$/.test(t)?t:void 0}function $0(e){return{post(t,a,r,n){let i=E0.getStore()?.clientIp;return e.post(t,a,i?{...r,[Ly]:i}:r,n)}}}var By="REQUEST_CHECK_OFF",Hy="REQUEST_CHECK_UNAVAILABLE";function fr(e,t,a=!0){return{ok:!1,enabled:a,checkedAsks:[],findings:[],alternatives:[],errorMessage:e,...t?{errorCode:t}:{}}}function K8(){return fr("This service doesn't offer the request check yet, so nothing was checked.",Hy,!1)}var k3=e=>typeof e=="string"?e:e==null?"":String(e);function _t(e,t){if(!(!e||typeof e!="object"))return e[t]!==void 0?e[t]:e[t[0].toUpperCase()+t.slice(1)]}function CT(e){if(!e||typeof e!="object"||Array.isArray(e))return K8();let t=k3(_t(e,"errorMessage")),a=k3(_t(e,"errorCode")),r=_t(e,"enabled");if(r===!1||a===By)return fr(t,a||By,!1);if(t||a)return fr(t||a,a||void 0);let n=k3(_t(e,"verdict")).toUpperCase(),i=_t(e,"findings");if(!n&&r!==!0&&!Array.isArray(i))return K8();let o=(Array.isArray(i)?i:[]).filter(h=>h&&typeof h=="object").map(h=>({ask:k3(_t(h,"ask")),value:k3(_t(h,"value")),code:k3(_t(h,"code")),kind:k3(_t(h,"kind")).toLowerCase(),reason:k3(_t(h,"reason"))})).filter(h=>h.ask||h.code||h.reason),s=_t(e,"alternatives"),l=(Array.isArray(s)?s:[]).map(h=>({name:k3(_t(h,"name")),reason:k3(_t(h,"reason"))})).filter(h=>h.name).map(h=>h.reason?h:{name:h.name}),u=_t(e,"checkedAsks"),c=(Array.isArray(u)?u:[]).map(k3).filter(h=>h);return{ok:!0,enabled:!0,verdict:o.length>0||n==="DENY"?"DENY":"OK",checkedAsks:c,findings:o,alternatives:l,errorMessage:""}}var T3e=[{ask:"group_by",passThrough:!0,names:e=>e.group_by},{ask:"dimensions",passThrough:!1,names:e=>e.dimensions},{ask:"measures",passThrough:!1,names:e=>e.measures},{ask:"non_additive",passThrough:!1,names:e=>e.non_additive},{ask:"formats",passThrough:!0,names:e=>e.formats&&typeof e.formats=="object"?Object.keys(e.formats):[]},{ask:"descriptions",passThrough:!0,names:e=>e.descriptions&&typeof e.descriptions=="object"?Object.keys(e.descriptions):[]}],j0;function x3e(){if(j0===void 0)try{j0=t0([{name:"Probe"}],[["x"]],{groupBy:["probe"]}).shape.some(e=>e.isGrouping===!0)}catch{j0=!1}return j0}var wT=e=>e.normalize("NFD").replace(new RegExp("\\p{M}","gu"),"").toLowerCase().trim();function _T(e,t){let a=[],r=[],n=new Set(t.map(i=>i.toLowerCase()));for(let{ask:i,passThrough:o,names:s}of T3e){let l=o&&!x3e(),u=s(e),c=(Array.isArray(u)?u:[]).filter(d=>typeof d=="string"&&d!=="");if(c.length!==0){r.push(i);for(let d of c){if(l?t.includes(d):n.has(d.toLowerCase()))continue;let h=t.find(m=>m.toLowerCase()===d.toLowerCase())??t.find(m=>wT(m)===wT(d)),p=h?`"${d}" isn't a column in this data; the data has "${h}"${l?" (this setting matches names exactly)":""}.`:`"${d}" isn't a column in this data. Its columns are ${t.slice(0,8).map(m=>`"${m}"`).join(", ")}${t.length>8?` and ${t.length-8} more`:""}.`;a.push({ask:i,value:d,code:"COLUMN_NOT_IN_DATA",kind:"absent",reason:p})}}}return{findings:a,checkedAsks:r}}function AT(e,t){if(t.findings.length===0&&(t.checkedAsks.length===0||!e.ok))return e;if(e.ok){let a=[...e.findings,...t.findings],r=[...e.checkedAsks,...t.checkedAsks.filter(n=>!e.checkedAsks.includes(n))];return{...e,findings:a,checkedAsks:r,verdict:a.length>0?"DENY":e.verdict}}return e.enabled?e:{...e,ok:!0,verdict:"DENY",checkedAsks:t.checkedAsks,findings:t.findings,alternatives:[]}}var WT=["absent","threshold","unknown"];function MT(e){let t=a=>{let r=WT.indexOf(a);return r<0?WT.length:r};return e.map((a,r)=>({f:a,i:r})).sort((a,r)=>t(a.f.kind)-t(r.f.kind)||a.i-r.i).map(a=>a.f)}var z3e=e=>`\u2022 ${e.ask||e.code}${e.value?` "${e.value}"`:""} - ${e.reason||e.code||"denied, with no reason given"}`;function PT(e,t){if(!e.ok){if(e.errorCode===Hy)return e.errorMessage;if(e.errorCode===By){let i="The request check isn't enabled on this service, so nothing was checked.";return e.errorMessage&&e.errorMessage!==i?`${i}
116
116
  ${e.errorMessage}`:i}return e.errorMessage}let a=e.checkedAsks.length>0?e.checkedAsks.join(", "):"none of the asks this check evaluates",r=`Nothing was generated and no generation credits were spent; this check is ${t}.`;if(e.verdict==="OK")return[`OK: this data can honor the request as given. Asks checked: ${a}.`,r].join(`
117
117
  `);let n=[`DENY: this data can't honor ${e.findings.length===1?"1 ask":`${e.findings.length} asks`} of this request (asks checked: ${a}).`,...MT(e.findings).map(z3e)];return e.alternatives.length>0&&n.push("","Chart types that fit this data (best fit first):",...e.alternatives.map(i=>`\u2022 ${i.name}${i.reason?` - ${i.reason}`:""}`)),e.enabled||n.push("",e.errorCode===Hy?"This service doesn't offer the request check yet, so only the column names were checked, here.":"The request check isn't enabled on this service, so only the column names were checked, here."),n.push("",r),n.join(`
@@ -224,6 +224,8 @@ const options = {
224
224
  geoPoint: ${e.geoPoint?JSON.stringify(e.geoPoint):"undefined"},
225
225
  // A route (flow map): the DESTINATION end's own report - the two ends resolve independently.
226
226
  geoPointDest: ${e.geoPointDest?JSON.stringify(e.geoPointDest):"undefined"},
227
+ // A point map that placed nothing: the resolver's reasons, so the chart can say why quietly.
228
+ geoPointRefused: ${e.geoPointRefused?JSON.stringify(e.geoPointRefused):"undefined"},
227
229
  ${r} // A real host wires selection here. Some charts call onSelect; scrubber/animated
228
230
  // charts instead dispatch 'llm-xfilter-refresh' and tag marks with data-row-idx.
229
231
  onSelect: function (rowIdxs) { selDiv.textContent = "onSelect rows: " + JSON.stringify(rowIdxs); },
@@ -269,12 +271,12 @@ function showRenderFailure(e) {
269
271
  }
270
272
  </script>
271
273
  </body>
272
- </html>`}function fb(e,t){return e.city||e.state||e.zip||e.country||e.lat&&e.lon?{city:e.city||void 0,state:e.state||void 0,zip:e.zip||void 0,lat:e.lat||void 0,lon:e.lon||void 0,country:e.country||void 0,...t==="world"?{mapKind:"world"}:{}}:null}function tz(e,t,a,r,n,i,o){let s=ly(t,e.toObjectArray(),a,r,i??null,{utcDays:!oI(n)});return{columns:s.columns,rows:s.rows,geoUnmatched:s.geoUnmatched,geoPoint:s.geoPoint,...s.geoPointDest?{geoPointDest:s.geoPointDest}:{},...s.dateCellsAreUtcDays?{dateCellsAreUtcDays:!0}:{},...l0(o)}}var mne={"d3-sankey":{version:"0.12.3",named:"sankey, sankeyLinkHorizontal, sankeyLeft, sankeyRight, sankeyCenter, sankeyJustify"},"d3-hexbin":{version:"0.2.2",named:"hexbin"},"d3-weighted-voronoi":{version:"1.1.3",named:"weightedVoronoi"},"d3-voronoi-map":{version:"2.1.1",named:"voronoiMap",deps:["d3-weighted-voronoi"]},"d3-voronoi-treemap":{version:"1.1.2",named:"voronoiTreemap",deps:["d3-weighted-voronoi","d3-voronoi-map"]},mermaid:{version:"11.17.2",named:"default as mermaid",attach:"mermaid"}},sl="@bicharts/chart-host",gne=!0,fne=gne?` Install: npm install ${sl}`:` NOT YET PUBLISHED to npm (packaging in progress) \u2014 ask your BIC contact for it. If
274
+ </html>`}function fb(e,t){return e.city||e.state||e.zip||e.country||e.lat&&e.lon?{city:e.city||void 0,state:e.state||void 0,zip:e.zip||void 0,lat:e.lat||void 0,lon:e.lon||void 0,country:e.country||void 0,...t==="world"?{mapKind:"world"}:{}}:null}function tz(e,t,a,r,n,i,o){let s=ly(t,e.toObjectArray(),a,r,i??null,{utcDays:!oI(n)});return{columns:s.columns,rows:s.rows,geoUnmatched:s.geoUnmatched,geoPoint:s.geoPoint,...s.geoPointDest?{geoPointDest:s.geoPointDest}:{},...s.geoPointRefused&&s.geoPointRefused.length>0?{geoPointRefused:s.geoPointRefused}:{},...s.dateCellsAreUtcDays?{dateCellsAreUtcDays:!0}:{},...l0(o)}}var mne={"d3-sankey":{version:"0.12.3",named:"sankey, sankeyLinkHorizontal, sankeyLeft, sankeyRight, sankeyCenter, sankeyJustify"},"d3-hexbin":{version:"0.2.2",named:"hexbin"},"d3-weighted-voronoi":{version:"1.1.3",named:"weightedVoronoi"},"d3-voronoi-map":{version:"2.1.1",named:"voronoiMap",deps:["d3-weighted-voronoi"]},"d3-voronoi-treemap":{version:"1.1.2",named:"voronoiTreemap",deps:["d3-weighted-voronoi","d3-voronoi-map"]},mermaid:{version:"11.17.2",named:"default as mermaid",attach:"mermaid"}},sl="@bicharts/chart-host",gne=!0,fne=gne?` Install: npm install ${sl}`:` NOT YET PUBLISHED to npm (packaging in progress) \u2014 ask your BIC contact for it. If
273
275
  you must ship before then, hand-roll from the spec below and pay particular
274
276
  attention to the ROW INDEX HAZARD and the HOST PAGE PREREQUISITES.`;function az(e){let t=e.language.toUpperCase(),a=e.data.columns.map(I=>` - ${I.name} (${I.dataType}${I.isMeasure?", measure":""})`).join(`
275
277
  `);if(t!=="D3")return["INTEGRATION CONTRACT",` Language: ${e.language} (not D3 \u2014 no drop-in render() function).`," This code targets the visual's Plotly/Python runtime; embedding it outside"," Power BI needs that runtime. For a mergeable web function, request renderer 'D3'."].join(`
276
278
  `);let r=e.code||"",n=I=>I.test(r),i=!!e.geoKind||n(/options\.geo\b|__geoIso__/),o=n(/__geoIso__/),s=r.includes(j8)||iy.some(I=>r.includes(I)),l=r.includes(pr),u=r.includes(hn),c=n(/\boptions\.onSelect\b|\bonSelect\b/),d=n(/colorScaleLow|colorScaleHigh/),h=n(/options\.aggregation\b/),p=n(/themeFg|themeAccent/),m=n(/options\.pageSize\b|llmPager/),g=n(/options\.valueAxisBaseline\b/),f=n(/options\.seasonalMarkers\b/),y=n(/options\.hoverDropLines\b/),b=n(/__geoLat__|__geoLon__/),v=n(/__geoLatD__|__geoLonD__/),k=O8(r),W=I=>mne[I],S=Array.from(new Set(k.flatMap(I=>[...W(I)?.deps??[],I]))),M=S.map(I=>W(I)?`${I}@${W(I).version}`:I),z=S.map(I=>{let R=W(I)?.named??I.replace(/^d3-/,"").replace(/-([a-z])/g,(D,$)=>$.toUpperCase());return{pkg:I,named:R,attach:W(I)?.attach??R}}),_=k.some(I=>(W(I)?.deps?.length??0)>0),A=n(/maxMapPoints/),E=n(/geoLandColor|geoNoDataColor/),B=x0(e.capabilities),w=B?`{ capable: true, enabled: true, effect: "filter"${B.rowCap!==void 0?`, rowCap: ${B.rowCap}`:""} }`:"",N=i&&e.geoKind?JSON.stringify(e.geoKind):null,P=[""," NO FRAMEWORK BINDING? The same group, plain - for a page, a web component, or any UI"," framework that reaches JavaScript through interop. Keep the payloads on the JavaScript"," side: the UI layer needs only an element to draw into and the selection's SOURCE rows.",' import * as d3base from "d3";',...z.map(I=>` import { ${I.named} } from "${I.pkg}";`),` import { assembleD3, createChartGroup, createChartHost, hostLinkServices${N?", loadGeo":""} } from "${sl}";`,` import { createLegendFitPass } from "${sl}/legend-fit";`,k.length?` const d3 = assembleD3(d3base, { ${z.map(I=>I.attach).join(", ")} });`:" const d3 = assembleD3(d3base); // one extensible d3 for every chart"," const group = createChartGroup(columns, rows); // ONE source table of row OBJECTS"," const layoutPass = createLegendFitPass(); // built ONCE, shared by every chart"," // A chart opens a link and copies only through these: a new tab, and the clipboard. Built ONCE too.",' const links = hostLinkServices(u => window.open(u, "_blank", "noopener,noreferrer"), navigator.clipboard);',...N?[` await loadGeo(${N});${" ".repeat(Math.max(1,26-N.length))}// BEFORE the first render: render() is synchronous`]:[],' function mount(id, el, code, opts = {}) { // opts.respondsWith "highlight" keeps every mark'," const host = createChartHost(el, { code, d3, layoutPass,",...N?[` geoKind: ${N},`]:[]," data: group.memberPayload(id, opts).payload,",...B?[" options: { width: el.getBoundingClientRect().width, height: 420, ...links,",` lasso: ${w} } });`]:[" options: { width: el.getBoundingClientRect().width, height: 420, ...links } });"]," host.render();"," const member = group.attach(id, host, opts); // its clicks publish SOURCE rows"," return () => { member.detach(); host.destroy(); }; // call on teardown"," }"," group.onChange(sel => { /* sel.sourceId made it; sel.rows are SOURCE rows */ });"," group.clear(); // what a Clear button calls"," \u2022 `code` is this chart's source as TEXT. createChartHost compiles it, injects your d3",' and strips the `export` clause wrap:"esm" adds. Imported as a module instead, it runs'," in strict mode against a GLOBAL d3 - pass that as renderFn only if you set one."," \u2022 Measure the element once it is laid out. A later resize is host.setOptions({ width }),"," and so is a live restyle (palette, color scale, any option below) - never a regeneration."," \u2022 `layoutPass` runs after every render, a setOptions re-render included: it slides a legend clear of the"," plot, thins axis labels that collide and brings text that runs past the frame back inside. It needs"," @bicharts/chart-host 0.6.86 or later (createLegendFitPass is not exported before it)."," \u2022 `links`: a table's link column draws as a link only where openUrl exists, and opens http(s) and mailto"," addresses only; copyText answers false when the clipboard refuses. Neither is logged. Inside a sandboxed"," iframe the new tab needs allow-popups. hostLinkServices needs @bicharts/chart-host 0.6.103 or later."," \u2022 Rows built from data.sample.json need no cleaning: the group writes each payload's own __rowIdx__.",...v?[" Keep its __geo* columns: they are both ends' coordinates, resolved by this tool, and"," the group has no binding for a route's second end."]:o||b?[" Its __geo* columns may stay: they are the "+(o?"join codes":"coordinates")+" this tool resolved. Starting from your own"," rows instead, the group resolves them: createChartGroup(columns, rows, { "+(o?"geo: { column, kind }":"point: { city, state, zip, lat, lon }")+" })."]:[]],U=[`INTEGRATION CONTRACT (D3 \u2014 a portable function, merge it anywhere) [host contract v${hr}]`,""," BEFORE YOU HAND-ROLL: @bicharts/chart-host is the reference host implementation."," It does everything in this document \u2014 compiles the code, applies the option"," defaults, resolves mark clicks (including through tooltip overlays), owns the"," selection affordance, translates row indices between cross-filtered charts, and"," handles teardown. React bindings: <BicChart> / <BicChartGroup>; <BicChart> takes the same layoutPass"," prop (build it once at module scope, never inside the component).",fne,...P,""," Everything below is the FULL HAND-ROLL SPEC \u2014 what to build if you are not using"," it, and what it is doing for you if you are.",""," Entry point: function render(container, data, options)"," \u2022 container \u2014 a DOM element to draw into (the function owns its contents)."," It MUST have a resolved width/height BEFORE you call render: the chart draws"," once at whatever size it is handed and does not re-measure. A container inside"," a display:none tab, or measured before layout, yields a 0px chart forever."," \u2022 Requires D3 v7. The code reads a bare `d3` identifier, so it needs d3 either as"," a global (`window.d3 = d3`) OR injected as a parameter by whatever compiles it"," \u2014 @bicharts/chart-host's compileRenderFn injects it, so in a bundled app there is"," NO global and you pass your imported d3 in.",' npm install d3@7 // then: import * as d3 from "d3";',...k.length?[` \u2022 D3 PLUGINS \u2014 this chart calls ${z.map(I=>I.pkg).join(", ")}.`," These are SEPARATE packages that attach onto the d3 object; the generated"," code just calls d3.<plugin>(). Install them and hand the chart ONE d3 that"," carries them. `import * as d3` is a module namespace, which is FROZEN -"," assigning a plugin onto it throws - so build a plain copy; chart-host's"," assembleD3 does exactly that:",` npm install ${M.join(" ")}`,..._?[" (install order above is also the ATTACH order \u2014 the dependency packages"," must augment d3 before the one that builds on them)"]:[],' import * as d3base from "d3";',...z.map(I=>` import { ${I.named} } from "${I.pkg}";`),` import { assembleD3 } from "${sl}";`,` const d3 = assembleD3(d3base, { ${z.map(I=>I.attach).join(", ")} });`]:[]," \u2022 It is a plain function \u2014 drop it into any app; call render() yourself.",""," data = { columns, rows } (build it in THIS exact shape from YOUR data):"," \u2022 columns: array of { name, dataType, isMeasure } in fixed order:",a," (trailing __rowIdx__ = HOST METADATA, the row's index"+(o?"; __geoIso__ = the ISO/USPS join key this tool computed, null = unmatched).":v?"; __geoLat__/__geoLon__ = the ORIGIN's coordinates and __geoLatD__/__geoLonD__ the DESTINATION's, both resolved by this tool, null = unplaceable).":b?"; __geoLat__/__geoLon__ = coordinates this tool resolved, null = unplaceable).":").")," \u2022 rows: array of POSITIONAL arrays aligned to columns:",o?" [ v0, v1, \u2026, vN, rowIndex, isoCode ] // last two = __rowIdx__, __geoIso__":v?" [ v0, \u2026, vN, rowIndex, lat, lon, prec, latD, lonD, precD ] // after __rowIdx__: origin, then destination":b?" [ v0, v1, \u2026, vN, rowIndex, lat, lon ] // last three = __rowIdx__, __geoLat__, __geoLon__":" [ v0, v1, \u2026, vN, rowIndex ] // last cell = that row's __rowIdx__"," DateTime cells are ISO-8601 strings. Missing values are null.",""," options = {"," width, height, // px"," palette: string[], // hex colors; [] = the code's own defaults"," backgroundColor, cultureCode, // '' acceptable"];return p&&U.push(" themeFg, themeAccent, // foreground / accent hex (label + play-position color)"),U.push(" allowTooltips: boolean,"),d&&U.push(" colorScaleLow, colorScaleHigh, // force the sequential scale endpoints (live restyle)"," colorScaleAutoLow, colorScaleAutoHigh, // the AUTOMATIC ends a blank one stands for; chart-host's"," // resolveOptions fills them from palette + background, so"," // a host that skips resolveOptions must set them itself"),h&&U.push(" aggregation, // '' | sum|average|median|min|max|count|distinct (live restyle)"),m&&U.push(" pageSize: number, // rows shown at a time (live restyle). 0 or absent ="," // NO PAGING: every row is drawn and a body taller"," // than the frame scrolls. This chart's rows are a"," // LIST, so a long one is normal, not an error."),g&&U.push(" valueAxisBaseline, // 'zero' | 'fit' | 'auto' (live restyle). Absent ="," // 'fit': the axis is scaled to the data, so a series"," // sitting far from zero stays legible. 'zero' forces"," // zero in; 'auto' does that only where the marks"," // measure by LENGTH. Bars keep their floor either way."),y&&U.push(" hoverDropLines, // true | false (live restyle). Absent = the chart's own:"," // off, unless the request asked for drop lines. On,"," // hovering a point draws a line from it to each back"," // wall, so its three values read off the gridlines."),f&&U.push(" seasonalMarkers, // 'auto' | 'always' | 'never' (live restyle). Absent ="," // 'auto': the chart may name a lag with a calendar"," // period ('wk', 'annual') ONLY where it has proved"," // both halves - every gap between dates equal, AND a"," // real peak at that lag. A lag is a count of"," // OBSERVATIONS, so on a weekday-only grid a week is"," // 5, not 7. 'always' names the inferred period"," // anyway; 'never' names none."),o&&U.push(" geo: FeatureCollection, // REQUIRED \u2014 the geometry (feature.id = join code);"," // supplied by this tool (data.geo.json / preview)"," geoUnmatched: { count, examples }, // drives the 'N regions unmatched' annotation"),b&&U.push(" geo: FeatureCollection, // REQUIRED \u2014 the BASEMAP (context land, no join);"," // supplied by this tool (data.geo.json / preview)"," geoPoint: { // what the geocoding actually achieved \u2014 pass it"," precision, // 'latlon'|'zip'|'city'|'state': COARSEST tier used"," unplaced, unplacedExamples, // rows with no resolvable coordinate"," ambiguousRows }, // NOT placed: the name matches several places"," // The chart annotates these; omitting it makes a"," // sparse/approximate map LOOK exact."),v&&U.push(" geoPointDest: { \u2026 }, // the same report for the DESTINATION end (geoPoint is"," // then the origin) - pass both; the ends resolve apart."),E&&U.push(" geoLandColor, geoNoDataColor, // basemap fills ('' = the code's own defaults)"),A&&U.push(` maxMapPoints, // cap on plotted points (default ${N0}). Over it, the`," // chart keeps the LARGEST N and says so on-chart."),s&&U.push(` animMaxIdealFrames, // ${y0}..${b0} (default ${Ci}): target keyframe count \u2014 the`," // code re-grains dates to the finest grain <= this,"," // LIVE (see 'Animation' below)",` animPlaySpeedMs, // ${m0}..${g0} (default ${Wi}): ms per period`,` animLoopDelaySec, // seconds resting between auto-play passes (default ${f0});`," // 0 restarts at once, a very large value plays once"," animTimelineStyle, // '' auto | 'line' | 'boxes'"," animAutoPlay, animStopAtEnd, filtersDuringPlay, // booleans"),B&&U.push(` lasso: ${w},`," // The host's lasso (chart-host's gesture, not this code's): a drag around"," // marks selects the ones inside, through the selection a click makes, so"," // the filter and onSelect hear it and there is no handler to write."," // `capable` is the server's word that THIS chart type takes it (absent ="," // no lasso); enabled: false turns it off; rowCap is the most rows in view"," // that still get one (chart-host's own default when absent). effect",' // "filter" (the default) sets the page filter with every circled key;',' // with no filter bound it only highlights, and chart-host says so. "highlight" keeps'," // it inside the chart."," // On a page, a circled group is the page's filter: pass this chart"," // `selects` and give the other charts filterBy or filterQuery/treatAs,"," // as for a click (the group arrives as many keys, filter.values)."," // Without `selects` the lasso only highlights inside this chart. A hand-"," // rolled host has no lasso: the gesture is chart-host's."),U.push(" uiState, setUiState, // the reader's resting view: an interactive table's sort,"," // column widths and hidden columns, a 3D camera, an"," // expanded row. {} + a no-op setUiState draws fine but"," // forgets on reload. To keep it per reader, save the bag"," // setUiState hands you (plain JSON) and pass it back as"," // uiState next time: localStorage per browser, or the"," // person's profile on your server to follow them. In"," // React, chart-host's BicChart takes it as viewState"," // ({ load, save }); the generated component's rememberAs"," // does the localStorage case."," }",""),(u||l||c)&&(U.push(" Interactivity / cross-filter (what the bridge must do \u2014 chart-host does it):"),u&&U.push(" \u2022 Every selectable mark carries a data-row-idx attribute = the comma-joined"," __rowIdx__ values it represents. On a mark click, read data-row-idx, map the"," indices back to your rows, and update your filter/state, then re-render other"," panels with the filtered rows."," \u2022 ROW INDEX HAZARD \u2014 the one thing hand-rolled integrations get wrong."," __rowIdx__ is a position WITHIN THE PAYLOAD THAT CHART RECEIVED, not an id in"," your source table. The moment you re-render a chart with filtered rows, its"," payload renumbers from zero \u2014 so the SAME integer now denotes a DIFFERENT"," record, and comparing indices across two charts silently selects the wrong"," rows. It does not throw; it just quietly filters to the wrong thing."," Keep ONE source table plus a payload-row -> source-row map per chart, and"," translate on every hop. (<BicChartGroup> exists precisely to own this.)"," \u2022 Marks are MANY-TO-MANY with rows: a legend swatch, an aggregated bar or an"," axis-group label carries every row it covers, so treat a mark as selected"," when ANY of its rows is selected \u2014 that is what makes a legend click light up"," its swatch and its bars together."," \u2022 Clicks can be SWALLOWED by the chart's own tooltip/crosshair overlay: an"," overlay painted over the marks with a transparent (not `none`) fill still"," hit-tests, so event.target is the overlay and a naive closest('[data-row-idx]')"," finds nothing and reads as 'empty canvas'. Resolve a miss through"," document.elementsFromPoint before concluding the user clicked nothing."),l&&U.push(` \u2022 This chart also DISPATCHES a bubbling \`${pr}\` CustomEvent on the`," container when its selection changes (e.g. a scrubber period). Listen for it:",` container.addEventListener('${pr}', e => {`," if (e.detail.clear) { /* selection cleared */ }",` else { const idx = e.detail.mark.getAttribute('${hn}'); /* filter */ }`," });"," \u2022 Lifecycle slots the code sets on the container (call/read them from your host):",` container.${ny}() // call to clear the chart's own selection`,` container.${ry} // a mark to apply as the initial filter (may be set)`,` container.${j8}() // CALL THIS before unmount / before re-rendering`),c?U.push(" \u2022 options.onSelect(rowIdxs:number[]) is also invoked when provided \u2014 wire it to"," your cross-filter if you prefer a callback over the DOM event."):U.push(" \u2022 NOTE: this code does NOT call options.onSelect \u2014 use data-row-idx"+(l?" + the event above.":".")),U.push("")),s&&U.push(" Animation (keyframe playback + LIVE re-grain):"," \u2022 The chart draws its own play/pause control + period scrubber. It reads the anim"," options above; sensible defaults apply if you omit them."," \u2022 DYNAMIC KEYFRAMES: the code chooses the time grain AT RENDER from"," options.animMaxIdealFrames \u2014 it truncates dates to the finest calendar grain"," (day/week/month/quarter/year/decade) whose bucket count <= that value and"," aggregates rows within each bucket. To change the granularity LIVE, just call"," render(container, data, {...options, animMaxIdealFrames: N}) again \u2014 NO new"," generation needed. (This is what the Power BI 'Max Ideal Frames' slider does.)",` \u2022 Call container.${j8}() before you re-render or unmount, to stop its timer.`,""),b&&U.push(" Geography (POINT MAP):"," \u2022 Coordinates are HOST-RESOLVED. This tool geocoded your place columns"," (city / state / zip, or lat+lon when present) and appended __geoLat__ and"," __geoLon__ to every row \u2014 the chart plots those columns directly and does NOT"," geocode anything itself. Build them the same way if you re-derive the data, or"," the map draws nothing: the code bails when it can't find the two columns."," \u2022 options.geo is the BASEMAP (grey context land), NOT a join target \u2014 there is no"," __geoIso__ and no feature.id lookup. Without it you get points on a blank field."," \u2022 Pass options.geoPoint through. It is how the chart tells the truth about"," precision (city-centroid vs exact) and about rows it could not place.",""),v&&U.push(" Geography (ROUTE - two places per row):"," \u2022 Each row is one route. This tool geocoded BOTH ends: the origin into __geoLat__/"," __geoLon__ and the destination into __geoLatD__/__geoLonD__. The chart needs both"," pairs, and refuses the data (an INVALID message, no arcs) when a row has only one."," \u2022 Pass options.geoPointDest beside options.geoPoint: an arc is only as well placed"," as its worse end, and the chart says which end was approximate.",""),o&&U.push(" Geography:"," \u2022 This is a choropleth: it REQUIRES options.geo (a GeoJSON FeatureCollection whose"," feature.id is the join code) and the __geoIso__ column in data (both provided by"," this tool \u2014 see data.geo.json when out_dir is set). Without options.geo it renders"," an empty map. Do NOT fetch or invent geometry; pass what the tool supplied.",""),U.push(" HOST PAGE PREREQUISITES (@bicharts/chart-host does all of these for you):"," \u2022 SIZE THE CONTAINER FIRST. Measure synchronously (getBoundingClientRect in a"," layout effect) and pass width/height explicitly \u2014 they have NO defaults, and a"," chart handed undefined/0 draws once at nothing and never recovers. Use a"," ResizeObserver for LATER resizes only: gating the FIRST paint on it costs"," seconds in a headless/background tab, where frames are barely produced."," \u2022 PIN TYPOGRAPHY AT THE BOUNDARY. Charts set font-size but almost never"," line-height or letter-spacing, so they inherit YOURS. A page with"," `:root { font: 18px/145% }` \u2014 the stock Vite template does exactly this \u2014 hands"," an 11px chart label a 26px line box and slices it through the middle, on a chart"," that renders perfectly elsewhere. Set `line-height: normal; letter-spacing:"," normal` on the chart container (a chart that sets its own still wins)."," \u2022 SELECTION STYLING IS YOURS. Generated code emits marks and data-row-idx; it"," never styles 'selected', because only the host knows what is selected. Add"," `lch-has-selection` to the container and `lch-mark-selected` to selected marks,"," and dim the rest via the `--lch-dim-opacity` custom property (default 0.25)."," Re-apply after EVERY render or a restyle silently drops the highlight. A chart"," that rests its marks below full opacity by design stamps `d3-lift-selected` on"," their group: paint a SELECTED mark inside that group at full opacity, or it reads"," as dimmed."," \u2022 TEAR DOWN ON UNMOUNT. Call container.__llmAnimStop__() if present before you"," re-render or unmount. Under React StrictMode effects double-mount, so without"," this every animated chart leaks a running timer per mount, on every hot reload.",""," To re-render with filtered/updated data or changed options: call"," render(container, newData, newOptions) again (it repaints the container)."),U.join(`
277
- `)}function yb(e,t=!0){if(!t||!e)return[];let a=new Set;for(let r of e.matchAll(/\boptions\s*(?:\?\s*)?\.\s*([A-Za-z_$][\w$]*)/g))a.add(r[1]);for(let r of e.matchAll(/\boptions\s*(?:\?\s*\.\s*)?\[\s*["']([A-Za-z_$][\w$]*)["']\s*\]/g))a.add(r[1]);for(let r of e.matchAll(/\{([^{}]*)\}\s*=\s*options\b/g))for(let n of r[1].split(",")){if(n.trim().startsWith("..."))continue;let i=n.trim().split(/\s*[:=]\s*/)[0].trim();/^[A-Za-z_$][\w$]*$/.test(i)&&a.add(i)}return Array.from(a).sort()}var yne=new Set(["javascript","typescript","js","ts"]);function nz(e,t,a){let r=e,n=t??"",i="";if(e===void 0&&!n){let o=a();o&&(n=o,i=` (auto-detected language: ${o})`)}return r===""||r==="VISUAL"?r="VISUAL":!r&&yne.has(n.toLowerCase())?(r="D3",i+=" (renderer D3: the one a JavaScript app draws through @bicharts/chart-host)"):r||(r=n?"VISUAL":"D3"),{renderer:r,language:n,note:i}}import{readFileSync as bne}from"node:fs";import{join as Nne}from"node:path";var bb="hoverDropLines";function vne(e,t){return!t||!iI(e,"hoverDropLines")?"none":/\boptions\.hoverDropLines\s*!==\s*false\b/.test(e)?"requested":"default-off"}function Sne(e){if(e)try{let t=JSON.parse(bne(Nne(e,"data.sample.json"),"utf8"))?.meta?.hoverDropLines;return t==="on"||t==="off"?t:void 0}catch{return}}var kne="This 3D scatter can show hover drop lines: hovering a point draws a dashed line from it to each back wall of the cube, so its three values read off the gridlines there. Turn them on?",rz="Ask the user, once: this 3D scatter can show hover drop lines - hovering a point draws a dashed line from it to each back wall of the cube, so its three values read off the gridlines there. Do they want them? If yes, pass hoverDropLines: true in the chart's options (the component's options prop) - a restyle, never a regeneration. If no, leave it unset: it is off. Keep their answer if this chart is regenerated, and do not ask again.";function iz(e){if(e.action!=="accept")return;let t=e.content?.[bb];return typeof t=="boolean"?t?"on":"off":void 0}function ll(e){return!!e?.elicitation?.form}var wne=/\b(?:drop|spike)[\s-]*lines?\b/gi,Wne=/\b(?:no|without|not|never|off)\b|n't\b/i,Cne=/^[\s:=-]*(?:turned\s+)?off\b/i;function _ne(e){let t=e||"",a;for(let r of t.matchAll(wne)){let n=r.index??0,i=t.slice(Math.max(0,n-40),n).split(/[.!?;,\n]/).pop()??"";a=Wne.test(i)||Cne.test(t.slice(n+r[0].length,n+r[0].length+16))?"off":"on"}return a}async function oz(e){let t=vne(e.code,e.isD3);if(t==="none")return{state:"none"};let a=_ne(e.prompt);if(t==="requested")return a==="off"?{state:"off",answer:"off",by:"request",defaultOptions:{[bb]:!1},line:"Hover drop lines: OFF - the request said not to; the component turns them off."}:{state:"requested",by:"request",line:"Hover drop lines: ON, as the request asked (hoverDropLines: false in the options turns them off)."};let r=(i,o,s)=>({state:i,answer:i,by:s,...i==="on"?{defaultOptions:{[bb]:!0}}:{},line:`Hover drop lines: ${i.toUpperCase()} - ${o}.`});if(a==="on")return r("on","the request asked for them","request");if(a==="off")return r("off","the request said not to","request");let n=Sne(e.outDir);if(n)return r(n,"the user's earlier answer for this chart, not asked again","earlier");if(e.elicit){let i;try{i=await e.elicit(kne)}catch{i=void 0}if(i)return r(i,"the user's answer","asked")}return{state:"ask",askUser:rz,line:`ASK THE USER: ${rz}`}}function sz(e,t,a){let r=e.value.trim();return r==="1"?t:r==="0"?a:void 0}var Ane=Object.freeze({GENTYPE_TR:()=>"traditional",GENTYPE_NT:()=>"non_traditional",INCTITLE:e=>e.not?"false":"true",INCDPVALS:e=>e.not?"exclude":"include",NOLEGEND:()=>"none",LEGENDPLACEMENT:e=>e.value,LIMITTO:e=>Pne("favorLimitTo",e.value),LIMITCNT:e=>e.value,INCAPTION:()=>"true",COMPACTNESS:e=>e.value,ADVENTUROUS:e=>sz(e,"nudged","not nudged"),TOPN_FORCE:e=>sz(e,"top N plus Others","all series drawn"),DATESUM:e=>e.value,OTHERSLABEL:e=>e.value,ALLOWMEAS_YES:()=>"encourage",ALLOWMEAS_NO:()=>"discourage",FONTFAMILY:e=>e.value}),Mne=Object.freeze({TOPN_FORCE:e=>"favorLimitCount"in e||e.allowGroupToOthers==="false"}),jpe=Object.freeze(["RAND_NT","LEGENDRULES","LABELDENSITY","SUGGESTEDCHART","USERTEXT","LIKEVER","CHANGETEXT"]);function Pne(e,t){let a=P0(e)?.wire?.encode;if(!a)return t;for(let[r,n]of Object.entries(a))if(String(n)===t)return r;return t}function cz(e){let t=T0({settings:e.settings,rowsPolicy:e.rowsPolicy,forbidDerivedColumns:e.forbidDerivedColumns,chartType:e.chartHint,reasoningMode:e.reasoningMode}),a={},r={},n=[...t.conflicts];for(let o of e3)!o.arg||!(o.arg in t.sent)||(a[o.key]=String(t.sent[o.arg]),t.adjusted[o.arg]&&(r[o.key]=t.adjusted[o.arg]));if(e.levelOfDetail&&(a.levelOfDetail=e.levelOfDetail),e.fontFamily&&e.fontFamily.trim()){let o=Vy(e.fontFamily);o?(a.suggestFontFamily=o,o!==e.fontFamily.replace(/\s+/g," ").trim()&&(r.suggestFontFamily="characters a font name cannot hold were replaced")):n.push({dropped:"font_family",because:"nothing was left of it once characters a font name cannot hold were removed"})}let i=e.cultureCode;if(i&&i.trim()){let o=fn(i);o?(a.cultureCode=o,o!==i&&(r.cultureCode=`written as ${o}`)):n.push({dropped:"culture",because:`'${i.trim().slice(0,35)}' is not a valid language tag, so it is not used`})}return{set:a,conflicts:n,adjusted:r}}function lz(e,t,a,r){for(let n of t??[]){if(n.source!==a||!e.codes.includes(n.code)||Mne[n.code]?.(r))continue;let i=Ane[n.code]?.(n);if(i!==void 0)return i}}function Une(e,t){return e.appliesWhen==="always"?!0:e.appliesWhen==="hasDateColumn"?t.hasDateColumn:!!e.option&&t.optionsRead.includes(e.option)}function dz(e){let t=new Set(e.conflicts.map(n=>n.dropped)),a=[],r=[];for(let n of e3){if(!(n.timing==="next-generate"?n.key in e.set:!!e.live?.[n.option])&&!Une(n,e))continue;let o=U0(n),s=null;if(n.timing==="next-generate")n.key in e.set&&(s={key:n.key,via:o,value:e.set[n.key],source:"user"},e.adjusted?.[n.key]&&(s.adjusted=e.adjusted[n.key]));else{let u=e.live?.[n.option];u&&(s={key:n.key,via:o,value:u.value,source:u.source})}if(!s&&n.timing==="next-generate"){let u=lz(n,e.hints,"prompt",e.set),c=lz(n,e.hints,"roll",e.set);u!==void 0?s={key:n.key,via:o,value:u,source:"from-prompt"}:c!==void 0&&(s={key:n.key,via:o,value:c,source:"server-roll"})}s||(s={key:n.key,via:o,value:n.default,source:"default"}),s=xne(s),a.push(s),!(s.source==="user"||s.source==="app"||s.source==="from-prompt"||n.arg&&t.has(n.arg))&&r.push({key:n.key,label:n.label,timing:n.timing,phase:n.timing==="live"?"after-generate":"before-generate",how:o,...n.ask==="offer"?{ask:"offer",...n.values?{values:n.values}:{},...n.range?{range:n.range}:{},default:n.default,...n.askWhen?{askWhen:n.askWhen}:{}}:{}})}return{block:{applied:a,askable:r,conflicts:e.conflicts,engineChoices:e.hints===void 0?"unavailable":"reported"}}}var Ine=300;function uz(e){let t=P0(e);return t?.arg??t?.option??e}function Tne(e){let t=Array.from(e),a=t.length>24?`${t.slice(0,22).join("")}..`:e;return/[\s,;=]/.test(a)?`"${a}"`:a}var Nb=200;function xne(e){let t=Array.from(e.value);if(t.length<=Nb)return e;let a=`shown cut to ${Nb} characters`;return{...e,value:t.slice(0,Nb).join(""),adjusted:e.adjusted?`${e.adjusted}; ${a}`:a}}function hz(e){let t=e.applied.filter(u=>u.source==="user"||u.source==="app").map(u=>`${uz(u.key)}=${Tne(u.value)}${u.adjusted?" (adjusted)":""}`),a=e.applied.filter(u=>u.source==="server-roll"||u.source==="from-prompt").map(u=>uz(u.key)),r=e.conflicts.map(u=>u.dropped),n=e.engineChoices==="unavailable";if(t.length===0&&a.length===0&&r.length===0&&!n)return null;let i=(u,c)=>u.length<=c?u.join(", "):`${u.slice(0,c).join(", ")}, +${u.length-c} more`,o=u=>{let c=[];return t.length&&c.push(`set by you: ${i(t,u.set)}`),n?c.push("engine picks unavailable"):a.length&&c.push(`picked by the engine: ${i(a,u.pick)}`),r.length&&c.push(`${r.length} dropped for conflict (${i(r,u.drop)})`),`Settings: ${c.join("; ")}; full list in structuredContent.settings.`},s={set:t.length,pick:a.length,drop:r.length},l=o(s);for(;l.length>Ine;){let u=Object.keys(s).sort((c,d)=>s[d]-s[c])[0];if(s[u]<=1)break;s[u]--,l=o(s)}return l}function pz(e){if(e)try{let t=e.getClientVersion(),a=e.getClientCapabilities(),r={...t?.name?{name:t.name}:{},...t?.version?{version:t.version}:{},...a!==void 0?{elicitation:ll(a)}:{}};return Object.keys(r).length?r:void 0}catch{return}}var zne=new Set([Ii,Ey,X3,H8]);function ul(e){return!!e.errorCode&&zne.has(e.errorCode)}function Sb(e,t){return t?O8(e):[]}var kb={chartName:C.string().describe("The chart type the backend produced."),capabilities:C.object({lasso:C.object({rowCap:C.number().optional().describe("The most rows in view that still get a lasso; above it the host turns the lasso off. Absent: chart-host's own default.")}).optional().describe("Present when this chart type takes chart-host's lasso: a drag around marks selects the ones inside, through the selection a click makes. The component written with a D3 chart passes it as options.lasso ({ capable: true, enabled: true }), and the app's own options can switch it off with lasso: { enabled: false }.")}).optional().describe("What the server declares the host may do with this chart, beside chartName. Absent when the chart has no capability: a chart type that declares none, a language other than D3, or an older server."),language:C.string().describe("Renderer/language of the code (D3, PYTHON, \u2026)."),version:C.number().describe("Server-side version number of this generation."),creditCost:C.number().nullable().describe("Credits billed, when the server reported them."),correlationId:C.string().describe("Ties this generation to the server-side log; it is what a support request quotes."),outputHash:C.string().optional().describe("The server's identity for this exact code: the same code always carries the same hash, which names the delivered code in a support request or a later report. Absent when the server sent none."),recoveredAfterMs:C.number().optional().describe("Present when the response stream was cut after the server accepted the request and this chart was then fetched back by its correlation: milliseconds from the start of the call to delivery. creditCost is null then: the fetch that delivered it reports only its own cost (a recovery is free), not the generation's, which was charged once, as usual."),codeSummary:C.string().optional().describe("The backend's own one-line description of what it built."),warningMessage:C.string().optional().describe("Present when what was drawn differs from what was requested: a chart type that was overruled (it names the requested type, the reason and what was drawn instead), or an ask this data couldn't honor in full (it names the ask and why). Surface it to the user verbatim \u2014 never suppress it because the chart rendered fine."),improvementSuggestion:C.string().optional().describe("Present when the server has a note on how this chart was made: for example, that it is the standard version of the chart type because the tailored one didn't pass a quality check. It is meant for the person who asked for the chart."),code:C.string().optional().describe("The render() source. Omitted when include_code is false."),requiredD3Plugins:C.array(C.string()).describe('D3 plugin PACKAGES this code calls (e.g. ["d3-sankey"]) \u2014 install them and pass the host ONE d3 that carries them, built with assembleD3(d3, { ...plugins }) from @bicharts/chart-host (assigning onto an ES-module d3 namespace throws), or the chart throws mid-render. Empty for core-only d3 and for non-D3 languages.'),geo:C.object({column:C.string().nullable().describe("Column joined to the geometry; null for a basemap-only point map."),kind:C.string().describe("Geometry asset kind \u2014 pass the matching geometry as options.geo."),hasGeometry:C.boolean().describe("False means no bundled geometry matched this kind: the map will draw no land."),unmatched:C.number().describe("Regions in the data with no geometry match."),unmatchedExamples:C.array(C.string())}).nullable().describe("Region/basemap wiring; null for non-geo charts."),geoPoint:C.object({placed:C.number(),total:C.number(),precision:C.string().nullable(),unplaced:C.number(),unplacedExamples:C.array(C.string()),ambiguousRows:C.number().describe("Rows whose place name matched several places and was therefore NOT placed."),ambiguousExamples:C.array(C.string())}).nullable().describe("Point-geocoding outcome (a route's ORIGIN end when geoPointDest is present). `placed` counts only rows with a coordinate: neither an unplaced nor an ambiguous name is plotted. Null when the chart geocodes no points."),geoPointDest:C.object({placed:C.number(),total:C.number(),precision:C.string().nullable(),unplaced:C.number(),unplacedExamples:C.array(C.string()),ambiguousRows:C.number().describe("Rows whose destination name matched several places and was therefore NOT placed."),ambiguousExamples:C.array(C.string())}).optional().describe("A route's DESTINATION end (an origin-destination flow map), geocoded apart from geoPoint, which is then the origin. `placed` counts only rows with a destination coordinate: neither an unplaced nor an ambiguous name is plotted. Present only for a route."),data:C.any().optional().describe("The render payload {columns, rows, \u2026} to hand render() \u2014 INCLUDING any __geoIso__/__geoLat__/__geoLon__ columns the caller cannot reconstruct. Present only when out_dir was NOT given; otherwise read files.data."),files:C.object({code:C.string().optional(),data:C.string().optional(),geo:C.string().optional(),preview:C.string().optional(),component:C.string().optional().describe("chart.component.tsx: the React host written with a D3 chart - the group, the binding, the plugins, the legend and frame fit (layoutPass) and the click contract wired, plus rowsFromTable for a query result. Render it instead of writing one.")}).optional().describe("Absolute paths written, when out_dir was given."),integrationContract:C.string().optional().describe("HOW TO RUN THIS CHART IN YOUR APP - the same integration contract the text block carries, here because a host that shows the model only this structured result would otherwise never see it: the payload and option shapes, the reference host (@bicharts/chart-host) with its React bindings AND its framework-free group (createChartGroup + createChartHost + attach) for a plain page or a UI framework reached through interop, this chart's d3 plugins and geometry, and the host-page prerequisites. Read it before wiring the chart in."),dropLines:C.object({state:C.enum(["requested","on","off","ask"]),askUser:C.string().optional()}).optional().describe("A 3D scatter's optional hover drop lines (a line from a hovered point to each back wall). requested: on, because the request asked; on/off: the user's answer, already applied to the generated component; ask: put askUser to the user ONCE before finishing, then pass hoverDropLines: true in the chart's options on a yes. Absent for every other chart."),settings:C.object({applied:C.array(C.object({key:C.string().describe("The catalog row: the engine's name for the setting."),via:C.string().describe("How the setting is carried: 'argument <name>' (of generate_chart) for the next chart, or 'chart-host option <name>' for a live restyle."),value:C.string().describe("The value in effect, or the default's wording ('the engine decides') when nothing was set."),adjusted:C.string().optional().describe("Present when the value was changed on the way: cut to length, held to a range, written in canonical form."),source:C.string().describe("Whose choice it is: 'user' = an argument of this call; 'app' = a live value already chosen for this app; 'default' = nothing set; 'server-roll' = the server drew it at random; 'from-prompt' = the server read it out of the request's own words. A later layer may add a source.")})).describe("Every setting that applies to THIS chart and took effect, with its value and where that value came from."),askable:C.array(C.object({key:C.string(),label:C.string(),timing:C.enum(["next-generate","live"]).describe("next-generate = an argument of the next generate_chart call; live = a chart-host render option, set in the host code."),phase:C.enum(["before-generate","after-generate"]).describe("Where the setting is carried: before-generate rows are arguments of generate_chart; after-generate rows are render options of the generated chart."),how:C.string().describe("How an answer is carried: 'argument <name>' (of generate_chart) or 'chart-host option <name>' (the component's options prop)."),ask:C.literal("offer").optional().describe("Present on a row worth a question, which then also carries values or range and default (and askWhen, on a live row). Absent on a row passed only when the person has said it; the guide's settings topic has its choices."),values:C.array(C.object({value:C.union([C.string(),C.boolean()]),label:C.string()})).optional(),range:C.object({min:C.number(),max:C.number().optional(),integer:C.boolean().optional()}).optional(),default:C.string().optional(),askWhen:C.string().optional().describe("For a live offer row, when the question is worth putting to the person.")})).describe("The settings that apply to THIS chart and that nothing of the person's is on yet: every next-generate row, and a live row only when this chart's code reads its option."),conflicts:C.array(C.object({dropped:C.string().describe("The argument that was not sent."),because:C.string().describe("Why it was not sent.")})).describe("Arguments of this call that were not sent, each with its reason: a contradiction with an authoritative argument, no effect, or nothing left once cleaned or checked."),engineChoices:C.enum(["reported","unavailable"]).describe("reported = the server said what it picked, so a row left at default is a default; unavailable = it did not (an older server, or a generation recovered by a poll), so the engine may have picked where a row reads default and picks cannot be listed.")}).optional().describe("WHICH SETTINGS APPLIED to this chart and where each value came from, so a person can be told what was assumed. Present on every generation."),optionsRead:C.array(C.string()).optional().describe("The option names THIS chart's code reads (sorted). A chart honors nothing it does not read, so a live restyle - host.setOptions({...}), never a regeneration - can only move these. Some are the host's to supply (width, height, geo, geoPoint, uiState, setUiState, themeFg/themeBg); the integration contract says what each one does. Empty for a non-D3 language."),binding:C.object({geo:C.object({column:C.string(),kind:C.string()}).nullable().describe("The choropleth join: the column matched to the geometry and its kind. Null when nothing joins."),point:C.record(C.string(),C.any()).nullable().describe("Which columns place a point (lat/lon, city, state, zip, country) and the map's gazetteer scope. Null when the chart places no points."),destination:C.record(C.string(),C.any()).nullable().describe("The same for a route's far end (an origin-destination flow map); point is then the origin. Null otherwise.")}).optional().describe("How `data` was built from your rows. Hand all three to @bicharts/chart-host - <BicChartGroup geo point destination> or createChartGroup(columns, rows, { geo, point, destination }) - and it builds the payload again from LIVE rows with the same columns; never rebuild __rowIdx__ or __geo* columns by hand."),hostContract:C.string().describe("Host contract version the code targets; a host on a different MAJOR may not interoperate."),build:C.string().describe("MCP server build stamp \u2014 the bundle actually serving this call.")},Kpe=C.object(kb);function mz(e){return`${e}
279
+ `)}function yb(e,t=!0){if(!t||!e)return[];let a=new Set;for(let r of e.matchAll(/\boptions\s*(?:\?\s*)?\.\s*([A-Za-z_$][\w$]*)/g))a.add(r[1]);for(let r of e.matchAll(/\boptions\s*(?:\?\s*\.\s*)?\[\s*["']([A-Za-z_$][\w$]*)["']\s*\]/g))a.add(r[1]);for(let r of e.matchAll(/\{([^{}]*)\}\s*=\s*options\b/g))for(let n of r[1].split(",")){if(n.trim().startsWith("..."))continue;let i=n.trim().split(/\s*[:=]\s*/)[0].trim();/^[A-Za-z_$][\w$]*$/.test(i)&&a.add(i)}return Array.from(a).sort()}var yne=new Set(["javascript","typescript","js","ts"]);function nz(e,t,a){let r=e,n=t??"",i="";if(e===void 0&&!n){let o=a();o&&(n=o,i=` (auto-detected language: ${o})`)}return r===""||r==="VISUAL"?r="VISUAL":!r&&yne.has(n.toLowerCase())?(r="D3",i+=" (renderer D3: the one a JavaScript app draws through @bicharts/chart-host)"):r||(r=n?"VISUAL":"D3"),{renderer:r,language:n,note:i}}import{readFileSync as bne}from"node:fs";import{join as Nne}from"node:path";var bb="hoverDropLines";function vne(e,t){return!t||!iI(e,"hoverDropLines")?"none":/\boptions\.hoverDropLines\s*!==\s*false\b/.test(e)?"requested":"default-off"}function Sne(e){if(e)try{let t=JSON.parse(bne(Nne(e,"data.sample.json"),"utf8"))?.meta?.hoverDropLines;return t==="on"||t==="off"?t:void 0}catch{return}}var kne="This 3D scatter can show hover drop lines: hovering a point draws a dashed line from it to each back wall of the cube, so its three values read off the gridlines there. Turn them on?",rz="Ask the user, once: this 3D scatter can show hover drop lines - hovering a point draws a dashed line from it to each back wall of the cube, so its three values read off the gridlines there. Do they want them? If yes, pass hoverDropLines: true in the chart's options (the component's options prop) - a restyle, never a regeneration. If no, leave it unset: it is off. Keep their answer if this chart is regenerated, and do not ask again.";function iz(e){if(e.action!=="accept")return;let t=e.content?.[bb];return typeof t=="boolean"?t?"on":"off":void 0}function ll(e){return!!e?.elicitation?.form}var wne=/\b(?:drop|spike)[\s-]*lines?\b/gi,Wne=/\b(?:no|without|not|never|off)\b|n't\b/i,Cne=/^[\s:=-]*(?:turned\s+)?off\b/i;function _ne(e){let t=e||"",a;for(let r of t.matchAll(wne)){let n=r.index??0,i=t.slice(Math.max(0,n-40),n).split(/[.!?;,\n]/).pop()??"";a=Wne.test(i)||Cne.test(t.slice(n+r[0].length,n+r[0].length+16))?"off":"on"}return a}async function oz(e){let t=vne(e.code,e.isD3);if(t==="none")return{state:"none"};let a=_ne(e.prompt);if(t==="requested")return a==="off"?{state:"off",answer:"off",by:"request",defaultOptions:{[bb]:!1},line:"Hover drop lines: OFF - the request said not to; the component turns them off."}:{state:"requested",by:"request",line:"Hover drop lines: ON, as the request asked (hoverDropLines: false in the options turns them off)."};let r=(i,o,s)=>({state:i,answer:i,by:s,...i==="on"?{defaultOptions:{[bb]:!0}}:{},line:`Hover drop lines: ${i.toUpperCase()} - ${o}.`});if(a==="on")return r("on","the request asked for them","request");if(a==="off")return r("off","the request said not to","request");let n=Sne(e.outDir);if(n)return r(n,"the user's earlier answer for this chart, not asked again","earlier");if(e.elicit){let i;try{i=await e.elicit(kne)}catch{i=void 0}if(i)return r(i,"the user's answer","asked")}return{state:"ask",askUser:rz,line:`ASK THE USER: ${rz}`}}function sz(e,t,a){let r=e.value.trim();return r==="1"?t:r==="0"?a:void 0}var Ane=Object.freeze({GENTYPE_TR:()=>"traditional",GENTYPE_NT:()=>"non_traditional",INCTITLE:e=>e.not?"false":"true",INCDPVALS:e=>e.not?"exclude":"include",NOLEGEND:()=>"none",LEGENDPLACEMENT:e=>e.value,LIMITTO:e=>Pne("favorLimitTo",e.value),LIMITCNT:e=>e.value,INCAPTION:()=>"true",COMPACTNESS:e=>e.value,ADVENTUROUS:e=>sz(e,"nudged","not nudged"),TOPN_FORCE:e=>sz(e,"top N plus Others","all series drawn"),DATESUM:e=>e.value,OTHERSLABEL:e=>e.value,ALLOWMEAS_YES:()=>"encourage",ALLOWMEAS_NO:()=>"discourage",FONTFAMILY:e=>e.value}),Mne=Object.freeze({TOPN_FORCE:e=>"favorLimitCount"in e||e.allowGroupToOthers==="false"}),Dpe=Object.freeze(["RAND_NT","LEGENDRULES","LABELDENSITY","SUGGESTEDCHART","USERTEXT","LIKEVER","CHANGETEXT"]);function Pne(e,t){let a=P0(e)?.wire?.encode;if(!a)return t;for(let[r,n]of Object.entries(a))if(String(n)===t)return r;return t}function cz(e){let t=T0({settings:e.settings,rowsPolicy:e.rowsPolicy,forbidDerivedColumns:e.forbidDerivedColumns,chartType:e.chartHint,reasoningMode:e.reasoningMode}),a={},r={},n=[...t.conflicts];for(let o of e3)!o.arg||!(o.arg in t.sent)||(a[o.key]=String(t.sent[o.arg]),t.adjusted[o.arg]&&(r[o.key]=t.adjusted[o.arg]));if(e.levelOfDetail&&(a.levelOfDetail=e.levelOfDetail),e.fontFamily&&e.fontFamily.trim()){let o=Vy(e.fontFamily);o?(a.suggestFontFamily=o,o!==e.fontFamily.replace(/\s+/g," ").trim()&&(r.suggestFontFamily="characters a font name cannot hold were replaced")):n.push({dropped:"font_family",because:"nothing was left of it once characters a font name cannot hold were removed"})}let i=e.cultureCode;if(i&&i.trim()){let o=fn(i);o?(a.cultureCode=o,o!==i&&(r.cultureCode=`written as ${o}`)):n.push({dropped:"culture",because:`'${i.trim().slice(0,35)}' is not a valid language tag, so it is not used`})}return{set:a,conflicts:n,adjusted:r}}function lz(e,t,a,r){for(let n of t??[]){if(n.source!==a||!e.codes.includes(n.code)||Mne[n.code]?.(r))continue;let i=Ane[n.code]?.(n);if(i!==void 0)return i}}function Une(e,t){return e.appliesWhen==="always"?!0:e.appliesWhen==="hasDateColumn"?t.hasDateColumn:!!e.option&&t.optionsRead.includes(e.option)}function dz(e){let t=new Set(e.conflicts.map(n=>n.dropped)),a=[],r=[];for(let n of e3){if(!(n.timing==="next-generate"?n.key in e.set:!!e.live?.[n.option])&&!Une(n,e))continue;let o=U0(n),s=null;if(n.timing==="next-generate")n.key in e.set&&(s={key:n.key,via:o,value:e.set[n.key],source:"user"},e.adjusted?.[n.key]&&(s.adjusted=e.adjusted[n.key]));else{let u=e.live?.[n.option];u&&(s={key:n.key,via:o,value:u.value,source:u.source})}if(!s&&n.timing==="next-generate"){let u=lz(n,e.hints,"prompt",e.set),c=lz(n,e.hints,"roll",e.set);u!==void 0?s={key:n.key,via:o,value:u,source:"from-prompt"}:c!==void 0&&(s={key:n.key,via:o,value:c,source:"server-roll"})}s||(s={key:n.key,via:o,value:n.default,source:"default"}),s=xne(s),a.push(s),!(s.source==="user"||s.source==="app"||s.source==="from-prompt"||n.arg&&t.has(n.arg))&&r.push({key:n.key,label:n.label,timing:n.timing,phase:n.timing==="live"?"after-generate":"before-generate",how:o,...n.ask==="offer"?{ask:"offer",...n.values?{values:n.values}:{},...n.range?{range:n.range}:{},default:n.default,...n.askWhen?{askWhen:n.askWhen}:{}}:{}})}return{block:{applied:a,askable:r,conflicts:e.conflicts,engineChoices:e.hints===void 0?"unavailable":"reported"}}}var Ine=300;function uz(e){let t=P0(e);return t?.arg??t?.option??e}function Tne(e){let t=Array.from(e),a=t.length>24?`${t.slice(0,22).join("")}..`:e;return/[\s,;=]/.test(a)?`"${a}"`:a}var Nb=200;function xne(e){let t=Array.from(e.value);if(t.length<=Nb)return e;let a=`shown cut to ${Nb} characters`;return{...e,value:t.slice(0,Nb).join(""),adjusted:e.adjusted?`${e.adjusted}; ${a}`:a}}function hz(e){let t=e.applied.filter(u=>u.source==="user"||u.source==="app").map(u=>`${uz(u.key)}=${Tne(u.value)}${u.adjusted?" (adjusted)":""}`),a=e.applied.filter(u=>u.source==="server-roll"||u.source==="from-prompt").map(u=>uz(u.key)),r=e.conflicts.map(u=>u.dropped),n=e.engineChoices==="unavailable";if(t.length===0&&a.length===0&&r.length===0&&!n)return null;let i=(u,c)=>u.length<=c?u.join(", "):`${u.slice(0,c).join(", ")}, +${u.length-c} more`,o=u=>{let c=[];return t.length&&c.push(`set by you: ${i(t,u.set)}`),n?c.push("engine picks unavailable"):a.length&&c.push(`picked by the engine: ${i(a,u.pick)}`),r.length&&c.push(`${r.length} dropped for conflict (${i(r,u.drop)})`),`Settings: ${c.join("; ")}; full list in structuredContent.settings.`},s={set:t.length,pick:a.length,drop:r.length},l=o(s);for(;l.length>Ine;){let u=Object.keys(s).sort((c,d)=>s[d]-s[c])[0];if(s[u]<=1)break;s[u]--,l=o(s)}return l}function pz(e){if(e)try{let t=e.getClientVersion(),a=e.getClientCapabilities(),r={...t?.name?{name:t.name}:{},...t?.version?{version:t.version}:{},...a!==void 0?{elicitation:ll(a)}:{}};return Object.keys(r).length?r:void 0}catch{return}}var zne=new Set([Ii,Ey,X3,H8]);function ul(e){return!!e.errorCode&&zne.has(e.errorCode)}function Sb(e,t){return t?O8(e):[]}var kb={chartName:C.string().describe("The chart type the backend produced."),capabilities:C.object({lasso:C.object({rowCap:C.number().optional().describe("The most rows in view that still get a lasso; above it the host turns the lasso off. Absent: chart-host's own default.")}).optional().describe("Present when this chart type takes chart-host's lasso: a drag around marks selects the ones inside, through the selection a click makes. The component written with a D3 chart passes it as options.lasso ({ capable: true, enabled: true }), and the app's own options can switch it off with lasso: { enabled: false }.")}).optional().describe("What the server declares the host may do with this chart, beside chartName. Absent when the chart has no capability: a chart type that declares none, a language other than D3, or an older server."),language:C.string().describe("Renderer/language of the code (D3, PYTHON, \u2026)."),version:C.number().describe("Server-side version number of this generation."),creditCost:C.number().nullable().describe("Credits billed, when the server reported them."),correlationId:C.string().describe("Ties this generation to the server-side log; it is what a support request quotes."),outputHash:C.string().optional().describe("The server's identity for this exact code: the same code always carries the same hash, which names the delivered code in a support request or a later report. Absent when the server sent none."),recoveredAfterMs:C.number().optional().describe("Present when the response stream was cut after the server accepted the request and this chart was then fetched back by its correlation: milliseconds from the start of the call to delivery. creditCost is null then: the fetch that delivered it reports only its own cost (a recovery is free), not the generation's, which was charged once, as usual."),codeSummary:C.string().optional().describe("The backend's own one-line description of what it built."),warningMessage:C.string().optional().describe("Present when what was drawn differs from what was requested: a chart type that was overruled (it names the requested type, the reason and what was drawn instead), or an ask this data couldn't honor in full (it names the ask and why). Surface it to the user verbatim \u2014 never suppress it because the chart rendered fine."),improvementSuggestion:C.string().optional().describe("Present when the server has a note on how this chart was made: for example, that it is the standard version of the chart type because the tailored one didn't pass a quality check. It is meant for the person who asked for the chart."),code:C.string().optional().describe("The render() source. Omitted when include_code is false."),requiredD3Plugins:C.array(C.string()).describe('D3 plugin PACKAGES this code calls (e.g. ["d3-sankey"]) \u2014 install them and pass the host ONE d3 that carries them, built with assembleD3(d3, { ...plugins }) from @bicharts/chart-host (assigning onto an ES-module d3 namespace throws), or the chart throws mid-render. Empty for core-only d3 and for non-D3 languages.'),geo:C.object({column:C.string().nullable().describe("Column joined to the geometry; null for a basemap-only point map."),kind:C.string().describe("Geometry asset kind \u2014 pass the matching geometry as options.geo."),hasGeometry:C.boolean().describe("False means no bundled geometry matched this kind: the map will draw no land."),unmatched:C.number().describe("Regions in the data with no geometry match."),unmatchedExamples:C.array(C.string())}).nullable().describe("Region/basemap wiring; null for non-geo charts."),geoPoint:C.object({placed:C.number(),total:C.number(),precision:C.string().nullable(),unplaced:C.number(),unplacedExamples:C.array(C.string()),ambiguousRows:C.number().describe("Rows whose place name matched several places and was therefore NOT placed."),ambiguousExamples:C.array(C.string())}).nullable().describe("Point-geocoding outcome (a route's ORIGIN end when geoPointDest is present). `placed` counts only rows with a coordinate: neither an unplaced nor an ambiguous name is plotted. Null when the chart geocodes no points."),geoPointDest:C.object({placed:C.number(),total:C.number(),precision:C.string().nullable(),unplaced:C.number(),unplacedExamples:C.array(C.string()),ambiguousRows:C.number().describe("Rows whose destination name matched several places and was therefore NOT placed."),ambiguousExamples:C.array(C.string())}).optional().describe("A route's DESTINATION end (an origin-destination flow map), geocoded apart from geoPoint, which is then the origin. `placed` counts only rows with a destination coordinate: neither an unplaced nor an ambiguous name is plotted. Present only for a route."),data:C.any().optional().describe("The render payload {columns, rows, \u2026} to hand render() \u2014 INCLUDING any __geoIso__/__geoLat__/__geoLon__ columns the caller cannot reconstruct. Present only when out_dir was NOT given; otherwise read files.data."),files:C.object({code:C.string().optional(),data:C.string().optional(),geo:C.string().optional(),preview:C.string().optional(),component:C.string().optional().describe("chart.component.tsx: the React host written with a D3 chart - the group, the binding, the plugins, the legend and frame fit (layoutPass) and the click contract wired, plus rowsFromTable for a query result. Render it instead of writing one.")}).optional().describe("Absolute paths written, when out_dir was given."),integrationContract:C.string().optional().describe("HOW TO RUN THIS CHART IN YOUR APP - the same integration contract the text block carries, here because a host that shows the model only this structured result would otherwise never see it: the payload and option shapes, the reference host (@bicharts/chart-host) with its React bindings AND its framework-free group (createChartGroup + createChartHost + attach) for a plain page or a UI framework reached through interop, this chart's d3 plugins and geometry, and the host-page prerequisites. Read it before wiring the chart in."),dropLines:C.object({state:C.enum(["requested","on","off","ask"]),askUser:C.string().optional()}).optional().describe("A 3D scatter's optional hover drop lines (a line from a hovered point to each back wall). requested: on, because the request asked; on/off: the user's answer, already applied to the generated component; ask: put askUser to the user ONCE before finishing, then pass hoverDropLines: true in the chart's options on a yes. Absent for every other chart."),settings:C.object({applied:C.array(C.object({key:C.string().describe("The catalog row: the engine's name for the setting."),via:C.string().describe("How the setting is carried: 'argument <name>' (of generate_chart) for the next chart, or 'chart-host option <name>' for a live restyle."),value:C.string().describe("The value in effect, or the default's wording ('the engine decides') when nothing was set."),adjusted:C.string().optional().describe("Present when the value was changed on the way: cut to length, held to a range, written in canonical form."),source:C.string().describe("Whose choice it is: 'user' = an argument of this call; 'app' = a live value already chosen for this app; 'default' = nothing set; 'server-roll' = the server drew it at random; 'from-prompt' = the server read it out of the request's own words. A later layer may add a source.")})).describe("Every setting that applies to THIS chart and took effect, with its value and where that value came from."),askable:C.array(C.object({key:C.string(),label:C.string(),timing:C.enum(["next-generate","live"]).describe("next-generate = an argument of the next generate_chart call; live = a chart-host render option, set in the host code."),phase:C.enum(["before-generate","after-generate"]).describe("Where the setting is carried: before-generate rows are arguments of generate_chart; after-generate rows are render options of the generated chart."),how:C.string().describe("How an answer is carried: 'argument <name>' (of generate_chart) or 'chart-host option <name>' (the component's options prop)."),ask:C.literal("offer").optional().describe("Present on a row worth a question, which then also carries values or range and default (and askWhen, on a live row). Absent on a row passed only when the person has said it; the guide's settings topic has its choices."),values:C.array(C.object({value:C.union([C.string(),C.boolean()]),label:C.string()})).optional(),range:C.object({min:C.number(),max:C.number().optional(),integer:C.boolean().optional()}).optional(),default:C.string().optional(),askWhen:C.string().optional().describe("For a live offer row, when the question is worth putting to the person.")})).describe("The settings that apply to THIS chart and that nothing of the person's is on yet: every next-generate row, and a live row only when this chart's code reads its option."),conflicts:C.array(C.object({dropped:C.string().describe("The argument that was not sent."),because:C.string().describe("Why it was not sent.")})).describe("Arguments of this call that were not sent, each with its reason: a contradiction with an authoritative argument, no effect, or nothing left once cleaned or checked."),engineChoices:C.enum(["reported","unavailable"]).describe("reported = the server said what it picked, so a row left at default is a default; unavailable = it did not (an older server, or a generation recovered by a poll), so the engine may have picked where a row reads default and picks cannot be listed.")}).optional().describe("WHICH SETTINGS APPLIED to this chart and where each value came from, so a person can be told what was assumed. Present on every generation."),optionsRead:C.array(C.string()).optional().describe("The option names THIS chart's code reads (sorted). A chart honors nothing it does not read, so a live restyle - host.setOptions({...}), never a regeneration - can only move these. Some are the host's to supply (width, height, geo, geoPoint, uiState, setUiState, themeFg/themeBg); the integration contract says what each one does. Empty for a non-D3 language."),binding:C.object({geo:C.object({column:C.string(),kind:C.string()}).nullable().describe("The choropleth join: the column matched to the geometry and its kind. Null when nothing joins."),point:C.record(C.string(),C.any()).nullable().describe("Which columns place a point (lat/lon, city, state, zip, country) and the map's gazetteer scope. Null when the chart places no points."),destination:C.record(C.string(),C.any()).nullable().describe("The same for a route's far end (an origin-destination flow map); point is then the origin. Null otherwise.")}).optional().describe("How `data` was built from your rows. Hand all three to @bicharts/chart-host - <BicChartGroup geo point destination> or createChartGroup(columns, rows, { geo, point, destination }) - and it builds the payload again from LIVE rows with the same columns; never rebuild __rowIdx__ or __geo* columns by hand."),hostContract:C.string().describe("Host contract version the code targets; a host on a different MAJOR may not interoperate."),build:C.string().describe("MCP server build stamp \u2014 the bundle actually serving this call.")},Vpe=C.object(kb);function mz(e){return`${e}
278
280
  export { render };
279
281
  `}function gz(e,t=Date.now()){if(ul(e))return e.errorMessage;if(e.isRateLimited===!0){let a=e.retryAfterSeconds,r=typeof a=="number"&&Number.isFinite(a)&&a>0?` The server accepts the next request in about ${Math.ceil(a)}s (not before ${new Date(t+Math.ceil(a)*1e3).toISOString().replace(/\.\d{3}Z$/,"Z")}).`:"";return`Rate limited (correlationId ${e.correlationId}): ${e.errorMessage||"the server is limiting requests"} The server turned this request away before generating anything; asking again at once gets the same answer.`+r}return/credit balance for the maximum possible cost/i.test(e.errorMessage??"")?`Generation failed (correlationId ${e.correlationId}): ${e.errorMessage} Parallel generate_chart calls each hold the maximum possible cost against the balance until they finish, so this can be the others in flight rather than an empty balance: retry this one once the others finish.`:`Generation failed (correlationId ${e.correlationId}): ${e.errorMessage||"no code returned"}`}function vb(e,t){return e-(t?.unplaced??0)-(t?.ambiguousRows??0)}function wb(e,t,a,r){let n=[t.city&&"city",t.state&&"state",t.zip&&"zip",t.lat&&t.lon&&"lat/lon"].filter(Boolean).join("+");return`${e}: geocoded ${vb(r,a)}/${r} from ${n}`+(a?.precision?` at ${a.precision} precision`:"")+(a&&a.unplaced>0?` \u2014 ${a.unplaced} unplaced: ${a.unplacedExamples.join(", ")}`:"")+(a&&a.ambiguousRows>0?` \u2014 ${a.ambiguousRows} not placed, the name matches several places: ${(a.ambiguousExamples??[]).join(", ")}`:"")}function fz(e){return e.include_code??!e.out_dir}function yz(e){let t=e.renderData.geoPoint,a=e.renderData.geoPointDest,r=e.renderData.geoUnmatched;return{chartName:e.res.finalChartName||"",...e.res.capabilities?{capabilities:e.res.capabilities}:{},language:e.res.language,version:e.res.version,creditCost:e.res.creditCost??null,correlationId:e.res.correlationId,...e.res.outputHash?{outputHash:e.res.outputHash}:{},...e.res.recoveredAfterMs!=null?{recoveredAfterMs:e.res.recoveredAfterMs}:{},...e.res.codeSummary?{codeSummary:e.res.codeSummary}:{},...e.res.warningMessage?{warningMessage:e.res.warningMessage}:{},...e.res.improvementSuggestion?{improvementSuggestion:e.res.improvementSuggestion}:{},...e.withCode?{code:e.code}:{},requiredD3Plugins:e.plugins,geo:e.res.geoKind?{column:e.res.geoColumn||null,kind:e.res.geoKind,hasGeometry:e.hasGeometry,unmatched:r?.count??0,unmatchedExamples:r?.examples??[]}:null,geoPoint:t?{placed:vb(e.renderData.rows.length,t),total:e.renderData.rows.length,precision:t.precision??null,unplaced:t.unplaced??0,unplacedExamples:t.unplacedExamples??[],ambiguousRows:t.ambiguousRows??0,ambiguousExamples:t.ambiguousExamples??[]}:null,...a?{geoPointDest:{placed:vb(e.renderData.rows.length,a),total:e.renderData.rows.length,precision:a.precision??null,unplaced:a.unplaced??0,unplacedExamples:a.unplacedExamples??[],ambiguousRows:a.ambiguousRows??0,ambiguousExamples:a.ambiguousExamples??[]}}:{},...e.files?{files:e.files}:{data:e.renderData},...e.integrationContract!==void 0?{integrationContract:e.integrationContract}:{},...e.optionsRead!==void 0?{optionsRead:e.optionsRead}:{},...e.dropLines?{dropLines:e.dropLines}:{},...e.settings?{settings:e.settings}:{},...e.binding?{binding:e.binding}:{},hostContract:e.hostContract,build:e.build}}bz();vz();kz();/*! @bicharts/chart-host — Apache-2.0. Bundled reference data: GeoNames (https://www.geonames.org/) CC BY 4.0; Natural Earth and US Census/TIGER (public domain). Full text: NOTICE in this package. */function J8(e){if(!e)return;let t=e.toLowerCase();if(/^country/.test(t))return cl;if(t==="us-state-code"||t==="us-state-name")return Nz;if(t==="us-zip5")return Sz;if(t==="north-america")return Ene();if(t==="world")return Rne()}var Wb;function Rne(){return Wb||(Wb={type:"FeatureCollection",features:cl.features.filter(e=>e?.geometry&&e.geometry.type!=="Point")}),Wb}var Cb;function Ene(){return Cb||(Cb={type:"FeatureCollection",features:cl.features.filter(e=>VU.has(e?.id)&&e?.geometry&&e.geometry.type!=="Point").map(e=>qU(e,ZU)).filter(e=>e!==null)}),Cb}import{readdirSync as $ne,existsSync as jne,statSync as wz}from"node:fs";import{join as _b}from"node:path";var Wz=["package.json","tsconfig.json","jsconfig.json","deno.json","deno.jsonc","angular.json","svelte.config.js","vite.config.ts","vite.config.js","pnpm-lock.yaml","yarn.lock","package-lock.json"],Cz=["pyproject.toml","requirements.txt","setup.py","setup.cfg","Pipfile","poetry.lock","environment.yml","environment.yaml","conda.yaml","tox.ini"],One=new Set([".js",".jsx",".mjs",".cjs",".ts",".tsx"]),Dne=new Set([".py",".pyi"]);function dl(e,t){return t.some(a=>jne(_b(e,a)))}function _z(e){return dl(e,Wz)||dl(e,Cz)}function Lne(e){let t=0,a=0,r=i=>{let o;try{o=$ne(i)}catch{return}for(let s of o){if(s==="node_modules"||s===".git"||s.startsWith("."))continue;let l=_b(i,s),u=!1;try{u=wz(l).isFile()}catch{continue}if(!u)continue;let c=s.lastIndexOf(".");if(c<0)continue;let d=s.slice(c).toLowerCase();One.has(d)?t++:Dne.has(d)&&a++}};r(e);let n=_b(e,"src");try{wz(n).isDirectory()&&r(n)}catch{}return{js:t,py:a}}function hl(e=process.cwd()){let t=dl(e,Wz),a=dl(e,Cz);if(t&&!a)return{language:"javascript",reason:`found a JS/TS project marker in ${e}`};if(a&&!t)return{language:"python",reason:`found a Python project marker in ${e}`};let{js:r,py:n}=Lne(e);return r>0&&n===0?{language:"javascript",reason:`found ${r} JS/TS source file(s) and no Python in ${e}`}:n>0&&r===0?{language:"python",reason:`found ${n} Python source file(s) and no JS/TS in ${e}`}:r>0&&n>0?r>=n*3?{language:"javascript",reason:`JS/TS files dominate (${r} vs ${n} Python) in ${e}`}:n>=r*3?{language:"python",reason:`Python files dominate (${n} vs ${r} JS/TS) in ${e}`}:{language:null,reason:`mixed JS/TS (${r}) and Python (${n}) in ${e}`}:t&&a?{language:null,reason:`both JS and Python project markers present in ${e}`}:{language:null,reason:`no JS or Python markers or source files found in ${e}`}}import{existsSync as Ab,readdirSync as Fne,statSync as Bne}from"node:fs";import{join as Mb,resolve as Pb}from"node:path";var Ei=null;function Az(e){Ei=Pb(e)}var Ub=e=>Ab(Mb(e,"fabric.yaml"))||Ab(Mb(e,"rayfin","rayfin.yml")),$i=e=>_z(e);function Hne(e){let t;try{t=Fne(e)}catch{return[]}return t.filter(a=>a!=="node_modules"&&!a.startsWith(".")).map(a=>Mb(e,a)).filter(a=>{try{return Bne(a).isDirectory()}catch{return!1}})}function pl(e,t,a=process.cwd()){if(e)return{dir:Pb(a,e),reason:"the project_dir given"};if(Ei&&Ab(Ei)&&t(Ei))return{dir:Ei,reason:`the folder setup_fabric_app used (${Ei})`};let r=Pb(a);if(t(r))return{dir:r,reason:`the working directory (${r})`};let n=Hne(r).filter(t);return n.length===1?{dir:n[0],reason:`the one project folder inside ${r} (${n[0]})`}:n.length>1?{dir:null,reason:`${n.length} project folders inside ${r} (${n.map(i=>i.slice(r.length+1)).join(", ")}) - pass project_dir to choose one`}:{dir:null,reason:`no project in ${r} or the folders directly inside it`}}import{existsSync as Gne,readFileSync as ji,readdirSync as Rz,statSync as Ez}from"node:fs";import{basename as ml,dirname as $z,join as z1,relative as Kne,resolve as Oi,sep as Xne}from"node:path";import{fileURLToPath as Vne}from"node:url";import{Worker as Zne}from"node:worker_threads";var Mz={width:800,height:600},Pz=/^__.*__$/;function Ib(e,t){let a=e.search(new RegExp(`export const ${t}\\b`));if(a<0)return;let r=e.indexOf(" = ",a);if(r<0)return;let n=e.slice(r+3);for(let i=n.indexOf(`;
280
282
  `);i>=0;i=n.indexOf(`;
@@ -299,7 +301,7 @@ If these rows are a sample of a larger result, pass the whole result (every row
299
301
 
300
302
  `+_re(e,t)}function _re(e,t){if(e==="chart-shapes")return iR(oR(t,"CHART-SHAPES.md"),"utf-8");if(e==="settings")return rR();let a=iR(oR(t,"SKILL.md"),"utf-8");if(e==="all")return a.replace(/^---[\s\S]*?\n---\s*\n/,"");let{preamble:r,byLabel:n}=wre(a),i=(n.get("3")??"").split(/\n(?=### Blazor)/)[0].trim();return[r,n.get("0"),n.get("2"),i,n.get("3a"),n.get("4")].filter(o=>!!o&&o.length>0).join(`
301
303
 
302
- `)}import{createServer as S4e}from"node:http";var uR="x-hono-already-sent";import{STATUS_CODES as Hme,ServerResponse as Are,createServer as Gme}from"node:http";import{Http2ServerRequest as Wa,constants as Mre}from"node:http2";import{Readable as dR}from"node:stream";var cR=e=>((...t)=>{if(typeof t[0]=="function"){let[a,r]=t;return async function(i,o){let s=await e(i,await a(i),r);if(s)return s;await o()}}else{let[a,r,n]=t;return(async()=>{let i=await e(a,r,n);if(!i)throw new Error("Failed to upgrade WebSocket");return i})()}});var Z3=class extends Error{constructor(e,t){super(e,t),this.name="RequestError"}},Pre=new Set(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","server","user-agent"]),Ure=/^[!#$%&'*+\-.^_`|~\dA-Za-z]+$/,Sl=e=>e===9||e===10||e===13||e===32,hR=e=>{if(!Sl(e.charCodeAt(0))&&!Sl(e.charCodeAt(e.length-1)))return e;let t=0,a=e.length;for(;t<a&&Sl(e.charCodeAt(t));)t++;for(;a>t&&Sl(e.charCodeAt(a-1));)a--;return e.slice(t,a)},pR=/[\0\r\n]/,Hb=globalThis.Headers,vR=(e,t=Hb)=>{let a=new t;for(let r=0;r<e.length;r+=2){let n=e[r];n.startsWith(":")||a.append(n,e[r+1])}return a},Gb=class{#e;#t;#n;#r;constructor(e){this.#e=e,e instanceof Wa&&(this.#t=e.rawHeaders.slice())}get#i(){return this.#t??=this.#e.rawHeaders.slice()}get#a(){return this.#n||(this.#n=vR(this.#i),this.#t=void 0),this.#n}#o(e){if(typeof e=="string"){if(!Ure.test(e))throw new TypeError(`Invalid header name: ${e}`);return e.toLowerCase()}}#s(e){let t=this.#e instanceof Wa?void 0:this.#e.headers;if(!t||Pre.has(e)||e==="set-cookie"||e==="__proto__")return;if(!Object.hasOwn(t,e))return null;let a=t[e];if(typeof a=="string"){let r=hR(a);return pR.test(r)?void 0:r}}#l(e,t){let a=t==="cookie"?"; ":", ",r=null;for(let n=0;n<e.length;n+=2){let i=e[n];if(i.length===t.length&&i.toLowerCase()===t){let o=hR(e[n+1]);if(pR.test(o)){this.#r=!0;return}r=r===null?o:r+a+o}}return r}append(e,t){this.#a.append(e,t)}delete(e){this.#a.delete(e)}get(e){let t=this.#o(e);if(t&&!this.#n&&!this.#r){let a=this.#s(t);if(a!==void 0)return a;let r=this.#l(this.#i,t);if(r!==void 0)return r}return this.#a.get(e)}has(e){let t=this.#o(e);if(t&&!this.#n&&!this.#r){let a=this.#s(t);if(a!==void 0)return a!==null;let r=this.#l(this.#i,t);if(r!==void 0)return r!==null}return this.#a.has(e)}set(e,t){this.#a.set(e,t)}getSetCookie(){return this.#a.getSetCookie()}keys(){return this.#a.keys()}values(){return this.#a.values()}entries(){return this.#a.entries()}forEach(e,t){this.#a.forEach((a,r)=>{e.call(t,a,r,this)})}[Symbol.iterator](){return this.entries()}};Object.defineProperty(Gb.prototype,Symbol.for("nodejs.util.inspect.custom"),{value:function(e,t,a){return`Headers (lightweight) ${a(Object.fromEntries(this),{...t,depth:e==null?null:e-1})}`}});Object.setPrototypeOf(Gb.prototype,Hb.prototype);var SR=e=>globalThis.Headers===Hb?new Gb(e):vR(e.rawHeaders,globalThis.Headers),Ire=/^\/[!#$&-;=?-\[\]_a-z~]*$/,Tre=/\/\.\.?(?:[/?#]|$)/,xre=/^[a-z0-9._-]+(?::(?:[1-5]\d{3,4}|[6-9]\d{3}))?$/,zre=(e,t,a)=>{let r=`${e}://${t}${a}`;if(xre.test(t)){if(a.length===0)return r+"/";if(a.charCodeAt(0)!==47)throw new Z3("Invalid URL");return!Ire.test(a)||Tre.test(a)?new URL(r).href:r}else{let n=new URL(r);if(n.hostname.length!==t.length&&n.hostname!==(t.includes(":")?t.replace(/:\d+$/,""):t).toLowerCase())throw new Z3("Invalid host header");return n.href}},Rre=e=>e instanceof Z3?e:new Z3(e.message,{cause:e}),Ere=global.Request,Fi=class extends Ere{constructor(e,t){if(typeof e=="object"&&Nn in e){let a=t!==void 0&&"body"in t&&t.body!=null;if(e[Ca]&&!a)throw new TypeError("Cannot construct a Request with a Request object that has already been used.");e=e[Nn]()}typeof t?.body?.getReader<"u"&&(t.duplex??="half"),super(e,t)}},kR=Symbol("wrapBodyStream"),$re=new Set(["latin1","binary","hex","base64","base64url"]),jre=e=>e===null||$re.has(e),Eb=Symbol("bodyBufferedBeforeDisconnect"),jb=Symbol("bodyBufferedLengthBeforeDisconnect"),wR=(e,t)=>Buffer.isBuffer(e)?e:Buffer.from(e,t??"utf8"),Kb=e=>!(e instanceof Wa)&&!!e.complete&&!!e.readableAborted&&typeof e.read=="function"&&jre(e.readableEncoding),mR=e=>{if(e.readableDidRead||!Kb(e))return;let t=e;t[jb]??=e.readableLength},wl=(e,t)=>{if(e.readableDidRead&&!t||!Kb(e))return;let a=e;if(a[Eb]!==void 0)return a[Eb];let r,n=e.errored;if(n&&n.code!=="ECONNRESET")r=n;else if(a[jb]!==void 0&&e.readableLength!==a[jb])r=Wl();else{let i=t??[],o=e.read();o!==null&&i.push(wR(o,e.readableEncoding));let s=i.length===1?i[0]:Buffer.concat(i);r=s;let l=e.headers["content-length"];if(typeof l=="string"&&/^\d+$/.test(l)){let u=Number(l);Number.isSafeInteger(u)&&s.length!==u&&(r=Wl())}}return a[Eb]=r,r},gR=(e,t)=>{if(t instanceof Error){e.error(t);return}t.length>0&&e.enqueue(t),e.close()},Ore=(e,t,a,r,n)=>{let i={method:e,headers:a,signal:n.signal};if(e==="TRACE"){i.method="GET";let o=new Fi(t,i);return Object.defineProperty(o,"method",{get(){return"TRACE"}}),o}if(!(e==="GET"||e==="HEAD"))if("rawBody"in r&&r.rawBody instanceof Buffer)i.body=new ReadableStream({start(o){o.enqueue(r.rawBody),o.close()}});else if(r[kR]){let o;i.body=new ReadableStream({async pull(s){try{if(!o){let c=wl(r);if(c!==void 0){gR(s,c);return}}o||=dR.toWeb(r).getReader();let{done:l,value:u}=await o.read();l?s.close():s.enqueue(u)}catch(l){s.error(l)}}})}else{let o=wl(r);o!==void 0?i.body=new ReadableStream({start(s){gR(s,o)}}):i.body=dR.toWeb(r)}return new Fi(t,i)},Nn=Symbol("getRequestCache"),ka=Symbol("requestCache"),Bi=Symbol("incomingKey"),t7=Symbol("urlKey"),WR=Symbol("methodKey"),CR=Symbol("headersKey"),Q8=Symbol("abortControllerKey"),Ob=Symbol("getAbortController"),Db=Symbol("abortRequest"),bn=Symbol("bodyBuffer"),kl=Symbol("bodyReadPromise"),Ca=Symbol("bodyConsumedDirectly"),fR=Symbol("bodyLockReader"),e7=Symbol("abortReason"),Wl=()=>new TypeError("Body is unusable"),a7=()=>Promise.reject(Wl()),Dre=new TextDecoder,Lre=e=>{if(e[Ca])return a7();e[Ca]=!0},Fre=e=>e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength),Bre=e=>(e[CR]||=SR(e[Bi])).get("content-type")||"",Hre=/^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/,Gre=e=>{if(typeof e!="string"||e.length===0)return"GET";switch(e){case"DELETE":case"GET":case"HEAD":case"OPTIONS":case"PATCH":case"POST":case"PUT":case"QUERY":return e}let t=e.toUpperCase();switch(t){case"DELETE":case"GET":case"HEAD":case"OPTIONS":case"POST":case"PUT":return t;default:return e}},Kre=e=>{if(!Hre.test(e))return new TypeError(`'${e}' is not a valid HTTP method.`);let t=e.toUpperCase();if(t==="CONNECT"||t==="TRACK"||t==="TRACE"&&e!=="TRACE")return new TypeError(`'${e}' HTTP method is unsupported.`)},Xb=(e,t,a)=>{if(e[Ca])return a7();let r=e.method;if(r==="GET"||r==="HEAD")return e[Nn]()[t]();let n=Kre(r);if(n)return Promise.reject(n);if(e[ka]&&r!=="TRACE")return e[ka][t]();let i=Lre(e);if(i)return i;let o=Xre(e);if(o){let s=Promise.resolve(a(o,e));return e[bn]=void 0,s}return Vre(e).then(s=>{let l=a(s,e);return e[bn]=void 0,l})},Xre=e=>{let t=e[Bi];if("rawBody"in t&&t.rawBody instanceof Buffer)return t.rawBody},yR=(e,t)=>{if(t.errored)return t.errored;let a=e[e7];return a!==void 0?a instanceof Error?a:new Error(String(a)):new Error("Client connection prematurely closed.")},Vre=e=>{if(e[bn])return Promise.resolve(e[bn]);if(e[kl])return e[kl];let t=e[Bi];if(t.readableDidRead)return a7();let a=wl(t);if(a!==void 0)return a instanceof Error?Promise.reject(a):(e[bn]=a,Promise.resolve(a));let r=new Promise((n,i)=>{let o=[],s=!1,l=g=>{s||(s=!0,m(),g())},u=g=>{let f=t.errored??g;return!Kb(t)||f&&f.code!=="ECONNRESET"?!1:(l(()=>{let y=wl(t,o);y instanceof Error?i(y):y===void 0?i(g??yR(e,t)):(e[bn]=y,n(y))}),!0)},c=g=>{o.push(wR(g,t.readableEncoding))},d=()=>{l(()=>{let g=o.length===1?o[0]:Buffer.concat(o);e[bn]=g,n(g)})},h=g=>{u(g)||l(()=>{i(g)})},p=()=>{if(t.readableEnded){d();return}u()||l(()=>{i(yR(e,t))})},m=()=>{t.off("data",c),t.off("end",d),t.off("error",h),t.off("close",p),e[kl]=void 0};t.on("data",c),t.on("end",d),t.on("error",h),t.on("close",p),queueMicrotask(()=>{s||(t.readableEnded?d():t.errored?h(t.errored):t.destroyed&&p())})});return e[kl]=r,r},J3={get method(){return this[WR]},get url(){return this[t7]},get headers(){return this[CR]||=SR(this[Bi])},[Db](e){this[e7]===void 0&&(this[e7]=e);let t=this[Q8];t&&!t.signal.aborted&&t.abort(e)},[Ob](){return this[Q8]||=new AbortController,this[e7]!==void 0&&!this[Q8].signal.aborted&&this[Q8].abort(this[e7]),this[Q8]},[Nn](){let e=this[Ob]();if(this[ka])return this[ka];let t=this.method;if(this[Ca]&&!(t==="GET"||t==="HEAD")){this[bn]=void 0;let a={method:t==="TRACE"?"GET":t,headers:this.headers,signal:e.signal};t!=="TRACE"&&(a.body=new ReadableStream({start(n){n.close()}}),a.duplex="half");let r=new Fi(this[t7],a);return t==="TRACE"&&Object.defineProperty(r,"method",{get(){return"TRACE"}}),this[ka]=r}return this[ka]=Ore(this.method,this[t7],this.headers,this[Bi],e)},get body(){if(!this[Ca])return this[Nn]().body;let e=this[Nn]();return!this[fR]&&e.body&&(this[fR]=e.body.getReader()),e.body},get bodyUsed(){return this[Ca]?!0:this[ka]?this[ka].bodyUsed:!1}};Object.defineProperty(J3,"signal",{get(){return this[Ob]().signal}});["cache","credentials","destination","integrity","mode","redirect","referrer","referrerPolicy","keepalive"].forEach(e=>{Object.defineProperty(J3,e,{get(){return this[Nn]()[e]}})});["clone","formData"].forEach(e=>{Object.defineProperty(J3,e,{value:function(){if(this[Ca]){if(e==="clone")throw Wl();return a7()}return this[Nn]()[e]()}})});Object.defineProperty(J3,"text",{value:function(){return Xb(this,"text",e=>Dre.decode(e))}});Object.defineProperty(J3,"arrayBuffer",{value:function(){return Xb(this,"arrayBuffer",e=>Fre(e))}});Object.defineProperty(J3,"blob",{value:function(){return Xb(this,"blob",(e,t)=>{let a=Bre(t),r=a?{headers:{"content-type":a}}:void 0;return new Response(e,r).blob()})}});Object.defineProperty(J3,"json",{value:function(){return this[Ca]?a7():this.text().then(JSON.parse)}});Object.defineProperty(J3,Symbol.for("nodejs.util.inspect.custom"),{value:function(e,t,a){return`Request (lightweight) ${a({method:this.method,url:this.url,headers:this.headers,nativeRequest:this[ka]},{...t,depth:e==null?null:e-1})}`}});Object.setPrototypeOf(J3,Fi.prototype);var Zre=(e,t)=>{let a=Object.create(J3);a[Bi]=e,a[WR]=Gre(e.method);let r=e.url||"";if(r[0]!=="/"&&(r.startsWith("http://")||r.startsWith("https://"))){if(e instanceof Wa)throw new Z3("Absolute URL for :path is not allowed in HTTP/2");try{a[t7]=new URL(r).href}catch(o){throw new Z3("Invalid absolute URL",{cause:o})}return a}let n=(e instanceof Wa?e.authority:e.headers.host)||t;if(!n)throw new Z3("Missing host header");let i;if(e instanceof Wa){if(i=e.scheme,!(i==="http"||i==="https"))throw new Z3("Unsupported scheme")}else i=e.socket&&e.socket.encrypted?"https":"http";try{a[t7]=zre(i,n,r)}catch(o){throw o instanceof Z3?o:new Z3("Invalid URL",{cause:o})}return a},vr="text/plain; charset=UTF-8",Lb=Symbol("responseCache"),Li=Symbol("getResponseCache"),wa=Symbol("cache"),Cl=global.Response,q3=class _R{#e;#t;[Li](){let t=this[wa],a=t&&t[2]instanceof Headers?t[2]:void 0;return delete this[wa],this[Lb]||=new Cl(this.#e,a?{status:this.#t?.status,statusText:this.#t?.statusText,headers:a}:this.#t)}constructor(t,a){let r;if(this.#e=t,a instanceof Cl){let n=a[Lb];if(n){this.#t=n,this[Li]();return}this.#t=a instanceof _R?a.#t:a,r=new Headers(a.headers)}else this.#t=a;(t==null||typeof t=="string"||typeof t?.getReader<"u"||t instanceof Blob||t instanceof Uint8Array)&&(this[wa]=[a?.status||200,t??null,r||a?.headers])}get headers(){let t=this[wa];return t?(t[2]instanceof Headers||(t[2]=new Headers(t[2]||(t[1]===null?void 0:{"content-type":vr}))),t[2]):this[Li]().headers}get status(){return this[wa]?.[0]??this[Li]().status}get ok(){let t=this.status;return t>=200&&t<300}};["body","bodyUsed","redirected","statusText","trailers","type","url"].forEach(e=>{Object.defineProperty(q3.prototype,e,{get(){return this[Li]()[e]}})});["arrayBuffer","blob","clone","formData","json","text"].forEach(e=>{Object.defineProperty(q3.prototype,e,{value:function(){return this[Li]()[e]()}})});Object.defineProperty(q3.prototype,Symbol.for("nodejs.util.inspect.custom"),{value:function(e,t,a){return`Response (lightweight) ${a({status:this.status,headers:this.headers,ok:this.ok,nativeResponse:this[Lb]},{...t,depth:e==null?null:e-1})}`}});Object.setPrototypeOf(q3,Cl);Object.setPrototypeOf(q3.prototype,Cl.prototype);var qre=/^https?:\/\/[!#-;=?-[\]_a-z~A-Z]+$/,Jre=e=>e instanceof URL?e.href:qre.test(e)?e:new URL(e).href,Yre=new Set([301,302,303,307,308]);Object.defineProperty(q3,"redirect",{value:function(t,a=302){if(!Yre.has(a))throw new RangeError("Invalid status code");return new q3(null,{status:a,headers:{location:Jre(t)}})},writable:!0,configurable:!0});Object.defineProperty(q3,"json",{value:function(t,a){let r=JSON.stringify(t);if(r===void 0)throw new TypeError("The data is not JSON serializable");let n=a?.headers,i;return n?(i=new Headers(n),i.has("content-type")||i.set("content-type","application/json")):i={"content-type":"application/json"},new q3(r,{status:a?.status??200,statusText:a?.statusText,headers:i})},writable:!0,configurable:!0});async function Qre(e){return Promise.race([e,Promise.resolve().then(()=>Promise.resolve(void 0))])}function AR(e,t,a){let r=s=>{e.cancel(s).catch(()=>{})};return t.on("close",r),t.on("error",r),(a??e.read()).then(o,n),e.closed.finally(()=>{t.off("close",r),t.off("error",r)});function n(s){s&&t.destroy(s)}function i(){e.read().then(o,n)}function o({done:s,value:l}){try{if(s)t.end();else if(!t.write(l))t.once("drain",i);else return e.read().then(o,n)}catch(u){n(u)}}}function bR(e,t){if(e.locked)throw new TypeError("ReadableStream is locked.");return t.destroyed?void 0:AR(e.getReader(),t)}var Fb=(e,t)=>{let a={};if(e instanceof Headers||(e=new Headers(e??void 0)),e.has("set-cookie")){let r=[];for(let[n,i]of e)n==="set-cookie"?r.push(i):a[n]=i;r.length>0&&(a["set-cookie"]=r)}else for(let[r,n]of e)a[r]=n;return t&&(a["content-type"]??=t),a},_l=Symbol("outgoingEnded"),NR=Symbol("incomingDraining"),e4e=500,t4e=64*1024*1024,MR=e=>{let t=e;if(e.destroyed||t[NR])return;if(t[NR]=!0,e instanceof Wa){try{e.stream?.close?.(Mre.NGHTTP2_NO_ERROR)}catch{}return}let a=0,r=()=>{clearTimeout(i),e.off("data",o),e.off("end",r),e.off("error",r)},n=()=>{r();let s=e.socket;s&&!s.destroyed&&(typeof s.destroySoon=="function"?s.destroySoon():typeof s.destroy=="function"&&s.destroy())},i=setTimeout(n,e4e);i.unref?.();let o=s=>{a+=s.length,a>t4e&&n()};e.on("data",o),e.on("end",r),e.on("error",r),e.resume()},a4e=(e,t,a,r)=>()=>{t.errored?(mR(t),e[Db](t.errored.toString())):(!a.writableFinished||t instanceof Wa&&t.aborted)&&(mR(t),e[Db]("Client connection prematurely closed.")),r&&!t.readableEnded&&setTimeout(()=>{t.readableEnded||setTimeout(()=>{MR(t)})})},n4e=e=>{if(!(wa in e))return!1;let t=e[wa][1];return t===null||typeof t=="string"||t instanceof Uint8Array},r4e=()=>new Response(null,{status:400}),PR=e=>new Response(null,{status:e instanceof Error&&(e.name==="TimeoutError"||e.constructor.name==="TimeoutError")?504:500}),Al=(e,t)=>{let a=e instanceof Error?e:new Error("unknown error",{cause:e});a.code==="ERR_STREAM_PREMATURE_CLOSE"?console.info("The user aborted a request."):(console.error(e),t.headersSent||(t instanceof Are&&(t._contentLength=null),t.writeHead(500,{"Content-Type":"text/plain"})),t.end(`Error: ${a.message}`),t.destroy(a))},Bb=e=>{"flushHeaders"in e&&e.writable&&e.flushHeaders()},UR=(e,t,a)=>{let r=e;return r._contentLength===null&&r._hasBody&&r.useChunkedEncodingByDefault&&!r._removedContLen&&t>=200&&t!==204&&t!==304&&!e.hasHeader("content-length")&&!e.hasHeader("transfer-encoding")&&!e.hasHeader("trailer")?(r._contentLength=a,!0):!1},$b=(e,t,a)=>{UR(e,t,a)?e.writeHead(t,{"Content-Type":vr}):e.writeHead(t,{"Content-Type":vr,"Content-Length":a})},IR=async(e,t)=>{let[a,r,n]=e[wa];if(!n){r===null?(t.writeHead(a),t.end()):typeof r=="string"?($b(t,a,Buffer.byteLength(r)),t.end(r)):r instanceof Uint8Array?($b(t,a,r.byteLength),t.end(r)):r instanceof Blob?($b(t,a,r.size),t.end(new Uint8Array(await r.arrayBuffer()))):(t.writeHead(a,{"Content-Type":vr}),Bb(t),await bR(r,t)?.catch(l=>Al(l,t))),t[_l]?.();return}let i=!1,o=!1,s=!0;if(n instanceof Headers)i=n.has("content-length"),n=Fb(n,r===null?void 0:vr);else if(Array.isArray(n)){let l=new Headers(n);i=l.has("content-length"),n=Fb(l,r===null?void 0:vr)}else{o=!0;for(let l in n){if(l.length===14&&l.toLowerCase()==="content-length"){i=!0;break}(l.length===17&&l.toLowerCase()==="transfer-encoding"||l.length===7&&l.toLowerCase()==="trailer")&&(s=!1)}}if(!i){let l;typeof r=="string"?l=Buffer.byteLength(r):r instanceof Uint8Array?l=r.byteLength:r instanceof Blob&&(l=r.size),l!==void 0&&(!o||!s||!UR(t,a,l))&&(o&&(n={...n}),n["Content-Length"]=l)}t.writeHead(a,n),r==null?t.end():typeof r=="string"||r instanceof Uint8Array?t.end(r):r instanceof Blob?t.end(new Uint8Array(await r.arrayBuffer())):(Bb(t),await bR(r,t)?.catch(l=>Al(l,t))),t[_l]?.()},TR=e=>typeof e.then=="function",i4e=async(e,t,a={})=>{if(TR(e))if(a.errorHandler)try{e=await e}catch(n){let i=await a.errorHandler(n);if(!i)return;e=i}else e=await e.catch(PR);if(wa in e)return IR(e,t);let r=Fb(e.headers,e.body===null?void 0:vr);if(e.body){let n=e.body.getReader(),i=[],o=!1,s;if(r["transfer-encoding"]!=="chunked"){let l=2;for(let u=0;u<l;u++){s||=n.read();let c=await Qre(s).catch(d=>{console.error(d),o=!0});if(!c){if(u===1){await new Promise(d=>setTimeout(d)),l=3;continue}break}if(s=void 0,c.value&&i.push(c.value),c.done){o=!0;break}}o&&!("content-length"in r)&&(r["content-length"]=i.reduce((u,c)=>u+c.length,0))}t.writeHead(e.status,r),i.forEach(l=>{t.write(l)}),o?t.end():(i.length===0&&Bb(t),await AR(n,t,s))}else r[uR]||(t.writeHead(e.status,r),t.end());t[_l]?.()},Vb=(e,t={})=>{let a=t.autoCleanupIncoming??!0;return t.overrideGlobalObjects!==!1&&global.Request!==Fi&&(Object.defineProperty(global,"Request",{value:Fi}),Object.defineProperty(global,"Response",{value:q3})),async(r,n)=>{let i,o,s=!1,l=!1,u=()=>{!o||l||(l=!0,n.on("close",a4e(o,r,n,s)))};try{if(o=Zre(r,t.hostname),s=a&&!(r.method==="GET"||r.method==="HEAD"),s&&(r[kR]=!0,r instanceof Wa&&(n[_l]=()=>{r.readableEnded||setTimeout(()=>{r.readableEnded||setTimeout(()=>{r.destroy(),n.destroy()})})})),i=e(o,{incoming:r,outgoing:n}),!TR(i)&&n4e(i))return s&&!r.readableEnded&&n.once("finish",()=>{r.readableEnded||MR(r)}),IR(i,n);u()}catch(c){if(i)return Al(c,n);if(t.errorHandler){if(u(),i=await t.errorHandler(o?c:Rre(c)),!i)return}else o?i=PR(c):i=r4e()}try{return await i4e(i,n,t)}catch(c){return Al(c,n)}}},o4e=globalThis.CloseEvent??class extends Event{#e;constructor(e,t={}){super(e,t),this.#e=t}get wasClean(){return this.#e.wasClean??!1}get code(){return this.#e.code??0}get reason(){return this.#e.reason??""}},s4e=globalThis.ErrorEvent??class extends Event{#e;constructor(e,t={}){super(e,t),this.#e=t}get message(){return this.#e.message??""}get filename(){return this.#e.filename??""}get lineno(){return this.#e.lineno??0}get colno(){return this.#e.colno??0}get error(){return this.#e.error??null}},l4e=()=>Symbol("connection"),u4e=Symbol("CONNECTION_SYMBOL_KEY"),c4e=Symbol("WAIT_FOR_WEBSOCKET_SYMBOL");var Zme=cR(async(e,t,a)=>{if(e.req.header("upgrade")?.toLowerCase()!=="websocket")return;let r=e.env,n=r[c4e];if(!n||!r.incoming)return new Response(null,{status:500});let i=l4e();return r[u4e]=i,(async()=>{let o;try{o=await n(r.incoming,i)}catch{return}let s=[],l=(d,h)=>{s.push([d,h])};o.on("message",l);let u={binaryType:"arraybuffer",close(d,h){o.close(d,h)},protocol:o.protocol,raw:o,get readyState(){return o.readyState},send(d,h){o.send(d,{compress:h?.compress})},url:new URL(e.req.url)};try{t?.onOpen?.(new Event("open"),u)}catch(d){(a?.onError??console.error)(d)}let c=(d,h)=>{let p=Array.isArray(d)?d:[d];for(let m of p)try{t?.onMessage?.(new MessageEvent("message",{data:h?m instanceof ArrayBuffer?m:m.buffer.slice(m.byteOffset,m.byteOffset+m.byteLength):typeof m=="string"?m:Buffer.from(m).toString("utf-8")}),u)}catch(g){(a?.onError??console.error)(g)}};o.off("message",l);for(let d of s)c(...d);o.on("message",(d,h)=>{c(d,h)}),o.on("close",(d,h)=>{try{t?.onClose?.(new o4e("close",{code:d,reason:h.toString()}),u)}catch(p){(a?.onError??console.error)(p)}}),o.on("error",d=>{try{t?.onError?.(new s4e("error",{error:d}),u)}catch(h){(a?.onError??console.error)(h)}})})(),new Response});var $R=Vi(ER(),1);function N4e(e){if(e)try{return $R.default.parse(e).type}catch{let t=(e.split(";",1)[0]??"").trim().toLowerCase();return t===""||e.slice(t.length).includes(",")?void 0:t}}function jR(e){return e==="application/json"?!0:N4e(e)==="application/json"}function OR(e){return`Payload Too Large: Request body must not exceed ${e} bytes`}function DR(e){if(e===void 0)return 4194304;if(typeof e!="number"||!Number.isFinite(e)||e<=0)throw new RangeError(`maxRequestBodySize must be a positive number of bytes, got ${String(e)}`);return e}async function LR(e,t=4194304){if(Number(e.headers.get("content-length"))>t)return{tooLarge:!0};if(e.body===null)return{tooLarge:!1,text:""};let a=e.body.getReader(),r=new TextDecoder,n=0,i="";try{for(;;){let{done:o,value:s}=await a.read();if(o)break;if(n+=s.byteLength,n>t)return{tooLarge:!0};i+=r.decode(s,{stream:!0})}}finally{a.releaseLock()}return{tooLarge:!1,text:i+r.decode()}}function FR(e,t){if(!Number.isFinite(e)||e<1)return;let a=setInterval(t,Math.min(e,2147483647));return a.unref?.(),a}var Ml=class{constructor(t={}){this._started=!1,this._hasHandledRequest=!1,this._streamMapping=new Map,this._requestToStreamMapping=new Map,this._resumableStreams=new Set,this._requestResponseMap=new Map,this._initialized=!1,this._enableJsonResponse=!1,this._standaloneSseStreamId="_GET_stream",this._closed=!1,this.sessionIdGenerator=t.sessionIdGenerator,this._enableJsonResponse=t.enableJsonResponse??!1,this._eventStore=t.eventStore,this._onsessioninitialized=t.onsessioninitialized,this._onsessionclosed=t.onsessionclosed,this._allowedHosts=t.allowedHosts,this._allowedOrigins=t.allowedOrigins,this._enableDnsRebindingProtection=t.enableDnsRebindingProtection??!1,this._retryInterval=t.retryInterval,this._keepAliveMs=t.keepAliveMs??15e3,this._maxRequestBodySize=DR(t.maxRequestBodySize)}startKeepAlive(t,a){if(this._closed)return;let r=FR(this._keepAliveMs,()=>{try{t.enqueue(a.encode(`: keepalive
304
+ `)}import{createServer as S4e}from"node:http";var uR="x-hono-already-sent";import{STATUS_CODES as Kme,ServerResponse as Are,createServer as Xme}from"node:http";import{Http2ServerRequest as Wa,constants as Mre}from"node:http2";import{Readable as dR}from"node:stream";var cR=e=>((...t)=>{if(typeof t[0]=="function"){let[a,r]=t;return async function(i,o){let s=await e(i,await a(i),r);if(s)return s;await o()}}else{let[a,r,n]=t;return(async()=>{let i=await e(a,r,n);if(!i)throw new Error("Failed to upgrade WebSocket");return i})()}});var Z3=class extends Error{constructor(e,t){super(e,t),this.name="RequestError"}},Pre=new Set(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","server","user-agent"]),Ure=/^[!#$%&'*+\-.^_`|~\dA-Za-z]+$/,Sl=e=>e===9||e===10||e===13||e===32,hR=e=>{if(!Sl(e.charCodeAt(0))&&!Sl(e.charCodeAt(e.length-1)))return e;let t=0,a=e.length;for(;t<a&&Sl(e.charCodeAt(t));)t++;for(;a>t&&Sl(e.charCodeAt(a-1));)a--;return e.slice(t,a)},pR=/[\0\r\n]/,Hb=globalThis.Headers,vR=(e,t=Hb)=>{let a=new t;for(let r=0;r<e.length;r+=2){let n=e[r];n.startsWith(":")||a.append(n,e[r+1])}return a},Gb=class{#e;#t;#n;#r;constructor(e){this.#e=e,e instanceof Wa&&(this.#t=e.rawHeaders.slice())}get#i(){return this.#t??=this.#e.rawHeaders.slice()}get#a(){return this.#n||(this.#n=vR(this.#i),this.#t=void 0),this.#n}#o(e){if(typeof e=="string"){if(!Ure.test(e))throw new TypeError(`Invalid header name: ${e}`);return e.toLowerCase()}}#s(e){let t=this.#e instanceof Wa?void 0:this.#e.headers;if(!t||Pre.has(e)||e==="set-cookie"||e==="__proto__")return;if(!Object.hasOwn(t,e))return null;let a=t[e];if(typeof a=="string"){let r=hR(a);return pR.test(r)?void 0:r}}#l(e,t){let a=t==="cookie"?"; ":", ",r=null;for(let n=0;n<e.length;n+=2){let i=e[n];if(i.length===t.length&&i.toLowerCase()===t){let o=hR(e[n+1]);if(pR.test(o)){this.#r=!0;return}r=r===null?o:r+a+o}}return r}append(e,t){this.#a.append(e,t)}delete(e){this.#a.delete(e)}get(e){let t=this.#o(e);if(t&&!this.#n&&!this.#r){let a=this.#s(t);if(a!==void 0)return a;let r=this.#l(this.#i,t);if(r!==void 0)return r}return this.#a.get(e)}has(e){let t=this.#o(e);if(t&&!this.#n&&!this.#r){let a=this.#s(t);if(a!==void 0)return a!==null;let r=this.#l(this.#i,t);if(r!==void 0)return r!==null}return this.#a.has(e)}set(e,t){this.#a.set(e,t)}getSetCookie(){return this.#a.getSetCookie()}keys(){return this.#a.keys()}values(){return this.#a.values()}entries(){return this.#a.entries()}forEach(e,t){this.#a.forEach((a,r)=>{e.call(t,a,r,this)})}[Symbol.iterator](){return this.entries()}};Object.defineProperty(Gb.prototype,Symbol.for("nodejs.util.inspect.custom"),{value:function(e,t,a){return`Headers (lightweight) ${a(Object.fromEntries(this),{...t,depth:e==null?null:e-1})}`}});Object.setPrototypeOf(Gb.prototype,Hb.prototype);var SR=e=>globalThis.Headers===Hb?new Gb(e):vR(e.rawHeaders,globalThis.Headers),Ire=/^\/[!#$&-;=?-\[\]_a-z~]*$/,Tre=/\/\.\.?(?:[/?#]|$)/,xre=/^[a-z0-9._-]+(?::(?:[1-5]\d{3,4}|[6-9]\d{3}))?$/,zre=(e,t,a)=>{let r=`${e}://${t}${a}`;if(xre.test(t)){if(a.length===0)return r+"/";if(a.charCodeAt(0)!==47)throw new Z3("Invalid URL");return!Ire.test(a)||Tre.test(a)?new URL(r).href:r}else{let n=new URL(r);if(n.hostname.length!==t.length&&n.hostname!==(t.includes(":")?t.replace(/:\d+$/,""):t).toLowerCase())throw new Z3("Invalid host header");return n.href}},Rre=e=>e instanceof Z3?e:new Z3(e.message,{cause:e}),Ere=global.Request,Fi=class extends Ere{constructor(e,t){if(typeof e=="object"&&Nn in e){let a=t!==void 0&&"body"in t&&t.body!=null;if(e[Ca]&&!a)throw new TypeError("Cannot construct a Request with a Request object that has already been used.");e=e[Nn]()}typeof t?.body?.getReader<"u"&&(t.duplex??="half"),super(e,t)}},kR=Symbol("wrapBodyStream"),$re=new Set(["latin1","binary","hex","base64","base64url"]),jre=e=>e===null||$re.has(e),Eb=Symbol("bodyBufferedBeforeDisconnect"),jb=Symbol("bodyBufferedLengthBeforeDisconnect"),wR=(e,t)=>Buffer.isBuffer(e)?e:Buffer.from(e,t??"utf8"),Kb=e=>!(e instanceof Wa)&&!!e.complete&&!!e.readableAborted&&typeof e.read=="function"&&jre(e.readableEncoding),mR=e=>{if(e.readableDidRead||!Kb(e))return;let t=e;t[jb]??=e.readableLength},wl=(e,t)=>{if(e.readableDidRead&&!t||!Kb(e))return;let a=e;if(a[Eb]!==void 0)return a[Eb];let r,n=e.errored;if(n&&n.code!=="ECONNRESET")r=n;else if(a[jb]!==void 0&&e.readableLength!==a[jb])r=Wl();else{let i=t??[],o=e.read();o!==null&&i.push(wR(o,e.readableEncoding));let s=i.length===1?i[0]:Buffer.concat(i);r=s;let l=e.headers["content-length"];if(typeof l=="string"&&/^\d+$/.test(l)){let u=Number(l);Number.isSafeInteger(u)&&s.length!==u&&(r=Wl())}}return a[Eb]=r,r},gR=(e,t)=>{if(t instanceof Error){e.error(t);return}t.length>0&&e.enqueue(t),e.close()},Ore=(e,t,a,r,n)=>{let i={method:e,headers:a,signal:n.signal};if(e==="TRACE"){i.method="GET";let o=new Fi(t,i);return Object.defineProperty(o,"method",{get(){return"TRACE"}}),o}if(!(e==="GET"||e==="HEAD"))if("rawBody"in r&&r.rawBody instanceof Buffer)i.body=new ReadableStream({start(o){o.enqueue(r.rawBody),o.close()}});else if(r[kR]){let o;i.body=new ReadableStream({async pull(s){try{if(!o){let c=wl(r);if(c!==void 0){gR(s,c);return}}o||=dR.toWeb(r).getReader();let{done:l,value:u}=await o.read();l?s.close():s.enqueue(u)}catch(l){s.error(l)}}})}else{let o=wl(r);o!==void 0?i.body=new ReadableStream({start(s){gR(s,o)}}):i.body=dR.toWeb(r)}return new Fi(t,i)},Nn=Symbol("getRequestCache"),ka=Symbol("requestCache"),Bi=Symbol("incomingKey"),t7=Symbol("urlKey"),WR=Symbol("methodKey"),CR=Symbol("headersKey"),Q8=Symbol("abortControllerKey"),Ob=Symbol("getAbortController"),Db=Symbol("abortRequest"),bn=Symbol("bodyBuffer"),kl=Symbol("bodyReadPromise"),Ca=Symbol("bodyConsumedDirectly"),fR=Symbol("bodyLockReader"),e7=Symbol("abortReason"),Wl=()=>new TypeError("Body is unusable"),a7=()=>Promise.reject(Wl()),Dre=new TextDecoder,Lre=e=>{if(e[Ca])return a7();e[Ca]=!0},Fre=e=>e.buffer.slice(e.byteOffset,e.byteOffset+e.byteLength),Bre=e=>(e[CR]||=SR(e[Bi])).get("content-type")||"",Hre=/^[!#$%&'*+\-.^_`|~0-9A-Za-z]+$/,Gre=e=>{if(typeof e!="string"||e.length===0)return"GET";switch(e){case"DELETE":case"GET":case"HEAD":case"OPTIONS":case"PATCH":case"POST":case"PUT":case"QUERY":return e}let t=e.toUpperCase();switch(t){case"DELETE":case"GET":case"HEAD":case"OPTIONS":case"POST":case"PUT":return t;default:return e}},Kre=e=>{if(!Hre.test(e))return new TypeError(`'${e}' is not a valid HTTP method.`);let t=e.toUpperCase();if(t==="CONNECT"||t==="TRACK"||t==="TRACE"&&e!=="TRACE")return new TypeError(`'${e}' HTTP method is unsupported.`)},Xb=(e,t,a)=>{if(e[Ca])return a7();let r=e.method;if(r==="GET"||r==="HEAD")return e[Nn]()[t]();let n=Kre(r);if(n)return Promise.reject(n);if(e[ka]&&r!=="TRACE")return e[ka][t]();let i=Lre(e);if(i)return i;let o=Xre(e);if(o){let s=Promise.resolve(a(o,e));return e[bn]=void 0,s}return Vre(e).then(s=>{let l=a(s,e);return e[bn]=void 0,l})},Xre=e=>{let t=e[Bi];if("rawBody"in t&&t.rawBody instanceof Buffer)return t.rawBody},yR=(e,t)=>{if(t.errored)return t.errored;let a=e[e7];return a!==void 0?a instanceof Error?a:new Error(String(a)):new Error("Client connection prematurely closed.")},Vre=e=>{if(e[bn])return Promise.resolve(e[bn]);if(e[kl])return e[kl];let t=e[Bi];if(t.readableDidRead)return a7();let a=wl(t);if(a!==void 0)return a instanceof Error?Promise.reject(a):(e[bn]=a,Promise.resolve(a));let r=new Promise((n,i)=>{let o=[],s=!1,l=g=>{s||(s=!0,m(),g())},u=g=>{let f=t.errored??g;return!Kb(t)||f&&f.code!=="ECONNRESET"?!1:(l(()=>{let y=wl(t,o);y instanceof Error?i(y):y===void 0?i(g??yR(e,t)):(e[bn]=y,n(y))}),!0)},c=g=>{o.push(wR(g,t.readableEncoding))},d=()=>{l(()=>{let g=o.length===1?o[0]:Buffer.concat(o);e[bn]=g,n(g)})},h=g=>{u(g)||l(()=>{i(g)})},p=()=>{if(t.readableEnded){d();return}u()||l(()=>{i(yR(e,t))})},m=()=>{t.off("data",c),t.off("end",d),t.off("error",h),t.off("close",p),e[kl]=void 0};t.on("data",c),t.on("end",d),t.on("error",h),t.on("close",p),queueMicrotask(()=>{s||(t.readableEnded?d():t.errored?h(t.errored):t.destroyed&&p())})});return e[kl]=r,r},J3={get method(){return this[WR]},get url(){return this[t7]},get headers(){return this[CR]||=SR(this[Bi])},[Db](e){this[e7]===void 0&&(this[e7]=e);let t=this[Q8];t&&!t.signal.aborted&&t.abort(e)},[Ob](){return this[Q8]||=new AbortController,this[e7]!==void 0&&!this[Q8].signal.aborted&&this[Q8].abort(this[e7]),this[Q8]},[Nn](){let e=this[Ob]();if(this[ka])return this[ka];let t=this.method;if(this[Ca]&&!(t==="GET"||t==="HEAD")){this[bn]=void 0;let a={method:t==="TRACE"?"GET":t,headers:this.headers,signal:e.signal};t!=="TRACE"&&(a.body=new ReadableStream({start(n){n.close()}}),a.duplex="half");let r=new Fi(this[t7],a);return t==="TRACE"&&Object.defineProperty(r,"method",{get(){return"TRACE"}}),this[ka]=r}return this[ka]=Ore(this.method,this[t7],this.headers,this[Bi],e)},get body(){if(!this[Ca])return this[Nn]().body;let e=this[Nn]();return!this[fR]&&e.body&&(this[fR]=e.body.getReader()),e.body},get bodyUsed(){return this[Ca]?!0:this[ka]?this[ka].bodyUsed:!1}};Object.defineProperty(J3,"signal",{get(){return this[Ob]().signal}});["cache","credentials","destination","integrity","mode","redirect","referrer","referrerPolicy","keepalive"].forEach(e=>{Object.defineProperty(J3,e,{get(){return this[Nn]()[e]}})});["clone","formData"].forEach(e=>{Object.defineProperty(J3,e,{value:function(){if(this[Ca]){if(e==="clone")throw Wl();return a7()}return this[Nn]()[e]()}})});Object.defineProperty(J3,"text",{value:function(){return Xb(this,"text",e=>Dre.decode(e))}});Object.defineProperty(J3,"arrayBuffer",{value:function(){return Xb(this,"arrayBuffer",e=>Fre(e))}});Object.defineProperty(J3,"blob",{value:function(){return Xb(this,"blob",(e,t)=>{let a=Bre(t),r=a?{headers:{"content-type":a}}:void 0;return new Response(e,r).blob()})}});Object.defineProperty(J3,"json",{value:function(){return this[Ca]?a7():this.text().then(JSON.parse)}});Object.defineProperty(J3,Symbol.for("nodejs.util.inspect.custom"),{value:function(e,t,a){return`Request (lightweight) ${a({method:this.method,url:this.url,headers:this.headers,nativeRequest:this[ka]},{...t,depth:e==null?null:e-1})}`}});Object.setPrototypeOf(J3,Fi.prototype);var Zre=(e,t)=>{let a=Object.create(J3);a[Bi]=e,a[WR]=Gre(e.method);let r=e.url||"";if(r[0]!=="/"&&(r.startsWith("http://")||r.startsWith("https://"))){if(e instanceof Wa)throw new Z3("Absolute URL for :path is not allowed in HTTP/2");try{a[t7]=new URL(r).href}catch(o){throw new Z3("Invalid absolute URL",{cause:o})}return a}let n=(e instanceof Wa?e.authority:e.headers.host)||t;if(!n)throw new Z3("Missing host header");let i;if(e instanceof Wa){if(i=e.scheme,!(i==="http"||i==="https"))throw new Z3("Unsupported scheme")}else i=e.socket&&e.socket.encrypted?"https":"http";try{a[t7]=zre(i,n,r)}catch(o){throw o instanceof Z3?o:new Z3("Invalid URL",{cause:o})}return a},vr="text/plain; charset=UTF-8",Lb=Symbol("responseCache"),Li=Symbol("getResponseCache"),wa=Symbol("cache"),Cl=global.Response,q3=class _R{#e;#t;[Li](){let t=this[wa],a=t&&t[2]instanceof Headers?t[2]:void 0;return delete this[wa],this[Lb]||=new Cl(this.#e,a?{status:this.#t?.status,statusText:this.#t?.statusText,headers:a}:this.#t)}constructor(t,a){let r;if(this.#e=t,a instanceof Cl){let n=a[Lb];if(n){this.#t=n,this[Li]();return}this.#t=a instanceof _R?a.#t:a,r=new Headers(a.headers)}else this.#t=a;(t==null||typeof t=="string"||typeof t?.getReader<"u"||t instanceof Blob||t instanceof Uint8Array)&&(this[wa]=[a?.status||200,t??null,r||a?.headers])}get headers(){let t=this[wa];return t?(t[2]instanceof Headers||(t[2]=new Headers(t[2]||(t[1]===null?void 0:{"content-type":vr}))),t[2]):this[Li]().headers}get status(){return this[wa]?.[0]??this[Li]().status}get ok(){let t=this.status;return t>=200&&t<300}};["body","bodyUsed","redirected","statusText","trailers","type","url"].forEach(e=>{Object.defineProperty(q3.prototype,e,{get(){return this[Li]()[e]}})});["arrayBuffer","blob","clone","formData","json","text"].forEach(e=>{Object.defineProperty(q3.prototype,e,{value:function(){return this[Li]()[e]()}})});Object.defineProperty(q3.prototype,Symbol.for("nodejs.util.inspect.custom"),{value:function(e,t,a){return`Response (lightweight) ${a({status:this.status,headers:this.headers,ok:this.ok,nativeResponse:this[Lb]},{...t,depth:e==null?null:e-1})}`}});Object.setPrototypeOf(q3,Cl);Object.setPrototypeOf(q3.prototype,Cl.prototype);var qre=/^https?:\/\/[!#-;=?-[\]_a-z~A-Z]+$/,Jre=e=>e instanceof URL?e.href:qre.test(e)?e:new URL(e).href,Yre=new Set([301,302,303,307,308]);Object.defineProperty(q3,"redirect",{value:function(t,a=302){if(!Yre.has(a))throw new RangeError("Invalid status code");return new q3(null,{status:a,headers:{location:Jre(t)}})},writable:!0,configurable:!0});Object.defineProperty(q3,"json",{value:function(t,a){let r=JSON.stringify(t);if(r===void 0)throw new TypeError("The data is not JSON serializable");let n=a?.headers,i;return n?(i=new Headers(n),i.has("content-type")||i.set("content-type","application/json")):i={"content-type":"application/json"},new q3(r,{status:a?.status??200,statusText:a?.statusText,headers:i})},writable:!0,configurable:!0});async function Qre(e){return Promise.race([e,Promise.resolve().then(()=>Promise.resolve(void 0))])}function AR(e,t,a){let r=s=>{e.cancel(s).catch(()=>{})};return t.on("close",r),t.on("error",r),(a??e.read()).then(o,n),e.closed.finally(()=>{t.off("close",r),t.off("error",r)});function n(s){s&&t.destroy(s)}function i(){e.read().then(o,n)}function o({done:s,value:l}){try{if(s)t.end();else if(!t.write(l))t.once("drain",i);else return e.read().then(o,n)}catch(u){n(u)}}}function bR(e,t){if(e.locked)throw new TypeError("ReadableStream is locked.");return t.destroyed?void 0:AR(e.getReader(),t)}var Fb=(e,t)=>{let a={};if(e instanceof Headers||(e=new Headers(e??void 0)),e.has("set-cookie")){let r=[];for(let[n,i]of e)n==="set-cookie"?r.push(i):a[n]=i;r.length>0&&(a["set-cookie"]=r)}else for(let[r,n]of e)a[r]=n;return t&&(a["content-type"]??=t),a},_l=Symbol("outgoingEnded"),NR=Symbol("incomingDraining"),e4e=500,t4e=64*1024*1024,MR=e=>{let t=e;if(e.destroyed||t[NR])return;if(t[NR]=!0,e instanceof Wa){try{e.stream?.close?.(Mre.NGHTTP2_NO_ERROR)}catch{}return}let a=0,r=()=>{clearTimeout(i),e.off("data",o),e.off("end",r),e.off("error",r)},n=()=>{r();let s=e.socket;s&&!s.destroyed&&(typeof s.destroySoon=="function"?s.destroySoon():typeof s.destroy=="function"&&s.destroy())},i=setTimeout(n,e4e);i.unref?.();let o=s=>{a+=s.length,a>t4e&&n()};e.on("data",o),e.on("end",r),e.on("error",r),e.resume()},a4e=(e,t,a,r)=>()=>{t.errored?(mR(t),e[Db](t.errored.toString())):(!a.writableFinished||t instanceof Wa&&t.aborted)&&(mR(t),e[Db]("Client connection prematurely closed.")),r&&!t.readableEnded&&setTimeout(()=>{t.readableEnded||setTimeout(()=>{MR(t)})})},n4e=e=>{if(!(wa in e))return!1;let t=e[wa][1];return t===null||typeof t=="string"||t instanceof Uint8Array},r4e=()=>new Response(null,{status:400}),PR=e=>new Response(null,{status:e instanceof Error&&(e.name==="TimeoutError"||e.constructor.name==="TimeoutError")?504:500}),Al=(e,t)=>{let a=e instanceof Error?e:new Error("unknown error",{cause:e});a.code==="ERR_STREAM_PREMATURE_CLOSE"?console.info("The user aborted a request."):(console.error(e),t.headersSent||(t instanceof Are&&(t._contentLength=null),t.writeHead(500,{"Content-Type":"text/plain"})),t.end(`Error: ${a.message}`),t.destroy(a))},Bb=e=>{"flushHeaders"in e&&e.writable&&e.flushHeaders()},UR=(e,t,a)=>{let r=e;return r._contentLength===null&&r._hasBody&&r.useChunkedEncodingByDefault&&!r._removedContLen&&t>=200&&t!==204&&t!==304&&!e.hasHeader("content-length")&&!e.hasHeader("transfer-encoding")&&!e.hasHeader("trailer")?(r._contentLength=a,!0):!1},$b=(e,t,a)=>{UR(e,t,a)?e.writeHead(t,{"Content-Type":vr}):e.writeHead(t,{"Content-Type":vr,"Content-Length":a})},IR=async(e,t)=>{let[a,r,n]=e[wa];if(!n){r===null?(t.writeHead(a),t.end()):typeof r=="string"?($b(t,a,Buffer.byteLength(r)),t.end(r)):r instanceof Uint8Array?($b(t,a,r.byteLength),t.end(r)):r instanceof Blob?($b(t,a,r.size),t.end(new Uint8Array(await r.arrayBuffer()))):(t.writeHead(a,{"Content-Type":vr}),Bb(t),await bR(r,t)?.catch(l=>Al(l,t))),t[_l]?.();return}let i=!1,o=!1,s=!0;if(n instanceof Headers)i=n.has("content-length"),n=Fb(n,r===null?void 0:vr);else if(Array.isArray(n)){let l=new Headers(n);i=l.has("content-length"),n=Fb(l,r===null?void 0:vr)}else{o=!0;for(let l in n){if(l.length===14&&l.toLowerCase()==="content-length"){i=!0;break}(l.length===17&&l.toLowerCase()==="transfer-encoding"||l.length===7&&l.toLowerCase()==="trailer")&&(s=!1)}}if(!i){let l;typeof r=="string"?l=Buffer.byteLength(r):r instanceof Uint8Array?l=r.byteLength:r instanceof Blob&&(l=r.size),l!==void 0&&(!o||!s||!UR(t,a,l))&&(o&&(n={...n}),n["Content-Length"]=l)}t.writeHead(a,n),r==null?t.end():typeof r=="string"||r instanceof Uint8Array?t.end(r):r instanceof Blob?t.end(new Uint8Array(await r.arrayBuffer())):(Bb(t),await bR(r,t)?.catch(l=>Al(l,t))),t[_l]?.()},TR=e=>typeof e.then=="function",i4e=async(e,t,a={})=>{if(TR(e))if(a.errorHandler)try{e=await e}catch(n){let i=await a.errorHandler(n);if(!i)return;e=i}else e=await e.catch(PR);if(wa in e)return IR(e,t);let r=Fb(e.headers,e.body===null?void 0:vr);if(e.body){let n=e.body.getReader(),i=[],o=!1,s;if(r["transfer-encoding"]!=="chunked"){let l=2;for(let u=0;u<l;u++){s||=n.read();let c=await Qre(s).catch(d=>{console.error(d),o=!0});if(!c){if(u===1){await new Promise(d=>setTimeout(d)),l=3;continue}break}if(s=void 0,c.value&&i.push(c.value),c.done){o=!0;break}}o&&!("content-length"in r)&&(r["content-length"]=i.reduce((u,c)=>u+c.length,0))}t.writeHead(e.status,r),i.forEach(l=>{t.write(l)}),o?t.end():(i.length===0&&Bb(t),await AR(n,t,s))}else r[uR]||(t.writeHead(e.status,r),t.end());t[_l]?.()},Vb=(e,t={})=>{let a=t.autoCleanupIncoming??!0;return t.overrideGlobalObjects!==!1&&global.Request!==Fi&&(Object.defineProperty(global,"Request",{value:Fi}),Object.defineProperty(global,"Response",{value:q3})),async(r,n)=>{let i,o,s=!1,l=!1,u=()=>{!o||l||(l=!0,n.on("close",a4e(o,r,n,s)))};try{if(o=Zre(r,t.hostname),s=a&&!(r.method==="GET"||r.method==="HEAD"),s&&(r[kR]=!0,r instanceof Wa&&(n[_l]=()=>{r.readableEnded||setTimeout(()=>{r.readableEnded||setTimeout(()=>{r.destroy(),n.destroy()})})})),i=e(o,{incoming:r,outgoing:n}),!TR(i)&&n4e(i))return s&&!r.readableEnded&&n.once("finish",()=>{r.readableEnded||MR(r)}),IR(i,n);u()}catch(c){if(i)return Al(c,n);if(t.errorHandler){if(u(),i=await t.errorHandler(o?c:Rre(c)),!i)return}else o?i=PR(c):i=r4e()}try{return await i4e(i,n,t)}catch(c){return Al(c,n)}}},o4e=globalThis.CloseEvent??class extends Event{#e;constructor(e,t={}){super(e,t),this.#e=t}get wasClean(){return this.#e.wasClean??!1}get code(){return this.#e.code??0}get reason(){return this.#e.reason??""}},s4e=globalThis.ErrorEvent??class extends Event{#e;constructor(e,t={}){super(e,t),this.#e=t}get message(){return this.#e.message??""}get filename(){return this.#e.filename??""}get lineno(){return this.#e.lineno??0}get colno(){return this.#e.colno??0}get error(){return this.#e.error??null}},l4e=()=>Symbol("connection"),u4e=Symbol("CONNECTION_SYMBOL_KEY"),c4e=Symbol("WAIT_FOR_WEBSOCKET_SYMBOL");var Jme=cR(async(e,t,a)=>{if(e.req.header("upgrade")?.toLowerCase()!=="websocket")return;let r=e.env,n=r[c4e];if(!n||!r.incoming)return new Response(null,{status:500});let i=l4e();return r[u4e]=i,(async()=>{let o;try{o=await n(r.incoming,i)}catch{return}let s=[],l=(d,h)=>{s.push([d,h])};o.on("message",l);let u={binaryType:"arraybuffer",close(d,h){o.close(d,h)},protocol:o.protocol,raw:o,get readyState(){return o.readyState},send(d,h){o.send(d,{compress:h?.compress})},url:new URL(e.req.url)};try{t?.onOpen?.(new Event("open"),u)}catch(d){(a?.onError??console.error)(d)}let c=(d,h)=>{let p=Array.isArray(d)?d:[d];for(let m of p)try{t?.onMessage?.(new MessageEvent("message",{data:h?m instanceof ArrayBuffer?m:m.buffer.slice(m.byteOffset,m.byteOffset+m.byteLength):typeof m=="string"?m:Buffer.from(m).toString("utf-8")}),u)}catch(g){(a?.onError??console.error)(g)}};o.off("message",l);for(let d of s)c(...d);o.on("message",(d,h)=>{c(d,h)}),o.on("close",(d,h)=>{try{t?.onClose?.(new o4e("close",{code:d,reason:h.toString()}),u)}catch(p){(a?.onError??console.error)(p)}}),o.on("error",d=>{try{t?.onError?.(new s4e("error",{error:d}),u)}catch(h){(a?.onError??console.error)(h)}})})(),new Response});var $R=Vi(ER(),1);function N4e(e){if(e)try{return $R.default.parse(e).type}catch{let t=(e.split(";",1)[0]??"").trim().toLowerCase();return t===""||e.slice(t.length).includes(",")?void 0:t}}function jR(e){return e==="application/json"?!0:N4e(e)==="application/json"}function OR(e){return`Payload Too Large: Request body must not exceed ${e} bytes`}function DR(e){if(e===void 0)return 4194304;if(typeof e!="number"||!Number.isFinite(e)||e<=0)throw new RangeError(`maxRequestBodySize must be a positive number of bytes, got ${String(e)}`);return e}async function LR(e,t=4194304){if(Number(e.headers.get("content-length"))>t)return{tooLarge:!0};if(e.body===null)return{tooLarge:!1,text:""};let a=e.body.getReader(),r=new TextDecoder,n=0,i="";try{for(;;){let{done:o,value:s}=await a.read();if(o)break;if(n+=s.byteLength,n>t)return{tooLarge:!0};i+=r.decode(s,{stream:!0})}}finally{a.releaseLock()}return{tooLarge:!1,text:i+r.decode()}}function FR(e,t){if(!Number.isFinite(e)||e<1)return;let a=setInterval(t,Math.min(e,2147483647));return a.unref?.(),a}var Ml=class{constructor(t={}){this._started=!1,this._hasHandledRequest=!1,this._streamMapping=new Map,this._requestToStreamMapping=new Map,this._resumableStreams=new Set,this._requestResponseMap=new Map,this._initialized=!1,this._enableJsonResponse=!1,this._standaloneSseStreamId="_GET_stream",this._closed=!1,this.sessionIdGenerator=t.sessionIdGenerator,this._enableJsonResponse=t.enableJsonResponse??!1,this._eventStore=t.eventStore,this._onsessioninitialized=t.onsessioninitialized,this._onsessionclosed=t.onsessionclosed,this._allowedHosts=t.allowedHosts,this._allowedOrigins=t.allowedOrigins,this._enableDnsRebindingProtection=t.enableDnsRebindingProtection??!1,this._retryInterval=t.retryInterval,this._keepAliveMs=t.keepAliveMs??15e3,this._maxRequestBodySize=DR(t.maxRequestBodySize)}startKeepAlive(t,a){if(this._closed)return;let r=FR(this._keepAliveMs,()=>{try{t.enqueue(a.encode(`: keepalive
303
305
 
304
306
  `))}catch{r!==void 0&&clearInterval(r)}});return r}async start(){if(this._started)throw new Error("Transport already started");this._started=!0}createJsonErrorResponse(t,a,r,n){let i={code:a,message:r};return n?.data!==void 0&&(i.data=n.data),new Response(JSON.stringify({jsonrpc:"2.0",error:i,id:null}),{status:t,headers:{"Content-Type":"application/json",...n?.headers}})}validateRequestHeaders(t){if(this._enableDnsRebindingProtection){if(this._allowedHosts&&this._allowedHosts.length>0){let a=t.headers.get("host");if(!a||!this._allowedHosts.includes(a)){let r=`Invalid Host header: ${a}`;return this.onerror?.(new Error(r)),this.createJsonErrorResponse(403,-32e3,r)}}if(this._allowedOrigins&&this._allowedOrigins.length>0){let a=t.headers.get("origin");if(a&&!this._allowedOrigins.includes(a)){let r=`Invalid Origin header: ${a}`;return this.onerror?.(new Error(r)),this.createJsonErrorResponse(403,-32e3,r)}}}}async handleRequest(t,a){if(this._closed)return this.createJsonErrorResponse(404,-32001,"Session not found");if(!this.sessionIdGenerator&&this._hasHandledRequest)throw new Error("Stateless transport cannot be reused across requests. Create a new transport per request.");this._hasHandledRequest=!0;let r=this.validateRequestHeaders(t);if(r)return r;switch(t.method){case"POST":return this.handlePostRequest(t,a);case"GET":return this.handleGetRequest(t);case"DELETE":return this.handleDeleteRequest(t);default:return this.handleUnsupportedRequest()}}async writePrimingEvent(t,a,r,n){if(!this._eventStore||n<"2025-11-25")return;let i=await this._eventStore.storeEvent(r,{}),o=`id: ${i}
305
307
  data:
@@ -314,7 +316,7 @@ data:
314
316
 
315
317
  `,t.enqueue(a.encode(i)),!0}catch(i){return this.onerror?.(i),!1}}handleUnsupportedRequest(){return this.onerror?.(new Error("Method not allowed.")),new Response(JSON.stringify({jsonrpc:"2.0",error:{code:-32e3,message:"Method not allowed."},id:null}),{status:405,headers:{Allow:"GET, POST, DELETE","Content-Type":"application/json"}})}async handlePostRequest(t,a){try{let r=t.headers.get("accept");if(!r?.includes("application/json")||!r.includes("text/event-stream"))return this.onerror?.(new Error("Not Acceptable: Client must accept both application/json and text/event-stream")),this.createJsonErrorResponse(406,-32e3,"Not Acceptable: Client must accept both application/json and text/event-stream");let n=t.headers.get("content-type");if(!jR(n))return this.onerror?.(new Error("Unsupported Media Type: Content-Type must be application/json")),this.createJsonErrorResponse(415,-32e3,"Unsupported Media Type: Content-Type must be application/json");let i={headers:Object.fromEntries(t.headers.entries()),url:new URL(t.url)},o;if(a?.parsedBody!==void 0)o=a.parsedBody;else try{let b=await LR(t,this._maxRequestBodySize);if(b.tooLarge){let v=OR(this._maxRequestBodySize);return this.onerror?.(new Error(v)),this.createJsonErrorResponse(413,-32e3,v)}o=JSON.parse(b.text)}catch{return this.onerror?.(new Error("Parse error: Invalid JSON")),this.createJsonErrorResponse(400,-32700,"Parse error: Invalid JSON")}if(Array.isArray(o)&&o.length>100)return this.onerror?.(new Error(`Invalid Request: Batch must not exceed ${100} messages`)),this.createJsonErrorResponse(400,-32600,`Invalid Request: Batch must not exceed ${100} messages`);let s;try{Array.isArray(o)?s=o.map(b=>W2.parse(b)):s=[W2.parse(o)]}catch{return this.onerror?.(new Error("Parse error: Invalid JSON-RPC message")),this.createJsonErrorResponse(400,-32700,"Parse error: Invalid JSON-RPC message")}if(this._closed)return this.createJsonErrorResponse(404,-32001,"Session not found");let l=s.some($h);if(l){if(this._initialized&&this.sessionId!==void 0)return this.onerror?.(new Error("Invalid Request: Server already initialized")),this.createJsonErrorResponse(400,-32600,"Invalid Request: Server already initialized");if(s.length>1)return this.onerror?.(new Error("Invalid Request: Only one initialization request is allowed")),this.createJsonErrorResponse(400,-32600,"Invalid Request: Only one initialization request is allowed");this.sessionId=this.sessionIdGenerator?.(),this._initialized=!0,this.sessionId&&this._onsessioninitialized&&await Promise.resolve(this._onsessioninitialized(this.sessionId))}if(!l){let b=this.validateSession(t);if(b)return b;let v=this.validateProtocolVersion(t);if(v)return v}if(this._closed)return this.createJsonErrorResponse(404,-32001,"Session not found");if(!s.some(sa)){for(let b of s)this.onmessage?.(b,{authInfo:a?.authInfo,requestInfo:i});return new Response(null,{status:202})}let c=crypto.randomUUID(),d=s.find(b=>$h(b)),h=d?d.params.protocolVersion:t.headers.get("mcp-protocol-version")??Sw;if(this._enableJsonResponse)return new Promise(b=>{this._streamMapping.set(c,{resolveJson:b,cleanup:()=>{this._streamMapping.delete(c)}});for(let v of s)sa(v)&&this._requestToStreamMapping.set(v.id,c);for(let v of s)this.onmessage?.(v,{authInfo:a?.authInfo,requestInfo:i})});let p=new TextEncoder,m,g,f=new ReadableStream({start:b=>{m=b},cancel:()=>{g!==void 0&&clearInterval(g),this._streamMapping.get(c)?.controller===m&&this._streamMapping.delete(c)}}),y={"Content-Type":"text/event-stream","Cache-Control":"no-cache, no-transform",Connection:"keep-alive","X-Accel-Buffering":"no"};this.sessionId!==void 0&&(y["mcp-session-id"]=this.sessionId);for(let b of s)sa(b)&&(this._streamMapping.set(c,{controller:m,encoder:p,cleanup:()=>{g!==void 0&&clearInterval(g),this._streamMapping.delete(c);try{m.close()}catch{}}}),this._requestToStreamMapping.set(b.id,c));try{await this.writePrimingEvent(m,p,c,h);for(let b of s){let v,k;sa(b)&&this._eventStore&&h>="2025-11-25"&&(v=()=>{this.closeSSEStream(b.id)},k=()=>{this.closeStandaloneSSEStream()}),this.onmessage?.(b,{authInfo:a?.authInfo,requestInfo:i,closeSSEStream:v,closeStandaloneSSEStream:k})}}catch(b){this._streamMapping.get(c)?.cleanup(),this._resumableStreams.delete(c);for(let v of s)sa(v)&&this._requestToStreamMapping.delete(v.id);throw b}return this._streamMapping.get(c)?.controller===m&&(g=this.startKeepAlive(m,p)),new Response(f,{status:200,headers:y})}catch(r){return this.onerror?.(r),this.createJsonErrorResponse(400,-32700,"Parse error",{data:String(r)})}}async handleDeleteRequest(t){let a=this.validateSession(t);if(a)return a;let r=this.validateProtocolVersion(t);if(r)return r;try{return await Promise.resolve(this._onsessionclosed?.(this.sessionId)),new Response(null,{status:200})}finally{await this.close()}}validateSession(t){if(this.sessionIdGenerator===void 0)return;if(!this._initialized)return this.onerror?.(new Error("Bad Request: Server not initialized")),this.createJsonErrorResponse(400,-32e3,"Bad Request: Server not initialized");let a=t.headers.get("mcp-session-id");if(!a)return this.onerror?.(new Error("Bad Request: Mcp-Session-Id header is required")),this.createJsonErrorResponse(400,-32e3,"Bad Request: Mcp-Session-Id header is required");if(a!==this.sessionId)return this.onerror?.(new Error("Session not found")),this.createJsonErrorResponse(404,-32001,"Session not found")}validateProtocolVersion(t){let a=t.headers.get("mcp-protocol-version");if(a!==null&&!$4.includes(a))return this.onerror?.(new Error(`Bad Request: Unsupported protocol version: ${a} (supported versions: ${$4.join(", ")})`)),this.createJsonErrorResponse(400,-32e3,`Bad Request: Unsupported protocol version: ${a} (supported versions: ${$4.join(", ")})`)}async close(){this._closed||(this._closed=!0,this._streamMapping.forEach(({cleanup:t})=>{t()}),this._streamMapping.clear(),this._requestResponseMap.clear(),this._resumableStreams.clear(),this.onclose?.())}closeSSEStream(t){let a=this._requestToStreamMapping.get(t);if(!a)return;let r=this._streamMapping.get(a);r&&r.cleanup()}closeStandaloneSSEStream(){let t=this._streamMapping.get(this._standaloneSseStreamId);t&&t.cleanup()}async send(t,a){let r=a?.relatedRequestId;if((la(t)||j4(t))&&(r=t.id),r===void 0){if(la(t)||j4(t))throw new Error("Cannot send a response on a standalone SSE stream unless resuming a previous client request");let o;this._eventStore&&(o=await this._eventStore.storeEvent(this._standaloneSseStreamId,t));let s=this._streamMapping.get(this._standaloneSseStreamId);if(s===void 0)return;s.controller&&s.encoder&&(o===void 0||!s.replayedEventIds?.has(o))&&this.writeSSEEvent(s.controller,s.encoder,t,o);return}let n=this._requestToStreamMapping.get(r);if(!n)throw new Error(`No connection established for request ID: ${String(r)}`);let i=this._streamMapping.get(n);if(!this._enableJsonResponse){let o;this._eventStore&&(o=await this._eventStore.storeEvent(n,t),i=this._streamMapping.get(n)),i?.controller&&i?.encoder&&(o===void 0||!i.replayedEventIds?.has(o))&&this.writeSSEEvent(i.controller,i.encoder,t,o)&&o!==void 0&&this._resumableStreams.add(n)}if(la(t)||j4(t)){this._requestResponseMap.set(r,t);let o=Array.from(this._requestToStreamMapping.entries()).filter(([l,u])=>u===n).map(([l])=>l);if(o.every(l=>this._requestResponseMap.has(l))){if(!i){if(this._closed){for(let l of o)this._requestResponseMap.delete(l),this._requestToStreamMapping.delete(l);return}if(!this._enableJsonResponse&&this._eventStore&&this._resumableStreams.has(n)){for(let l of o)this._requestResponseMap.delete(l),this._requestToStreamMapping.delete(l);this._resumableStreams.delete(n);return}for(let l of o)this._requestResponseMap.delete(l),this._requestToStreamMapping.delete(l);throw new Error(`No connection established for request ID: ${String(r)}`)}if(this._enableJsonResponse&&i.resolveJson){let l={"Content-Type":"application/json"};this.sessionId!==void 0&&(l["mcp-session-id"]=this.sessionId);let u=o.map(c=>this._requestResponseMap.get(c));u.length===1?i.resolveJson(new Response(JSON.stringify(u[0]),{status:200,headers:l})):i.resolveJson(new Response(JSON.stringify(u),{status:200,headers:l}))}else i.cleanup();for(let l of o)this._requestResponseMap.delete(l),this._requestToStreamMapping.delete(l);this._resumableStreams.delete(n)}}}};var Pl=class{constructor(t={}){this._requestContext=new WeakMap,this._webStandardTransport=new Ml(t),this._requestListener=Vb(async a=>{let r=this._requestContext.get(a);return this._webStandardTransport.handleRequest(a,{authInfo:r?.authInfo,parsedBody:r?.parsedBody})},{overrideGlobalObjects:!1})}get sessionId(){return this._webStandardTransport.sessionId}set onclose(t){this._webStandardTransport.onclose=t}get onclose(){return this._webStandardTransport.onclose}set onerror(t){this._webStandardTransport.onerror=t}get onerror(){return this._webStandardTransport.onerror}set onmessage(t){this._webStandardTransport.onmessage=t}get onmessage(){return this._webStandardTransport.onmessage}async start(){return this._webStandardTransport.start()}async close(){return this._webStandardTransport.close()}async send(t,a){return this._webStandardTransport.send(t,a)}async handleRequest(t,a,r){let n=t.auth;await Vb(async o=>this._webStandardTransport.handleRequest(o,{authInfo:n,parsedBody:r}),{overrideGlobalObjects:!1})(t,a)}closeSSEStream(t){this._webStandardTransport.closeSSEStream(t)}closeStandaloneSSEStream(){this._webStandardTransport.closeStandaloneSSEStream()}};var k4e=16*1024*1024;function BR(e,t){let a=o=>{let s=e.indexOf(o);return s>=0&&s+1<e.length?e[s+1]:void 0},r=e.includes("--http")||/^(1|true|yes|on)$/i.test((t.BIC_MCP_HOSTED??"").trim()),n=a("--port")??t.BIC_MCP_HTTP_PORT??"8799",i=Number(n);if(!Number.isInteger(i)||i<0||i>65535)throw new Error(`--port must be a whole number from 0 to 65535 (got "${n}").`);return{http:r,host:a("--host")??"127.0.0.1",port:i}}function Ul(e,t,a,r={}){if(e.headersSent){e.end();return}e.writeHead(t,{"Content-Type":"application/json","Cache-Control":"no-store",...r}),e.end(JSON.stringify(a))}function n7(e,t,a,r,n={}){Ul(e,t,{jsonrpc:"2.0",error:{code:a,message:r},id:null},n)}function w4e(e,t,a){return new Promise((r,n)=>{let i=[],o=0,s=!1;e.on("data",l=>{if(!s){if(o+=l.length,o>a){s=!0,i.length=0,n7(t,413,-32600,`The request is larger than this server accepts (${Math.floor(a/1048576)} MB). Send the table at the chart's grain - aggregated - or with fewer columns.`,{Connection:"close"}),r(null);return}i.push(l)}}),e.on("end",()=>{s||r(Buffer.concat(i).toString("utf-8"))}),e.on("error",n)})}async function W4e(e,t,a){let r=ST(e.headers.authorization);if(!r){n7(t,401,-32001,"Sign in to use this chart server: connect to it from your app, which sends your account's access token with each request.",{"WWW-Authenticate":"Bearer"});return}let n=await w4e(e,t,a.maxBodyBytes??k4e);if(n===null)return;let i;try{i=JSON.parse(n)}catch{n7(t,400,-32700,"Parse error: the request body isn't JSON.");return}let o=a.newServer(),s=new Pl({sessionIdGenerator:void 0});t.on("close",()=>{s.close().catch(()=>{}),o.close().catch(()=>{})}),await o.connect(s);let l=kT(e.headers[Ly.toLowerCase()]);await bT({accessToken:r,...l?{clientIp:l}:{}},()=>s.handleRequest(e,t,i))}function HR(e){let t=e.log??(r=>{process.stderr.write(r+`
316
318
  `)}),a=S4e((r,n)=>{let i=new URL(r.url??"/","http://localhost").pathname;if(i==="/healthz"){if(r.method!=="GET"&&r.method!=="HEAD"){Ul(n,405,{error:"Use GET."},{Allow:"GET"});return}Ul(n,200,{ok:!0,server:"bic-chart",version:e.version});return}if(i!=="/mcp"){Ul(n,404,{error:"Not found. The MCP endpoint is /mcp."});return}if(r.method!=="POST"){n7(n,405,-32e3,"Method not allowed: this server is stateless, so it takes POST only.",{Allow:"POST"});return}W4e(r,n,e).catch(o=>{t(`[bic-chart http] request failed (${o?.name??"Error"})`),n7(n,500,-32603,"Internal error: the chart server couldn't handle this request. Try again.")})});return new Promise((r,n)=>{a.once("error",n),a.listen(e.port,e.host,()=>{a.off("error",n),r(a)})})}var XR=["assess_data_shape","list_eligible_charts","generate_chart","get_guide","preview_request","check_request"],Hi="This hosted server receives your table, profiles it in memory and sends only the profile to generation; rows aren't stored or logged.",VR={csv_path:"this hosted server can't read files on your machine, so pass the table as data or csv_text",project_dir:"this hosted server can't see your project folder, so pass language or renderer instead",out_dir:"this hosted server returns the chart inline; it can't write to your machine",preview_html:"this hosted server returns the chart inline; it can't write to your machine"},Il=e=>`Not accepted by this hosted server: ${VR[e]}.`,r7={csv_path:C.string().optional().describe(Il("csv_path")),project_dir:C.string().optional().describe(Il("project_dir"))},GR={out_dir:C.string().optional().describe(Il("out_dir")),preview_html:C.boolean().optional().describe(Il("preview_html"))},Jb=C.enum(["javascript","typescript","python",""]).optional(),KR=["csv_path","project_dir","out_dir","preview_html"],ZR={assess_data_shape:{description:`Profile a dataset: per-column types, cardinality, ranges, measure/dimension roles, temporal/ordinal detection, and cross-column signals (nesting, shared values, association) - the same measurement engine the BIC Power BI visual uses before generating a chart. Pass the table as data ({columns, rows}) or csv_text. ${Hi} This tool sends nothing on.`,inputs:{csv_path:r7.csv_path},refuse:["csv_path"]},list_eligible_charts:{description:"The AUTHORITATIVE list of chart types (maps, tables a reader works with and app widgets included) that can render this dataset - the server's own eligibility engine, NOT a guess. Pass the table as data ({columns, rows}) or csv_text. "+Hi+" Ranked for JavaScript (D3) unless you pass language ('python' ranks Plotly and matplotlib) or renderer ('D3'/'PLOTLY'/... for one renderer, '' for every renderer). No model runs, but the call is METERED: free within a generous hourly allowance, then usage credits per call.",inputs:{...r7,language:Jb.describe("Project source language: javascript/typescript ranks D3, python ranks Plotly and matplotlib. Omit for JavaScript; `renderer`, when given, overrides it.")},refuse:["csv_path","project_dir"]},generate_chart:{description:`Generate ready-to-render chart code for a dataset: the backend picks a suitable chart type (or honors chart_type) and returns code that has passed its eligibility gates and quality checks. Pass the table as data ({columns, rows}) or csv_text. ${Hi} The code and the render-ready data come back inline in the reply; this server writes no files. JavaScript (D3) unless you pass language or renderer. The D3 code is a portable render(container, data, options) function meant to be MERGED into your own app; an integration contract describes exactly how to call it. A generation uses your account's credits. ${I0}`,inputs:{...r7,...GR,language:Jb.describe("Project source language: javascript/typescript generates D3 (the renderer @bicharts/chart-host draws), python lets the backend pick within Plotly/matplotlib. Omit for JavaScript (D3); `renderer`, when given, overrides it.")},refuse:KR},preview_request:{description:`Shows exactly what a chart generation would send on for these arguments - the measured shape of your data (column names, types, counts, ranges), the settings, and whether any sample rows travel - with the credentials removed. It sends nothing on and costs nothing. ${Hi} Takes the same arguments as a generation.`,inputs:{...r7,...GR},refuse:KR},check_request:{description:`Checks a chart request against this data before anything is generated. Takes the same arguments as a generation - the chart type and every setting (date grain, limit, overlay, required columns, rows policy, data labels and the rest) - and answers, in the server's own words, each ask this data can't honor and why: a channel the data doesn't have, too little of one for the ask, or a name the catalog doesn't know. When the chart type itself is denied, it also lists up to five chart types that fit this data, best fit first. An OK names the asks it checked. Pass the table as data ({columns, rows}) or csv_text. ${Hi} No model runs and no generation credits are spent, but the call is METERED like the eligibility list: free within a generous hourly allowance, then usage credits per call. The reply carries a text block and a structured result: the verdict (OK or DENY), the asks checked, each finding with its kind and reason, and the alternatives.`,inputs:{...r7,language:Jb.describe("Project source language: javascript/typescript checks the request as a D3 generation, python as a Plotly/matplotlib one. Omit for JavaScript (D3); `renderer`, when given, overrides it.")},refuse:["csv_path","project_dir"]},get_guide:{description:"How to build an app with these charts, from the guide this server ships. Free, and it sends nothing on. topic 'fabric-app' (the default) is what a Microsoft Fabric App on the Rayfin data app template needs; 'all' is the whole guide, including Blazor; 'chart-shapes' lists every chart type with the columns, limits and renderers it needs; 'settings' lists the choices a person can make about a chart, with their options and defaults. Some steps the guide describes, the ones that write into a project, need the local server (npx -y @bicharts/chart-mcp) rather than this one."}};function qR(e,t){let a=(t??[]).filter(r=>{let n=e?.[r];return n!=null&&n!==!1&&n!==""});return a.length===0?null:a.map(r=>`${r} isn't accepted here: ${VR[r]}.`).join(" ")}var JR=["This is RegiaBI's hosted chart server: it builds charts, maps, tables a reader works with and app widgets from a table you send. A request for RegiaBI means these tools.",Hi+" It can't reach your files: pass each table as data ({columns, rows}) or csv_text; the chart comes back inline.","Which visuals suit the data? Answer from list_eligible_charts, not general knowledge.","Six rules for charts that fit on the first try:","1. Pass the chart's WHOLE result at its grain, not a sample: counts decide what fits.","2. Name columns as your app renders them (rename Table[Column] first), unchanged at render time.","3. To pick a type, call list_eligible_charts on that data first and choose what answers the question as asked. Pass chart_type only for a type the person named; else leave it unset and the engine chooses. Named a type or ask? Run check_request first; say what it denies and why, don't generate around it. Build no input beside a visual's own controls.","4. Host the code with @bicharts/chart-host. generate_chart returns the code, the render-ready rows and the binding: pass them as is; never hand-build __rowIdx__ or __geo* columns.","5. Use `prompt` for what the chart shows; selection, cross-filtering, sizing and theming are the host's: filter with useBicFilter + selects (a lasso too), read a chart's sliders with useBicControls + controls (@bicharts/chart-host/react). Never write a select handler, toggle or clear.","6. The person chooses chart forms (familiar or unusual), language and region, and how much data shows (get_guide topic 'settings'). Unstated: ask once, one question listing the options, before the first generate_chart; pass only what they say, never a guess from the data. Can't ask: use defaults and report in your final message what `settings` shows the engine chose.","Building an app? get_guide has the setup; the local server (npx -y @bicharts/chart-mcp) writes files into your app."].join(`
317
- `);function o7(e,t){return pl(e,t).dir??Sr(e??process.cwd())}var Qb="0.6.107",eE=[],Ki=null,Dt={registerTool(e,t,a){eE.push({name:e,config:t,cb:a})},get server(){if(!Ki)throw new Error("The local server isn't running in this process.");return Ki.server}};function QR(e){let t=e?new d8({name:"bic-chart",version:Qb},{instructions:JR}):new d8({name:"bic-chart",version:Qb},{instructions:tR});e||(t.server.registerCapabilities({logging:{}}),sT(a=>{t.server.sendLoggingMessage({level:"notice",logger:"sign-in",data:a}).catch(()=>{})}));for(let a of eE){if(e&&!XR.includes(a.name))continue;let r=e?ZR[a.name]:void 0,n={...a.config,...r?{description:r.description,inputSchema:{...a.config.inputSchema,...r.inputs??{}}}:{},annotations:{title:a.config.title,...a.config.annotations}},i=r?.refuse?(o,s)=>{let l=qR(o,r.refuse);return l?{isError:!0,content:[{type:"text",text:l}]}:a.cb(o,s)}:a.cb;t.registerTool(a.name,n,i)}return t}var i7="2026-10-31T01:48:19Z src:4943fa82b031 (46 files)",eN="@bicharts/chart-host@0.6.107, @bicharts/shape-core@0.6.107",C4e=C.object({columns:C.array(C.object({name:C.string(),dataType:C.enum(["String","Integer","Decimal","DateTime"]).optional().describe("Known type (DAX/semantic-model callers have it); omit to infer from values."),isMeasure:C.boolean().optional().describe("Known measure/dimension role; omit to apply the numeric-non-identifier heuristic. A semantic-model caller should set this."),format:C.string().optional().describe('Format string from the model (e.g. "$#,##0") \u2192 modelFormat.'),description:C.string().optional().describe("Column description from the model \u2192 modelDesc.")})).min(1),rows:C.array(C.union([C.array(C.any()),C.record(C.string(),C.any())])).min(1).describe("Rows as positional arrays aligned to columns, OR objects keyed by column name.")}).describe("A pre-typed {columns, rows} table (DAX query results, dataframe, arrow). Use INSTEAD of csv_path/csv_text."),aN={csv_path:C.string().optional().describe("Path to a CSV file (header row required)."),csv_text:C.string().optional().describe("Inline CSV text (alternative to csv_path)."),data:C4e.optional().describe("A pre-typed {columns, rows} table \u2014 the shape a Fabric DAX query / dataframe already has. Alternative to csv_path/csv_text; when columns carry isMeasure/format/description the shape matches PBI fidelity with no guessing."),measures:C.array(C.string()).optional().describe("Columns to treat as MEASURES (the PBI 'Values' well \u2014 fields the chart aggregates). Numeric non-identifier columns are measures by default."),dimensions:C.array(C.string()).optional().describe("Columns to treat as DIMENSIONS (a PBI category/axis well \u2014 fields to group/break by). Use for numeric codes/years that should NOT be aggregated."),formats:C.record(C.string(),C.string()).optional().describe(`Per-column number/date FORMAT STRING (e.g. {"Revenue":"$#,##0","Margin":"0.0%"}). PBI supplies these from its model; a CSV can't, so provide them to steer number formatting.`),descriptions:C.record(C.string(),C.string()).optional().describe("Per-column human DESCRIPTION \u2014 gives the model semantic context the bare column name lacks."),group_by:C.array(C.string()).optional().describe("Columns that are the PRIMARY series/breakdown (the PBI 'Group by' well); the backend leads the visualization with these."),non_additive:C.array(C.string()).optional().describe("MEASURE columns that must NOT be summed (a ratio/average/rate \u2014 use mean, never stack). Usually auto-detected; this is an authoritative override."),privacy_level:C.enum(["0","10","20","30"]).optional().describe("How much detail to compute/share: 0 names only, 10 +counts, 20 +detailed stats (default), 30 +obfuscated sample rows."),culture:gr(C.string().regex(/^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{1,8})*$/).max(35).refine(e=>fn(e)!==void 0,{error:e=>`'${String(e.input)}' is not a valid language tag; use a form such as 'de-DE', 'fr', 'ja-JP', 'es-419' or 'zh-Hant-TW'.`})).describe("The caller's language and region as a BCP 47 tag such as 'de-DE', 'fr' or 'ja-JP'. Default 'en-US'. It is the language the chart's own text is written in (titles, axis labels, legends, notes), and it breaks the tie when a CSV's numbers or dates are ambiguous: 12.500 as twelve thousand five hundred or twelve and a half, 05.03.2024 as 5 March or 3 May. Set it from the end user's locale when you know it; it does not translate the data.")};function Gi(e){return{measures:e.measures,dimensions:e.dimensions,formats:e.formats,descriptions:e.descriptions,groupBy:e.group_by,nonAdditive:e.non_additive,privacyLevel:e.privacy_level??"20",locale:e.culture||void 0}}function s7(e){if(e.data)return t0(e.data.columns,e.data.rows,Gi(e));if(e.csv_text)return sn(e.csv_text,Gi(e));if(e.csv_path)return sn(tN(Sr(e.csv_path),"utf-8"),Gi(e));throw new Error("Provide one of: data ({columns, rows}), csv_text, or csv_path.")}Dt.registerTool("assess_data_shape",{title:"Assess data shape",description:"Profile a dataset locally (no data leaves the machine): per-column types, cardinality, ranges, measure/dimension roles, temporal/ordinal detection, and cross-column signals (nesting, shared values, association). This is the same measurement engine the BIC Power BI visual uses before generating a chart.",inputSchema:aN,annotations:{readOnlyHint:!0,openWorldHint:!1}},async e=>{let t=s7(e),a={totalRows:t.totalRows,leafCardinality:t.index.getLeafCardinality(),columns:t.shape},r=t3()?null:GT(process.env);return{content:[{type:"text",text:JSON.stringify(a,null,2)},...r?[{type:"text",text:r}]:[]]}});Dt.registerTool("get_guide",{title:"Read the build guide",description:"How to build an app with these charts, from the guide this package ships. Local and free: no network, no credentials. topic 'fabric-app' (the default) is what a Microsoft Fabric App on the Rayfin data app template needs: what to pull, generating, wiring in React, the Fabric App section and the time-savers. 'all' is the whole guide, including Blazor. 'chart-shapes' lists every chart type with the columns, limits and renderers it needs. 'settings' lists the choices a person can make about a chart, with their options and defaults.",inputSchema:{topic:C.enum(sR).optional().describe("'fabric-app' (default), 'all', 'chart-shapes', or 'settings'.")},annotations:{readOnlyHint:!0,openWorldHint:!1}},async e=>{try{return{content:[{type:"text",text:lR(e.topic??"fabric-app")}]}}catch(t){return{isError:!0,content:[{type:"text",text:`The guide could not be read from this package (${t?.message??t}). It is also published as skills/bic-charts/SKILL.md inside @bicharts/chart-mcp on npm.`}]}}});Dt.registerTool("list_eligible_charts",{title:"List eligible chart types",description:"The AUTHORITATIVE list of chart types (maps, tables a reader works with and app widgets included) that can render this dataset \u2014 the server's own eligibility engine, NOT a local guess. Profiles the data locally, then sends that profile to the backend. NO LLM in the loop, but this is a NETWORK call and it is METERED \u2014 see the licensing note below. By default the tool DETECTS the project's language (JS/TS vs Python from the working dir) and returns the charts for THAT language, SCOPED and ordered by how well each type fits this data (best first; `order: 'variety'` favors newer and less-common types instead), each tagged with its source language and renderer. Pass `language` ('javascript'|'python') to force it, or `renderer` ('D3'/'PLOTLY'/\u2026) to rank one specific renderer, or renderer '' for the full renderer-agnostic eligibility across ALL renderers (also ranked, by chart type alone, with no renderer/language tag). If the language can't be auto-detected and none is given, the tool asks you to specify one. Needs an account: eligibility IS the engine, so programmatic access to it is licensed. With nothing configured, the first call opens a browser sign-in, waits for it and then answers (a license key in the environment is the alternative for a machine with no browser). Free within a generous hourly allowance; beyond it each call draws usage credits. The reply carries a text block and a structured table: one row per chart type with its rank, name, preview flag, fit verdict, description, language and renderer. Rows flagged alsoWorthALook are a few picks from below the top fits, drawn so an offer can include something different; the fit order itself never changes.",inputSchema:{...aN,language:C.enum(["javascript","typescript","python",""]).optional().describe("Project source language \u2192 the server ranks across that language's renderers (javascript/typescript = D3, python = Plotly/matplotlib). Omit to AUTO-DETECT from the working dir; `renderer` (if given) overrides this."),project_dir:C.string().optional().describe("Directory to auto-detect the project language from (default: the folder setup_fabric_app used, else the working directory or the one project folder directly inside it)."),renderer:C.enum(["D3","PLOTLY","PYMATPLOT",""]).optional().describe("Force a specific renderer (overrides `language`): a concrete renderer ranks that renderer's charts; '' = the full renderer-agnostic eligibility (all renderers, ranked by chart type alone). Omit to use `language`/auto-detection."),level_of_detail:gr(C.enum(["High","Medium","Low",""])).describe("The user's own preference for how much of the data to see, as they've stated it. 'High' = every observation as its own mark, 'Medium' = every row shown as a distribution, 'Low' = one mark per category. Ranks this list the same way a generation would. Unset when they haven't stated one; unset changes nothing."),chart_style:gr(C.enum(["traditional","non_traditional",""])).describe("The user's own preference for which family of charts the list covers, as they've stated it. 'traditional' lists only the familiar forms (bar, stacked and grouped bar, line, area, pie, donut, card, gauge), 'non_traditional' lists only the other chart types; a type outside the chosen family is left out. Unset when they haven't stated one; unset changes nothing."),name_filter:C.string().optional().describe("Show only chart types matching this text (the same matcher the Power BI and Excel chart-type lists use). Three tiers, first non-empty one wins outright: the term starting a WORD in the name ('gan' -> Gantt chart, and NOT Organization chart), then mid-word in the name ('eth' -> Choropleth), then the description. A name match therefore SUPPRESSES description matches. Case- and accent-insensitive and, by default, space- and punctuation-insensitive too ('barchart' and 'bar-chart' find Bar chart; see name_filter_match). Minimum two characters, and it never reorders - the picker's ranking is preserved and the ranks stay as issued. Applied after ranking and before `top`."),name_filter_match:C.enum(["loose","exact"]).optional().describe("How name_filter matches a name. 'loose' (the default) ignores accents, case, spaces and punctuation, so 'barchart' finds Bar chart. 'exact' folds accents and case and collapses repeated spaces, and nothing else: a name typed without its space or hyphen matches nothing. The same setting the Power BI and Excel chart-type lists offer."),order:C.enum(["fit","variety"]).optional().describe("How the list is ordered. 'fit' (the default) = by how well each chart type fits THIS data, nothing else - use it to choose a chart for a question. 'variety' = the picker's selection order, which favors newer and less-common types on purpose - use it when the user wants to explore or be surprised. Both lists hold the same chart types; only the order differs."),top:C.number().optional().describe("Show only the top-N ranked results. Omit for all."),width:C.number().optional().describe("Viewport width px (default 800) \u2014 affects small-viewport / facet-budget gates."),height:C.number().optional().describe("Viewport height px (default 600).")},outputSchema:Qz,annotations:{readOnlyHint:!0,openWorldHint:!0}},async e=>{let t=s7(e),a="",r="",n="",i="";if(e.renderer!==void 0)a=e.renderer;else if(e.language)r=e.language;else if(t3())r="javascript",n=" (language: javascript, this server's default - pass language or renderer for another)";else{let b=hl(o7(e.project_dir,$i));b.language?(r=b.language,n=` (auto-detected language: ${b.language} \u2014 ${b.reason})`):i=`Couldn't tell the project's language (${b.reason}), so this is the list across all renderers; pass language: "javascript" or "python", or project_dir, to narrow it.
319
+ `);function o7(e,t){return pl(e,t).dir??Sr(e??process.cwd())}var Qb="0.6.108",eE=[],Ki=null,Dt={registerTool(e,t,a){eE.push({name:e,config:t,cb:a})},get server(){if(!Ki)throw new Error("The local server isn't running in this process.");return Ki.server}};function QR(e){let t=e?new d8({name:"bic-chart",version:Qb},{instructions:JR}):new d8({name:"bic-chart",version:Qb},{instructions:tR});e||(t.server.registerCapabilities({logging:{}}),sT(a=>{t.server.sendLoggingMessage({level:"notice",logger:"sign-in",data:a}).catch(()=>{})}));for(let a of eE){if(e&&!XR.includes(a.name))continue;let r=e?ZR[a.name]:void 0,n={...a.config,...r?{description:r.description,inputSchema:{...a.config.inputSchema,...r.inputs??{}}}:{},annotations:{title:a.config.title,...a.config.annotations}},i=r?.refuse?(o,s)=>{let l=qR(o,r.refuse);return l?{isError:!0,content:[{type:"text",text:l}]}:a.cb(o,s)}:a.cb;t.registerTool(a.name,n,i)}return t}var i7="2026-10-31T13:09:14Z src:8ce6841f4d16 (46 files)",eN="@bicharts/chart-host@0.6.108, @bicharts/shape-core@0.6.108",C4e=C.object({columns:C.array(C.object({name:C.string(),dataType:C.enum(["String","Integer","Decimal","DateTime"]).optional().describe("Known type (DAX/semantic-model callers have it); omit to infer from values."),isMeasure:C.boolean().optional().describe("Known measure/dimension role; omit to apply the numeric-non-identifier heuristic. A semantic-model caller should set this."),format:C.string().optional().describe('Format string from the model (e.g. "$#,##0") \u2192 modelFormat.'),description:C.string().optional().describe("Column description from the model \u2192 modelDesc.")})).min(1),rows:C.array(C.union([C.array(C.any()),C.record(C.string(),C.any())])).min(1).describe("Rows as positional arrays aligned to columns, OR objects keyed by column name.")}).describe("A pre-typed {columns, rows} table (DAX query results, dataframe, arrow). Use INSTEAD of csv_path/csv_text."),aN={csv_path:C.string().optional().describe("Path to a CSV file (header row required)."),csv_text:C.string().optional().describe("Inline CSV text (alternative to csv_path)."),data:C4e.optional().describe("A pre-typed {columns, rows} table \u2014 the shape a Fabric DAX query / dataframe already has. Alternative to csv_path/csv_text; when columns carry isMeasure/format/description the shape matches PBI fidelity with no guessing."),measures:C.array(C.string()).optional().describe("Columns to treat as MEASURES (the PBI 'Values' well \u2014 fields the chart aggregates). Numeric non-identifier columns are measures by default."),dimensions:C.array(C.string()).optional().describe("Columns to treat as DIMENSIONS (a PBI category/axis well \u2014 fields to group/break by). Use for numeric codes/years that should NOT be aggregated."),formats:C.record(C.string(),C.string()).optional().describe(`Per-column number/date FORMAT STRING (e.g. {"Revenue":"$#,##0","Margin":"0.0%"}). PBI supplies these from its model; a CSV can't, so provide them to steer number formatting.`),descriptions:C.record(C.string(),C.string()).optional().describe("Per-column human DESCRIPTION \u2014 gives the model semantic context the bare column name lacks."),group_by:C.array(C.string()).optional().describe("Columns that are the PRIMARY series/breakdown (the PBI 'Group by' well); the backend leads the visualization with these."),non_additive:C.array(C.string()).optional().describe("MEASURE columns that must NOT be summed (a ratio/average/rate \u2014 use mean, never stack). Usually auto-detected; this is an authoritative override."),privacy_level:C.enum(["0","10","20","30"]).optional().describe("How much detail to compute/share: 0 names only, 10 +counts, 20 +detailed stats (default), 30 +obfuscated sample rows."),culture:gr(C.string().regex(/^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{1,8})*$/).max(35).refine(e=>fn(e)!==void 0,{error:e=>`'${String(e.input)}' is not a valid language tag; use a form such as 'de-DE', 'fr', 'ja-JP', 'es-419' or 'zh-Hant-TW'.`})).describe("The caller's language and region as a BCP 47 tag such as 'de-DE', 'fr' or 'ja-JP'. Default 'en-US'. It is the language the chart's own text is written in (titles, axis labels, legends, notes), and it breaks the tie when a CSV's numbers or dates are ambiguous: 12.500 as twelve thousand five hundred or twelve and a half, 05.03.2024 as 5 March or 3 May. Set it from the end user's locale when you know it; it does not translate the data.")};function Gi(e){return{measures:e.measures,dimensions:e.dimensions,formats:e.formats,descriptions:e.descriptions,groupBy:e.group_by,nonAdditive:e.non_additive,privacyLevel:e.privacy_level??"20",locale:e.culture||void 0}}function s7(e){if(e.data)return t0(e.data.columns,e.data.rows,Gi(e));if(e.csv_text)return sn(e.csv_text,Gi(e));if(e.csv_path)return sn(tN(Sr(e.csv_path),"utf-8"),Gi(e));throw new Error("Provide one of: data ({columns, rows}), csv_text, or csv_path.")}Dt.registerTool("assess_data_shape",{title:"Assess data shape",description:"Profile a dataset locally (no data leaves the machine): per-column types, cardinality, ranges, measure/dimension roles, temporal/ordinal detection, and cross-column signals (nesting, shared values, association). This is the same measurement engine the BIC Power BI visual uses before generating a chart.",inputSchema:aN,annotations:{readOnlyHint:!0,openWorldHint:!1}},async e=>{let t=s7(e),a={totalRows:t.totalRows,leafCardinality:t.index.getLeafCardinality(),columns:t.shape},r=t3()?null:GT(process.env);return{content:[{type:"text",text:JSON.stringify(a,null,2)},...r?[{type:"text",text:r}]:[]]}});Dt.registerTool("get_guide",{title:"Read the build guide",description:"How to build an app with these charts, from the guide this package ships. Local and free: no network, no credentials. topic 'fabric-app' (the default) is what a Microsoft Fabric App on the Rayfin data app template needs: what to pull, generating, wiring in React, the Fabric App section and the time-savers. 'all' is the whole guide, including Blazor. 'chart-shapes' lists every chart type with the columns, limits and renderers it needs. 'settings' lists the choices a person can make about a chart, with their options and defaults.",inputSchema:{topic:C.enum(sR).optional().describe("'fabric-app' (default), 'all', 'chart-shapes', or 'settings'.")},annotations:{readOnlyHint:!0,openWorldHint:!1}},async e=>{try{return{content:[{type:"text",text:lR(e.topic??"fabric-app")}]}}catch(t){return{isError:!0,content:[{type:"text",text:`The guide could not be read from this package (${t?.message??t}). It is also published as skills/bic-charts/SKILL.md inside @bicharts/chart-mcp on npm.`}]}}});Dt.registerTool("list_eligible_charts",{title:"List eligible chart types",description:"The AUTHORITATIVE list of chart types (maps, tables a reader works with and app widgets included) that can render this dataset \u2014 the server's own eligibility engine, NOT a local guess. Profiles the data locally, then sends that profile to the backend. NO LLM in the loop, but this is a NETWORK call and it is METERED \u2014 see the licensing note below. By default the tool DETECTS the project's language (JS/TS vs Python from the working dir) and returns the charts for THAT language, SCOPED and ordered by how well each type fits this data (best first; `order: 'variety'` favors newer and less-common types instead), each tagged with its source language and renderer. Pass `language` ('javascript'|'python') to force it, or `renderer` ('D3'/'PLOTLY'/\u2026) to rank one specific renderer, or renderer '' for the full renderer-agnostic eligibility across ALL renderers (also ranked, by chart type alone, with no renderer/language tag). If the language can't be auto-detected and none is given, the tool asks you to specify one. Needs an account: eligibility IS the engine, so programmatic access to it is licensed. With nothing configured, the first call opens a browser sign-in, waits for it and then answers (a license key in the environment is the alternative for a machine with no browser). Free within a generous hourly allowance; beyond it each call draws usage credits. The reply carries a text block and a structured table: one row per chart type with its rank, name, preview flag, fit verdict, description, language and renderer. Rows flagged alsoWorthALook are a few picks from below the top fits, drawn so an offer can include something different; the fit order itself never changes.",inputSchema:{...aN,language:C.enum(["javascript","typescript","python",""]).optional().describe("Project source language \u2192 the server ranks across that language's renderers (javascript/typescript = D3, python = Plotly/matplotlib). Omit to AUTO-DETECT from the working dir; `renderer` (if given) overrides this."),project_dir:C.string().optional().describe("Directory to auto-detect the project language from (default: the folder setup_fabric_app used, else the working directory or the one project folder directly inside it)."),renderer:C.enum(["D3","PLOTLY","PYMATPLOT",""]).optional().describe("Force a specific renderer (overrides `language`): a concrete renderer ranks that renderer's charts; '' = the full renderer-agnostic eligibility (all renderers, ranked by chart type alone). Omit to use `language`/auto-detection."),level_of_detail:gr(C.enum(["High","Medium","Low",""])).describe("The user's own preference for how much of the data to see, as they've stated it. 'High' = every observation as its own mark, 'Medium' = every row shown as a distribution, 'Low' = one mark per category. Ranks this list the same way a generation would. Unset when they haven't stated one; unset changes nothing."),chart_style:gr(C.enum(["traditional","non_traditional",""])).describe("The user's own preference for which family of charts the list covers, as they've stated it. 'traditional' lists only the familiar forms (bar, stacked and grouped bar, line, area, pie, donut, card, gauge), 'non_traditional' lists only the other chart types; a type outside the chosen family is left out. Unset when they haven't stated one; unset changes nothing."),name_filter:C.string().optional().describe("Show only chart types matching this text (the same matcher the Power BI and Excel chart-type lists use). Three tiers, first non-empty one wins outright: the term starting a WORD in the name ('gan' -> Gantt chart, and NOT Organization chart), then mid-word in the name ('eth' -> Choropleth), then the description. A name match therefore SUPPRESSES description matches. Case- and accent-insensitive and, by default, space- and punctuation-insensitive too ('barchart' and 'bar-chart' find Bar chart; see name_filter_match). Minimum two characters, and it never reorders - the picker's ranking is preserved and the ranks stay as issued. Applied after ranking and before `top`."),name_filter_match:C.enum(["loose","exact"]).optional().describe("How name_filter matches a name. 'loose' (the default) ignores accents, case, spaces and punctuation, so 'barchart' finds Bar chart. 'exact' folds accents and case and collapses repeated spaces, and nothing else: a name typed without its space or hyphen matches nothing. The same setting the Power BI and Excel chart-type lists offer."),order:C.enum(["fit","variety"]).optional().describe("How the list is ordered. 'fit' (the default) = by how well each chart type fits THIS data, nothing else - use it to choose a chart for a question. 'variety' = the picker's selection order, which favors newer and less-common types on purpose - use it when the user wants to explore or be surprised. Both lists hold the same chart types; only the order differs."),top:C.number().optional().describe("Show only the top-N ranked results. Omit for all."),width:C.number().optional().describe("Viewport width px (default 800) \u2014 affects small-viewport / facet-budget gates."),height:C.number().optional().describe("Viewport height px (default 600).")},outputSchema:Qz,annotations:{readOnlyHint:!0,openWorldHint:!0}},async e=>{let t=s7(e),a="",r="",n="",i="";if(e.renderer!==void 0)a=e.renderer;else if(e.language)r=e.language;else if(t3())r="javascript",n=" (language: javascript, this server's default - pass language or renderer for another)";else{let b=hl(o7(e.project_dir,$i));b.language?(r=b.language,n=` (auto-detected language: ${b.language} \u2014 ${b.reason})`):i=`Couldn't tell the project's language (${b.reason}), so this is the list across all renderers; pass language: "javascript" or "python", or project_dir, to narrow it.
318
320
  `}let o=await Zy({shape:t.shape,totalRows:t.totalRows,leafCardinality:t.index.getLeafCardinality(),dataComplete:sb(e,t3()),geoExtent:t.index.getGeoExtent(),width:e.width,height:e.height,renderer:a,language:r,levelOfDetail:e.level_of_detail||void 0,order:e.order??"fit",chartStyle:e.chart_style||void 0,mcpClient:tE()});if(!o.ok)return{isError:!0,content:[{type:"text",text:ul(o)?o.errorMessage:`Could not list eligible charts: ${o.errorMessage}`}]};let s=o.charts.length>0&&o.charts[0].rank!==void 0,l=r?`${r}`:a||"all renderers",u=o.charts,c=u.length,d="all",h=b=>eR({rows:b,order:e.order??"fit",eligibleCount:c,filter:e.name_filter?{text:e.name_filter,tier:d}:null,metering:yr}),p=lI(e.name_filter_match),m=L8(u,e.name_filter,W0,p);u=m.rows,d=m.tier;let g;if(s){e.top&&e.top>0&&(u=u.slice(0,e.top));let b=(e.order??"fit")==="variety"?'ordered for variety (newer and less-common types first; order: "fit" ranks by fit to this data)':'ordered by fit to this data (order: "variety" favors newer and less-common types)';g=`Top ${u.length} chart type(s) for this data in ${l}, ${b} (authoritative \u2014 the server's eligibility engine; ${yr})${n}:`}else g=`${u.length} chart type(s) can render this data \u2014 renderer-agnostic eligibility (authoritative \u2014 the server's eligibility engine; ${yr}):`;if(g=i+g,m.tier!=="all"){let b=m.tier==="desc"?" (no NAME matched; these matched on description)":m.tier==="namePart"?" (matched mid-word in the name)":"";g=`Filtered to "${e.name_filter}"${b}: ${u.length} of ${c} eligible chart type(s). The other ${c-u.length} are eligible and simply do not match the filter.
319
321
  `+g}let f=Yz(u);if(u.length===0&&m.tier!=="all"&&c>0){let b=L8(o.refused,e.name_filter,uI,p),v=b.tier==="name"||b.tier==="namePart"?b.rows.filter(W=>W.reason).slice(0,3):[],k=v.length>0?`
320
322
 
@@ -326,10 +328,10 @@ ${v.map(W=>`\u2022 ${W.name} \u2014 ${W.reason}`).join(`
326
328
  ${D} host contract v${hr}. A host implementing a DIFFERENT major
327
329
  ${D} version may not interoperate with this file's mark/slot grammar.
328
330
  ${D} Regenerate with the MCP generate_chart tool \u2014 hand edits are lost.
329
- `;W3(R,$+W,"utf-8");let Z=Ot(U,"data.sample.json");if(W3(Z,JSON.stringify({...k,meta:{hostContract:hr,chart:m.finalChartName,...z.answer?{hoverDropLines:z.answer}:{},...e.width?{width:e.width}:{},...e.height?{height:e.height}:{}}},null,2),"utf-8"),w.code=R,w.data=Z,S.push("",`Code written: ${R}`,`Sample data: ${Z}`),y){let H=Ot(U,"data.geo.json");W3(H,JSON.stringify(y),"utf-8"),w.geo=H,S.push(`Geometry: ${H} (pass as options.geo \u2014 REQUIRED for this ${b?"point map: it is the BASEMAP, not a join target":"choropleth"})`)}if(g){let H=Ot(U,"chart.component.tsx");W3(H,QT({chartName:m.finalChartName||"chart",columns:k.columns,geoKind:m.geoKind||"",binding:{geo:f??null,point:b??null,destination:v??null},plugins:Sb(W,g),defaultOptions:YT({culture:e.culture,chosen:z.defaultOptions}),lasso:x0(m.capabilities)}),"utf-8"),w.component=H,S.push(`React host: ${H} - import { ${K0(m.finalChartName||"chart")}, rowsFromTable } from it and render <${K0(m.finalChartName||"chart")} rows={rowsFromTable(queryResult)} width height onSelectRows />; it wires the group, the binding, the plugins, the legend and frame fit (layoutPass, built once at module scope; needs @bicharts/chart-host 0.6.86 or later) and the click contract (needs a bundler that imports "./chart.js?raw", as Vite does).`+(m.capabilities?.lasso?` This chart type takes the host lasso, so the component passes options.lasso and a drag around marks selects the ones inside through the same selection a click makes. ${QI}`:""))}if(e.preview_html&&g){let H=ez({code:m.code,data:k,width:e.width,height:e.height,title:m.finalChartName||"BIC chart preview",geo:y,geoUnmatched:k.geoUnmatched,geoPoint:k.geoPoint,geoPointDest:k.geoPointDest}),O=Ot(U,"preview.html");W3(O,H,"utf-8"),w.preview=O,S.push(`Preview written: ${O} (open in a browser; loads d3 from CDN)`)}}let N=fz(e);N&&S.push("","--- code ---",W);let P=Sb(W,g);return P.length>0&&S.push("",`D3 plugins required: ${P.join(", ")} \u2014 install them and pass the host ONE d3 that carries them: assembleD3(d3, { ...plugins }) from @bicharts/chart-host (an ES-module d3 namespace cannot be assigned onto).`),S.push("",`(bic-chart MCP build ${i7})`),{content:[{type:"text",text:S.join(`
331
+ `;W3(R,$+W,"utf-8");let Z=Ot(U,"data.sample.json");if(W3(Z,JSON.stringify({...k,meta:{hostContract:hr,chart:m.finalChartName,...z.answer?{hoverDropLines:z.answer}:{},...e.width?{width:e.width}:{},...e.height?{height:e.height}:{}}},null,2),"utf-8"),w.code=R,w.data=Z,S.push("",`Code written: ${R}`,`Sample data: ${Z}`),y){let H=Ot(U,"data.geo.json");W3(H,JSON.stringify(y),"utf-8"),w.geo=H,S.push(`Geometry: ${H} (pass as options.geo \u2014 REQUIRED for this ${b?"point map: it is the BASEMAP, not a join target":"choropleth"})`)}if(g){let H=Ot(U,"chart.component.tsx");W3(H,QT({chartName:m.finalChartName||"chart",columns:k.columns,geoKind:m.geoKind||"",binding:{geo:f??null,point:b??null,destination:v??null},plugins:Sb(W,g),defaultOptions:YT({culture:e.culture,chosen:z.defaultOptions}),lasso:x0(m.capabilities)}),"utf-8"),w.component=H,S.push(`React host: ${H} - import { ${K0(m.finalChartName||"chart")}, rowsFromTable } from it and render <${K0(m.finalChartName||"chart")} rows={rowsFromTable(queryResult)} width height onSelectRows />; it wires the group, the binding, the plugins, the legend and frame fit (layoutPass, built once at module scope; needs @bicharts/chart-host 0.6.86 or later) and the click contract (needs a bundler that imports "./chart.js?raw", as Vite does).`+(m.capabilities?.lasso?` This chart type takes the host lasso, so the component passes options.lasso and a drag around marks selects the ones inside through the same selection a click makes. ${QI}`:""))}if(e.preview_html&&g){let H=ez({code:m.code,data:k,width:e.width,height:e.height,title:m.finalChartName||"BIC chart preview",geo:y,geoUnmatched:k.geoUnmatched,geoPoint:k.geoPoint,geoPointDest:k.geoPointDest,geoPointRefused:k.geoPointRefused}),O=Ot(U,"preview.html");W3(O,H,"utf-8"),w.preview=O,S.push(`Preview written: ${O} (open in a browser; loads d3 from CDN)`)}}let N=fz(e);N&&S.push("","--- code ---",W);let P=Sb(W,g);return P.length>0&&S.push("",`D3 plugins required: ${P.join(", ")} \u2014 install them and pass the host ONE d3 that carries them: assembleD3(d3, { ...plugins }) from @bicharts/chart-host (an ES-module d3 namespace cannot be assigned onto).`),S.push("",`(bic-chart MCP build ${i7})`),{content:[{type:"text",text:S.join(`
330
332
  `)}],structuredContent:yz({res:m,renderData:k,code:W,withCode:N,plugins:P,hasGeometry:!!y,files:e.out_dir?w:void 0,integrationContract:M,optionsRead:yb(W,g),...z.state!=="none"?{dropLines:{state:z.state,...z.askUser?{askUser:z.askUser}:{}}}:{},settings:E.block,hostContract:hr,build:i7,binding:{geo:f??null,point:b??null,destination:v??null}})}});Dt.registerTool("preview_request",{title:"Preview what a request sends",description:"Shows exactly what a chart generation would send to the BIC backend for these arguments - the measured shape of your data (column names, types, counts, ranges), the settings, and whether any sample rows travel - with the credentials removed. SENDS NOTHING and needs no license: it is local and free. Takes the same arguments as a generation. It answers 'what data leaves my machine?'; the eligibility list sends a subset of the same shape.",inputSchema:rN,annotations:{readOnlyHint:!0,openWorldHint:!1}},async e=>{let t=e.privacy_level??"20",a=await of(s7(e),t),{req:r,genNote:n}=nN(e,a),{head:i,preview:o}=JT(r,t,n);return{content:[{type:"text",text:`${i}
331
333
 
332
- ${JSON.stringify(o,null,2)}`}]}});var{out_dir:cfe,preview_html:dfe,include_code:hfe,wrap:pfe,...A4e}=rN;Dt.registerTool("check_request",{title:"Check a chart request against the data",description:"Checks a chart request against this data before anything is generated. Takes the same arguments as a generation - the chart type and every setting (date grain, limit, overlay, required columns, rows policy, data labels and the rest) - and answers, in the server's own words, each ask this data can't honor and why: a channel the data doesn't have, too little of one for the ask, or a name the catalog doesn't know. When the chart type itself is denied, it also lists up to five chart types that fit this data, best fit first. An OK names the asks it checked. Profiles the data locally and sends that profile, as a generation would; no sample rows travel. NO LLM in the loop and no generation credits are spent, but this is a NETWORK call and it is METERED like the eligibility list: free within a generous hourly allowance, then usage credits per call. Needs an account: with nothing configured, the first call opens a browser sign-in (a license key in the environment is the alternative). The reply carries a text block and a structured result: the verdict (OK or DENY), the asks checked, each finding with its kind and reason, and the alternatives.",inputSchema:A4e,outputSchema:IT,annotations:{readOnlyHint:!0,openWorldHint:!0}},async e=>{let t=s7(e),{req:a}=nN(e,t),r=AT(await qT(a),_T(e,t.shape.map(s=>s.name))),n=UT(r,yr),i=!r.ok&&r.enabled,o=i&&!ul(r)?`Could not check the request: ${r.errorMessage}`:PT(r,yr);return{...i?{isError:!0}:{},content:[{type:"text",text:o}],structuredContent:n}});Dt.registerTool("check_chart",{title:"Check a generated chart locally",description:"Verify a generated chart locally before deploying: draws the chart.js that generate_chart wrote, headless, against its data - the rows query_semantic_model saved, a CSV, or the rows it was generated for - through @bicharts/chart-host, and reports in plain words: the marks drawn by kind, anything thrown (with the line), whether it came out blank, anything drawn outside its frame, and whether a click on a mark reaches onSelect with source rows. Takes seconds; local and free (no network, no credentials, nothing sent). Run it after each generate_chart instead of deploying to see whether a chart works, and check at the size the panel will give it: by default it reads minChartWidth and minChartHeight off the app's BicChartPanel around the chart (else the size it was generated for); pass width and height only for another size. A WARNING line is a label cut off at that size even at a narrow font's width; the reply says whether more room fixes it. The app's own legend and frame fit is NOT run in the check, so a label it flags may already be handled in the app. Never edit the generated chart code by hand to clear a finding: regenerate it (generate_chart, with a prompt describing the fix) or report it. It does not judge colors or real font widths.",inputSchema:{chart:C.string().optional().describe(`The chart's folder name under the project's src/charts (the out_dir given to generate_chart), e.g. "region-map".`),chart_path:C.string().optional().describe("Or the path of the chart.js generate_chart wrote, or the folder it is in."),project_dir:C.string().optional().describe("The app's folder. Defaults to the folder setup_fabric_app used, else the working directory or the one project folder inside it."),data_name:C.string().optional().describe("The name given to query_semantic_model: checks on the rows it saved (.bic/data/<name>.csv). Default: a saved file named like the chart's folder, else the rows the chart was generated for."),csv_path:C.string().optional().describe("Or a CSV with the chart's columns."),width:C.number().positive().optional().describe("The width in px to check at (default: the minChartWidth of the app's BicChartPanel around this chart, else the width it was generated for, else 800)."),height:C.number().positive().optional().describe("The height in px to check at (default: the minChartHeight of the app's BicChartPanel around this chart, else the height it was generated for, else 600).")},annotations:{readOnlyHint:!0,openWorldHint:!1}},async e=>{if(Number(process.versions.node.split(".")[0])<20)return{isError:!0,content:[{type:"text",text:`check_chart needs Node 20 or later to draw a chart (this is Node ${process.versions.node}).`}]};let a=o7(e.project_dir,$i),r=gl(e,{projectDir:a,profileColumns:(u,c)=>sn(u,Gi({...c,privacy_level:"20"})).shape.map(d=>({name:d.name,dataType:d.dataType,isMeasure:!!d.isMeasure}))});if(r.ok===!1)return{isError:!0,content:[{type:"text",text:r.error}]};let{job:n,context:i}=r,o=n.geoKind?J8(n.geoKind):void 0,{outcome:s,roomier:l}=await yl(n,u=>fl({...u,geo:o},new URL("./check-chart.mjs",import.meta.url)));return{content:[{type:"text",text:bl(s,i,{width:n.width,height:n.height},l)}]}});Zz(Dt);Dt.registerTool("setup_fabric_app",{title:"Set up a Fabric App for these charts",description:`Run once in a Microsoft Fabric App scaffolded from Rayfin's data app template, before the first chart: installs @bicharts/chart-host (at this server's version) and d3, adds src/lib/bic-chart-options.ts (the app's Fabric theme as chart options) and src/components/bic-chart-panel.tsx (a chart box that measures itself and shows the query's loading, error and empty states) and .agents/skills/regiabi-charts/SKILL.md, ignores .bic/, and puts every @microsoft/rayfin-* package on npm's latest, the release \`rayfin init\` installs (run it before rayfin init; every package.json range it changes is listed, and the reply names the Rayfin version installed). Never overwrites a file; the one template file it edits - a vi.mock that fixes the template's own validate-visual test under ESM - is named in the reply, as is the one line of src/main.tsx it points at src/lib/bic-css-theme.ts (the theme without bundling Vega). With features: ["notes"] and/or ["scenarios"] (once Rayfin's data service is on), it also adds finished notes-on-marks and saved-scenario files - the Rayfin entities, registered in rayfin/data/schema.ts, a hook each, a notes dialog and a scenarios panel - built on chart-host's useBicFilter / useBicControls; write none of that by hand. Replies with a worked example that renders a generated chart from a live query.`,inputSchema:{project_dir:C.string().optional().describe("The Fabric App project folder. Defaults to the working directory, or the one Fabric App folder directly inside it."),skip_install:C.boolean().optional().describe("Add the files only; don't run npm install."),features:C.array(C.enum(["notes","scenarios"])).optional().describe(`Also add finished files for readers' notes on chart marks ("notes") and saved settings of a chart's own controls ("scenarios", e.g. a What-if chart's rate). Needs Rayfin's data service on (rayfin/data/schema.ts); the reply says the command when it isn't. Never overwrites.`)},annotations:{readOnlyHint:!1,destructiveHint:!1,idempotentHint:!0,openWorldHint:!0}},async e=>{let t=o7(e.project_dir,Ub),a=nb(t);if(!a.ok)return{isError:!0,content:[{type:"text",text:`Not set up: ${a.why}. Scaffold it first with npx -y @microsoft/create-rayfin --template dataapp, then run this in that folder (or pass project_dir).`}]};let r=[],n=kx(a.has,wx(eN),process.env.BIC_CHART_HOST_SPEC||void 0,a.ranges);if(e.skip_install)(n.deps.length||n.devDeps.length)&&r.push(`still to install: npm install ${n.deps.join(" ")} && npm install -D ${n.devDeps.join(" ")}`.trim());else{for(let[d,h]of[[n.deps,!1],[n.devDeps,!0]]){if(!d.length)continue;let p=["install",...h?["-D"]:[],...d];try{await ab(t,p),r.push(`installed: npm ${p.join(" ")}`)}catch(m){return{isError:!0,content:[{type:"text",text:`npm ${p.join(" ")} failed in ${t}: ${m?.message??m}
334
+ ${JSON.stringify(o,null,2)}`}]}});var{out_dir:hfe,preview_html:pfe,include_code:mfe,wrap:gfe,...A4e}=rN;Dt.registerTool("check_request",{title:"Check a chart request against the data",description:"Checks a chart request against this data before anything is generated. Takes the same arguments as a generation - the chart type and every setting (date grain, limit, overlay, required columns, rows policy, data labels and the rest) - and answers, in the server's own words, each ask this data can't honor and why: a channel the data doesn't have, too little of one for the ask, or a name the catalog doesn't know. When the chart type itself is denied, it also lists up to five chart types that fit this data, best fit first. An OK names the asks it checked. Profiles the data locally and sends that profile, as a generation would; no sample rows travel. NO LLM in the loop and no generation credits are spent, but this is a NETWORK call and it is METERED like the eligibility list: free within a generous hourly allowance, then usage credits per call. Needs an account: with nothing configured, the first call opens a browser sign-in (a license key in the environment is the alternative). The reply carries a text block and a structured result: the verdict (OK or DENY), the asks checked, each finding with its kind and reason, and the alternatives.",inputSchema:A4e,outputSchema:IT,annotations:{readOnlyHint:!0,openWorldHint:!0}},async e=>{let t=s7(e),{req:a}=nN(e,t),r=AT(await qT(a),_T(e,t.shape.map(s=>s.name))),n=UT(r,yr),i=!r.ok&&r.enabled,o=i&&!ul(r)?`Could not check the request: ${r.errorMessage}`:PT(r,yr);return{...i?{isError:!0}:{},content:[{type:"text",text:o}],structuredContent:n}});Dt.registerTool("check_chart",{title:"Check a generated chart locally",description:"Verify a generated chart locally before deploying: draws the chart.js that generate_chart wrote, headless, against its data - the rows query_semantic_model saved, a CSV, or the rows it was generated for - through @bicharts/chart-host, and reports in plain words: the marks drawn by kind, anything thrown (with the line), whether it came out blank, anything drawn outside its frame, and whether a click on a mark reaches onSelect with source rows. Takes seconds; local and free (no network, no credentials, nothing sent). Run it after each generate_chart instead of deploying to see whether a chart works, and check at the size the panel will give it: by default it reads minChartWidth and minChartHeight off the app's BicChartPanel around the chart (else the size it was generated for); pass width and height only for another size. A WARNING line is a label cut off at that size even at a narrow font's width; the reply says whether more room fixes it. The app's own legend and frame fit is NOT run in the check, so a label it flags may already be handled in the app. Never edit the generated chart code by hand to clear a finding: regenerate it (generate_chart, with a prompt describing the fix) or report it. It does not judge colors or real font widths.",inputSchema:{chart:C.string().optional().describe(`The chart's folder name under the project's src/charts (the out_dir given to generate_chart), e.g. "region-map".`),chart_path:C.string().optional().describe("Or the path of the chart.js generate_chart wrote, or the folder it is in."),project_dir:C.string().optional().describe("The app's folder. Defaults to the folder setup_fabric_app used, else the working directory or the one project folder inside it."),data_name:C.string().optional().describe("The name given to query_semantic_model: checks on the rows it saved (.bic/data/<name>.csv). Default: a saved file named like the chart's folder, else the rows the chart was generated for."),csv_path:C.string().optional().describe("Or a CSV with the chart's columns."),width:C.number().positive().optional().describe("The width in px to check at (default: the minChartWidth of the app's BicChartPanel around this chart, else the width it was generated for, else 800)."),height:C.number().positive().optional().describe("The height in px to check at (default: the minChartHeight of the app's BicChartPanel around this chart, else the height it was generated for, else 600).")},annotations:{readOnlyHint:!0,openWorldHint:!1}},async e=>{if(Number(process.versions.node.split(".")[0])<20)return{isError:!0,content:[{type:"text",text:`check_chart needs Node 20 or later to draw a chart (this is Node ${process.versions.node}).`}]};let a=o7(e.project_dir,$i),r=gl(e,{projectDir:a,profileColumns:(u,c)=>sn(u,Gi({...c,privacy_level:"20"})).shape.map(d=>({name:d.name,dataType:d.dataType,isMeasure:!!d.isMeasure}))});if(r.ok===!1)return{isError:!0,content:[{type:"text",text:r.error}]};let{job:n,context:i}=r,o=n.geoKind?J8(n.geoKind):void 0,{outcome:s,roomier:l}=await yl(n,u=>fl({...u,geo:o},new URL("./check-chart.mjs",import.meta.url)));return{content:[{type:"text",text:bl(s,i,{width:n.width,height:n.height},l)}]}});Zz(Dt);Dt.registerTool("setup_fabric_app",{title:"Set up a Fabric App for these charts",description:`Run once in a Microsoft Fabric App scaffolded from Rayfin's data app template, before the first chart: installs @bicharts/chart-host (at this server's version) and d3, adds src/lib/bic-chart-options.ts (the app's Fabric theme as chart options) and src/components/bic-chart-panel.tsx (a chart box that measures itself and shows the query's loading, error and empty states) and .agents/skills/regiabi-charts/SKILL.md, ignores .bic/, and puts every @microsoft/rayfin-* package on npm's latest, the release \`rayfin init\` installs (run it before rayfin init; every package.json range it changes is listed, and the reply names the Rayfin version installed). Never overwrites a file; the one template file it edits - a vi.mock that fixes the template's own validate-visual test under ESM - is named in the reply, as is the one line of src/main.tsx it points at src/lib/bic-css-theme.ts (the theme without bundling Vega). With features: ["notes"] and/or ["scenarios"] (once Rayfin's data service is on), it also adds finished notes-on-marks and saved-scenario files - the Rayfin entities, registered in rayfin/data/schema.ts, a hook each, a notes dialog and a scenarios panel - built on chart-host's useBicFilter / useBicControls; write none of that by hand. Replies with a worked example that renders a generated chart from a live query.`,inputSchema:{project_dir:C.string().optional().describe("The Fabric App project folder. Defaults to the working directory, or the one Fabric App folder directly inside it."),skip_install:C.boolean().optional().describe("Add the files only; don't run npm install."),features:C.array(C.enum(["notes","scenarios"])).optional().describe(`Also add finished files for readers' notes on chart marks ("notes") and saved settings of a chart's own controls ("scenarios", e.g. a What-if chart's rate). Needs Rayfin's data service on (rayfin/data/schema.ts); the reply says the command when it isn't. Never overwrites.`)},annotations:{readOnlyHint:!1,destructiveHint:!1,idempotentHint:!0,openWorldHint:!0}},async e=>{let t=o7(e.project_dir,Ub),a=nb(t);if(!a.ok)return{isError:!0,content:[{type:"text",text:`Not set up: ${a.why}. Scaffold it first with npx -y @microsoft/create-rayfin --template dataapp, then run this in that folder (or pass project_dir).`}]};let r=[],n=kx(a.has,wx(eN),process.env.BIC_CHART_HOST_SPEC||void 0,a.ranges);if(e.skip_install)(n.deps.length||n.devDeps.length)&&r.push(`still to install: npm install ${n.deps.join(" ")} && npm install -D ${n.devDeps.join(" ")}`.trim());else{for(let[d,h]of[[n.deps,!1],[n.devDeps,!0]]){if(!d.length)continue;let p=["install",...h?["-D"]:[],...d];try{await ab(t,p),r.push(`installed: npm ${p.join(" ")}`)}catch(m){return{isError:!0,content:[{type:"text",text:`npm ${p.join(" ")} failed in ${t}: ${m?.message??m}
333
335
  Nothing else was changed; fix the install and run this again.`}]}}}!n.deps.length&&!n.devDeps.length&&r.push("packages: already installed")}r.push(...await Ax(t,{install:!e.skip_install})),r.push(...Mx(t));let i=_x(nb(t));for(let[d,h]of Object.entries(i)){let p=Ot(t,d);if(YR(p)){r.push(`kept yours: ${d}`);continue}Tl(Ot(p,".."),{recursive:!0}),W3(p,h,"utf-8"),r.push(`added: ${d}`)}r.push(...Cx(t)),r.push(...zx(t,e.features??[],ib)),i["src/lib/bic-chart-options.ts"]||r.push("no theme bridge: this project's @microsoft/fabric-visuals has no useCssTheme; pass palette/themeFg/backgroundColor in options yourself"),Az(t);let o=Ot(t,".gitignore"),s=YR(o)?tN(o,"utf-8"):"",l=Px(s);l!==s&&(W3(o,l,"utf-8"),r.push("ignored: .bic/ in .gitignore"));let u=Sx(a.access);return{content:[{type:"text",text:["The project is ready for charts:",...r.map(d=>`- ${d}`),...u?[`- ${u}`]:[],"","Per chart: query_semantic_model (its DAX) -> list_eligible_charts -> generate_chart with out_dir src/charts/<name> (writes chart.js and chart.component.tsx), then render it like this:","```tsx",Ux(a.access),"```"].join(`
334
336
  `)}]}});function aE(e,t){let a=o7(e,Ub),r=Z0(a);if(!r)return{error:`No Fabric App in ${a}: it has neither rayfin/rayfin.yml nor fabric.yaml. Pass project_dir as the Fabric App's folder, or scaffold one with npx -y @microsoft/create-rayfin --template dataapp.`};let n=t||(r.aliases.length===1?r.aliases[0]:"");if(!n)return{error:mx(r,a)};let i=px(a,r,n);return"error"in i?{error:`${i.error} Pass project_dir as the Fabric App's folder if this isn't it.`}:{projectDir:a,alias:n,run:i}}Dt.registerTool("query_semantic_model",{title:"Query the semantic model for a chart",description:"In a Microsoft Fabric App built on Rayfin's data app template: runs one chart's DAX query through the project's own tooling - its semantic model's Rayfin connector (rayfin/rayfin.yml), or on the template's older layout its `fabric-app-data` CLI - renames the `Table[Column]` and `[Measure]` headers to plain names (the names the chart.component.tsx that generate_chart writes will match on live rows), saves EVERY row as CSV, reads each column's role, format and description from the model, and profiles the result. Replaces the query, rename, save and profile steps with one call, and returns the arguments to pass to list_eligible_charts and generate_chart. Write the query at the chart's grain (one row per country for a country map). Local: the data goes only where the project's own tooling already sends it, and nothing reaches the chart server.",inputSchema:{dax:C.string().optional().describe("The chart's DAX query (EVALUATE ...). Or pass dax_file."),dax_file:C.string().optional().describe("Path to a .dax file holding the query, instead of dax."),name:C.string().regex(/^[A-Za-z0-9][A-Za-z0-9._-]*$/).describe(`A file name for this chart's data, e.g. "region-map" (saved as <name>.csv).`),project_dir:C.string().optional().describe("The Fabric App project folder (holds rayfin/rayfin.yml, or fabric.yaml, and node_modules). Defaults to the folder setup_fabric_app used, else the working directory or the one Fabric App folder directly inside it."),alias:C.string().optional().describe("The semantic model's connector name in rayfin/rayfin.yml (the template's older layout: its alias in fabric.yaml) - the same name the app passes as connection. Needed only when more than one is declared."),out_dir:C.string().optional().describe("Where to save the CSV. Defaults to <project_dir>/.bic/data.")},annotations:{readOnlyHint:!1,destructiveHint:!1,idempotentHint:!0,openWorldHint:!0}},async e=>{let t=M=>({isError:!0,content:[{type:"text",text:M}]}),a=aE(e.project_dir,e.alias);if("error"in a)return t(a.error);let{projectDir:r,alias:n,run:i}=a,o=e.dax??(e.dax_file?tN(Sr(r,e.dax_file),"utf-8"):"");if(!o.trim())return t("Provide the chart's query as dax, or a dax_file.");let s;try{s=await i(o)}catch(M){return t(`The query failed (model alias "${n}"): ${M?.message??M}`)}let l=s.table.columns.map(M=>M.name);if(!s.table.rows.length)return t(`The query ran and returned no rows (columns: ${l.join(", ")||"none"}). Nothing was saved: a chart needs rows.`);let u=X0(l),c=ux(l),d="",h=M=>M?i(M).then(z=>z.table).catch(z=>(d=`(The model's roles and formats could not be read: ${z?.message??z}. The profile guessed them.)`,null)):Promise.resolve(null),[p,m]=await Promise.all([h(c.measures),h(c.columns)]),g=cx(l,u,p,m),f=Sr(r,e.out_dir??Ot(".bic","data"));Tl(f,{recursive:!0});let y=Ot(f,`${e.name}.csv`),b=V0(u.plain,s.table.rows);W3(y,b,"utf-8");let v={csv_path:y};g.measures.length&&(v.measures=g.measures),g.dimensions.length&&(v.dimensions=g.dimensions),Object.keys(g.formats).length&&(v.formats=g.formats),Object.keys(g.descriptions).length&&(v.descriptions=g.descriptions);let k=tl(s);W3(Ot(f,`${e.name}.query.json`),JSON.stringify({alias:n,dax:o,rename:u.rename,...v,...al(k)},null,2)+`
335
337
  `,"utf-8");let W=sn(b,Gi({...v,privacy_level:"20"}));return{content:[{type:"text",text:[`Saved ${s.table.rows.length} rows x ${l.length} columns to ${y} (the query and rename map beside it, ${e.name}.query.json).`,...k?[`WARNING: ${s.warning??`at most ${yn} rows of a query are kept`}. Eligibility and the chart will read a CUT result: aggregate the query to the chart's grain so it fits.`]:[],"",`Renamed: ${l.map((M,z)=>M===u.plain[z]?M:`${M} -> ${u.plain[z]}`).join("; ")}`,...u.qualified.length?[`${u.qualified.join(", ")} shared a name with another column, so each carries its table's name. At run time pass this rename map as rowsFromTable(table, rename): `+JSON.stringify(Object.fromEntries(u.qualified.map(M=>[M,u.rename[M]])))]:[],...d?[d]:[],"","Pass these to list_eligible_charts, then to generate_chart (with its prompt and out_dir):",JSON.stringify(v,null,2),"",`Profile (${W.totalRows} rows; ${W.index.getLeafCardinality()} distinct row keys):`,...W.shape.map(M=>`- ${M.name}: ${M.dataType}, ${M.isMeasure?"measure":"dimension"}, ${M.distinctCount} distinct${M.blankCount?`, ${M.blankCount} blank`:""}${M.isTemporal?", temporal":""}${M.geoKind?`, ${M.geoKind} (${M.geoMatchPct}% matched)`:""}`+(M.isMeasure&&M.lowValue!=null?`, ${M.lowValue} to ${M.highValue}`:""))].join(`