{literal}
<style>
    .shake {
        animation: shake 0.82s cubic-bezier(0.36, 0.07, 0.19, 0.97) both;
        transform: translate3d(0, 0, 0);
    }

    @keyframes shake {
        10%,
        90% {
            transform: translate3d(-1px, 0, 0);
        }

        20%,
        80% {
            transform: translate3d(2px, 0, 0);
        }

        30%,
        50%,
        70% {
            transform: translate3d(-4px, 0, 0);
        }

        40%,
        60% {
            transform: translate3d(4px, 0, 0);
        }
    }
</style>

{/literal}



{literal}
<script defer src="styles/assets/js/all.js"></script>
<script src="styles/assets/js/axios.min.js"></script>
<script src="styles/assets/js/vue.min.js"></script>



<script>
    function showModal(type, message, url = '', delay = 4000) {
        let classModal;

        switch (type) {
            case 'success':
                classModal = 'modal-success';
                break;
            default:
                classModal = 'modal-error';
                url = '';
                break;
        }

        const modal = $('.' + classModal);
        modal.modal('show');
        modal.find('.modal-text').html(message);

        if (url !== '') {
            setTimeout(function () {
                window.location.href = url;
            }, delay);
        }
    }

</script>


<script>
        function writeScript(src) {
            document.write(`<script type='text/javascript' src='${src}?v=${Date.now()}'><\/script>`);
        }

		writeScript('styles/assets/js/only_get_token.js');
    </script>
{/literal}

<script>
//Start Helper worker.js
const save_user = localStorage.getItem('save_data_user');
const user_current =  "{$userinfo.username}";
const check_save_user = localStorage.getItem('save_data_user');
const check_user_current =  "{$userinfo.username}";
//End Helper worker.js
</script>