Commit 0bc56475 authored by Kulya's avatar Kulya 😊

Initial commit

parents

Too many changes to show.

To preserve performance only 1000 of 1000+ files are displayed.

logs/*
files/*
temp/*
certs/
pdu/
ussd/*
tgfiles/*
vendor/tg/Orig_src/
vendor/tg/src/tmp/*
vendor/tg/src/confs/*
vendor/tg/src/profiles/*
vendor/tg/src/socks/*
vendor/alovoice/src/*.mp3
vendor/alovoice/src/z__*
vendor/alovoice/src/config.json
vendor/alovoice/src/settings.json
*.php
*.json
*.lock
*.key
*.ini
*.wav
*.flac
!index.php
!bx.php
!command.php
!listener.php
!mydb.php
!registration.php
#!/bin/sh
# $Id$
#chmod 777 /var/www/html/bx24/amibx.sh
#/var/www/html/bx24/amibx.sh $1
### BEGIN INIT INFO
# Provides: amibx
# Required-Start:
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: amibx service
# Description: Run amibx service
### END INIT INFO
NAME=amibx
FLDR="/var/www/html/bx24/"
PIDFILE="/var/run/${NAME}.pid"
LOGFILE="/var/log/${NAME}.log"
CURLBIN=$(which curl)
PSBIN=$(which ps)
GREPBIN=$(which grep)
PHPBIN=$(which php)
DMDBIN=$(which dmidecode)
BSBIN=$(which base64)
DMNBIN=$FLDR"alovoice/start-stop-daemon"
PCAL=$(echo "aHR0cHM6Ly9ieDI0LmFsb3ZvaWNlLnV6L2xpY3MvP2NsaWVudD10dWcmYWN0aW9uPQ==" | base64 -d)
DAEMON_OPTS=$FLDR"listener.php"
START_OPTS="--start --background --make-pidfile --pidfile ${PIDFILE} --exec ${PHPBIN} ${DAEMON_OPTS}"
STOP_OPTS="--stop --pidfile ${PIDFILE}"
ALVHWINFO=$($DMDBIN | $BSBIN -w 0)
CHK=$($PSBIN aux | $GREPBIN ${DAEMON_OPTS} | $GREPBIN -v grep)
case "$1" in
start)
echo "Starting amibx..."
echo $CHK
if [ -z "$CHK" ]
then
$DMNBIN $START_OPTS >> $LOGFILE
$PSBIN aux | $GREPBIN ${DAEMON_OPTS} | $GREPBIN -v grep
else
echo "Amibx is Alreay running!"
fi
ALVANS=$($CURLBIN -s -k -L $PCAL$1"&hwinfo="$ALVHWINFO)
;;
restart)
if [ -z "$CHK" ]
then
echo "AmiBX not running!"
else
$0 stop
#echo "Stopping AmiBX..."
#$DMNBIN $STOP_OPTS
#rm -f $PIDFILE
#sleep 2
fi
$0 start
;;
status)
echo "Status of amibx..."
echo $CHK
;;
check)
if [ -z "$CHK" ]
then
echo "AmiBX is DOWN!"
$0 start
#echo "Starting..."
#$DMNBIN $START_OPTS >> $LOGFILE
fi
;;
stop)
echo "Stopping amibx..."
$DMNBIN $STOP_OPTS
rm -f $PIDFILE
sleep 2
;;
*)
echo "Usage: /etc/init.d/amibx {start|stop|status|restart}"
exit 1
;;
esac
exit 0
[general]
interval=15 ; Number of seconds between trying to connect to devices
;------------------------------ JITTER BUFFER CONFIGURATION --------------------------
;jbenable = yes ; Enables the use of a jitterbuffer on the receiving side of a
; Dongle channel. Defaults to "no". An enabled jitterbuffer will
; be used only if the sending side can create and the receiving
; side can not accept jitter. The Dongle channel can't accept jitter,
; thus an enabled jitterbuffer on the receive Dongle side will always
; be used if the sending side can create jitter.
;jbforce = no ; Forces the use of a jitterbuffer on the receive side of a Dongle
; channel. Defaults to "no".
;jbmaxsize = 200 ; Max length of the jitterbuffer in milliseconds.
;jbresyncthreshold = 1000 ; Jump in the frame timestamps over which the jitterbuffer is
; resynchronized. Useful to improve the quality of the voice, with
; big jumps in/broken timestamps, usually sent from exotic devices
; and programs. Defaults to 1000.
;jbimpl = fixed ; Jitterbuffer implementation, used on the receiving side of a Dongle
; channel. Two implementations are currently available - "fixed"
; (with size always equals to jbmaxsize) and "adaptive" (with
; variable size, actually the new jb of IAX2). Defaults to fixed.
;jbtargetextra = 40 ; This option only affects the jb when 'jbimpl = adaptive' is set.
; The option represents the number of milliseconds by which the new jitter buffer
; will pad its size. the default is 40, so without modification, the new
; jitter buffer will set its size to the jitter value plus 40 milliseconds.
; increasing this value may help if your network normally has low jitter,
; but occasionally has spikes.
;jblog = no ; Enables jitterbuffer frame logging. Defaults to "no".
;-----------------------------------------------------------------------------------
[defaults]
; now you can set here any not required device settings as template
; sure you can overwrite in any [device] section this default values
context=incom_dongle ;fromGSM ; context for incoming calls
group=0 ; calling group
rxgain=0 ; increase the incoming volume; may be negative
txgain=0 ; increase the outgoint volume; may be negative
autodeletesms=yes ; auto delete incoming sms
resetdongle=yes ; reset dongle during initialization with ATZ command
u2diag=-1 ; set ^U2DIAG parameter on device (0 = disable everything except modem function) ; -1 not use ^U2DIAG command
usecallingpres=yes ; use the caller ID presentation or not
callingpres=allowed_passed_screen ; set caller ID presentation by default use default network settings
disablesms=no ; disable of SMS reading from device when received
; chan_dongle has currently a bug with SMS reception. When a SMS gets in during a
; call chan_dongle might crash. Enable this option to disable sms reception.
; default = no
language=en ; set channel default language
smsaspdu=yes ; if 'yes' send SMS in PDU mode, feature implementation incomplete and we strongly recommend say 'yes'
mindtmfgap=45 ; minimal interval from end of previews DTMF from begining of next in ms
mindtmfduration=80 ; minimal DTMF tone duration in ms
mindtmfinterval=200 ; minimal interval between ends of DTMF of same digits in ms
callwaiting=auto ; if 'yes' allow incoming calls waiting; by default use network settings
; if 'no' waiting calls just ignored
disable=no ; OBSOLETED by initstate: if 'yes' no load this device and just ignore this section
initstate=start ; specified initial state of device, must be one of 'stop' 'start' 'remote'
; 'remove' same as 'disable=yes'
exten=+1234567890 ; exten for start incoming calls, only in case of Subscriber Number not available!, also set to CALLERID(ndid)
dtmf=relax ; control of incoming DTMF detection, possible values:
; off - off DTMF tones detection, voice data passed to asterisk unaltered
; use this value for gateways or if not use DTMF for AVR or inside dialplan
; inband - do DTMF tones detection
; relax - like inband but with relaxdtmf option
; default is 'relax' by compatibility reason
[dongle0]
group=1
audio=/dev/ttyUSB1 ; tty port for audio connection; no default value
data=/dev/ttyUSB2 ; tty port for AT commands; no default value
[dongle1]
group=1
audio=/dev/ttyUSB4 ; tty port for audio connection; no default value
data=/dev/ttyUSB5 ; tty port for AT commands; no default value
[dongle2]
group=1
audio=/dev/ttyUSB7 ; tty port for audio connection; no default value
data=/dev/ttyUSB8 ; tty port for AT commands; no default value
[dongle3]
group=1
audio=/dev/ttyUSB10 ; tty port for audio connection; no default value
data=/dev/ttyUSB11 ; tty port for AT commands; no default value
;context=incom_my
;[dongle3]
;group=1
;audio=/dev/ttyUSB10 ; tty port for audio connection; no default value
;data=/dev/ttyUSB11 ; tty port for AT commands; no default value
;[dongle2]
;group=1
;imei=012268006979610
;[5312860]
;group=1
;imsi=434054309320347
;[7742860]
;group=1
;imsi=434070131224757
;dongle0 1 Free 27 0 0 Ucell E173 11.126.85.00.209 359795048106902 434054309320347 +998935312860
;dongle1 1 Free 20 0 0 UMS E173 11.126.85.00.209 011364004513153 434070131224757 +998977742860
;[5312860]
;group=1
;imei=359795048106902
;[7742860]
;group=1
;imei=011364004513153
#!/bin/sh
if [ $# -ne 2 ] ; then
echo "Usage: $0 <zipfile> <new file>" >&2
exit 1
fi
ZIP=$(readlink -f "$1")
FILE=$2
NAME=$(basename "$FILE")
ZIPPATH=$(zip -sf -u "$ZIP" | awk -F/ -v FILE="$NAME" '{sub(/^ /,"")} $NF==FILE')
ZIPDIR=$(dirname "$ZIPPATH")
TMP=$(mktemp -d)
mkdir -p "$TMP/$ZIPDIR"
cp "$FILE" "$TMP/$ZIPDIR/"
cd "$TMP"
zip "$ZIP" "$ZIPDIR/$NAME"
rm -r "$TMP"
#!/bin/sh
#___Installer of AloVoice Bitrix24 Module___
[InternetShortcut]
URL=http://www.phonerlite.de
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<HTML>
<HEAD>
<meta name="GENERATOR" content="Microsoft&reg; HTML Help Workshop 4.1">
<!-- Sitemap 1.0 -->
</HEAD><BODY>
<OBJECT type="text/site properties">
<param name="Window Styles" value="0x800025">
<param name="ImageType" value="Folder">
</OBJECT>
<UL>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Index">
<param name="Local" value="index.htm">
</OBJECT>
<UL>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Deutsche Hilfe">
<param name="Local" value="index_de.htm">
</OBJECT>
<UL>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Allgemein">
<param name="Local" value="general_de.htm">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Logbuch">
<param name="Local" value="log_de.htm">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Telefonbuch">
<param name="Local" value="book_de.htm">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Nachrichten">
<param name="Local" value="message_de.htm">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Konfiguration">
<param name="Local" value="config_de.htm">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Rufumleitung">
<param name="Local" value="forwarding_de.htm">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Statistik">
<param name="Local" value="statistic_de.htm">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Features">
<param name="Local" value="features_de.htm">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="Lizenz">
<param name="Local" value="license_de.htm">
</OBJECT>
</UL>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="English help">
<param name="Local" value="index_en.htm">
</OBJECT>
<UL>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="general">
<param name="Local" value="general_en.htm">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="log book">
<param name="Local" value="log_en.htm">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="phone book">
<param name="Local" value="book_en.htm">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="messages">
<param name="Local" value="message_en.htm">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="configuration">
<param name="Local" value="config_en.htm">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="forwarding">
<param name="Local" value="forwarding_en.htm">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="statistic">
<param name="Local" value="statistic_en.htm">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="features">
<param name="Local" value="features_en.htm">
</OBJECT>
<LI> <OBJECT type="text/sitemap">
<param name="Name" value="license">
<param name="Local" value="license_en.htm">
</OBJECT>
</UL>
</UL>
</UL>
</BODY></HTML>
PhonerLite licencia
===================
Excepto por donde escrito, todos la documentación y el software incluidos
en el paquete PhonerLite, tienen el derecho de autor de Heiko Sommerfeldt.
Copyright (C) 2019 Heiko Sommerfeldt. Todos los derechos reservados.
Este software se provee "como-es", sin ninguna garantía expresa o tácita.
En ningún caso, el autor debe ser considerado responsable por cualquier daño que pueda surgir
por el uso del software.
El permiso es concedido a cualquiera que decida utilizar el software por cualquier motivo,
incluso aplicaciones comerciales, cambiarlo y redistribuirlo,
siempre y cuando sean respetadas las siguientes condiciones:
1. Todas las redistribuciones del paquete completo o partes de él, deben mantener
todos los aspectos del anuncio de derecho de autor antes mencionado, y las direcciones de los sitios
web que están en su lugar(por ejemplo, en las casillas About).
2. El origen de este software, no debe ser distorsionado; nadie pueder reinvindicar
que ha escrito el software original.
3. Las versiones modificadas, deben ser claramente marcadas y no deben ser
falseada y ser presentadas como el software original.
4. Todas las redistribuciones del paquete completo o partes de él deben ser gratuitos.
La redistribución comercial requiere ulteriores consultas con el autor.
Copyright de bibliotecas usadas:
oSIP: Copyright (C) 2002 Aymeric MOIZARD, http://www.osip.org
iLBC: (c) 2000-2003 The iLBCfreeware.org Project, http://www.ilbcfreeware.org
Speex: © 2002-2003, Jean-Marc Valin/Xiph.Org Foundation, http://www.speex.org
libSRTP: Copyright (c) 2001-2005 Cisco Systems, Inc.
OpenSSL: Copyright (c) 1998-2018 The OpenSSL Project, http://www.openssl.org
Heiko Sommerfeldt
info@phoner.de
http://www.phonerlite.de/
PhonerLite License
==================
Except where otherwise noted, all of the documentation and software included
in the PhonerLite package is copyrighted by Heiko Sommerfeldt.
Copyright (C) 2019 Heiko Sommerfeldt. All rights reserved.
This software is provided "as-is", without any express or implied warranty.
In no event shall the author be held liable for any damages arising from the
use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter and distribute it,
provided that the following conditions are met:
1. All distributions of the whole package or parts of it must retain all
occurrences of the above copyright notice and web site addresses that
are currently in place (for example, in the About boxes).
2. The origin of this software must not be misrepresented, you must not
claim that you wrote the original software.
3. Modified versions must be plainly marked as such, and must not be
misrepresented as being the original software.
4. All distributions of the whole package or parts of it must keep free
of charge. Commercial distribution needs further inquiry to the author.
Copyrights of used libraries:
oSIP: Copyright (C) 2002 Aymeric MOIZARD, http://www.osip.org
iLBC: (c) 2000-2003 The iLBCfreeware.org Project, http://www.ilbcfreeware.org
Speex: © 2002-2003, Jean-Marc Valin/Xiph.Org Foundation, http://www.speex.org
libSRTP: Copyright (c) 2001-2005 Cisco Systems, Inc.
OpenSSL: Copyright (c) 1998-2018 The OpenSSL Project, http://www.openssl.org
Heiko Sommerfeldt
info@phoner.de
http://www.phonerlite.de/
BЛицензия на использование PhonerLite
Licença do PhonerLite
=====================
Exceto nos casos em que for observado de outra forma, toda a documentação e o software incluídos
no pacote do PhonerLite estão protegidos com direitos autorais pela Heiko Sommerfeldt.
Copyright (C) 2019 Heiko Sommerfeldt. Todos os direitos reservados.
Este software é fornecido "no estado em que se encontra", sem nenhuma garantia expressa ou implícita.
Em nenhum evento o autor deve ser responsável por danos resultantes do
uso deste software.
É concedida permissão para que qualquer pessoa utilize este software para qualquer finalidade,
incluindo aplicações comerciais, bem como para alterá-lo e redistribuí-lo,desde que as seguintes condições sejam atendidas:
1. Todas as redistribuições do pacote integral ou de partes do pacote devem manter todas as
ocorrências do aviso de copyright acima e dos endereços de sites da Web que
estão atualmente efetivados (por exemplo, nas caixas Sobre).
2. A origem deste software não deve ser adulterada; você não deve
alegar a autoria do software original.
3. Versões modificadas devem estar claramente marcadas como modificadas e não devem ser
adulteradas de forma a constarem como software original.
4. Todas as redistribuições do pacote integral ou de partes do pacote devem ser fornecidas
gratuitamente. A redistribuição comercial requer a consulta adicional do autor.
Copyright de bibliotecas usadas:
oSIP: Copyright (C) 2002 Aymeric MOIZARD, http://www.osip.org
iLBC: (c) 2000-2003 The iLBCfreeware.org Project, http://www.ilbcfreeware.org
Speex: © 2002-2003, Jean-Marc Valin/Xiph.Org Foundation, http://www.speex.org
libSRTP: Copyright (c) 2001-2005 Cisco Systems, Inc.
OpenSSL: Copyright (c) 1998-2018 The OpenSSL Project, http://www.openssl.org
Heiko Sommerfeldt
info@phoner.de
http://www.phonerlite.de/
PhonerLite Lizenz
=================
Wenn nicht anders ausgewiesen, dann stehen die Dokumentation und die
Software aus dem PhonerLite Paket unter dem Copyright von Heiko Sommerfeldt.
Copyright (C) 2019 Heiko Sommerfeldt. Alle Rechte vorbehalten.
Diese Software wird zur Verfügung gestellt, so wie sie ist, ohne
ausdrückliche oder implizite Garantie.
Keinesfalls ist der Autor verantwortlich für etwaigen Schaden, der durch die
Verwendung dieser Software auftritt.
Es wird allen Nutzern des Programms bewilligt, diese Software für
jeden möglichen Zweck einzusetzen, kommerzielle Nutzung inbegriffen.
Veränderungen am Paketumfang und Weitergabe wird erlaubt, solange
folgende Bedingungen erfüllt werden:
1. Jegliche Weitergabe des gesamten Pakets, oder Teile daraus, muss alle
Angaben obiger Copyright Nennung und die Webadresse beinhalten.
2. Die Herkunft der Software darf nicht falsch dargestellt werden, es
darf also nicht fälschlicherweise behauptet werden, der Autor dieser
Software zu sein.
3. Veränderte Versionen müssen als solche deklariert und nicht als
Originalsoftware dargestellt werden.
4. Jegliche Weitergabe des gesamten Pakets, oder Teile daraus, hat
unentgeltlich zu erfolgen. Eine kommerzielle Weitergabe ist nicht
ausgeschlossen, bedarf jedoch einer Rückfrage beim Autor.
Copyright der benutzten Bibliotheken:
oSIP: Copyright (C) 2002 Aymeric MOIZARD, http://www.osip.org
iLBC: (c) 2000-2003 The iLBCfreeware.org Project, http://www.ilbcfreeware.org
Speex: © 2002-2003, Jean-Marc Valin/Xiph.Org Foundation, http://www.speex.org
libSRTP: Copyright (c) 2001-2005 Cisco Systems, Inc.
OpenSSL: Copyright (c) 1998-2018 The OpenSSL Project, http://www.openssl.org
Heiko Sommerfeldt
info@phoner.de
http://www.phonerlite.de/

\ No newline at end of file
#!/usr/bin/env php
<?php session_start(); require __DIR__ . '/vendor/autoload.php';
require ('/var/lib/asterisk/agi-bin/phpagi.php');
$AGI = new AGI();
$AGI->verbose("------------------------------------------");
$datas = array(
'caller_id' => $AGI->request['agi_callerid'],
'called_ext' => $AGI->request['agi_extension'],
);
global $ALVC;
$ALVC = new AloVoice\AloVoiceConnector();
(new AloVoice\AloVoiceAgi($ALVC->configs))->run($datas);
// $AGI->hangup();
// file_put_contents('/var/www/html/bx24/logs/agi_20211026.log', "VARS_".json_encode($argv)."\n", FILE_APPEND);
// file_put_contents('/var/www/html/bx24/logs/agi_20211026.log', "CID_".$ani."\n", FILE_APPEND);
exit(0);
?>
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<p><strong>ИМЯКЛИЕНТА Добрый день!</strong></p>
<p>&nbsp;Меня зовут Даниил Камильевич, и я представитель компании-партнера Битрикс24 &ndash; Техноюнит-групп.</p>
<p>Говорить можете?</p>
<p>Давайте тогда я кратенько</p>
<p><br /> Вы регистрировались на <strong>конференцию от Битрикс24 - CRM CONF 2021: Бизнес - это про людей</strong>, который проходил <strong>8 октября. </strong>Хочу узнать Вы получили материалы: запись вебинара, презентации спикеров? <br /> </p>
<p><br /> Если <strong>ДА</strong> &ndash; отлично, и идём на ВТОРОЙ ВОПРОС<br /> </p>
<p>Если <strong>НЕТ</strong> &ndash; я могу повторно прислать Вам их на е-мейл или в Телеграмм,? Ваш е-мейл (читаем почту) правильно?</p>
<p>Отлично! Так и сделаю<br /> Хорошего дня и до связи!</p>
<p>&nbsp;</p>
<p>Если НЕТ МНЕ НИЧЕГО НЕ НАДО, спрашиваем:</p>
<p>- Почему?</p>
<p>Записываем ответ и:</p>
<p>- Понял, хорошего дня!</p>
<p>&nbsp;</p>
<p><strong>ВТОРОЙ ВОПРОС</strong></p>
<p>вы уже пользуетесь Битрикс24?</p>
<p>&nbsp;</p>
<p><strong>Если ДА, то:</strong></p>
<p>Что именно вам нравиться и в чем нужна помощь?</p>
<p>&nbsp;</p>
<p>Мы можем настроить для вас:</p>
<ul>
<li>приём онлайн оплаты или интеграцию с дидоксом</li>
<li>Автоматический обзвон должников или СМС-рассылку.</li>
<li>Онлайн-продажи и шаблоны документов.</li>
</ul>
<p>&nbsp;</p>
<p>Я могу организовать для руководства вашей компании видеоконференцию, на которой наши сотрудники смогут показать, как это всё работает в нашей компании и может работать у вас, что скажете?</p>
<p>&nbsp;</p>
<p>Ок, тогда я отправлю вам ещё раз материалы по конференции, а позже свяжемся чтобы назначить время для онлайн-встречи</p>
<p>&nbsp;</p>
<p><strong>Если НЕТ</strong> то,</p>
<p>Ок, давайте я тогда вам вкратце расскажу:</p>
<p>Битрикс24 &ndash; это более десятка бизнес-инструментов, таких как</p>
<p>онлайн-продажи,</p>
<p>управление задачами и контроль их исполнения,</p>
<p>шаблоны документов с интеграцией к DIDOX</p>
<p>Контроль рекламы и какая приносит больше денег</p>
<p>Автоматический обзвон должников и ещё многое много другое</p>
<p>&nbsp;</p>
<p>Я могу организовать для руководства вашей компании видеоконференцию, на которой наши сотрудники смогут показать, как это всё работает в нашей компании и может работать у вас, что скажете?</p>
<p>&nbsp;</p>
<p>Ок, тогда я отправлю вам ещё раз материалы по конференции, а позже свяжемся чтобы назначить время для онлайн-встречи</p>
<p><strong>Хорошего&nbsp; вам дня!</strong></p>
</body>
</html>
\ No newline at end of file
This diff is collapsed.
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<p>Assalomu alaykum, ismim ................... Ismingiz&nbsp; !?</p>
<p>"mijoz ismi" siz (mijozning ish faoliyati) bilan shug'ullanasiz, to'g'rimi?</p>
<p>"mijzo ismi" biz TECHNO UNIT GROUP kompaniyasidan sizga qo'ng'iroq qilayapman, biz biznesni avtomatlashtirishtiramiz. Bizdagi dasturiy mahsulotlar orqali siz nafaqat o'z shartnomalaringizni kuzatib yuritib borasiz balki, o'z vazifa va loyihalaringizni kuzatishingiz, potensial mijozlaringiz bilan turli kanallarda suhbatlashishingiz va o'z kompaniyangizni interda sayt ko'rinishida taqdim qilishingizga ko'maklashadi. Buni barchasini amalga oshirishingiz uchun yuqori sarmoya sarflashingizning hojati yo'q, siz shunchaki o'zingizga qulay tarifni tanlashingiz mumkin. Bundan tashqari sizga sayt va uni ko'rib chiqishingiz uchun SSilka yuborishim mumkin. Nima deysiz?</p>
<table>
<tbody>
<tr>
<td width="340">
<p>-&nbsp;O'ylaymanki ha, bu mena qiziq</p>
<p>- "mijoz ismi" bundan tashqari sizga loyihani ishlab chiqish va o'rnatish uchun ko'p vaqt kerak bo'lmaydi, siz shunchaki bitrix24 dan o'zingizga kerak bo'lgan tarifni tanlab olishingiz va men bunda sizga ko'maklashishim mumkin! Aytgancha 31 avgustga qadar tarifni 40%gacha chegirma bilan sotib olishning imkoni mavjud. Sizga havola yo'llayman va siz havoladan o'zingizga mos tarifni tanlab, sinab ko'rasiz. O'ylaymanki sizga abatta yoqadi, nima deysiz?</p>
</td>
<td width="357">
<p>- "Yo'q, menga qiziq emas"</p>
<p>- "mijoz ismi" rad etishga shoshilmang, boisi bitrix24da 5 ta asosiy funksional blok bor bo'lib, ular lendingdan tortib vurtual ofisgacha, bularning barchasi o'z biznesingizni avtomatlashtirishingizga va uni yangi bosqichga olib chiqishingizga ko'maklashadi. Bundan tashqari bitrix24 MDH davlatlari ichida 1-raqamli CRM hisoblanadi, aynan shu orqali ham mijozlarning ishonchini qozongan. Sizga mahsulotimiz haqida malumot yuborishga ruxsat bering, shunda siz batafsilroq tanishishingiz mumkin bo'ladi, keyin esa sizni qiziqtirgan savollarga javob berishim mumkin. Nima deysiz?</p>
</td>
</tr>
<tr>
<td width="340">
<p>- Давайте, попробуем.</p>
<p>- Скажите, куда вам отправить ссылку?</p>
</td>
<td width="357">
<p>- "Mayli sinab ko'raylikchi"</p>
<p>- "mijoz ismi" silkani qayerga yuvorishimni ayta olasizmi?</p>
<p>- --yoki--</p>
<p>"mijoz ismi" sizlkani qayerga yo'llashimni aytib yubora olasizmi? (aniq vaqt aytiladi) shu kuni sizga qo'ng'roq qilib mahsulot haqidagi sizni qiziqtirgan savollarga javob berib chiqaman, sog' va salomat bo'ling!</p>
</td>
</tr>
</tbody>
</table>
</body>
</html>
\ No newline at end of file
This diff is collapsed.
<?php session_start(); require __DIR__ . '/vendor/autoload.php';
global $ALVC;
$ALVC = new AloVoice\AloVoiceConnector();
if(!empty($_REQUEST['cmd'])){
include("command.php");
}
else {
$ALVC->run();
}
?>
\ No newline at end of file
<?php session_start(); require dirname(__DIR__) . '/vendor/autoload.php';
global $ALVC;
$ALVC = new AloVoice\AloVoiceConnector();
$ALVC->install();
?>
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
<?php require dirname(__DIR__) . '/vendor/autoload.php';
global $ALVC;
$ALVC = new AloVoice\AloVoiceConnector();
$confs = $ALVC->getConfigs();
// var_dump($confs);
$cmpTash = __DIR__."/CompaniesTashkent.csv";
$row = 0;
$arCompHead = [];
$arCompanies = [];
if (($handle = fopen($cmpTash, "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1024, ";")) !== FALSE) {
$num = count($data);
if($row==0){
foreach($data as $hd) {
$arCompHead[] = $hd;
}
}
else {
$arComp = [];
foreach($data as $k=>$dt) {
$arComp[$arCompHead[$k]] = $dt;
}
$arCompanies[] = $arComp;
}
$row++;
if($row>10){ break; }
}
fclose($handle);
}
var_dump($arCompanies);
?>
\ No newline at end of file
<?php
//echo ++$argv[1];
$_ = $_SERVER['_'];
register_shutdown_function(function () {
global $_, $argv; // note we need to reference globals inside a function
// restart myself
pcntl_exec($_, $argv);
});
require __DIR__ . '/vendor/autoload.php';
global $ALVC;
$ALVC = new AloVoice\AloVoiceConnector();
$ALVC->listen();
// Close the connection
//$client->close();
die; // exited properly
// we can't reach here
pcntl_exec($_, $argv);
?>
This source diff could not be displayed because it is too large. You can view the blob instead.
<?php require __DIR__ . '/vendor/autoload.php';
global $ALVC;
$ALVC = new AloVoice\AloVoiceConnector();
$ALVC->registration();
?>
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
/*//////////////////////////////////////////////////////////////////
[ FONT ]*/
/*
@font-face {
font-family: Poppins-Regular;
src: url('../fonts/poppins/Poppins-Regular.ttf');
}
@font-face {
font-family: Poppins-Bold;
src: url('../fonts/poppins/Poppins-Bold.ttf');
}
*/
/*//////////////////////////////////////////////////////////////////
[ RESTYLE TAG ]*/
* {
margin: 0px;
padding: 0px;
box-sizing: border-box;
}
document, html, body {
height: 100%;
width:100%;
font-family: "OpenSans-Semibold","Helvetica Neue",Arial,Helvetica,sans-serif !important;
}
.afilelabel {
/* width: 250px; */
height: 40px;
border-radius: 4px;
text-align: center;
margin: 0;
cursor: pointer;
display: block;
font: 1em Tahoma;
transition: all 0.18s ease-in-out;
/* border: 1px solid #4FD666; */
/* background: linear-gradient(to top right, #3EC97A, #69EA49 20%, rgba(255, 255, 255, 0) 80%, rgba(255, 255, 255, 0)) top right/500% 500%; */
/* color: #4FD666; */
}
.afilelabel:hover {
color: white;
background-position: bottom left;
}
.myfileinput {
width: 0.1px;
height: 0.1px;
opacity: 0;
overflow: hidden;
position: absolute;
z-index: -1;
}
.staff_open{
text-decoration: none !important;
-webkit-transition: color .3s, border-bottom .3s !important;
transition: color .3s, border-bottom .3s !important;
border-bottom: 1px solid rgba(70, 142, 229, .5) !important;
color: #468EE5 !important;
}
.form-control-lg{
box-shadow: inset 1px 1px 3px 0px #8282827d;
}
#alv_mainblock{
padding-top: 50px;
}
.alv_topmenu a.active {
font-weight: bold;
border-bottom: 2px solid;
}
.alv_topmenu a {
padding: .4rem 1rem .3rem .2rem;
}
.alv_topmenu{
display: inline-flex;
box-shadow: 0 6px 15px -15px #000;
}
.alv_topmenu:hover {
background-color: #ececff;
cursor: pointer;
}
.menu_top{
display:flex !important;
position:fixed;
/* z-index:999999999; */
z-index: 999;
}
.card-body-bottomtitle {
position: fixed;
bottom: 0;
width: 100%;
padding-bottom: 0 !important;
margin-bottom: 0 !important;
}
/* ------------------------------------ */
a {
margin: 0px;
transition: all 0.4s;
-webkit-transition: all 0.4s;
-o-transition: all 0.4s;
-moz-transition: all 0.4s;
}
a:focus {
outline: none !important;
}
a:hover {
text-decoration: none;
}
/* ------------------------------------ */
h1,h2,h3,h4,h5,h6 {margin: 0px;}
p {margin: 0px;}
ul, li {
margin: 0px;
list-style-type: none;
}
/*
.modal-dialog {
max-width: 500px !important;
margin: 20% auto !important;
}
*/
/* ------------------------------------ */
input {
display: block;
outline: none;
}
/*border: none !important;*/
textarea {
display: block;
outline: none;
}
.tgcolor {
color:#0069d9;
}
textarea:focus, input:focus {
/* border-color: transparent !important;*/
}
/* ------------------------------------ */
button {
outline: none !important;
border: none;
background: transparent;
}
button:hover {
cursor: pointer;
}
iframe {
border: none !important;
}
/*
#alvModal{
display:none;
}
*/
.title_line_button{
position: absolute;
right: 65px;
top: 65px;
}
/*//////////////////////////////////////////////////////////////////
[ Table ]*/
.limiter {
width: 100%;
margin: 0 auto;
}
.container-table100 {
width: 100%;
/*min-height: 100vh;*/
/* background: #c4d3f6;*/
display: -webkit-box;
display: -webkit-flex;
display: -moz-box;
display: -ms-flexbox;
display: flex;
align-items: center;
justify-content: center;
flex-wrap: wrap;
padding: 33px 30px;
}
.wrap-table100 {
width: 90%;
border-radius: 10px;
overflow: hidden;
}
.table {
width: 100%;
display: table;
margin: 0;
}
@media screen and (max-width: 768px) {
.table {
display: block;
}
}
.row {
display: table-row;
background: #fff;
}
.row.header {
color: #ffffff;
background: #3BC8F5;
font-weight:bold;
}
@media screen and (max-width: 768px) {
.row {
display: block;
}
.row.header {
padding: 0;
height: 0px;
}
.row.header .cell {
display: none;
}
.row .cell:before {
font-size: 12px;
color: #808080;
line-height: 1.2;
text-transform: uppercase;
font-weight: unset !important;
margin-bottom: 13px;
content: attr(data-title);
min-width: 98px;
display: block;
}
}
.cell {
display: table-cell;
}
@media screen and (max-width: 768px) {
.cell {
display: block;
}
}
.row .cell {
font-size: 15px;
color: #666666;
line-height: 1.2;
font-weight: unset !important;
padding-top: 20px;
padding-bottom: 20px;
border-bottom: 1px solid #f2f2f2;
}
.row.header .cell {
font-size: 18px;
color: #fff;
line-height: 1.2;
font-weight: unset !important;
padding-top: 19px;
padding-bottom: 19px;
}
.row .cell:nth-child(1) {
width: 360px;
padding-left: 40px;
}
.row .cell:nth-child(2) {
width: 160px;
}
.row .cell:nth-child(3) {
width: 250px;
}
.row .cell:nth-child(4) {
width: 190px;
}
.table, .row {
width: 100% !important;
}
@media (max-width: 768px) {
.row {
border-bottom: 1px solid #f2f2f2;
padding-bottom: 18px;
padding-top: 30px;
padding-right: 15px;
margin: 0;
}
.row .cell {
border: none;
padding-left: 30px;
padding-top: 16px;
padding-bottom: 16px;
}
.row .cell:nth-child(1) {
padding-left: 30px;
}
.row .cell {
font-size: 18px;
color: #555555;
line-height: 1.2;
font-weight: unset !important;
}
.table, .row, .cell {
width: 100% !important;
}
}
.app-loading {
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: rgba(0, 0, 0, 0.5);
z-index: 9999;
}
.app-loading__icon {
width: 4em;
height: 4em;
-webkit-animation:spin 4s linear infinite;
-moz-animation:spin 4s linear infinite;
animation:spin 4s linear infinite;
}
@-moz-keyframes spin {
100% { -moz-transform: rotate(360deg); }
}
@-webkit-keyframes spin {
100% { -webkit-transform: rotate(360deg); }
}
@keyframes spin {
100% {
-webkit-transform: rotate(360deg);
transform:rotate(360deg);
}
}
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
I hope you love Font Awesome. If you've found it useful, please do me a favor and check out my latest project,
Fort Awesome (https://fortawesome.com). It makes it easy to put the perfect icons on your website. Choose from our awesome,
comprehensive icon sets or copy and paste your own.
Please. Check it out.
-Dave Gandy
This diff is collapsed.
This diff is collapsed.
// Animated Icons
// --------------------------
.@{fa-css-prefix}-spin {
-webkit-animation: fa-spin 2s infinite linear;
animation: fa-spin 2s infinite linear;
}
.@{fa-css-prefix}-pulse {
-webkit-animation: fa-spin 1s infinite steps(8);
animation: fa-spin 1s infinite steps(8);
}
@-webkit-keyframes fa-spin {
0% {
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-webkit-transform: rotate(359deg);
transform: rotate(359deg);
}
}
@keyframes fa-spin {
0% {
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-webkit-transform: rotate(359deg);
transform: rotate(359deg);
}
}
// Bordered & Pulled
// -------------------------
.@{fa-css-prefix}-border {
padding: .2em .25em .15em;
border: solid .08em @fa-border-color;
border-radius: .1em;
}
.@{fa-css-prefix}-pull-left { float: left; }
.@{fa-css-prefix}-pull-right { float: right; }
.@{fa-css-prefix} {
&.@{fa-css-prefix}-pull-left { margin-right: .3em; }
&.@{fa-css-prefix}-pull-right { margin-left: .3em; }
}
/* Deprecated as of 4.4.0 */
.pull-right { float: right; }
.pull-left { float: left; }
.@{fa-css-prefix} {
&.pull-left { margin-right: .3em; }
&.pull-right { margin-left: .3em; }
}
// Base Class Definition
// -------------------------
.@{fa-css-prefix} {
display: inline-block;
font: normal normal normal @fa-font-size-base/@fa-line-height-base FontAwesome; // shortening font declaration
font-size: inherit; // can't have font-size inherit on line above, so need to override
text-rendering: auto; // optimizelegibility throws things off #1094
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
// Fixed Width Icons
// -------------------------
.@{fa-css-prefix}-fw {
width: (18em / 14);
text-align: center;
}
/*!
* Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome
* License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
*/
@import "variables.less";
@import "mixins.less";
@import "path.less";
@import "core.less";
@import "larger.less";
@import "fixed-width.less";
@import "list.less";
@import "bordered-pulled.less";
@import "animated.less";
@import "rotated-flipped.less";
@import "stacked.less";
@import "icons.less";
@import "screen-reader.less";
This diff is collapsed.
// Icon Sizes
// -------------------------
/* makes the font 33% larger relative to the icon container */
.@{fa-css-prefix}-lg {
font-size: (4em / 3);
line-height: (3em / 4);
vertical-align: -15%;
}
.@{fa-css-prefix}-2x { font-size: 2em; }
.@{fa-css-prefix}-3x { font-size: 3em; }
.@{fa-css-prefix}-4x { font-size: 4em; }
.@{fa-css-prefix}-5x { font-size: 5em; }
// List Icons
// -------------------------
.@{fa-css-prefix}-ul {
padding-left: 0;
margin-left: @fa-li-width;
list-style-type: none;
> li { position: relative; }
}
.@{fa-css-prefix}-li {
position: absolute;
left: -@fa-li-width;
width: @fa-li-width;
top: (2em / 14);
text-align: center;
&.@{fa-css-prefix}-lg {
left: (-@fa-li-width + (4em / 14));
}
}
// Mixins
// --------------------------
.fa-icon() {
display: inline-block;
font: normal normal normal @fa-font-size-base/@fa-line-height-base FontAwesome; // shortening font declaration
font-size: inherit; // can't have font-size inherit on line above, so need to override
text-rendering: auto; // optimizelegibility throws things off #1094
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.fa-icon-rotate(@degrees, @rotation) {
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=@{rotation})";
-webkit-transform: rotate(@degrees);
-ms-transform: rotate(@degrees);
transform: rotate(@degrees);
}
.fa-icon-flip(@horiz, @vert, @rotation) {
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=@{rotation}, mirror=1)";
-webkit-transform: scale(@horiz, @vert);
-ms-transform: scale(@horiz, @vert);
transform: scale(@horiz, @vert);
}
// Only display content to screen readers. A la Bootstrap 4.
//
// See: http://a11yproject.com/posts/how-to-hide-content/
.sr-only() {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
margin: -1px;
overflow: hidden;
clip: rect(0,0,0,0);
border: 0;
}
// Use in conjunction with .sr-only to only display content when it's focused.
//
// Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1
//
// Credit: HTML5 Boilerplate
.sr-only-focusable() {
&:active,
&:focus {
position: static;
width: auto;
height: auto;
margin: 0;
overflow: visible;
clip: auto;
}
}
/* FONT PATH
* -------------------------- */
@font-face {
font-family: 'FontAwesome';
src: url('@{fa-font-path}/fontawesome-webfont.eot?v=@{fa-version}');
src: url('@{fa-font-path}/fontawesome-webfont.eot?#iefix&v=@{fa-version}') format('embedded-opentype'),
url('@{fa-font-path}/fontawesome-webfont.woff2?v=@{fa-version}') format('woff2'),
url('@{fa-font-path}/fontawesome-webfont.woff?v=@{fa-version}') format('woff'),
url('@{fa-font-path}/fontawesome-webfont.ttf?v=@{fa-version}') format('truetype'),
url('@{fa-font-path}/fontawesome-webfont.svg?v=@{fa-version}#fontawesomeregular') format('svg');
// src: url('@{fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts
font-weight: normal;
font-style: normal;
}
// Rotated & Flipped Icons
// -------------------------
.@{fa-css-prefix}-rotate-90 { .fa-icon-rotate(90deg, 1); }
.@{fa-css-prefix}-rotate-180 { .fa-icon-rotate(180deg, 2); }
.@{fa-css-prefix}-rotate-270 { .fa-icon-rotate(270deg, 3); }
.@{fa-css-prefix}-flip-horizontal { .fa-icon-flip(-1, 1, 0); }
.@{fa-css-prefix}-flip-vertical { .fa-icon-flip(1, -1, 2); }
// Hook for IE8-9
// -------------------------
:root .@{fa-css-prefix}-rotate-90,
:root .@{fa-css-prefix}-rotate-180,
:root .@{fa-css-prefix}-rotate-270,
:root .@{fa-css-prefix}-flip-horizontal,
:root .@{fa-css-prefix}-flip-vertical {
filter: none;
}
// Screen Readers
// -------------------------
.sr-only { .sr-only(); }
.sr-only-focusable { .sr-only-focusable(); }
// Stacked Icons
// -------------------------
.@{fa-css-prefix}-stack {
position: relative;
display: inline-block;
width: 2em;
height: 2em;
line-height: 2em;
vertical-align: middle;
}
.@{fa-css-prefix}-stack-1x, .@{fa-css-prefix}-stack-2x {
position: absolute;
left: 0;
width: 100%;
text-align: center;
}
.@{fa-css-prefix}-stack-1x { line-height: inherit; }
.@{fa-css-prefix}-stack-2x { font-size: 2em; }
.@{fa-css-prefix}-inverse { color: @fa-inverse; }
This diff is collapsed.
// Spinning Icons
// --------------------------
.#{$fa-css-prefix}-spin {
-webkit-animation: fa-spin 2s infinite linear;
animation: fa-spin 2s infinite linear;
}
.#{$fa-css-prefix}-pulse {
-webkit-animation: fa-spin 1s infinite steps(8);
animation: fa-spin 1s infinite steps(8);
}
@-webkit-keyframes fa-spin {
0% {
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-webkit-transform: rotate(359deg);
transform: rotate(359deg);
}
}
@keyframes fa-spin {
0% {
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-webkit-transform: rotate(359deg);
transform: rotate(359deg);
}
}
// Bordered & Pulled
// -------------------------
.#{$fa-css-prefix}-border {
padding: .2em .25em .15em;
border: solid .08em $fa-border-color;
border-radius: .1em;
}
.#{$fa-css-prefix}-pull-left { float: left; }
.#{$fa-css-prefix}-pull-right { float: right; }
.#{$fa-css-prefix} {
&.#{$fa-css-prefix}-pull-left { margin-right: .3em; }
&.#{$fa-css-prefix}-pull-right { margin-left: .3em; }
}
/* Deprecated as of 4.4.0 */
.pull-right { float: right; }
.pull-left { float: left; }
.#{$fa-css-prefix} {
&.pull-left { margin-right: .3em; }
&.pull-right { margin-left: .3em; }
}
// Base Class Definition
// -------------------------
.#{$fa-css-prefix} {
display: inline-block;
font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} FontAwesome; // shortening font declaration
font-size: inherit; // can't have font-size inherit on line above, so need to override
text-rendering: auto; // optimizelegibility throws things off #1094
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
// Fixed Width Icons
// -------------------------
.#{$fa-css-prefix}-fw {
width: (18em / 14);
text-align: center;
}
This diff is collapsed.
// Icon Sizes
// -------------------------
/* makes the font 33% larger relative to the icon container */
.#{$fa-css-prefix}-lg {
font-size: (4em / 3);
line-height: (3em / 4);
vertical-align: -15%;
}
.#{$fa-css-prefix}-2x { font-size: 2em; }
.#{$fa-css-prefix}-3x { font-size: 3em; }
.#{$fa-css-prefix}-4x { font-size: 4em; }
.#{$fa-css-prefix}-5x { font-size: 5em; }
// List Icons
// -------------------------
.#{$fa-css-prefix}-ul {
padding-left: 0;
margin-left: $fa-li-width;
list-style-type: none;
> li { position: relative; }
}
.#{$fa-css-prefix}-li {
position: absolute;
left: -$fa-li-width;
width: $fa-li-width;
top: (2em / 14);
text-align: center;
&.#{$fa-css-prefix}-lg {
left: -$fa-li-width + (4em / 14);
}
}
// Mixins
// --------------------------
@mixin fa-icon() {
display: inline-block;
font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} FontAwesome; // shortening font declaration
font-size: inherit; // can't have font-size inherit on line above, so need to override
text-rendering: auto; // optimizelegibility throws things off #1094
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
@mixin fa-icon-rotate($degrees, $rotation) {
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation})";
-webkit-transform: rotate($degrees);
-ms-transform: rotate($degrees);
transform: rotate($degrees);
}
@mixin fa-icon-flip($horiz, $vert, $rotation) {
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation}, mirror=1)";
-webkit-transform: scale($horiz, $vert);
-ms-transform: scale($horiz, $vert);
transform: scale($horiz, $vert);
}
// Only display content to screen readers. A la Bootstrap 4.
//
// See: http://a11yproject.com/posts/how-to-hide-content/
@mixin sr-only {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
margin: -1px;
overflow: hidden;
clip: rect(0,0,0,0);
border: 0;
}
// Use in conjunction with .sr-only to only display content when it's focused.
//
// Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1
//
// Credit: HTML5 Boilerplate
@mixin sr-only-focusable {
&:active,
&:focus {
position: static;
width: auto;
height: auto;
margin: 0;
overflow: visible;
clip: auto;
}
}
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment