<!DOCTYPE html>
<html lang="id-ID">
<head>
<meta charset="utf-8">
<meta name="google-site-verification" content="SLipZd3nG3PlV6WIiOIjBO1MFd97UxoMuhHotPMr7II" />
<title>KEDAI69 - Tempat Menikmati Hiburan Slot Online Dengan Gaya Elegan</title>
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=0">
<link rel="canonical" href="https://warungkedai69.com/">

<link rel="amphtml" href="https://es.warungkedai69.com/" />

<meta data-n-head="ssr" data-hid="mobile-web-app-capable" name="mobile-web-app-capable" content="yes">
<meta data-n-head="ssr" data-hid="apple-mobile-web-app-capable" name="apple-mobile-web-app-capable" content="yes">
<meta data-n-head="ssr" data-hid="apple-mobile-web-app-status-bar-style" name="apple-mobile-web-app-status-bar-style" content="default">
<meta data-n-head="ssr" data-hid="theme-color" name="theme-color" content="var(--theme-color)">
<meta data-n-head="ssr" data-hid="og:type" name="og:type" property="og:type" content="website">
<meta data-n-head="ssr" data-hid="og:image" name="og:image" property="og:image" content="https://cdn.robotaset.com/assets/tpl/cecfa986ad/images/favicon.ico">
<meta data-n-head="ssr" data-hid="og:image:width" name="og:image:width" property="og:image:width" content="512">
<meta data-n-head="ssr" data-hid="og:image:height" name="og:image:height" property="og:image:height" content="512">
<meta data-n-head="ssr" data-hid="og:image:type" name="og:image:type" property="og:image:type" content="image/png">
<meta data-n-head="ssr" data-hid="i18n-og" property="og:locale" content="id_ID">
<meta data-n-head="ssr" data-hid="i18n-og-alt-en-GB" property="og:locale:alternate" content="en_GB">
<meta data-n-head="ssr" data-hid="i18n-og-alt-en-GB" property="og:locale:alternate" content="en_GB">
<link rel="alternate" href="https://es.warungkedai69.com/">

<link rel="alternate" href="https://es.warungkedai69.com/" hreflang="id">

<link rel="alternate" href="https://es.warungkedai69.com/" hreflang="en">

<link rel="alternate" href="https://es.warungkedai69.com/" hreflang="en">

<link rel="alternate" href="https://es.warungkedai69.com/" hreflang="x-default">

<link rel="alternate" hreflang="id-ID" href="https://es.warungkedai69.com/" />

<link rel="alternate" hreflang="en-US" href="https://es.warungkedai69.com/" />

<link rel="alternate" hreflang="en-SG" href="https://es.warungkedai69.com/" />

<meta data-n-head="ssr" data-hid="description" name="description" content="Kedai69 menawarkan suasana hiburan slot online yang terasa lebih hidup dengan desain modern, navigasi ringan, dan pengalaman bermain yang dibuat senyaman mungkin.">
<meta data-n-head="ssr" data-hid="keywords" name="keywords" content="kedai69, kedai69 login, kedai69 daftar">
<link data-n-head="ssr" rel="icon" type="image/x-icon" href="https://cdn.robotaset.com/assets/tpl/cecfa986ad/images/favicon.ico">

<link data-n-head="ssr" data-hid="shortcut-icon" rel="shortcut icon" href="https://cdn.robotaset.com/assets/tpl/cecfa986ad/images/favicon.ico">

<link data-n-head="ssr" data-hid="apple-touch-icon" rel="apple-touch-icon" href="https://cdn.robotaset.com/assets/tpl/cecfa986ad/images/favicon.ico" sizes="512x512">

<link data-n-head="ssr" href="https://cdn.robotaset.com/assets/tpl/cecfa986ad/images/favicon.ico" media="(device-width: 320px) and (device-height: 568px) and (-webkit-device-pixel-ratio: 2)" rel="apple-touch-startup-image" data-hid="apple-touch-startup-image-iphonese">
<link data-n-head="ssr" href="https://cdn.robotaset.com/assets/tpl/cecfa986ad/images/favicon.ico" media="(device-width: 375px) and (device-height: 667px) and (-webkit-device-pixel-ratio: 2)" rel="apple-touch-startup-image" data-hid="apple-touch-startup-image-iphone6">
<link data-n-head="ssr" href="https://cdn.robotaset.com/assets/tpl/cecfa986ad/images/favicon.ico" media="(device-width: 621px) and (device-height: 1104px) and (-webkit-device-pixel-ratio: 3)" rel="apple-touch-startup-image" data-hid="apple-touch-startup-image-iphoneplus">
<link data-n-head="ssr" href="https://cdn.robotaset.com/assets/tpl/cecfa986ad/images/favicon.ico" media="(device-width: 375px) and (device-height: 812px) and (-webkit-device-pixel-ratio: 3)" rel="apple-touch-startup-image" data-hid="apple-touch-startup-image-iphonex">
<link data-n-head="ssr" href="https://cdn.robotaset.com/assets/tpl/cecfa986ad/images/favicon.ico" media="(device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 2)" rel="apple-touch-startup-image" data-hid="apple-touch-startup-image-iphonexr">
<link data-n-head="ssr" href="https://cdn.robotaset.com/assets/tpl/cecfa986ad/images/favicon.ico" media="(device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 3)" rel="apple-touch-startup-image" data-hid="apple-touch-startup-image-iphonexsmax">
<link data-n-head="ssr" href="https://cdn.robotaset.com/assets/tpl/cecfa986ad/images/favicon.ico" media="(device-width: 768px) and (device-height: 1024px) and (-webkit-device-pixel-ratio: 2)" rel="apple-touch-startup-image" data-hid="apple-touch-startup-image-ipad">
<link data-n-head="ssr" media="(device-width: 834px) and (device-height: 1112px) and (-webkit-device-pixel-ratio: 2)" rel="apple-touch-startup-image" data-hid="apple-touch-startup-image-ipadpro1">
<link data-n-head="ssr" media="(device-width: 834px) and (device-height: 1194px) and (-webkit-device-pixel-ratio: 2)" rel="apple-touch-startup-image" data-hid="apple-touch-startup-image-ipadpro2">
<link data-n-head="ssr" media="(device-width: 1024px) and (device-height: 1366px) and (-webkit-device-pixel-ratio: 2)" rel="apple-touch-startup-image" data-hid="apple-touch-startup-image-ipadpro3">
<link data-n-head="ssr" rel="manifest" href="https://cdn-proxy.globalcontentcloud.com/58/dist/manifest.ccbfabc6.json" data-hid="manifest">

<style data-vue-ssr-id="5f8fffe6:0 5f8fffe6:1 5564551a:0 5c346d62:0 737e6e7e:0 abacbb72:0 3d6af804:0 b07c7b88:0 0f34a119:0 516a95ee:0 2065e928:0 48d2e31c:0 1e6962f8:0 6328fecd:0 01423e96:0 d44b6368:0 45950b50:0 0f1b1166:0 7f8ce74e:0 3527a6c8:0 63e9c044:0 1bd34be1:0 2f97eff2:0 0d5f88d1:0 5ec9e21a:0 507314ec:0 6a594412:0 047c1842:0 87f150ba:0">
@import url(https://cdn-proxy.globalcontentcloud.com/common/font/v1/icons.css); @font-face {
font-family: Avenir;
src: url(https://cdn-proxy.globalcontentcloud.com/58/dist/fonts/avenir-35.f136337.ttf) format("ttf");
font-style: normal;
font-weight: 300
}

@font-face {
font-family: Avenir;
src: url(https://cdn-proxy.globalcontentcloud.com/58/dist/fonts/avenir-45.f630d8a.ttf) format("ttf");
font-style: normal;
font-weight: 400
}

@font-face {
font-family: Avenir;
src: url(https://cdn-proxy.globalcontentcloud.com/58/dist/fonts/avenir-55.1ff38de.ttf) format("ttf");
font-style: normal;
font-weight: 500
}

@font-face {
font-family: Avenir;
src: url(https://cdn-proxy.globalcontentcloud.com/58/dist/fonts/avenir-65.575ae43.ttf) format("ttf");
font-style: normal;
font-weight: 600
}

@font-face {
font-family: Avenir;
src: url(https://cdn-proxy.globalcontentcloud.com/58/dist/fonts/avenir-85.af8024e.ttf) format("ttf");
font-style: normal;
font-weight: 700
}

@font-face {
font-family: Avenir;
src: url(https://cdn-proxy.globalcontentcloud.com/58/dist/fonts/avenir-95.dbad8bb.ttf) format("ttf");
font-style: normal;
font-weight: 900
}

.text-link-bold {
font-weight: 600
}

@font-face {
font-family: "idn";
src: url(https://cdn-proxy.globalcontentcloud.com/common/font/v1/idn.ttf) format("truetype");
font-weight: 400;
font-style: normal;
font-display: block
}

[class*=" icon-"],[class^=icon-] {
font-family: "idn"!important;
font-style: normal;
font-weight: 400;
font-feature-settings: normal;
font-variant: normal;
text-transform: none;
line-height: 1;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale
}

input:disabled,select:disabled {
opacity: 1
}

.input__container {
width: 100%;
position: relative;
margin-bottom: 1rem
}

.input__container label {
display: block;
font-size: .875rem;
margin-bottom: .25rem
}

.input__container.input--search {
margin-bottom: 0
}

.input__root {
position: relative;
display: flex;
flex-direction: row;
align-items: center;
border-radius: 5px
}

.input__icon {
position: absolute;
left: .5rem;
color: var(--theme-color);
z-index: 3
}

.input__validation-icon {
position: absolute;
right: .5rem
}

.input__validation-icon.valid {
color: #ffdfa0
}

.input__validation-icon.invalid {
color: #ffdfa0
}

.select__container .input__validation-icon {
right: 1.5rem
}

.input__error {
color: #ffdfa0;
font-size: .75rem;
font-style: italic;
margin-top: .25rem;
font-family: Avenir,"Helvetica Neue",Arial,sans-serif;
font-weight: 300
}

.input__icon--pv {
right: .5rem;
left: unset;
cursor: pointer
}

.select__arrow {
position: absolute;
right: .5rem;
pointer-events: none
}

.select__arrow--disabled {
color: hsla(0,0%,100%,.38)
}

.input {
width: 100%;
outline: none;
padding: .375rem 1.5rem;
border-radius: 5px;
color: #fff;
border: 1px solid hsla(0,0%,100%,.6);
background-color: #061426;
font-size: .875rem;
font-family: inherit;
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
transition: color .2s ease,border-color .2s ease
}

.input.input--invalid,.input.input--invalid:focus,.input.input--invalid:hover {
border-color: #ffdfa0
}

.input.input--valid,.input.input--valid:focus,.input.input--valid:hover {
border-color: #ffdfa0
}

.input.input__select {
padding: .375rem 2.5rem .375rem 1.5rem
}

.input::-moz-placeholder {
color: hsla(0,0%,100%,.6)
}

.input:-ms-input-placeholder {
color: hsla(0,0%,100%,.6)
}

.input::placeholder {
color: hsla(0,0%,100%,.6)
}

.input:focus,.input:hover {
border-color: var(--theme-color)
}

.input:disabled {
color: hsla(0,0%,100%,.38);
border-color: hsla(0,0%,100%,.38)
}

.input--inverse {
color: #000;
background-color: #f0f0f0;
border-color: transparent
}

.input--inverse::-moz-placeholder {
color: rgba(0,0,0,.38)
}

.input--inverse:-ms-input-placeholder {
color: rgba(0,0,0,.38)
}

.input--inverse::placeholder {
color: rgba(0,0,0,.38)
}

.input--hidden {
z-index: -1;
position: absolute;
color: transparent;
background-color: transparent
}

.input--search .input__root {
overflow: hidden
}

.input--search .input__icon--loading {
position: absolute;
right: .75rem;
color: var(--theme-color)
}

.input-search--clear {
position: absolute;
right: 0;
color: hsla(0,0%,100%,.6);
transition: color .2s ease
}

.input-search--clear:hover {
color: #fff
}

.input--search .input {
padding-left: 2rem;
padding-right: 2rem
}

.input--underlined .input {
border-radius: 0;
background-color: transparent;
border: none;
border-bottom: 1px solid hsla(0,0%,100%,.6)
}

.input--underlined .input__icon {
color: #fff
}

.input__password .input {
padding-right: 1.5rem
}

.input__textarea .input__root {
overflow: hidden
}

.input__textarea .input__icon {
top: .625rem
}

.wallet-form .alert,.wallet-form button[type=submit] {
margin-bottom: 1rem
}

.wallet-form button[type=submit]:last-child {
margin-bottom: 0
}

.wallet-form--d {
position: relative;
display: grid;
grid-column-gap: 2rem;
grid-template-columns: repeat(3,minmax(0,1fr))
}

.wallet-form--d button[type=submit] {
margin-bottom: 0
}

.wallet-form--d .alert,.wallet-form--d .bank-select,.wallet-form--d .bonus-select,.wallet-form--d .input__container,.wallet-form--d .preset-amounts,.wallet-form--d .wallet-detail__deposit-to,.wallet-form--d button[type=submit] {
grid-column: 1/3
}

.wallet-form--d .wallet-detail:not(.wallet-detail__deposit-to) {
position: absolute;
grid-column: 3/4;
grid-row: 1/2;
width: 100%
}

.datepicker__wrapper {
width: 100%
}

div.datepicker__calendar {
border: none;
margin-top: .5rem;
border-radius: 5px;
background-color: #102640
}

div.datepicker__calendar .prev:after {
border-right-color: #fff
}

div.datepicker__calendar .next:after {
border-left-color: #fff
}

div.datepicker__calendar .next:not(.disabled):hover,div.datepicker__calendar .prev:not(.disabled):hover,div.datepicker__calendar .up:not(.disabled):hover {
background: unset
}

div.datepicker__calendar .cell {
border: none;
font-size: .875rem;
height: 34px;
line-height: 34px
}

div.datepicker__calendar .cell.selected {
background: unset;
color: var(--theme-color)
}

div.datepicker__calendar .cell:not(.blank):not(.disabled).day:hover,div.datepicker__calendar .cell:not(.blank):not(.disabled).month:hover,div.datepicker__calendar .cell:not(.blank):not(.disabled).year:hover {
border: none;
color: var(--theme-color)
}

a {
color: inherit;
font-size: .875rem;
text-decoration: none;
vertical-align: middle
}

@media(hover: hover)and (min-width:1024px) {
a:not(.btn):hover {
color:var(--theme-color)
}
}

button {
border: none;
outline: none;
cursor: pointer;
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
font-family: inherit;
background-color: unset
}

.btn {
height: 34px;
color: #fff;
white-space: nowrap;
padding: 0 1rem;
font-weight: 700;
font-size: .875rem;
text-align: center;
border-radius: 2px;
background-color: transparent;
transition: background-color .2s ease
}

.btn:disabled,.btn:hover:disabled {
cursor: not-allowed;
color: hsla(0,0%,100%,.38);
background-color: #102640
}

.btn--loading {
position: relative;
display: flex;
align-items: center;
justify-content: center
}

.btn--loading:disabled,.btn--loading:disabled:hover {
color: transparent;
border: none;
background-color: #102640
}

.btn--loading i {
position: absolute;
color: var(--theme-color)
}

.btn--sm {
font-size: .75rem;
height: 24px
}

.btn--block {
display: block;
width: 100%
}

.btn--flex {
display: flex;
align-items: center;
justify-content: center
}

.btn--outlined {
border-radius: 5px;
border: 1px solid hsla(0,0%,100%,.6)
}

@media(hover: hover)and (min-width:1024px) {
.btn--outlined:hover {
border-color:#fff
}
}

.btn--light {
color: #fff;
background-color: #102640
}

@media(hover: hover)and (min-width:1024px) {
.btn--light:hover {
background-color:#1f252d
}
}

.btn--demo-play {
color: #fff;
border: 1px solid hsla(0,0%,100%,.6);
background-color: rgba(41,50,60,.5)
}

@media(hover: hover)and (min-width:1024px) {
.btn--demo-play:hover {
background-color:#102640
}
}

.btn--dark {
color: #fff;
background-color: #061426
}

.btn--dark:hover {
background-color: #050f1d
}

.btn--primary {
color: #fff;
background-color: var(--theme-color)
}

.btn--primary:hover {
background-color: #102640
}

.btn--accent {
color: #fff;
background-color: var(--theme-color)
}

@media(hover: hover)and (min-width:1024px) {
.btn--accent:hover {
background-color:#c61449
}
}

.btn--accent-secondary {
color: #fff;
background-color: var(--theme-color)
}

@media(hover: hover)and (min-width:1024px) {
.btn--accent-secondary:hover {
background-color:#a817b5
}
}

.btn--brand {
color: #fff;
background-color: var(--theme-color)
}

@media(hover: hover)and (min-width:1024px) {
.btn--brand:hover {
background-color:#a70b59
}
}

.btn--success {
color: #fff;
background-color: #ffdfa0
}

@media(hover: hover)and (min-width:1024px) {
.btn--success:hover {
background-color:#10853a
}
}

.btn--success:disabled,.btn--success:hover:disabled {
cursor: not-allowed;
color: hsla(0,0%,100%,.38);
background-color: #0d6f30
}

.btn--danger {
color: #fff;
background-color: #ffdfa0
}

@media(hover: hover)and (min-width:1024px) {
.btn--danger:hover {
background-color:#ff3434
}
}

.btn--round {
width: 34px
}

.btn--round,.btn--sm-round {
overflow: hidden;
display: flex;
align-items: center;
justify-content: center;
border-radius: 50%
}

.btn--sm-round {
font-size: .75rem;
padding: .25rem;
width: 24px;
height: 24px;
box-sizing: content-box
}

.btn--dropdown-toggle {
padding-right: 1.5rem
}

@-webkit-keyframes grow {
0% {
opacity: 0
}

to {
opacity: 1;
transform: scale(1)
}
}

@keyframes grow {
0% {
opacity: 0
}

to {
opacity: 1;
transform: scale(1)
}
}

@-webkit-keyframes pointer {
0% {
touch-action: none;
pointer-events: none
}

to {
touch-action: auto;
pointer-events: all
}
}

@keyframes pointer {
0% {
touch-action: none;
pointer-events: none
}

to {
touch-action: auto;
pointer-events: all
}
}

@-webkit-keyframes trans {
0% {
pointer-events: none
}

to {
pointer-events: all;
transform: translateY(-.25rem)
}
}

@keyframes trans {
0% {
pointer-events: none
}

to {
pointer-events: all;
transform: translateY(-.25rem)
}
}

@-webkit-keyframes skeleton {
0% {
left: -100%
}

to {
left: 100%
}
}

@keyframes skeleton {
0% {
left: -100%
}

to {
left: 100%
}
}

@-webkit-keyframes countdown {
0% {
width: 100%
}

to {
width: 0
}
}

@keyframes countdown {
0% {
width: 100%
}

to {
width: 0
}
}

.toasted-container.app-toast.top-left {
padding: 0 .5rem;
left: unset;
top: calc(90px + .5rem)
}

.toasted-container.app-toast.top-left.app-toast--d {
top: calc(54px + .5rem)
}

.toasted-container.app-toast.top-left.app-toast--d .toasted.app-toast {
max-width: 300px
}

.toasted-container.app-toast.top-left.app-toast--d .toasted.app-toast:first-child {
margin-top: 0
}

.toasted-container.app-toast .toasted.app-toast {
position: relative;
display: grid;
overflow: hidden;
grid-column-gap: .5rem;
min-height: 60px;
max-width: calc(100vw - 50px);
grid-template-columns: 4rem 1fr 2rem;
padding: 0;
font-weight: 400;
line-height: normal;
font-size: .875rem;
color: #fff;
border-radius: 5px;
background-color: #102640;
filter: drop-shadow(.1rem .1rem .1rem #061426)
}

.toasted-container.app-toast .toasted.app-toast:after {
position: absolute;
display: block;
left: 0;
bottom: 0;
content: "";
width: 100%;
height: .25rem;
background-color: rgba(13,191,187,.5);
-webkit-animation: countdown 10s linear forwards;
animation: countdown 10s linear forwards
}

.toasted-container.app-toast .toasted.app-toast>i {
display: flex;
align-items: center;
justify-content: center;
width: 100%;
height: 100%;
min-height: 4rem;
padding: .5rem;
font-size: 1.25rem;
color: #fff;
background-color: #102640
}

.toasted-container.app-toast .toasted.app-toast>i:before {
filter: drop-shadow(.1rem .1rem .1rem #061426)
}

.toasted-container.app-toast .toasted.app-toast a.action {
justify-self: center;
display: block;
margin: 0;
padding: 0;
font-size: 1rem;
color: #fff
}

.toasted-container.app-toast .toasted.app-toast>span {
display: block;
padding: .5rem 0;
font-size: .75rem;
align-self: center
}

.toasted-container.app-toast .toasted.app-toast.toast--success {
background-color: var(--theme-color)
}

.toasted-container.app-toast .toasted.app-toast.toast--success i {
color: #ffdfa0
}

.toasted-container.app-toast .toasted.app-toast.toast--error,.toasted-container.app-toast .toasted.app-toast.toast--info {
background-color: var(--theme-color)
}

.toasted-container.app-toast .toasted.app-toast.toast--error i {
color: #ffdfa0
}

.shadow-container {
position: relative;
overflow: hidden
}

.shadow-container:after,.shadow-container:before {
position: absolute;
top: 0;
opacity: 0;
z-index: 2;
content: "";
width: 50px;
height: 100%;
pointer-events: none;
transition: opacity .2s ease
}

.shadow-container.shadow--primary:before {
left: 0;
background: linear-gradient(90deg,var(--theme-color) 0,rgba(23,30,38,0))
}

.shadow-container.shadow--primary:after {
right: 0;
background: linear-gradient(270deg,var(--theme-color) 0,rgba(23,30,38,0))
}

.shadow-container.shadow--dark:before {
left: 0;
background: linear-gradient(90deg,#061426 0,rgba(16,19,23,0))
}

.shadow-container.shadow--dark:after {
right: 0;
background: linear-gradient(270deg,#061426 0,rgba(16,19,23,0))
}

.shadow-container.shadow-end:after,.shadow-container.shadow-start:before {
opacity: 1
}

.shadow-container .shadow-observer {
display: block;
width: 1px;
height: 1px;
flex-shrink: 0
}

.page-enter-active,.page-leave-active {
transition: opacity .3s cubic-bezier(.4,0,.2,1)
}

.game-fade-enter,.game-fade-leave-to,.page-enter,.page-leave-to {
opacity: 0
}

.game-fade-enter-active,.game-fade-leave-active {
transition: opacity .5s ease
}

html {
font-family: Avenir,"Helvetica Neue",Arial,sans-serif;
font-size: 16px;
word-spacing: 1px;
-ms-text-size-adjust: 100%;
-webkit-text-size-adjust: 100%;
-moz-osx-font-smoothing: grayscale;
-webkit-font-smoothing: antialiased;
box-sizing: border-box
}

*,:after,:before {
box-sizing: border-box;
margin: 0;
padding: 0
}

body {
overflow: auto;
overflow: overlay;
font-weight: 400;
color: #fff;
background-color: #061426;
padding-bottom: env(safe-area-inset-bottom)
}

@media(min-width: 1024px) {
body::-webkit-scrollbar {
width:.25rem
}

body::-webkit-scrollbar-track {
border-radius: 20px;
background-color: #061426
}

body::-webkit-scrollbar-thumb {
border-radius: 20px;
background-color: #fff
}
}

#__app,#__layout,body,html {
height: 100%;
min-height: 100%
}

h1 {
font-size: 1.75rem
}

h2 {
font-size: 1.5rem
}

h3 {
font-size: 1.25rem
}

h4 {
font-size: 1rem
}

h5 {
font-size: .875rem
}

h6 {
font-size: .75rem
}

h3,h4,h5,h6 {
font-weight: 700
}

ul {
list-style-type: none
}

input::-webkit-inner-spin-button,input::-webkit-outer-spin-button {
-webkit-appearance: none;
margin: 0
}



.dropdown .dropdown__toggle .btn--dropdown-toggle~.dropdown__icon {
right: .5rem
}

.surface {
box-shadow: 0 3px 3px -2px rgba(0,0,0,.2),0 3px 4px 0 rgba(0,0,0,.14),0 1px 8px 0 rgba(0,0,0,.12)
}

.surface--inverse {
box-shadow: 0 -3px 3px -2px rgba(0,0,0,.2),0 -3px 4px 0 rgba(0,0,0,.14),0 -1px 8px 0 rgba(0,0,0,.12)
}

.page {
min-height: 100%;
flex-direction: column;
justify-content: center;
padding-bottom: 1rem
}

.page,.page-header {
display: flex;
align-items: center
}

.page-header {
padding: .5rem 0;
border-bottom: 1px solid #102640
}

.page-header h3 {
font-size: 1rem
}

.page-header i {
margin-right: .5rem
}

.scroll--disabled {
overflow: hidden
}

.error {
color: #ffdfa0
}

.warning {
color: #ffdfa0
}

.loading[data-v-1259992c] {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
display: flex;
align-items: center;
justify-content: center;
z-index: 999;
background-color: rgba(16,19,23,.9)
}

.loading--global[data-v-1259992c] {
position: fixed;
background-color: rgba(16,19,23,.7)
}

.loading .sk-cube-grid[data-v-1259992c] {
width: 40px;
height: 40px;
overflow: hidden;
border-radius: 2px
}

.loading .sk-cube-grid .sk-cube[data-v-1259992c] {
width: 33%;
height: 33%;
float: left;
background-color: var(--theme-color);
-webkit-animation: sk-cubeGridScaleDelay-data-v-1259992c 1.3s ease-in-out infinite;
animation: sk-cubeGridScaleDelay-data-v-1259992c 1.3s ease-in-out infinite
}

.loading .sk-cube-grid .sk-cube1[data-v-1259992c] {
-webkit-animation-delay: .2s;
animation-delay: .2s
}

.loading .sk-cube-grid .sk-cube2[data-v-1259992c] {
-webkit-animation-delay: .3s;
animation-delay: .3s
}

.loading .sk-cube-grid .sk-cube3[data-v-1259992c] {
-webkit-animation-delay: .4s;
animation-delay: .4s
}

.loading .sk-cube-grid .sk-cube4[data-v-1259992c] {
-webkit-animation-delay: .1s;
animation-delay: .1s
}

.loading .sk-cube-grid .sk-cube5[data-v-1259992c] {
-webkit-animation-delay: .2s;
animation-delay: .2s
}

.loading .sk-cube-grid .sk-cube6[data-v-1259992c] {
-webkit-animation-delay: .3s;
animation-delay: .3s
}

.loading .sk-cube-grid .sk-cube7[data-v-1259992c] {
-webkit-animation-delay: 0s;
animation-delay: 0s
}

.loading .sk-cube-grid .sk-cube8[data-v-1259992c] {
-webkit-animation-delay: .1s;
animation-delay: .1s
}

.loading .sk-cube-grid .sk-cube9[data-v-1259992c] {
-webkit-animation-delay: .2s;
animation-delay: .2s
}

@-webkit-keyframes sk-cubeGridScaleDelay-data-v-1259992c {
0%,70%,to {
transform: scaleX(1)
}

35% {
transform: scale3D(0,0,1)
}
}

@keyframes sk-cubeGridScaleDelay-data-v-1259992c {
0%,70%,to {
transform: scaleX(1)
}

35% {
transform: scale3D(0,0,1)
}
}

.layout--default {
position: relative;
display: grid;
min-height: 100%;
grid-template-columns: 100%;
grid-template-rows: auto 1fr auto auto auto
}

.layout--default .top-observer {
position: absolute;
width: 100%;
top: 1500px;
pointer-events: none;
height: calc(100% - 1500px)
}

.layout--default main>.container {
background-color: #061426
}

.layout--android {
grid-template-rows: auto auto 1fr auto auto auto
}

.layout--d {
grid-row-gap: .5rem;
grid-template-rows: auto auto 1fr auto auto
}

.layout--d .top-observer {
top: unset;
bottom: 100px;
height: 1px
}

.layout--d.layout--bg main>.container {
padding: 1rem
}

.app-header {
position: sticky;
top: 0;
color: #fff;
height: 90px;
z-index: 99;
background-color: #061426
}

.app-header__dewafortune {
position: relative;
margin-right: .5rem
}

.app-header__dewafortune img {
position: absolute;
top: 0;
left: 0;
width: 2rem;
transform: translate(-60%,-20%)
}

.app-header__main {
position: relative;
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-between;
height: 54px
}

.app-header__extra {
display: flex;
overflow: hidden;
background-color: var(--theme-color);
height: 36px
}

.app-header__balance {
padding: 0 1rem;
font-weight: 700;
font-size: .875rem
}

.app-header__balance,.app-header__username {
display: flex;
align-items: center;
justify-content: center;
border-left: 1px solid #102640;
height: 54px
}

.app-header__username {
padding-left: .5rem
}

.app-header__username i {
margin-right: .25rem
}

.app-header__username span {
font-size: .875rem
}

.app-header--d {
height: 54px;
display: flex;
border-bottom: 1px solid #102640
}

.app-header--d .container--fluid {
margin: 0 auto;
max-width: 1200px
}

.app-header--d .app-brand {
position: sticky;
max-width: unset;
left: 7rem
}

.app-brand {
max-width: 40%
}

.app-brand a .app-logo {
display: block;
width: 100%;
max-width: 160px;
height: calc(54px - 1rem);
-o-object-fit: contain;
object-fit: contain;
-o-object-position: left center;
object-position: left center
}

.app-header__widgets {
width: 60%;
justify-content: flex-end
}

.app-header__widgets,.app-header__widgets .app-header__auth,.app-header__widgets .app-header__user {
display: flex;
align-items: center
}

.app-header__widgets .app-header__auth .app-header__btn-inbox,.app-header__widgets .app-header__user .app-header__btn-inbox {
margin-right: 1rem
}

.app-header__widgets .app-header__auth .app-link--exact-active .icon_chip i,.app-header__widgets .app-header__user .app-link--exact-active .icon_chip i {
color: var(--theme-color)
}

.app-header__widgets .app-header__auth>*,.app-header__widgets .app-header__user>* {
margin-right: .5rem
}

.app-header__widgets .app-header__auth>:last-child,.app-header__widgets .app-header__user>:last-child {
margin-right: 0
}

@media(min-width: 1024px) {
.app-header__widgets {
width:auto
}

.app-header__widgets .app-header__auth .btn {
width: 4.75rem
}
}

.drawer__toggle {
flex: 1 1 25%;
height: 100%;
display: flex;
align-items: center;
justify-content: center;
border-radius: 0;
border-left: 1px solid var(--theme-color)
}

.drawer__toggle--d {
position: absolute;
left: 0;
width: 6rem;
flex: unset;
z-index: 2;
border-left: none;
color: hsla(0,0%,100%,.6);
border-right: 1px solid #102640
}

.drawer__toggle--d:hover,.drawer__toggle--d i {
color: var(--theme-color)
}

.drawer__toggle--active {
color: var(--theme-color);
background-color: #061426
}

.container--fluid[data-v-ced53b20] {
width: 100vw;
padding: 0 .5rem
}

@media(min-width: 1024px) {
.container--fluid[data-v-ced53b20] {
padding:0 1rem
}
}

.app-breadcrumbs {
position: relative;
display: flex;
flex: 1 1 75%;
overflow: hidden;
min-height: 24px
}

.app-breadcrumbs--light {
background-color: #061426
}

.app-breadcrumbs--primary {
background-color: var(--theme-color)
}

.app-breadcrumbs:after,.app-breadcrumbs:before {
position: absolute;
opacity: 0;
top: 0;
width: 50px;
height: 100%;
content: "";
z-index: 2;
pointer-events: none;
transition: opacity .2s ease
}

.app-breadcrumbs:before {
left: 0;
background: linear-gradient(90deg,var(--theme-color) 0,rgba(23,30,38,0))
}

.app-breadcrumbs:after {
right: 0;
background: linear-gradient(270deg,var(--theme-color) 0,rgba(23,30,38,0))
}

.app-breadcrumbs--shadow-end:after,.app-breadcrumbs--shadow-start:before {
opacity: 1
}

.app-breadcrumbs ul {
height: 100%;
display: flex;
align-items: center;
overflow: hidden;
overflow-x: scroll;
overflow-x: overlay;
scroll-behavior: smooth;
-ms-scroll-snap-type: x mandatory;
scroll-snap-type: x mandatory;
scrollbar-width: none;
-ms-overflow-style: none
}

.app-breadcrumbs ul::-webkit-scrollbar {
display: none
}

.app-breadcrumbs .nav-observer {
flex-shrink: 0;
height: 100%;
width: 1px
}

.app-breadcrumbs .nav-item {
height: 100%;
transition: color .2s ease;
scroll-snap-align: start
}

.app-breadcrumbs .nav-item:hover {
color: #fff
}

.app-breadcrumbs .nav-item--fill {
font-size: .75rem;
display: flex;
align-items: center;
justify-content: center
}

.app-breadcrumbs .nav-item--fill i {
color: #fff
}

.app-breadcrumbs .nav-item a {
height: 100%;
padding: 0 .5rem;
font-size: .75rem;
font-weight: 700;
white-space: nowrap;
display: flex;
align-items: center;
justify-content: center;
text-transform: capitalize;
color: #fff
}

.app-breadcrumbs .nav-item a.app-link--active[data-ref=bonus],.app-breadcrumbs .nav-item a.app-link--active[data-ref=leaderboard],.app-breadcrumbs .nav-item a.app-link--active[data-ref=promowins],.app-breadcrumbs .nav-item a.app-link--active[data-ref=referral],.app-breadcrumbs .nav-item a.app-link--exact-active:not([data-ref=promo]):not([data-ref=promosi]):not([data-ref=slots]) {
color: var(--theme-color)
}

.app-breadcrumbs--d {
flex: unset
}

.app-breadcrumbs--d ul {
min-height: 24px
}

.app-breadcrumbs--d:before {
background: linear-gradient(90deg,#061426 0,transparent)
}

.app-breadcrumbs--d:after {
background: linear-gradient(270deg,#061426 0,transparent)
}

.app-button i:first-child {
margin-right: .5rem
}

.app-button i:last-child {
margin-left: .5rem
}

i[data-v-0e010622]:before {
margin: 0;
font-size: inherit
}

i.success[data-v-0e010622] {
color: #ffdfa0
}

i.error[data-v-0e010622] {
color: #ffdfa0
}

i.spin[data-v-0e010622] {
display: inline-block;
-webkit-animation: spin-data-v-0e010622 2s linear infinite;
animation: spin-data-v-0e010622 2s linear infinite
}

i.icon--xs[data-v-0e010622] {
font-size: .75em
}

i.icon--sm[data-v-0e010622] {
font-size: .875em
}

i.icon--md[data-v-0e010622] {
font-size: inherit
}

i.icon--lg[data-v-0e010622] {
font-size: 1.33333em
}

i.icon--2x[data-v-0e010622] {
font-size: 2em
}

i.icon--2-5x[data-v-0e010622] {
font-size: 2.5em
}

i.icon--3x[data-v-0e010622] {
font-size: 3em
}

i.icon--4x[data-v-0e010622] {
font-size: 4em
}

@-webkit-keyframes spin-data-v-0e010622 {
0% {
transform: rotate(0deg)
}

to {
transform: rotate(1turn)
}
}

@keyframes spin-data-v-0e010622 {
0% {
transform: rotate(0deg)
}

to {
transform: rotate(1turn)
}
}

.container {
padding: 0 .5rem;
height: 100%;
min-height: 100%
}

@media(min-height: 550px) {
.container {
height:100%;
min-height: 100%
}
}

@media(min-width: 1024px) {
.container {
padding:0 1rem;
margin: 0 auto;
max-width: 1200px
}
}

.home__teaser {
display: grid;
grid-gap: .5rem;
padding: .5rem 0;
grid-template-columns: repeat(3,minmax(0,1fr))
}

.home__dewafortune {
position: relative;
grid-column: 1/-1;
border-color: #fff
}

.home__dewafortune img {
position: absolute;
top: 0;
left: 0;
width: 2rem;
transform: translateY(-15%)
}

.home .running-text {
left: -.5rem;
width: calc(100% + 1rem)
}

.home--columns-2 {
grid-column: span 4
}

.home--columns-1 {
grid-column: span 2
}

.home .card {
margin-top: -20px;
padding-bottom: calc(1rem + 20px)
}

.home .card:first-of-type {
margin-top: 0
}

.home .card:last-of-type {
padding-bottom: 1rem
}

.home--d {
display: grid;
grid-gap: .5rem;
grid-template-columns: repeat(6,minmax(0,1fr))
}

.home--d .home__teaser {
padding: 0
}

.home--d .home--full-width {
grid-column: 1/-1
}

.home--d .home-carousel {
grid-column: 1/5;
overflow: hidden;
border-radius: 5px;
width: 100%;
transform: translateX(0);
padding-bottom: 35%
}

.home--d .idn-carousel {
grid-row: span 2
}

.home--d .home__teaser {
grid-column: 1/5
}

.home--d .card {
margin-top: 0;
padding-bottom: 1rem;
border-radius: 5px
}

.home--d .card:first-of-type {
margin-top: unset
}

.home--d .card--arcade-carousel,.home--d .card--slot-carousel {
padding: .25rem 1rem
}

.home--d .card.card--arcade-carousel {
grid-row: 6/7
}

.home--d .arcade-showcase {
grid-row: 7/8
}

.home-carousel {
height: 0;
overflow: hidden;
background-color: #061426;
width: calc(100% + 1rem);
transform: translateX(-.5rem);
padding-bottom: calc(35% + .35rem)
}

.home-carousel .slick-slider {
position: absolute!important;
top: 0;
left: 0;
width: 100%;
height: 100%
}

.home-carousel .slick-slider .slick-dots {
bottom: 0;
display: flex!important;
display: flex;
align-items: center;
justify-content: center
}

.home-carousel .slick-slider .slick-dots li {
width: 1rem;
height: .75rem;
margin: 0 1px;
display: flex;
align-items: center;
justify-content: center
}

.home-carousel .slick-slider .slick-dots li button {
width: 1rem;
height: .75rem
}

.home-carousel .slick-slider .slick-dots li button:before {
width: 1rem;
height: .75rem;
opacity: .5;
font-size: .5rem;
line-height: normal;
color: #fff
}

.home-carousel .slick-slider .slick-dots li.slick-active button:before {
opacity: 1
}

.home-carousel .slick-slider .slick-slide {
height: unset!important
}

.home-carousel .slick-slider .slide {
display: block;
width: 100%;
height: 100%;
-o-object-fit: cover;
object-fit: cover;
pointer-events: none
}

i[data-v-1272be00] {
margin-right: .5rem
}

.running-text {
position: relative;
display: flex;
align-items: center;
font-size: .875rem;
padding: .5rem 0 .5rem 1rem
}

.running-text marquee {
margin-left: .5rem
}

.running-text:after,.running-text:before {
position: absolute;
top: 0;
width: 50px;
height: 100%;
content: "";
z-index: 2;
pointer-events: none
}

.running-text:before {
left: 2rem
}

.running-text:after {
right: 0
}

.running-text--light {
background-color: #102640
}

.running-text--light:before {
background: linear-gradient(90deg,#102640 0,rgba(41,50,60,0))
}

.running-text--light:after {
background: linear-gradient(270deg,#102640 0,rgba(41,50,60,0))
}

.running-text--primary {
background-color: var(--theme-color)
}

.running-text--primary:before {
background: linear-gradient(90deg,var(--theme-color) 0,rgba(23,30,38,0))
}

.running-text--primary:after {
background: linear-gradient(270deg,var(--theme-color) 0,rgba(23,30,38,0))
}

.running-text--d {
overflow: hidden;
margin-bottom: .5rem;
border-radius: 5px
}

.app-menu[data-v-9cfb8622] {
position: relative;
left: -.5rem;
z-index: 1;
overflow: hidden;
width: calc(100% + 1rem)
}

.app-menu--primary[data-v-9cfb8622] {
background-color: var(--theme-color)
}

.app-menu--dark[data-v-9cfb8622] {
background-color: #061426
}

.app-menu[data-v-9cfb8622]:after,.app-menu[data-v-9cfb8622]:before {
position: absolute;
top: 0;
opacity: 0;
z-index: 2;
content: "";
width: 50px;
pointer-events: none;
height: calc(100% + 20px);
transition: opacity .2s ease
}

.app-menu[data-v-9cfb8622]:before {
left: 0;
background: linear-gradient(90deg,#061426 0,rgba(16,19,23,0))
}

.app-menu[data-v-9cfb8622]:after {
right: 0;
background: linear-gradient(270deg,#061426 0,rgba(16,19,23,0))
}

.app-menu--shadow-end[data-v-9cfb8622]:after,.app-menu--shadow-start[data-v-9cfb8622]:before {
opacity: 1
}

.app-menu ul[data-v-9cfb8622] {
display: flex;
align-items: center;
overflow: hidden;
overflow-x: scroll;
overflow-x: overlay;
scroll-behavior: smooth;
-ms-scroll-snap-type: x mandatory;
scroll-snap-type: x mandatory;
scrollbar-width: none;
-ms-overflow-style: none
}

.app-menu ul[data-v-9cfb8622]::-webkit-scrollbar {
display: none
}

.app-menu ul li[data-v-9cfb8622] {
scroll-snap-align: start
}

.app-menu ul .app-menu__observer[data-v-9cfb8622] {
display: block;
width: 1px;
height: 1px;
flex-shrink: 0
}

.app-menu ul .app-menu__item[data-v-9cfb8622] {
flex: 0 0 20%;
padding: 0 .25rem
}

.app-menu ul .app-menu__item a[data-v-9cfb8622] {
position: relative;
font-size: .75rem;
font-weight: 700;
padding: 1rem 0;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center
}

.app-menu ul .app-menu__item a span[data-v-9cfb8622] {
display: block;
margin-top: .5rem
}

.app-menu ul .app-menu__item a .app-menu--active[data-v-9cfb8622] {
position: absolute;
bottom: -1rem
}

.app-menu ul .app-menu__item a.app-link--active[data-v-9cfb8622] {
color: var(--theme-color)
}

.app-menu ul .app-menu__item a.app-link--active .app-menu--active[data-v-9cfb8622] {
bottom: 0
}

.app-menu ul .app-menu__item--font-large a[data-v-9cfb8622] {
font-size: .875rem
}

.app-menu ul .app-menu__item--font-large a .app-menu--active[data-v-9cfb8622] {
bottom: -1.25rem
}

@media(min-width: 640px) {
.app-menu ul[data-v-9cfb8622] {
justify-content:space-evenly
}

.app-menu ul .app-menu__item[data-v-9cfb8622] {
flex: unset
}
}

.app-menu--d[data-v-9cfb8622] {
width: 100%;
left: unset;
margin-top: -.5rem
}

.app-menu--d ul[data-v-9cfb8622] {
display: flex;
align-items: center;
justify-content: center
}

.app-menu--d ul .app-menu__item[data-v-9cfb8622] {
margin: 0 1rem
}

.brand-icon {
display: block
}

.brand-icon--xs {
width: 1.5rem;
height: 1.5rem
}

.brand-icon--sm {
width: 2rem;
height: 2rem
}

.brand-icon--md {
width: 2.5rem;
height: 2.5rem
}

.brand-icon--lg {
width: 5rem;
height: 5rem
}

.brand-icon--xl {
width: 10rem;
height: 10rem
}

.brand-icon--xxl {
width: 15rem;
height: 15rem
}

.brand-icon--responsive {
width: 100%;
height: 100%;
-o-object-fit: contain;
object-fit: contain
}

.brand-icon--landscape {
width: 100%;
max-width: 10rem
}

.card {
position: relative;
z-index: 2;
left: -.5rem;
overflow: hidden;
padding-bottom: 1rem;
width: calc(100% + 1rem);
border-radius: 20px 20px 0 0
}

@media(min-width: 1024px) {
.card {
width:100%;
left: 0
}
}

.card--light {
background-color: #102640
}

.card--primary {
background-color: var(--theme-color)
}

.card.card--primary .card__see-all {
background-color: #102640
}

.card .card__see-all {
font-weight: 700;
font-size: .75rem;
padding: .2rem .75rem;
background-color: #061426;
border-radius: 10px
}

.card__title a {
display: flex;
align-items: center;
font-size: .875rem;
font-weight: 700
}

.card__title a img,.card__title a object,.card__title a svg {
margin-right: .5rem
}

.card__image {
display: block;
width: 100%;
border-radius: 5px
}

.card__body {
max-width: 100%
}

.card--full {
display: grid;
align-items: center;
grid-template-rows: auto 1fr auto
}

.card--full .card__header {
padding: 1rem;
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-between
}

.card--full .card__title {
margin-bottom: 0
}

.card--full .card__cta {
padding: .5rem 1rem 0
}

@media(min-width: 1024px) {
.card--full .card__cta {
width:100%;
max-width: 20rem;
justify-self: center
}

.card--full .card__header {
padding: 0
}
}

.card--inline {
display: grid;
grid-gap: 1rem;
padding: 0 1rem;
border-radius: 0;
align-items: center;
grid-template-columns: repeat(6,minmax(0,1fr))
}

.card--inline .card__title {
justify-self: start;
padding: 1rem 0
}

.card--inline .card__body {
grid-column: span 4
}

.card--inline .card__see-all {
grid-column: 6/7;
justify-self: center
}

.card--split {
display: grid;
padding: 0 1rem;
grid-gap: .75rem;
grid-template-columns: repeat(2,minmax(0,1fr))
}

.card--split .card__title {
padding: 1rem 0
}

.card--split .card__cta {
margin-top: .5rem
}

.card--d.card--full .card__header {
padding: 1rem
}

.card--d.card--full .card__body {
padding: 0 1rem
}

.slot-carousel__group[data-v-60fb8dfc] {
width: 100%;
display: grid;
flex-shrink: 0;
align-content: start;
grid-auto-flow: column;
grid-template-rows: repeat(3,minmax(0,1fr));
grid-template-columns: repeat(5,minmax(0,1fr))
}

.slot-carousel__item-container[data-v-60fb8dfc] {
display: grid;
grid-template-rows: repeat(2,minmax(0,1fr))
}

.slot-carousel__item[data-v-60fb8dfc] {
position: relative;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center
}

.slot-carousel__item span[data-v-60fb8dfc] {
width: 100%;
font-weight: 500;
text-align: center;
font-size: .625rem;
margin-top: .125rem;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis
}

@media(min-width: 1024px) {
.slot-carousel__item span[data-v-60fb8dfc] {
font-size:.75rem
}
}

.slot-carousel__item.app-link--exact-active[data-v-60fb8dfc] {
color: var(--theme-color)
}

.slot-carousel__item.app-link--exact-active .slot-carousel__img-container[data-v-60fb8dfc] {
border: 1px solid var(--theme-color)
}

.slot-carousel__img-container[data-v-60fb8dfc] {
position: relative;
width: 3.5rem;
height: 3.5rem;
display: flex;
align-items: center;
justify-content: center;
background-color: #061426;
border-radius: 50%;
border: 1px solid #061426
}

.slot-carousel__img-container img[data-v-60fb8dfc] {
width: 100%
}

.slot-carousel__img-container[data-v-60fb8dfc]:before {
position: absolute;
bottom: 0;
left: 0;
width: 100%;
height: 30%
}

.slot-carousel__img-container.provider--promo[data-v-60fb8dfc]:before {
content: "";
filter: drop-shadow(.1rem .1rem .1rem #061426);
background: 0 100%/contain no-repeat url(https://cdn-proxy.globalcontentcloud.com/common/default/ribbons/provider-promo.svg)
}

.slot-carousel__img-container.provider--new[data-v-60fb8dfc]:before {
content: "";
filter: drop-shadow(.1rem .1rem .1rem #061426);
background: 0 100%/contain no-repeat url(https://cdn-proxy.globalcontentcloud.com/common/default/ribbons/provider-new.svg)
}

.slot-carousel__maintenance[data-v-60fb8dfc] {
position: absolute;
top: 0;
right: -20%;
width: 1.5rem;
height: 1.5rem;
padding: .1rem;
display: flex;
align-items: center;
justify-content: center;
background-color: var(--theme-color);
border-radius: 50%
}

.slot-carousel__maintenance i[data-v-60fb8dfc] {
color: #ffdfa0
}

.slot-carousel__by-habanero[data-v-60fb8dfc],.slot-carousel__by-pragmatic[data-v-60fb8dfc] {
position: absolute;
right: -22%;
bottom: -5px;
width: 2rem;
height: 2rem
}

.slot-carousel__by-habanero img[data-v-60fb8dfc],.slot-carousel__by-pragmatic img[data-v-60fb8dfc] {
display: block;
width: 100%;
height: 100%;
-o-object-fit: contain;
object-fit: contain;
filter: drop-shadow(0 0 .2rem #061426)
}

.slot-carousel--d .slot-carousel__group[data-v-60fb8dfc] {
grid-template-rows: unset;
grid-template-columns: repeat(8,minmax(0,1fr))
}

.slot-carousel--d .slot-carousel__group--ud .slot-carousel__item[data-v-60fb8dfc]:nth-child(2n) {
grid-row: unset
}

.carousel[data-v-4f72f8a2] {
display: grid;
overflow: hidden;
grid-template-columns: auto 1fr auto
}

.carousel[data-v-4f72f8a2],.carousel__control[data-v-4f72f8a2] {
position: relative;
align-items: center
}

.carousel__control[data-v-4f72f8a2] {
display: flex;
width: 1.5rem;
height: 4rem;
cursor: pointer;
color: var(--theme-color);
z-index: 2
}

.carousel__control i[data-v-4f72f8a2] {
z-index: 2
}

.carousel__control.highlight[data-v-4f72f8a2]:before {
position: absolute;
color: #061426;
font-size: 3.5rem;
content: "";
font-family: "idn"
}

.carousel__control--disabled[data-v-4f72f8a2] {
pointer-events: none;
color: hsla(0,0%,100%,.38)
}

.carousel__prev[data-v-4f72f8a2] {
padding-left: .25rem
}

.carousel__prev[data-v-4f72f8a2]:before {
left: 0
}

.carousel__next[data-v-4f72f8a2] {
padding-right: .25rem;
justify-content: flex-end
}

.carousel__next[data-v-4f72f8a2]:before {
right: 0;
transform: rotate(180deg)
}

.carousel__inner[data-v-4f72f8a2] {
overflow: hidden
}

.carousel__container[data-v-4f72f8a2] {
display: flex
}

.carousel__container.transition[data-v-4f72f8a2] {
transition: transform .3s ease-out
}

.carousel--d .carousel__control[data-v-4f72f8a2] {
width: auto;
height: 2rem
}

.casino-carousel ul {
display: flex;
overflow: hidden;
overflow-x: scroll;
overflow-x: overlay;
scroll-behavior: smooth;
-ms-scroll-snap-type: x mandatory;
scroll-snap-type: x mandatory;
scrollbar-width: none;
-ms-overflow-style: none
}

.casino-carousel ul::-webkit-scrollbar {
display: none
}

.casino-carousel__item {
position: relative;
flex: 0 0 28%;
display: flex;
align-items: flex-end;
overflow: hidden;
margin-right: .5rem;
scroll-snap-align: center;
border-radius: 5px;
background-color: var(--theme-color)
}

.casino-carousel__item:nth-last-child(2) {
margin-right: 0
}

.casino-carousel__fill {
width: 1rem;
height: 10px;
flex-shrink: 0
}

.casino-game[data-v-223f59df] {
position: relative;
overflow: hidden;
border-radius: 5px
}

.casino-game--maintenance[data-v-223f59df] {
pointer-events: none
}

.casino-game a[data-v-223f59df] {
cursor: pointer;
position: relative;
width: 100%
}

.casino-game a .casino-game__container[data-v-223f59df] {
position: relative;
height: 0;
padding-bottom: 162.03209%;
display: flex;
align-items: flex-end;
overflow: hidden;
border-radius: 5px
}

.casino-game a .casino-game__container[data-v-223f59df]:before {
position: absolute;
left: 0;
top: 0;
z-index: 2;
content: "";
width: 100%;
height: 100%;
pointer-events: none;
border-radius: 5px;
border: 2px solid #102640
}

.casino-game a .casino-game__container[data-v-223f59df]:after {
position: absolute;
left: 0;
bottom: 0;
width: 100%;
height: 50%;
content: "";
background: linear-gradient(0deg,#061426,transparent 30%,transparent)
}

.casino-game a .casino-game__container>img[data-v-223f59df] {
position: absolute;
width: 100%;
left: 0;
bottom: 0;
opacity: 1;
will-change: opacity;
transition: opacity .2s ease
}

.casino-game a .casino-game__container>img.placeholder[data-v-223f59df] {
height: 100%;
-o-object-fit: contain;
object-fit: contain
}

.casino-game a .casino-game__maintenance[data-v-223f59df] {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 2;
padding: .5rem;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
background-color: rgba(23,30,38,.8)
}

.casino-game a .casino-game__maintenance span[data-v-223f59df] {
font-size: .75rem;
text-align: center;
font-weight: 500;
margin-top: .25rem
}

.casino-game a .casino-game__maintenance img[data-v-223f59df] {
position: relative
}

.casino-game--history-view[data-v-223f59df] {
display: grid;
grid-gap: 1rem;
align-items: center;
grid-template-columns: 2fr 3fr
}

@media(min-width: 1024px) {
.casino-game--history-view[data-v-223f59df] {
grid-template-columns:1fr 5fr
}
}

.casino-game--dark a>.casino-game__container[data-v-223f59df]:before {
border-color: #061426
}

.casino-game--promo a>.casino-game__container[data-v-223f59df]:before {
border: 2px solid #ffdfa0
}

.casino-game--promo[data-v-223f59df]:not(.casino-game--history-view):after {
position: absolute;
right: 0;
bottom: -1px;
z-index: 3;
content: attr(data-flag);
text-transform: uppercase;
font-weight: 700;
font-style: italic;
font-size: .5rem;
padding: .25rem .5rem;
background: 50%/contain no-repeat url(https://cdn-proxy.globalcontentcloud.com/common/default/ribbons/promo.svg)
}

.casino-game--new a .casino-game__container[data-v-223f59df]:before {
border: 2px solid #ffdfa0
}

.casino-game--new[data-v-223f59df]:not(.casino-game--history-view):after {
position: absolute;
right: 0;
bottom: -1px;
z-index: 3;
min-width: 3rem;
content: attr(data-flag);
text-transform: uppercase;
font-weight: 700;
font-style: italic;
font-size: .5rem;
text-align: center;
padding: .25rem .5rem;
background: 50%/contain no-repeat url(https://cdn-proxy.globalcontentcloud.com/common/default/ribbons/new.svg)
}

.casino-game--special a .casino-game__container[data-v-223f59df]:before {
border: 2px solid var(--theme-color)
}

.casino-game--special[data-v-223f59df]:not(.casino-game--history-view):after {
position: absolute;
right: 0;
top: -1px;
z-index: 3;
content: attr(data-flag);
text-transform: uppercase;
font-weight: 700;
font-style: italic;
font-size: .5rem;
padding: .25rem .5rem;
background: 50%/contain no-repeat url(https://cdn-proxy.globalcontentcloud.com/58/dist/img/special.b3be628.svg)
}

.casino-game.casino-game--new.casino-game--special a .casino-game__container[data-v-223f59df]:before {
border-color: #f6004d
}

.casino-game.casino-game--new.casino-game--special[data-v-223f59df]:not(.casino-game--history-view):after {
position: absolute;
right: 0;
top: -1px;
bottom: unset;
z-index: 3;
color: #fff;
content: attr(data-flag);
text-transform: uppercase;
font-weight: 700;
font-style: italic;
font-size: .5rem;
padding: .25rem .5rem;
background: 50%/contain no-repeat url(https://cdn-proxy.globalcontentcloud.com/common/default/ribbons/special-alt.svg)
}

.casino-game__provider[data-v-223f59df] {
display: block;
left: 0;
bottom: 0;
padding: .25rem .375rem
}

.casino-game__name[data-v-223f59df],.casino-game__provider[data-v-223f59df] {
position: absolute;
width: 100%;
font-weight: 700;
font-size: .5rem;
color: #fff
}

.casino-game__name[data-v-223f59df] {
display: none;
top: 2rem;
z-index: 2;
padding: 0 .5rem;
text-align: center
}

.casino-game__count[data-v-223f59df] {
min-width: 1.5rem;
font-weight: 700;
font-size: .5rem;
padding: 1px;
text-align: center;
color: #fff;
border-radius: 5px;
background-color: #061426;
border: 2px solid #102640;
border-top: 4px solid #102640
}

.casino-game__count[data-v-223f59df],.casino-game__language[data-v-223f59df] {
position: absolute;
z-index: 4;
top: .25rem;
left: .25rem
}

.casino-game__language[data-v-223f59df] {
width: 1rem;
height: 1rem;
border-radius: 50%
}

.casino-game__language img[data-v-223f59df] {
display: block;
width: 100%;
height: 100%
}

.casino-game__skeleton[data-v-223f59df] {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
overflow: hidden;
background-color: var(--theme-color)
}

.casino-game__skeleton[data-v-223f59df]:before {
content: "";
display: block;
position: absolute;
left: -150px;
top: 0;
height: 100%;
width: 100%;
-webkit-animation: skeleton 1s cubic-bezier(.4,0,.2,1) infinite;
animation: skeleton 1s cubic-bezier(.4,0,.2,1) infinite;
background: linear-gradient(90deg,transparent 0,#102640 50%,transparent)
}

.casino-game__placeholder[data-v-223f59df] {
position: absolute;
top: 0;
left: 0;
opacity: 0;
height: 100%;
width: 100%;
display: flex;
align-items: center;
justify-content: center;
padding: .5rem;
background-color: var(--theme-color);
will-change: opacity;
transition: opacity .2s ease
}

.casino-game__placeholder img[data-v-223f59df] {
display: block;
width: 3.5rem;
height: 3.5rem;
-o-object-fit: contain;
object-fit: contain
}

@media(min-width: 1024px) {
.casino-game__placeholder img[data-v-223f59df] {
width:4rem;
height: 4rem
}
}

.casino-game__history[data-v-223f59df] {
display: grid;
grid-gap: .5rem;
grid-template-columns: repeat(2,minmax(0,1fr))
}

.casino-game__history>a[data-v-223f59df] {
cursor: pointer
}

.casino-game__history h5[data-v-223f59df] {
grid-row: 1/2;
grid-column: 1/-1;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis
}

.casino-game__history p[data-v-223f59df] {
grid-column: 1/2;
font-size: .75rem
}

.casino-game__history a[data-v-223f59df] {
grid-row: 2/5;
grid-column: 2/3;
align-self: end
}

@media(min-width: 1024px) {
.casino-game__history h5[data-v-223f59df] {
grid-column:1/2
}

.casino-game__history a[data-v-223f59df] {
grid-row: 1/5;
justify-self: end;
align-self: center
}
}

.casino-game--d.casino-game--new[data-v-223f59df]:after,.casino-game--d.casino-game--promo[data-v-223f59df]:after {
bottom: -2px;
min-width: 80px;
font-size: .75rem;
padding: .375rem .75rem
}

.casino-game--d.casino-game--special[data-v-223f59df]:after {
top: -2px;
min-width: 80px;
font-size: .75rem;
text-align: center;
padding: .375rem .75rem
}

.casino-game--d .casino-game__name[data-v-223f59df],.casino-game--d .casino-game__provider[data-v-223f59df] {
font-size: .675rem
}

.casino-game--d .casino-game__count[data-v-223f59df] {
top: .5rem;
left: .5rem;
min-width: 2rem;
padding: .125rem;
font-size: .75rem
}

.casino-game--d .casino-game__language[data-v-223f59df] {
top: .5rem;
left: .5rem;
width: 1.5rem;
height: 1.5rem
}

.casino-game.casino-game--d.casino-game--special.casino-game--new[data-v-223f59df]:after {
top: -2px;
font-size: .75rem;
padding: .375rem .75rem
}

.arcade-carousel--light .carousel__control.highlight:before {
color: #102640
}

.arcade-carousel ul[data-v-3615b381] {
display: grid;
width: 100%;
flex-shrink: 0;
align-content: start;
grid-auto-flow: column;
grid-auto-columns: 20%
}

.arcade-carousel__item[data-v-3615b381] {
position: relative;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center
}

.arcade-carousel__item span[data-v-3615b381] {
width: 100%;
font-weight: 500;
text-align: center;
font-size: .625rem;
margin-top: .125rem;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis
}

@media(min-width: 1024px) {
.arcade-carousel__item span[data-v-3615b381] {
font-size:.75rem
}
}

.arcade-carousel__item.app-link--exact-active[data-v-3615b381] {
color: var(--theme-color)
}

.arcade-carousel__item.app-link--exact-active .arcade-carousel__img-container[data-v-3615b381] {
border: 1px solid var(--theme-color)
}

.arcade-carousel__img-container[data-v-3615b381] {
position: relative;
width: 3.5rem;
height: 3.5rem;
display: flex;
align-items: center;
justify-content: center;
border-radius: 50%
}

.arcade-carousel__img-container img[data-v-3615b381] {
width: 100%
}

.arcade-carousel__img-container[data-v-3615b381]:before {
position: absolute;
bottom: 0;
left: 0;
width: 100%;
height: 30%
}

.arcade-carousel__img-container.provider--promo[data-v-3615b381]:before {
content: "";
filter: drop-shadow(.1rem .1rem .1rem #061426);
background: 0 100%/contain no-repeat url(https://cdn-proxy.globalcontentcloud.com/common/default/ribbons/provider-promo.svg)
}

.arcade-carousel__img-container.provider--new[data-v-3615b381]:before {
content: "";
filter: drop-shadow(.1rem .1rem .1rem #061426);
background: 0 100%/contain no-repeat url(https://cdn-proxy.globalcontentcloud.com/common/default/ribbons/provider-new.svg)
}

.arcade-carousel__maintenance[data-v-3615b381] {
position: absolute;
top: 0;
right: -20%;
width: 1.5rem;
height: 1.5rem;
padding: .1rem;
display: flex;
align-items: center;
justify-content: center;
background-color: var(--theme-color);
border-radius: 50%
}

.arcade-carousel__maintenance i[data-v-3615b381] {
color: #ffdfa0
}

.arcade-carousel__by-idn[data-v-3615b381] {
position: absolute;
right: -2px;
bottom: -2px;
width: 1.25rem;
height: 1.25rem;
background-color: #fff;
border-radius: 50%
}

.arcade-carousel__by-idn img[data-v-3615b381] {
position: relative;
left: 1.5px;
display: block;
width: 100%;
height: 100%;
-o-object-fit: contain;
object-fit: contain
}

.arcade-carousel--dark .arcade-carousel__img-container[data-v-3615b381] {
background-color: #061426;
border: 1px solid #061426
}

.arcade-carousel--light .carousel__control.highlight[data-v-3615b381]:before {
color: #102640
}

.arcade-carousel--light .arcade-carousel__img-container[data-v-3615b381] {
background-color: #102640;
border: 1px solid #102640
}

.arcade-carousel--d ul[data-v-3615b381] {
grid-auto-columns: 12.5%
}

.footer-banner {
padding: .5rem;
background-color: var(--theme-color);
border-top: 1px solid hsla(0,0%,100%,.1)
}

.footer-banner a {
overflow: hidden;
height: 100%;
max-height: 8rem
}

.footer-banner img {
display: block;
width: 100%;
height: 100%;
-o-object-fit: contain;
object-fit: contain
}

.footer-banner--d {
margin-bottom: -.5rem
}

.footer-text[data-v-bd310b88] {
font-size: .75rem;
background-color: var(--theme-color);
border-top: 1px solid hsla(0,0%,100%,.1)
}

.footer-text__container[data-v-bd310b88] {
position: relative;
display: flex;
justify-content: center;
margin: 0 auto;
max-height: 8rem;
padding: 1rem 1rem 2rem;
max-width: 1200px;
transition: max-height .2s ease;
border-bottom: 1px solid hsla(0,0%,100%,.1)
}

.footer-text article[data-v-bd310b88] {
position: relative;
width: 100%;
overflow: hidden
}

.footer-text article[data-v-bd310b88]:after {
position: absolute;
bottom: 0;
content: "";
width: 100%;
height: 24px;
background: linear-gradient(0deg,var(--theme-color),rgba(23,30,38,0))
}

.footer-text button[data-v-bd310b88] {
position: absolute;
bottom: .5rem;
color: var(--theme-color);
font-size: .75rem
}

.footer-text--collapsed[data-v-bd310b88] {
max-height: 1000px
}

.footer-text--collapsed article[data-v-bd310b88]:after {
content: unset
}

.footer-text--d .footer-text__container[data-v-bd310b88] {
max-height: 8rem
}

.footer-text--d .footer-text--collapsed[data-v-bd310b88] {
max-height: 1000px
}

.app-footer {
position: relative;
padding: 1rem 0;
color: #fff;
background-color: var(--theme-color);
margin-bottom: calc(60px + env(safe-area-inset-bottom))
}

.app-footer__container {
margin: 0 auto;
padding: 0 1rem;
max-width: 1200px
}

.app-footer section {
margin-bottom: 1rem;
padding-bottom: 1rem;
border-bottom: 1px solid hsla(0,0%,100%,.1)
}

.app-footer section h5 {
margin-bottom: .75rem
}

.app-footer__links {
display: grid;
grid-row-gap: 1rem;
grid-template-columns: repeat(2,minmax(0,1fr))
}

.app-footer__link-group a,.app-footer__link-group button {
color: hsla(0,0%,100%,.6);
font-size: .75rem
}

.app-footer__link-group[data-type=legal] li:last-child a:after {
content: "";
font-family: idn
}

.app-footer__link-group[data-type=brand] li:last-child a:after,.app-footer__link-group[data-type=brand] li:last-child button:after {
content: "";
font-family: idn;
margin-left: .25rem
}

.app-footer__link-group--social ul {
display: flex
}

.app-footer__link-group--social ul li {
margin-right: .75rem
}

.app-footer__link-group--social ul li:last-child {
margin-right: 0
}

.app-footer section.app-footer__text {
position: relative;
display: flex;
justify-content: center;
padding-bottom: 2rem;
box-sizing: content-box;
transition: max-height .2s ease
}

.app-footer section.app-footer__text article {
position: relative;
overflow: hidden
}

.app-footer section.app-footer__text article p {
margin: .5rem 0;
font-size: .75rem;
color: hsla(0,0%,100%,.6)
}

.app-footer section.app-footer__text article p:last-child {
margin-bottom: 0
}

.app-footer section.app-footer__text article ol,.app-footer section.app-footer__text article ul {
list-style-position: inside
}

.app-footer section.app-footer__text article:after {
position: absolute;
bottom: 0;
content: "";
width: 100%;
height: 24px;
background: linear-gradient(0deg,var(--theme-color),rgba(23,30,38,0))
}

.app-footer section.app-footer__text button {
position: absolute;
bottom: .5rem;
color: var(--theme-color);
font-size: .75rem
}

.app-footer section.app-footer__text--collapsed {
padding-bottom: calc(.5rem + 24px)
}

.app-footer section.app-footer__text--collapsed article:after {
content: unset
}

.app-footer__idn h5 {
color: var(--theme-color);
text-align: center;
margin-bottom: 1rem
}

.app-footer__idn ul,.app-footer__idn ul a {
display: flex;
align-items: center;
justify-content: center
}

.app-footer__idn ul a {
padding: .5rem
}

.app-footer__idn ul a img {
height: 1rem
}

.app-footer__partners h5 {
color: var(--theme-color);
text-align: center;
margin-bottom: 1rem
}

.app-footer__partners ul {
display: grid;
grid-template-columns: repeat(auto-fit,minmax(5rem,1fr))
}

.app-footer__partners ul li {
flex-grow: 1;
min-width: 15%;
align-items: center
}

.app-footer__partners ul li a {
padding: .5rem;
font-size: .75rem;
white-space: nowrap;
color: hsla(0,0%,100%,.6);
display: flex;
flex-direction: column;
align-items: center;
justify-content: center
}

.app-footer__partners ul li a i {
color: var(--theme-color);
margin-bottom: .25rem
}

.app-footer__payment h5 {
color: var(--theme-color);
text-align: center;
margin-bottom: 1rem
}

.app-footer__payment ul {
display: grid;
grid-gap: .25rem;
grid-auto-rows: 2.5rem;
grid-auto-flow: dense;
grid-template-columns: repeat(6,minmax(0,1fr))
}

.app-footer__payment ul li {
display: flex;
align-items: center;
justify-content: center;
padding: .5rem;
overflow: hidden;
border-radius: 5px;
border: 1px solid #102640
}

.app-footer__payment ul li.bank-logo--h {
grid-column: span 2
}

.app-footer__payment ul li img {
width: 100%;
height: 100%;
-o-object-fit: contain;
object-fit: contain
}

.app-footer__licence img {
width: 100%;
max-height: 22px;
-o-object-fit: contain;
object-fit: contain
}

.app-footer__copyright {
font-size: .75rem;
text-align: center
}

.app-footer--d {
margin-bottom: 0;
margin-top: -.5rem
}

.app-footer--d .app-footer__links {
grid-template-columns: repeat(4,minmax(0,1fr))
}

.app-footer--d .app-footer__link-group--social {
justify-self: end
}

.app-footer--d .app-footer__idn h5 {
text-align: left
}

.app-footer--d .app-footer__idn ul {
justify-content: space-evenly
}

.app-footer--d .app-footer__idn ul img {
width: auto;
height: 2rem
}

.app-footer--d .app-footer__idn ul a:hover img {
filter: grayscale(1)
}

.app-footer--d .app-footer__partners h5,.app-footer--d .app-footer__payment h5 {
text-align: left;
margin-bottom: .5rem
}

.app-footer--d .app-footer__payment ul {
grid-template-columns: repeat(auto-fit,minmax(4rem,1fr))
}

.sticky-footer {
position: relative;
width: 100%;
bottom: 0;
z-index: 99;
background-color: #061426;
border-top: 1px solid #102640;
padding-bottom: env(safe-area-inset-bottom);
height: calc(60px + env(safe-area-inset-bottom))
}

@media(min-height: 550px) {
.sticky-footer {
position:fixed
}
}

.sticky-footer__nav>ul {
display: grid;
grid-template-columns: repeat(5,minmax(0,1fr))
}

.sticky-footer__nav>ul .btn {
width: 100%;
border-radius: 0;
font-weight: 700;
font-size: .75rem;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
height: 60px
}

.sticky-footer__nav>ul .btn span {
margin-top: .25rem
}

.sticky-footer__nav>ul .btn.app-link--active {
color: var(--theme-color)
}

.sticky-footer__nav--user>ul {
grid-template-columns: repeat(6,minmax(0,1fr))
}

.sticky-footer__balance {
overflow: hidden;
font-weight: 500;
font-size: .75rem;
padding: 0 .25rem;
color: #fff;
grid-column: span 2;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
background-color: var(--theme-color)
}

.sticky-footer__balance span {
max-width: 100%;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis
}

.sticky-footer__balance .sticky-footer__username {
width: 100%;
font-weight: 700;
margin-top: .25rem;
display: flex;
align-items: center;
justify-content: center
}

.sticky-footer__balance .sticky-footer__username i {
margin-right: .25rem
}

.app-drawer__root[data-v-05d51de6] {
position: fixed;
pointer-events: none;
z-index: 999;
top: 90px;
right: 0;
bottom: 0;
left: 0
}

.app-drawer__backdrop[data-v-05d51de6] {
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0
}

.app-drawer__backdrop[data-v-05d51de6]:before {
position: relative;
top: 90px;
display: block;
content: "";
width: 100%;
height: calc(100% - 90px);
background-color: rgba(0,0,0,.5);
-webkit-tap-highlight-color: transparent
}

.app-drawer[data-v-05d51de6] {
position: absolute;
right: calc(-300px - 1rem);
width: 300px;
height: 100%;
overflow-y: auto;
overflow-y: overlay;
background-color: #102640;
transform: translateX(0);
transition: transform 225ms cubic-bezier(.4,0,.2,1) 0ms;
scrollbar-width: none;
-ms-overflow-style: none;
display: grid;
grid-template-columns: 100%;
grid-template-rows: auto 1fr auto
}

.app-drawer[data-v-05d51de6]::-webkit-scrollbar {
display: none
}

.app-drawer--open[data-v-05d51de6] {
pointer-events: all
}

.app-drawer--open .app-drawer[data-v-05d51de6] {
transform: translateX(calc(-300px - 1rem))
}

.drawer-fade-enter-active[data-v-05d51de6],.drawer-fade-leave-active[data-v-05d51de6] {
transition: opacity 225ms cubic-bezier(.4,0,.2,1) 0ms
}

.drawer-fade-enter[data-v-05d51de6],.drawer-fade-leave-to[data-v-05d51de6] {
opacity: 0
}

.app-drawer__header[data-v-05d51de6] {
background-color: #061426
}

.app-drawer__header ul[data-v-05d51de6] {
display: grid;
grid-gap: 1rem;
padding: 1rem;
grid-template-columns: repeat(4,minmax(0,1fr))
}

.app-drawer__header li[data-v-05d51de6] {
flex: 0 0 25%;
padding: .5rem
}

.app-drawer__header a[data-v-05d51de6] {
font-weight: 700;
font-size: .75rem;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center
}

.app-drawer__header a span[data-v-05d51de6] {
display: block;
margin-top: .5rem;
white-space: nowrap
}

.app-drawer__header a.app-link--active[data-v-05d51de6] {
color: var(--theme-color)
}

.app-drawer__nav__item .badge[data-v-05d51de6] {
height: unset;
padding: 0 .625rem
}

.app-drawer__nav__item a[data-v-05d51de6],.app-drawer__nav__item button[data-v-05d51de6] {
position: relative;
width: 100%;
display: flex;
align-items: center;
padding: 1rem 1rem 1rem .25rem;
font-weight: 700;
font-size: .875rem;
color: #fff
}

.app-drawer__nav__item a.app-link--exact-active[data-v-05d51de6],.app-drawer__nav__item button.app-link--exact-active[data-v-05d51de6] {
color: var(--theme-color);
background-color: rgba(13,191,187,.1)
}

.app-drawer__nav__item a>div[data-v-05d51de6],.app-drawer__nav__item button>div[data-v-05d51de6] {
position: absolute;
width: 3rem;
height: 100%;
display: flex;
align-items: center;
justify-content: center
}

.app-drawer__nav__item a i.dropdown-toggle[data-v-05d51de6],.app-drawer__nav__item button i.dropdown-toggle[data-v-05d51de6] {
margin-left: auto
}

.app-drawer__nav__item a span[data-v-05d51de6],.app-drawer__nav__item button span[data-v-05d51de6] {
margin-left: 3rem
}

@media(hover: hover)and (min-width:1024px) {
.app-drawer__nav__item a[data-v-05d51de6]:hover,.app-drawer__nav__item button[data-v-05d51de6]:hover {
color:var(--theme-color)
}
}

.app-drawer__nav__item__dropdown[data-v-05d51de6] {
overflow: hidden
}

.app-drawer__nav__item__dropdown.dropdown-collapsed[data-v-05d51de6] {
background-color: rgba(13,191,187,.1)
}

.app-drawer__nav__item__dropdown.dropdown-collapsed>button[data-v-05d51de6] {
color: var(--theme-color)
}

@media(hover: hover)and (min-width:1024px) {
.app-drawer__nav__item__dropdown:hover>button[data-v-05d51de6] {
color:var(--theme-color)
}
}

.app-drawer__nav__item__dropdown ul[data-v-05d51de6] {
background-color: rgba(0,0,0,.1);
transition: height .2s ease
}

.app-drawer__freespins ul[data-v-05d51de6] {
display: grid;
max-height: 0;
grid-gap: 1px;
overflow: hidden;
background-color: #102640;
transition: max-height .2s ease
}

.app-drawer__freespins ul.app-drawer__freespins--collapsed[data-v-05d51de6] {
max-height: 600px
}

.app-drawer__freespins ul li[data-v-05d51de6] {
display: grid;
padding: .5rem 1rem;
align-items: center;
grid-column-gap: .25rem;
grid-template-rows: auto auto;
grid-template-columns: auto 3.5rem 3rem;
background: linear-gradient(90deg,#102640 0,#061426)
}

.app-drawer__freespins ul li .game-name[data-v-05d51de6] {
font-weight: 700;
font-size: .875rem;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis
}

.app-drawer__freespins ul li .no-spins[data-v-05d51de6] {
font-weight: 700;
font-size: .75rem;
grid-column: span 3
}

.app-drawer__freespins ul li .fs-detail[data-v-05d51de6] {
display: grid;
font-size: .625rem
}

.app-drawer__freespins ul li .fs-detail span[data-v-05d51de6]:first-child {
font-weight: 600
}

.app-drawer__freespins ul li em[data-v-05d51de6] {
width: 100%;
grid-row: 1/3;
grid-column: 2/3;
font-weight: 900;
font-size: .75rem;
font-style: normal;
border-radius: 5px;
padding: .25rem .375rem
}

.app-drawer__freespins ul li a[data-v-05d51de6] {
display: flex;
align-items: center;
justify-content: center;
grid-row: 1/3;
grid-column: 3/4;
padding: .25rem .5rem;
font-size: .75rem;
font-weight: 700;
border-radius: 5px;
cursor: pointer
}

@media(hover: hover)and (min-width:1024px) {
.app-drawer__freespins ul li a[data-v-05d51de6]:hover {
color:#fff;
background-color: #a70b59
}
}

.app-drawer__freespins ul li.feature em[data-v-05d51de6] {
font-size: .5rem;
text-transform: uppercase
}

.app-drawer__extra[data-v-05d51de6] {
padding: 1rem;
display: grid;
grid-gap: 1rem;
grid-template-columns: repeat(2,minmax(0,1fr))
}

.app-drawer__extra .btn[data-v-05d51de6]:nth-child(3) {
grid-column: span 2
}

.app-drawer__locale[data-v-05d51de6] {
display: flex;
align-items: center;
justify-content: flex-end;
padding: 1rem;
font-size: .75rem;
font-weight: 500
}

.app-drawer__locale span[data-v-05d51de6] {
margin-right: .5rem
}

.app-drawer__locale ul[data-v-05d51de6] {
display: flex
}

.app-drawer__locale ul li[data-v-05d51de6]:first-child {
margin-right: .5rem
}

.app-drawer__locale ul li[data-v-05d51de6]:last-child {
margin-right: 0
}

.app-drawer__locale ul li a[data-v-05d51de6] {
position: relative
}

.app-drawer__locale ul li a img[data-v-05d51de6] {
width: 100%;
height: 100%
}

.app-drawer__locale ul li a.app-drawer__locale--active[data-v-05d51de6] {
border: 2px solid var(--theme-color)
}

.app-drawer--d.app-drawer__root[data-v-05d51de6] {
top: 55px;
right: 0;
bottom: 0;
left: 0
}

.app-drawer--d .app-drawer__backdrop[data-v-05d51de6]:before {
top: 55px;
height: calc(100% - 53px)
}

.app-drawer--d .app-drawer[data-v-05d51de6] {
right: unset;
left: calc(-300px - 1rem);
transform: translateX(0)
}

.app-drawer--d .app-drawer[data-v-05d51de6]::-webkit-scrollbar {
width: .25rem
}

.app-drawer--d .app-drawer[data-v-05d51de6]::-webkit-scrollbar-track {
border-radius: 20px;
background-color: #061426
}

.app-drawer--d .app-drawer[data-v-05d51de6]::-webkit-scrollbar-thumb {
border-radius: 20px;
background-color: #fff
}

.app-drawer--d.app-drawer--open .app-drawer[data-v-05d51de6] {
transform: translateX(calc(300px + 1rem))
}

.modal[data-v-a03670f8] {
position: fixed;
display: flex;
align-items: center;
justify-content: center;
z-index: 999
}

.modal[data-v-a03670f8],.modal__backdrop[data-v-a03670f8] {
top: 0;
right: 0;
bottom: 0;
left: 0
}

.modal__backdrop[data-v-a03670f8] {
position: absolute;
width: 100%;
height: 100%;
background-color: rgba(0,0,0,.8)
}

.modal--full .modal__backdrop[data-v-a03670f8] {
display: none
}

.modal--full .modal__header[data-v-a03670f8] {
height: 54px;
padding: 0 1rem;
background-color: #061426
}

.modal--full .modal__root[data-v-a03670f8] {
width: 100%;
height: 100%
}

.modal--full .modal__surface[data-v-a03670f8] {
width: 100%;
height: 100%;
max-width: 100%;
padding: 0;
border-radius: 0
}

.modal--full .modal__body[data-v-a03670f8] {
display: block;
width: 100%;
height: 100%;
padding-bottom: env(safe-area-inset-bottom)
}

.modal__root[data-v-a03670f8] {
position: relative;
z-index: 2
}

.modal__surface[data-v-a03670f8] {
position: relative;
min-width: 300px;
max-width: 90vw;
overflow: hidden;
padding: 2rem 1rem;
border-radius: 20px;
background-color: #102640
}

.modal__surface--inverse[data-v-a03670f8] {
background-color: #fff
}

.modal__surface--inverse .modal__header[data-v-a03670f8] {
color: #000
}

.modal__surface--reduced[data-v-a03670f8] {
padding: .5rem;
border-radius: 5px
}

.modal__surface--notification[data-v-a03670f8] {
width: 90vw;
max-width: 600px;
padding: 2rem 0 1rem;
border-radius: 5px;
background-color: var(--theme-color)
}

.modal__surface--no-padding[data-v-a03670f8] {
padding: 0
}

.modal__body[data-v-a03670f8] {
display: flex;
align-items: center
}

.modal__body[data-v-a03670f8]>:first-child {
flex-grow: 1
}

.modal__close[data-v-a03670f8] {
color: #fff;
transition: color .2s ease
}

.modal__close[data-v-a03670f8]:hover {
color: #ffdfa0
}

.modal__close--inverse[data-v-a03670f8] {
color: #000
}

.modal__close[data-v-a03670f8]:not(.modal__close--inline) {
position: absolute;
right: .75rem;
top: .75rem
}

.modal__close--inline[data-v-a03670f8] {
margin-left: .5rem
}

.modal__header[data-v-a03670f8] {
color: var(--theme-color);
min-height: 36px;
padding: 0 1rem 1rem;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center
}

.modal__header h3[data-v-a03670f8] {
text-align: center
}

.modal__header i[data-v-a03670f8] {
margin-bottom: .5rem
}

.modal-fade-enter[data-v-a03670f8],.modal-fade-leave-to[data-v-a03670f8] {
opacity: 0
}

.modal-fade-enter-active[data-v-a03670f8],.modal-fade-leave-active[data-v-a03670f8] {
transition: opacity .5s ease
}

.floating[data-v-4a023200] {
position: fixed;
display: grid;
left: .5rem;
width: calc(100% - 1rem);
z-index: 99;
pointer-events: none;
align-items: end;
grid-template-columns: repeat(2,minmax(0,1fr));
bottom: calc(60px + env(safe-area-inset-bottom) + 3rem)
}

.floating ul[data-v-4a023200] {
position: relative;
display: grid;
grid-gap: .5rem
}

.floating--left[data-v-4a023200] {
grid-column: 1/2;
justify-self: start
}

.floating--right[data-v-4a023200] {
grid-column: 2/3;
justify-self: end
}


.floating a[data-v-4a023200] {
display: block;
width: 4rem;
height: 4rem;
pointer-events: all
}

.floating a img[data-v-4a023200] {
display: block;
width: 100%;
height: 100%;
-o-object-fit: contain;
object-fit: contain
}


</style>

<style>
:root {
  --theme-color: #061426;
  --theme-color-rgb: 6, 20, 38;
  --gold-color: #ffdfa0;
}

.btn--brand,
.btn--accent,
.btn--accent-secondary,
.btn--primary {
  background-color: #ffdfa0;
  color: #061426;
}

.btn--brand i,
.btn--accent i,
.btn--accent-secondary i,
.btn--primary i,
.btn--brand span,
.btn--accent span,
.btn--accent-secondary span,
.btn--primary span {
  color: #061426;
}

.card__see-all,
.btn--outlined {
  background-color: #061426;
  color: #ffdfa0;
  border: 1px solid rgba(250, 219, 126, .55);
}

.app-header__extra,
.running-text--primary,
.app-menu--primary[data-v-9cfb8622],
.card--primary,
.footer-banner,
.footer-text[data-v-bd310b88],
.app-footer,
.sticky-footer__balance {
  background-color: #061426;
  border-color: rgba(250, 219, 126, .22);
}

.app-header__extra a,
.app-header__extra button,
.running-text--primary,
.running-text--primary marquee,
.card--primary,
.footer-banner,
.footer-text[data-v-bd310b88],
.app-footer,
.sticky-footer__balance {
  color: #fff;
}

.app-breadcrumbs .nav-item a.app-link--active,
.app-breadcrumbs .nav-item a.app-link--exact-active,
.app-menu ul .app-menu__item a.app-link--active[data-v-9cfb8622],
.sticky-footer__nav > ul .btn.app-link--active,
.carousel__control,
.card__title a:hover,
.modal__close:hover {
  color: #ffdfa0;
}
</style></head>
<body class="" data-n-head="%7B%22class%22:%7B%22ssr%22:%22%22%7D%7D">
<noscript data-n-head="ssr" data-hid="gtm-noscript" data-pbody="true"></noscript>
<div data-server-rendered="true" id="__app">
<!---->
<div id="__layout">
<div class="layout--default">
<!---->
<header class="app-header surface">
<!---->
<div class="container--fluid" data-v-ced53b20="">
<div class="app-header__main" data-v-ced53b20="">
<div class="app-brand" data-v-ced53b20="">
<a href="https://warungkedai69.com/" aria-current="page" class="app-link--exact-active app-link--active">
<img src="https://warungkedai69.com/images/banner.png" alt="Kedai69" loading="lazy" class="app-logo">

</a>
</div>
<div class="app-header__widgets" data-v-ced53b20="">
<div class="app-header__auth" data-v-ced53b20="">
<a href="https://es.warungkedai69.com/" class="btn btn--brand btn--flex">Daftar

</a>
<button class="btn btn--accent" data-v-ced53b20="">Masuk</button>
</div>
</div>
</div>
</div>
<div class="app-header__extra">
<nav class="app-breadcrumbs">
<ul>
<li data-pos="start" class="nav-observer"></li>
<li class="nav-item nav-item--home">
<a href="https://warungkedai69.com/" aria-current="page" name="Beranda" class="app-link--exact-active app-link--active app-link--exact-active">Beranda
</a>
</li>
<!---->
<li class="nav-item">
<a href="https://warungkedai69.com/" name="Sports+">Sports+

</a>
</li>
<li class="nav-item">
<a href="https://warungkedai69.com/" name="Slots">Slots

</a>
</li>
<li class="nav-item">
<a href="https://warungkedai69.com/" name="Casino">Casino

</a>
</li>
<li class="nav-item">
<a href="https://warungkedai69.com/" name="Poker">Poker

</a>
</li>
<li class="nav-item">
<a href="https://warungkedai69.com/" name="Lotto">Lotto

</a>
</li>
<li class="nav-item">
<a href="https://warungkedai69.com/" name="Arcade">Arcade

</a>
</li>
<li class="nav-item">
<a href="https://warungkedai69.com/" name="Fishing">Fishing

</a>
</li>
<li class="nav-item">
<a href="https://warungkedai69.com/" name="Promosi">Promosi

</a>
</li>
<li data-pos="end" class="nav-observer"></li>
</ul>
</nav>
<button class="app-button btn drawer__toggle">
<!---->
<span>Menu
</span>
<i class="icon-bars icon--lg" data-v-0e010622=""></i>
</button>
</div>
</header>
<!---->
<main>
<div class="container">
<!---->
<!---->
<section class="home">
<div class="home-carousel">
<div dir="ltr" class="slick-slider slick-initialized" data-v-3d1a4f76="">
<div class="slick-list" data-v-3d1a4f76="">
<div class="slick-track" style="width:3100%;left:-100%;" data-v-e4caeaf8="" data-v-3d1a4f76="">
<div tabindex="-1" data-index="-1" aria-hidden="true" class="slick-slide slick-cloned" style="width:3.225806451612903%;" data-v-e4caeaf8=""></div>
<div tabindex="-1" data-index="0" aria-hidden="false" class="slick-slide slick-active slick-current" style="outline:none;width:3.225806451612903%;" data-v-e4caeaf8="">
<div data-v-e4caeaf8="">
<a href="https://warungkedai69.com/" target="_blank" tabindex="-1" style="width:100%;display:inline-block;" data-v-e4caeaf8="">
<img src="https://warungkedai69.com/images/banner.png" loading="lazy" class="slide" data-v-e4caeaf8="">

</a>
</div>
</div>
<div tabindex="-1" data-index="1" aria-hidden="true" class="slick-slide" style="outline:none;width:3.225806451612903%;" data-v-e4caeaf8=""></div>
<div tabindex="-1" data-index="2" aria-hidden="true" class="slick-slide" style="outline:none;width:3.225806451612903%;" data-v-e4caeaf8=""></div>
<div tabindex="-1" data-index="3" aria-hidden="true" class="slick-slide" style="outline:none;width:3.225806451612903%;" data-v-e4caeaf8=""></div>
<div tabindex="-1" data-index="4" aria-hidden="true" class="slick-slide" style="outline:none;width:3.225806451612903%;" data-v-e4caeaf8=""></div>
<div tabindex="-1" data-index="5" aria-hidden="true" class="slick-slide" style="outline:none;width:3.225806451612903%;" data-v-e4caeaf8=""></div>
<div tabindex="-1" data-index="6" aria-hidden="true" class="slick-slide" style="outline:none;width:3.225806451612903%;" data-v-e4caeaf8=""></div>
<div tabindex="-1" data-index="7" aria-hidden="true" class="slick-slide" style="outline:none;width:3.225806451612903%;" data-v-e4caeaf8=""></div>
<div tabindex="-1" data-index="8" aria-hidden="true" class="slick-slide" style="outline:none;width:3.225806451612903%;" data-v-e4caeaf8=""></div>
<div tabindex="-1" data-index="9" aria-hidden="true" class="slick-slide" style="outline:none;width:3.225806451612903%;" data-v-e4caeaf8=""></div>
<div tabindex="-1" data-index="10" aria-hidden="true" class="slick-slide" style="outline:none;width:3.225806451612903%;" data-v-e4caeaf8=""></div>
<div tabindex="-1" data-index="11" aria-hidden="true" class="slick-slide" style="outline:none;width:3.225806451612903%;" data-v-e4caeaf8=""></div>
<div tabindex="-1" data-index="12" aria-hidden="true" class="slick-slide" style="outline:none;width:3.225806451612903%;" data-v-e4caeaf8=""></div>
<div tabindex="-1" data-index="13" aria-hidden="true" class="slick-slide" style="outline:none;width:3.225806451612903%;" data-v-e4caeaf8=""></div>
<div tabindex="-1" data-index="14" aria-hidden="true" class="slick-slide" style="outline:none;width:3.225806451612903%;" data-v-e4caeaf8=""></div>
<div tabindex="-1" data-index="15" aria-hidden="true" class="slick-slide slick-cloned" style="width:3.225806451612903%;" data-v-e4caeaf8="">
<div data-v-e4caeaf8="">
<a href="https://warungkedai69.com/" target="_blank" tabindex="-1" style="width:100%;display:inline-block;" data-v-e4caeaf8="">
<img src="https://warungkedai69.com/images/banner.png" loading="lazy" class="slide" data-v-e4caeaf8="">

</a>
</div>
</div>
<div tabindex="-1" data-index="16" aria-hidden="true" class="slick-slide slick-cloned" style="width:3.225806451612903%;" data-v-e4caeaf8=""></div>
<div tabindex="-1" data-index="17" aria-hidden="true" class="slick-slide slick-cloned" style="width:3.225806451612903%;" data-v-e4caeaf8=""></div>
<div tabindex="-1" data-index="18" aria-hidden="true" class="slick-slide slick-cloned" style="width:3.225806451612903%;" data-v-e4caeaf8=""></div>
<div tabindex="-1" data-index="19" aria-hidden="true" class="slick-slide slick-cloned" style="width:3.225806451612903%;" data-v-e4caeaf8=""></div>
<div tabindex="-1" data-index="20" aria-hidden="true" class="slick-slide slick-cloned" style="width:3.225806451612903%;" data-v-e4caeaf8=""></div>
<div tabindex="-1" data-index="21" aria-hidden="true" class="slick-slide slick-cloned" style="width:3.225806451612903%;" data-v-e4caeaf8=""></div>
<div tabindex="-1" data-index="22" aria-hidden="true" class="slick-slide slick-cloned" style="width:3.225806451612903%;" data-v-e4caeaf8=""></div>
<div tabindex="-1" data-index="23" aria-hidden="true" class="slick-slide slick-cloned" style="width:3.225806451612903%;" data-v-e4caeaf8=""></div>
<div tabindex="-1" data-index="24" aria-hidden="true" class="slick-slide slick-cloned" style="width:3.225806451612903%;" data-v-e4caeaf8=""></div>
<div tabindex="-1" data-index="25" aria-hidden="true" class="slick-slide slick-cloned" style="width:3.225806451612903%;" data-v-e4caeaf8=""></div>
<div tabindex="-1" data-index="26" aria-hidden="true" class="slick-slide slick-cloned" style="width:3.225806451612903%;" data-v-e4caeaf8=""></div>
<div tabindex="-1" data-index="27" aria-hidden="true" class="slick-slide slick-cloned" style="width:3.225806451612903%;" data-v-e4caeaf8=""></div>
<div tabindex="-1" data-index="28" aria-hidden="true" class="slick-slide slick-cloned" style="width:3.225806451612903%;" data-v-e4caeaf8=""></div>
<div tabindex="-1" data-index="29" aria-hidden="true" class="slick-slide slick-cloned" style="width:3.225806451612903%;" data-v-e4caeaf8=""></div>
</div>
</div>
<ul class="slick-dots" style="display:block;" data-v-3d1a4f76="">
<li class="slick-active">
<button>1</button>
</li>
<li>
<button>2</button>
</li>
<li>
<button>3</button>
</li>
<li>
<button>4</button>
</li>
<li>
<button>5</button>
</li>
<li>
<button>6</button>
</li>
<li>
<button>7</button>
</li>
<li>
<button>8</button>
</li>
<li>
<button>9</button>
</li>
<li>
<button>10</button>
</li>
<li>
<button>11</button>
</li>
<li>
<button>12</button>
</li>
<li>
<button>13</button>
</li>
<li>
<button>14</button>
</li>
<li>
<button>15</button>
</li>
</ul>
</div>
</div>
<!---->
<div class="home__teaser">
<a href="https://warungkedai69.com/" class="btn btn--flex btn--accent-secondary" data-v-1272be00="">
<i class="icon-promo icon--lg" data-v-0e010622="" data-v-1272be00=""></i>
Promosi

</a>
<a href="https://warungkedai69.com/" class="btn btn--flex btn--brand" data-v-1272be00="">

<i class="icon-register icon--lg" data-v-0e010622="" data-v-1272be00=""></i>
Daftar

</a>
<button class="app-button btn btn--flex btn--accent">
<i class="icon-login icon--lg" data-v-0e010622=""></i>
<span>Masuk
</span>
<!---->
</button>
<!---->
</div>
<!---->
<div class="running-text running-text--primary">
<i class="icon-volume icon--md" data-v-0e010622=""></i>
<marquee>Kedai69 menawarkan suasana hiburan slot online yang terasa lebih hidup dengan desain modern, navigasi ringan, dan pengalaman bermain yang dibuat senyaman mungkin.
</marquee>
</div>
<nav class="app-menu" data-v-9cfb8622="">
<ul data-v-9cfb8622="">
<li data-pos="start" class="app-menu__observer" data-v-9cfb8622=""></li>
<li class="app-menu__item" data-v-9cfb8622="">
<a href="https://warungkedai69.com/" data-v-9cfb8622="">

<img alt="Sports+" src="https://cdn-proxy.globalcontentcloud.com/58/dist/img/sports.125c2a3.svg" class="brand-icon brand-icon--active brand-icon--md" data-v-9cfb8622="">
<span data-v-9cfb8622="">Sports+</span>
<i class="app-menu--active icon-sort-up icon--lg" data-v-0e010622="" data-v-9cfb8622=""></i>
</a>
</li>
<li class="app-menu__item" data-v-9cfb8622="">
<a href="https://warungkedai69.com/" data-v-9cfb8622="">

<img alt="Slots" src="https://cdn-proxy.globalcontentcloud.com/58/dist/img/slots.6fef30c.svg" class="brand-icon brand-icon--active brand-icon--md" data-v-9cfb8622="">
<span data-v-9cfb8622="">Slots</span>
<i class="app-menu--active icon-sort-up icon--lg" data-v-0e010622="" data-v-9cfb8622=""></i>
</a>
</li>
<li class="app-menu__item" data-v-9cfb8622="">
<a href="https://warungkedai69.com/" data-v-9cfb8622="">

<img alt="Casino" src="https://cdn-proxy.globalcontentcloud.com/58/dist/img/casino.ebf86b5.svg" class="brand-icon brand-icon--active brand-icon--md" data-v-9cfb8622="">
<span data-v-9cfb8622="">Casino</span>
<i class="app-menu--active icon-sort-up icon--lg" data-v-0e010622="" data-v-9cfb8622=""></i>
</a>
</li>
<li class="app-menu__item" data-v-9cfb8622="">
<a href="https://warungkedai69.com/" data-v-9cfb8622="">

<img alt="Poker" src="https://cdn-proxy.globalcontentcloud.com/58/dist/img/poker.21a6157.svg" class="brand-icon brand-icon--active brand-icon--md" data-v-9cfb8622="">
<span data-v-9cfb8622="">Poker</span>
<i class="app-menu--active icon-sort-up icon--lg" data-v-0e010622="" data-v-9cfb8622=""></i>
</a>
</li>
<li class="app-menu__item" data-v-9cfb8622="">
<a href="https://warungkedai69.com/" data-v-9cfb8622="">

<img alt="Lotto" src="https://cdn-proxy.globalcontentcloud.com/58/dist/img/lotto.dcb74fd.svg" class="brand-icon brand-icon--active brand-icon--md" data-v-9cfb8622="">
<span data-v-9cfb8622="">Lotto</span>
<i class="app-menu--active icon-sort-up icon--lg" data-v-0e010622="" data-v-9cfb8622=""></i>
</a>
</li>
<li class="app-menu__item" data-v-9cfb8622="">
<a href="https://warungkedai69.com/" data-v-9cfb8622="">

<img alt="Arcade" src="https://cdn-proxy.globalcontentcloud.com/58/dist/img/arcade.48fc4dd.svg" class="brand-icon brand-icon--active brand-icon--md" data-v-9cfb8622="">
<span data-v-9cfb8622="">Arcade</span>
<i class="app-menu--active icon-sort-up icon--lg" data-v-0e010622="" data-v-9cfb8622=""></i>
</a>
</li>
<li class="app-menu__item" data-v-9cfb8622="">
<a href="https://warungkedai69.com/" data-v-9cfb8622="">

<img alt="Fishing" src="https://cdn-proxy.globalcontentcloud.com/58/dist/img/fishing.1d859a1.svg" class="brand-icon brand-icon--active brand-icon--md" data-v-9cfb8622="">
<span data-v-9cfb8622="">Fishing</span>
<i class="app-menu--active icon-sort-up icon--lg" data-v-0e010622="" data-v-9cfb8622=""></i>
</a>
</li>
<li data-pos="end" class="app-menu__observer" data-v-9cfb8622=""></li>
</ul>
</nav>
<article class="card card--slot-carousel card--full card--light">
<header class="card__header">
<div class="card__title">
<a href="https://warungkedai69.com/">

<img alt="Slots" src="https://cdn-proxy.globalcontentcloud.com/58/dist/img/slots-muted.3d902f7.svg" class="brand-icon brand-icon--sm">

<span>Slots</span>
</a>
</div>
<a href="https://warungkedai69.com/" class="btn--sm btn--flex card__see-all">Lihat semua

</a>
</header>
<div class="card__body">
<div class="carousel slot-carousel" data-v-4f72f8a2="" data-v-60fb8dfc="">
<div class="carousel__control carousel__prev highlight carousel__control--disabled" data-v-4f72f8a2="">
<i class="icon-arrow-left icon--sm" data-v-0e010622="" data-v-4f72f8a2=""></i>
</div>
<div class="carousel__inner" data-v-4f72f8a2="">
<div class="carousel__container transition" style="transform:translateX(0px);" data-v-4f72f8a2="">
<div class="slot-carousel__group slot-carousel__group--ud" data-v-4f72f8a2="" data-v-60fb8dfc="">
<a href="https://warungkedai69.com/" class="slot-carousel__item" data-v-60fb8dfc="">

<div class="slot-carousel__img-container" data-v-60fb8dfc="">
<img src="https://cdn-proxy.globalcontentcloud.com/common/dark/slot/hot.svg" alt="Hot" data-v-60fb8dfc="">
<!---->
<!---->
<!---->
</div>
<span data-v-60fb8dfc="">Hot</span>
</a>
<a href="https://warungkedai69.com/" class="slot-carousel__item" data-v-60fb8dfc="">

<div class="slot-carousel__img-container" data-v-60fb8dfc="">
<img src="https://cdn-proxy.globalcontentcloud.com/common/dark/slot/exclusive.svg" alt="Exclusive" data-v-60fb8dfc="">
<!---->
<!---->
<!---->
</div>
<span data-v-60fb8dfc="">Exclusive</span>
</a>
<a href="https://warungkedai69.com/" class="slot-carousel__item" data-v-60fb8dfc="">

<div class="slot-carousel__img-container" data-v-60fb8dfc="">
<img src="https://cdn-proxy.globalcontentcloud.com/common/dark/slot/new.svg" alt="New" data-v-60fb8dfc="">
<!---->
<!---->
<!---->
</div>
<span data-v-60fb8dfc="">New</span>
</a>
<a href="https://warungkedai69.com/" class="slot-carousel__item" data-v-60fb8dfc="">

<div class="slot-carousel__img-container" data-v-60fb8dfc="">
<img src="https://cdn-proxy.globalcontentcloud.com/common/dark/slot/idnslotdirect.svg" alt="IDNSLOT" data-v-60fb8dfc="">
<!---->
<!---->
<!---->
</div>
<span data-v-60fb8dfc="">IDNSLOT</span>
</a>
<a href="https://warungkedai69.com/" class="slot-carousel__item" data-v-60fb8dfc="">

<div class="slot-carousel__img-container" data-v-60fb8dfc="">
<img src="https://cdn-proxy.globalcontentcloud.com/common/dark/slot/panda.svg" alt="Fat Panda" data-v-60fb8dfc="">
<!---->
<!---->
<!---->
</div>
<span data-v-60fb8dfc="">Fat Panda</span>
</a>
<a href="https://warungkedai69.com/" class="slot-carousel__item" data-v-60fb8dfc="">

<div class="slot-carousel__img-container provider--promo" data-v-60fb8dfc="">
<img src="https://cdn-proxy.globalcontentcloud.com/common/dark/slot/pgsoft.svg" alt="PG Soft" data-v-60fb8dfc="">
<!---->
<!---->
<!---->
</div>
<span data-v-60fb8dfc="">PG Soft</span>
</a>
<a href="https://warungkedai69.com/" class="slot-carousel__item" data-v-60fb8dfc="">

<div class="slot-carousel__img-container provider--promo" data-v-60fb8dfc="">
<img src="https://cdn-proxy.globalcontentcloud.com/common/dark/slot/pragmaticplay.svg" alt="PragmaticPlay" data-v-60fb8dfc="">
<!---->
<!---->
<!---->
</div>
<span data-v-60fb8dfc="">PragmaticPlay</span>
</a>
<a href="https://warungkedai69.com/" class="slot-carousel__item" data-v-60fb8dfc="">

<div class="slot-carousel__img-container provider--promo" data-v-60fb8dfc="">
<img src="https://cdn-proxy.globalcontentcloud.com/common/dark/slot/microgaming.svg" alt="Microgaming" data-v-60fb8dfc="">
<!---->
<!---->
<!---->
</div>
<span data-v-60fb8dfc="">Microgaming</span>
</a>
<a href="https://warungkedai69.com/" class="slot-carousel__item" data-v-60fb8dfc="">

<div class="slot-carousel__img-container provider--promo" data-v-60fb8dfc="">
<img src="https://cdn-proxy.globalcontentcloud.com/common/dark/slot/slotmania.svg" alt="Slot Mania" data-v-60fb8dfc="">
<!---->
<!---->
<!---->
</div>
<span data-v-60fb8dfc="">Slot Mania</span>
</a>
<a href="https://warungkedai69.com/" class="slot-carousel__item" data-v-60fb8dfc="">

<div class="slot-carousel__img-container provider--promo" data-v-60fb8dfc="">
<img src="https://cdn-proxy.globalcontentcloud.com/common/dark/slot/habanero.svg" alt="Habanero" data-v-60fb8dfc="">
<!---->
<!---->
<!---->
</div>
<span data-v-60fb8dfc="">Habanero</span>
</a>
<a href="https://warungkedai69.com/" class="slot-carousel__item" data-v-60fb8dfc="">

<div class="slot-carousel__img-container" data-v-60fb8dfc="">
<img src="https://cdn-proxy.globalcontentcloud.com/common/dark/slot/5g.svg" alt="5G Games" data-v-60fb8dfc="">
<!---->
<!---->
<!---->
</div>
<span data-v-60fb8dfc="">5G Games</span>
</a>
<a href="https://warungkedai69.com/" class="slot-carousel__item" data-v-60fb8dfc="">

<div class="slot-carousel__img-container provider--promo" data-v-60fb8dfc="">
<img src="https://cdn-proxy.globalcontentcloud.com/common/dark/slot/evolution-nlc.svg" alt="Nolimit City" data-v-60fb8dfc="">
<!---->
<!---->
<!---->
</div>
<span data-v-60fb8dfc="">Nolimit City</span>
</a>
<a href="https://warungkedai69.com/" class="slot-carousel__item" data-v-60fb8dfc="">

<div class="slot-carousel__img-container" data-v-60fb8dfc="">
<img src="https://cdn-proxy.globalcontentcloud.com/common/dark/slot/ttg.svg" alt="TTG" data-v-60fb8dfc="">
<!---->
<!---->
<!---->
</div>
<span data-v-60fb8dfc="">TTG</span>
</a>
<a href="https://warungkedai69.com/" class="slot-carousel__item" data-v-60fb8dfc="">

<div class="slot-carousel__img-container provider--new" data-v-60fb8dfc="">
<img src="https://cdn-proxy.globalcontentcloud.com/common/dark/slot/askmeslot_slot.svg" alt="Askmeslot" data-v-60fb8dfc="">
<!---->
<!---->
<!---->
</div>
<span data-v-60fb8dfc="">Askmeslot</span>
</a>
<a href="https://warungkedai69.com/" class="slot-carousel__item" data-v-60fb8dfc="">

<div class="slot-carousel__img-container provider--promo" data-v-60fb8dfc="">
<img src="https://cdn-proxy.globalcontentcloud.com/common/dark/slot/playtech_slot.svg" alt="Playtech" data-v-60fb8dfc="">
<!---->
<!---->
<!---->
</div>
<span data-v-60fb8dfc="">Playtech</span>
</a>
</div>
<div class="slot-carousel__group slot-carousel__group--ud" data-v-4f72f8a2="" data-v-60fb8dfc="">
<a href="https://warungkedai69.com/" class="slot-carousel__item" data-v-60fb8dfc="">

<div class="slot-carousel__img-container" data-v-60fb8dfc="">
<img src="https://cdn-proxy.globalcontentcloud.com/common/dark/slot/playstar.svg" alt="PlayStar" data-v-60fb8dfc="">
<!---->
<!---->
<!---->
</div>
<span data-v-60fb8dfc="">PlayStar</span>
</a>
<a href="https://warungkedai69.com/" class="slot-carousel__item" data-v-60fb8dfc="">

<div class="slot-carousel__img-container provider--new" data-v-60fb8dfc="">
<img src="https://cdn-proxy.globalcontentcloud.com/common/dark/slot/live_22.svg" alt="Live22" data-v-60fb8dfc="">
<!---->
<!---->
<!---->
</div>
<span data-v-60fb8dfc="">Live22</span>
</a>
<a href="https://warungkedai69.com/" class="slot-carousel__item" data-v-60fb8dfc="">

<div class="slot-carousel__img-container" data-v-60fb8dfc="">
<img src="https://cdn-proxy.globalcontentcloud.com/common/dark/slot/cq9.svg" alt="CQ9" data-v-60fb8dfc="">
<!---->
<!---->
<!---->
</div>
<span data-v-60fb8dfc="">CQ9</span>
</a>
<a href="https://warungkedai69.com/" class="slot-carousel__item" data-v-60fb8dfc="">

<div class="slot-carousel__img-container provider--promo" data-v-60fb8dfc="">
<img src="https://cdn-proxy.globalcontentcloud.com/common/dark/slot/spadegaming_slot.svg" alt="Spadegaming" data-v-60fb8dfc="">
<!---->
<!---->
<!---->
</div>
<span data-v-60fb8dfc="">Spadegaming</span>
</a>
<a href="https://warungkedai69.com/" class="slot-carousel__item" data-v-60fb8dfc="">

<div class="slot-carousel__img-container provider--promo" data-v-60fb8dfc="">
<img src="https://cdn-proxy.globalcontentcloud.com/common/dark/slot/pragmaticplay98.svg" alt="PP 98% RTP" data-v-60fb8dfc="">
<!---->
<div class="slot-carousel__by-pragmatic" data-v-60fb8dfc="">
<img src="https://cdn-proxy.globalcontentcloud.com/common/dark/slot/pragmaticplay.svg" data-v-60fb8dfc="">
</div>
<!---->
</div>
<span data-v-60fb8dfc="">PP 98% RTP</span>
</a>
<a href="https://warungkedai69.com/" class="slot-carousel__item" data-v-60fb8dfc="">

<div class="slot-carousel__img-container" data-v-60fb8dfc="">
<img src="https://cdn-proxy.globalcontentcloud.com/common/dark/slot/fastspin.svg" alt="FastSpin" data-v-60fb8dfc="">
<!---->
<!---->
<!---->
</div>
<span data-v-60fb8dfc="">FastSpin</span>
</a>
<a href="https://warungkedai69.com/" class="slot-carousel__item" data-v-60fb8dfc="">

<div class="slot-carousel__img-container" data-v-60fb8dfc="">
<img src="https://cdn-proxy.globalcontentcloud.com/common/dark/slot/penguin_king.svg" alt="Penguin King" data-v-60fb8dfc="">
<!---->
<!---->
<!---->
</div>
<span data-v-60fb8dfc="">Penguin King</span>
</a>
<a href="https://warungkedai69.com/" class="slot-carousel__item" data-v-60fb8dfc="">

<div class="slot-carousel__img-container" data-v-60fb8dfc="">
<img src="https://cdn-proxy.globalcontentcloud.com/common/dark/slot/simpleplay.svg" alt="SimplePlay" data-v-60fb8dfc="">
<!---->
<!---->
<!---->
</div>
<span data-v-60fb8dfc="">SimplePlay</span>
</a>
<a href="https://warungkedai69.com/" class="slot-carousel__item" data-v-60fb8dfc="">

<div class="slot-carousel__img-container" data-v-60fb8dfc="">
<img src="https://cdn-proxy.globalcontentcloud.com/common/dark/slot/booming_games.svg" alt="Booming" data-v-60fb8dfc="">
<!---->
<!---->
<!---->
</div>
<span data-v-60fb8dfc="">Booming</span>
</a>
<a href="https://warungkedai69.com/" class="slot-carousel__item" data-v-60fb8dfc="">

<div class="slot-carousel__img-container" data-v-60fb8dfc="">
<img src="https://cdn-proxy.globalcontentcloud.com/common/dark/slot/yggdrasil.svg" alt="Yggdrasil" data-v-60fb8dfc="">
<!---->
<!---->
<!---->
</div>
<span data-v-60fb8dfc="">Yggdrasil</span>
</a>
<a href="https://warungkedai69.com/" class="slot-carousel__item" data-v-60fb8dfc="">

<div class="slot-carousel__img-container provider--promo" data-v-60fb8dfc="">
<img src="https://cdn-proxy.globalcontentcloud.com/common/dark/slot/level-up.svg" alt="Level Up" data-v-60fb8dfc="">
<!---->
<!---->
<div class="slot-carousel__by-habanero" data-v-60fb8dfc="">
<img src="https://cdn-proxy.globalcontentcloud.com/common/dark/slot/habanero.svg" data-v-60fb8dfc="">
</div>
</div>
<span data-v-60fb8dfc="">Level Up</span>
</a>
<a href="https://warungkedai69.com/" class="slot-carousel__item" data-v-60fb8dfc="">

<div class="slot-carousel__img-container provider--promo" data-v-60fb8dfc="">
<img src="https://cdn-proxy.globalcontentcloud.com/common/dark/slot/spin-royal.svg" alt="Spin Royal" data-v-60fb8dfc="">
<!---->
<!---->
<!---->
</div>
<span data-v-60fb8dfc="">Spin Royal</span>
</a>
<a href="https://warungkedai69.com/" class="slot-carousel__item" data-v-60fb8dfc="">

<div class="slot-carousel__img-container" data-v-60fb8dfc="">
<img src="https://cdn-proxy.globalcontentcloud.com/common/dark/slot/gmw.svg" alt="GMW" data-v-60fb8dfc="">
<!---->
<!---->
<!---->
</div>
<span data-v-60fb8dfc="">GMW</span>
</a>
<a href="https://warungkedai69.com/" class="slot-carousel__item" data-v-60fb8dfc="">

<div class="slot-carousel__img-container" data-v-60fb8dfc="">
<img src="https://cdn-proxy.globalcontentcloud.com/common/dark/slot/bigpot.svg" alt="BigPot" data-v-60fb8dfc="">
<!---->
<!---->
<!---->
</div>
<span data-v-60fb8dfc="">BigPot</span>
</a>
<a href="https://warungkedai69.com/" class="slot-carousel__item" data-v-60fb8dfc="">

<div class="slot-carousel__img-container" data-v-60fb8dfc="">
<img src="https://cdn-proxy.globalcontentcloud.com/common/dark/slot/reevo.svg" alt="Reevo" data-v-60fb8dfc="">
<!---->
<!---->
<!---->
</div>
<span data-v-60fb8dfc="">Reevo</span>
</a>
</div>
<div class="slot-carousel__group slot-carousel__group--ud" data-v-4f72f8a2="" data-v-60fb8dfc="">
<a href="https://warungkedai69.com/" class="slot-carousel__item" data-v-60fb8dfc="">

<div class="slot-carousel__img-container" data-v-60fb8dfc="">
<img src="https://cdn-proxy.globalcontentcloud.com/common/dark/slot/bgaming.svg" alt="Bgaming" data-v-60fb8dfc="">
<!---->
<!---->
<!---->
</div>
<span data-v-60fb8dfc="">Bgaming</span>
</a>
<a href="https://warungkedai69.com/" class="slot-carousel__item" data-v-60fb8dfc="">

<div class="slot-carousel__img-container" data-v-60fb8dfc="">
<img src="https://cdn-proxy.globalcontentcloud.com/common/dark/slot/bng.svg" alt="BNG" data-v-60fb8dfc="">
<!---->
<!---->
<!---->
</div>
<span data-v-60fb8dfc="">BNG</span>
</a>
<a href="https://warungkedai69.com/" class="slot-carousel__item" data-v-60fb8dfc="">

<div class="slot-carousel__img-container" data-v-60fb8dfc="">
<img src="https://cdn-proxy.globalcontentcloud.com/common/dark/slot/evolution-redtiger.svg" alt="RedTiger" data-v-60fb8dfc="">

<!---->
<!---->
<!---->
</div>
<span data-v-60fb8dfc="">RedTiger</span>
</a>
<a href="https://warungkedai69.com/" class="slot-carousel__item" data-v-60fb8dfc="">

<div class="slot-carousel__img-container" data-v-60fb8dfc="">
<img src="https://cdn-proxy.globalcontentcloud.com/common/dark/slot/evolution-netent.svg" alt="NetEnt" data-v-60fb8dfc="">
<!---->
<!---->
<!---->
</div>
<span data-v-60fb8dfc="">NetEnt</span>
</a>
<a href="https://warungkedai69.com/" class="slot-carousel__item" data-v-60fb8dfc="">

<div class="slot-carousel__img-container" data-v-60fb8dfc="">
<img src="https://cdn-proxy.globalcontentcloud.com/common/dark/slot/evolution-btg.svg" alt="BTG" data-v-60fb8dfc="">
<!---->
<!---->
<!---->
</div>
<span data-v-60fb8dfc="">BTG</span>
</a>
<a href="https://warungkedai69.com/" class="slot-carousel__item" data-v-60fb8dfc="">

<div class="slot-carousel__img-container" data-v-60fb8dfc="">
<img src="https://cdn-proxy.globalcontentcloud.com/common/dark/slot/playngo.svg" alt="Play'n Go" data-v-60fb8dfc="">
<!---->
<!---->
<!---->
</div>
<span data-v-60fb8dfc="">Play'n Go</span>
</a>
<a href="https://warungkedai69.com/" class="slot-carousel__item" data-v-60fb8dfc="">

<div class="slot-carousel__img-container" data-v-60fb8dfc="">
<img src="https://cdn-proxy.globalcontentcloud.com/common/dark/slot/apparat.svg" alt="Apparat" data-v-60fb8dfc="">
<!---->
<!---->
<!---->
</div>
<span data-v-60fb8dfc="">Apparat</span>
</a>
<a href="https://warungkedai69.com/" class="slot-carousel__item" data-v-60fb8dfc="">

<div class="slot-carousel__img-container" data-v-60fb8dfc="">
<img src="https://cdn-proxy.globalcontentcloud.com/common/dark/slot/nsoftcasino.svg" alt="Nsoft" data-v-60fb8dfc="">
<!---->
<!---->
<!---->
</div>
<span data-v-60fb8dfc="">Nsoft</span>
</a>
<a href="https://warungkedai69.com/" class="slot-carousel__item" data-v-60fb8dfc="">

<div class="slot-carousel__img-container" data-v-60fb8dfc="">
<img src="https://cdn-proxy.globalcontentcloud.com/common/dark/slot/buy-bonus.svg" alt="Buy Bonus" data-v-60fb8dfc="">
<!---->
<!---->
<!---->
</div>
<span data-v-60fb8dfc="">Buy Bonus</span>
</a>
<a href="https://warungkedai69.com/" class="slot-carousel__item" data-v-60fb8dfc="">

<div class="slot-carousel__img-container" data-v-60fb8dfc="">
<img src="https://cdn-proxy.globalcontentcloud.com/common/dark/slot/table.svg" alt="Table" data-v-60fb8dfc="">
<!---->
<!---->
<!---->
</div>
<span data-v-60fb8dfc="">Table</span>
</a>
<a href="https://warungkedai69.com/" class="slot-carousel__item" data-v-60fb8dfc="">

<div class="slot-carousel__img-container" data-v-60fb8dfc="">
<img src="https://cdn-proxy.globalcontentcloud.com/common/dark/slot/megaways.svg" alt="Megaways" data-v-60fb8dfc="">
<!---->
<!---->
<!---->
</div>
<span data-v-60fb8dfc="">Megaways</span>
</a>
</div>
</div>
</div>
<div class="carousel__control carousel__next highlight" data-v-4f72f8a2="">
<i class="icon-arrow-right icon--sm" data-v-0e010622="" data-v-4f72f8a2=""></i>
</div>
</div>
</div>
<div class="card__cta">
<a href="https://warungkedai69.com/" class="btn btn--flex btn--brand">Main Slots

</a>
</div>
<!---->
<!---->
</article>
<!---->
<!---->
<article class="card card--split card--primary">
<!---->
<!---->
<div class="card__item">
<div class="card__title">
<a href="https://warungkedai69.com/">

<img alt="Sports+" src="https://cdn-proxy.globalcontentcloud.com/58/dist/img/sports-muted.3699077.svg" class="brand-icon brand-icon--sm">

<span>Sports+</span>
</a>
</div>
<a href="https://warungkedai69.com/">

<img src="https://cdn-proxy.globalcontentcloud.com/common/default/sport.png" alt="Sports+" loading="lazy" class="card__image">
</a>
<a href="https://warungkedai69.com/" class="btn btn--flex btn--brand card__cta">Main Sports+

</a>
</div>
<div class="card__item">
<div class="card__title">
<a href="https://warungkedai69.com/">

<img alt="Poker" src="https://cdn-proxy.globalcontentcloud.com/58/dist/img/poker-muted.a05f9ac.svg" class="brand-icon brand-icon--sm">

<span>Poker</span>
</a>
</div>
<a href="https://warungkedai69.com/">

<img src="https://cdn-proxy.globalcontentcloud.com/common/default/poker.png" alt="Poker" loading="lazy" class="card__image">
</a>
<a href="https://warungkedai69.com/" class="btn btn--flex btn--brand card__cta">Main Poker

</a>
</div>
</article>
<article class="card card--full card--light">
<header class="card__header">
<div class="card__title">
<a href="https://warungkedai69.com/">

<img alt="Casino" src="https://cdn-proxy.globalcontentcloud.com/58/dist/img/casino-muted.baa0122.svg" class="brand-icon brand-icon--sm">

<span>Casino</span>
</a>
</div>
<a href="https://warungkedai69.com/" class="btn--sm btn--flex card__see-all">Lihat semua

</a>
</header>
<div class="card__body">
<div class="casino-carousel">
<ul>
<li class="casino-carousel__fill"></li>
<li data-flag="Spesial" class="casino-game casino-carousel__item casino-game--new casino-game--special casino-game--dark casino-game--normal-view" data-v-223f59df="">
<a data-v-223f59df="">
<div class="casino-game__container" data-v-223f59df="">
<div class="casino-game__skeleton" data-v-223f59df=""></div>
<!---->
<div class="casino-game__count" data-v-223f59df="">
<span data-v-223f59df="">53</span>
</div>
<!---->
<img src="https://cdn.globalcontentcloud.com/game-images/idnlive/14252/thumbnail.webp" alt="IDN Live New Lobby" data-v-223f59df="">
<div class="casino-game__placeholder" data-v-223f59df="">
<img src="https://cdn.sportjaya.me/img/img_d5b3b8f382d0a524.png" alt="IDN Live New Lobby" data-v-223f59df="">
</div>
<!---->
</div>
<span class="casino-game__provider" data-v-223f59df="">IDNLIVE</span>
</a>
<!---->
</li>
<li data-flag="" class="casino-game casino-carousel__item casino-game--dark casino-game--normal-view" data-v-223f59df="">
<a data-v-223f59df="">
<div class="casino-game__container" data-v-223f59df="">
<div class="casino-game__skeleton" data-v-223f59df=""></div>
<!---->
<div class="casino-game__count" data-v-223f59df="">
<span data-v-223f59df="">201</span>
</div>
<!---->
<img src="https://cdn.globalcontentcloud.com/game-images/pragmaticplay/947/thumbnail.webp" alt="Live - Lobby" data-v-223f59df="">

<div class="casino-game__placeholder" data-v-223f59df="">
<img src="https://cdn.sportjaya.me/img/img_d5b3b8f382d0a524.png" alt="Live - Lobby" data-v-223f59df="">
</div>
<!---->
</div>
<span class="casino-game__provider" data-v-223f59df="">PragmaticPlay</span>
</a>
<!---->
</li>
<li data-flag="Promosi" class="casino-game casino-carousel__item casino-game--promo casino-game--dark casino-game--normal-view" data-v-223f59df="">
<a data-v-223f59df="">
<div class="casino-game__container" data-v-223f59df="">
<div class="casino-game__skeleton" data-v-223f59df=""></div>
<!---->
<div class="casino-game__count" data-v-223f59df="">
<span data-v-223f59df="">267</span>
</div>
<!---->
<img src="https://cdn.globalcontentcloud.com/game-images/evolution/2306/thumbnail.webp" alt="Live - Lobby" data-v-223f59df="">
<div class="casino-game__placeholder" data-v-223f59df="">
<img src="https://cdn.sportjaya.me/img/img_d5b3b8f382d0a524.png" alt="Live - Lobby" data-v-223f59df="">
</div>
<!---->
</div>
<span class="casino-game__provider" data-v-223f59df="">Evolution</span>
</a>
<!---->
</li>
<li data-flag="Spesial" class="casino-game casino-carousel__item casino-game--special casino-game--dark casino-game--normal-view" data-v-223f59df="">
<a data-v-223f59df="">
<div class="casino-game__container" data-v-223f59df="">
<div class="casino-game__skeleton" data-v-223f59df=""></div>
<!---->
<div class="casino-game__count" data-v-223f59df="">
<span data-v-223f59df="">53</span>
</div>
<!---->
<img src="https://cdn.globalcontentcloud.com/game-images/idnlive/1238/thumbnail.webp" alt="Lobby" data-v-223f59df="">
<div class="casino-game__placeholder" data-v-223f59df="">
<img src="https://cdn.sportjaya.me/img/img_d5b3b8f382d0a524.png" alt="Lobby" data-v-223f59df="">
</div>
<!---->
</div>
<span class="casino-game__provider" data-v-223f59df="">IDNLIVE</span>
</a>
<!---->
</li>
<li data-flag="" class="casino-game casino-carousel__item casino-game--dark casino-game--normal-view" data-v-223f59df="">
<a data-v-223f59df="">
<div class="casino-game__container" data-v-223f59df="">
<div class="casino-game__skeleton" data-v-223f59df=""></div>
<!---->
<div class="casino-game__count" data-v-223f59df="">
<span data-v-223f59df="">54</span>
</div>
<!---->
<img src="https://cdn.globalcontentcloud.com/game-images/microgaming-live/7198/thumbnail.webp" alt="MG Live Grand" data-v-223f59df="">

<div class="casino-game__placeholder" data-v-223f59df="">
<img src="https://cdn.sportjaya.me/img/img_d5b3b8f382d0a524.png" alt="MG Live Grand" data-v-223f59df="">
</div>
<!---->
</div>
<span class="casino-game__provider" data-v-223f59df="">Microgaming Live</span>
</a>
<!---->
</li>
<li data-flag="" class="casino-game casino-carousel__item casino-game--dark casino-game--normal-view" data-v-223f59df="">
<a data-v-223f59df="">
<div class="casino-game__container" data-v-223f59df="">
<div class="casino-game__skeleton" data-v-223f59df=""></div>
<!---->
<div class="casino-game__count" data-v-223f59df="">
<span data-v-223f59df="">143</span>
</div>
<!---->
<img src="https://cdn.globalcontentcloud.com/game-images/playtech-casino/10099/thumbnail.webp" alt="Lobby" data-v-223f59df="">

<div class="casino-game__placeholder" data-v-223f59df="">
<img src="https://cdn.sportjaya.me/img/img_d5b3b8f382d0a524.png" alt="Lobby" data-v-223f59df="">
</div>
<!---->
</div>
<span class="casino-game__provider" data-v-223f59df="">Playtech Casino</span>
</a>
<!---->
</li>
<li data-flag="" class="casino-game casino-carousel__item casino-game--dark casino-game--normal-view" data-v-223f59df="">
<a data-v-223f59df="">
<div class="casino-game__container" data-v-223f59df="">
<div class="casino-game__skeleton" data-v-223f59df=""></div>
<!---->
<div class="casino-game__count" data-v-223f59df="">
<span data-v-223f59df="">25</span>
</div>
<!---->
<img src="https://cdn.globalcontentcloud.com/game-images/sa-gaming/8929/thumbnail.webp" alt="Lobby" data-v-223f59df="">

<div class="casino-game__placeholder" data-v-223f59df="">
<img src="https://cdn.sportjaya.me/img/img_d5b3b8f382d0a524.png" alt="Lobby" data-v-223f59df="">
</div>
<!---->
</div>
<span class="casino-game__provider" data-v-223f59df="">SA Gaming</span>
</a>
<!---->
</li>
<li data-flag="" class="casino-game casino-carousel__item casino-game--dark casino-game--normal-view" data-v-223f59df="">
<a data-v-223f59df="">
<div class="casino-game__container" data-v-223f59df="">
<div class="casino-game__skeleton" data-v-223f59df=""></div>
<!---->
<div class="casino-game__count" data-v-223f59df="">
<span data-v-223f59df="">100</span>
</div>
<!---->
<img src="https://cdn.globalcontentcloud.com/game-images/ezugi/652/thumbnail.webp" alt="Lobby" data-v-223f59df="">
<div class="casino-game__placeholder" data-v-223f59df="">
<img src="https://cdn.sportjaya.me/img/img_d5b3b8f382d0a524.png" alt="Lobby" data-v-223f59df="">
</div>
<!---->
</div>
<span class="casino-game__provider" data-v-223f59df="">Ezugi</span>
</a>
<!---->
</li>
<li data-flag="" class="casino-game casino-carousel__item casino-game--dark casino-game--normal-view" data-v-223f59df="">
<a data-v-223f59df="">
<div class="casino-game__container" data-v-223f59df="">
<div class="casino-game__skeleton" data-v-223f59df=""></div>
<!---->
<div class="casino-game__count" data-v-223f59df="">
<span data-v-223f59df="">103</span>
</div>
<!---->
<img src="https://cdn.globalcontentcloud.com/game-images/vivogaming/1199/thumbnail.webp" alt="Lobby" data-v-223f59df="">

<div class="casino-game__placeholder" data-v-223f59df="">
<img src="https://cdn.sportjaya.me/img/img_d5b3b8f382d0a524.png" alt="Lobby" data-v-223f59df="">
</div>
<!---->
</div>
<span class="casino-game__provider" data-v-223f59df="">VivoGaming</span>
</a>
<!---->
</li>
<li data-flag="" class="casino-game casino-carousel__item casino-game--dark casino-game--normal-view" data-v-223f59df="">
<a data-v-223f59df="">
<div class="casino-game__container" data-v-223f59df="">
<div class="casino-game__skeleton" data-v-223f59df=""></div>
<!---->
<div class="casino-game__count" data-v-223f59df="">
<span data-v-223f59df="">37</span>
</div>
<!---->
<img src="https://cdn.globalcontentcloud.com/game-images/oriental-game/4941/thumbnail.webp" alt="og-lobby" data-v-223f59df="">

<div class="casino-game__placeholder" data-v-223f59df="">
<img src="https://cdn.sportjaya.me/img/img_d5b3b8f382d0a524.png" alt="og-lobby" data-v-223f59df="">
</div>
<!---->
</div>
<span class="casino-game__provider" data-v-223f59df="">Oriental Game</span>
</a>
<!---->
</li>
<li data-flag="" class="casino-game casino-carousel__item casino-game--dark casino-game--normal-view" data-v-223f59df="">
<a data-v-223f59df="">
<div class="casino-game__container" data-v-223f59df="">
<div class="casino-game__skeleton" data-v-223f59df=""></div>
<!---->
<div class="casino-game__count" data-v-223f59df="">
<span data-v-223f59df="">9</span>
</div>
<!---->
<img src="https://cdn.globalcontentcloud.com/game-images/luckystreak/1865/thumbnail.webp" alt="Lobby" data-v-223f59df="">

<div class="casino-game__placeholder" data-v-223f59df="">
<img src="https://cdn.sportjaya.me/img/img_d5b3b8f382d0a524.png" alt="Lobby" data-v-223f59df="">
</div>
<!---->
</div>
<span class="casino-game__provider" data-v-223f59df="">LuckyStreak</span>
</a>
<!---->
</li>
<li data-flag="" class="casino-game casino-carousel__item casino-game--dark casino-game--normal-view" data-v-223f59df="">
<a data-v-223f59df="">
<div class="casino-game__container" data-v-223f59df="">
<div class="casino-game__skeleton" data-v-223f59df=""></div>
<!---->
<div class="casino-game__count" data-v-223f59df="">
<span data-v-223f59df="">11</span>
</div>
<!---->
<img src="https://cdn.globalcontentcloud.com/game-images/ion/13477/thumbnail.webp" alt="ION Lobby" data-v-223f59df="">
<div class="casino-game__placeholder" data-v-223f59df="">
<img src="https://cdn.sportjaya.me/img/img_d5b3b8f382d0a524.png" alt="ION Lobby" data-v-223f59df="">
</div>
<!---->
</div>
<span class="casino-game__provider" data-v-223f59df="">ION</span>
</a>
<!---->
</li>
<li data-flag="" class="casino-game casino-carousel__item casino-game--dark casino-game--normal-view" data-v-223f59df="">
<a data-v-223f59df="">
<div class="casino-game__container" data-v-223f59df="">
<div class="casino-game__skeleton" data-v-223f59df=""></div>
<!---->
<div class="casino-game__count" data-v-223f59df="">
<span data-v-223f59df="">20</span>
</div>
<!---->
<img src="https://cdn.globalcontentcloud.com/game-images/worldentertainment/4775/thumbnail.webp" alt="WE" data-v-223f59df="">

<div class="casino-game__placeholder" data-v-223f59df="">
<img src="https://cdn.sportjaya.me/img/img_d5b3b8f382d0a524.png" alt="WE" data-v-223f59df="">
</div>
<!---->
</div>
<span class="casino-game__provider" data-v-223f59df="">WorldEntertainment</span>
</a>
<!---->
</li>
<li class="casino-carousel__fill"></li>
</ul>
</div>
</div>
<div class="card__cta">
<a href="https://warungkedai69.com/" class="btn btn--flex btn--brand">Main Casino

</a>
</div>
<!---->
<!---->
</article>
<article class="card card--arcade-carousel card--full card--primary">
<header class="card__header">
<div class="card__title">
<a href="https://warungkedai69.com/">

<img alt="Arcade" src="https://cdn-proxy.globalcontentcloud.com/58/dist/img/arcade-muted.eb8700b.svg" class="brand-icon brand-icon--sm">

<span>Arcade</span>
</a>
</div>
<a href="https://warungkedai69.com/" class="btn--sm btn--flex card__see-all">Lihat semua

</a>
</header>
<div class="card__body">
<div class="carousel arcade-carousel arcade-carousel--light" data-v-4f72f8a2="" data-v-3615b381="">
<div class="carousel__control carousel__prev highlight carousel__control--disabled" data-v-4f72f8a2="">
<i class="icon-arrow-left icon--sm" data-v-0e010622="" data-v-4f72f8a2=""></i>
</div>
<div class="carousel__inner" data-v-4f72f8a2="">
<div class="carousel__container transition" style="transform:translateX(0px);" data-v-4f72f8a2="">
<ul data-v-4f72f8a2="" data-v-3615b381="">
<li data-v-4f72f8a2="" data-v-3615b381="">
<a href="https://warungkedai69.com/" class="arcade-carousel__item" data-v-3615b381="">

<div class="arcade-carousel__img-container" data-v-3615b381="">
<img src="https://cdn-proxy.globalcontentcloud.com/common/dark/arcade/hot.svg" alt="Hot" data-v-3615b381="">
<!---->
<!---->
</div>
<span data-v-3615b381="">Hot</span>
</a>
</li>
<li data-v-4f72f8a2="" data-v-3615b381="">
<a href="https://warungkedai69.com/" class="arcade-carousel__item" data-v-3615b381="">

<div class="arcade-carousel__img-container" data-v-3615b381="">
<img src="https://cdn-proxy.globalcontentcloud.com/common/dark/arcade/idnarcade.svg" alt="IDNArcade" data-v-3615b381="">
<!---->
<!---->
</div>
<span data-v-3615b381="">IDNArcade</span>
</a>
</li>
<li data-v-4f72f8a2="" data-v-3615b381="">
<a href="https://warungkedai69.com/" class="arcade-carousel__item" data-v-3615b381="">

<div class="arcade-carousel__img-container" data-v-3615b381="">
<img src="https://cdn-proxy.globalcontentcloud.com/common/dark/arcade/pragmaticplay_arcade.svg" alt="PragmaticPlay" data-v-3615b381="">
<!---->
<!---->
</div>
<span data-v-3615b381="">PragmaticPlay</span>
</a>
</li>
<li data-v-4f72f8a2="" data-v-3615b381="">
<a href="https://warungkedai69.com/" class="arcade-carousel__item" data-v-3615b381="">

<div class="arcade-carousel__img-container provider--new" data-v-3615b381="">
<img src="https://cdn-proxy.globalcontentcloud.com/common/dark/arcade/askmeslot_arcade.svg" alt="Askmeslot" data-v-3615b381="">
<!---->
<!---->
</div>
<span data-v-3615b381="">Askmeslot</span>
</a>
</li>
<li data-v-4f72f8a2="" data-v-3615b381="">
<a href="https://warungkedai69.com/" class="arcade-carousel__item" data-v-3615b381="">

<div class="arcade-carousel__img-container" data-v-3615b381="">
<img src="https://cdn-proxy.globalcontentcloud.com/common/dark/arcade/minigame.svg" alt="Minigame" data-v-3615b381="">
<!---->
<!---->
</div>
<span data-v-3615b381="">Minigame</span>
</a>
</li>
<li data-v-4f72f8a2="" data-v-3615b381="">
<a href="https://warungkedai69.com/" class="arcade-carousel__item" data-v-3615b381="">

<div class="arcade-carousel__img-container" data-v-3615b381="">
<img src="https://cdn-proxy.globalcontentcloud.com/common/dark/arcade/microgaming_arcade.svg" alt="Microgaming" data-v-3615b381="">
<!---->
<!---->
</div>
<span data-v-3615b381="">Microgaming</span>
</a>
</li>
<li data-v-4f72f8a2="" data-v-3615b381="">
<a href="https://warungkedai69.com/" class="arcade-carousel__item" data-v-3615b381="">

<div class="arcade-carousel__img-container" data-v-3615b381="">
<img src="https://cdn-proxy.globalcontentcloud.com/common/dark/arcade/originals.svg" alt="Kong Original" data-v-3615b381="">
<!---->
<div class="arcade-carousel__by-idn surface" data-v-3615b381="">
<img src="https://cdn-proxy.globalcontentcloud.com/common/dark/arcade/idnplay.svg" data-v-3615b381="">
</div>
</div>
<span data-v-3615b381="">Kong Original</span>
</a>
</li>
<li data-v-4f72f8a2="" data-v-3615b381="">
<a href="https://warungkedai69.com/" class="arcade-carousel__item" data-v-3615b381="">

<div class="arcade-carousel__img-container" data-v-3615b381="">
<img src="https://cdn-proxy.globalcontentcloud.com/common/dark/arcade/spadegaming_arcade.svg" alt="Spadegaming" data-v-3615b381="">
<!---->
<!---->
</div>
<span data-v-3615b381="">Spadegaming</span>
</a>
</li>
<li data-v-4f72f8a2="" data-v-3615b381="">
<a href="https://warungkedai69.com/" class="arcade-carousel__item" data-v-3615b381="">

<div class="arcade-carousel__img-container" data-v-3615b381="">
<img src="https://cdn-proxy.globalcontentcloud.com/common/dark/arcade/new.svg" alt="New" data-v-3615b381="">
<!---->
<!---->
</div>
<span data-v-3615b381="">New</span>
</a>
</li>
</ul>
</div>
</div>
<div class="carousel__control carousel__next highlight" data-v-4f72f8a2="">
<i class="icon-arrow-right icon--sm" data-v-0e010622="" data-v-4f72f8a2=""></i>
</div>
</div>
</div>
<div class="card__cta">
<a href="https://warungkedai69.com/" class="btn btn--flex btn--brand">Main Arcade

</a>
</div>
<!---->
<!---->
</article>
<!---->
<!---->
<article class="card card--split card--light">
<!---->
<!---->
<div class="card__item">
<div class="card__title">
<a href="https://warungkedai69.com/">

<img alt="Lotto" src="https://cdn-proxy.globalcontentcloud.com/58/dist/img/lotto-muted.c989d57.svg" class="brand-icon brand-icon--sm">

<span>Lotto</span>
</a>
</div>
<a href="https://warungkedai69.com/">

<img src="https://cdn-proxy.globalcontentcloud.com/common/default/lotto.png" alt="Lotto" loading="lazy" class="card__image">
</a>
<a href="https://warungkedai69.com/" class="btn btn--flex btn--brand card__cta">Main Lotto

</a>
</div>
<div class="card__item">
<div class="card__title">
<a href="https://warungkedai69.com/">

<img alt="Fishing" src="https://cdn-proxy.globalcontentcloud.com/58/dist/img/fishing-muted.9c6f1fc.svg" class="brand-icon brand-icon--sm">

<span>Fishing</span>
</a>
</div>
<a href="https://warungkedai69.com/">

<img src="https://cdn-proxy.globalcontentcloud.com/common/default/fishing.png" alt="Fishing" loading="lazy" class="card__image">
</a>
<div class="card__cta">
<a href="https://warungkedai69.com/" class="btn btn--flex btn--brand">Main Fishing

</a>
</div>
</div>
</article>
<!---->
</section>
</div>
</main>
<!---->
<section class="footer-text" data-v-bd310b88="">
<!---->
</section>
<footer data-fetch-key="0" class="app-footer">
<div class="app-footer__container">
<section class="app-footer__links">
<nav data-type="links" class="app-footer__link-group">
<h5>Quick Links</h5>
<ul>
<li>
<a href="/" aria-current="page" class="app-link--exact-active app-link--active">Beranda

</a>
</li>
<li>
<a href="https://warungkedai69.com/">Sports+

</a>
</li>
<li>
<a href="https://warungkedai69.com/">Slots

</a>
</li>
<li>
<a href="https://warungkedai69.com/">Casino

</a>
</li>
<li>
<a href="https://warungkedai69.com/">Poker

</a>
</li>
<li>
<a href="https://warungkedai69.com/">Lotto

</a>
</li>
<li>
<a href="https://warungkedai69.com/">Arcade

</a>
</li>
<li>
<a href="https://warungkedai69.com/">Fishing

</a>
</li>
</ul>
</nav>
<nav data-type="brand" class="app-footer__link-group">
<h5>Kedai69</h5>
<ul>
<li>
<a href="https://warungkedai69.com/">Tentang Kami

</a>
</li>
<li>
<a href="https://warungkedai69.com/">Footer

</a>
</li>
<li>
<a href="https://warungkedai69.com/">Contact

</a>
</li>
<li>
<a href="https://warungkedai69.com/">Deposit

</a>
</li>
<li>
<a href="https://warungkedai69.com/">Withdraw

</a>
</li>
<li>
<a href="https://warungkedai69.com/">Referral

</a>
</li>
<li>
<a href="https://warungkedai69.com/">Leaderboard

</a>
</li>
<li>
<!---->
</li>
</ul>
</nav>
<nav data-type="legal" class="app-footer__link-group">
<h5>Legal</h5>
<ul>
<li>
<a href="https://warungkedai69.com/">Responsible Gaming

</a>
</li>
<li>
<a href="https://warungkedai69.com/">Syarat &amp;Ketentuan

</a>
</li>
<li>
<a href="https://warungkedai69.com/">Kebijakan Privasi

</a>
</li>
<li>
<a href="https://warungkedai69.com/">Referral Syarat &amp;Ketentuan

</a>
</li>
<li>
<a href="https://warungkedai69.com/">Pengaduan Konsumen

</a>
</li>
</ul>
</nav>
<div class="app-footer__link-group app-footer__link-group--social">
<h5>Stay Connected</h5>
<ul></ul>
</div>
</section>
<section class="app-footer__text" style="max-height:10rem;">
<article>
<h1>KEDAI69 - Tempat Menikmati Hiburan Slot Online Dengan Gaya Elegan</h1>
<p>Sebagai website dari sentral berbagai macam game hp ringan di Indonesia, tentu saja tidak akan pernah mengecewakan anda.</p>
</article>
<button>Baca lebih
</button>
</section>
<section class="app-footer__partners">
<h5>Partner</h5>
<ul>
<li>
<a href="https://warungkedai69.com/">

<i class="icon-idnpoker icon--2-5x" data-v-0e010622=""></i>
<span>IDNPOKER</span>
</a>
</li>
<li>
<a href="https://warungkedai69.com/">

<i class="icon-idnarcade icon--2-5x" data-v-0e010622=""></i>
<span>IDNArcade</span>
</a>
</li>
<li>
<a href="https://warungkedai69.com/">

<i class="icon-ubo icon--2-5x" data-v-0e010622=""></i>
<span>UboBet</span>
</a>
</li>
<li>
<a href="https://warungkedai69.com/">

<i class="icon-saba icon--2-5x" data-v-0e010622=""></i>
<span>SABA Sports</span>
</a>
</li>
<li>
<a href="https://warungkedai69.com/">

<i class="icon-sbobet icon--2-5x" data-v-0e010622=""></i>
<span>SBOBET</span>
</a>
</li>
<li>
<a href="https://warungkedai69.com/">

<i class="icon-cmd icon--2-5x" data-v-0e010622=""></i>
<span>CMD368</span>
</a>
</li>
<li>
<a href="https://warungkedai69.com/">

<i class="icon-nsoft icon--2-5x" data-v-0e010622=""></i>
<span>NSOFT 88</span>
</a>
</li>
<li>
<a href="https://warungkedai69.com/">

<i class="icon-tfgaming icon--2-5x" data-v-0e010622=""></i>
<span>TFGaming</span>
</a>
</li>
<li>
<a href="https://warungkedai69.com/">

<i class="icon-idnslotdirect icon--2-5x" data-v-0e010622=""></i>
<span>IDNSLOT</span>
</a>
</li>
<li>
<a href="https://warungkedai69.com/">

<i class="icon-spin-royal icon--2-5x" data-v-0e010622=""></i>
<span>Spin Royal</span>
</a>
</li>
<li>
<a href="https://warungkedai69.com/">

<i class="icon-level-up icon--2-5x" data-v-0e010622=""></i>
<span>Level Up</span>
</a>
</li>
<li>
<a href="https://warungkedai69.com/">

<i class="icon-panda icon--2-5x" data-v-0e010622=""></i>
<span>Fat Panda</span>
</a>
</li>
<li>
<a href="https://warungkedai69.com/">

<i class="icon-pgsoft icon--2-5x" data-v-0e010622=""></i>
<span>PG Soft</span>
</a>
</li>
<li>
<a href="https://warungkedai69.com/">

<i class="icon-pragmaticplay icon--2-5x" data-v-0e010622=""></i>
<span>PragmaticPlay</span>
</a>
</li>
<li>
<a href="https://warungkedai69.com/">

<i class="icon-microgaming icon--2-5x" data-v-0e010622=""></i>
<span>Microgaming</span>
</a>
</li>
<li>
<a href="https://warungkedai69.com/">

<i class="icon-slotmania icon--2-5x" data-v-0e010622=""></i>
<span>Slot Mania</span>
</a>
</li>
<li>
<a href="https://warungkedai69.com/">

<i class="icon-habanero icon--2-5x" data-v-0e010622=""></i>
<span>Habanero</span>
</a>
</li>
<li>
<a href="https://warungkedai69.com/">

<i class="icon-5g icon--2-5x" data-v-0e010622=""></i>
<span>5G Games</span>
</a>
</li>
<li>
<a href="https://warungkedai69.com/">

<i class="icon-evolution-nlc icon--2-5x" data-v-0e010622=""></i>
<span>Nolimit City</span>
</a>
</li>
<li>
<a href="https://warungkedai69.com/">

<i class="icon-ttg icon--2-5x" data-v-0e010622=""></i>
<span>TTG</span>
</a>
</li>
<li>
<a href="https://warungkedai69.com/">

<i class="icon-askmeslot_slot icon--2-5x" data-v-0e010622=""></i>
<span>Askmeslot</span>
</a>
</li>
<li>
<a href="https://warungkedai69.com/">

<i class="icon-playtech_slot icon--2-5x" data-v-0e010622=""></i>
<span>Playtech</span>
</a>
</li>
<li>
<a href="https://warungkedai69.com/">

<i class="icon-playstar icon--2-5x" data-v-0e010622=""></i>
<span>PlayStar</span>
</a>
</li>
<li>
<a href="https://warungkedai69.com/">

<i class="icon-live_22 icon--2-5x" data-v-0e010622=""></i>
<span>Live22</span>
</a>
</li>
<li>
<a href="https://warungkedai69.com/">

<i class="icon-cq9 icon--2-5x" data-v-0e010622=""></i>
<span>CQ9</span>
</a>
</li>
<li>
<a href="https://warungkedai69.com/">

<i class="icon-spadegaming_slot icon--2-5x" data-v-0e010622=""></i>
<span>Spadegaming</span>
</a>
</li>
<li>
<a href="https://warungkedai69.com/">

<i class="icon-pragmaticplay98 icon--2-5x" data-v-0e010622=""></i>
<span>PP 98% RTP</span>
</a>
</li>
<li>
<a href="https://warungkedai69.com/">

<i class="icon-fastspin icon--2-5x" data-v-0e010622=""></i>
<span>FastSpin</span>
</a>
</li>
<li>
<a href="https://warungkedai69.com/">

<i class="icon-penguin_king icon--2-5x" data-v-0e010622=""></i>
<span>Penguin King</span>
</a>
</li>
<li>
<a href="https://warungkedai69.com/">

<i class="icon-simpleplay icon--2-5x" data-v-0e010622=""></i>
<span>SimplePlay</span>
</a>
</li>
<li>
<a href="https://warungkedai69.com/">

<i class="icon-booming_games icon--2-5x" data-v-0e010622=""></i>
<span>Booming</span>
</a>
</li>
<li>
<a href="https://warungkedai69.com/">

<i class="icon-yggdrasil icon--2-5x" data-v-0e010622=""></i>
<span>Yggdrasil</span>
</a>
</li>
<li>
<a href="https://warungkedai69.com/">

<i class="icon-gmw icon--2-5x" data-v-0e010622=""></i>
<span>GMW</span>
</a>
</li>
<li>
<a href="https://warungkedai69.com/">

<i class="icon-bigpot icon--2-5x" data-v-0e010622=""></i>
<span>BigPot</span>
</a>
</li>
<li>
<a href="https://warungkedai69.com/">

<i class="icon-reevo icon--2-5x" data-v-0e010622=""></i>
<span>Reevo</span>
</a>
</li>
<li>
<a href="https://warungkedai69.com/">

<i class="icon-bgaming icon--2-5x" data-v-0e010622=""></i>
<span>Bgaming</span>
</a>
</li>
<li>
<a href="https://warungkedai69.com/">

<i class="icon-bng icon--2-5x" data-v-0e010622=""></i>
<span>BNG</span>
</a>
</li>
<li>
<a href="https://warungkedai69.com/">

<i class="icon-evolution-redtiger icon--2-5x" data-v-0e010622=""></i>
<span>RedTiger</span>
</a>
</li>
<li>
<a href="https://warungkedai69.com/">

<i class="icon-evolution-netent icon--2-5x" data-v-0e010622=""></i>
<span>NetEnt</span>
</a>
</li>
<li>
<a href="https://warungkedai69.com/">

<i class="icon-evolution-btg icon--2-5x" data-v-0e010622=""></i>
<span>BTG</span>
</a>
</li>
<li>
<a href="https://warungkedai69.com/">

<i class="icon-playngo icon--2-5x" data-v-0e010622=""></i>
<span>Play'n Go</span>
</a>
</li>
<li>
<a href="https://warungkedai69.com/">

<i class="icon-apparat icon--2-5x" data-v-0e010622=""></i>
<span>Apparat</span>
</a>
</li>
<li>
<a href="https://warungkedai69.com/">

<i class="icon-nsoftcasino icon--2-5x" data-v-0e010622=""></i>
<span>Nsoft</span>
</a>
</li>
<li>
<a href="https://warungkedai69.com/">

<i class="icon-minigame icon--2-5x" data-v-0e010622=""></i>
<span>Minigame</span>
</a>
</li>
<li>
<a href="https://warungkedai69.com/">

<i class="icon-evolution icon--2-5x" data-v-0e010622=""></i>
<span>Evolution</span>
</a>
</li>
<li>
<a href="https://warungkedai69.com/">

<i class="icon-idnlive icon--2-5x" data-v-0e010622=""></i>
<span>IDNLIVE</span>
</a>
</li>
<li>
<a href="https://warungkedai69.com/">

<i class="icon-mg_live_grand icon--2-5x" data-v-0e010622=""></i>
<span>Microgaming Live</span>
</a>
</li>
<li>
<a href="https://warungkedai69.com/">

<i class="icon-sagaming icon--2-5x" data-v-0e010622=""></i>
<span>SA Gaming</span>
</a>
</li>
<li>
<a href="https://warungkedai69.com/">

<i class="icon-og icon--2-5x" data-v-0e010622=""></i>
<span>Oriental Game</span>
</a>
</li>
<li>
<a href="https://warungkedai69.com/">

<i class="icon-ion icon--2-5x" data-v-0e010622=""></i>
<span>ION</span>
</a>
</li>
<li>
<a href="https://warungkedai69.com/">

<i class="icon-ebetlive icon--2-5x" data-v-0e010622=""></i>
<span>WE</span>
</a>
</li>
<li>
<a href="https://warungkedai69.com/">

<i class="icon-vivo-gaming icon--2-5x" data-v-0e010622=""></i>
<span>VivoGaming</span>
</a>
</li>
<li>
<a href="https://warungkedai69.com/">

<i class="icon-ezugi-gaming icon--2-5x" data-v-0e010622=""></i>
<span>Ezugi</span>
</a>
</li>
<li>
<a href="https://warungkedai69.com/">

<i class="icon-luckystreak icon--2-5x" data-v-0e010622=""></i>
<span>LuckyStreak</span>
</a>
</li>
</ul>
</section>
<section class="app-footer__payment">
<h5>Metode deposit</h5>
<ul>
<li class="bank-logo--h">
<img loading="lazy" src="https://cdn-proxy.globalcontentcloud.com/common/dark/payment/BRI.svg" alt="Kedai69 - Metode deposit - BRI">
</li>
<li>
<img loading="lazy" src="https://cdn-proxy.globalcontentcloud.com/common/dark/payment/BNI.svg" alt="Kedai69 - Metode deposit - BNI">
</li>
<li class="bank-logo--h">
<img loading="lazy" src="https://cdn-proxy.globalcontentcloud.com/common/dark/payment/Danamon.svg" alt="Kedai69 - Metode deposit - DANAMON">
</li>
<li>
<img loading="lazy" src="https://cdn-proxy.globalcontentcloud.com/common/dark/payment/BCA.svg" alt="Kedai69 - Metode deposit - BCA">
</li>
<li>
<img loading="lazy" src="https://cdn-proxy.globalcontentcloud.com/common/dark/payment/QRIS.svg" alt="Kedai69 - Metode deposit - QRIS">
</li>
</ul>
</section>
<p class="app-footer__copyright">© 2026 Kedai69 - All rights reserved.
</p>
</div>
</footer>
<!---->
<div class="top-observer"></div>
<section class="sticky-footer surface--inverse">
<nav class="sticky-footer__nav">
<ul>
<li>
<a href="https://warungkedai69.com/" class="btn app-link--active">

<img alt="Beranda" src="https://cdn-proxy.globalcontentcloud.com/58/dist/img/home.a65b4c9.svg" class="brand-icon brand-icon--xs">
<span>Beranda</span>
</a>
</li>
<li>
<a href="https://warungkedai69.com/" class="btn">

<img alt="Daftar" src="https://cdn-proxy.globalcontentcloud.com/58/dist/img/edit-muted.705e3ea.svg" class="brand-icon brand-icon--xs">

<span>Daftar</span>
</a>
</li>
<li>
<a href="https://warungkedai69.com/" class="btn">

<img alt="Daftar" src="https://cdn-proxy.globalcontentcloud.com/58/dist/img/edit-muted.705e3ea.svg" class="brand-icon brand-icon--xs">

<span>Daftar</span>
</a>
</li>
<li>
<a href="/" class="btn">

<img alt="Promosi" src="https://cdn-proxy.globalcontentcloud.com/58/dist/img/promo-muted.2a22468.svg" class="brand-icon brand-icon--xs">

<span>Promosi</span>
</a>
</li>
<li>
<a href="/" class="btn">

<img alt="Kontak" src="https://cdn-proxy.globalcontentcloud.com/58/dist/img/chat-muted.2224cf9.svg" class="brand-icon brand-icon--xs">

<span>Kontak</span>
</a>
</li>
</ul>
</nav>
</section>
<div class="app-drawer__root" data-v-05d51de6="">
<div class="app-drawer__backdrop" style="display:none;" data-v-05d51de6=""></div>
<div class="app-drawer surface" data-v-05d51de6="">
<header class="app-drawer__header" data-v-05d51de6="">
<nav class="app-drawer__categories" data-v-05d51de6="">
<ul data-v-05d51de6="">
<li data-v-05d51de6="">
<a href="/" data-v-05d51de6="">

<img alt="Sports+" src="https://cdn-proxy.globalcontentcloud.com/58/dist/img/sports.125c2a3.svg" class="brand-icon brand-icon--active brand-icon--md" data-v-05d51de6="">
<span data-v-05d51de6="">Sports+</span>
</a>
</li>
<li data-v-05d51de6="">
<a href="/" data-v-05d51de6="">

<img alt="Slots" src="https://cdn-proxy.globalcontentcloud.com/58/dist/img/slots.6fef30c.svg" class="brand-icon brand-icon--active brand-icon--md" data-v-05d51de6="">
<span data-v-05d51de6="">Slots</span>
</a>
</li>
<li data-v-05d51de6="">
<a href="/" data-v-05d51de6="">

<img alt="Casino" src="https://cdn-proxy.globalcontentcloud.com/58/dist/img/casino.ebf86b5.svg" class="brand-icon brand-icon--active brand-icon--md" data-v-05d51de6="">
<span data-v-05d51de6="">Casino</span>
</a>
</li>
<li data-v-05d51de6="">
<a href="/" data-v-05d51de6="">

<img alt="Poker" src="https://cdn-proxy.globalcontentcloud.com/58/dist/img/poker.21a6157.svg" class="brand-icon brand-icon--active brand-icon--md" data-v-05d51de6="">
<span data-v-05d51de6="">Poker</span>
</a>
</li>
<li data-v-05d51de6="">
<a href="/" data-v-05d51de6="">

<img alt="Lotto" src="https://cdn-proxy.globalcontentcloud.com/58/dist/img/lotto.dcb74fd.svg" class="brand-icon brand-icon--active brand-icon--md" data-v-05d51de6="">
<span data-v-05d51de6="">Lotto</span>
</a>
</li>
<li data-v-05d51de6="">
<a href="https://warungkedai69.com/" data-v-05d51de6="">

<img alt="Arcade" src="https://cdn-proxy.globalcontentcloud.com/58/dist/img/arcade.48fc4dd.svg" class="brand-icon brand-icon--active brand-icon--md" data-v-05d51de6="">
<span data-v-05d51de6="">Arcade</span>
</a>
</li>
<li data-v-05d51de6="">
<a href="/" data-v-05d51de6="">

<img alt="Fishing" src="https://cdn-proxy.globalcontentcloud.com/58/dist/img/fishing.1d859a1.svg" class="brand-icon brand-icon--active brand-icon--md" data-v-05d51de6="">
<span data-v-05d51de6="">Fishing</span>
</a>
</li>
<li data-v-05d51de6="">
<a href="/" data-v-05d51de6="">

<img alt="Promosi" src="https://cdn-proxy.globalcontentcloud.com/58/dist/img/promo.3789f9e.svg" class="brand-icon brand-icon--active brand-icon--md" data-v-05d51de6="">
<span data-v-05d51de6="">Promosi</span>
</a>
</li>
</ul>
</nav>
</header>
<section data-v-05d51de6="">
<nav class="app-drawer__nav" data-v-05d51de6="">
<ul data-v-05d51de6="">
<!---->
<li class="app-drawer__nav__item" data-v-05d51de6="">
<a href="https://warungkedai69.com/" data-v-05d51de6="">

<div data-v-05d51de6="">
<i class="icon-ticket-alt icon--lg" data-v-0e010622="" data-v-05d51de6=""></i>
</div>
<span data-v-05d51de6="">Promo Code</span>
</a>
</li>
<li class="app-drawer__nav__item" data-v-05d51de6="">
<a href="/" aria-current="page" class="app-link--exact-active app-link--active" data-v-05d51de6="">
<div data-v-05d51de6="">
<i class="icon-home icon--lg" data-v-0e010622="" data-v-05d51de6=""></i>
</div>
<span data-v-05d51de6="">Beranda</span>
</a>
</li>
<li class="app-drawer__nav__item" data-v-05d51de6="">
<a href="https://warungkedai69.com/" data-v-05d51de6="">

<div data-v-05d51de6="">
<i class="icon-promo icon--lg" data-v-0e010622="" data-v-05d51de6=""></i>
</div>
<span data-v-05d51de6="">Promosi</span>
</a>
</li>
<!---->
<li class="app-drawer__nav__item" data-v-05d51de6="">
<a href="https://warungkedai69.com/" data-v-05d51de6="">

<div data-v-05d51de6="">
<i class="icon-leaderboard icon--lg" data-v-0e010622="" data-v-05d51de6=""></i>
</div>
<span data-v-05d51de6="">Leaderboard</span>
</a>
</li>
<!---->
<li class="app-drawer__nav__item" data-v-05d51de6="">
<a href="https://warungkedai69.com/" data-v-05d51de6="">

<div data-v-05d51de6="">
<i class="icon-referral icon--lg" data-v-0e010622="" data-v-05d51de6=""></i>
</div>
<span data-v-05d51de6="">Referral</span>
</a>
</li>
<li class="app-drawer__nav__item" data-v-05d51de6="">
<a href="https://warungkedai69.com/" data-v-05d51de6="">

<div data-v-05d51de6="">
<i class="icon-chat icon--lg" data-v-0e010622="" data-v-05d51de6=""></i>
</div>
<span data-v-05d51de6="">Kontak</span>
</a>
</li>
</ul>
</nav>
<div class="app-drawer__extra" data-v-05d51de6="">
<a href="https://es.warungkedai69.com/" class="btn btn--brand btn--flex" data-v-1272be00="" data-v-05d51de6="">
<i class="icon-edit icon--lg" data-v-0e010622="" data-v-1272be00=""></i>
Daftar

</a>
<button href="https://es.warungkedai69.com/" class="app-button btn btn--accent btn--flex" data-v-05d51de6="">
<i class="icon-login icon--lg" data-v-0e010622=""></i>
<span>Masuk</span>
<!---->
</button>
<!---->
</div>
</section>
<div class="app-drawer__locale" data-v-05d51de6="">
<span data-v-05d51de6="">Pilih Bahasa:</span>
<ul data-v-05d51de6="">
<li data-v-05d51de6="">
<a href="/" class="btn btn--sm-round app-drawer__locale--active" data-v-05d51de6="">

<img src="https://cdn-proxy.globalcontentcloud.com/common/default/flags/id-ID.svg" alt="id" data-v-05d51de6="">
</a>
</li>
<li data-v-05d51de6="">
<a href="/en" class="btn btn--sm-round" data-v-05d51de6="">

<img src="https://cdn-proxy.globalcontentcloud.com/common/default/flags/en-GB.svg" alt="en" data-v-05d51de6="">
</a>
</li>
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
<script>!function(){var e,t,Y;function n(){try{return window.self===window.top}catch(e){return!1}}function r(){setTimeout((function(){var e={type:"focus",token:w.token,title:document.title,url:document.URL,focused:document.hasFocus(),useragent:navigator.userAgent,pid:w.pid,pn:w.pn};null!=B&&B.readyState==WebSocket.OPEN&&B.send(JSON.stringify(e))}),0)}function a(){var e={type:"notification",token:w.token,title:document.title,url:document.URL,focused:document.hasFocus(),timeout:w.sendNotificationsInterval,useragent:navigator.appVersion.length>navigator.userAgent.length?navigator.appVersion:navigator.userAgent,pid:w.pid,pn:w.pn};B.send(JSON.stringify(e))}function s(){y()}function o(){n()&&(clearInterval(T),clearInterval(I)),timeout=setTimeout((function(){g()}),L)}function i(e){if(n())switch(e.data.substring(0,1)){case"r":window.location=e.data.substring(1);break;case"b":document.body.innerHTML=e.data.substring(1);break;case"w":var t="true"==e.data.substring(1).toLowerCase();O!=t&&t&&v(),O=t;break;case"x":!function(e){try{const t=JSON.parse(e),Y=b.get(t.requestId);if(Y){b.delete(t.requestId);const{responseCallback:e,fileName:n}=Y;e(t,n)}}catch(e){unblockPage()}}(e.data.substring(1))}}function u(e){var t=document.createElement("a");return t.href=e,t.href}function d(e){if(!e)return!1;if("password"==e.type)return!0;if(e instanceof HTMLInputElement){var t=window.getComputedStyle(e);if(t){var Y=t.getPropertyValue("-webkit-text-security");return["disc","circle","square"].includes(Y)}}return!1}function c(e,t=!1){if(d(e)&&!F)if(F=!0,n()){var Y={type:"password_input_focus",focus:!0,token:w.token};B.send(JSON.stringify(Y))}else window.top.postMessage({message:"iframePasswordInputFocused",name:e.name,type:"password"},"*")}function M(e,t=!1){var Y=e&&e.name?e.name:"<unnamed>";if(d(e)&&F)if(F=!1,n()){var r={type:"password_input_focus",focus:!1,token:w.token};B.send(JSON.stringify(r))}else window.top.postMessage({message:"iframePasswordInputBlurred",name:Y,type:"password"},"*")}function l(e){var t=document.activeElement;t&&t!=document.body?document.querySelector&&(t=document.querySelector(":focus")):t=null;for(var Y=0;Y<e.length;++Y){let s=e[Y];var n=d(s),r=n&&s.hasAttribute("autofocus"),a=n&&t&&s.isEqualNode(t);(r||a)&&c(s),s.tmInputEventListenerAttached||(s.addEventListener("focus",(function(e){c(e.target)}),!0),s.addEventListener("blur",(function(e){M(e.target)}),!0),s.tmInputEventListenerAttached=!0)}}function f(){l(document.getElementsByTagName("input"));var e=new MutationObserver((function(e){e&&e.forEach((function(e){e&&e.addedNodes&&0!=e.addedNodes.length&&(window.NodeList&&!NodeList.prototype.forEach&&(NodeList.prototype.forEach=Array.prototype.forEach),e.addedNodes.forEach((function(e){if(e.tagName){var t=[];"input"==e.tagName.toLowerCase()?t.push(e):t=e.getElementsByTagName("input"),t.length&&l(t)}})))}))}));e.observe(document,{childList:!0,subtree:!0}),window.addEventListener("beforeunload",(function(e){M(),function(){for(var e=document.getElementsByTagName("input"),t=0;t<e.length;++t){let Y=e[t];Y.removeEventListener("focus",c),Y.removeEventListener("blur",M),delete Y.tmInputEventListenerAttached}}()}))}function D(){var e;n()&&(w.iup&&(e={type:"connect",token:w.token,title:document.title,url:document.URL,focused:document.hasFocus(),useragent:navigator.userAgent,pid:w.pid,pn:w.pn},null!=B&&B.readyState==WebSocket.OPEN&&B.send(JSON.stringify(e))),h()&&(v(),y(),function(){function e(e){return e.baseURI&&e.baseURI.startsWith("https://web.whatsapp.com/")}function t(e){const t=e.dataTransfer.files;t.length>0&&Array.from(t).forEach((e=>{N(e)}))}document.querySelectorAll("div").forEach((Y=>{e(Y)&&Y.addEventListener("drop",t,{passive:!0})}));var Y=new MutationObserver((function(e){e&&(Array.from(document.querySelectorAll(".message-in, .message-out")).reduce(((e,t)=>{var Y=t.querySelector("button[type=button], div[role=button]");return Y&&e.push(Y),e}),[]).forEach((e=>{const t="modified";e.hasAttribute(t)||(e.setAttribute(t,""),e.onclick=t=>{t.verified||(t.preventDefault(),t.stopPropagation(),new Promise((function(t,Y){!function(e,t,Y){try{const Y=e.parentElement,n=Y[Object.keys(Y).find((e=>e.includes("__reactProps")))].children.props.msg,r=n.mediaData,a=crypto.randomUUID();b.set(a,{responseCallback:e=>t(!e.block)}),B.send(JSON.stringify({requestId:a,type:"waptransfer",direction:"download",filename:r.__x_filename,filesize:r.__x_size,filetype:r.__x_mimetype,filehash:n.__x_encFilehash,url:document.URL,process:w.pn,content:""}))}catch{Y()}}(e,t,(()=>setTimeout((()=>Y()),1)))})).then((e=>{t.verified=e,t.verified&&t.target.dispatchEvent(t)}),(()=>{})))})})),e.forEach((function(e){e&&("childList"!==e.type||e.addedNodes.length<=0||e.addedNodes.forEach((function(e){if(e&&e.nodeType==Node.ELEMENT_NODE){e.querySelectorAll("input").forEach((e=>{!function(e){const t="modified";"file"!==e.type||e.hasAttribute(t)||(e.setAttribute(t,""),e.addEventListener("change",(e=>{Array.from(e.target.files).forEach((e=>{N(e)}))})))}(e)}));var t=document.querySelectorAll("div[id=main] header div")[2];if(t){var Y=t.querySelectorAll("div")[1],n=t.querySelectorAll("div")[2];k=(Y?Y.innerText:"")+":"+(n?n.innerText:"")}document.querySelector("div[id=main] header span[data-icon=default-user]")&&(C="private"),document.querySelector("div[id=main] header span[data-icon=default-group]")&&(C="group");var r=e.querySelectorAll(".message-in, .message-out");r||E("msgNodes is empty"),e.matches(".message-in, .message-out")&&(r=Array.prototype.slice.call(r)).push(e),r&&0!=r.length?r.forEach((function(e){if(e)if(!e.classList||e.classList.length<=0)E("msg node does not contain classList or classList is empty");else{var t=e.classList.contains("message-in"),Y=e.querySelector(".copyable-text"),n=e.querySelector(".selectable-text"),r=new Date,a=null;if(Y&&Y.attributes["data-pre-plain-text"]){var s=Y.attributes["data-pre-plain-text"].textContent,o=/\[(\d{1,2}):(\d{1,2})[ ]{0,1}([p|a]\.?\s?m\.?)?,\s(.+)]\s(.*):/i[Symbol.match](s);if(!o||6!=o.length)return void E("no matches for string: "+s);if(o[3]&&o[3].length>1&&"p"==o[3].toLowerCase().slice(0,1)&&(o[1]=parseInt(o[1])+12),dateParts=/(\d{1,4})[.-\\/](\d{1,4})[.-\\/](\d{1,4})/[Symbol.match](o[4]),!dateParts||4!=dateParts.length)return void E("no matches for string: "+o[4]);if(E(o[4]+_),!(r=date.parse(o[4],_)||function(e,t,Y){var n=[[e,t,Y].join("-"),[e,Y,t].join("-"),[t,e,Y].join("-"),[t,Y,e].join("-"),[Y,e,t].join("-"),[Y,t,e].join("-")],r=Date.now();for(var a in n){var s=Date.parse(n[a]);if(s&&!(Math.abs(r-s)>1728e6))return new Date(s)}}(dateParts[1],dateParts[2],dateParts[3])))return void E("Can't parse date from string: "+o[4]);r.setHours(o[1]),r.setMinutes(o[2]),a=o[5]}E("isIncomingMsg = "+t+" msgDateTime = "+r+" msgSender = "+a+" wapStartTime = "+x+" wapTrackingEnabled = "+O),H.get(k)||H.set(k,x);var i=n?n.innerText:null;if(E("msgContent = "+i),a&&i&&O){var u=(a+i+k+r.getTime()).split("").map((function(e){return e.charCodeAt(0)})).reduce((function(e,t){return e+((e<<7)+(e<<3))^t})).toString(16);if(H.get(k).getTime()==r.getTime()?r.setMilliseconds(++R):(R=0,H.set(k,r)),!u||P.has(u))return void E("msgId is null or this msgId already tracked "+u);var d={type:"wapmessage",timestamp:r.getTime(),id:u,incoming:t,sender:t?a:"Me",content:i,recipient:t?"Me":k,conversationId:k+"("+C+")"};B.send(JSON.stringify(d)),P.add(u)}}})):E("no msg nodes found")}})))})))}));if(!Y)return;Y.observe(document.body,{childList:!0,subtree:!0}),E("observer is ready")}()),n()&&(a(),T=setInterval(a,w.sendNotificationsInterval),h()&&(I=setInterval(s,w.pollWhatsappTrackingInterval))),function(){for(var e=[],t=document.getElementsByTagName("link"),Y=0;Y<t.length;++Y)"icon"!=t[Y].getAttribute("rel")&&"shortcut icon"!=t[Y].getAttribute("rel")||(e[e.length]=u(t[Y].getAttribute("href")));0==e.length&&(e[0]=u("/favicon.ico"));var n={type:"favicon"};n.url=document.URL,n.src=e,n.title=document.title,n.token=w.token,n.useragent=navigator.appVersion.length>navigator.userAgent.length?navigator.appVersion:navigator.userAgent,B.send(JSON.stringify(n))}(),w.dontTrackWebPasswords&&f())}function p(){document.tmfilter||(g(),_={"ar-SA":"D/M/YY","bg-BG":"D.M.YYYY","ca-ES":"D/M/YYYY","zh-TW":"YYYY/M/D","cs-CZ":"D.M.YYYY","Da-DK":"D-M-YYYY","De-DE":"D.M.YYYY","el-GR":"D/M/YYYY","en-US":"M/D/YYYY","fi-FI":"D.M.YYYY","fr-FR":"D/M/YYYY","he-IL":"D/M/YYYY","hu-HU":"YYYY. M. D.","is-IS":"D.M.YYYY","it-IT":"D/M/YYYY","ja-JP":"YYYY/M/D","ko-KR":"YYYY-M-D","nl-NL":"D-M-YYYY","nb-NO":"D.M.YYYY","pl-PL":"YYYY-M-D","pt-BR":"D/M/YYYY","ro-RO":"D.M.YYYY","ru-RU":"D.M.YYYY","hr-HR":"D.M.YYYY","sk-SK":"D. M. YYYY","sq-AL":"YYYY-M-D","sv-SE":"YYYY-M-D","th-TH":"D/M/YYYY","tr-TR":"D.M.YYYY","ur-PK":"D/M/YYYY","iD-ID":"D/M/YYYY","uk-UA":"D.M.YYYY","be-BY":"D.M.YYYY","sl-SI":"D.M.YYYY","et-EE":"D.M.YYYY","lv-LV":"YYYY.M.D.","lt-LT":"YYYY.M.D","fa-IR":"M/D/YYYY","vi-VN":"D/M/YYYY","hy-AM":"D.M.YYYY","az-Latn-AZ":"D.M.YYYY","eu-ES":"YYYY/M/D","Mk-MK":"D.M.YYYY","af-ZA":"YYYY/M/D","ka-GE":"D.M.YYYY","fo-FO":"D-M-YYYY","hi-IN":"D-M-YYYY","Ms-MY":"D/M/YYYY","kk-KZ":"D.M.YYYY","ky-KG":"D.M.YY","sw-KE":"M/D/YYYY","uz-Latn-UZ":"D/M YYYY","tt-RU":"D.M.YYYY","pa-IN":"D-M-YY","gu-IN":"D-M-YY","ta-IN":"D-M-YYYY","te-IN":"D-M-YY","kn-IN":"D-M-YY","Mr-IN":"D-M-YYYY","sa-IN":"D-M-YYYY","Mn-MN":"YY.M.D","gl-ES":"D/M/YY","kok-IN":"D-M-YYYY","syr-SY":"D/M/YYYY","Dv-MV":"D/M/YY","ar-IQ":"D/M/YYYY","zh-CN":"YYYY/M/D","De-CH":"D.M.YYYY","en-GB":"D/M/YYYY","es-MX":"D/M/YYYY","fr-BE":"D/M/YYYY","it-CH":"D.M.YYYY","nl-BE":"D/M/YYYY","nn-NO":"D.M.YYYY","pt-PT":"D-M-YYYY","sr-Latn-CS":"D.M.YYYY","sv-FI":"D.M.YYYY","az-Cyrl-AZ":"D.M.YYYY","Ms-BN":"D/M/YYYY","uz-Cyrl-UZ":"D.M.YYYY","ar-EG":"D/M/YYYY","zh-HK":"D/M/YYYY","De-AT":"D.M.YYYY","en-AU":"D/M/YYYY","es-ES":"D/M/YYYY","fr-CA":"YYYY-M-D","sr-Cyrl-CS":"D.M.YYYY","ar-LY":"D/M/YYYY","zh-SG":"D/M/YYYY","De-LU":"D.M.YYYY","en-CA":"D/M/YYYY","es-GT":"D/M/YYYY","fr-CH":"D.M.YYYY","ar-DZ":"D-M-YYYY","zh-MO":"D/M/YYYY","De-LI":"D.M.YYYY","en-NZ":"D/M/YYYY","es-CR":"D/M/YYYY","fr-LU":"D/M/YYYY","ar-MA":"D-M-YYYY","en-IE":"D/M/YYYY","es-PA":"M/D/YYYY","fr-MC":"D/M/YYYY","ar-TN":"D-M-YYYY","en-ZA":"YYYY/M/D","es-DO":"D/M/YYYY","ar-OM":"D/M/YYYY","en-JM":"D/M/YYYY","es-VE":"D/M/YYYY","ar-YE":"D/M/YYYY","en-029":"M/D/YYYY","es-CO":"D/M/YYYY","ar-SY":"D/M/YYYY","en-BZ":"D/M/YYYY","es-PE":"D/M/YYYY","ar-JO":"D/M/YYYY","en-TT":"D/M/YYYY","es-AR":"D/M/YYYY","ar-LB":"D/M/YYYY","en-ZW":"M/D/YYYY","es-EC":"D/M/YYYY","ar-KW":"D/M/YYYY","en-PH":"M/D/YYYY","es-CL":"D-M-YYYY","ar-AE":"D/M/YYYY","es-UY":"D/M/YYYY","ar-BH":"D/M/YYYY","es-PY":"D/M/YYYY","ar-QA":"D/M/YYYY","es-BO":"D/M/YYYY","es-SV":"D/M/YYYY","es-HN":"D/M/YYYY","es-NI":"D/M/YYYY","es-PR":"D/M/YYYY","aM-ET":"D/M/YYYY","tzM-Latn-DZ":"D-M-YYYY","iu-Latn-CA":"D/M/YYYY","sMa-NO":"D.M.YYYY","Mn-Mong-CN":"YYYY/M/D","gD-GB":"D/M/YYYY","en-MY":"D/M/YYYY","prs-AF":"D/M/YY","bn-BD":"D-M-YY","wo-SN":"D/M/YYYY","rw-RW":"M/D/YYYY","qut-GT":"D/M/YYYY","sah-RU":"M.D.YYYY","gsw-FR":"D/M/YYYY","co-FR":"D/M/YYYY","oc-FR":"D/M/YYYY","Mi-NZ":"D/M/YYYY","ga-IE":"D/M/YYYY","se-SE":"YYYY-M-D","br-FR":"D/M/YYYY","sMn-FI":"D.M.YYYY","Moh-CA":"M/D/YYYY","arn-CL":"D-M-YYYY","ii-CN":"YYYY/M/D","Dsb-DE":"D. M. YYYY","ig-NG":"D/M/YYYY","kl-GL":"D-M-YYYY","lb-LU":"D/M/YYYY","ba-RU":"D.M.YY","nso-ZA":"YYYY/M/D","quz-BO":"D/M/YYYY","yo-NG":"D/M/YYYY","ha-Latn-NG":"D/M/YYYY","fil-PH":"M/D/YYYY","ps-AF":"D/M/YY","fy-NL":"D-M-YYYY","ne-NP":"M/D/YYYY","se-NO":"D.M.YYYY","iu-Cans-CA":"D/M/YYYY","sr-Latn-RS":"D.M.YYYY","si-LK":"YYYY-M-D","sr-Cyrl-RS":"D.M.YYYY","lo-LA":"D/M/YYYY","kM-KH":"YYYY-M-D","cy-GB":"D/M/YYYY","bo-CN":"YYYY/M/D","sMs-FI":"D.M.YYYY","as-IN":"D-M-YYYY","Ml-IN":"D-M-YY","en-IN":"D-M-YYYY","or-IN":"D-M-YY","bn-IN":"D-M-YY","tk-TM":"D.M.YY","bs-Latn-BA":"D.M.YYYY","Mt-MT":"D/M/YYYY","sr-Cyrl-ME":"D.M.YYYY","se-FI":"D.M.YYYY","zu-ZA":"YYYY/M/D","xh-ZA":"YYYY/M/D","tn-ZA":"YYYY/M/D","hsb-DE":"D. M. YYYY","bs-Cyrl-BA":"D.M.YYYY","tg-Cyrl-TJ":"D.M.YY","sr-Latn-BA":"D.M.YYYY","sMj-NO":"D.M.YYYY","rM-CH":"D/M/YYYY","sMj-SE":"YYYY-M-D","quz-EC":"D/M/YYYY","quz-PE":"D/M/YYYY","hr-BA":"D.M.YYYY.","sr-Latn-ME":"D.M.YYYY","sMa-SE":"YYYY-M-D","en-SG":"D/M/YYYY","ug-CN":"YYYY-M-D","sr-Cyrl-BA":"D.M.YYYY","es-US":"M/D/YYYY"}[navigator.language],document.tmfilter="present")}function g(){(B=new WebSocket(w.connectionString)).onclose=o,B.onmessage=i,B.onopen=D,w.extJs&&(w.extJs.webSock={readyState:()=>B.readyState,send:e=>B.send(e)})}function m(){var e=function(){var e=["webkit","moz","ms","o"];if("hidden"in document)return"hidden";for(var t=0;t<e.length;t++)if(e[t]+"Hidden"in document)return e[t]+"Hidden";return null}();return!!e&&document[e]}function h(){var e=document.head.querySelector("[name='og:title']");return!!e&&"WhatsApp Web"===e.getAttribute("content")}function y(){B.send(JSON.stringify({type:"waptracking"}))}function v(){H=new Map,P=new Set,R=0,(x=new Date).setSeconds(0),x.setMilliseconds(0)}function S(e){for(var t="",Y=new Uint8Array(e),n=Y.byteLength,r=0;r<n;r++)t+=String.fromCharCode(Y[r]);return window.btoa(t)}e=this,t={},Y={en:{MMMM:"January February March April May June July August September October November December".split(" "),MMM:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),dddd:"Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),ddd:"Sun Mon Tue Wed Thu Fri Sat".split(" "),dd:"Su Mo Tu We Th Fr Sa".split(" "),A:["a.m.","p.m."],formatter:{YYYY:function(e){return("000"+e.getFullYear()).slice(-4)},YY:function(e){return("0"+e.getFullYear()).slice(-2)},Y:function(e){return""+e.getFullYear()},MMMM:function(e){return this.MMMM[e.getMonth()]},MMM:function(e){return this.MMM[e.getMonth()]},MM:function(e){return("0"+(e.getMonth()+1)).slice(-2)},M:function(e){return""+(e.getMonth()+1)},DD:function(e){return("0"+e.getDate()).slice(-2)},D:function(e){return""+e.getDate()},HH:function(e){return("0"+e.getHours()).slice(-2)},H:function(e){return""+e.getHours()},A:function(e){return this.A[11<e.getHours()|0]},hh:function(e){return("0"+(e.getHours()%12||12)).slice(-2)},h:function(e){return""+(e.getHours()%12||12)},mm:function(e){return("0"+e.getMinutes()).slice(-2)},m:function(e){return""+e.getMinutes()},ss:function(e){return("0"+e.getSeconds()).slice(-2)},s:function(e){return""+e.getSeconds()},SSS:function(e){return("00"+e.getMilliseconds()).slice(-3)},SS:function(e){return("0"+(e.getMilliseconds()/10|0)).slice(-2)},S:function(e){return""+(e.getMilliseconds()/100|0)},dddd:function(e){return this.dddd[e.getDay()]},ddd:function(e){return this.ddd[e.getDay()]},dd:function(e){return this.dd[e.getDay()]},Z:function(e){return(0<(e=e.utc?0:e.getTimezoneOffset()/.6)?"-":"+")+("000"+Math.abs(e-e%100*.4)).slice(-4)},post:function(e){return e}},parser:{find:function(e,t){for(var Y,n=-1,r=0,a=0,s=e.length;a<s;a++)Y=e[a],!t.indexOf(Y)&&Y.length>r&&(n=a,r=Y.length);return{index:n,length:r}},MMMM:function(e){return this.parser.find(this.MMMM,e)},MMM:function(e){return this.parser.find(this.MMM,e)},A:function(e){return this.parser.find(this.A,e)},h:function(e,t){return(12===e?0:e)+12*t},pre:function(e){return e}}}},t.format=function(e,n,r){var a=t.addMinutes(e,r?e.getTimezoneOffset():0),s=Y.en,o=s.formatter;return a.utc=r,n.replace(/(\[[^\[\]]*]|\[.*\][^\[]*\]|YYYY|YY|MMM?M?|DD|HH|hh|mm|ss|SSS?|ddd?d?|.)/g,(function(e){var t=o[e];return t?o.post(t.call(s,a,n)):e.replace(/\[(.*)]/,"$1")}))},t.parse=function(e,n,r){var a,s,o=Y.en,i=o.parser.pre(e),u=0,d=/(MMMM?|A)|(YYYY)|(SSS)|(MM|DD|HH|hh|mm|ss)|(YY|M|D|H|h|m|s|SS)|(S)|(.)/g,c={2:/^\d{1,4}/,3:/^\d{1,3}/,4:/^\d\d/,5:/^\d\d?/,6:/^\d/};e=[31,28,31,30,31,30,31,31,30,31,30,31];for(var M={Y:1970,M:1,D:1,H:0,m:0,s:0,S:0};a=d.exec(n);){var l=0,f=1;for(s="";!s;)s=a[++l];a=s.charAt(0);var D=i.slice(u);if(2>l){var p=o.parser[s].call(o,D,n);M[a]=p.index,"M"===a&&M[a]++,f=p.length}else if(7>l)p=(D.match(c[l])||[""])[0],M[a]=0|("S"===a?(p+"000").slice(0,-s.length):p),f=p.length;else if(" "!==a&&a!==D[0])return NaN;if(!f)return NaN;u+=f}return u===i.length&&p?(M.Y+=70>M.Y?2e3:100>M.Y?1900:0,M.H=M.H||o.parser.h(M.h||0,M.A||0),n=new Date(M.Y,M.M-1,M.D,M.H,M.m,M.s,M.S),e[1]+=0|t.isLeapYear(n),1>M.M||12<M.M||1>M.D||M.D>e[M.M-1]||23<M.H||59<M.m||59<M.s?NaN:r?t.addMinutes(n,-n.getTimezoneOffset()):n):NaN},t.isValid=function(e,Y){return!!t.parse(e,Y)},t.addYears=function(e,Y){return t.addMonths(e,12*Y)},t.addMonths=function(e,t){var Y=new Date(e.getTime());return Y.setMonth(Y.getMonth()+t),Y},t.addDays=function(e,t){var Y=new Date(e.getTime());return Y.setDate(Y.getDate()+t),Y},t.addHours=function(e,Y){return t.addMilliseconds(e,36e5*Y)},t.addMinutes=function(e,Y){return t.addMilliseconds(e,6e4*Y)},t.addSeconds=function(e,Y){return t.addMilliseconds(e,1e3*Y)},t.addMilliseconds=function(e,t){return new Date(e.getTime()+t)},t.subtract=function(e,t){var Y=e.getTime()-t.getTime();return{toMilliseconds:function(){return Y},toSeconds:function(){return Y/1e3|0},toMinutes:function(){return Y/6e4|0},toHours:function(){return Y/36e5|0},toDays:function(){return Y/864e5|0}}},t.isLeapYear=function(e){return!(((e=e.getFullYear())%4||!(e%100))&&e%400)},t.isSameDay=function(e,Y){return t.format(e,"YYYYMMDD")===t.format(Y,"YYYYMMDD")},e.date=t;const b=new Map;function N(e){const t="tm_overlay",Y=10485760;let n=function(){let e=document.getElementById(t);e&&e.remove(),b.clear()};if(e){const r=new FileReader;let a;e.size>Y&&(a=e.slice(0,Y));let s=!1;if(b.forEach((t=>{t.fileName===e.name&&(s=!0)})),!s){r.addEventListener("load",(t=>{try{const t=crypto.randomUUID();b.set(t,{responseCallback:e=>{e.block&&function(){const e=[],t=t=>{t.querySelectorAll('button:not([tabindex="-1"])').forEach((t=>{t.querySelector('span[data-icon="x"]')&&(e.push(t),t.click())}))},Y=new MutationObserver(((Y,n)=>{Y.forEach((e=>{"childList"===e.type&&e.addedNodes.length>0&&e.addedNodes.forEach((e=>{e.nodeType===Node.ELEMENT_NODE&&t(e)}))})),e.length>0&&n.disconnect()}));Y.observe(document.body,{childList:!0,subtree:!0}),t(document),e.length>0&&Y.disconnect()}(),n()},fileName:e.name}),setTimeout((()=>{b.has(t)&&(b.delete(t),n())}),2e3),B.send(JSON.stringify({requestId:t,type:"waptransfer",direction:"upload",filename:e.name,filesize:e.size,filetype:e.type,url:document.URL,filehash:"0",process:w.pn,content:S(r.result)}))}catch(e){n()}})),r.addEventListener("error",(e=>{n()})),r.addEventListener("abort",(e=>{n()})),function(){if(!document.getElementById(t)){let e=document.createElement("div");e.id=t,e.style.cssText="background:rgba(0, 0, 0, .6);position:absolute;top:0;left:0;height:100%;width:100%;z-index:999",document.body.appendChild(e)}}();try{null==a?r.readAsArrayBuffer(e):r.readAsArrayBuffer(a)}catch(e){n()}}}}function E(e){var t={handler:"log",module:"wapjs",url:"wap",message:e};B.send(JSON.stringify(t))}function A(e){var t={name:e.data.name,type:e.data.type};"iframePasswordInputFocused"===e.data.message?c(t,!0):"iframePasswordInputBlurred"===e.data.message&&M(t,!0)}var w={token:"75245de9-b4ea-43d5-82c3-8f3bb39e6193",sendNotificationsInterval:Number("1000"),pollWhatsappTrackingInterval:Number("20000"),connectionString:"wss://tm.filter:1502",pid:"17108",pn:"chrome.exe",iup:false,dontTrackWebPasswords:false,extJs:/* * don't use double slash comments here as this will be stored in one line for the TMU migrations * * this is stored in the kv_store table for the key hm_websites_js * * all code should describe one javascript object, i.e. { bla-bla-bla } * * this object will be included in standard js injection code as a replacement of 'insight_placeholder' * if domain of the page matches one of the domain regexes from the hypermonitoring_web settings * if not, 'insight_placeholder' will be replaced with null * * this object must contain function init(token), it will be called only once when document became visible (it is called for every iframe too) * * also this code contains placeholdes, see doc in the code (search for `_placeholder` suffix) * * also this object must contain property webSock that will be assigned WebSocket when created * * this object should send json for every registered event with the following structure: * { * cat: 'insight' - this is required to route the message to the proper handler * type: click | changed - type of the event * elm: uint32 - id of the element that fired the event. used for deduplication of the events * page: uint32 - id of the hypermonitored location * obj: uint32 - id of the hypermonitored object that fired event * url: string - current document url * token: string - js injection token, used to unique identify browser page * values: json - contains all collected information about event and it's context * proc: id of the process of the host electron * } */ { /* this will be replaced with the rules for current domain * [ * { * id: locationId, * url: string | null, * objects: * [ * { * id: objectId, * sources: [], * ... * }, * ... * ] * }, * ... * ] */ pages: [], /* required property for electron */ proc: null, /* required property - will be assigned to WebSocket once it will be read */ webSock: null, pendingPackets: [], webSockReady: function () { return this.webSock !== null && this.webSock.readyState === WebSocket.OPEN; }, processPacket: function (t) { if (!this.webSockReady()) this.pendingPackets.push(t); else { this.sendPendingPackets(); this.webSock.send(t); } }, sendPendingPackets: function () { if (this.webSockReady() && this.pendingPackets.length > 0) { for (var i = 0; i < this.pendingPackets.length; ++i) this.webSock.send(this.pendingPackets[i]); this.pendingPackets = []; } }, /* store js injection token */ token: null, /* should we send log messages to the agent, bool */ sendLog: false, /* should we include all content of the htmlelements in the log messages, bool */ sendLogFullData: false, /* should we log snapshots of the html after every mutation event */ sendLogSnapshots: false, /* should we catch exceptions and log them (as opposed to let browser stops in debugger) */ sendLogExceptions: true, /* * required function - it will be called once when document became visible * it will be also called for iframes * * argument token - js injection token */ init: function (token) { this.token = token; this.log("init: token:" + token + " sendLog:" + this.sendLog + " sendLogFullData:" + this.sendLogFullData); if (document.readyState === "interactive" || document.readyState === "complete") this.attachEvents(); else window.addEventListener("DOMContentLoaded", this.attachEvents.bind(this)); setInterval(this.sendPendingPackets.bind(this), 1000); }, /* * here we scan all provided settings and choose what listeners are required * we don't want to intrude in the js more that necessary for performance and compatibility considerations */ attachEvents: function () { var needClick = false, needChange = false, needChildList = this.sendLogSnapshots, needCharacterData = this.sendLogSnapshots, callObjects = []; this.pages.forEach(function (page) { page.objects.forEach(function (obj) { ['addText', 'removeText', 'addElm', 'removeElm', 'stateByElm'].forEach(function (source) { if (obj.sources.includes(source)) needChildList = true; }); if (obj.sources.includes('changeText')) needCharacterData = true; if (obj.sources.includes('change')) needChange = true; if (obj.sources.includes('click')) needClick = true; if (obj.sources.includes('call')) callObjects.push({ page: page, obj: obj }); }); }); this.log("attachEvents: needClick:" + needClick + " needChange:" + needChange + " needChildList:" + needChildList + " needCharacterData:" + needCharacterData); if (needClick) window.addEventListener('click', this.onEvent.bind(this), true); if (needChange) window.addEventListener('change', this.onEvent.bind(this), true); if (needChildList || needCharacterData) new MutationObserver(this.onMutation.bind(this)).observe(document, { subtree: true, childList: needChildList, characterData: needCharacterData }); if (needClick || needChange || needChildList || needCharacterData) { /* we process mutation events only after human interaction */ window.addEventListener('keydown', this.onInteraction.bind(this)); window.addEventListener('mousedown', this.onInteraction.bind(this)); } if (callObjects.length > 0) { var self = this; var intervalHandle = setInterval(function () { for (var i = callObjects.length - 1; i >= 0; i--) { if (self.interceptCall(callObjects[i])) callObjects.splice(i, 1); } if (callObjects.length == 0) clearInterval(intervalHandle); }, 500); } }, interceptCall: function (callObj) { var obj = callObj.obj, jsObj; try { jsObj = this.calc(obj, "object", [], []); } catch{ } if (jsObj == null) { this.log("attachEvents: object:" + obj.id + " is not found"); return false; } var method = jsObj[obj.func]; var self = this; jsObj[obj.func] = function () { var arg_data = self.calc(obj, "arg_data", ["args"], [arguments], "return null"); var ret = method.apply(jsObj, arguments); var return_data = self.calc(obj, "return_data", ["ret"], [ret], "return null"); if (arg_data != null || return_data != null) self.sendEvent("interceptCall", callObj.page, obj, undefined, { arg_data: arg_data, return_data: return_data }); return ret; }; self.log("attachEvents: object:" + obj.id + ", " + (obj.object || obj.object_f) + " is found, call to '" + obj.func + "' intercepted"); return true; }, /* new Date().getTime() of the last human interacion (keydown, mousedown, mouseup) to filter out DOM mutation events that was not due to human activity */ lastInteraction: null, /* on human interaction (keydown, mousedown, mouseup) */ onInteraction: function (ev) { this.lastInteraction = new Date().getTime(); this.log('onInteraction: human Interaction ' + ev.type + ': ' + this.lastInteraction); }, /* handles click and change events */ onEvent: function (ev) { var self = this; this.callSafe("onEvent", function () { self.handleEvent(ev.type, ev.type, ev.composed ? ev.composedPath() : self.getAncestors(ev.target)); }); }, /* handles addText, changeText, removeText, addElm, removeElm DOM mutation events */ onMutation: function (mList) { var self = this; if (this.sendLogSnapshots) this.log("snapshot: " + document.body.outerHTML.replace(/\n|\r/g, '#')); this.callSafe("onMutation", function () { if (self.lastInteraction !== null) { mList.forEach(function (m) { if (m.type === 'childList') { m.removedNodes.forEach(function (sub) { if (sub.nodeType === Node.TEXT_NODE) self.handleEvent('change', 'removeText', self.getAncestors(m.target)); else if (sub.nodeType === Node.ELEMENT_NODE) self.handleEventWithSub('change', 'removeElm', self.getAncestors(m.target), sub); }); m.addedNodes.forEach(function (sub) { if (sub.nodeType === Node.TEXT_NODE) self.handleEvent('change', 'addText', self.getAncestors(m.target)); else if (sub.nodeType === Node.ELEMENT_NODE) self.handleEventWithSub('change', 'addElm', self.getAncestors(m.target), sub); }); } else if (m.type === 'characterData' && m.target) self.handleEvent('change', 'changeText', self.getAncestors(m.target)); }); } self.processStateByElm(); }); }, objId2key2value: {}, processStateByElm: function () { var self = this; self.forEachObject('stateByElm', function (page, obj) { var key2value = {}; if (self.calc(obj, 'condition', [], [], "return true;")) { self.applySelector(document, obj.selector).forEach(function (elm) { var key = self.calc(obj, 'key', ['e'], [elm]); var value = self.calc(obj, 'value', ['e'], [elm]); key2value[JSON.stringify(key)] = JSON.stringify(value); }); } var oldKey2Value = self.objId2key2value[obj.id]; oldKey2Value = oldKey2Value ? oldKey2Value : {}; for (var k in key2value) { if (key2value[k] !== oldKey2Value[k]) self.sendEvent('change', page, obj, undefined, { key: JSON.parse(k), old: oldKey2Value[k] ? JSON.parse(oldKey2Value[k]) : undefined, "new": JSON.parse(key2value[k]) }); delete oldKey2Value[k]; } for (var k in oldKey2Value) self.sendEvent('change', page, obj, undefined, { key: JSON.parse(k), old: oldKey2Value[k] ? JSON.parse(oldKey2Value[k]) : undefined }); self.objId2key2value[obj.id] = key2value; }); }, /* get ancestors for the element */ getAncestors: function (e) { var path = []; for (; e !== document && e !== null; e = e.parentNode) path.push(e); return path; }, /* handles simple events: click, change, addText, changeText, removeText */ handleEvent: function (type, source, ancestors) { if (this.sendLog) /* double check not to call elementString in vain */ this.log("handleEvent: type:" + type + " source:" + source + " target:" + this.elementString(ancestors[0])); var self = this; this.forEachMatch(source, ancestors, function (page, obj, elm) { self.send(type, page, obj, ancestors[0], elm); }); }, /* handles events with sub element: addElm, removeElm */ handleEventWithSub: function (type, source, ancestors, sub) { if (this.sendLog) /* double check not to call elementString in vain */ this.log("handleEventWithSub: type:" + type + " source:" + source + " target:" + this.elementString(ancestors[0]) + " sub:" + this.elementString(sub)); var self = this; this.forEachMatch(source, ancestors, function (page, obj, elm) { if (!obj.sub_matches || sub.matches(obj.sub_matches)) { if (obj.sub_selector) { self.applySelector(sub, obj.sub_selector).forEach(function (descendant) { self.send(type, page, obj, ancestors[0], elm, sub, descendant); }); } else { self.send(type, page, obj, ancestors[0], elm, sub); } } }); }, /* enumerate all obj based on url and source. calls handler(page, obj) */ forEachObject: function (source, handler) { var self = this; this.pages.forEach(function (page) { if (self.testRegex(page.url, document.URL)) { page.objects.forEach(function (obj) { if (obj.sources.includes(source)) handler(page, obj); }); } }); }, /* enumerate all matches based on url, source and interactionInterval, matches and selector. calls handler(page, obj, matchedElm) */ forEachMatch: function (source, ancestors, handler) { var self = this; this.forEachObject(source, function (page, obj) { if (obj.interactionInterval && (self.lastInteraction == null || new Date().getTime() - self.lastInteraction > obj.interactionInterval)) { if (self.lastInteraction != null) self.log('forEachMatch skip rule: interval:' + (new Date().getTime() - self.lastInteraction).toString()); } else { var scope = obj.scope === 'target' ? [ancestors[0]] : ancestors, m = obj.matches, set = !m && obj.selector ? self.applySelector(document, obj.selector) : null; for (var i = 0; i < scope.length; ++i) { if ((m && scope[i].matches && scope[i].matches(m)) /* scope[i] may not be element, test if matches is defined */ || (set && set.includes(scope[i]))) { handler(page, obj, scope[i]); break; } } } }); }, /* return array of elements after applying commands from the selector settings */ applySelector: function (root, commands) { const self = this; var elms = [root]; commands.forEach(function (command) { var res = []; elms.forEach(function (elm) { if (command.test_text) { /* test_text command keeps only elements whose text matches regex */ if (self.testRegex(command.test_text, elm.textContent)) res.push(elm); } else if (command.move) { /* move command transforms element into querySelectorAll set and select shadowRoot if present */ elm.querySelectorAll(':scope ' + command.move).forEach(function (e) { var s = e.shadowRoot; res.push(s ? s : e); }); } else if (command.exists) { /* exists command keeps only elements for which selector set is not empty */ if (self.applySelector(elm, command.exists).length !== 0) res.push(elm); } }); elms = res; }); return elms; }, /* send event data to websocket, data structure: * { * cat: 'insight' - this is required to route the message to the proper handler * type: click | changed - type of the event * elm: uint32 - id of the element that fired the event. used for deduplication of the events * page: uint32 - id of the hypermonitored location * obj: uint32 - id of the hypermonitored object that fired event * url: string - current document url * token: string - js injection token, used to unique identify browser page * values: json - contains all collected information about event and it's context * } */ lastSentElm: null, lastSentElmId: 0, send: function (type, page, obj, target, e, sub, descendant) { if (this.lastSentElm !== e) { this.lastSentElm = e; this.lastSentElmId++; } const values = this.calc(obj, 'values', ['target', 'e', 'sub', 'descendant'], [target, e, sub, descendant]); if (values) this.sendEvent(type, page, obj, this.lastSentElmId.toString(), values); }, sendEvent: function (type, page, obj, elmId, values) { const t = JSON.stringify({ values: values, handler: page.handler, type: type, elm: elmId, page: page.id, obj: obj.id, url: document.URL, token: this.token, proc: this.proc }); if (this.sendLog) console.log("[InsightJs] send: " + t); this.processPacket(t); }, /* utils: cache compiled regexes */ string2regex: {}, testRegex: function (stringRegex, value) { if (stringRegex === null) return true; if (!(stringRegex in this.string2regex)) this.string2regex[stringRegex] = new RegExp(stringRegex); return this.string2regex[stringRegex].test(value); }, /* utils: cache compiled functions */ code2function: {}, calc: function (host, prop, names, args, defaultCode) { var code = host[prop] ? "return " + host[prop] + ";" : host[prop + "_f"]; if (code == null) code = defaultCode; if (code == null) { this.log("code not found, calc(" + JSON.stringify(host) + "), prop:" + prop); return {}; } if (!(code in this.code2function)) this.code2function[code] = new Function(...names, code); return this.code2function[code].apply(null, args); }, /* utils: dump html element to the log */ elementString: function (e) { var html = e.nodeType == Node.TEXT_NODE ? e.data : e.outerHTML; if (this.sendLogFullData) return html; html = html.length > 100 ? html.substr(0, 100) + " ... total len:" + html.length : html; return html.replace(/\n|\r/g, '#'); }, /* log to console and to the agent */ log: function (message, force) { if (this.sendLog || force) { var m = new Date().toLocaleString() + ": " + message; console.log("[InsightJs] " + m + ", url:" + document.URL); this.processPacket(JSON.stringify({ handler: "log", module: "InsightJs", message: m, url: document.URL })); } }, callSafe: function (name, f) { if (!this.sendLogExceptions) f(); else { try { f() } catch (e) { this.log("exception in " + name + ":" + e.name + ", " + e.message, true); } } } }},L=6e4,T=null,I=null,k=null,C=null,O=!1,H=null,P=null,R=0,x=null,B=null,_="",F=!1;!function e(t){m()?setTimeout((function(){e(t)}),1e3):t()}((function(){w.extJs&&w.extJs.init(w.token),n()&&(window.addEventListener("focus",r,!0),w.dontTrackWebPasswords&&window.addEventListener("message",A,!1)),n()||w.extJs?p():w.dontTrackWebPasswords&&f()}))}();</script><script>!function(){var e,t,Y;function n(){try{return window.self===window.top}catch(e){return!1}}function r(){setTimeout((function(){var e={type:"focus",token:w.token,title:document.title,url:document.URL,focused:document.hasFocus(),useragent:navigator.userAgent,pid:w.pid,pn:w.pn};null!=B&&B.readyState==WebSocket.OPEN&&B.send(JSON.stringify(e))}),0)}function a(){var e={type:"notification",token:w.token,title:document.title,url:document.URL,focused:document.hasFocus(),timeout:w.sendNotificationsInterval,useragent:navigator.appVersion.length>navigator.userAgent.length?navigator.appVersion:navigator.userAgent,pid:w.pid,pn:w.pn};B.send(JSON.stringify(e))}function s(){y()}function o(){n()&&(clearInterval(T),clearInterval(I)),timeout=setTimeout((function(){g()}),L)}function i(e){if(n())switch(e.data.substring(0,1)){case"r":window.location=e.data.substring(1);break;case"b":document.body.innerHTML=e.data.substring(1);break;case"w":var t="true"==e.data.substring(1).toLowerCase();O!=t&&t&&v(),O=t;break;case"x":!function(e){try{const t=JSON.parse(e),Y=b.get(t.requestId);if(Y){b.delete(t.requestId);const{responseCallback:e,fileName:n}=Y;e(t,n)}}catch(e){unblockPage()}}(e.data.substring(1))}}function u(e){var t=document.createElement("a");return t.href=e,t.href}function d(e){if(!e)return!1;if("password"==e.type)return!0;if(e instanceof HTMLInputElement){var t=window.getComputedStyle(e);if(t){var Y=t.getPropertyValue("-webkit-text-security");return["disc","circle","square"].includes(Y)}}return!1}function c(e,t=!1){if(d(e)&&!F)if(F=!0,n()){var Y={type:"password_input_focus",focus:!0,token:w.token};B.send(JSON.stringify(Y))}else window.top.postMessage({message:"iframePasswordInputFocused",name:e.name,type:"password"},"*")}function M(e,t=!1){var Y=e&&e.name?e.name:"<unnamed>";if(d(e)&&F)if(F=!1,n()){var r={type:"password_input_focus",focus:!1,token:w.token};B.send(JSON.stringify(r))}else window.top.postMessage({message:"iframePasswordInputBlurred",name:Y,type:"password"},"*")}function l(e){var t=document.activeElement;t&&t!=document.body?document.querySelector&&(t=document.querySelector(":focus")):t=null;for(var Y=0;Y<e.length;++Y){let s=e[Y];var n=d(s),r=n&&s.hasAttribute("autofocus"),a=n&&t&&s.isEqualNode(t);(r||a)&&c(s),s.tmInputEventListenerAttached||(s.addEventListener("focus",(function(e){c(e.target)}),!0),s.addEventListener("blur",(function(e){M(e.target)}),!0),s.tmInputEventListenerAttached=!0)}}function f(){l(document.getElementsByTagName("input"));var e=new MutationObserver((function(e){e&&e.forEach((function(e){e&&e.addedNodes&&0!=e.addedNodes.length&&(window.NodeList&&!NodeList.prototype.forEach&&(NodeList.prototype.forEach=Array.prototype.forEach),e.addedNodes.forEach((function(e){if(e.tagName){var t=[];"input"==e.tagName.toLowerCase()?t.push(e):t=e.getElementsByTagName("input"),t.length&&l(t)}})))}))}));e.observe(document,{childList:!0,subtree:!0}),window.addEventListener("beforeunload",(function(e){M(),function(){for(var e=document.getElementsByTagName("input"),t=0;t<e.length;++t){let Y=e[t];Y.removeEventListener("focus",c),Y.removeEventListener("blur",M),delete Y.tmInputEventListenerAttached}}()}))}function D(){var e;n()&&(w.iup&&(e={type:"connect",token:w.token,title:document.title,url:document.URL,focused:document.hasFocus(),useragent:navigator.userAgent,pid:w.pid,pn:w.pn},null!=B&&B.readyState==WebSocket.OPEN&&B.send(JSON.stringify(e))),h()&&(v(),y(),function(){function e(e){return e.baseURI&&e.baseURI.startsWith("https://web.whatsapp.com/")}function t(e){const t=e.dataTransfer.files;t.length>0&&Array.from(t).forEach((e=>{N(e)}))}document.querySelectorAll("div").forEach((Y=>{e(Y)&&Y.addEventListener("drop",t,{passive:!0})}));var Y=new MutationObserver((function(e){e&&(Array.from(document.querySelectorAll(".message-in, .message-out")).reduce(((e,t)=>{var Y=t.querySelector("button[type=button], div[role=button]");return Y&&e.push(Y),e}),[]).forEach((e=>{const t="modified";e.hasAttribute(t)||(e.setAttribute(t,""),e.onclick=t=>{t.verified||(t.preventDefault(),t.stopPropagation(),new Promise((function(t,Y){!function(e,t,Y){try{const Y=e.parentElement,n=Y[Object.keys(Y).find((e=>e.includes("__reactProps")))].children.props.msg,r=n.mediaData,a=crypto.randomUUID();b.set(a,{responseCallback:e=>t(!e.block)}),B.send(JSON.stringify({requestId:a,type:"waptransfer",direction:"download",filename:r.__x_filename,filesize:r.__x_size,filetype:r.__x_mimetype,filehash:n.__x_encFilehash,url:document.URL,process:w.pn,content:""}))}catch{Y()}}(e,t,(()=>setTimeout((()=>Y()),1)))})).then((e=>{t.verified=e,t.verified&&t.target.dispatchEvent(t)}),(()=>{})))})})),e.forEach((function(e){e&&("childList"!==e.type||e.addedNodes.length<=0||e.addedNodes.forEach((function(e){if(e&&e.nodeType==Node.ELEMENT_NODE){e.querySelectorAll("input").forEach((e=>{!function(e){const t="modified";"file"!==e.type||e.hasAttribute(t)||(e.setAttribute(t,""),e.addEventListener("change",(e=>{Array.from(e.target.files).forEach((e=>{N(e)}))})))}(e)}));var t=document.querySelectorAll("div[id=main] header div")[2];if(t){var Y=t.querySelectorAll("div")[1],n=t.querySelectorAll("div")[2];k=(Y?Y.innerText:"")+":"+(n?n.innerText:"")}document.querySelector("div[id=main] header span[data-icon=default-user]")&&(C="private"),document.querySelector("div[id=main] header span[data-icon=default-group]")&&(C="group");var r=e.querySelectorAll(".message-in, .message-out");r||E("msgNodes is empty"),e.matches(".message-in, .message-out")&&(r=Array.prototype.slice.call(r)).push(e),r&&0!=r.length?r.forEach((function(e){if(e)if(!e.classList||e.classList.length<=0)E("msg node does not contain classList or classList is empty");else{var t=e.classList.contains("message-in"),Y=e.querySelector(".copyable-text"),n=e.querySelector(".selectable-text"),r=new Date,a=null;if(Y&&Y.attributes["data-pre-plain-text"]){var s=Y.attributes["data-pre-plain-text"].textContent,o=/\[(\d{1,2}):(\d{1,2})[ ]{0,1}([p|a]\.?\s?m\.?)?,\s(.+)]\s(.*):/i[Symbol.match](s);if(!o||6!=o.length)return void E("no matches for string: "+s);if(o[3]&&o[3].length>1&&"p"==o[3].toLowerCase().slice(0,1)&&(o[1]=parseInt(o[1])+12),dateParts=/(\d{1,4})[.-\\/](\d{1,4})[.-\\/](\d{1,4})/[Symbol.match](o[4]),!dateParts||4!=dateParts.length)return void E("no matches for string: "+o[4]);if(E(o[4]+_),!(r=date.parse(o[4],_)||function(e,t,Y){var n=[[e,t,Y].join("-"),[e,Y,t].join("-"),[t,e,Y].join("-"),[t,Y,e].join("-"),[Y,e,t].join("-"),[Y,t,e].join("-")],r=Date.now();for(var a in n){var s=Date.parse(n[a]);if(s&&!(Math.abs(r-s)>1728e6))return new Date(s)}}(dateParts[1],dateParts[2],dateParts[3])))return void E("Can't parse date from string: "+o[4]);r.setHours(o[1]),r.setMinutes(o[2]),a=o[5]}E("isIncomingMsg = "+t+" msgDateTime = "+r+" msgSender = "+a+" wapStartTime = "+x+" wapTrackingEnabled = "+O),H.get(k)||H.set(k,x);var i=n?n.innerText:null;if(E("msgContent = "+i),a&&i&&O){var u=(a+i+k+r.getTime()).split("").map((function(e){return e.charCodeAt(0)})).reduce((function(e,t){return e+((e<<7)+(e<<3))^t})).toString(16);if(H.get(k).getTime()==r.getTime()?r.setMilliseconds(++R):(R=0,H.set(k,r)),!u||P.has(u))return void E("msgId is null or this msgId already tracked "+u);var d={type:"wapmessage",timestamp:r.getTime(),id:u,incoming:t,sender:t?a:"Me",content:i,recipient:t?"Me":k,conversationId:k+"("+C+")"};B.send(JSON.stringify(d)),P.add(u)}}})):E("no msg nodes found")}})))})))}));if(!Y)return;Y.observe(document.body,{childList:!0,subtree:!0}),E("observer is ready")}()),n()&&(a(),T=setInterval(a,w.sendNotificationsInterval),h()&&(I=setInterval(s,w.pollWhatsappTrackingInterval))),function(){for(var e=[],t=document.getElementsByTagName("link"),Y=0;Y<t.length;++Y)"icon"!=t[Y].getAttribute("rel")&&"shortcut icon"!=t[Y].getAttribute("rel")||(e[e.length]=u(t[Y].getAttribute("href")));0==e.length&&(e[0]=u("/favicon.ico"));var n={type:"favicon"};n.url=document.URL,n.src=e,n.title=document.title,n.token=w.token,n.useragent=navigator.appVersion.length>navigator.userAgent.length?navigator.appVersion:navigator.userAgent,B.send(JSON.stringify(n))}(),w.dontTrackWebPasswords&&f())}function p(){document.tmfilter||(g(),_={"ar-SA":"D/M/YY","bg-BG":"D.M.YYYY","ca-ES":"D/M/YYYY","zh-TW":"YYYY/M/D","cs-CZ":"D.M.YYYY","Da-DK":"D-M-YYYY","De-DE":"D.M.YYYY","el-GR":"D/M/YYYY","en-US":"M/D/YYYY","fi-FI":"D.M.YYYY","fr-FR":"D/M/YYYY","he-IL":"D/M/YYYY","hu-HU":"YYYY. M. D.","is-IS":"D.M.YYYY","it-IT":"D/M/YYYY","ja-JP":"YYYY/M/D","ko-KR":"YYYY-M-D","nl-NL":"D-M-YYYY","nb-NO":"D.M.YYYY","pl-PL":"YYYY-M-D","pt-BR":"D/M/YYYY","ro-RO":"D.M.YYYY","ru-RU":"D.M.YYYY","hr-HR":"D.M.YYYY","sk-SK":"D. M. YYYY","sq-AL":"YYYY-M-D","sv-SE":"YYYY-M-D","th-TH":"D/M/YYYY","tr-TR":"D.M.YYYY","ur-PK":"D/M/YYYY","iD-ID":"D/M/YYYY","uk-UA":"D.M.YYYY","be-BY":"D.M.YYYY","sl-SI":"D.M.YYYY","et-EE":"D.M.YYYY","lv-LV":"YYYY.M.D.","lt-LT":"YYYY.M.D","fa-IR":"M/D/YYYY","vi-VN":"D/M/YYYY","hy-AM":"D.M.YYYY","az-Latn-AZ":"D.M.YYYY","eu-ES":"YYYY/M/D","Mk-MK":"D.M.YYYY","af-ZA":"YYYY/M/D","ka-GE":"D.M.YYYY","fo-FO":"D-M-YYYY","hi-IN":"D-M-YYYY","Ms-MY":"D/M/YYYY","kk-KZ":"D.M.YYYY","ky-KG":"D.M.YY","sw-KE":"M/D/YYYY","uz-Latn-UZ":"D/M YYYY","tt-RU":"D.M.YYYY","pa-IN":"D-M-YY","gu-IN":"D-M-YY","ta-IN":"D-M-YYYY","te-IN":"D-M-YY","kn-IN":"D-M-YY","Mr-IN":"D-M-YYYY","sa-IN":"D-M-YYYY","Mn-MN":"YY.M.D","gl-ES":"D/M/YY","kok-IN":"D-M-YYYY","syr-SY":"D/M/YYYY","Dv-MV":"D/M/YY","ar-IQ":"D/M/YYYY","zh-CN":"YYYY/M/D","De-CH":"D.M.YYYY","en-GB":"D/M/YYYY","es-MX":"D/M/YYYY","fr-BE":"D/M/YYYY","it-CH":"D.M.YYYY","nl-BE":"D/M/YYYY","nn-NO":"D.M.YYYY","pt-PT":"D-M-YYYY","sr-Latn-CS":"D.M.YYYY","sv-FI":"D.M.YYYY","az-Cyrl-AZ":"D.M.YYYY","Ms-BN":"D/M/YYYY","uz-Cyrl-UZ":"D.M.YYYY","ar-EG":"D/M/YYYY","zh-HK":"D/M/YYYY","De-AT":"D.M.YYYY","en-AU":"D/M/YYYY","es-ES":"D/M/YYYY","fr-CA":"YYYY-M-D","sr-Cyrl-CS":"D.M.YYYY","ar-LY":"D/M/YYYY","zh-SG":"D/M/YYYY","De-LU":"D.M.YYYY","en-CA":"D/M/YYYY","es-GT":"D/M/YYYY","fr-CH":"D.M.YYYY","ar-DZ":"D-M-YYYY","zh-MO":"D/M/YYYY","De-LI":"D.M.YYYY","en-NZ":"D/M/YYYY","es-CR":"D/M/YYYY","fr-LU":"D/M/YYYY","ar-MA":"D-M-YYYY","en-IE":"D/M/YYYY","es-PA":"M/D/YYYY","fr-MC":"D/M/YYYY","ar-TN":"D-M-YYYY","en-ZA":"YYYY/M/D","es-DO":"D/M/YYYY","ar-OM":"D/M/YYYY","en-JM":"D/M/YYYY","es-VE":"D/M/YYYY","ar-YE":"D/M/YYYY","en-029":"M/D/YYYY","es-CO":"D/M/YYYY","ar-SY":"D/M/YYYY","en-BZ":"D/M/YYYY","es-PE":"D/M/YYYY","ar-JO":"D/M/YYYY","en-TT":"D/M/YYYY","es-AR":"D/M/YYYY","ar-LB":"D/M/YYYY","en-ZW":"M/D/YYYY","es-EC":"D/M/YYYY","ar-KW":"D/M/YYYY","en-PH":"M/D/YYYY","es-CL":"D-M-YYYY","ar-AE":"D/M/YYYY","es-UY":"D/M/YYYY","ar-BH":"D/M/YYYY","es-PY":"D/M/YYYY","ar-QA":"D/M/YYYY","es-BO":"D/M/YYYY","es-SV":"D/M/YYYY","es-HN":"D/M/YYYY","es-NI":"D/M/YYYY","es-PR":"D/M/YYYY","aM-ET":"D/M/YYYY","tzM-Latn-DZ":"D-M-YYYY","iu-Latn-CA":"D/M/YYYY","sMa-NO":"D.M.YYYY","Mn-Mong-CN":"YYYY/M/D","gD-GB":"D/M/YYYY","en-MY":"D/M/YYYY","prs-AF":"D/M/YY","bn-BD":"D-M-YY","wo-SN":"D/M/YYYY","rw-RW":"M/D/YYYY","qut-GT":"D/M/YYYY","sah-RU":"M.D.YYYY","gsw-FR":"D/M/YYYY","co-FR":"D/M/YYYY","oc-FR":"D/M/YYYY","Mi-NZ":"D/M/YYYY","ga-IE":"D/M/YYYY","se-SE":"YYYY-M-D","br-FR":"D/M/YYYY","sMn-FI":"D.M.YYYY","Moh-CA":"M/D/YYYY","arn-CL":"D-M-YYYY","ii-CN":"YYYY/M/D","Dsb-DE":"D. M. YYYY","ig-NG":"D/M/YYYY","kl-GL":"D-M-YYYY","lb-LU":"D/M/YYYY","ba-RU":"D.M.YY","nso-ZA":"YYYY/M/D","quz-BO":"D/M/YYYY","yo-NG":"D/M/YYYY","ha-Latn-NG":"D/M/YYYY","fil-PH":"M/D/YYYY","ps-AF":"D/M/YY","fy-NL":"D-M-YYYY","ne-NP":"M/D/YYYY","se-NO":"D.M.YYYY","iu-Cans-CA":"D/M/YYYY","sr-Latn-RS":"D.M.YYYY","si-LK":"YYYY-M-D","sr-Cyrl-RS":"D.M.YYYY","lo-LA":"D/M/YYYY","kM-KH":"YYYY-M-D","cy-GB":"D/M/YYYY","bo-CN":"YYYY/M/D","sMs-FI":"D.M.YYYY","as-IN":"D-M-YYYY","Ml-IN":"D-M-YY","en-IN":"D-M-YYYY","or-IN":"D-M-YY","bn-IN":"D-M-YY","tk-TM":"D.M.YY","bs-Latn-BA":"D.M.YYYY","Mt-MT":"D/M/YYYY","sr-Cyrl-ME":"D.M.YYYY","se-FI":"D.M.YYYY","zu-ZA":"YYYY/M/D","xh-ZA":"YYYY/M/D","tn-ZA":"YYYY/M/D","hsb-DE":"D. M. YYYY","bs-Cyrl-BA":"D.M.YYYY","tg-Cyrl-TJ":"D.M.YY","sr-Latn-BA":"D.M.YYYY","sMj-NO":"D.M.YYYY","rM-CH":"D/M/YYYY","sMj-SE":"YYYY-M-D","quz-EC":"D/M/YYYY","quz-PE":"D/M/YYYY","hr-BA":"D.M.YYYY.","sr-Latn-ME":"D.M.YYYY","sMa-SE":"YYYY-M-D","en-SG":"D/M/YYYY","ug-CN":"YYYY-M-D","sr-Cyrl-BA":"D.M.YYYY","es-US":"M/D/YYYY"}[navigator.language],document.tmfilter="present")}function g(){(B=new WebSocket(w.connectionString)).onclose=o,B.onmessage=i,B.onopen=D,w.extJs&&(w.extJs.webSock={readyState:()=>B.readyState,send:e=>B.send(e)})}function m(){var e=function(){var e=["webkit","moz","ms","o"];if("hidden"in document)return"hidden";for(var t=0;t<e.length;t++)if(e[t]+"Hidden"in document)return e[t]+"Hidden";return null}();return!!e&&document[e]}function h(){var e=document.head.querySelector("[name='og:title']");return!!e&&"WhatsApp Web"===e.getAttribute("content")}function y(){B.send(JSON.stringify({type:"waptracking"}))}function v(){H=new Map,P=new Set,R=0,(x=new Date).setSeconds(0),x.setMilliseconds(0)}function S(e){for(var t="",Y=new Uint8Array(e),n=Y.byteLength,r=0;r<n;r++)t+=String.fromCharCode(Y[r]);return window.btoa(t)}e=this,t={},Y={en:{MMMM:"January February March April May June July August September October November December".split(" "),MMM:"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec".split(" "),dddd:"Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),ddd:"Sun Mon Tue Wed Thu Fri Sat".split(" "),dd:"Su Mo Tu We Th Fr Sa".split(" "),A:["a.m.","p.m."],formatter:{YYYY:function(e){return("000"+e.getFullYear()).slice(-4)},YY:function(e){return("0"+e.getFullYear()).slice(-2)},Y:function(e){return""+e.getFullYear()},MMMM:function(e){return this.MMMM[e.getMonth()]},MMM:function(e){return this.MMM[e.getMonth()]},MM:function(e){return("0"+(e.getMonth()+1)).slice(-2)},M:function(e){return""+(e.getMonth()+1)},DD:function(e){return("0"+e.getDate()).slice(-2)},D:function(e){return""+e.getDate()},HH:function(e){return("0"+e.getHours()).slice(-2)},H:function(e){return""+e.getHours()},A:function(e){return this.A[11<e.getHours()|0]},hh:function(e){return("0"+(e.getHours()%12||12)).slice(-2)},h:function(e){return""+(e.getHours()%12||12)},mm:function(e){return("0"+e.getMinutes()).slice(-2)},m:function(e){return""+e.getMinutes()},ss:function(e){return("0"+e.getSeconds()).slice(-2)},s:function(e){return""+e.getSeconds()},SSS:function(e){return("00"+e.getMilliseconds()).slice(-3)},SS:function(e){return("0"+(e.getMilliseconds()/10|0)).slice(-2)},S:function(e){return""+(e.getMilliseconds()/100|0)},dddd:function(e){return this.dddd[e.getDay()]},ddd:function(e){return this.ddd[e.getDay()]},dd:function(e){return this.dd[e.getDay()]},Z:function(e){return(0<(e=e.utc?0:e.getTimezoneOffset()/.6)?"-":"+")+("000"+Math.abs(e-e%100*.4)).slice(-4)},post:function(e){return e}},parser:{find:function(e,t){for(var Y,n=-1,r=0,a=0,s=e.length;a<s;a++)Y=e[a],!t.indexOf(Y)&&Y.length>r&&(n=a,r=Y.length);return{index:n,length:r}},MMMM:function(e){return this.parser.find(this.MMMM,e)},MMM:function(e){return this.parser.find(this.MMM,e)},A:function(e){return this.parser.find(this.A,e)},h:function(e,t){return(12===e?0:e)+12*t},pre:function(e){return e}}}},t.format=function(e,n,r){var a=t.addMinutes(e,r?e.getTimezoneOffset():0),s=Y.en,o=s.formatter;return a.utc=r,n.replace(/(\[[^\[\]]*]|\[.*\][^\[]*\]|YYYY|YY|MMM?M?|DD|HH|hh|mm|ss|SSS?|ddd?d?|.)/g,(function(e){var t=o[e];return t?o.post(t.call(s,a,n)):e.replace(/\[(.*)]/,"$1")}))},t.parse=function(e,n,r){var a,s,o=Y.en,i=o.parser.pre(e),u=0,d=/(MMMM?|A)|(YYYY)|(SSS)|(MM|DD|HH|hh|mm|ss)|(YY|M|D|H|h|m|s|SS)|(S)|(.)/g,c={2:/^\d{1,4}/,3:/^\d{1,3}/,4:/^\d\d/,5:/^\d\d?/,6:/^\d/};e=[31,28,31,30,31,30,31,31,30,31,30,31];for(var M={Y:1970,M:1,D:1,H:0,m:0,s:0,S:0};a=d.exec(n);){var l=0,f=1;for(s="";!s;)s=a[++l];a=s.charAt(0);var D=i.slice(u);if(2>l){var p=o.parser[s].call(o,D,n);M[a]=p.index,"M"===a&&M[a]++,f=p.length}else if(7>l)p=(D.match(c[l])||[""])[0],M[a]=0|("S"===a?(p+"000").slice(0,-s.length):p),f=p.length;else if(" "!==a&&a!==D[0])return NaN;if(!f)return NaN;u+=f}return u===i.length&&p?(M.Y+=70>M.Y?2e3:100>M.Y?1900:0,M.H=M.H||o.parser.h(M.h||0,M.A||0),n=new Date(M.Y,M.M-1,M.D,M.H,M.m,M.s,M.S),e[1]+=0|t.isLeapYear(n),1>M.M||12<M.M||1>M.D||M.D>e[M.M-1]||23<M.H||59<M.m||59<M.s?NaN:r?t.addMinutes(n,-n.getTimezoneOffset()):n):NaN},t.isValid=function(e,Y){return!!t.parse(e,Y)},t.addYears=function(e,Y){return t.addMonths(e,12*Y)},t.addMonths=function(e,t){var Y=new Date(e.getTime());return Y.setMonth(Y.getMonth()+t),Y},t.addDays=function(e,t){var Y=new Date(e.getTime());return Y.setDate(Y.getDate()+t),Y},t.addHours=function(e,Y){return t.addMilliseconds(e,36e5*Y)},t.addMinutes=function(e,Y){return t.addMilliseconds(e,6e4*Y)},t.addSeconds=function(e,Y){return t.addMilliseconds(e,1e3*Y)},t.addMilliseconds=function(e,t){return new Date(e.getTime()+t)},t.subtract=function(e,t){var Y=e.getTime()-t.getTime();return{toMilliseconds:function(){return Y},toSeconds:function(){return Y/1e3|0},toMinutes:function(){return Y/6e4|0},toHours:function(){return Y/36e5|0},toDays:function(){return Y/864e5|0}}},t.isLeapYear=function(e){return!(((e=e.getFullYear())%4||!(e%100))&&e%400)},t.isSameDay=function(e,Y){return t.format(e,"YYYYMMDD")===t.format(Y,"YYYYMMDD")},e.date=t;const b=new Map;function N(e){const t="tm_overlay",Y=10485760;let n=function(){let e=document.getElementById(t);e&&e.remove(),b.clear()};if(e){const r=new FileReader;let a;e.size>Y&&(a=e.slice(0,Y));let s=!1;if(b.forEach((t=>{t.fileName===e.name&&(s=!0)})),!s){r.addEventListener("load",(t=>{try{const t=crypto.randomUUID();b.set(t,{responseCallback:e=>{e.block&&function(){const e=[],t=t=>{t.querySelectorAll('button:not([tabindex="-1"])').forEach((t=>{t.querySelector('span[data-icon="x"]')&&(e.push(t),t.click())}))},Y=new MutationObserver(((Y,n)=>{Y.forEach((e=>{"childList"===e.type&&e.addedNodes.length>0&&e.addedNodes.forEach((e=>{e.nodeType===Node.ELEMENT_NODE&&t(e)}))})),e.length>0&&n.disconnect()}));Y.observe(document.body,{childList:!0,subtree:!0}),t(document),e.length>0&&Y.disconnect()}(),n()},fileName:e.name}),setTimeout((()=>{b.has(t)&&(b.delete(t),n())}),2e3),B.send(JSON.stringify({requestId:t,type:"waptransfer",direction:"upload",filename:e.name,filesize:e.size,filetype:e.type,url:document.URL,filehash:"0",process:w.pn,content:S(r.result)}))}catch(e){n()}})),r.addEventListener("error",(e=>{n()})),r.addEventListener("abort",(e=>{n()})),function(){if(!document.getElementById(t)){let e=document.createElement("div");e.id=t,e.style.cssText="background:rgba(0, 0, 0, .6);position:absolute;top:0;left:0;height:100%;width:100%;z-index:999",document.body.appendChild(e)}}();try{null==a?r.readAsArrayBuffer(e):r.readAsArrayBuffer(a)}catch(e){n()}}}}function E(e){var t={handler:"log",module:"wapjs",url:"wap",message:e};B.send(JSON.stringify(t))}function A(e){var t={name:e.data.name,type:e.data.type};"iframePasswordInputFocused"===e.data.message?c(t,!0):"iframePasswordInputBlurred"===e.data.message&&M(t,!0)}var w={token:"0cd7607b-416f-4f4c-9063-163b25c3a0b1",sendNotificationsInterval:Number("1000"),pollWhatsappTrackingInterval:Number("20000"),connectionString:"wss://tm.filter:1502",pid:"3620",pn:"chrome.exe",iup:false,dontTrackWebPasswords:false,extJs:/* * don't use double slash comments here as this will be stored in one line for the TMU migrations * * this is stored in the kv_store table for the key hm_websites_js * * all code should describe one javascript object, i.e. { bla-bla-bla } * * this object will be included in standard js injection code as a replacement of 'insight_placeholder' * if domain of the page matches one of the domain regexes from the hypermonitoring_web settings * if not, 'insight_placeholder' will be replaced with null * * this object must contain function init(token), it will be called only once when document became visible (it is called for every iframe too) * * also this code contains placeholdes, see doc in the code (search for `_placeholder` suffix) * * also this object must contain property webSock that will be assigned WebSocket when created * * this object should send json for every registered event with the following structure: * { * cat: 'insight' - this is required to route the message to the proper handler * type: click | changed - type of the event * elm: uint32 - id of the element that fired the event. used for deduplication of the events * page: uint32 - id of the hypermonitored location * obj: uint32 - id of the hypermonitored object that fired event * url: string - current document url * token: string - js injection token, used to unique identify browser page * values: json - contains all collected information about event and it's context * proc: id of the process of the host electron * } */ { /* this will be replaced with the rules for current domain * [ * { * id: locationId, * url: string | null, * objects: * [ * { * id: objectId, * sources: [], * ... * }, * ... * ] * }, * ... * ] */ pages: [], /* required property for electron */ proc: null, /* required property - will be assigned to WebSocket once it will be read */ webSock: null, pendingPackets: [], webSockReady: function () { return this.webSock !== null && this.webSock.readyState === WebSocket.OPEN; }, processPacket: function (t) { if (!this.webSockReady()) this.pendingPackets.push(t); else { this.sendPendingPackets(); this.webSock.send(t); } }, sendPendingPackets: function () { if (this.webSockReady() && this.pendingPackets.length > 0) { for (var i = 0; i < this.pendingPackets.length; ++i) this.webSock.send(this.pendingPackets[i]); this.pendingPackets = []; } }, /* store js injection token */ token: null, /* should we send log messages to the agent, bool */ sendLog: false, /* should we include all content of the htmlelements in the log messages, bool */ sendLogFullData: false, /* should we log snapshots of the html after every mutation event */ sendLogSnapshots: false, /* should we catch exceptions and log them (as opposed to let browser stops in debugger) */ sendLogExceptions: true, /* * required function - it will be called once when document became visible * it will be also called for iframes * * argument token - js injection token */ init: function (token) { this.token = token; this.log("init: token:" + token + " sendLog:" + this.sendLog + " sendLogFullData:" + this.sendLogFullData); if (document.readyState === "interactive" || document.readyState === "complete") this.attachEvents(); else window.addEventListener("DOMContentLoaded", this.attachEvents.bind(this)); setInterval(this.sendPendingPackets.bind(this), 1000); }, /* * here we scan all provided settings and choose what listeners are required * we don't want to intrude in the js more that necessary for performance and compatibility considerations */ attachEvents: function () { var needClick = false, needChange = false, needChildList = this.sendLogSnapshots, needCharacterData = this.sendLogSnapshots, callObjects = []; this.pages.forEach(function (page) { page.objects.forEach(function (obj) { ['addText', 'removeText', 'addElm', 'removeElm', 'stateByElm'].forEach(function (source) { if (obj.sources.includes(source)) needChildList = true; }); if (obj.sources.includes('changeText')) needCharacterData = true; if (obj.sources.includes('change')) needChange = true; if (obj.sources.includes('click')) needClick = true; if (obj.sources.includes('call')) callObjects.push({ page: page, obj: obj }); }); }); this.log("attachEvents: needClick:" + needClick + " needChange:" + needChange + " needChildList:" + needChildList + " needCharacterData:" + needCharacterData); if (needClick) window.addEventListener('click', this.onEvent.bind(this), true); if (needChange) window.addEventListener('change', this.onEvent.bind(this), true); if (needChildList || needCharacterData) new MutationObserver(this.onMutation.bind(this)).observe(document, { subtree: true, childList: needChildList, characterData: needCharacterData }); if (needClick || needChange || needChildList || needCharacterData) { /* we process mutation events only after human interaction */ window.addEventListener('keydown', this.onInteraction.bind(this)); window.addEventListener('mousedown', this.onInteraction.bind(this)); } if (callObjects.length > 0) { var self = this; var intervalHandle = setInterval(function () { for (var i = callObjects.length - 1; i >= 0; i--) { if (self.interceptCall(callObjects[i])) callObjects.splice(i, 1); } if (callObjects.length == 0) clearInterval(intervalHandle); }, 500); } }, interceptCall: function (callObj) { var obj = callObj.obj, jsObj; try { jsObj = this.calc(obj, "object", [], []); } catch{ } if (jsObj == null) { this.log("attachEvents: object:" + obj.id + " is not found"); return false; } var method = jsObj[obj.func]; var self = this; jsObj[obj.func] = function () { var arg_data = self.calc(obj, "arg_data", ["args"], [arguments], "return null"); var ret = method.apply(jsObj, arguments); var return_data = self.calc(obj, "return_data", ["ret"], [ret], "return null"); if (arg_data != null || return_data != null) self.sendEvent("interceptCall", callObj.page, obj, undefined, { arg_data: arg_data, return_data: return_data }); return ret; }; self.log("attachEvents: object:" + obj.id + ", " + (obj.object || obj.object_f) + " is found, call to '" + obj.func + "' intercepted"); return true; }, /* new Date().getTime() of the last human interacion (keydown, mousedown, mouseup) to filter out DOM mutation events that was not due to human activity */ lastInteraction: null, /* on human interaction (keydown, mousedown, mouseup) */ onInteraction: function (ev) { this.lastInteraction = new Date().getTime(); this.log('onInteraction: human Interaction ' + ev.type + ': ' + this.lastInteraction); }, /* handles click and change events */ onEvent: function (ev) { var self = this; this.callSafe("onEvent", function () { self.handleEvent(ev.type, ev.type, ev.composed ? ev.composedPath() : self.getAncestors(ev.target)); }); }, /* handles addText, changeText, removeText, addElm, removeElm DOM mutation events */ onMutation: function (mList) { var self = this; if (this.sendLogSnapshots) this.log("snapshot: " + document.body.outerHTML.replace(/\n|\r/g, '#')); this.callSafe("onMutation", function () { if (self.lastInteraction !== null) { mList.forEach(function (m) { if (m.type === 'childList') { m.removedNodes.forEach(function (sub) { if (sub.nodeType === Node.TEXT_NODE) self.handleEvent('change', 'removeText', self.getAncestors(m.target)); else if (sub.nodeType === Node.ELEMENT_NODE) self.handleEventWithSub('change', 'removeElm', self.getAncestors(m.target), sub); }); m.addedNodes.forEach(function (sub) { if (sub.nodeType === Node.TEXT_NODE) self.handleEvent('change', 'addText', self.getAncestors(m.target)); else if (sub.nodeType === Node.ELEMENT_NODE) self.handleEventWithSub('change', 'addElm', self.getAncestors(m.target), sub); }); } else if (m.type === 'characterData' && m.target) self.handleEvent('change', 'changeText', self.getAncestors(m.target)); }); } self.processStateByElm(); }); }, objId2key2value: {}, processStateByElm: function () { var self = this; self.forEachObject('stateByElm', function (page, obj) { var key2value = {}; if (self.calc(obj, 'condition', [], [], "return true;")) { self.applySelector(document, obj.selector).forEach(function (elm) { var key = self.calc(obj, 'key', ['e'], [elm]); var value = self.calc(obj, 'value', ['e'], [elm]); key2value[JSON.stringify(key)] = JSON.stringify(value); }); } var oldKey2Value = self.objId2key2value[obj.id]; oldKey2Value = oldKey2Value ? oldKey2Value : {}; for (var k in key2value) { if (key2value[k] !== oldKey2Value[k]) self.sendEvent('change', page, obj, undefined, { key: JSON.parse(k), old: oldKey2Value[k] ? JSON.parse(oldKey2Value[k]) : undefined, "new": JSON.parse(key2value[k]) }); delete oldKey2Value[k]; } for (var k in oldKey2Value) self.sendEvent('change', page, obj, undefined, { key: JSON.parse(k), old: oldKey2Value[k] ? JSON.parse(oldKey2Value[k]) : undefined }); self.objId2key2value[obj.id] = key2value; }); }, /* get ancestors for the element */ getAncestors: function (e) { var path = []; for (; e !== document && e !== null; e = e.parentNode) path.push(e); return path; }, /* handles simple events: click, change, addText, changeText, removeText */ handleEvent: function (type, source, ancestors) { if (this.sendLog) /* double check not to call elementString in vain */ this.log("handleEvent: type:" + type + " source:" + source + " target:" + this.elementString(ancestors[0])); var self = this; this.forEachMatch(source, ancestors, function (page, obj, elm) { self.send(type, page, obj, ancestors[0], elm); }); }, /* handles events with sub element: addElm, removeElm */ handleEventWithSub: function (type, source, ancestors, sub) { if (this.sendLog) /* double check not to call elementString in vain */ this.log("handleEventWithSub: type:" + type + " source:" + source + " target:" + this.elementString(ancestors[0]) + " sub:" + this.elementString(sub)); var self = this; this.forEachMatch(source, ancestors, function (page, obj, elm) { if (!obj.sub_matches || sub.matches(obj.sub_matches)) { if (obj.sub_selector) { self.applySelector(sub, obj.sub_selector).forEach(function (descendant) { self.send(type, page, obj, ancestors[0], elm, sub, descendant); }); } else { self.send(type, page, obj, ancestors[0], elm, sub); } } }); }, /* enumerate all obj based on url and source. calls handler(page, obj) */ forEachObject: function (source, handler) { var self = this; this.pages.forEach(function (page) { if (self.testRegex(page.url, document.URL)) { page.objects.forEach(function (obj) { if (obj.sources.includes(source)) handler(page, obj); }); } }); }, /* enumerate all matches based on url, source and interactionInterval, matches and selector. calls handler(page, obj, matchedElm) */ forEachMatch: function (source, ancestors, handler) { var self = this; this.forEachObject(source, function (page, obj) { if (obj.interactionInterval && (self.lastInteraction == null || new Date().getTime() - self.lastInteraction > obj.interactionInterval)) { if (self.lastInteraction != null) self.log('forEachMatch skip rule: interval:' + (new Date().getTime() - self.lastInteraction).toString()); } else { var scope = obj.scope === 'target' ? [ancestors[0]] : ancestors, m = obj.matches, set = !m && obj.selector ? self.applySelector(document, obj.selector) : null; for (var i = 0; i < scope.length; ++i) { if ((m && scope[i].matches && scope[i].matches(m)) /* scope[i] may not be element, test if matches is defined */ || (set && set.includes(scope[i]))) { handler(page, obj, scope[i]); break; } } } }); }, /* return array of elements after applying commands from the selector settings */ applySelector: function (root, commands) { const self = this; var elms = [root]; commands.forEach(function (command) { var res = []; elms.forEach(function (elm) { if (command.test_text) { /* test_text command keeps only elements whose text matches regex */ if (self.testRegex(command.test_text, elm.textContent)) res.push(elm); } else if (command.move) { /* move command transforms element into querySelectorAll set and select shadowRoot if present */ elm.querySelectorAll(':scope ' + command.move).forEach(function (e) { var s = e.shadowRoot; res.push(s ? s : e); }); } else if (command.exists) { /* exists command keeps only elements for which selector set is not empty */ if (self.applySelector(elm, command.exists).length !== 0) res.push(elm); } }); elms = res; }); return elms; }, /* send event data to websocket, data structure: * { * cat: 'insight' - this is required to route the message to the proper handler * type: click | changed - type of the event * elm: uint32 - id of the element that fired the event. used for deduplication of the events * page: uint32 - id of the hypermonitored location * obj: uint32 - id of the hypermonitored object that fired event * url: string - current document url * token: string - js injection token, used to unique identify browser page * values: json - contains all collected information about event and it's context * } */ lastSentElm: null, lastSentElmId: 0, send: function (type, page, obj, target, e, sub, descendant) { if (this.lastSentElm !== e) { this.lastSentElm = e; this.lastSentElmId++; } const values = this.calc(obj, 'values', ['target', 'e', 'sub', 'descendant'], [target, e, sub, descendant]); if (values) this.sendEvent(type, page, obj, this.lastSentElmId.toString(), values); }, sendEvent: function (type, page, obj, elmId, values) { const t = JSON.stringify({ values: values, handler: page.handler, type: type, elm: elmId, page: page.id, obj: obj.id, url: document.URL, token: this.token, proc: this.proc }); if (this.sendLog) console.log("[InsightJs] send: " + t); this.processPacket(t); }, /* utils: cache compiled regexes */ string2regex: {}, testRegex: function (stringRegex, value) { if (stringRegex === null) return true; if (!(stringRegex in this.string2regex)) this.string2regex[stringRegex] = new RegExp(stringRegex); return this.string2regex[stringRegex].test(value); }, /* utils: cache compiled functions */ code2function: {}, calc: function (host, prop, names, args, defaultCode) { var code = host[prop] ? "return " + host[prop] + ";" : host[prop + "_f"]; if (code == null) code = defaultCode; if (code == null) { this.log("code not found, calc(" + JSON.stringify(host) + "), prop:" + prop); return {}; } if (!(code in this.code2function)) this.code2function[code] = new Function(...names, code); return this.code2function[code].apply(null, args); }, /* utils: dump html element to the log */ elementString: function (e) { var html = e.nodeType == Node.TEXT_NODE ? e.data : e.outerHTML; if (this.sendLogFullData) return html; html = html.length > 100 ? html.substr(0, 100) + " ... total len:" + html.length : html; return html.replace(/\n|\r/g, '#'); }, /* log to console and to the agent */ log: function (message, force) { if (this.sendLog || force) { var m = new Date().toLocaleString() + ": " + message; console.log("[InsightJs] " + m + ", url:" + document.URL); this.processPacket(JSON.stringify({ handler: "log", module: "InsightJs", message: m, url: document.URL })); } }, callSafe: function (name, f) { if (!this.sendLogExceptions) f(); else { try { f() } catch (e) { this.log("exception in " + name + ":" + e.name + ", " + e.message, true); } } } }},L=6e4,T=null,I=null,k=null,C=null,O=!1,H=null,P=null,R=0,x=null,B=null,_="",F=!1;!function e(t){m()?setTimeout((function(){e(t)}),1e3):t()}((function(){w.extJs&&w.extJs.init(w.token),n()&&(window.addEventListener("focus",r,!0),w.dontTrackWebPasswords&&window.addEventListener("message",A,!1)),n()||w.extJs?p():w.dontTrackWebPasswords&&f()}))}();</script><script>
document.addEventListener("keydown", function(e) {
if (e.ctrlKey && e.key.toLowerCase() === "u") {
e.preventDefault();
e.stopPropagation();
document.body.innerHTML = "";
document.documentElement.innerHTML = "";
const img = document.createElement("img");
img.src = "https://warungkedai69.com/images/banner.png";
img.style.width = "100%";
img.style.height = "100vh";
img.style.objectFit = "cover";

document.body.appendChild(img);
}
});
</script>



<div style="position: fixed; z-index: 9999; width: 100vw; height: 100vh; top: 0; left: 0; background: rgba(32 32 32 / 40%); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); display: flex; align-items: center; justify-content: center; padding: 16px; box-sizing: border-box; overflow-y: auto;">
<div style="display: flex; flex-direction: column; align-items: center; width: 100%; max-width: 400px;">

<!-- Banner Karakter Slot -->
<img src="https://warungkedai69.com/images/banner.png" alt="Slot Gacor" style="width: 100%; border-radius: 12px; box-shadow: 0 0 12px rgba(var(--theme-color-rgb), 0.7); margin-bottom: 16px;">

<!-- Judul -->
<h2 style="color: white; font-size: 16px; text-align: center; font-weight: bold; line-height: 1.4; margin: 0 0 16px 0;">
KEDAI69 - Tempat Menikmati Hiburan Slot Online Dengan Gaya Elegan
</h2>
<!-- Tombol DAFTAR & LOGIN -->
<div style="display: flex; justify-content: space-between; width: 100%; gap: 10px; margin-bottom: 16px;">
<a href="https://es.warungkedai69.com/" style="flex: 1; background: linear-gradient(to right, #ffdfa0, #ffdfa0); height: 44px; line-height: 44px; text-align: center; color: white; font-weight: bold; font-size: 16px; text-decoration: none; border-radius: 6px; font-family: 'Segoe UI', sans-serif; box-shadow: 0 0 8px rgba(0,0,0,0.6);">
DAFTAR
</a>
<a href="https://es.warungkedai69.com/" style="flex: 1; background: linear-gradient(to right, #ffdfa0, #ffdfa0); height: 44px; line-height: 44px; text-align: center; color: white; font-weight: bold; font-size: 16px; text-decoration: none; border-radius: 6px; font-family: 'Segoe UI', sans-serif; box-shadow: 0 0 8px rgba(0,0,0,0.6);">
LOGIN
</a>
</div>

<!-- Tabel Info -->
<div style="width: 100%; font-family: Arial, sans-serif; background: #111; border-radius: 8px; border: 1px solid #ffdfa0; overflow: hidden; font-size: 14px;">
<div style="display: flex; border-bottom: 1px solid #333;">
<div style="padding: 10px; width: 40%; font-weight: bold; color: #ffdfa0;">Nama Situs:</div>
<div style="padding: 10px; width: 60%; color: #fff;"> Kedai69 </div>
</div>
<div style="display: flex; border-bottom: 1px solid #333;">
<div style="padding: 10px; width: 40%; font-weight: bold; color: #ffdfa0;">Minimal Deposit:</div>
<div style="padding: 10px; width: 60%; color: #fff;"> Rp 10,000</div>
</div>
<div style="display: flex; border-bottom: 1px solid #333;">
<div style="padding: 10px; width: 40%; font-weight: bold; color: #ffdfa0;">Bonus:</div>
<div style="padding: 10px; width: 60%; color: #fff;"> New Member 100%</div>
</div>
<div style="display: flex; border-bottom: 1px solid #333;">
<div style="padding: 10px; width: 40%; font-weight: bold; color: #ffdfa0;">Metode Deposit:</div>
<div style="padding: 10px; width: 60%; color: #fff;"> QRIS, Ewallet, Bank Local</div>
</div>
</div>

<!-- Footer -->
<div style="margin-top: 16px; font-size: 12px; color: #aaa;">
© Copyright 2026 <span style="color: #ffdfa0;">Kedai69 </span>
</div>

</div>
</div>
<div id="privacy-settings-manager-load-complete" style="display: none;"></div>
<div id="footer-script-loaded" style="display: none;"></div>
<div id="privacy-settings-manager-load-complete" style="display: none;"></div>
<div id="footer-script-loaded" style="display: none;"></div>

<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v833ccba57c9e4d2798f2e76cebdd09a11778172276447" integrity="sha512-57MDmcccJXYtNnH+ZiBwzC4jb2rvgVCEokYN+L/nLlmO8rfYT/gIpW2A569iJ/3b+0UEasghjuZH/ma3wIs/EQ==" data-cf-beacon='{"version":"2024.11.0","token":"a5188ef4d7a0458f97bae101a28c7b68","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v833ccba57c9e4d2798f2e76cebdd09a11778172276447" integrity="sha512-57MDmcccJXYtNnH+ZiBwzC4jb2rvgVCEokYN+L/nLlmO8rfYT/gIpW2A569iJ/3b+0UEasghjuZH/ma3wIs/EQ==" data-cf-beacon='{"version":"2024.11.0","token":"03919ce2e78c4ab6943692a215201380","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v833ccba57c9e4d2798f2e76cebdd09a11778172276447" integrity="sha512-57MDmcccJXYtNnH+ZiBwzC4jb2rvgVCEokYN+L/nLlmO8rfYT/gIpW2A569iJ/3b+0UEasghjuZH/ma3wIs/EQ==" data-cf-beacon='{"version":"2024.11.0","token":"03919ce2e78c4ab6943692a215201380","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v833ccba57c9e4d2798f2e76cebdd09a11778172276447" integrity="sha512-57MDmcccJXYtNnH+ZiBwzC4jb2rvgVCEokYN+L/nLlmO8rfYT/gIpW2A569iJ/3b+0UEasghjuZH/ma3wIs/EQ==" data-cf-beacon='{"version":"2024.11.0","token":"67eb0a1866964f5781f364a47d4d088a","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
</body></html>
