├── .gitignore ├── src ├── chrome │ └── extension_info.json ├── firefox │ └── extension_info.json ├── common │ ├── icons │ │ ├── button.png │ │ ├── icon100.png │ │ ├── icon128.png │ │ ├── icon32.png │ │ └── icon48.png │ ├── res │ │ └── flags │ │ │ └── 24 │ │ │ ├── AD.png │ │ │ ├── AE.png │ │ │ ├── AF.png │ │ │ ├── AG.png │ │ │ ├── AI.png │ │ │ ├── AL.png │ │ │ ├── AM.png │ │ │ ├── AN.png │ │ │ ├── AO.png │ │ │ ├── AP.png │ │ │ ├── AQ.png │ │ │ ├── AR.png │ │ │ ├── AS.png │ │ │ ├── AT.png │ │ │ ├── AU.png │ │ │ ├── AW.png │ │ │ ├── AX.png │ │ │ ├── AZ.png │ │ │ ├── BA.png │ │ │ ├── BB.png │ │ │ ├── BD.png │ │ │ ├── BE.png │ │ │ ├── BF.png │ │ │ ├── BG.png │ │ │ ├── BH.png │ │ │ ├── BI.png │ │ │ ├── BJ.png │ │ │ ├── BL.png │ │ │ ├── BM.png │ │ │ ├── BN.png │ │ │ ├── BO.png │ │ │ ├── BQ.png │ │ │ ├── BR.png │ │ │ ├── BS.png │ │ │ ├── BT.png │ │ │ ├── BW.png │ │ │ ├── BY.png │ │ │ ├── BZ.png │ │ │ ├── CA.png │ │ │ ├── CC.png │ │ │ ├── CD.png │ │ │ ├── CF.png │ │ │ ├── CG.png │ │ │ ├── CH.png │ │ │ ├── CI.png │ │ │ ├── CK.png │ │ │ ├── CL.png │ │ │ ├── CM.png │ │ │ ├── CN.png │ │ │ ├── CO.png │ │ │ ├── CR.png │ │ │ ├── CT.png │ │ │ ├── CU.png │ │ │ ├── CV.png │ │ │ ├── CW.png │ │ │ ├── CX.png │ │ │ ├── CY.png │ │ │ ├── CZ.png │ │ │ ├── DE.png │ │ │ ├── DJ.png │ │ │ ├── DK.png │ │ │ ├── DM.png │ │ │ ├── DO.png │ │ │ ├── DZ.png │ │ │ ├── EC.png │ │ │ ├── EE.png │ │ │ ├── EG.png │ │ │ ├── EH.png │ │ │ ├── ER.png │ │ │ ├── ES.png │ │ │ ├── ET.png │ │ │ ├── EU.png │ │ │ ├── FI.png │ │ │ ├── FJ.png │ │ │ ├── FK.png │ │ │ ├── FM.png │ │ │ ├── FO.png │ │ │ ├── FR.png │ │ │ ├── GA.png │ │ │ ├── GB.png │ │ │ ├── GD.png │ │ │ ├── GE.png │ │ │ ├── GG.png │ │ │ ├── GH.png │ │ │ ├── GI.png │ │ │ ├── GL.png │ │ │ ├── GM.png │ │ │ ├── GN.png │ │ │ ├── GQ.png │ │ │ ├── GR.png │ │ │ ├── GS.png │ │ │ ├── GT.png │ │ │ ├── GU.png │ │ │ ├── GW.png │ │ │ ├── GY.png │ │ │ ├── HK.png │ │ │ ├── HN.png │ │ │ ├── HR.png │ │ │ ├── HT.png │ │ │ ├── HU.png │ │ │ ├── IC.png │ │ │ ├── ID.png │ │ │ ├── IE.png │ │ │ ├── IL.png │ │ │ ├── IM.png │ │ │ ├── IN.png │ │ │ ├── IQ.png │ │ │ ├── IR.png │ │ │ ├── IS.png │ │ │ ├── IT.png │ │ │ ├── JE.png │ │ │ ├── JM.png │ │ │ ├── JO.png │ │ │ ├── JP.png │ │ │ ├── KE.png │ │ │ ├── KG.png │ │ │ ├── KH.png │ │ │ ├── KI.png │ │ │ ├── KM.png │ │ │ ├── KN.png │ │ │ ├── KP.png │ │ │ ├── KR.png │ │ │ ├── KW.png │ │ │ ├── KY.png │ │ │ ├── KZ.png │ │ │ ├── LA.png │ │ │ ├── LB.png │ │ │ ├── LC.png │ │ │ ├── LI.png │ │ │ ├── LK.png │ │ │ ├── LR.png │ │ │ ├── LS.png │ │ │ ├── LT.png │ │ │ ├── LU.png │ │ │ ├── LV.png │ │ │ ├── LY.png │ │ │ ├── MA.png │ │ │ ├── MC.png │ │ │ ├── MD.png │ │ │ ├── ME.png │ │ │ ├── MF.png │ │ │ ├── MG.png │ │ │ ├── MH.png │ │ │ ├── MK.png │ │ │ ├── ML.png │ │ │ ├── MM.png │ │ │ ├── MN.png │ │ │ ├── MO.png │ │ │ ├── MP.png │ │ │ ├── MQ.png │ │ │ ├── MR.png │ │ │ ├── MS.png │ │ │ ├── MT.png │ │ │ ├── MU.png │ │ │ ├── MV.png │ │ │ ├── MW.png │ │ │ ├── MX.png │ │ │ ├── MY.png │ │ │ ├── MZ.png │ │ │ ├── NA.png │ │ │ ├── NC.png │ │ │ ├── NE.png │ │ │ ├── NF.png │ │ │ ├── NG.png │ │ │ ├── NI.png │ │ │ ├── NL.png │ │ │ ├── NO.png │ │ │ ├── NP.png │ │ │ ├── NR.png │ │ │ ├── NU.png │ │ │ ├── NZ.png │ │ │ ├── OM.png │ │ │ ├── PA.png │ │ │ ├── PE.png │ │ │ ├── PF.png │ │ │ ├── PG.png │ │ │ ├── PH.png │ │ │ ├── PK.png │ │ │ ├── PL.png │ │ │ ├── PN.png │ │ │ ├── PR.png │ │ │ ├── PS.png │ │ │ ├── PT.png │ │ │ ├── PW.png │ │ │ ├── PY.png │ │ │ ├── QA.png │ │ │ ├── RE.png │ │ │ ├── RO.png │ │ │ ├── RS.png │ │ │ ├── RU.png │ │ │ ├── RW.png │ │ │ ├── SA.png │ │ │ ├── SB.png │ │ │ ├── SC.png │ │ │ ├── SD.png │ │ │ ├── SE.png │ │ │ ├── SG.png │ │ │ ├── SH.png │ │ │ ├── SI.png │ │ │ ├── SK.png │ │ │ ├── SL.png │ │ │ ├── SM.png │ │ │ ├── SN.png │ │ │ ├── SO.png │ │ │ ├── SR.png │ │ │ ├── SS.png │ │ │ ├── ST.png │ │ │ ├── SU.png │ │ │ ├── SV.png │ │ │ ├── SX.png │ │ │ ├── SY.png │ │ │ ├── SZ.png │ │ │ ├── TC.png │ │ │ ├── TD.png │ │ │ ├── TF.png │ │ │ ├── TG.png │ │ │ ├── TH.png │ │ │ ├── TJ.png │ │ │ ├── TK.png │ │ │ ├── TL.png │ │ │ ├── TM.png │ │ │ ├── TN.png │ │ │ ├── TO.png │ │ │ ├── TR.png │ │ │ ├── TT.png │ │ │ ├── TV.png │ │ │ ├── TW.png │ │ │ ├── TZ.png │ │ │ ├── UA.png │ │ │ ├── UG.png │ │ │ ├── UK.png │ │ │ ├── US.png │ │ │ ├── UY.png │ │ │ ├── UZ.png │ │ │ ├── VA.png │ │ │ ├── VC.png │ │ │ ├── VE.png │ │ │ ├── VG.png │ │ │ ├── VI.png │ │ │ ├── VN.png │ │ │ ├── VU.png │ │ │ ├── WF.png │ │ │ ├── WS.png │ │ │ ├── YE.png │ │ │ ├── YT.png │ │ │ ├── YU.png │ │ │ ├── ZA.png │ │ │ ├── ZM.png │ │ │ ├── ZW.png │ │ │ ├── _mars.png │ │ │ ├── _nato.png │ │ │ ├── _england.png │ │ │ ├── _kosovo.png │ │ │ ├── _unknown.png │ │ │ ├── _wales.png │ │ │ ├── _abkhazia.png │ │ │ ├── _gosquared.png │ │ │ ├── _olympics.png │ │ │ ├── _red-cross.png │ │ │ ├── _scotland.png │ │ │ ├── _commonwealth.png │ │ │ ├── _somaliland.png │ │ │ ├── _basque-country.png │ │ │ ├── _south-ossetia.png │ │ │ ├── _united-nations.png │ │ │ ├── _nagorno-karabakh.png │ │ │ ├── _northern-cyprus.png │ │ │ └── _british-antarctic-territory.png │ ├── images │ │ └── logo_white.png │ ├── css │ │ ├── fonts │ │ │ ├── glyphicons-halflings-regular.eot │ │ │ ├── glyphicons-halflings-regular.ttf │ │ │ ├── glyphicons-halflings-regular.woff │ │ │ └── glyphicons-halflings-regular.woff2 │ │ ├── styles.css │ │ └── bootstrap-theme.min.css │ ├── extension_info.json │ ├── index.html │ └── js │ │ ├── countries.js │ │ ├── bootstrap.min.js │ │ └── script.js ├── safari │ └── extension_info.json └── ie │ └── extension_info.json └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | .idea 2 | output/* 3 | certificates/* 4 | 5 | -------------------------------------------------------------------------------- /src/chrome/extension_info.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "paldonjjlmeecloicjepmpgjjhicbeho" 3 | } -------------------------------------------------------------------------------- /src/firefox/extension_info.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "{04ABD7C6-7836-42D5-BFE2-45ACB81AE6C7}" 3 | } -------------------------------------------------------------------------------- /src/common/icons/button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/icons/button.png -------------------------------------------------------------------------------- /src/common/icons/icon100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/icons/icon100.png -------------------------------------------------------------------------------- /src/common/icons/icon128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/icons/icon128.png -------------------------------------------------------------------------------- /src/common/icons/icon32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/icons/icon32.png -------------------------------------------------------------------------------- /src/common/icons/icon48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/icons/icon48.png -------------------------------------------------------------------------------- /src/common/res/flags/24/AD.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/AD.png -------------------------------------------------------------------------------- /src/common/res/flags/24/AE.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/AE.png -------------------------------------------------------------------------------- /src/common/res/flags/24/AF.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/AF.png -------------------------------------------------------------------------------- /src/common/res/flags/24/AG.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/AG.png -------------------------------------------------------------------------------- /src/common/res/flags/24/AI.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/AI.png -------------------------------------------------------------------------------- /src/common/res/flags/24/AL.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/AL.png -------------------------------------------------------------------------------- /src/common/res/flags/24/AM.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/AM.png -------------------------------------------------------------------------------- /src/common/res/flags/24/AN.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/AN.png -------------------------------------------------------------------------------- /src/common/res/flags/24/AO.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/AO.png -------------------------------------------------------------------------------- /src/common/res/flags/24/AP.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/AP.png -------------------------------------------------------------------------------- /src/common/res/flags/24/AQ.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/AQ.png -------------------------------------------------------------------------------- /src/common/res/flags/24/AR.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/AR.png -------------------------------------------------------------------------------- /src/common/res/flags/24/AS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/AS.png -------------------------------------------------------------------------------- /src/common/res/flags/24/AT.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/AT.png -------------------------------------------------------------------------------- /src/common/res/flags/24/AU.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/AU.png -------------------------------------------------------------------------------- /src/common/res/flags/24/AW.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/AW.png -------------------------------------------------------------------------------- /src/common/res/flags/24/AX.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/AX.png -------------------------------------------------------------------------------- /src/common/res/flags/24/AZ.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/AZ.png -------------------------------------------------------------------------------- /src/common/res/flags/24/BA.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/BA.png -------------------------------------------------------------------------------- /src/common/res/flags/24/BB.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/BB.png -------------------------------------------------------------------------------- /src/common/res/flags/24/BD.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/BD.png -------------------------------------------------------------------------------- /src/common/res/flags/24/BE.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/BE.png -------------------------------------------------------------------------------- /src/common/res/flags/24/BF.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/BF.png -------------------------------------------------------------------------------- /src/common/res/flags/24/BG.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/BG.png -------------------------------------------------------------------------------- /src/common/res/flags/24/BH.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/BH.png -------------------------------------------------------------------------------- /src/common/res/flags/24/BI.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/BI.png -------------------------------------------------------------------------------- /src/common/res/flags/24/BJ.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/BJ.png -------------------------------------------------------------------------------- /src/common/res/flags/24/BL.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/BL.png -------------------------------------------------------------------------------- /src/common/res/flags/24/BM.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/BM.png -------------------------------------------------------------------------------- /src/common/res/flags/24/BN.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/BN.png -------------------------------------------------------------------------------- /src/common/res/flags/24/BO.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/BO.png -------------------------------------------------------------------------------- /src/common/res/flags/24/BQ.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/BQ.png -------------------------------------------------------------------------------- /src/common/res/flags/24/BR.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/BR.png -------------------------------------------------------------------------------- /src/common/res/flags/24/BS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/BS.png -------------------------------------------------------------------------------- /src/common/res/flags/24/BT.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/BT.png -------------------------------------------------------------------------------- /src/common/res/flags/24/BW.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/BW.png -------------------------------------------------------------------------------- /src/common/res/flags/24/BY.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/BY.png -------------------------------------------------------------------------------- /src/common/res/flags/24/BZ.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/BZ.png -------------------------------------------------------------------------------- /src/common/res/flags/24/CA.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/CA.png -------------------------------------------------------------------------------- /src/common/res/flags/24/CC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/CC.png -------------------------------------------------------------------------------- /src/common/res/flags/24/CD.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/CD.png -------------------------------------------------------------------------------- /src/common/res/flags/24/CF.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/CF.png -------------------------------------------------------------------------------- /src/common/res/flags/24/CG.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/CG.png -------------------------------------------------------------------------------- /src/common/res/flags/24/CH.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/CH.png -------------------------------------------------------------------------------- /src/common/res/flags/24/CI.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/CI.png -------------------------------------------------------------------------------- /src/common/res/flags/24/CK.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/CK.png -------------------------------------------------------------------------------- /src/common/res/flags/24/CL.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/CL.png -------------------------------------------------------------------------------- /src/common/res/flags/24/CM.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/CM.png -------------------------------------------------------------------------------- /src/common/res/flags/24/CN.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/CN.png -------------------------------------------------------------------------------- /src/common/res/flags/24/CO.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/CO.png -------------------------------------------------------------------------------- /src/common/res/flags/24/CR.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/CR.png -------------------------------------------------------------------------------- /src/common/res/flags/24/CT.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/CT.png -------------------------------------------------------------------------------- /src/common/res/flags/24/CU.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/CU.png -------------------------------------------------------------------------------- /src/common/res/flags/24/CV.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/CV.png -------------------------------------------------------------------------------- /src/common/res/flags/24/CW.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/CW.png -------------------------------------------------------------------------------- /src/common/res/flags/24/CX.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/CX.png -------------------------------------------------------------------------------- /src/common/res/flags/24/CY.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/CY.png -------------------------------------------------------------------------------- /src/common/res/flags/24/CZ.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/CZ.png -------------------------------------------------------------------------------- /src/common/res/flags/24/DE.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/DE.png -------------------------------------------------------------------------------- /src/common/res/flags/24/DJ.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/DJ.png -------------------------------------------------------------------------------- /src/common/res/flags/24/DK.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/DK.png -------------------------------------------------------------------------------- /src/common/res/flags/24/DM.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/DM.png -------------------------------------------------------------------------------- /src/common/res/flags/24/DO.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/DO.png -------------------------------------------------------------------------------- /src/common/res/flags/24/DZ.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/DZ.png -------------------------------------------------------------------------------- /src/common/res/flags/24/EC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/EC.png -------------------------------------------------------------------------------- /src/common/res/flags/24/EE.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/EE.png -------------------------------------------------------------------------------- /src/common/res/flags/24/EG.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/EG.png -------------------------------------------------------------------------------- /src/common/res/flags/24/EH.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/EH.png -------------------------------------------------------------------------------- /src/common/res/flags/24/ER.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/ER.png -------------------------------------------------------------------------------- /src/common/res/flags/24/ES.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/ES.png -------------------------------------------------------------------------------- /src/common/res/flags/24/ET.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/ET.png -------------------------------------------------------------------------------- /src/common/res/flags/24/EU.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/EU.png -------------------------------------------------------------------------------- /src/common/res/flags/24/FI.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/FI.png -------------------------------------------------------------------------------- /src/common/res/flags/24/FJ.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/FJ.png -------------------------------------------------------------------------------- /src/common/res/flags/24/FK.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/FK.png -------------------------------------------------------------------------------- /src/common/res/flags/24/FM.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/FM.png -------------------------------------------------------------------------------- /src/common/res/flags/24/FO.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/FO.png -------------------------------------------------------------------------------- /src/common/res/flags/24/FR.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/FR.png -------------------------------------------------------------------------------- /src/common/res/flags/24/GA.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/GA.png -------------------------------------------------------------------------------- /src/common/res/flags/24/GB.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/GB.png -------------------------------------------------------------------------------- /src/common/res/flags/24/GD.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/GD.png -------------------------------------------------------------------------------- /src/common/res/flags/24/GE.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/GE.png -------------------------------------------------------------------------------- /src/common/res/flags/24/GG.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/GG.png -------------------------------------------------------------------------------- /src/common/res/flags/24/GH.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/GH.png -------------------------------------------------------------------------------- /src/common/res/flags/24/GI.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/GI.png -------------------------------------------------------------------------------- /src/common/res/flags/24/GL.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/GL.png -------------------------------------------------------------------------------- /src/common/res/flags/24/GM.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/GM.png -------------------------------------------------------------------------------- /src/common/res/flags/24/GN.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/GN.png -------------------------------------------------------------------------------- /src/common/res/flags/24/GQ.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/GQ.png -------------------------------------------------------------------------------- /src/common/res/flags/24/GR.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/GR.png -------------------------------------------------------------------------------- /src/common/res/flags/24/GS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/GS.png -------------------------------------------------------------------------------- /src/common/res/flags/24/GT.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/GT.png -------------------------------------------------------------------------------- /src/common/res/flags/24/GU.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/GU.png -------------------------------------------------------------------------------- /src/common/res/flags/24/GW.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/GW.png -------------------------------------------------------------------------------- /src/common/res/flags/24/GY.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/GY.png -------------------------------------------------------------------------------- /src/common/res/flags/24/HK.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/HK.png -------------------------------------------------------------------------------- /src/common/res/flags/24/HN.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/HN.png -------------------------------------------------------------------------------- /src/common/res/flags/24/HR.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/HR.png -------------------------------------------------------------------------------- /src/common/res/flags/24/HT.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/HT.png -------------------------------------------------------------------------------- /src/common/res/flags/24/HU.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/HU.png -------------------------------------------------------------------------------- /src/common/res/flags/24/IC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/IC.png -------------------------------------------------------------------------------- /src/common/res/flags/24/ID.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/ID.png -------------------------------------------------------------------------------- /src/common/res/flags/24/IE.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/IE.png -------------------------------------------------------------------------------- /src/common/res/flags/24/IL.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/IL.png -------------------------------------------------------------------------------- /src/common/res/flags/24/IM.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/IM.png -------------------------------------------------------------------------------- /src/common/res/flags/24/IN.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/IN.png -------------------------------------------------------------------------------- /src/common/res/flags/24/IQ.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/IQ.png -------------------------------------------------------------------------------- /src/common/res/flags/24/IR.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/IR.png -------------------------------------------------------------------------------- /src/common/res/flags/24/IS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/IS.png -------------------------------------------------------------------------------- /src/common/res/flags/24/IT.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/IT.png -------------------------------------------------------------------------------- /src/common/res/flags/24/JE.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/JE.png -------------------------------------------------------------------------------- /src/common/res/flags/24/JM.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/JM.png -------------------------------------------------------------------------------- /src/common/res/flags/24/JO.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/JO.png -------------------------------------------------------------------------------- /src/common/res/flags/24/JP.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/JP.png -------------------------------------------------------------------------------- /src/common/res/flags/24/KE.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/KE.png -------------------------------------------------------------------------------- /src/common/res/flags/24/KG.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/KG.png -------------------------------------------------------------------------------- /src/common/res/flags/24/KH.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/KH.png -------------------------------------------------------------------------------- /src/common/res/flags/24/KI.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/KI.png -------------------------------------------------------------------------------- /src/common/res/flags/24/KM.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/KM.png -------------------------------------------------------------------------------- /src/common/res/flags/24/KN.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/KN.png -------------------------------------------------------------------------------- /src/common/res/flags/24/KP.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/KP.png -------------------------------------------------------------------------------- /src/common/res/flags/24/KR.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/KR.png -------------------------------------------------------------------------------- /src/common/res/flags/24/KW.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/KW.png -------------------------------------------------------------------------------- /src/common/res/flags/24/KY.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/KY.png -------------------------------------------------------------------------------- /src/common/res/flags/24/KZ.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/KZ.png -------------------------------------------------------------------------------- /src/common/res/flags/24/LA.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/LA.png -------------------------------------------------------------------------------- /src/common/res/flags/24/LB.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/LB.png -------------------------------------------------------------------------------- /src/common/res/flags/24/LC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/LC.png -------------------------------------------------------------------------------- /src/common/res/flags/24/LI.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/LI.png -------------------------------------------------------------------------------- /src/common/res/flags/24/LK.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/LK.png -------------------------------------------------------------------------------- /src/common/res/flags/24/LR.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/LR.png -------------------------------------------------------------------------------- /src/common/res/flags/24/LS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/LS.png -------------------------------------------------------------------------------- /src/common/res/flags/24/LT.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/LT.png -------------------------------------------------------------------------------- /src/common/res/flags/24/LU.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/LU.png -------------------------------------------------------------------------------- /src/common/res/flags/24/LV.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/LV.png -------------------------------------------------------------------------------- /src/common/res/flags/24/LY.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/LY.png -------------------------------------------------------------------------------- /src/common/res/flags/24/MA.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/MA.png -------------------------------------------------------------------------------- /src/common/res/flags/24/MC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/MC.png -------------------------------------------------------------------------------- /src/common/res/flags/24/MD.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/MD.png -------------------------------------------------------------------------------- /src/common/res/flags/24/ME.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/ME.png -------------------------------------------------------------------------------- /src/common/res/flags/24/MF.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/MF.png -------------------------------------------------------------------------------- /src/common/res/flags/24/MG.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/MG.png -------------------------------------------------------------------------------- /src/common/res/flags/24/MH.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/MH.png -------------------------------------------------------------------------------- /src/common/res/flags/24/MK.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/MK.png -------------------------------------------------------------------------------- /src/common/res/flags/24/ML.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/ML.png -------------------------------------------------------------------------------- /src/common/res/flags/24/MM.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/MM.png -------------------------------------------------------------------------------- /src/common/res/flags/24/MN.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/MN.png -------------------------------------------------------------------------------- /src/common/res/flags/24/MO.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/MO.png -------------------------------------------------------------------------------- /src/common/res/flags/24/MP.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/MP.png -------------------------------------------------------------------------------- /src/common/res/flags/24/MQ.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/MQ.png -------------------------------------------------------------------------------- /src/common/res/flags/24/MR.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/MR.png -------------------------------------------------------------------------------- /src/common/res/flags/24/MS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/MS.png -------------------------------------------------------------------------------- /src/common/res/flags/24/MT.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/MT.png -------------------------------------------------------------------------------- /src/common/res/flags/24/MU.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/MU.png -------------------------------------------------------------------------------- /src/common/res/flags/24/MV.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/MV.png -------------------------------------------------------------------------------- /src/common/res/flags/24/MW.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/MW.png -------------------------------------------------------------------------------- /src/common/res/flags/24/MX.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/MX.png -------------------------------------------------------------------------------- /src/common/res/flags/24/MY.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/MY.png -------------------------------------------------------------------------------- /src/common/res/flags/24/MZ.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/MZ.png -------------------------------------------------------------------------------- /src/common/res/flags/24/NA.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/NA.png -------------------------------------------------------------------------------- /src/common/res/flags/24/NC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/NC.png -------------------------------------------------------------------------------- /src/common/res/flags/24/NE.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/NE.png -------------------------------------------------------------------------------- /src/common/res/flags/24/NF.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/NF.png -------------------------------------------------------------------------------- /src/common/res/flags/24/NG.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/NG.png -------------------------------------------------------------------------------- /src/common/res/flags/24/NI.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/NI.png -------------------------------------------------------------------------------- /src/common/res/flags/24/NL.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/NL.png -------------------------------------------------------------------------------- /src/common/res/flags/24/NO.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/NO.png -------------------------------------------------------------------------------- /src/common/res/flags/24/NP.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/NP.png -------------------------------------------------------------------------------- /src/common/res/flags/24/NR.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/NR.png -------------------------------------------------------------------------------- /src/common/res/flags/24/NU.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/NU.png -------------------------------------------------------------------------------- /src/common/res/flags/24/NZ.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/NZ.png -------------------------------------------------------------------------------- /src/common/res/flags/24/OM.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/OM.png -------------------------------------------------------------------------------- /src/common/res/flags/24/PA.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/PA.png -------------------------------------------------------------------------------- /src/common/res/flags/24/PE.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/PE.png -------------------------------------------------------------------------------- /src/common/res/flags/24/PF.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/PF.png -------------------------------------------------------------------------------- /src/common/res/flags/24/PG.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/PG.png -------------------------------------------------------------------------------- /src/common/res/flags/24/PH.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/PH.png -------------------------------------------------------------------------------- /src/common/res/flags/24/PK.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/PK.png -------------------------------------------------------------------------------- /src/common/res/flags/24/PL.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/PL.png -------------------------------------------------------------------------------- /src/common/res/flags/24/PN.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/PN.png -------------------------------------------------------------------------------- /src/common/res/flags/24/PR.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/PR.png -------------------------------------------------------------------------------- /src/common/res/flags/24/PS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/PS.png -------------------------------------------------------------------------------- /src/common/res/flags/24/PT.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/PT.png -------------------------------------------------------------------------------- /src/common/res/flags/24/PW.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/PW.png -------------------------------------------------------------------------------- /src/common/res/flags/24/PY.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/PY.png -------------------------------------------------------------------------------- /src/common/res/flags/24/QA.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/QA.png -------------------------------------------------------------------------------- /src/common/res/flags/24/RE.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/RE.png -------------------------------------------------------------------------------- /src/common/res/flags/24/RO.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/RO.png -------------------------------------------------------------------------------- /src/common/res/flags/24/RS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/RS.png -------------------------------------------------------------------------------- /src/common/res/flags/24/RU.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/RU.png -------------------------------------------------------------------------------- /src/common/res/flags/24/RW.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/RW.png -------------------------------------------------------------------------------- /src/common/res/flags/24/SA.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/SA.png -------------------------------------------------------------------------------- /src/common/res/flags/24/SB.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/SB.png -------------------------------------------------------------------------------- /src/common/res/flags/24/SC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/SC.png -------------------------------------------------------------------------------- /src/common/res/flags/24/SD.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/SD.png -------------------------------------------------------------------------------- /src/common/res/flags/24/SE.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/SE.png -------------------------------------------------------------------------------- /src/common/res/flags/24/SG.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/SG.png -------------------------------------------------------------------------------- /src/common/res/flags/24/SH.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/SH.png -------------------------------------------------------------------------------- /src/common/res/flags/24/SI.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/SI.png -------------------------------------------------------------------------------- /src/common/res/flags/24/SK.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/SK.png -------------------------------------------------------------------------------- /src/common/res/flags/24/SL.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/SL.png -------------------------------------------------------------------------------- /src/common/res/flags/24/SM.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/SM.png -------------------------------------------------------------------------------- /src/common/res/flags/24/SN.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/SN.png -------------------------------------------------------------------------------- /src/common/res/flags/24/SO.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/SO.png -------------------------------------------------------------------------------- /src/common/res/flags/24/SR.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/SR.png -------------------------------------------------------------------------------- /src/common/res/flags/24/SS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/SS.png -------------------------------------------------------------------------------- /src/common/res/flags/24/ST.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/ST.png -------------------------------------------------------------------------------- /src/common/res/flags/24/SU.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/SU.png -------------------------------------------------------------------------------- /src/common/res/flags/24/SV.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/SV.png -------------------------------------------------------------------------------- /src/common/res/flags/24/SX.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/SX.png -------------------------------------------------------------------------------- /src/common/res/flags/24/SY.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/SY.png -------------------------------------------------------------------------------- /src/common/res/flags/24/SZ.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/SZ.png -------------------------------------------------------------------------------- /src/common/res/flags/24/TC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/TC.png -------------------------------------------------------------------------------- /src/common/res/flags/24/TD.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/TD.png -------------------------------------------------------------------------------- /src/common/res/flags/24/TF.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/TF.png -------------------------------------------------------------------------------- /src/common/res/flags/24/TG.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/TG.png -------------------------------------------------------------------------------- /src/common/res/flags/24/TH.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/TH.png -------------------------------------------------------------------------------- /src/common/res/flags/24/TJ.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/TJ.png -------------------------------------------------------------------------------- /src/common/res/flags/24/TK.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/TK.png -------------------------------------------------------------------------------- /src/common/res/flags/24/TL.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/TL.png -------------------------------------------------------------------------------- /src/common/res/flags/24/TM.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/TM.png -------------------------------------------------------------------------------- /src/common/res/flags/24/TN.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/TN.png -------------------------------------------------------------------------------- /src/common/res/flags/24/TO.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/TO.png -------------------------------------------------------------------------------- /src/common/res/flags/24/TR.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/TR.png -------------------------------------------------------------------------------- /src/common/res/flags/24/TT.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/TT.png -------------------------------------------------------------------------------- /src/common/res/flags/24/TV.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/TV.png -------------------------------------------------------------------------------- /src/common/res/flags/24/TW.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/TW.png -------------------------------------------------------------------------------- /src/common/res/flags/24/TZ.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/TZ.png -------------------------------------------------------------------------------- /src/common/res/flags/24/UA.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/UA.png -------------------------------------------------------------------------------- /src/common/res/flags/24/UG.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/UG.png -------------------------------------------------------------------------------- /src/common/res/flags/24/UK.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/UK.png -------------------------------------------------------------------------------- /src/common/res/flags/24/US.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/US.png -------------------------------------------------------------------------------- /src/common/res/flags/24/UY.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/UY.png -------------------------------------------------------------------------------- /src/common/res/flags/24/UZ.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/UZ.png -------------------------------------------------------------------------------- /src/common/res/flags/24/VA.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/VA.png -------------------------------------------------------------------------------- /src/common/res/flags/24/VC.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/VC.png -------------------------------------------------------------------------------- /src/common/res/flags/24/VE.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/VE.png -------------------------------------------------------------------------------- /src/common/res/flags/24/VG.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/VG.png -------------------------------------------------------------------------------- /src/common/res/flags/24/VI.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/VI.png -------------------------------------------------------------------------------- /src/common/res/flags/24/VN.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/VN.png -------------------------------------------------------------------------------- /src/common/res/flags/24/VU.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/VU.png -------------------------------------------------------------------------------- /src/common/res/flags/24/WF.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/WF.png -------------------------------------------------------------------------------- /src/common/res/flags/24/WS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/WS.png -------------------------------------------------------------------------------- /src/common/res/flags/24/YE.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/YE.png -------------------------------------------------------------------------------- /src/common/res/flags/24/YT.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/YT.png -------------------------------------------------------------------------------- /src/common/res/flags/24/YU.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/YU.png -------------------------------------------------------------------------------- /src/common/res/flags/24/ZA.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/ZA.png -------------------------------------------------------------------------------- /src/common/res/flags/24/ZM.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/ZM.png -------------------------------------------------------------------------------- /src/common/res/flags/24/ZW.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/ZW.png -------------------------------------------------------------------------------- /src/common/images/logo_white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/images/logo_white.png -------------------------------------------------------------------------------- /src/common/res/flags/24/_mars.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/_mars.png -------------------------------------------------------------------------------- /src/common/res/flags/24/_nato.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/_nato.png -------------------------------------------------------------------------------- /src/common/res/flags/24/_england.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/_england.png -------------------------------------------------------------------------------- /src/common/res/flags/24/_kosovo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/_kosovo.png -------------------------------------------------------------------------------- /src/common/res/flags/24/_unknown.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/_unknown.png -------------------------------------------------------------------------------- /src/common/res/flags/24/_wales.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/_wales.png -------------------------------------------------------------------------------- /src/common/res/flags/24/_abkhazia.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/_abkhazia.png -------------------------------------------------------------------------------- /src/common/res/flags/24/_gosquared.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/_gosquared.png -------------------------------------------------------------------------------- /src/common/res/flags/24/_olympics.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/_olympics.png -------------------------------------------------------------------------------- /src/common/res/flags/24/_red-cross.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/_red-cross.png -------------------------------------------------------------------------------- /src/common/res/flags/24/_scotland.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/_scotland.png -------------------------------------------------------------------------------- /src/safari/extension_info.json: -------------------------------------------------------------------------------- 1 | { 2 | "developer_id": "YOUR_SAFARI_DEVELOPER_ID", 3 | "id": "com.kangoextensions.bgpview" 4 | } -------------------------------------------------------------------------------- /src/common/res/flags/24/_commonwealth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/_commonwealth.png -------------------------------------------------------------------------------- /src/common/res/flags/24/_somaliland.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/_somaliland.png -------------------------------------------------------------------------------- /src/common/res/flags/24/_basque-country.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/_basque-country.png -------------------------------------------------------------------------------- /src/common/res/flags/24/_south-ossetia.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/_south-ossetia.png -------------------------------------------------------------------------------- /src/common/res/flags/24/_united-nations.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/_united-nations.png -------------------------------------------------------------------------------- /src/common/res/flags/24/_nagorno-karabakh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/_nagorno-karabakh.png -------------------------------------------------------------------------------- /src/common/res/flags/24/_northern-cyprus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/_northern-cyprus.png -------------------------------------------------------------------------------- /src/common/css/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/css/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /src/common/css/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/css/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /src/common/css/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/css/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /src/common/css/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/css/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /src/common/res/flags/24/_british-antarctic-territory.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/BGPView/browser-extension/HEAD/src/common/res/flags/24/_british-antarctic-territory.png -------------------------------------------------------------------------------- /src/common/extension_info.json: -------------------------------------------------------------------------------- 1 | { 2 | "content_scripts": [], 3 | "description": "A detailed way to debug and investigate information about IP addresses, ASN, IXs, BGP, ISPs, Prefixes and Domain names.", 4 | "creator": "BGPView", 5 | "background_scripts": [ 6 | "js/script.js", 7 | "js/jquery-2.2.4.min.js" 8 | ], 9 | "homepage_url": "https://bgpview.io/", 10 | "version": "1.2", 11 | "browser_button": { 12 | "caption": "BGPView", 13 | "icon": "icons/button.png", 14 | "tooltipText": "BGPView", 15 | "popup": { 16 | "url": "index.html", 17 | "width": 550, 18 | "height": 550 19 | } 20 | }, 21 | "name": "BGPView" 22 | } -------------------------------------------------------------------------------- /src/ie/extension_info.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "{192FF300-047F-4846-BA95-B4B256408478}", 3 | "com_objects": { 4 | "engine": { 5 | "iid": "{1FAD5E6E-E48C-4150-BEBF-142DFD1482DC}", 6 | "libid": "{4C63AC68-B4C7-46D3-A602-5C8AC552FBB2}", 7 | "clsid": "{1F915E17-E408-41EB-9E4F-762DD714F3DC}" 8 | }, 9 | "toolbar": { 10 | "iid": "{4D20CB57-0A61-417F-B689-D099B7A3390C}", 11 | "clsid": "{4D87CBC4-0A14-41D5-84F4-3B99CFA3C40C}" 12 | }, 13 | "bho": { 14 | "iid": "{19E7F31D-0450-48CF-8498-4CB2E840EA78}", 15 | "libid": "{E689F095-69AD-468E-9BA5-61EA121E042A}", 16 | "clsid": "{192FF300-047F-4846-BA95-B4B256408478}" 17 | } 18 | } 19 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # BGPView (Multi) Browser Extension 2 | 3 | #### A Kango extensions framework built project. A detailed way to debug and investigate information about IP addresses, ASN, IXs, BGP, ISPs, Prefixes and Domain names. 4 | 5 | #### This extension will allow you to see detailed information about the current website that you are browsing. 6 | 7 | #### It is also a useful tool in order to diagnose and learn how the internet is inter connected and the hierarchy of which every website is connected via an ISP and thus part of the internet. 8 | 9 | Find the latest release for chrome of this extension [at the chrome webstore!](https://chrome.google.com/webstore/detail/bgpview/ffmkebnpkfkeoogeaphmdkpglgcdfdgg) 10 | 11 | ---- 12 | You will be able to see such things as DNS records, GeoIP, whois records, ISP and Prefix Names, ASN upstreams, peering and routing. 13 | 14 | See what other IP prefixes the ISPs are announcing and how much BGP presence they have. 15 | 16 | ---- 17 | Display of the current website DNS records 18 | 19 | ![Image of DNS records](http://i.imgur.com/4TDFqXp.png) 20 | ---- 21 | Display of a selected Prefix and its allocation and Origin ASN information 22 | 23 | ![Image of Prefix](http://i.imgur.com/aRIGdkW.png) 24 | ---- 25 | Display of an ASN's set of upstream providers 26 | 27 | ![Image of ASN Upstreams](http://i.imgur.com/WJtohJz.png) 28 | ---- 29 | Display all the Internet Exchanges (IX) that an ISP is part of 30 | 31 | ![Image of ASN IXs](http://i.imgur.com/21ifM5U.png) 32 | ---- 33 | 34 | ## To build extension you will need to download the latest copy of the kangoextensions library and run the following: 35 | 36 | ``` 37 | python kango.py build browser-extension 38 | ``` 39 | -------------------------------------------------------------------------------- /src/common/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | BGPView 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 24 | 25 |
26 | 27 | 30 | 33 | 34 | 35 | 36 |
Loading...
37 |
38 | 41 |
42 | 43 |
44 |
45 |
46 | 47 | 48 | -------------------------------------------------------------------------------- /src/common/css/styles.css: -------------------------------------------------------------------------------- 1 | body { 2 | background: #ffffff; 3 | color: #676767; 4 | margin: 0 auto; 5 | width: 550px; 6 | -webkit-font-smoothing: antialiased; 7 | text-rendering: optimizeLegibility; 8 | -moz-osx-font-smoothing: grayscale; 9 | } 10 | 11 | .navbar-brand { 12 | width: 550px; 13 | padding: 5px; 14 | } 15 | 16 | .navbar-brand img { 17 | display: block; 18 | margin: 0 auto; 19 | height: 40px; 20 | } 21 | 22 | .main { 23 | margin-top: 60px; 24 | } 25 | 26 | .current-input a, .base-domain a { 27 | font-weight: bold; 28 | } 29 | 30 | .navbar { 31 | background-color: #465862; 32 | border-bottom: 1px solid #424C52; 33 | backface-visibility: hidden; 34 | } 35 | 36 | .records-tabbed-content { 37 | margin-top: 20px; 38 | } 39 | .records-tabbed-content ul { 40 | font-weight: bold; 41 | } 42 | 43 | a, a:hover, a:visited, a:link, a:active { 44 | text-decoration: none; 45 | } 46 | 47 | a, a:active, a:visited, a:link { 48 | color: #2C94B3; 49 | } 50 | 51 | /* ---------------------------- */ 52 | /* ---------- LOADER ---------- */ 53 | .loader { 54 | margin: 100px auto; 55 | font-size: 10px; 56 | position: relative; 57 | text-indent: -9999em; 58 | border-top: 1.1em solid rgba(70,88,98, 0.2); 59 | border-right: 1.1em solid rgba(70,88,98, 0.2); 60 | border-bottom: 1.1em solid rgba(70,88,98, 0.2); 61 | border-left: 1.1em solid #465862; 62 | -webkit-transform: translateZ(0); 63 | -ms-transform: translateZ(0); 64 | transform: translateZ(0); 65 | -webkit-animation: load8 1.1s infinite linear; 66 | animation: load8 1.1s infinite linear; 67 | } 68 | .loader, 69 | .loader:after { 70 | border-radius: 50%; 71 | width: 10em; 72 | height: 10em; 73 | } 74 | @-webkit-keyframes load8 { 75 | 0% { 76 | -webkit-transform: rotate(0deg); 77 | transform: rotate(0deg); 78 | } 79 | 100% { 80 | -webkit-transform: rotate(360deg); 81 | transform: rotate(360deg); 82 | } 83 | } 84 | @keyframes load8 { 85 | 0% { 86 | -webkit-transform: rotate(0deg); 87 | transform: rotate(0deg); 88 | } 89 | 100% { 90 | -webkit-transform: rotate(360deg); 91 | transform: rotate(360deg); 92 | } 93 | } 94 | /* ---------------------------- */ 95 | 96 | .error { 97 | text-align: center; 98 | font-size: 20px; 99 | font-weight: bold; 100 | font-style: italic; 101 | color: #880000; 102 | margin-top: 10px; 103 | margin-bottom: 20px; 104 | display: block; 105 | } 106 | 107 | .support-other-proto { 108 | color: #2ca02c; 109 | float: right; 110 | margin-right: 15px; 111 | font-weight: bold; 112 | } 113 | 114 | .more-info { 115 | float: right; 116 | } 117 | 118 | .nav-tabs .nav-tabs { 119 | margin-top: 5px; 120 | } 121 | -------------------------------------------------------------------------------- /src/common/js/countries.js: -------------------------------------------------------------------------------- 1 | function country(iso) { 2 | if (typeof iso === 'string') { 3 | iso = iso.toUpperCase(); 4 | } 5 | 6 | var countryList = { 7 | 'AD': 'Andorra', 8 | 'AE': 'United Arab Emirates', 9 | 'AF': 'Afghanistan', 10 | 'AG': 'Antigua and Barbuda', 11 | 'AI': 'Anguilla', 12 | 'AL': 'Albania', 13 | 'AM': 'Armenia', 14 | 'AO': 'Angola', 15 | 'AP': 'Asia Pacific', 16 | 'AQ': 'Antarctica', 17 | 'AR': 'Argentina', 18 | 'AS': 'American Samoa', 19 | 'AT': 'Austria', 20 | 'AU': 'Australia', 21 | 'AW': 'Aruba', 22 | 'AX': 'aland Islands', 23 | 'AZ': 'Azerbaijan', 24 | 'BA': 'Bosnia and Herzegovina', 25 | 'BB': 'Barbados', 26 | 'BD': 'Bangladesh', 27 | 'BE': 'Belgium', 28 | 'BF': 'Burkina Faso', 29 | 'BG': 'Bulgaria', 30 | 'BH': 'Bahrain', 31 | 'BI': 'Burundi', 32 | 'BJ': 'Benin', 33 | 'BL': 'Saint Barth�lemy', 34 | 'BM': 'Bermuda', 35 | 'BN': 'Brunei Darussalam', 36 | 'BO': 'Bolivia', 37 | 'BQ': 'Bonaire', 38 | 'BR': 'Brazil', 39 | 'BS': 'Bahamas', 40 | 'BT': 'Bhutan', 41 | 'BV': 'Bouvet Island', 42 | 'BW': 'Botswana', 43 | 'BY': 'Belarus', 44 | 'BZ': 'Belize', 45 | 'CA': 'Canada', 46 | 'CC': 'Cocos (Keeling) Islands', 47 | 'CD': 'Congo', 48 | 'CF': 'Central African Republic', 49 | 'CG': 'Congo', 50 | 'CH': 'Switzerland', 51 | 'CI': 'Cote d\'Ivoire', 52 | 'CK': 'Cook Islands', 53 | 'CL': 'Chile', 54 | 'CM': 'Cameroon', 55 | 'CN': 'China', 56 | 'CO': 'Colombia', 57 | 'CR': 'Costa Rica', 58 | 'CU': 'Cuba', 59 | 'CV': 'Cabo Verde', 60 | 'CW': 'Curacao', 61 | 'CX': 'Christmas Island', 62 | 'CY': 'Cyprus', 63 | 'CZ': 'Czech Republic', 64 | 'DE': 'Germany', 65 | 'DJ': 'Djibouti', 66 | 'DK': 'Denmark', 67 | 'DM': 'Dominica', 68 | 'DO': 'Dominican Republic', 69 | 'DZ': 'Algeria', 70 | 'EC': 'Ecuador', 71 | 'EE': 'Estonia', 72 | 'EG': 'Egypt', 73 | 'EH': 'Western Sahara', 74 | 'ER': 'Eritrea', 75 | 'ES': 'Spain', 76 | 'ET': 'Ethiopia', 77 | 'FI': 'Finland', 78 | 'FJ': 'Fiji', 79 | 'FK': 'Falkland Islands (Malvinas)', 80 | 'FM': 'Micronesia', 81 | 'FO': 'Faroe Islands', 82 | 'FR': 'France', 83 | 'GA': 'Gabon', 84 | 'GB': 'United Kingdom', 85 | 'UK': 'United Kingdom', 86 | 'GD': 'Grenada', 87 | 'GE': 'Georgia', 88 | 'GF': 'French Guiana', 89 | 'GG': 'Guernsey', 90 | 'GH': 'Ghana', 91 | 'GI': 'Gibraltar', 92 | 'GL': 'Greenland', 93 | 'GM': 'Gambia', 94 | 'GN': 'Guinea', 95 | 'GP': 'Guadeloupe', 96 | 'GQ': 'Equatorial Guinea', 97 | 'GR': 'Greece', 98 | 'GS': 'South Georgia and the South Sandwich Islands', 99 | 'GT': 'Guatemala', 100 | 'GU': 'Guam', 101 | 'GW': 'Guinea-Bissau', 102 | 'GY': 'Guyana', 103 | 'HK': 'Hong Kong', 104 | 'HM': 'Heard Island and McDonald Islands', 105 | 'HN': 'Honduras', 106 | 'HR': 'Croatia', 107 | 'HT': 'Haiti', 108 | 'HU': 'Hungary', 109 | 'ID': 'Indonesia', 110 | 'IE': 'Ireland', 111 | 'IL': 'Israel', 112 | 'IM': 'Isle of Man', 113 | 'IN': 'India', 114 | 'IO': 'British Indian Ocean Territory', 115 | 'IQ': 'Iraq', 116 | 'IR': 'Iran', 117 | 'IS': 'Iceland', 118 | 'IT': 'Italy', 119 | 'JE': 'Jersey', 120 | 'JM': 'Jamaica', 121 | 'JO': 'Jordan', 122 | 'JP': 'Japan', 123 | 'KE': 'Kenya', 124 | 'KG': 'Kyrgyzstan', 125 | 'KH': 'Cambodia', 126 | 'KI': 'Kiribati', 127 | 'KM': 'Comoros', 128 | 'KN': 'Saint Kitts and Nevis', 129 | 'KP': 'North Korea', 130 | 'KR': 'South Korea', 131 | 'KW': 'Kuwait', 132 | 'KY': 'Cayman Islands', 133 | 'KZ': 'Kazakhstan', 134 | 'LA': 'Lao People\'s Democratic Republic', 135 | 'LB': 'Lebanon', 136 | 'LC': 'Saint Lucia', 137 | 'LI': 'Liechtenstein', 138 | 'LK': 'Sri Lanka', 139 | 'LR': 'Liberia', 140 | 'LS': 'Lesotho', 141 | 'LT': 'Lithuania', 142 | 'LU': 'Luxembourg', 143 | 'LV': 'Latvia', 144 | 'LY': 'Libya', 145 | 'MA': 'Morocco', 146 | 'MC': 'Monaco', 147 | 'MD': 'Moldova', 148 | 'ME': 'Montenegro', 149 | 'MF': 'Saint Martin (French part)', 150 | 'MG': 'Madagascar', 151 | 'MH': 'Marshall Islands', 152 | 'MK': 'Macedonia', 153 | 'ML': 'Mali', 154 | 'MM': 'Myanmar', 155 | 'MN': 'Mongolia', 156 | 'MO': 'Macao', 157 | 'MP': 'Northern Mariana Islands', 158 | 'MQ': 'Martinique', 159 | 'MR': 'Mauritania', 160 | 'MS': 'Montserrat', 161 | 'MT': 'Malta', 162 | 'MU': 'Mauritius', 163 | 'MV': 'Maldives', 164 | 'MW': 'Malawi', 165 | 'MX': 'Mexico', 166 | 'MY': 'Malaysia', 167 | 'MZ': 'Mozambique', 168 | 'NA': 'Namibia', 169 | 'NC': 'New Caledonia', 170 | 'NE': 'Niger', 171 | 'NF': 'Norfolk Island', 172 | 'NG': 'Nigeria', 173 | 'NI': 'Nicaragua', 174 | 'NL': 'Netherlands', 175 | 'NO': 'Norway', 176 | 'NP': 'Nepal', 177 | 'NR': 'Nauru', 178 | 'NU': 'Niue', 179 | 'NZ': 'New Zealand', 180 | 'OM': 'Oman', 181 | 'PA': 'Panama', 182 | 'PE': 'Peru', 183 | 'PF': 'French Polynesia', 184 | 'PG': 'Papua New Guinea', 185 | 'PH': 'Philippines', 186 | 'PK': 'Pakistan', 187 | 'PL': 'Poland', 188 | 'PM': 'Saint Pierre and Miquelon', 189 | 'PN': 'Pitcairn', 190 | 'PR': 'Puerto Rico', 191 | 'PS': 'Palestine', 192 | 'PT': 'Portugal', 193 | 'PW': 'Palau', 194 | 'PY': 'Paraguay', 195 | 'QA': 'Qatar', 196 | 'RE': 'Reunion', 197 | 'RO': 'Romania', 198 | 'RS': 'Serbia', 199 | 'RU': 'Russian Federation', 200 | 'RW': 'Rwanda', 201 | 'SA': 'Saudi Arabia', 202 | 'SB': 'Solomon Islands', 203 | 'SC': 'Seychelles', 204 | 'SD': 'Sudan', 205 | 'SE': 'Sweden', 206 | 'SG': 'Singapore', 207 | 'SH': 'Saint Helena', 208 | 'SI': 'Slovenia', 209 | 'SJ': 'Svalbard and Jan Mayen', 210 | 'SK': 'Slovakia', 211 | 'SL': 'Sierra Leone', 212 | 'SM': 'San Marino', 213 | 'SN': 'Senegal', 214 | 'SO': 'Somalia', 215 | 'SR': 'Suriname', 216 | 'SS': 'South Sudan', 217 | 'ST': 'Sao Tome and Principe', 218 | 'SV': 'El Salvador', 219 | 'SX': 'Sint Maarten (Dutch part)', 220 | 'SY': 'Syrian Arab Republic', 221 | 'SZ': 'Swaziland', 222 | 'TC': 'Turks and Caicos Islands', 223 | 'TD': 'Chad', 224 | 'TF': 'French Southern Territories', 225 | 'TG': 'Togo', 226 | 'TH': 'Thailand', 227 | 'TJ': 'Tajikistan', 228 | 'TK': 'Tokelau', 229 | 'TL': 'Timor-Leste', 230 | 'TM': 'Turkmenistan', 231 | 'TN': 'Tunisia', 232 | 'TO': 'Tonga', 233 | 'TR': 'Turkey', 234 | 'TT': 'Trinidad and Tobago', 235 | 'TV': 'Tuvalu', 236 | 'TW': 'Taiwan', 237 | 'TZ': 'Tanzania', 238 | 'UA': 'Ukraine', 239 | 'UG': 'Uganda', 240 | 'UM': 'United States Minor Outlying Islands', 241 | 'US': 'United States', 242 | 'UY': 'Uruguay', 243 | 'UZ': 'Uzbekistan', 244 | 'VA': 'Holy See', 245 | 'VC': 'Saint Vincent and the Grenadines', 246 | 'VE': 'Venezuela', 247 | 'VG': 'British Virgin Islands', 248 | 'VI': 'U.S. Virgin Islands', 249 | 'VN': 'Viet Nam', 250 | 'VU': 'Vanuatu', 251 | 'WF': 'Wallis and Futuna', 252 | 'WS': 'Samoa', 253 | 'YE': 'Yemen', 254 | 'YT': 'Mayotte', 255 | 'ZA': 'South Africa', 256 | 'ZM': 'Zambia', 257 | 'ZW': 'Zimbabwe', 258 | 'AC': 'Ascension Island', 259 | 'CP': 'Clipperton Island', 260 | 'DG': 'Diego Garcia', 261 | 'EA': 'Ceuta', 262 | 'EU': 'European Union', 263 | 'EZ': 'Eurozone', 264 | 'FX': 'France', 265 | 'IC': 'Canary Islands', 266 | 'SU': 'USSR', 267 | 'TA': 'Tristan da Cunha', 268 | 'UK': 'United Kingdom', 269 | 'UN': 'United Nations', 270 | 'AX': 'aland', 271 | 'GG': 'Guernsey', 272 | 'IM': 'Isle of Man', 273 | 'JE': 'Jersey' 274 | } 275 | 276 | if (!(iso in countryList)) { 277 | return 'Unknown'; 278 | } 279 | 280 | return countryList[iso]; 281 | } 282 | -------------------------------------------------------------------------------- /src/common/css/bootstrap-theme.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap v3.3.6 (http://getbootstrap.com) 3 | * Copyright 2011-2015 Twitter, Inc. 4 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 5 | */.btn-danger,.btn-default,.btn-info,.btn-primary,.btn-success,.btn-warning{text-shadow:0 -1px 0 rgba(0,0,0,.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075)}.btn-danger.active,.btn-danger:active,.btn-default.active,.btn-default:active,.btn-info.active,.btn-info:active,.btn-primary.active,.btn-primary:active,.btn-success.active,.btn-success:active,.btn-warning.active,.btn-warning:active{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-danger.disabled,.btn-danger[disabled],.btn-default.disabled,.btn-default[disabled],.btn-info.disabled,.btn-info[disabled],.btn-primary.disabled,.btn-primary[disabled],.btn-success.disabled,.btn-success[disabled],.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-danger,fieldset[disabled] .btn-default,fieldset[disabled] .btn-info,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-success,fieldset[disabled] .btn-warning{-webkit-box-shadow:none;box-shadow:none}.btn-danger .badge,.btn-default .badge,.btn-info .badge,.btn-primary .badge,.btn-success .badge,.btn-warning .badge{text-shadow:none}.btn.active,.btn:active{background-image:none}.btn-default{text-shadow:0 1px 0 #fff;background-image:-webkit-linear-gradient(top,#fff 0,#e0e0e0 100%);background-image:-o-linear-gradient(top,#fff 0,#e0e0e0 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e0e0e0));background-image:linear-gradient(to bottom,#fff 0,#e0e0e0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#dbdbdb;border-color:#ccc}.btn-default:focus,.btn-default:hover{background-color:#e0e0e0;background-position:0 -15px}.btn-default.active,.btn-default:active{background-color:#e0e0e0;border-color:#dbdbdb}.btn-default.disabled,.btn-default.disabled.active,.btn-default.disabled.focus,.btn-default.disabled:active,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled],.btn-default[disabled].active,.btn-default[disabled].focus,.btn-default[disabled]:active,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default,fieldset[disabled] .btn-default.active,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:active,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#e0e0e0;background-image:none}.btn-primary{background-image:-webkit-linear-gradient(top,#337ab7 0,#265a88 100%);background-image:-o-linear-gradient(top,#337ab7 0,#265a88 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#265a88));background-image:linear-gradient(to bottom,#337ab7 0,#265a88 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff265a88', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#245580}.btn-primary:focus,.btn-primary:hover{background-color:#265a88;background-position:0 -15px}.btn-primary.active,.btn-primary:active{background-color:#265a88;border-color:#245580}.btn-primary.disabled,.btn-primary.disabled.active,.btn-primary.disabled.focus,.btn-primary.disabled:active,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled],.btn-primary[disabled].active,.btn-primary[disabled].focus,.btn-primary[disabled]:active,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-primary.active,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:active,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#265a88;background-image:none}.btn-success{background-image:-webkit-linear-gradient(top,#5cb85c 0,#419641 100%);background-image:-o-linear-gradient(top,#5cb85c 0,#419641 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5cb85c),to(#419641));background-image:linear-gradient(to bottom,#5cb85c 0,#419641 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#3e8f3e}.btn-success:focus,.btn-success:hover{background-color:#419641;background-position:0 -15px}.btn-success.active,.btn-success:active{background-color:#419641;border-color:#3e8f3e}.btn-success.disabled,.btn-success.disabled.active,.btn-success.disabled.focus,.btn-success.disabled:active,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled],.btn-success[disabled].active,.btn-success[disabled].focus,.btn-success[disabled]:active,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success,fieldset[disabled] .btn-success.active,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:active,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#419641;background-image:none}.btn-info{background-image:-webkit-linear-gradient(top,#5bc0de 0,#2aabd2 100%);background-image:-o-linear-gradient(top,#5bc0de 0,#2aabd2 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5bc0de),to(#2aabd2));background-image:linear-gradient(to bottom,#5bc0de 0,#2aabd2 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#28a4c9}.btn-info:focus,.btn-info:hover{background-color:#2aabd2;background-position:0 -15px}.btn-info.active,.btn-info:active{background-color:#2aabd2;border-color:#28a4c9}.btn-info.disabled,.btn-info.disabled.active,.btn-info.disabled.focus,.btn-info.disabled:active,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled],.btn-info[disabled].active,.btn-info[disabled].focus,.btn-info[disabled]:active,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info,fieldset[disabled] .btn-info.active,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:active,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#2aabd2;background-image:none}.btn-warning{background-image:-webkit-linear-gradient(top,#f0ad4e 0,#eb9316 100%);background-image:-o-linear-gradient(top,#f0ad4e 0,#eb9316 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f0ad4e),to(#eb9316));background-image:linear-gradient(to bottom,#f0ad4e 0,#eb9316 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#e38d13}.btn-warning:focus,.btn-warning:hover{background-color:#eb9316;background-position:0 -15px}.btn-warning.active,.btn-warning:active{background-color:#eb9316;border-color:#e38d13}.btn-warning.disabled,.btn-warning.disabled.active,.btn-warning.disabled.focus,.btn-warning.disabled:active,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled],.btn-warning[disabled].active,.btn-warning[disabled].focus,.btn-warning[disabled]:active,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning,fieldset[disabled] .btn-warning.active,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:active,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#eb9316;background-image:none}.btn-danger{background-image:-webkit-linear-gradient(top,#d9534f 0,#c12e2a 100%);background-image:-o-linear-gradient(top,#d9534f 0,#c12e2a 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9534f),to(#c12e2a));background-image:linear-gradient(to bottom,#d9534f 0,#c12e2a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#b92c28}.btn-danger:focus,.btn-danger:hover{background-color:#c12e2a;background-position:0 -15px}.btn-danger.active,.btn-danger:active{background-color:#c12e2a;border-color:#b92c28}.btn-danger.disabled,.btn-danger.disabled.active,.btn-danger.disabled.focus,.btn-danger.disabled:active,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled],.btn-danger[disabled].active,.btn-danger[disabled].focus,.btn-danger[disabled]:active,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger,fieldset[disabled] .btn-danger.active,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:active,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#c12e2a;background-image:none}.img-thumbnail,.thumbnail{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.075);box-shadow:0 1px 2px rgba(0,0,0,.075)}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{background-color:#e8e8e8;background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-o-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#e8e8e8));background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);background-repeat:repeat-x}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{background-color:#2e6da4;background-image:-webkit-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2e6da4));background-image:linear-gradient(to bottom,#337ab7 0,#2e6da4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);background-repeat:repeat-x}.navbar-default{background-image:-webkit-linear-gradient(top,#fff 0,#f8f8f8 100%);background-image:-o-linear-gradient(top,#fff 0,#f8f8f8 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#f8f8f8));background-image:linear-gradient(to bottom,#fff 0,#f8f8f8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-radius:4px;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 5px rgba(0,0,0,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 5px rgba(0,0,0,.075)}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.open>a{background-image:-webkit-linear-gradient(top,#dbdbdb 0,#e2e2e2 100%);background-image:-o-linear-gradient(top,#dbdbdb 0,#e2e2e2 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dbdbdb),to(#e2e2e2));background-image:linear-gradient(to bottom,#dbdbdb 0,#e2e2e2 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdbdbdb', endColorstr='#ffe2e2e2', GradientType=0);background-repeat:repeat-x;-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,.075);box-shadow:inset 0 3px 9px rgba(0,0,0,.075)}.navbar-brand,.navbar-nav>li>a{text-shadow:0 1px 0 rgba(255,255,255,.25)}.navbar-inverse{background-image:-webkit-linear-gradient(top,#3c3c3c 0,#222 100%);background-image:-o-linear-gradient(top,#3c3c3c 0,#222 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#3c3c3c),to(#222));background-image:linear-gradient(to bottom,#3c3c3c 0,#222 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-radius:4px}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.open>a{background-image:-webkit-linear-gradient(top,#080808 0,#0f0f0f 100%);background-image:-o-linear-gradient(top,#080808 0,#0f0f0f 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#080808),to(#0f0f0f));background-image:linear-gradient(to bottom,#080808 0,#0f0f0f 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff080808', endColorstr='#ff0f0f0f', GradientType=0);background-repeat:repeat-x;-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,.25);box-shadow:inset 0 3px 9px rgba(0,0,0,.25)}.navbar-inverse .navbar-brand,.navbar-inverse .navbar-nav>li>a{text-shadow:0 -1px 0 rgba(0,0,0,.25)}.navbar-fixed-bottom,.navbar-fixed-top,.navbar-static-top{border-radius:0}@media (max-width:767px){.navbar .navbar-nav .open .dropdown-menu>.active>a,.navbar .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-image:-webkit-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2e6da4));background-image:linear-gradient(to bottom,#337ab7 0,#2e6da4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);background-repeat:repeat-x}}.alert{text-shadow:0 1px 0 rgba(255,255,255,.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 2px rgba(0,0,0,.05)}.alert-success{background-image:-webkit-linear-gradient(top,#dff0d8 0,#c8e5bc 100%);background-image:-o-linear-gradient(top,#dff0d8 0,#c8e5bc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dff0d8),to(#c8e5bc));background-image:linear-gradient(to bottom,#dff0d8 0,#c8e5bc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);background-repeat:repeat-x;border-color:#b2dba1}.alert-info{background-image:-webkit-linear-gradient(top,#d9edf7 0,#b9def0 100%);background-image:-o-linear-gradient(top,#d9edf7 0,#b9def0 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9edf7),to(#b9def0));background-image:linear-gradient(to bottom,#d9edf7 0,#b9def0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);background-repeat:repeat-x;border-color:#9acfea}.alert-warning{background-image:-webkit-linear-gradient(top,#fcf8e3 0,#f8efc0 100%);background-image:-o-linear-gradient(top,#fcf8e3 0,#f8efc0 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fcf8e3),to(#f8efc0));background-image:linear-gradient(to bottom,#fcf8e3 0,#f8efc0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);background-repeat:repeat-x;border-color:#f5e79e}.alert-danger{background-image:-webkit-linear-gradient(top,#f2dede 0,#e7c3c3 100%);background-image:-o-linear-gradient(top,#f2dede 0,#e7c3c3 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f2dede),to(#e7c3c3));background-image:linear-gradient(to bottom,#f2dede 0,#e7c3c3 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);background-repeat:repeat-x;border-color:#dca7a7}.progress{background-image:-webkit-linear-gradient(top,#ebebeb 0,#f5f5f5 100%);background-image:-o-linear-gradient(top,#ebebeb 0,#f5f5f5 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#f5f5f5));background-image:linear-gradient(to bottom,#ebebeb 0,#f5f5f5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0);background-repeat:repeat-x}.progress-bar{background-image:-webkit-linear-gradient(top,#337ab7 0,#286090 100%);background-image:-o-linear-gradient(top,#337ab7 0,#286090 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#286090));background-image:linear-gradient(to bottom,#337ab7 0,#286090 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff286090', GradientType=0);background-repeat:repeat-x}.progress-bar-success{background-image:-webkit-linear-gradient(top,#5cb85c 0,#449d44 100%);background-image:-o-linear-gradient(top,#5cb85c 0,#449d44 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5cb85c),to(#449d44));background-image:linear-gradient(to bottom,#5cb85c 0,#449d44 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0);background-repeat:repeat-x}.progress-bar-info{background-image:-webkit-linear-gradient(top,#5bc0de 0,#31b0d5 100%);background-image:-o-linear-gradient(top,#5bc0de 0,#31b0d5 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5bc0de),to(#31b0d5));background-image:linear-gradient(to bottom,#5bc0de 0,#31b0d5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0);background-repeat:repeat-x}.progress-bar-warning{background-image:-webkit-linear-gradient(top,#f0ad4e 0,#ec971f 100%);background-image:-o-linear-gradient(top,#f0ad4e 0,#ec971f 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f0ad4e),to(#ec971f));background-image:linear-gradient(to bottom,#f0ad4e 0,#ec971f 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0);background-repeat:repeat-x}.progress-bar-danger{background-image:-webkit-linear-gradient(top,#d9534f 0,#c9302c 100%);background-image:-o-linear-gradient(top,#d9534f 0,#c9302c 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9534f),to(#c9302c));background-image:linear-gradient(to bottom,#d9534f 0,#c9302c 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0);background-repeat:repeat-x}.progress-bar-striped{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.list-group{border-radius:4px;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.075);box-shadow:0 1px 2px rgba(0,0,0,.075)}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{text-shadow:0 -1px 0 #286090;background-image:-webkit-linear-gradient(top,#337ab7 0,#2b669a 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2b669a 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2b669a));background-image:linear-gradient(to bottom,#337ab7 0,#2b669a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2b669a', GradientType=0);background-repeat:repeat-x;border-color:#2b669a}.list-group-item.active .badge,.list-group-item.active:focus .badge,.list-group-item.active:hover .badge{text-shadow:none}.panel{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.05);box-shadow:0 1px 2px rgba(0,0,0,.05)}.panel-default>.panel-heading{background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-o-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#e8e8e8));background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);background-repeat:repeat-x}.panel-primary>.panel-heading{background-image:-webkit-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2e6da4));background-image:linear-gradient(to bottom,#337ab7 0,#2e6da4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);background-repeat:repeat-x}.panel-success>.panel-heading{background-image:-webkit-linear-gradient(top,#dff0d8 0,#d0e9c6 100%);background-image:-o-linear-gradient(top,#dff0d8 0,#d0e9c6 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dff0d8),to(#d0e9c6));background-image:linear-gradient(to bottom,#dff0d8 0,#d0e9c6 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0);background-repeat:repeat-x}.panel-info>.panel-heading{background-image:-webkit-linear-gradient(top,#d9edf7 0,#c4e3f3 100%);background-image:-o-linear-gradient(top,#d9edf7 0,#c4e3f3 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9edf7),to(#c4e3f3));background-image:linear-gradient(to bottom,#d9edf7 0,#c4e3f3 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0);background-repeat:repeat-x}.panel-warning>.panel-heading{background-image:-webkit-linear-gradient(top,#fcf8e3 0,#faf2cc 100%);background-image:-o-linear-gradient(top,#fcf8e3 0,#faf2cc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fcf8e3),to(#faf2cc));background-image:linear-gradient(to bottom,#fcf8e3 0,#faf2cc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0);background-repeat:repeat-x}.panel-danger>.panel-heading{background-image:-webkit-linear-gradient(top,#f2dede 0,#ebcccc 100%);background-image:-o-linear-gradient(top,#f2dede 0,#ebcccc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f2dede),to(#ebcccc));background-image:linear-gradient(to bottom,#f2dede 0,#ebcccc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0);background-repeat:repeat-x}.well{background-image:-webkit-linear-gradient(top,#e8e8e8 0,#f5f5f5 100%);background-image:-o-linear-gradient(top,#e8e8e8 0,#f5f5f5 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#e8e8e8),to(#f5f5f5));background-image:linear-gradient(to bottom,#e8e8e8 0,#f5f5f5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);background-repeat:repeat-x;border-color:#dcdcdc;-webkit-box-shadow:inset 0 1px 3px rgba(0,0,0,.05),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 3px rgba(0,0,0,.05),0 1px 0 rgba(255,255,255,.1)} 6 | /*# sourceMappingURL=bootstrap-theme.min.css.map */ -------------------------------------------------------------------------------- /src/common/js/bootstrap.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap v3.3.6 (http://getbootstrap.com) 3 | * Copyright 2011-2015 Twitter, Inc. 4 | * Licensed under the MIT license 5 | */ 6 | if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){"use strict";var b=a.fn.jquery.split(" ")[0].split(".");if(b[0]<2&&b[1]<9||1==b[0]&&9==b[1]&&b[2]<1||b[0]>2)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher, but lower than version 3")}(jQuery),+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]};return!1}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one("bsTransitionEnd",function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b(),a.support.transition&&(a.event.special.bsTransitionEnd={bindType:a.support.transition.end,delegateType:a.support.transition.end,handle:function(b){return a(b.target).is(this)?b.handleObj.handler.apply(this,arguments):void 0}})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var c=a(this),e=c.data("bs.alert");e||c.data("bs.alert",e=new d(this)),"string"==typeof b&&e[b].call(c)})}var c='[data-dismiss="alert"]',d=function(b){a(b).on("click",c,this.close)};d.VERSION="3.3.6",d.TRANSITION_DURATION=150,d.prototype.close=function(b){function c(){g.detach().trigger("closed.bs.alert").remove()}var e=a(this),f=e.attr("data-target");f||(f=e.attr("href"),f=f&&f.replace(/.*(?=#[^\s]*$)/,""));var g=a(f);b&&b.preventDefault(),g.length||(g=e.closest(".alert")),g.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(g.removeClass("in"),a.support.transition&&g.hasClass("fade")?g.one("bsTransitionEnd",c).emulateTransitionEnd(d.TRANSITION_DURATION):c())};var e=a.fn.alert;a.fn.alert=b,a.fn.alert.Constructor=d,a.fn.alert.noConflict=function(){return a.fn.alert=e,this},a(document).on("click.bs.alert.data-api",c,d.prototype.close)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof b&&b;e||d.data("bs.button",e=new c(this,f)),"toggle"==b?e.toggle():b&&e.setState(b)})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.isLoading=!1};c.VERSION="3.3.6",c.DEFAULTS={loadingText:"loading..."},c.prototype.setState=function(b){var c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",null==f.resetText&&d.data("resetText",d[e]()),setTimeout(a.proxy(function(){d[e](null==f[b]?this.options[b]:f[b]),"loadingText"==b?(this.isLoading=!0,d.addClass(c).attr(c,c)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c))},this),0)},c.prototype.toggle=function(){var a=!0,b=this.$element.closest('[data-toggle="buttons"]');if(b.length){var c=this.$element.find("input");"radio"==c.prop("type")?(c.prop("checked")&&(a=!1),b.find(".active").removeClass("active"),this.$element.addClass("active")):"checkbox"==c.prop("type")&&(c.prop("checked")!==this.$element.hasClass("active")&&(a=!1),this.$element.toggleClass("active")),c.prop("checked",this.$element.hasClass("active")),a&&c.trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active")),this.$element.toggleClass("active")};var d=a.fn.button;a.fn.button=b,a.fn.button.Constructor=c,a.fn.button.noConflict=function(){return a.fn.button=d,this},a(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(c){var d=a(c.target);d.hasClass("btn")||(d=d.closest(".btn")),b.call(d,"toggle"),a(c.target).is('input[type="radio"]')||a(c.target).is('input[type="checkbox"]')||c.preventDefault()}).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',function(b){a(b.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(b.type))})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b),g="string"==typeof b?b:f.slide;e||d.data("bs.carousel",e=new c(this,f)),"number"==typeof b?e.to(b):g?e[g]():f.interval&&e.pause().cycle()})}var c=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=null,this.sliding=null,this.interval=null,this.$active=null,this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",a.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",a.proxy(this.pause,this)).on("mouseleave.bs.carousel",a.proxy(this.cycle,this))};c.VERSION="3.3.6",c.TRANSITION_DURATION=600,c.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},c.prototype.keydown=function(a){if(!/input|textarea/i.test(a.target.tagName)){switch(a.which){case 37:this.prev();break;case 39:this.next();break;default:return}a.preventDefault()}},c.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},c.prototype.getItemIndex=function(a){return this.$items=a.parent().children(".item"),this.$items.index(a||this.$active)},c.prototype.getItemForDirection=function(a,b){var c=this.getItemIndex(b),d="prev"==a&&0===c||"next"==a&&c==this.$items.length-1;if(d&&!this.options.wrap)return b;var e="prev"==a?-1:1,f=(c+e)%this.$items.length;return this.$items.eq(f)},c.prototype.to=function(a){var b=this,c=this.getItemIndex(this.$active=this.$element.find(".item.active"));return a>this.$items.length-1||0>a?void 0:this.sliding?this.$element.one("slid.bs.carousel",function(){b.to(a)}):c==a?this.pause().cycle():this.slide(a>c?"next":"prev",this.$items.eq(a))},c.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},c.prototype.next=function(){return this.sliding?void 0:this.slide("next")},c.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},c.prototype.slide=function(b,d){var e=this.$element.find(".item.active"),f=d||this.getItemForDirection(b,e),g=this.interval,h="next"==b?"left":"right",i=this;if(f.hasClass("active"))return this.sliding=!1;var j=f[0],k=a.Event("slide.bs.carousel",{relatedTarget:j,direction:h});if(this.$element.trigger(k),!k.isDefaultPrevented()){if(this.sliding=!0,g&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var l=a(this.$indicators.children()[this.getItemIndex(f)]);l&&l.addClass("active")}var m=a.Event("slid.bs.carousel",{relatedTarget:j,direction:h});return a.support.transition&&this.$element.hasClass("slide")?(f.addClass(b),f[0].offsetWidth,e.addClass(h),f.addClass(h),e.one("bsTransitionEnd",function(){f.removeClass([b,h].join(" ")).addClass("active"),e.removeClass(["active",h].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger(m)},0)}).emulateTransitionEnd(c.TRANSITION_DURATION)):(e.removeClass("active"),f.addClass("active"),this.sliding=!1,this.$element.trigger(m)),g&&this.cycle(),this}};var d=a.fn.carousel;a.fn.carousel=b,a.fn.carousel.Constructor=c,a.fn.carousel.noConflict=function(){return a.fn.carousel=d,this};var e=function(c){var d,e=a(this),f=a(e.attr("data-target")||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""));if(f.hasClass("carousel")){var g=a.extend({},f.data(),e.data()),h=e.attr("data-slide-to");h&&(g.interval=!1),b.call(f,g),h&&f.data("bs.carousel").to(h),c.preventDefault()}};a(document).on("click.bs.carousel.data-api","[data-slide]",e).on("click.bs.carousel.data-api","[data-slide-to]",e),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var c=a(this);b.call(c,c.data())})})}(jQuery),+function(a){"use strict";function b(b){var c,d=b.attr("data-target")||(c=b.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"");return a(d)}function c(b){return this.each(function(){var c=a(this),e=c.data("bs.collapse"),f=a.extend({},d.DEFAULTS,c.data(),"object"==typeof b&&b);!e&&f.toggle&&/show|hide/.test(b)&&(f.toggle=!1),e||c.data("bs.collapse",e=new d(this,f)),"string"==typeof b&&e[b]()})}var d=function(b,c){this.$element=a(b),this.options=a.extend({},d.DEFAULTS,c),this.$trigger=a('[data-toggle="collapse"][href="#'+b.id+'"],[data-toggle="collapse"][data-target="#'+b.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};d.VERSION="3.3.6",d.TRANSITION_DURATION=350,d.DEFAULTS={toggle:!0},d.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},d.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b,e=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(e&&e.length&&(b=e.data("bs.collapse"),b&&b.transitioning))){var f=a.Event("show.bs.collapse");if(this.$element.trigger(f),!f.isDefaultPrevented()){e&&e.length&&(c.call(e,"hide"),b||e.data("bs.collapse",null));var g=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[g](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var h=function(){this.$element.removeClass("collapsing").addClass("collapse in")[g](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return h.call(this);var i=a.camelCase(["scroll",g].join("-"));this.$element.one("bsTransitionEnd",a.proxy(h,this)).emulateTransitionEnd(d.TRANSITION_DURATION)[g](this.$element[0][i])}}}},d.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var e=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};return a.support.transition?void this.$element[c](0).one("bsTransitionEnd",a.proxy(e,this)).emulateTransitionEnd(d.TRANSITION_DURATION):e.call(this)}}},d.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},d.prototype.getParent=function(){return a(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(a.proxy(function(c,d){var e=a(d);this.addAriaAndCollapsedClass(b(e),e)},this)).end()},d.prototype.addAriaAndCollapsedClass=function(a,b){var c=a.hasClass("in");a.attr("aria-expanded",c),b.toggleClass("collapsed",!c).attr("aria-expanded",c)};var e=a.fn.collapse;a.fn.collapse=c,a.fn.collapse.Constructor=d,a.fn.collapse.noConflict=function(){return a.fn.collapse=e,this},a(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(d){var e=a(this);e.attr("data-target")||d.preventDefault();var f=b(e),g=f.data("bs.collapse"),h=g?"toggle":e.data();c.call(f,h)})}(jQuery),+function(a){"use strict";function b(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}function c(c){c&&3===c.which||(a(e).remove(),a(f).each(function(){var d=a(this),e=b(d),f={relatedTarget:this};e.hasClass("open")&&(c&&"click"==c.type&&/input|textarea/i.test(c.target.tagName)&&a.contains(e[0],c.target)||(e.trigger(c=a.Event("hide.bs.dropdown",f)),c.isDefaultPrevented()||(d.attr("aria-expanded","false"),e.removeClass("open").trigger(a.Event("hidden.bs.dropdown",f)))))}))}function d(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new g(this)),"string"==typeof b&&d[b].call(c)})}var e=".dropdown-backdrop",f='[data-toggle="dropdown"]',g=function(b){a(b).on("click.bs.dropdown",this.toggle)};g.VERSION="3.3.6",g.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=b(e),g=f.hasClass("open");if(c(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(a(this)).on("click",c);var h={relatedTarget:this};if(f.trigger(d=a.Event("show.bs.dropdown",h)),d.isDefaultPrevented())return;e.trigger("focus").attr("aria-expanded","true"),f.toggleClass("open").trigger(a.Event("shown.bs.dropdown",h))}return!1}},g.prototype.keydown=function(c){if(/(38|40|27|32)/.test(c.which)&&!/input|textarea/i.test(c.target.tagName)){var d=a(this);if(c.preventDefault(),c.stopPropagation(),!d.is(".disabled, :disabled")){var e=b(d),g=e.hasClass("open");if(!g&&27!=c.which||g&&27==c.which)return 27==c.which&&e.find(f).trigger("focus"),d.trigger("click");var h=" li:not(.disabled):visible a",i=e.find(".dropdown-menu"+h);if(i.length){var j=i.index(c.target);38==c.which&&j>0&&j--,40==c.which&&jdocument.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&a?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!a?this.scrollbarWidth:""})},c.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},c.prototype.checkScrollbar=function(){var a=window.innerWidth;if(!a){var b=document.documentElement.getBoundingClientRect();a=b.right-Math.abs(b.left)}this.bodyIsOverflowing=document.body.clientWidth
',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},c.prototype.init=function(b,c,d){if(this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.$viewport=this.options.viewport&&a(a.isFunction(this.options.viewport)?this.options.viewport.call(this,this.$element):this.options.viewport.selector||this.options.viewport),this.inState={click:!1,hover:!1,focus:!1},this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!");for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var h="hover"==g?"mouseenter":"focusin",i="hover"==g?"mouseleave":"focusout";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},c.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},c.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusin"==b.type?"focus":"hover"]=!0),c.tip().hasClass("in")||"in"==c.hoverState?void(c.hoverState="in"):(clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?void(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show)):c.show())},c.prototype.isInStateTrue=function(){for(var a in this.inState)if(this.inState[a])return!0;return!1},c.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusout"==b.type?"focus":"hover"]=!1),c.isInStateTrue()?void 0:(clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?void(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide)):c.hide())},c.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(b);var d=a.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(b.isDefaultPrevented()||!d)return;var e=this,f=this.tip(),g=this.getUID(this.type);this.setContent(),f.attr("id",g),this.$element.attr("aria-describedby",g),this.options.animation&&f.addClass("fade");var h="function"==typeof this.options.placement?this.options.placement.call(this,f[0],this.$element[0]):this.options.placement,i=/\s?auto?\s?/i,j=i.test(h);j&&(h=h.replace(i,"")||"top"),f.detach().css({top:0,left:0,display:"block"}).addClass(h).data("bs."+this.type,this),this.options.container?f.appendTo(this.options.container):f.insertAfter(this.$element),this.$element.trigger("inserted.bs."+this.type);var k=this.getPosition(),l=f[0].offsetWidth,m=f[0].offsetHeight;if(j){var n=h,o=this.getPosition(this.$viewport);h="bottom"==h&&k.bottom+m>o.bottom?"top":"top"==h&&k.top-mo.width?"left":"left"==h&&k.left-lg.top+g.height&&(e.top=g.top+g.height-i)}else{var j=b.left-f,k=b.left+f+c;jg.right&&(e.left=g.left+g.width-k)}return e},c.prototype.getTitle=function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||("function"==typeof c.title?c.title.call(b[0]):c.title)},c.prototype.getUID=function(a){do a+=~~(1e6*Math.random());while(document.getElementById(a));return a},c.prototype.tip=function(){if(!this.$tip&&(this.$tip=a(this.options.template),1!=this.$tip.length))throw new Error(this.type+" `template` option must consist of exactly 1 top-level element!");return this.$tip},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},c.prototype.enable=function(){this.enabled=!0},c.prototype.disable=function(){this.enabled=!1},c.prototype.toggleEnabled=function(){this.enabled=!this.enabled},c.prototype.toggle=function(b){var c=this;b&&(c=a(b.currentTarget).data("bs."+this.type),c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c))),b?(c.inState.click=!c.inState.click,c.isInStateTrue()?c.enter(c):c.leave(c)):c.tip().hasClass("in")?c.leave(c):c.enter(c)},c.prototype.destroy=function(){var a=this;clearTimeout(this.timeout),this.hide(function(){a.$element.off("."+a.type).removeData("bs."+a.type),a.$tip&&a.$tip.detach(),a.$tip=null,a.$arrow=null,a.$viewport=null})};var d=a.fn.tooltip;a.fn.tooltip=b,a.fn.tooltip.Constructor=c,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=d,this}}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof b&&b;(e||!/destroy|hide/.test(b))&&(e||d.data("bs.popover",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");c.VERSION="3.3.6",c.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:''}),c.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),c.prototype.constructor=c,c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content").children().detach().end()[this.options.html?"string"==typeof c?"html":"append":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},c.prototype.hasContent=function(){return this.getTitle()||this.getContent()},c.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")};var d=a.fn.popover;a.fn.popover=b,a.fn.popover.Constructor=c,a.fn.popover.noConflict=function(){return a.fn.popover=d,this}}(jQuery),+function(a){"use strict";function b(c,d){this.$body=a(document.body),this.$scrollElement=a(a(c).is(document.body)?window:c),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",a.proxy(this.process,this)),this.refresh(),this.process()}function c(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})}b.VERSION="3.3.6",b.DEFAULTS={offset:10},b.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},b.prototype.refresh=function(){var b=this,c="offset",d=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),a.isWindow(this.$scrollElement[0])||(c="position",d=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map(function(){var b=a(this),e=b.data("target")||b.attr("href"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(":visible")&&[[f[c]().top+d,e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){b.offsets.push(this[0]),b.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.getScrollHeight(),d=this.options.offset+c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(this.scrollHeight!=c&&this.refresh(),b>=d)return g!=(a=f[f.length-1])&&this.activate(a);if(g&&b=e[a]&&(void 0===e[a+1]||b .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),b.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),h?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu").length&&b.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),e&&e()}var g=d.find("> .active"),h=e&&a.support.transition&&(g.length&&g.hasClass("fade")||!!d.find("> .fade").length);g.length&&h?g.one("bsTransitionEnd",f).emulateTransitionEnd(c.TRANSITION_DURATION):f(),g.removeClass("in")};var d=a.fn.tab;a.fn.tab=b,a.fn.tab.Constructor=c,a.fn.tab.noConflict=function(){return a.fn.tab=d,this};var e=function(c){c.preventDefault(),b.call(a(this),"show")};a(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',e).on("click.bs.tab.data-api",'[data-toggle="pill"]',e)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof b&&b;e||d.data("bs.affix",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.options=a.extend({},c.DEFAULTS,d),this.$target=a(this.options.target).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(b),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};c.VERSION="3.3.6",c.RESET="affix affix-top affix-bottom",c.DEFAULTS={offset:0,target:window},c.prototype.getState=function(a,b,c,d){var e=this.$target.scrollTop(),f=this.$element.offset(),g=this.$target.height();if(null!=c&&"top"==this.affixed)return c>e?"top":!1;if("bottom"==this.affixed)return null!=c?e+this.unpin<=f.top?!1:"bottom":a-d>=e+g?!1:"bottom";var h=null==this.affixed,i=h?e:f.top,j=h?g:b;return null!=c&&c>=e?"top":null!=d&&i+j>=a-d?"bottom":!1},c.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(c.RESET).addClass("affix");var a=this.$target.scrollTop(),b=this.$element.offset();return this.pinnedOffset=b.top-a},c.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},c.prototype.checkPosition=function(){if(this.$element.is(":visible")){var b=this.$element.height(),d=this.options.offset,e=d.top,f=d.bottom,g=Math.max(a(document).height(),a(document.body).height());"object"!=typeof d&&(f=e=d),"function"==typeof e&&(e=d.top(this.$element)),"function"==typeof f&&(f=d.bottom(this.$element));var h=this.getState(g,b,e,f);if(this.affixed!=h){null!=this.unpin&&this.$element.css("top","");var i="affix"+(h?"-"+h:""),j=a.Event(i+".bs.affix");if(this.$element.trigger(j),j.isDefaultPrevented())return;this.affixed=h,this.unpin="bottom"==h?this.getPinnedOffset():null,this.$element.removeClass(c.RESET).addClass(i).trigger(i.replace("affix","affixed")+".bs.affix")}"bottom"==h&&this.$element.offset({top:g-b-f})}};var d=a.fn.affix;a.fn.affix=b,a.fn.affix.Constructor=c,a.fn.affix.noConflict=function(){return a.fn.affix=d,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var c=a(this),d=c.data();d.offset=d.offset||{},null!=d.offsetBottom&&(d.offset.bottom=d.offsetBottom),null!=d.offsetTop&&(d.offset.top=d.offsetTop),b.call(c,d)})})}(jQuery); -------------------------------------------------------------------------------- /src/common/js/script.js: -------------------------------------------------------------------------------- 1 | KangoAPI.onReady(function() { 2 | var apiurl = 'https://api.bgpview.io'; 3 | var debug = true; 4 | var dataHistory = []; 5 | kango.browser.tabs.getCurrent(function (tab) { 6 | start(tab.getUrl(), false); 7 | }); 8 | var start = function (fullUrl, parsed, skipHistroySave) { 9 | log('Starting the JS process + cleanup...'); 10 | jQuery('.tab-content').text(''); 11 | jQuery('.nav-tabs').text(''); 12 | jQuery('#records-tab').text(''); 13 | jQuery('.current-input').hide(); 14 | jQuery('.base-domain').hide(); 15 | jQuery('.more-info').hide(); 16 | jQuery('.back-btn').hide(); 17 | jQuery('.loader').show(); 18 | log('Current input URL: ' + fullUrl); 19 | var hostname = parsed ? fullUrl : extractDomain(fullUrl) 20 | // Add item to history array 21 | if (skipHistroySave !== true && dataHistory[dataHistory.length - 1] !== hostname) { 22 | dataHistory.push(hostname); 23 | } 24 | if (validIP(hostname)) { 25 | log('hostname is an IP address'); 26 | getAdressInfo(hostname); 27 | } else if (validPrefix(hostname)) { 28 | log('hostname is a prefix'); 29 | getPrefixInfo(hostname); 30 | } else if (validAsn(hostname)) { 31 | log('hostname is a ASN'); 32 | getAsnInfo(hostname); 33 | } else { 34 | log('hostname is a domain'); 35 | getDnsRecords(hostname); 36 | } 37 | } 38 | var log = function (message) { 39 | if (debug) { 40 | kango.console.log(message); 41 | } 42 | } 43 | var displayDate = function (date) { 44 | return date.getFullYear() + '-' + ('0' + (date.getMonth() + 1)).slice(-2) + '-' + ('0' + date.getDate()).slice(-2); 45 | } 46 | var validIP = function (ipAddress) { 47 | return /((^\s*((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))\s*$)|(^\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?\s*$))/.test(ipAddress); 48 | } 49 | var validAsn = function(asn) { 50 | return /^as ?[0-9]+$/i.test(asn) 51 | } 52 | var validPrefix = function (prefix) { 53 | var parts = prefix.split('/'); 54 | return parts.length === 2 && !isNaN(parts[1]) && getAddressCount(Number(parts[1])) && validIP(parts[0]) 55 | } 56 | var postLoadIconDisplay = function () { 57 | jQuery('.loader').hide(); 58 | jQuery('.back-btn')[dataHistory.length ? 'show' : 'hide'](); 59 | } 60 | var humanReadableBitSpeed = function (bits) { 61 | var i = Math.floor(Math.log(bits) / Math.log(1000)); 62 | var prefixes = ['', 'k', 'M', 'G', 'T', 'P', 'E', 'Z', 'Y']; 63 | return (!bits ? '0 ' : i > prefixes.length - 1 ? bits : (bits / Math.pow(1000, i)).toFixed(2) * 1 + ' ' + prefixes[i]) + 'bps'; 64 | }; 65 | var abort = function () { 66 | log('Sending an abort'); 67 | postLoadIconDisplay(); 68 | jQuery('.main').append('No records found'); 69 | throw new Error('No Records Found'); 70 | } 71 | var extractDomain = function (fullUrl) { 72 | var match = fullUrl.match(/(?:https?:)\/\/([^:\/$]+)/); 73 | return match ? match[1] : false; 74 | } 75 | var getCached = function (key) { 76 | var item = kango.storage.getItem(key); 77 | return item && item.expire >= Math.floor(Date.now() / 1000) ? item : false; 78 | } 79 | var setCached = function (key, item) { 80 | item.expire = Math.floor(Date.now() / 1000) + 60*6*6; // 6 hours expire 81 | kango.storage.setItem(key, item) 82 | } 83 | var getJSON = function (url, callback) { 84 | var cachedRecords = getCached(url); 85 | if (cachedRecords) { 86 | return cachedRecords; 87 | } 88 | var req = jQuery.getJSON(apiurl + url + '?source=browser_extension'); 89 | req.done(function (data) { 90 | callback(null, data); 91 | setCached(url, data); 92 | }); 93 | req.fail(function (jqxhr, textStatus, error) { 94 | callback(error, ''); 95 | }); 96 | }; 97 | var getDnsRecords = function (hostname) { 98 | getJSON('/dns/live/' + hostname, function (err, res) { 99 | if (err || !data || data.status === 'error') { 100 | return abort(); 101 | } 102 | displayRecords(res.data); 103 | }); 104 | } 105 | var getAsnInfo = function (asn) { 106 | asn = Number(asn.match(/^as ?[0-9]+$/i)[1]); 107 | getJSON('/asn/' + asn, function (err, res) { 108 | if (err || !res || res.status === 'error') { 109 | return abort(); 110 | } 111 | displayAsnInfo(res.data); 112 | }); 113 | } 114 | var getAdressInfo = function (ipAddress) { 115 | getJSON('/ip/' + ipAddress, function (err, res) { 116 | if (err || !res || res.status === 'error') { 117 | return abort(); 118 | } 119 | displayIpInfo(res.data) 120 | }); 121 | } 122 | var getPrefixInfo = function (prefix) { 123 | getJSON('/prefix/' + prefix, function (err, res) { 124 | if (err || !res || res.status === 'error') { 125 | return abort(); 126 | } 127 | displayPrefixInfo(res.data); 128 | }); 129 | } 130 | var displayAsnInfo = function (data) { 131 | log('Processing ASN info display'); 132 | postLoadIconDisplay(); 133 | jQuery('.current-input a').text('AS' + data.asn); 134 | jQuery('.current-input').show(); 135 | jQuery('.more-info').show(); 136 | if (data.whois_country_code == null) { 137 | var flagImage = kango.io.getResourceUrl('res/flags/24/_unknown.png'); 138 | } else { 139 | var flagImage = kango.io.getResourceUrl('res/flags/24/' + data.whois_country_code + '.png'); 140 | } 141 | var htmlUl = ''; 142 | if (data.prefixes.ipv4_prefixes.length > 0 || data.prefixes.ipv6_prefixes.length > 0) { 143 | htmlUl += '
  • Prefixes
  • '; 144 | } 145 | if (data.peers.ipv4_peers.length > 0 || data.peers.ipv6_peers.length > 0) { 146 | htmlUl += '
  • Peers
  • '; 147 | } 148 | if (data.upstreams.ipv4_upstreams.length > 0 || data.upstreams.ipv6_upstreams.length > 0) { 149 | htmlUl += '
  • Upstreams
  • '; 150 | } 151 | if (data.downstreams.ipv4_downstreams.length > 0 || data.downstreams.ipv6_downstreams.length > 0) { 152 | htmlUl += '
  • Downstreams
  • '; 153 | } 154 | if (data.internet_exchanges.length > 0 || data.internet_exchanges.length > 0) { 155 | htmlUl += '
  • IX
  • '; 156 | } 157 | jQuery('#records-tab').html(htmlUl); 158 | // ASN INFO 159 | if (data.country_code == null) { 160 | var flagImage = kango.io.getResourceUrl('res/flags/24/_unknown.png'); 161 | } else { 162 | var flagImage = kango.io.getResourceUrl('res/flags/24/' + data.country_code + '.png'); 163 | } 164 | var tabbedContentHtml = '
    '; 165 | tabbedContentHtml += ''; 166 | tabbedContentHtml += ''; 167 | tabbedContentHtml += ''; 168 | tabbedContentHtml += ''; 169 | tabbedContentHtml += ''; 170 | jQuery.each(data.abuse_contacts, function( key, email ){ 171 | tabbedContentHtml += ''; 172 | }); 173 | if (data.looking_glass != null) { 174 | tabbedContentHtml += ''; 175 | } 176 | if (data.traffic_estimation != null) { 177 | tabbedContentHtml += ''; 178 | } 179 | if (data.traffic_ratio != null) { 180 | tabbedContentHtml += ''; 181 | } 182 | tabbedContentHtml += '
    ASNAS' + data.asn + '
    Country ' + country(data.country_code) + '
    Name' + data.name + '
    Description' + data.description_short + '
    Abuse Contact' + email+ '
    Looking Glass' + data.looking_glass + '
    Traffic Estimation' + data.traffic_estimation + '
    Traffic Ratio' + data.traffic_ratio + '
    '; 183 | tabbedContentHtml += '
    '; 184 | // Prefixes 185 | if (data.prefixes.ipv4_prefixes.length > 0 || data.prefixes.ipv6_prefixes.length > 0) { 186 | tabbedContentHtml += '
    '; 187 | tabbedContentHtml += ''; 198 | tabbedContentHtml += '
    '; 199 | var active = 'active'; 200 | if (data.prefixes.ipv4_prefixes.length > 0) { 201 | tabbedContentHtml += '
    '; 202 | tabbedContentHtml += ''; 203 | jQuery.each(data.prefixes.ipv4_prefixes, function( key, prefix ){ 204 | if (prefix.country_code == null) { 205 | var flagImage = kango.io.getResourceUrl('res/flags/24/_unknown.png'); 206 | } else { 207 | var flagImage = kango.io.getResourceUrl('res/flags/24/' + prefix.country_code + '.png'); 208 | } 209 | tabbedContentHtml += ''; 210 | tabbedContentHtml += ''; 211 | tabbedContentHtml += ''; 212 | tabbedContentHtml += ''; 213 | tabbedContentHtml += ''; 214 | }); 215 | tabbedContentHtml += '
    ' + prefix.prefix + '' + prefix.description + '
    '; 216 | tabbedContentHtml += '
    '; 217 | active = ''; 218 | } 219 | if (data.prefixes.ipv6_prefixes.length > 0) { 220 | tabbedContentHtml += '
    '; 221 | tabbedContentHtml += ''; 222 | jQuery.each(data.prefixes.ipv6_prefixes, function( key, prefix ){ 223 | if (prefix.country_code == null) { 224 | var flagImage = kango.io.getResourceUrl('res/flags/24/_unknown.png'); 225 | } else { 226 | var flagImage = kango.io.getResourceUrl('res/flags/24/' + prefix.country_code + '.png'); 227 | } 228 | tabbedContentHtml += ''; 229 | tabbedContentHtml += ''; 230 | tabbedContentHtml += ''; 231 | tabbedContentHtml += ''; 232 | tabbedContentHtml += ''; 233 | }); 234 | tabbedContentHtml += '
    ' + prefix.prefix + '' + prefix.description + '
    '; 235 | tabbedContentHtml += '
    '; 236 | active = ''; 237 | } 238 | tabbedContentHtml += '
    '; 239 | tabbedContentHtml += '
    '; 240 | } 241 | // Peers 242 | if (data.peers.ipv4_peers.length > 0 || data.peers.ipv6_peers.length > 0) { 243 | tabbedContentHtml += '
    '; 244 | tabbedContentHtml += ''; 255 | tabbedContentHtml += '
    '; 256 | var active = 'active'; 257 | if (data.peers.ipv4_peers.length > 0) { 258 | tabbedContentHtml += '
    '; 259 | tabbedContentHtml += ''; 260 | jQuery.each(data.peers.ipv4_peers, function( key, peer ){ 261 | if (peer.country_code == null) { 262 | var flagImage = kango.io.getResourceUrl('res/flags/24/_unknown.png'); 263 | } else { 264 | var flagImage = kango.io.getResourceUrl('res/flags/24/' + peer.country_code + '.png'); 265 | } 266 | tabbedContentHtml += ''; 267 | tabbedContentHtml += ''; 268 | tabbedContentHtml += ''; 269 | tabbedContentHtml += ''; 278 | tabbedContentHtml += ''; 279 | }); 280 | tabbedContentHtml += '
    AS' + peer.asn + ''; 270 | tabbedContentHtml += '' + peer.description + ''; 271 | jQuery.each(data.peers.ipv6_peers, function( key, v6peer ){ 272 | if (v6peer.asn == peer.asn) { 273 | tabbedContentHtml += 'v6'; 274 | return false; 275 | } 276 | }); 277 | tabbedContentHtml += '
    '; 281 | tabbedContentHtml += '
    '; 282 | active = ''; 283 | } 284 | if (data.peers.ipv6_peers.length > 0) { 285 | tabbedContentHtml += '
    '; 286 | tabbedContentHtml += ''; 287 | jQuery.each(data.peers.ipv6_peers, function( key, peer ){ 288 | if (peer.country_code == null) { 289 | var flagImage = kango.io.getResourceUrl('res/flags/24/_unknown.png'); 290 | } else { 291 | var flagImage = kango.io.getResourceUrl('res/flags/24/' + peer.country_code + '.png'); 292 | } 293 | tabbedContentHtml += ''; 294 | tabbedContentHtml += ''; 295 | tabbedContentHtml += ''; 296 | tabbedContentHtml += ''; 305 | tabbedContentHtml += ''; 306 | }); 307 | tabbedContentHtml += '
    AS' + peer.asn + ''; 297 | tabbedContentHtml += '' + peer.description + ''; 298 | jQuery.each(data.peers.ipv4_peers, function( key, v4peer ){ 299 | if (v4peer.asn == peer.asn) { 300 | tabbedContentHtml += 'v4'; 301 | return false; 302 | } 303 | }); 304 | tabbedContentHtml += '
    '; 308 | tabbedContentHtml += '
    '; 309 | active = ''; 310 | } 311 | tabbedContentHtml += '
    '; 312 | tabbedContentHtml += '
    '; 313 | } 314 | // Upstreams 315 | if (data.upstreams.ipv4_upstreams.length > 0 || data.upstreams.ipv6_upstreams.length > 0) { 316 | tabbedContentHtml += '
    '; 317 | tabbedContentHtml += ''; 328 | tabbedContentHtml += '
    '; 329 | var active = 'active'; 330 | if (data.upstreams.ipv4_upstreams.length > 0) { 331 | tabbedContentHtml += '
    '; 332 | tabbedContentHtml += ''; 333 | jQuery.each(data.upstreams.ipv4_upstreams, function( key, upstream ){ 334 | if (upstream.country_code == null) { 335 | var flagImage = kango.io.getResourceUrl('res/flags/24/_unknown.png'); 336 | } else { 337 | var flagImage = kango.io.getResourceUrl('res/flags/24/' + upstream.country_code + '.png'); 338 | } 339 | tabbedContentHtml += ''; 340 | tabbedContentHtml += ''; 341 | tabbedContentHtml += ''; 342 | tabbedContentHtml += ''; 351 | tabbedContentHtml += ''; 352 | }); 353 | tabbedContentHtml += '
    AS' + upstream.asn + ''; 343 | tabbedContentHtml += '' + upstream.description + ''; 344 | jQuery.each(data.upstreams.ipv6_upstreams, function( key, v6upstream ){ 345 | if (v6upstream.asn == upstream.asn) { 346 | tabbedContentHtml += 'v6'; 347 | return false; 348 | } 349 | }); 350 | tabbedContentHtml += '
    '; 354 | tabbedContentHtml += '
    '; 355 | active = ''; 356 | } 357 | if (data.upstreams.ipv6_upstreams.length > 0) { 358 | tabbedContentHtml += '
    '; 359 | tabbedContentHtml += ''; 360 | jQuery.each(data.upstreams.ipv6_upstreams, function( key, upstream ){ 361 | if (upstream.country_code == null) { 362 | var flagImage = kango.io.getResourceUrl('res/flags/24/_unknown.png'); 363 | } else { 364 | var flagImage = kango.io.getResourceUrl('res/flags/24/' + upstream.country_code + '.png'); 365 | } 366 | tabbedContentHtml += ''; 367 | tabbedContentHtml += ''; 368 | tabbedContentHtml += ''; 369 | tabbedContentHtml += ''; 378 | tabbedContentHtml += ''; 379 | }); 380 | tabbedContentHtml += '
    AS' + upstream.asn + ''; 370 | tabbedContentHtml += '' + upstream.description + ''; 371 | jQuery.each(data.upstreams.ipv4_upstreams, function( key, v4upstream ){ 372 | if (v4upstream.asn == upstream.asn) { 373 | tabbedContentHtml += 'v4'; 374 | return false; 375 | } 376 | }); 377 | tabbedContentHtml += '
    '; 381 | tabbedContentHtml += '
    '; 382 | active = ''; 383 | } 384 | tabbedContentHtml += '
    '; 385 | tabbedContentHtml += '
    '; 386 | } 387 | // Downstream 388 | if (data.downstreams.ipv4_downstreams.length > 0 || data.downstreams.ipv6_downstreams.length > 0) { 389 | tabbedContentHtml += '
    '; 390 | tabbedContentHtml += ''; 401 | tabbedContentHtml += '
    '; 402 | var active = 'active'; 403 | if (data.downstreams.ipv4_downstreams.length > 0) { 404 | tabbedContentHtml += '
    '; 405 | tabbedContentHtml += ''; 406 | jQuery.each(data.downstreams.ipv4_downstreams, function( key, downstream ){ 407 | if (downstream.country_code == null) { 408 | var flagImage = kango.io.getResourceUrl('res/flags/24/_unknown.png'); 409 | } else { 410 | var flagImage = kango.io.getResourceUrl('res/flags/24/' + downstream.country_code + '.png'); 411 | } 412 | tabbedContentHtml += ''; 413 | tabbedContentHtml += ''; 414 | tabbedContentHtml += ''; 415 | tabbedContentHtml += ''; 424 | tabbedContentHtml += ''; 425 | }); 426 | tabbedContentHtml += '
    AS' + downstream.asn + ''; 416 | tabbedContentHtml += '' + downstream.description + ''; 417 | jQuery.each(data.downstreams.ipv6_downstreams, function( key, v6downstream ){ 418 | if (v6downstream.asn == downstream.asn) { 419 | tabbedContentHtml += 'v6'; 420 | return false; 421 | } 422 | }); 423 | tabbedContentHtml += '
    '; 427 | tabbedContentHtml += '
    '; 428 | active = ''; 429 | } 430 | if (data.downstreams.ipv6_downstreams.length > 0) { 431 | tabbedContentHtml += '
    '; 432 | tabbedContentHtml += ''; 433 | jQuery.each(data.downstreams.ipv6_downstreams, function( key, downstream ){ 434 | if (downstream.country_code == null) { 435 | var flagImage = kango.io.getResourceUrl('res/flags/24/_unknown.png'); 436 | } else { 437 | var flagImage = kango.io.getResourceUrl('res/flags/24/' + downstream.country_code + '.png'); 438 | } 439 | tabbedContentHtml += ''; 440 | tabbedContentHtml += ''; 441 | tabbedContentHtml += ''; 442 | tabbedContentHtml += ''; 451 | tabbedContentHtml += ''; 452 | }); 453 | tabbedContentHtml += '
    AS' + downstream.asn + ''; 443 | tabbedContentHtml += '' + downstream.description + ''; 444 | jQuery.each(data.downstreams.ipv4_downstreams, function( key, v4downstream ){ 445 | if (v4downstream.asn == downstream.asn) { 446 | tabbedContentHtml += 'v4'; 447 | return false; 448 | } 449 | }); 450 | tabbedContentHtml += '
    '; 454 | tabbedContentHtml += '
    '; 455 | active = ''; 456 | } 457 | tabbedContentHtml += '
    '; 458 | tabbedContentHtml += '
    '; 459 | } 460 | // IX 461 | if (data.internet_exchanges.length > 0) { 462 | tabbedContentHtml += '
    '; 463 | tabbedContentHtml += ''; 464 | var normilisedIx = {}; 465 | jQuery.each(data.internet_exchanges, function( key, ix ){ 466 | if (ix.ix_id in normilisedIx) { 467 | normilisedIx[ix.ix_id].speed += ix.speed; 468 | } else { 469 | normilisedIx[ix.ix_id] = ix; 470 | } 471 | }); 472 | jQuery.each(normilisedIx, function( key, ix ){ 473 | if (ix.country_code == null) { 474 | var flagImage = kango.io.getResourceUrl('res/flags/24/_unknown.png'); 475 | } else { 476 | var flagImage = kango.io.getResourceUrl('res/flags/24/' + ix.country_code + '.png'); 477 | } 478 | tabbedContentHtml += ''; 479 | tabbedContentHtml += ''; 480 | tabbedContentHtml += ''; 481 | tabbedContentHtml += ''; 482 | tabbedContentHtml += ''; 483 | }); 484 | tabbedContentHtml += '
    ' + humanReadableBitSpeed(ix.speed * 1000000) + '' + ix.name_full + '
    '; 485 | tabbedContentHtml += '
    '; 486 | } 487 | jQuery(".records-tabbed-content").find('.tab-content').html(tabbedContentHtml); 488 | } 489 | var displayPrefixInfo = function (data) { 490 | log('Processing prefix info display'); 491 | postLoadIconDisplay(); 492 | jQuery('.current-input a').text(data.prefix); 493 | jQuery('.current-input').show(); 494 | jQuery('.more-info').show(); 495 | if (data.country_codes.whois_country_code == null) { 496 | var flagImage = kango.io.getResourceUrl('res/flags/24/_unknown.png'); 497 | } else { 498 | var flagImage = kango.io.getResourceUrl('res/flags/24/' + data.country_codes.whois_country_code + '.png'); 499 | } 500 | var htmlUl = ''; 501 | htmlUl += '
  • ASN(s)
  • '; 502 | htmlUl += '
  • RIR Allocation
  • '; 503 | if (data.related_prefixes.length > 0) { 504 | htmlUl += '
  • Related Prefixes
  • '; 505 | } 506 | jQuery("#records-tab").html(htmlUl); 507 | var tabbedContentHtml = '
    '; 508 | tabbedContentHtml += ''; 509 | tabbedContentHtml += ''; 510 | tabbedContentHtml += ''; 511 | tabbedContentHtml += ''; 512 | tabbedContentHtml += ''; 513 | if (data.ip.indexOf('.') > -1) { 514 | tabbedContentHtml += ''; 515 | } 516 | jQuery.each(data.abuse_contacts, function( key, email ){ 517 | tabbedContentHtml += ''; 518 | }); 519 | tabbedContentHtml += '
    Prefix' + data.prefix + '
    Country ' + country(data.country_codes.whois_country_code) + '
    Name' + data.name + '
    Description' + data.description_short + '
    IP Addresses' + getAddressCount(data.cidr) + '
    Abuse Contact' + email+ '
    '; 520 | tabbedContentHtml += '
    '; 521 | tabbedContentHtml += '
    '; 522 | tabbedContentHtml += ''; 523 | jQuery.each(data.asns, function( key, asn ){ 524 | if (asn.country_code == null) { 525 | var asnFlagImage = kango.io.getResourceUrl('res/flags/24/_unknown.png'); 526 | } else { 527 | var asnFlagImage = kango.io.getResourceUrl('res/flags/24/' + asn.country_code + '.png'); 528 | } 529 | tabbedContentHtml += ''; 530 | tabbedContentHtml += ''; 531 | tabbedContentHtml += ''; 532 | tabbedContentHtml += ''; 533 | tabbedContentHtml += ''; 534 | }); 535 | tabbedContentHtml += '
    AS' + asn.asn + '' + asn.description + '
    '; 536 | tabbedContentHtml += '
    '; 537 | tabbedContentHtml += '
    '; 538 | tabbedContentHtml += ''; 539 | tabbedContentHtml += ''; 540 | tabbedContentHtml += ''; 541 | tabbedContentHtml += ''; 542 | if (data.rir_allocation.ip.indexOf('.') > -1) { 543 | tabbedContentHtml += ''; 544 | } 545 | tabbedContentHtml += ''; 546 | tabbedContentHtml += '
    RIR Name' + data.rir_allocation.rir_name + '
    Prefix' + data.rir_allocation.prefix + '
    Country ' + country(data.rir_allocation.country_code) + '
    IP Addresses' + getAddressCount(data.rir_allocation.cidr) + '
    Date Allocated' + displayDate(data.rir_allocation.date_allocated) + '
    '; 547 | tabbedContentHtml += '
    '; 548 | if (data.related_prefixes.length > 0) { 549 | tabbedContentHtml += ''; 565 | } 566 | jQuery(".records-tabbed-content").find('.tab-content').html(tabbedContentHtml); 567 | } 568 | var displayIpInfo = function (data) { 569 | log('Processing IP info display'); 570 | postLoadIconDisplay(); 571 | jQuery('.current-input a').text(data.ip); 572 | jQuery('.current-input').show(); 573 | jQuery('.more-info').show(); 574 | if (data.maxmind.country_code != null) { 575 | var flagImage = kango.io.getResourceUrl('res/flags/24/' + data.maxmind.country_code + '.png'); 576 | var countryCode = data.maxmind.country_code; 577 | } else if (typeof data.prefixes[0] != 'undefined' && data.prefixes[0].country_code != null) { 578 | var flagImage = kango.io.getResourceUrl('res/flags/24/' + data.prefixes[0].country_code + '.png'); 579 | var countryCode = data.prefixes[0].country_code; 580 | } else{ 581 | var flagImage = kango.io.getResourceUrl('res/flags/24/_unknown.png'); 582 | var countryCode = null; 583 | } 584 | if (data.ptr_record == null) { 585 | data.ptr_record = 'None'; 586 | } else { 587 | data.ptr_record = '' + data.ptr_record + ''; 588 | } 589 | var htmlUl = ''; 590 | if (data.prefixes.length > 1) { 591 | htmlUl += '
  • Prefixes
  • '; 592 | } 593 | htmlUl += '
  • RIR Allocation
  • '; 594 | jQuery("#records-tab").html(htmlUl); 595 | var tabbedContentHtml = '
    '; 596 | tabbedContentHtml += ''; 597 | tabbedContentHtml += ''; 598 | tabbedContentHtml += ''; 599 | tabbedContentHtml += ''; 600 | if (typeof data.prefixes[0] != "undefined") { 601 | tabbedContentHtml += ''; 602 | tabbedContentHtml += ''; 603 | tabbedContentHtml += ''; 604 | } 605 | tabbedContentHtml += '
    IP' + data.ip + '
    Country ' + country(data.maxmind.country_code) + '
    rDNS' + data.ptr_record + '
    Prefix' + data.prefixes[0].prefix + '
    ASNAS' + data.prefixes[0].asn.asn + '
    Description' + data.prefixes[0].description + '
    '; 606 | tabbedContentHtml += '
    '; 607 | if (data.prefixes.length > 1) { 608 | tabbedContentHtml += '
    '; 609 | tabbedContentHtml += ''; 610 | jQuery.each(data.prefixes, function( key, prefix ){ 611 | if (prefix.country_code == null) { 612 | var asnFlagImage = kango.io.getResourceUrl('res/flags/24/_unknown.png'); 613 | } else { 614 | var asnFlagImage = kango.io.getResourceUrl('res/flags/24/' + prefix.country_code + '.png'); 615 | } 616 | tabbedContentHtml += ''; 617 | tabbedContentHtml += ''; 618 | tabbedContentHtml += ''; 619 | tabbedContentHtml += ''; 620 | tabbedContentHtml += ''; 621 | tabbedContentHtml += ''; 622 | }); 623 | tabbedContentHtml += '
    AS' + prefix.asn.asn + '' + prefix.prefix + '' + prefix.description + '
    '; 624 | tabbedContentHtml += '
    '; 625 | } 626 | tabbedContentHtml += '
    '; 627 | tabbedContentHtml += ''; 628 | tabbedContentHtml += ''; 629 | tabbedContentHtml += ''; 630 | tabbedContentHtml += ''; 631 | if (data.rir_allocation.ip.indexOf('.') > -1) { 632 | tabbedContentHtml += ''; 633 | } 634 | tabbedContentHtml += ''; 635 | tabbedContentHtml += '
    RIR Name' + data.rir_allocation.rir_name + '
    Prefix' + data.rir_allocation.prefix + '
    Country ' + country(data.rir_allocation.country_code) + '
    IP Addresses' + getAddressCount(data.rir_allocation.cidr) + '
    Date Allocated' + displayDate(data.rir_allocation.date_allocated) + '
    '; 636 | tabbedContentHtml += '
    '; 637 | jQuery(".records-tabbed-content").find('.tab-content').html(tabbedContentHtml); 638 | } 639 | var getAddressCount = function (length, type) { 640 | return length >= 0 && ((type === 6 && length <= 128) || length <= 32) ? Math.pow(2, (type === 6 ? 128 : 32) - length) : 0; 641 | }; 642 | var displayRecords = function (data) { 643 | log('Processing record display'); 644 | postLoadIconDisplay(); 645 | jQuery('.current-input a').text(data.hostname); 646 | jQuery('.base-domain a').text(data.base_domain); 647 | jQuery('.current-input').show(); 648 | if (data.hostname != data.base_domain) { 649 | jQuery('.base-domain').show(); 650 | } 651 | var active = 'active'; 652 | jQuery.each(data.dns_records, function( rrType, records ){ 653 | var htmlUl = ''; 654 | jQuery("#records-tab").append(htmlUl); 655 | var tabbedContentHtml = '
    '; 656 | jQuery(".records-tabbed-content").find('.tab-content').append(tabbedContentHtml); 657 | // Execute the RR render 658 | if (rrType === 'A') { 659 | renderA(records); 660 | } else if (rrType === 'AAAA') { 661 | renderAAAA(records); 662 | } else if (rrType === 'NS') { 663 | renderNS(records); 664 | } else if (rrType === 'MX') { 665 | renderMX(records); 666 | } else if (rrType === 'TXT') { 667 | renderTXT(records); 668 | } else if (rrType === 'SOA') { 669 | renderSOA(records); 670 | } else if (rrType === 'CNAME') { 671 | renderCNAME(records); 672 | } 673 | if (active !== '') { 674 | active = '' 675 | } 676 | }); 677 | } 678 | var renderAddressRecords = function (rrType, records) { 679 | log('Rendering all ' + rrType + ' records'); 680 | var html = ''; 681 | jQuery.each(records, function( key, record ){ 682 | if (record.country_code == null) { 683 | record.country_code = '_unknown'; 684 | } 685 | var flagImage = kango.io.getResourceUrl('res/flags/24/' + record.country_code + '.png'); 686 | html += ''; 687 | html += ''; 688 | html += ''; 689 | html += ''; 690 | html += ''; 691 | }); 692 | html += '
    ' + record.address + '' + record.location + '
    '; 693 | jQuery('#table-results-' + rrType).html(html); 694 | } 695 | var renderStringRecords = function (rrType, records, makeLink) { 696 | log('Rendering all ' + rrType + ' records'); 697 | var html = ''; 698 | jQuery.each(records, function( key, record ){ 699 | if (makeLink === true) { 700 | record = '' + record + ''; 701 | } 702 | html += ''; 703 | html += ''; 704 | html += ''; 705 | }); 706 | html += '
    ' + record + '
    '; 707 | jQuery('#table-results-' + rrType).html(html); 708 | } 709 | var renderA = function (records) { 710 | return renderAddressRecords('A', records) 711 | } 712 | var renderAAAA = function (records) { 713 | return renderAddressRecords('AAAA', records) 714 | } 715 | var renderNS = function (records) { 716 | return renderStringRecords('NS', records, true) 717 | } 718 | var renderMX = function (records) { 719 | return renderStringRecords('MX', records, true) 720 | } 721 | var renderTXT = function (records) { 722 | log('Rendering all TXT records'); 723 | var html = ''; 724 | jQuery.each(records, function( key, record ){ 725 | // Check if record is SPF 726 | if (record.toLowerCase().lastIndexOf('v=spf1', 0) === 0) { 727 | var spfParts = record.split(' '); 728 | // Loop through all the SPF parts to replace IPs and domains 729 | jQuery.each(spfParts, function( key, value ){ 730 | value = value.toLocaleLowerCase(); 731 | if (value.lastIndexOf('ip4:', 0) === 0) { 732 | var parts = value.split('ip4:'); 733 | spfParts[key] = 'ip4:' + '' + parts[1] + ''; 734 | } else if (value.lastIndexOf('ip6:', 0) === 0) { 735 | var parts = value.split('ip6:'); 736 | spfParts[key] = 'ip6:' + '' + parts[1] + ''; 737 | } else if (value.lastIndexOf('include:', 0) === 0) { 738 | var parts = value.split('include:'); 739 | spfParts[key] = 'include:' + '' + parts[1] + ''; 740 | } 741 | }); 742 | record = spfParts.join(' '); 743 | } 744 | html += ''; 745 | html += ''; 746 | html += ''; 747 | }); 748 | html += '
    ' + record + '
    '; 749 | jQuery('#table-results-TXT').html(html); 750 | } 751 | var renderSOA = function (records) { 752 | return renderStringRecords('SOA', records) 753 | } 754 | var renderCNAME = function (records) { 755 | return renderStringRecords('CNAME', records, true) 756 | } 757 | jQuery('body').on('click', '.lookup-able', function(){ 758 | start(jQuery(this).text(), true); 759 | }); 760 | jQuery('body').on('click', '.back-btn', function(){ 761 | dataHistory.pop(); 762 | start(dataHistory[dataHistory.length - 1], true, true); 763 | }); 764 | jQuery('body').on('click', '.new-tab', function(){ 765 | kango.browser.tabs.create({url:'http://www.google.com/search?hl=en&q=' + encodeURIComponent(jQuery(this).text().replace(' ', '+')) + '&btnI=745'}); 766 | }); 767 | jQuery('body').on('click', '.more-info', function(){ 768 | kango.browser.tabs.create({url:'https://bgpview.io/search/redirect/' + jQuery('.current-input a').text()}); 769 | }); 770 | }); 771 | --------------------------------------------------------------------------------