사업실적
테오스가 성공적으로 수행해왔던 프로젝트들입니다.
사업명 유니드비티플러스 구매시스템유지보수
발주처 유니드
사업기간 2024.01~2024.12
사업명 롯데건설 플랜트 LMMS, MMS 유지보수
발주처 롯데이노베이션
사업기간 2024.01~2024.12
사업명 Prevision고도화 및 Site적용
발주처 두산디지털이노베이션
사업기간 2024.01~2024.12
현대엔지니어링 통합구매조달시스템AWP모듈 구축
사업명 현대엔지니어링 통합구매조달시스템AWP모듈 구축
발주처 현대오토에버
사업기간 2023.12~2024.04
사업명 전자구매시스템안전평가도입및TBE기능개선
발주처 유니드
사업기간 2023.02~2024.04
사업명 엔투비SRM 구축 개발용역
발주처 포스코DX
사업기간 2024.04~2024.09
사업명 이스틸포유 e-MP 고도화구축개발용역
발주처 포스코DX
사업기간 2024.04~2024.11
사업명 삼성전자 N-SRM구축
발주처 삼성전자
사업기간 2024.04~2025.10
사업명 전략IT(IT자산관리플랫폼(외주)구축)
발주처 현대엔지니어링
사업기간 2024.05~2025.08
사업명 조달품질 자동화시스템구축
발주처 현대오토에버
사업기간 2024.07~2024.11
사업명 롯데월드구매자산관리시스템구축
발주처 롯데월드
사업기간 2024.05~2025.10
사업명 통합구매조달시스템고도화
발주처 현대엔지니어링
사업기간 2024.08~2025.01
사업명 롯데건설 플랜트IT유지운영
발주처 롯데정보통신
사업기간 2023.01~2023.12
사업명 에너빌리티 파워서비스수행Gate시스템구축
발주처 두산디지털이노베이션
사업기간 2023.06~2023.10
사업명 분석알고리즘개발및사내시스템고도화
발주처 두산디지털이노베이션
사업기간 2023.01~2023.12
사업명 DL E&C 금호건설협력업체포탈유지보수
발주처 아시아나IDT
사업기간 2023.01~2023.12
PMIS EHS Digitalization2단계구축
사업명 PMIS EHS Digitalization2단계구축
발주처 두산디지털이노베이션
사업기간 2023.03~2023.11
사업명 유니드구매시스템유지보수
발주처 유니드
사업기간 2023.01~2023.12
사업명 유니드비티플러스구매시스템유지보수
발주처 유니드
사업기간 2023.01~2023.12
포스코건설PI3기구매시스템(자재,공사용역,공급사)
사업명 포스코건설PI3기구매시스템(자재,공사용역,공급사)
발주처 포스코디엑스
사업기간 2022.10~2024.01
사업명 포스코인터내셔널 HR시스템이행및보완컨설팅
발주처 포스코인터내셔널
사업기간 2023.09~2024.02
벽산엔지니어링 Project Portal유지보수
사업명 벽산엔지니어링 Project Portal유지보수
발주처 벽산엔지니어링
사업기간 2023.01~2023.06
사업명 포스코 E&C eProcurement 설계
발주처 포스코 E&C
사업기간 2022.09 ~ 2022.12
사업명 유니드 구매 시스템 기능개선 및 법인분리
발주처 유니드
사업기간 2022.07 ~ 2022.12
사업명 두산중공업 SIMS(시공관리 시스템) 재구축
발주처 두산중공업
사업기간 2022.05 ~ 2023.01
DL E&C 시공관리 시스템 유지보수 및 운영
사업명 DL E&C 시공관리 시스템 유지보수 및 운영
발주처 DL E&C
사업기간 2022.06 ~ 2022.12
사업명 엔지니어링 수주 리스크 관리 시스템 구축
발주처 현대엔지니어링
사업기간 2022.05 ~ 2022.12
공사, 안전, Man-Hour 관리 시스템 구축
사업명 공사, 안전, Man-Hour 관리 시스템 구축
발주처 벽산엔지니어링
사업기간 2022.03 ~ 2022.09
사업명 두산중공업 현장 자재관리 시스템 구축
발주처 두산중공업
사업기간 2022.01~2022.08
두산중공업 비파괴 검사 AI 솔루션 알고리즘 개발
사업명 두산중공업 비파괴 검사 AI 솔루션 알고리즘 개발
발주처 두산중공업
사업기간 2022.01~2022.06
사업명 금호건설 협력업체포털 유지보수
발주처 금호건설
사업기간 2022.01~2022.12
사업명 롯데건설 플랜트IT유지운영
발주처 롯데건설
사업기간 2022.01~2022.12
현대엔지니어링 Procurement 시스템 구축 (PMI)
사업명 현대엔지니어링 Procurement 시스템 구축 (PMI)
발주처 현대엔지니어링
사업기간 2022.01~2022.02
사업명 포스코에너지 LNG 도입관리 시스템 구축
발주처 포스코에너지
사업기간 2021.12~2022.06
포스코A&C ERP 조달 사업관리 시스템 재구축
사업명 포스코A&C ERP 조달 사업관리 시스템 재구축
발주처 포스코A&C
사업기간 2021.11~2022.08
대우건설 BIM기반 내역화 시스템 구축(2단계)
사업명 대우건설 BIM기반 내역화 시스템 구축(2단계)
발주처 대우건설
사업기간 2021.05~2021.11
벽산엔지니어링 Project Portal 구축계약
사업명 벽산엔지니어링 Project Portal 구축계약
발주처 벽산엔지니어링
사업기간 2021.05~2021.11
사업명 아모레퍼시픽 포장재 재활용성 평가시스템 구축
발주처 아모레퍼시픽
사업기간 2021.05~2021.09
사업명 쌍용건설 업체포탈 구축
발주처 쌍용건설
사업기간 2021.04~2022.02
사업명 삼성물산건설 SRM고도화 (전자보증)
발주처 삼성물산
사업기간 2021.03~2021.08
현대엔지니어링 Procurement 시스템 구축 2차
사업명 현대엔지니어링 Procurement 시스템 구축 2차
발주처 현대엔지니어링
사업기간 2021.03~2021.10
두산중공업 ELPIS Cient버전 신규 기능 추가 및 기본기능 개선
사업명 두산중공업 ELPIS Cient버전 신규 기능 추가 및 기본기능 개선
발주처 두산중공업
사업기간 2021.02~2021.06
두산중공업 Doocare Gas PED Library개발
사업명 두산중공업 Doocare Gas PED Library개발
발주처 두산중공업
사업기간 2021.01~2021.12
사업명 금호건설 협력업체포털 유지보수
발주처 금호건설
사업기간 2021.01~2021.12
사업명 롯데건설 플랜트 IT 유지운영
발주처 롯데건설
사업기간 2021.01~2021.12
교원크리에이티브 영업지원 고도화 구축 프로젝트-KSS
사업명 교원크리에이티브 영업지원 고도화 구축 프로젝트-KSS
발주처 교원크리에이티브
사업기간 2021.01~2021.06
사업명 엘지씨앤에스 공상평 구매 플렛폼 구축
발주처 엘지씨앤에스
사업기간 2020.05~2022.04
두산중공업 Coal Blending Advisor 기능개선
사업명 두산중공업 Coal Blending Advisor 기능개선
발주처 두산중공업
사업기간 2020.10~2021.03
사업명 두산인프라코어 시설공사관리시스템 구축
발주처 두산인프라코어
사업기간 2020.09~2021.03
사업명 두산중공업 리스체계구축
발주처 두산중공업
사업기간 2020.08~2020.11
사업명 대우건설 BIM 모델 내역화 시스템 구축
발주처 대우건설
사업기간 2020.05~2020.09
사업명 한화건설 플랜트 배관 자재관리 시스템 구축
발주처 한화건설
사업기간 2020.07 ~ 2021.02
사업명 OCI 구매 시스템 구축
발주처 OCI
사업기간 2020.07 ~ 2020.11
사업명 유니드(UNID) 구매 시스템 구축
발주처 유니드(UNID)
사업기간 2020.06 ~ 2020.12
롯데건설 플랜트 자재관리, 구매/조달 System 운영지원
사업명 롯데건설 플랜트 자재관리, 구매/조달 System 운영지원
발주처 롯데건설
사업기간 2020.06 ~ 2020.12
사업명 현대엔지니어링 플랜트 구매/조달 시스템 구축
발주처 현대엔지니어링
사업기간 2020.05 ~ 2021.02
공상평(공통 업무 상향 평준화) 구매 Single 플렛폼 구축
사업명 공상평(공통 업무 상향 평준화) 구매 Single 플렛폼 구축
발주처 LG CNS
사업기간 2020.02 ~ 2020.05
사업명 아모래퍼시픽 홍보성과 측정 시스템 구축
발주처 아모래퍼시픽
사업기간 2020.03 ~ 2020.06
사업명 신라면세점 매칭시스템 구축
발주처 신라면세점
사업기간 2020.02~2020.07
포스코엔투비 e-Marketplace System 모바일 구축
사업명 포스코엔투비 e-Marketplace System 모바일 구축
발주처 포스코엔투비
사업기간 2020.04~2020.09
앤투비 e-Catalag 기반 온라인 통합몰 구축
사업명 앤투비 e-Catalag 기반 온라인 통합몰 구축
발주처 앤투비
사업기간 2019.05~2020.08
사업명 포스코 A&C 재무, 인사 시스템 재구축
발주처 포스코 A&C
사업기간 2019.12~2020.08
사업명 롯데건설 플랜트 구매/조달 System 구축
발주처 롯데건설
사업기간 2019.09 ~ 2020.05
롯데건설 플랜트 자재관리, 현장자재관리 시스템 고도화
사업명 롯데건설 플랜트 자재관리, 현장자재관리 시스템 고도화
발주처 롯데건설
사업기간 2019.09 ~ 2020.05
대림산업 MP(Micro Processor)기반의 공사표준원가 시스템 구축
사업명 대림산업 MP(Micro Processor)기반의 공사표준원가 시스템 구축
발주처 대림코퍼레이션
사업기간 2019.07 ~ 2020.01
S&I 건설 차세대 시스템 구축 (조달, 플랜트 부문)
사업명 S&I 건설 차세대 시스템 구축 (조달, 플랜트 부문)
발주처 S&I 건설
사업기간 2019.05~2020.03
사업명 롯데건설 플랜트 구매/조달 System 구축
발주처 롯데건설
사업기간 2019.09-2020.05
사업명 롯데건설 플랜트 자재 System 구축
발주처 롯데건설
사업기간 2019.09-2020.05
S&I 건설 차세대 시스템 구축 (조달, 플랜트 부문)
사업명 S&I 건설 차세대 시스템 구축 (조달, 플랜트 부문)
발주처 S&I 건설
사업기간 2019.05-2020.03
앤투비 e-Catalag 기반 온라인 통합몰 구축
사업명 앤투비 e-Catalag 기반 온라인 통합몰 구축
발주처 앤투비
사업기간 2019.05~2020.08
사업명 포스코 인터내셔널 철강재고 판매 시스템 구축
발주처 포스코 인터내셔널
사업기간 2019.05-2020.01
사업명 금호건설 ERP 시스템 재구축 (조달부문)
발주처 금호건설
사업기간 2018.12~2020.02
사업명 롯데건설 WEB-PBM/FMCS 구축
발주처 롯데건설
사업기간 2018.03-2019.04
엔투비 eNtoB Marketplace System 컨설팅 및 구축
사업명 엔투비 eNtoB Marketplace System 컨설팅 및 구축
발주처 엔투비
사업기간 2018.03~2019.02
사업명 글로비스 협력사관리시스템 개선
발주처 글로비스
사업기간 2018.03-2018.04
사업명 품질관리시스템 구축 (E6) 시스템 구축
발주처 두산중공업
사업기간 2017.12-2018.04
사업명 자산관리시스템 구축
발주처 아시아나에어포트
사업기간 2017.04-2018.03
사업명 TPI(Third Part Inspection) 구매관리시스템 구축
발주처 LGU+
사업기간 2017.04-2018.03
통합설계환경 구축 (EM_PRO) 시스템 구축
사업명 통합설계환경 구축 (EM_PRO) 시스템 구축
발주처 두산중공업
사업기간 2017.05-2017.12
사업명 임대관리시스템 구축
발주처 대림산업
사업기간 2017.06-2017.07
사업명 보일러 BG 작업지시 디지털 시스템 구축
발주처 두산중공업
사업기간 2017.05-2018.03
사업명 외주구매관리 시스템 구축
발주처 대림코퍼레이션
사업기간 2016.08-2017.02
사업명 외주구매시스템 구축
발주처 호텔신라
사업기간 2016.04-2017.02
사업명 FISS 시스템 상해 확장 개발
발주처 제일모직
사업기간 2016.01-2016.08
사업명 시공물량관리 시스템 구축
발주처 두산중공업
사업기간 2016.04-2017.02
사업명 구매자재관리 시스템 구축
발주처 현대제철
사업기간 2016.04-2016.11
사업명 전기설계관리 시스템 구축
발주처 두산중공업
사업기간 2016.08-2017.02
사업명 Key data 관리시스템 구축
발주처 두산중공업
사업기간 2015.11-2016.03
사업명 구매일정관리 시스템 구축
발주처 삼성물산
사업기간 2015.04-2015.10
GETech Material Management System
사업명 GETech Material Management System
발주처 Global Engineering Technology
사업기간 2015.03-2015.10
사업명 사외 NDE 포털 시스템 구축
발주처 두산중공업
사업기간 2015.06-2015.09
사업명 배관 프로세스 개선 구축 사업
발주처 두산중공업
사업기간 2014.06-2015.02
사업명 EPC-WORKS 기능 고도화
발주처 두산중공업
사업기간 2014.06-2015.01
최신IT기술과 건설을 융합한 BIM정보체계 시범구축
사업명 최신IT기술과 건설을 융합한 BIM정보체계 시범구축
발주처 한국도로공사
사업기간 2014.06-2014.12
사업명 CEO Project Dashboard 구축
발주처 S-Oil
사업기간 2013.05-2014.02
Performance Enhancement 구축
사업명 Performance Enhancement 구축
발주처 S-Oil
사업기간 2013.05-2014.02
사업명 제작현황관리&Logistics 시스템 구축
발주처 포스코엔지니어링
사업기간 2013.05-2014.02
사업명 QG(QUality Gate) 시스템 구축
발주처 두산중공업
사업기간 2013.10-2014.01
사업명 WBS기반의 실시간정보공유 시스템 구축
발주처 한국도로공사
사업기간 2013.05-2013.11
사업명 PRPMS(상위문서요건반영) 시스템 구축
발주처 두산중공업
사업기간 2013.06-2013.10
RCA(Root Cause Analysis) 시스템 구축
사업명 RCA(Root Cause Analysis) 시스템 구축
발주처 두산중공업
사업기간 2013.01-2013.04
TPI(Third Part Inspection) 시스템 구축
사업명 TPI(Third Part Inspection) 시스템 구축
발주처 두산중공업
사업기간 2012.12-2013.04
TPI(Third Part Inspection) 시스템 구축
사업명 TPI(Third Part Inspection) 시스템 구축
발주처 두산중공업
사업기간 2012.12-2013.04
사업명 SERP 일류화 시스템 구축
발주처 삼성에스원
사업기간 2012.10-2013.07
사업명 EVMS 시스템 구축
발주처 두산중공업
사업기간 2012.03-2012.12
사업명 건설부문 ERP 레거시 구축
발주처 삼성물산
사업기간 2012.01-2012.07
사업명 IBT 정보화 사업
발주처 한국교육과정평가원
사업기간 2011.10-2012.04
사업명 분양정보통합시스템 구축 용역
발주처 수자원공사
사업기간 2011.06-2011.11
사업명 두산중공업 SITE-PMIS
발주처 두산중공업
사업기간 2011.05-2011.12
Contact KOREA 및 골드카드 서비스 통합사업
사업명 Contact KOREA 및 골드카드 서비스 통합사업
발주처 KOTRA
사업기간 2011.05-2011.09
사업명 대림플랜트조달 시스템 재구축(PMCS+)
발주처 대림산업
사업기간 2010.06-2011.07
SKEC SP3D INTERFACE WITH SP MAT
사업명 SKEC SP3D INTERFACE WITH SP MAT
발주처 SK E&C
사업기간 2010.01-2011.12
WBS기반의 공정,공사비 통합관리체계 구축용역
사업명 WBS기반의 공정,공사비 통합관리체계 구축용역
발주처 한국도로공사
사업기간 2010.05-2010.12
사업명 기술지식허브 구축용역
발주처 한국도로공사
사업기간 2010.05-2010.11
사업명 한국도로공사 원가관리 시스템 구축 용역
발주처 한국도로공사
사업기간 2009.04-2009.11
사업명 SK건설 SP Materials 구축
발주처 SK E&C
사업기간 2008.01-2009.12
사업명 화공플랜트 시공관리 시스템 구축
발주처 SK E&C
사업기간 2008.09-2009.05
SK건설 건축주택사업부분 EPMS 구축 프로젝트
사업명 SK건설 건축주택사업부분 EPMS 구축 프로젝트
발주처 SK E&C
사업기간 2008.05-2009.02
사업명 Plant 문서포탈 3단계
발주처 SK E&C
사업기간 2008.02-2008.08
사업명 고속도로 건설예산 관리시스템 구축
발주처 한국도로공사
사업기간 2007.08-2008.01
사업명 Plant 문서포탈 2단계
발주처 SK E&C
사업기간 2007.08-2008.01
사업명 건설 관리 시스템 유지보수
발주처 한국도로공사
사업기간 2007.01-2007.12
사업명 행정중심 복합도시 건설사업관리 시스템 2차
발주처 한국토지공사
사업기간 2007.05-2008.04
사업명 실적공사비 축적 시스템 기능 개선용역
발주처 한국전기공사협회
사업기간 2006.12-2007.05
한국토지공사 행정중심 복합도시 건설사업관리 시스템 구축
한국도로공사 건설정보시스템 기능 고도화 유지보수
한국전기공사협회 실적공사비 축적시스템의 기능개선용역 수주
한국시설안전기술공단 시설물관리시스템 1차 구축
CyberMBA 인터넷 강의시스템 확장 구축사업
교원교육 인터넷 교육 포탈 미니셈 3차 구축사업
한국시설안전기술공단 시설물관리시스템 2차 구축
한국도로공사 건설 e비즈니스 체계구축 사업 완료
한국시설안전기술공단 비상복구시스템 2차 구축사업
한국시설안전기술공단 비상복구시스템 3차 구축사업
교원교육 인테닛 교육 포탈 (미니셈) 2차 구축사업
삼성생명 콜센타 ICM 시스템 구축 (서울, 부산, 광주)
한국수산회 Groupware 및 포탈시스템 구축사업
한국시설안전기술공단 비상복구시스템 1차 구축사업
미원상사 그룹웨어 및 ERP 백업시스템 구축사업
농업진흥청 농업경영 정보화 지원 시스템 구축사업
한국도로공사 건설정보, 설계정보 시스템 구축사업
인도네시아 현지 합작 법인 설립(PT. PADMAINAKOR IT)
EJB(Enterprise Java Beans) Version의 Reliance KMS개발
교원교육 인테닛 교육 포탈 (미니셈) 1차 구축사업
국립수산물품질검사원 모바일 검역시스템 구축사업
한국도로공사 기술포탈, 연구포탈, 지식관리 시스템 구축
SK Networks 시스템사업부분 협력업체 등록
증권금융 Groupware,EDMS,KMS 구축사업 ㈜대림정보통신과 공동 수주
대구 카톨릭대학교 EDMS,KMS 구축사업 ㈜엘지시엔에스와 공동 수행
농업과학기술원 LINUX 클러스터 시스템 32 NODE 구축사업
㈜엘지투자증권 Groupware,EDMS,KMS 구축사업
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).version={})}(this,(function(exports){"use strict";function __awaiter(e,t,n,i){return new(n||(n=Promise))((function(s,a){function o(e){try{d(i.next(e))}catch(e){a(e)}}function r(e){try{d(i.throw(e))}catch(e){a(e)}}function d(e){var t;e.done?s(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(o,r)}d((i=i.apply(e,t||[])).next())}))}var Blocking;"function"==typeof SuppressedError&&SuppressedError,function(e){e.PENDING="pending",e.NONE="none",e.BLOCKED="blocked",e.ALLOWED="allowed"}(Blocking||(Blocking={}));class Adblock{constructor(e){this.state=Blocking.PENDING,this._mocked=!1,e?(this.state=e,this._mocked=!0):this.state=Blocking.ALLOWED}inject(){return __awaiter(this,void 0,void 0,(function*(){}))}hasAdblocker(){if(void 0===window.google)return!0;const e=document.querySelectorAll("style");return Array.from(e).some((e=>!!e.innerHTML.includes("adblockkey")))}handleAdblocked(){this.removeAdblockKey(),this.state=Blocking.BLOCKED}removeAdblockKey(){var e;null===(e=document.documentElement.dataset)||void 0===e||delete e.adblockkey}get isBlocked(){return this.state===Blocking.BLOCKED}get isAllowed(){return this.state===Blocking.ALLOWED}toContext(){return{user_has_ad_blocker:null,is_ad_blocked:null}}}const OBFUSCATING_BASE_64_PREFIX="UxFdVMwNFNwN0wzODEybV",encode=e=>OBFUSCATING_BASE_64_PREFIX+btoa(unescape(encodeURIComponent(JSON.stringify(e))));function decode$1(e){return JSON.parse(decodeURIComponent(escape(atob(e.replace(OBFUSCATING_BASE_64_PREFIX,"")))))}var version="0.5.5";const APP_ENV="production",TRACKING_DOMAIN="https://click-usw2.bodis.com/",SALES_JS_URL="https://parking.bodiscdn.com/js/inquiry.js",GOOGLE_CAF_TIMEOUT_SCRIPTS="0",GOOGLE_CAF_TIMEOUT_CALLBACKS="0",GOOGLE_MV3_URL_PARAMS="abp=1&bodis=true",APP_VERSION=version,COOKIE_CONSENT_JS_URL="",isLocal=(e=!0)=>"production"!==APP_ENV;function log(...e){}const FIND_DOMAIN_URL="_fd",getFindDomain=(e="",t=!1)=>{const n=`${e}/${FIND_DOMAIN_URL}${window.location.search}`,i=e?"include":"same-origin",s=Object.assign({Accept:"application/json","Content-Type":"application/json"},t?{"X-HOST":window.location.host}:{});return fetch(n,{method:"POST",headers:s,credentials:i}).then((e=>e.text())).then(decode$1)};var ZeroClickReasons;!function(e){e.CAF_TIMEDOUT="caf_timedout",e.CAF_ADLOAD_FAIL_RS="caf_adloadfail_rs",e.CAF_ADLOAD_FAIL_ADS="caf_adloadfail_ads",e.DISABLED_GB="disabled_gb",e.DISABLED_AB="disabled_ab",e.DISABLED_DS="disabled_ds",e.AD_BLOCKED="ad_blocked",e.PREFERRED="preferred"}(ZeroClickReasons||(ZeroClickReasons={}));const getZeroClick=e=>__awaiter(void 0,void 0,void 0,(function*(){const t=Object.assign(Object.assign({},e),{type:"zc_fetch"});return fetch("/_zc",{method:"POST",body:JSON.stringify({signature:encode(t)}),headers:{Accept:"application/json","Content-Type":"application/json"}}).then((e=>__awaiter(void 0,void 0,void 0,(function*(){try{return decode$1(yield e.text())}catch(e){return{}}}))))})),waiter=(e,t)=>new Promise((n=>{t(e),e<=0&&n();let i=e;const s=()=>{i>0?(i-=1,t(i),setTimeout(s,1e3)):n()};s()})),decode=()=>JSON.parse(atob(window.park||""));var PAGE_STYLES='* {\n font-smoothing: antialiased;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\nhtml, body {\n width: 100%;\n margin: 0;\n}\n\nhtml {\n background-color: #2B2B2B;\n height: 100%;\n}\n\nbody {\n min-height: 90%;\n font-family: Arial, sans-serif;\n letter-spacing: 1.2px;\n color: #ccc;\n text-align: center;\n}\n\n/* App Target - This starts hidden until we apply a class to "activate" it */\n\n#target {\n opacity: 0;\n visibility: hidden;\n}\n\n/* Status Messages - These are displayed when we are not rendering ad blocks or Related Search */\n\n#pk-status-message {\n height: 75vh;\n width: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n}\n\n/* Sales Box - Default State */\n\n#sales-box {\n display: block;\n width: 100%;\n padding: 3px;\n text-align: center;\n text-decoration: none;\n color: #8EABC0;\n}\n\n#sales-box a {\n display: block;\n width: 100%;\n text-decoration: inherit;\n color: #8EABC0;\n cursor: pointer;\n}\n\n/* Sales Box - Highlighted State */\n\n#sales-box.is-highlighted {\n position: relative;\n z-index: 1;\n background: #032438 linear-gradient(to top, #044368 0%, #000 100%);\n box-shadow: 0 0 15px 0 #000;\n border-bottom: 3px solid #262626;\n}\n\n#sales-box.is-highlighted a {\n line-height: 1.3;\n display: inline-block;\n font-size: 18px;\n color: #fff;\n text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.5);\n background: none;\n}\n\n/* Ellipsis Loader */\n\n.pk-loader {\n display: inline-block;\n position: relative;\n width: 80px;\n height: 80px;\n}\n\n.pk-loader div {\n position: absolute;\n top: 33px;\n width: 13px;\n height: 13px;\n border-radius: 50%;\n background: #ccc;\n animation-timing-function: cubic-bezier(0, 1, 1, 0);\n}\n\n.pk-loader div:nth-child(1) {\n left: 8px;\n animation: pk-anim-1 0.6s infinite;\n}\n\n.pk-loader div:nth-child(2) {\n left: 8px;\n animation: pk-anim-2 0.6s infinite;\n}\n\n.pk-loader div:nth-child(3) {\n left: 32px;\n animation: pk-anim-2 0.6s infinite;\n}\n\n.pk-loader div:nth-child(4) {\n left: 56px;\n animation: pk-anim-1 0.6s infinite;\n animation-direction: reverse;\n}\n\n.pk-loader-text {\n position: fixed;\n font-size: 12px;\n right: 20px;\n bottom: 20px;\n font-weight: lighter;\n}\n\n/* Utilities */\n\n.pk-message-title {\n font-size: 2em;\n font-weight: bold;\n}\n\n.pk-page-ready {\n opacity: 1 !important;\n visibility: visible !important;\n}\n\n@media only screen and (max-width: 600px) {\n .hidden-xs {\n opacity: 0;\n visibility: hidden;\n }\n}\n\n/* Animation */\n\n@keyframes pk-anim-1 {\n 0% {\n transform: scale(0);\n }\n 100% {\n transform: scale(1);\n }\n}\n\n@keyframes pk-anim-2 {\n 0% {\n transform: translate(0, 0);\n }\n 100% {\n transform: translate(24px, 0);\n }\n}\n';const APP_TARGET="#target",MESSAGE_TARGET="main",MESSAGE_SELECTOR="#pk-status-message",PAGE_READY_CLASS="pk-page-ready",MESSAGE_TEMPLATE='
';class Renderer{constructor(e){this._domIsReady=!1,this.revealPage=()=>{this.domNode&&this.domNode.classList.add(PAGE_READY_CLASS)},this.injectMetaDescription=e=>{if(!e||0===e.length)return;window.document.title=e;const t=document.createElement("meta");t.setAttribute("name","description"),t.setAttribute("content",`See relevant content for ${e}`),document.getElementsByTagName("head")[0].appendChild(t)},this.domNode=document.querySelector(e)}get domIsReady(){return this._domIsReady}set domIsReady(e){this._domIsReady=e,e&&this.injectStyles(PAGE_STYLES)}message(e,t=""){if(this.injectMessage(MESSAGE_TEMPLATE),this.domNode){const t=this.domNode.querySelector(MESSAGE_SELECTOR);t&&(t.innerHTML=e)}t&&this.injectMetaDescription(t)}injectMessage(e){const t=document.querySelector(MESSAGE_TARGET);t?t.innerHTML=e:this.domNode&&(this.domNode.innerHTML=e)}salesBanner(e){if(!e)return;const{href:t,position:n,message:i,theme:s,status:a}=e,o=document.createElement("div"),r=n||"",d="HIGHLIGHT"===s?"is-highlighted":"";o.innerHTML=t?`\n \n `:`\n \n ${i}\n
\n `,"BOTTOM"===n?(o.style.marginTop="30px",document.body.appendChild(o)):document.body.prepend(o)}loading(e){let t="a few";e>0&&(t=`${e} `),this.message(`\n \n \n Page loading in ${t} seconds, please wait...\n
\n `)}adBlockMessage(){this.message("\n Ad block detected \n Please disable your ad blocker and reload the page.\n ")}errorParkingUnavailable(){this.message("\n An Error Occurred \n Parking is currently unavailable. We'll be right back.
\n ")}errorParkingServicesDisabled(){this.message("\n An Error Occurred \n Services for this domain name have been disabled.
\n ")}errorParkingNoSponsors(e){this.message(`\n \n No sponsors\n
\n \n ${window.location.hostname} currently does not have any sponsors for you.\n \n `,e)}imprint(e){if(!e)return;const t=document.querySelector("#imprint-text");t&&(t.innerHTML=e.replace(/(?:\r\n|\r|\n)/g," "))}injectStyles(e){if(!e)return;const t=document.createElement("style");t.innerHTML=e.toString(),document.head.appendChild(t)}injectScript(e){if(!e)return;const t=document.createElement("script");t.type="text/javascript",t.src=e,document.body.appendChild(t)}injectJS(js){js&&0!==js.length&&eval(js)}injectHTML(e){this.domNode?(e&&(this.domNode.innerHTML=e),this.domIsReady=!0):(this.domIsReady=!1,console.error("An error occurred when trying to render this page. DOM node not found."))}prerender(e){this.injectMetaDescription(e.domain),this.injectHTML(e.html)}template(e){var t;this.domIsReady||this.prerender(e),this.injectStyles(e.stylesheet),this.imprint(e.imprint),this.salesBanner(e.salesBanner),this.injectJS(e.javascript),null===(t=e.scripts)||void 0===t||t.forEach((e=>{this.injectScript(e)}))}}const Render=new Renderer(APP_TARGET);var Type;!function(e){e[e.Failed=0]="Failed",e[e.Disabled=1]="Disabled",e[e.Redirect=2]="Redirect",e[e.Parking=3]="Parking",e[e.Sales=4]="Sales"}(Type||(Type={}));let State$2=class{get trackingType(){return this._trackingType}set trackingType(e){this._trackingType=e}get track(){return!!this.trackingType}};class Disabled extends State$2{constructor(){super(...arguments),this.type=Type.Disabled}static build(e,t){let n;switch(t===Blocking.BLOCKED&&(n="adblocker"),e.cannotPark){case"disabled_mr":case"disabled_rc":n=e.cannotPark}if(n){const t=new Disabled;return t.reason=n,t.domain=e.domainName,t}}get message(){switch(this.reason){case"adblocker":return"Content blocked Please turn off your ad blocker.";case"disabled_mr":return`Invalid URL Referral traffic for ${this.domain} does not meet requirements.`;default:return`No sponsors ${this.domain} currently does not have any sponsors for you.`}}get trackingType(){switch(this.reason){case"adblocker":return"ad_blocked_message";case"disabled_mr":return"invalid_referral";case"disabled_rc":return"revenue_cap_reached";default:return"no_sponsors_message"}}toContext(){return{cannotPark:this.reason}}}class Failed extends State$2{constructor(){super(...arguments),this.type=Type.Failed}static cannotPark({cannotPark:e}){switch(e){case"disabled_b":case"prohibited_ua":case"disabled_fr":case"revenue_cap_reached":case"disabled_mr":case"disabled_rc":case"disabled_cp":case"invalid_domain":{const t=new Failed;return t.reason=e,t}}}static noSponsors({cannotLoadAds:e}){if(e){const e=new Failed;return e.reason="no_sponsors",e}}static fromError(e){const t=new Failed;return t.reason="js_error",t.error=e,t}get track(){return!!this.trackingType}get message(){switch(this.reason){case"disabled_fr":case"disabled_rc":case"no_sponsors":return`\n No Sponsors \n ${this.domain} currently does not have any sponsors for you.
`;case"disabled_mr":return`\n Invalid URL \n Referral traffic for ${this.domain} does not meet requirements.
`;case"js_error":return"\n An Error Occurred \n Parking is currently unavailable. We'll be right back.
\n ";default:return"\n An Error Occurred \n Services for this domain name have been disabled.
\n "}}get trackingType(){switch(this.reason){case"disabled_rc":return"revenue_cap_reached";case"disabled_mr":return"invalid_referral";case"adblock":return"ad_blocked_message";case"no_sponsors":return"no_sponsors_message"}}get domain(){return window.location.hostname}toContext(){return{cannotPark:this.reason}}}function unpackPHPArrayObject(e,t){const n=e[t];if(n&&!Array.isArray(n))return n}class Parking extends State$2{constructor(){super(...arguments),this.type=Type.Parking}static build(e,t){const n=new Parking;n.domain=e.domainName,n.html=e.template,n.scripts=e.scripts||[],n.javascript=e.inlineJs,n.stylesheet=e.styles,n.imprint=e.imprintText;const i=unpackPHPArrayObject(e,"salesSettings"),s=(null==i?void 0:i.status)&&"NOT_FOR_SALE"!==(null==i?void 0:i.status);if(s){const{status:e,location:t,message:s,link:a,type:o}=i;n.salesBanner={message:s,href:a,position:t,theme:o,status:e}}return t.wantsToServeAds?n.trackingType="ctr":s&&window.location.pathname.startsWith("/listing")?n.trackingType="sales":n.trackingType="visit",n}toContext(){return{}}}class Sales extends State$2{constructor(){super(...arguments),this.type=Type.Sales}static build(e){const t=unpackPHPArrayObject(e,"salesSettings");if(!t)return;const{status:n}=t;return["NOT_FOR_SALE","EXTERNAL_MARKET","URL"].includes(n)?void 0:window.location.pathname.startsWith("/listing")?new Sales:void 0}toContext(){return{}}get trackingType(){return"sales"}init(e){window.context=e;const t=document.createElement("script");t.type="text/javascript",t.src=SALES_JS_URL,document.head.append(t)}}class Redirect extends State$2{constructor(){super(...arguments),this.type=Type.Redirect}static build(e,t,n){const i=unpackPHPArrayObject(e,"salesSettings"),{zeroClickDelay:s,skenzoRedirect:a,skenzoUrl:o,showInquiryForm:r,canZeroClick:d,cannotPark:c}=e;if(window.location.pathname.startsWith("/listing")&&["EXTERNAL_MARKET","URL"].includes(null==i?void 0:i.status)){if(null==i?void 0:i.external)return Redirect.toState(i.external,"sales");if(null==i?void 0:i.link)return Redirect.toState(i.link,"sales")}if(n.cannotLoadAds&&n.wantsToServeAds)return Redirect.toState(n.noAdsRedirectUrl,"no_ads_redirect");if(d&&(null==t?void 0:t.reason)){if(null==t?void 0:t.redirect)return Redirect.toState(t.redirect,"zc_redirect",s);if(a&&o)return Redirect.toState(o,"skenzo_redirect")}return(null==i?void 0:i.status)&&"NOT_FOR_SALE"!==(null==i?void 0:i.status)&&(n.cannotLoadAds||n.cannotLoadAds&&!d||r)?Redirect.toState(`${window.location.origin}/listing`):void 0}static toState(e,t,n=0){const i=new Redirect;return i.url=e,i.delay=n,i.trackingType=t,i}toContext(){return{}}}const browserState=()=>{var e,t,n,i,s;const{screen:{width:a,height:o},self:r,top:d,matchMedia:c,opener:l}=window,{documentElement:{clientWidth:h,clientHeight:u}}=document;let p;try{p=(new Date).getTimezoneOffset()/60*-1}catch(e){p=null}return{popup:!(!l||l===window),timezone_offset:p,user_preference:null===(e=null===Intl||void 0===Intl?void 0:Intl.DateTimeFormat())||void 0===e?void 0:e.resolvedOptions(),user_using_darkmode:Boolean(c&&c("(prefers-color-scheme: dark)").matches),user_supports_darkmode:Boolean(c),window_resolution:{width:null!=h?h:0,height:null!=u?u:0},screen_resolution:{width:null!=a?a:0,height:null!=o?o:0},frame:d===r?null:{innerWidth:null!==(t=null==r?void 0:r.innerWidth)&&void 0!==t?t:0,innerHeight:null!==(n=null==r?void 0:r.innerHeight)&&void 0!==n?n:0,outerWidth:null!==(i=null==r?void 0:r.outerWidth)&&void 0!==i?i:0,outerHeight:null!==(s=null==r?void 0:r.outerHeight)&&void 0!==s?s:0}}},TRACKING_URL="_tr",buildSignature=({callbacks:e,context:t},n)=>{var i,s,a,o;return Object.assign({ad_loaded_callback:null==e?void 0:e.adLoadedCallback,app_version:version,caf_client_id:null===(i=null==t?void 0:t.pageOptions)||void 0===i?void 0:i.pubId,caf_timed_out:null==e?void 0:e.cafTimedOut,caf_loaded_ms:null==e?void 0:e.cafLoadedMs,channel:null===(s=null==t?void 0:t.pageOptions)||void 0===s?void 0:s.channel,desktop:t.desktop,terms:null===(a=null==t?void 0:t.pageOptions)||void 0===a?void 0:a.terms,fd_server_datetime:t.fd_server_datetime,fd_server:t.fd_server,flex_rule:t.flex_rule,host:t.host,ip:t.ip,ivt:null===(o=null==t?void 0:t.pageOptions)||void 0===o?void 0:o.ivt,js_error:t.js_error,mobile:t.mobile,no_ads_redirect:t.noAdsRedirect,page_headers:t.page_headers,page_loaded_callback:null==e?void 0:e.pageLoadedCallback,page_method:t.page_method,page_request:t.page_request,page_time:t.page_time,page_url:t.page_url,reportable_channel:t.reportableChannel,reportable_style_id:t.reportableStyleId,tablet:t.tablet,template_id:t.templateId,type:n,user_has_ad_blocker:t.user_has_ad_blocker,user_id:t.userId,uuid:t.uuid,zeroclick:t.zeroClick},browserState())},trackVisit=({callbacks:e,context:t},n,i="")=>{const s=`${i}/${TRACKING_URL}`,a=i?"include":"same-origin",o=buildSignature({callbacks:e,context:t},n);let r={};"click"===n&&(r={click:"true",session:t.uuid,nc:Date.now().toString()}),fetch(s,{method:"POST",headers:{Accept:"application/json","Content-Type":"application/json"},credentials:a,body:JSON.stringify(Object.assign({signature:encode(o)},r))})};var State$1;!function(){if(!window.CustomEvent){function e(e,t){t=t||{bubbles:!1,cancelable:!1,detail:void 0};const n=document.createEvent("CustomEvent");return n.initCustomEvent(e,t.bubbles,t.cancelable,t.detail),n}e.prototype=window.Event.prototype,window.CustomEvent=e}}(),function(e){e[e.Pending=0]="Pending",e[e.Loaded=1]="Loaded",e[e.Failed=2]="Failed"}(State$1||(State$1={}));class Provider{constructor(e){this.timeoutSeconds=5,this.handlePixelEvent=e=>{switch(this.state){case State$1.Failed:break;case State$1.Pending:setTimeout((()=>this.handlePixelEvent(e)),100);break;case State$1.Loaded:this.onPixelEvent(e)}},this.watch=()=>{switch(this.state){case State$1.Loaded:case State$1.Failed:break;case State$1.Pending:this.isLoaded()?this.state=State$1.Loaded:this.isTimedOut()?this.state=State$1.Failed:setTimeout(this.watch,50)}},this.config=e,this.identifier&&this.identifier.length>0?(this.state=State$1.Pending,this.timeoutAt=new Date,this.timeoutAt.setSeconds(this.timeoutAt.getSeconds()+this.timeoutAfter()),this.injectPixel()):this.state=State$1.Failed}get identifier(){var e;return null===(e=this.config)||void 0===e?void 0:e.key}get pixelEvents(){var e;return null===(e=this.config)||void 0===e?void 0:e.pixel_events}injectPixel(){this.injectedAt||(this.injectedAt=new Date,this.inject(),this.watch())}inject(){const e=document.createElement("script");e.text=this.script,document.head.appendChild(e)}isTimedOut(){return+new Date>=+this.timeoutAt}timeoutAfter(){return this.timeoutSeconds}selectPixelEvents(e){if(Array.isArray(this.pixelEvents))return this.pixelEvents.filter((t=>"term-view"===t.trigger&&"visit"===e||(!(!["term-click","ad-view"].includes(t.trigger)||"ctr"!==e)||"ad-click"===t.trigger&&"click"===e)))}}class Facebook extends Provider{get script(){return`!function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod?n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0;t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window, document,'script','https://connect.facebook.net/en_US/fbevents.js');fbq('init', '${this.identifier}');`}onPixelEvent(e){this.selectPixelEvents(e).forEach((e=>{e&&(e.custom?window.fbq("trackCustom",e.event):window.fbq("track",e.event))}))}isLoaded(){return!!window.fbq}}class Outbrain extends Provider{get script(){return`!function(_window, _document) {var OB_ADV_ID = '${this.identifier}';if (_window.obApi) {var toArray = function(object) {return Object.prototype.toString.call(object) === '[object Array]' ? object : [object];};_window.obApi.marketerId = toArray(_window.obApi.marketerId).concat(toArray(OB_ADV_ID));return;}var api = _window.obApi = function() {api.dispatch ? api.dispatch.apply(api, arguments) : api.queue.push(arguments);};api.version = '1.1';api.loaded = true;api.marketerId = OB_ADV_ID;api.queue = [];var tag = _document.createElement('script');tag.async = true;tag.src = '//amplify.outbrain.com/cp/obtp.js';tag.type = 'text/javascript';var script = _document.getElementsByTagName('script')[0];script.parentNode.insertBefore(tag, script);}(window, document);`}onPixelEvent(e){this.selectPixelEvents(e).forEach((e=>{e&&window.obApi("track",e.event)}))}isLoaded(){return!!window.obApi}}class Revcontent extends Provider{get script(){return""}inject(){const e=document.createElement("script");e.src="https://assets.revcontent.com/master/rev.js",document.head.appendChild(e)}onPixelEvent(e){this.selectPixelEvents(e).forEach((e=>{e&&window.rev("event",e.event)}))}isLoaded(){return!!window.rev}}class Taboola extends Provider{get script(){return"window._tfa = window._tfa || [];!function (t, f, a, x) {if (!document.getElementById(x)) {t.async = 1;t.src = a;t.id=x;f.parentNode.insertBefore(t, f);}}(document.createElement('script'),document.getElementsByTagName('script')[0],'//cdn.taboola.com/libtrc/unip/1451879/tfa.js','tb_tfa_script');"}onPixelEvent(e){this.selectPixelEvents(e).forEach((e=>{e&&window._tfa.push({notify:"event",name:e.event,id:e.pixel_id})}))}isLoaded(){return Array.isArray(window._tfa)}}class Tiktok extends Provider{constructor(e,t){super(e),this.useAltTikTokEventsForAdsPlatformUser=t}get script(){return`!function (w, d, t) {w.TiktokAnalyticsObject=t;var ttq=w[t]=w[t]||[];ttq.methods=["page","track","identify","instances","debug","on","off","once","ready","alias","group","enableCookie","disableCookie"],ttq.setAndDefer=function(t,e){t[e]=function(){t.push([e].concat(Array.prototype.slice.call(arguments,0)))}};for(var i=0;i{e&&window.ttq.instance(this.identifier).track(e.event)}))}isLoaded(){return!!window.ttq}}const ADS_PARAM$1="?caf",MESSAGE_PREFIX="FSXDC,.aCS:",ALLOWED_ORIGINS=["https://www.google.com","https://www.adsensecustomsearchads.com","https://syndicatedsearch.goog","https://googleadservices.com"];class Pixels{static build(e){const t=unpackPHPArrayObject(e,"pixel_tracking_data");if(t)return t.useAltTikTokEventsForAdsPlatformUser=e.is_ads,new Pixels(t)}constructor(e){this.onPixelEvent=e=>{const{detail:{type:t}}=e;switch(t){case"visit":case"ctr":case"click":this.providers.forEach((e=>e.handlePixelEvent(t)))}},this.providers=[new Facebook(e.facebook),new Tiktok(e.tiktok,e.useAltTikTokEventsForAdsPlatformUser),new Taboola(e.taboola),new Revcontent(e.revcontent),new Outbrain(e.outbrain)]}listenForEvents(){document.addEventListener("pixel",(e=>{this.onPixelEvent(e)}));window.onmessage=e=>{const{origin:t,data:n}=e;ALLOWED_ORIGINS.includes(t)&&(null==n?void 0:n.startsWith(MESSAGE_PREFIX))&&window.location.search.startsWith(ADS_PARAM$1)&&document.dispatchEvent(new CustomEvent("pixel",{detail:{type:"click"}}))}}dispatchEvent(e){document.dispatchEvent(new CustomEvent("pixel",{detail:e}))}}var State;!function(e){e[e.Pending=0]="Pending",e[e.Loaded=1]="Loaded",e[e.Failure=2]="Failure",e[e.TimedOut=3]="TimedOut",e[e.Errored=4]="Errored"}(State||(State={}));const CAF_SCRIPT_SRC=`https://www.google.com/adsense/domains/caf.js?${GOOGLE_MV3_URL_PARAMS}`,TIMEOUT_SCRIPTS=Number(GOOGLE_CAF_TIMEOUT_SCRIPTS),TIMEOUT_CALLBACKS=Number(GOOGLE_CAF_TIMEOUT_CALLBACKS);class StateMachine{constructor(){this.state=State.Pending}transitionTo(e){this.state=e}transitionFromPendingTo(e){this.done||(this.state=e)}get loaded(){return this.state===State.Loaded}get timedOut(){return this.state===State.TimedOut}get done(){return this.state!==State.Pending}}class Ads{constructor(e,t){this.state={script:new StateMachine,blocks:new StateMachine},this.blocksLoaded=[],this.injectScriptTags=()=>__awaiter(this,void 0,void 0,(function*(){return new Promise((e=>{const t=document.createElement("script");t.type="text/javascript",t.src=CAF_SCRIPT_SRC,t.addEventListener("load",(()=>e(!0))),t.addEventListener("error",(()=>e(!1))),document.body.appendChild(t),TIMEOUT_SCRIPTS>0&&setTimeout((()=>e(!1)),TIMEOUT_SCRIPTS)}))})),this.onPageLoaded=(e,t)=>{if(this.pageLoaded={requestAccepted:e,status:t},this.state.script.done)return;const n=null==t?void 0:t.error_code;n?(this.state.script.transitionTo(State.Failure),this.failureReason=`caf_pageloaderror_${n}`):this.state.script.transitionTo(State.Loaded)},this.onBlockLoaded=(e,t,n,i)=>{this.blocksLoaded.push({containerName:e,adsLoaded:t,isExperimentVariant:n,callbackOptions:i}),this.state.blocks.done||(t?this.state.blocks.transitionTo(State.Loaded):this.blocksLoaded.length>=this.blocks.length&&(this.state.blocks.transitionTo(State.Failure),this.failureReason=`caf_adloadfail_${e}`))},this.onTimeout=()=>{this.state.script.transitionFromPendingTo(State.TimedOut),this.state.blocks.transitionFromPendingTo(State.TimedOut)},this.blocks=e,this.options=t}get loaded(){return this.state.script.loaded&&!this.blocksLoaded.map((e=>e.adsLoaded)).includes(!1)}waitForBlocks(){return __awaiter(this,void 0,void 0,(function*(){return new Promise((e=>{const t=()=>{const n=performance.now();if(this.state.blocks.done)return this.cafLoadTime=Math.round(n-this.cafStartTime),void e();const i=this.blocksLoaded.map((e=>e.adsLoaded));i.includes(!1)||i.length>=this.blocks.length?e():setTimeout(t,50)};t()}))}))}inject(){return __awaiter(this,void 0,void 0,(function*(){try{const e=yield this.injectScriptTags();return this.cafStartTime=performance.now(),e&&void 0!==window.google?(new window.google.ads.domains.Caf(Object.assign(Object.assign({},this.options),{pageLoadedCallback:this.onPageLoaded,adLoadedCallback:this.onBlockLoaded}),...this.blocks),TIMEOUT_CALLBACKS>0&&setTimeout(this.onTimeout,TIMEOUT_CALLBACKS),yield new Promise((e=>{const t=()=>{this.state.script.done?e():setTimeout(t,10)};t()}))):void this.state.script.transitionTo(State.Failure)}catch(e){return void(this.error=e.toString())}}))}toCallbacks(){return{adLoadedCallback:this.blocksLoaded.slice(-1)[0],pageLoadedCallback:this.pageLoaded,cafTimedOut:this.state.script.timedOut||this.state.blocks.timedOut,cafLoadedMs:this.cafLoadTime,googleAdsFailure:!!this.failureReason}}toContext(){const e={cafScriptWasLoaded:this.state.script.loaded,cafScriptLoadTime:this.cafLoadTime,callbacks:this.toCallbacks};return this.error&&(e.js_error={message:this.error}),this.state.script.loaded||(e.zeroclick={reason:"googleAdsFailure"}),e}mockFailedState(){this.state.blocks.transitionTo(State.Failure),this.state.script.transitionTo(State.Failure)}}class TagManager{constructor(e){this.injected=!1,this.identifier=e}inject(){if(this.injected)return;if(!this.identifier)return;if("TEST"===this.identifier)return;const e=document.createElement("script");e.setAttribute("src",`https://www.googletagmanager.com/gtag/js?id=${this.identifier}`),document.head.appendChild(e),this.track(),this.injected=!0}track(){this.push("js",new Date),this.push("config",this.identifier)}push(e,t){window.dataLayer||(window.dataLayer=[]),window.dataLayer.push(arguments)}}const ADS_PARAM="caf",ADS_TRACKING_URL="_tr",BLOCKS_TYPE="ads",BLOCKS_CONTAINER="rs",KNOWN_CAF_PARAMS=["caf","query","afdToken","pcsa","nb","nm","nx","ny","is","clkt"];class Google{static build({pageOptions:e,preferredLanguage:t,blocks:n,googleAnalytics:i},s,a,o){let r={};e&&(r=Object.assign({},e),r.hl||(r.hl=t));let d=null==e?void 0:e.resultsPageBaseUrl;d||(d=window.location.origin);return new Google(s.uuid,n,r,i,d,o)}constructor(e,t,n,i,s,a){this._blocks=t,this._pageOptions=n,this.uuid=e,this._baseURL=new URL(s),this._signature=a,this.ads=new Ads(this.blocks,this.pageOptions),this.tagManager=new TagManager(i)}injectTagManager(){this.tagManager.inject()}injectAds(){return __awaiter(this,void 0,void 0,(function*(){yield this.ads.inject()}))}waitForBlocks(){return __awaiter(this,void 0,void 0,(function*(){return this.ads.waitForBlocks()}))}get blocks(){return(this._blocks||[]).filter((e=>this.wantsToServeAds?e.type===BLOCKS_TYPE:e.container===BLOCKS_CONTAINER)).map((e=>{const t=this.baseURL;new URLSearchParams(window.location.search).forEach(((e,n)=>{t.searchParams.has(n)||t.searchParams.append(n,e)}));const n=Object.assign({},e);if(n.resultsPageBaseUrl=t.toString(),this.wantsToServeAds){const e=new URLSearchParams;e.append("click","true"),e.append("session",this.uuid);const t=Object.assign({},this._signature);delete t.ad_loaded_callback,delete t.caf_loaded_ms,delete t.caf_timed_out,delete t.flex_rule,delete t.frame,delete t.js_error,delete t.no_ads_redirect,delete t.page_headers,delete t.page_request,delete t.page_loaded_callback,delete t.popup,delete t.screen_resolution,delete t.user_has_ad_blocker,delete t.user_preference,delete t.user_supports_darkmode,delete t.user_using_darkmode,delete t.zeroclick,e.append("signature",encode(t)),n.clicktrackUrl=`${TRACKING_DOMAIN}${ADS_TRACKING_URL}?${e.toString()}`}return n}))}get baseURL(){const e=new URL(this._baseURL.origin);return e.searchParams.append(ADS_PARAM,"1"),this._baseURL.searchParams.forEach(((t,n)=>{e.searchParams.append(n,t)})),e}get pageOptions(){const e=Object.assign({},this._pageOptions);return Object.keys(this._pageOptions).forEach((t=>{t.startsWith("bodis")&&delete e[t]})),e}get cannotLoadAds(){return!this.ads.loaded}get wantsToServeAds(){return new URLSearchParams(window.location.search).has(ADS_PARAM)}get adsMode(){return this.ads.loaded&&this.wantsToServeAds}get adsReady(){return this.wantsToServeAds&&!this.cannotLoadAds}get noAdsRedirectUrl(){const e=new URLSearchParams(window.location.search);return KNOWN_CAF_PARAMS.forEach((t=>e.delete(t))),`${window.location.origin}?${e.toString()}`}get callbacks(){return this.ads.toCallbacks()}toContext(){return Object.assign({blocks:this.blocks,pageOptions:this.pageOptions},this.ads.toContext())}}class CookieConsentManager{constructor(){this.injectScriptTag=()=>__awaiter(this,void 0,void 0,(function*(){return new Promise((e=>{const t=document.createElement("script");t.setAttribute("src",COOKIE_CONSENT_JS_URL),t.addEventListener("load",(()=>this.awaitConsent(e))),t.addEventListener("error",(()=>e(!1))),document.head.appendChild(t)}))}))}inject(){return __awaiter(this,void 0,void 0,(function*(){this.injected||!COOKIE_CONSENT_JS_URL||isLocal()||(this.injected=yield this.injectScriptTag())}))}awaitConsent(e){let t=0;const n=setInterval((()=>{t+=1,20===t&&(clearInterval(n),e(!0)),void 0!==window.__tcfapi&&(window.addEventListener("ConsentActivity",(t=>{const{detail:{status:n}}=t;n&&e(!0)})),clearInterval(n))}),50)}}class App{main(){var e,t;return __awaiter(this,void 0,void 0,(function*(){if(this.parkResponse=decode(),this.findDomainResponse=yield getFindDomain(),!this.findDomainResponse)throw new Error("Domain failed to load.");this.pixels=Pixels.build(this.findDomainResponse),null===(e=this.pixels)||void 0===e||e.listenForEvents(),this.adblock=new Adblock,yield this.adblock.inject(),this.google=Google.build(this.findDomainResponse,this.parkResponse,this.adblock,buildSignature({context:this.context,callbacks:null===(t=this.google)||void 0===t?void 0:t.callbacks},"click")),this.google.injectTagManager();const n=Parking.build(this.findDomainResponse,this.google);Render.prerender(n),this.cookieConsentManager=new CookieConsentManager,yield this.cookieConsentManager.inject();let i=Failed.cannotPark(this.findDomainResponse);if(i)return void(yield this.transitionToFailed(i,n));yield this.google.injectAds();let s=Disabled.build(this.findDomainResponse,this.adblock.state);if(s)return void(yield this.transitionToDisabled(s,n));const a=this.adblock.hasAdblocker();a&&this.adblock.handleAdblocked();const o=Sales.build(this.findDomainResponse);if(o)return void(yield this.transitionToSales(o));this.eligibleForZeroClick&&(this.zeroClickResponse=yield getZeroClick(this.context));const r=Redirect.build(this.findDomainResponse,this.zeroClickResponse,this.google);if(r)yield this.transitionToRedirect(r);else{if(a)return s=Disabled.build(this.findDomainResponse,this.adblock.state),void(yield this.transitionToDisabled(s,n));i=Failed.noSponsors(this.google),i?yield this.transitionToFailed(i,n):yield this.transitionToParking(n)}}))}transitionToParking(e){return __awaiter(this,void 0,void 0,(function*(){this.state=e,Render.template(e),Render.revealPage(),yield this.google.waitForBlocks(),yield this.track()}))}transitionToRedirect(e){return __awaiter(this,void 0,void 0,(function*(){this.state=e;const t=this.track();Render.revealPage(),yield waiter(e.delay,(e=>Render.loading(e))),yield t,window.location.href=e.url,log(`➡ Redirecting [${e.url}]`)}))}transitionToFailed(e,t){return __awaiter(this,void 0,void 0,(function*(){this.state=e,Render.message(e.message),Render.injectJS(t.javascript),Render.revealPage(),yield this.track()}))}transitionToSales(e){return __awaiter(this,void 0,void 0,(function*(){this.state=e,e.init(this.context),yield this.track()}))}transitionToDisabled(e,t){return __awaiter(this,void 0,void 0,(function*(){this.state=e,Render.message(e.message),Render.injectJS(t.javascript),Render.revealPage(),yield this.track()}))}track(){var e;return __awaiter(this,void 0,void 0,(function*(){if(!this.state.track)return Promise.resolve();try{const t=this.state.trackingType;return null===(e=this.pixels)||void 0===e||e.dispatchEvent({type:t}),trackVisit({context:this.context,callbacks:this.google.callbacks},t)}catch(e){return}}))}get eligibleForZeroClick(){const{cannotPark:e,canZeroClick:t,zeroClick:n}=this.findDomainResponse,{cannotLoadAds:i,wantsToServeAds:s}=this.google;return this.adblock.state!==Blocking.BLOCKED&&(!!t&&(!!e||(!(!i||s)||!!(null==n?void 0:n.reason))))}get context(){var e,t,n,i;const s=this.findDomainResponse,a=this.parkResponse,o=null===(e=this.state)||void 0===e?void 0:e.toContext(),r=null===(t=this.adblock)||void 0===t?void 0:t.toContext(),d=null===(n=this.google)||void 0===n?void 0:n.toContext(),c=browserState(),l=Object.assign(Object.assign({},null===(i=this.findDomainResponse)||void 0===i?void 0:i.zeroClick),this.zeroClickResponse);return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({app_version:APP_VERSION},s),a),r),d),o),c),{zeroClick:l})}init(){return __awaiter(this,void 0,void 0,(function*(){try{window.__parkour=this,yield this.main()}catch(e){console.error("app",e);const t=Failed.fromError(e);this.state=t,Render.message(t.message),Render.revealPage()}}))}}(new App).init(),exports.App=App}));