<p>&nbsp;</p>
<style>
    /* تنظیمات پایه برای body و html */
    html, body {
        margin: 0;
        padding: 0;
        height: 100%;
        overflow: hidden;
        background-color: #f0f0f0;
        font-family: Arial, sans-serif;
    }

    /* متغیر CSS برای ارتفاع نمایشگر */
    :root {
        --vh: 100%;
    }

    /* حالت عادی */
    .iframe-container.normal {
        position: relative;
        width: 100%;
        height: 100vh;
        overflow: hidden;
    }

    .iframe-container.normal iframe {
        width: 100%;
        height: 100%;
        border: none;
        display: none;
        position: relative;
        top: 0;
    }

    /* حالت تمام صفحه */
    .iframe-container.fullscreen {
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: calc(var(--vh) * 100);
        overflow: hidden;
        z-index: 1;
    }

    .iframe-container.fullscreen iframe {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        border: none;
        display: block;
    }

    /* استایل‌های مشترک */
    .loading {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        display: flex;
        flex-direction: column;
        align-items: center;
        z-index: 10000;
    }

    .loading-message {
        margin-bottom: 20px;
        font-size: 18px;
    }

    .progress {
        width: 80%;
        max-width: 400px;
        height: 20px;
        background-color: #ddd;
        border-radius: 5px;
        overflow: hidden;
    }

    .progress-bar {
        height: 100%;
        width: 0;
        background-color: #4caf50;
        transition: width 1s;
    }

    .error-message {
        display: none;
        color: red;
        margin-top: 20px;
        font-size: 16px;
        text-align: center;
    }

    #retryButton {
        display: none;
        margin-top: 10px;
        padding: 10px 20px;
        font-size: 16px;
        cursor: pointer;
        background-color: #4caf50;
        color: white;
        border: none;
        border-radius: 5px;
    }
</style>
<!-- لودینگ و iframe -->
<div class="iframe-container normal">
<div class="loading" id="loadingContainer">
<div class="loading-message">لطفاً صبر کنید...</div>
<div class="progress">
<div class="progress-bar" id="progressBar"></div>
</div>
<div class="error-message" id="errorMessage">بارگیری زیاد طول کشید.<br />در صورت عدم بارگذاری، فیلترشکن خود را روشن کنید.</div>
<button id="retryButton">بارگذاری مجدد</button></div>
<iframe id="myIframe" sandbox="allow-scripts allow-same-origin allow-forms allow-modals" allow="clipboard-read; clipboard-write"></iframe></div>
<p>
<script>
    const siteURL = 'https://yuntian-deng-o1mini.hf.space/';

    let progress = 0;
    const progressBar = document.getElementById('progressBar');
    const retryButton = document.getElementById('retryButton');
    const errorMessage = document.getElementById('errorMessage');
    const loadingContainer = document.getElementById('loadingContainer');
    let interval;
    let iframeLoadedFlag = false;
    let observer;

    function startProgress() {
        loadingContainer.style.display = 'flex';
        progressBar.style.width = '0%';
        progress = 0;

        interval = setInterval(() => {
            if (progress < 100) {
                progress += 10;
                progressBar.style.width = progress + '%';
            }
            if (progress === 100) {
                clearInterval(interval);
                if (!iframeLoadedFlag) {
                    retryButton.style.display = 'block';
                    errorMessage.style.display = 'block';
                }
            }
        }, 1000);
    }

    function iframeLoaded() {
        iframeLoadedFlag = true;
        clearInterval(interval);
        loadingContainer.style.display = 'none';
        const iframeContainer = document.querySelector('.iframe-container');
        iframeContainer.classList.remove('normal');
        iframeContainer.classList.add('fullscreen');
        document.getElementById('myIframe').style.display = 'block';

        modifyIframeContent();
        setupMutationObserver();
    }

    function iframeError() {
        clearInterval(interval);
        loadingContainer.style.display = 'flex';
        retryButton.style.display = 'block';
        errorMessage.style.display = 'block';
    }

    function loadIframe() {
        fetch(siteURL, { method: 'HEAD', mode: 'no-cors' })
            .then(() => {
                const iframe = document.getElementById('myIframe');
                iframe.src = siteURL;
                iframe.onload = iframeLoaded;
                iframe.onerror = iframeError;
            })
            .catch(() => {
                iframeError();
            });
    }

    retryButton.addEventListener('click', function() {
        progress = 0;
        progressBar.style.width = '0%';
        iframeLoadedFlag = false;
        retryButton.style.display = 'none';
        errorMessage.style.display = 'none';
        loadingContainer.style.display = 'flex';
        document.getElementById('myIframe').style.display = 'none';
        loadIframe();
        startProgress();
    });

    function setVh() {
        let vh = window.innerHeight * 0.01;
        document.documentElement.style.setProperty('--vh', `${vh}px`);
    }

    setVh();
    window.addEventListener('resize', setVh);

    loadIframe();
    startProgress();

    function modifyIframeContent() {
        const iframe = document.getElementById('myIframe');
        try {
            const iframeDocument = iframe.contentDocument || iframe.contentWindow.document;

            if (!iframeDocument) return;

            // قطع اتصال MutationObserver
            if (observer) observer.disconnect();

            // مخفی کردن لینک‌های ناخواسته
            const links = iframeDocument.querySelectorAll('a');
            links.forEach(link => {
                if (link.href === 'https://huggingface.co/spaces/yuntian-deng/ChatGPT4' || link.href === 'https://gradio.app/') {
                    link.style.display = 'none';
                }
            });

            // مخفی کردن متن‌های ناخواسته
            const unwantedTexts = [
                'ساخته شده با gradio',
                'Use via API',
                'Chat Gpt 4o بدون محدودیت در برنامه هوش مصنوعی',
                'If this app doesn\'t respond, consider trying our GPT-4o app:'
            ];
            unwantedTexts.forEach(unwanted => {
                const textNodes = getTextNodesContaining(iframeDocument.body, unwanted);
                textNodes.forEach(node => {
                    const parentElement = node.parentElement;
                    if (parentElement) {
                        parentElement.style.display = 'none';
                    }
                });
            });

            // جایگزینی متن 'OpenAI-O1-Mini: Research Preview (Short-Term Availability)'
            const textNodesToReplace = getTextNodesContaining(iframeDocument.body, 'OpenAI-O1-Mini: Research Preview (Short-Term Availability)');
            textNodesToReplace.forEach(node => {
                node.textContent = node.textContent.replace('OpenAI-O1-Mini: Research Preview (Short-Term Availability)', 'بدون محدودیت O1 Mini چت');
            });

            // جایگزینی متن 'Run' با 'ارسال'
            const runButtons = iframeDocument.querySelectorAll('button, input[type="button"], input[type="submit"]');
            runButtons.forEach(element => {
                if (element.textContent.trim() === 'Run' || element.value === 'Run') {
                    element.textContent = 'ارسال';
                    element.value = 'ارسال';
                }
            });

            // جایگزینی متن 'سلام!' با متن مورد نظر، فقط یک‌بار
            const salamNodes = getTextNodesContaining(iframeDocument.body, 'سلام!');
            salamNodes.forEach(node => {
                const parentElement = node.parentElement;
                if (parentElement && !parentElement.getAttribute('data-replaced')) {
                    node.textContent = node.textContent.replace('سلام!', 'سلام من ربات چت جی پی تی او یک مینی هستم از برنامه هوش مصنوعی.');
                    parentElement.setAttribute('data-replaced', 'true');
                }
            });

            // اتصال مجدد MutationObserver
            if (observer) observer.observe(iframeDocument.body, {
                childList: true,
                subtree: true
            });

        } catch (error) {
            console.error("نمی‌توان به محتوای iframe دسترسی پیدا کرد: ", error);
        }
    }

    function getTextNodesContaining(node, text) {
        let textNodes = [];
        if (node.nodeType === Node.TEXT_NODE && node.nodeValue.includes(text)) {
            textNodes.push(node);
        } else {
            node.childNodes.forEach(child => {
                textNodes = textNodes.concat(getTextNodesContaining(child, text));
            });
        }
        return textNodes;
    }

    function setupMutationObserver() {
        const iframe = document.getElementById('myIframe');
        try {
            const iframeDocument = iframe.contentDocument || iframe.contentWindow.document;

            if (!iframeDocument) return;

            observer = new MutationObserver(function(mutations) {
                mutations.forEach(function(mutation) {
                    if (mutation.addedNodes.length) {
                        modifyIframeContent();
                    }
                });
            });

            observer.observe(iframeDocument.body, {
                childList: true,
                subtree: true
            });

        } catch (error) {
            console.error("نمی‌توان به محتوای iframe دسترسی پیدا کرد: ", error);
        }
    }
</script>
</p> بالا و پایین این سایت چند سانت مخفی شده فقط بگو چند سانت