!C99Shell v. 2.1 [PHP 8 Update] [02.02.2022]!

Software: Microsoft-IIS/10.0. PHP/7.4.33 

uname -a: Windows NT LAKE 10.0 build 20348 (Windows Server 2016) AMD64 

IWPD_801(traduongco) 

Safe-mode: OFF (not secure)

C:\Windows\SystemApps\Microsoft.Windows.CloudExperienceHost_cw5n1h2txyewy\webapps\inclusiveOobe\js\   drwxrwxrwx
Free 20.65 GB of 99.4 GB (20.77%)
Detected drives: [ a ] [ c ] [ d ] [ e ]
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     oobedevicepairing-vm.js (8.84 KB)      -rw-rw-rw-
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
//
// Copyright (C) Microsoft. All rights reserved.
//
define(['lib/knockout', 'legacy/bridge', 'legacy/events'], (ko, bridge, constants) => {
    function stringFromEnum(enumType, enumValue) {
        return Object.keys(enumType).find((key) => enumType[key] == enumValue);
    }
    
    const cxhSpeech = CloudExperienceHostAPI.Speech;
    const winSpeech = Windows.Media.SpeechRecognition;
    const skipConstraintTag = "skip";
    const retryConstraintTag = "retry";

    class DevicePairingViewModel {
        constructor(element, resourceStrings, accessories, accessoryImageUrls) {
            this.element = element;
            this.resourceStrings = resourceStrings;
            this.accessories = accessories;
            this.accessoryImageUrls = accessoryImageUrls;
            this.PairingStatusEnum = CloudExperienceHostAPI.OobeDevicePairingStatus;
            this.pairingStatus = ko.observable(this.PairingStatusEnum.unknown);
            this.pairingStatusChangedListener = this._onPairingStatusChanged.bind(this);
            this.statusText = ko.observable("");

            this.processingFlag = ko.observable(false);
            this.disableControl = ko.pureComputed(() => {
                return this.processingFlag();
            });

            this.isPairing = ko.pureComputed(() => {
                let status = this.pairingStatus();
                return (status != this.PairingStatusEnum.succeeded) && (status != this.PairingStatusEnum.failed);
            });

            this.isPairing.subscribe(this._onIsPairingChanged.bind(this));

            this.isWorking = ko.pureComputed(() => {
                return (this.pairingStatus() == this.PairingStatusEnum.discovering) ||
                       (this.pairingStatus() == this.PairingStatusEnum.pairing) ||
                       (this.pairingStatus() == this.PairingStatusEnum.installing);
            });
            
            this.statusText = ko.pureComputed(() => {
                let statusName = stringFromEnum(this.PairingStatusEnum, this.pairingStatus());
                return this.resourceStrings["StatusText-" + statusName] || "";
            });
            
            this.currentAccessoryIndex = ko.observable(0);
            this.currentAccessory = ko.pureComputed(() => {
                return this.accessories[this.currentAccessoryIndex()];
            });
             
            this.currentAccessoryImages = ko.pureComputed(() => {
                return this.accessoryImageUrls[this.currentAccessoryIndex()];
            });

            // Note this will not fire for the first accessory, but we fire it manually in onPageLoaded.
            this.currentAccessory.subscribe(this._onCurrentAccessoryChanged.bind(this));

            this.currentAccessoryIndex.subscribe((newAccessoryIndex) => {
                this.processingFlag(false);
            });
        }

        onSkipClicked() {
            if (!this.processingFlag()) {
                this.processingFlag(true);

                bridge.invoke("CloudExperienceHost.Telemetry.logEvent", "SkipUserOobeDevicePairing");
                this._nextOrDone();
            }
        }

        onRetryClicked() {
            if (!this.processingFlag()) {
                this.processingFlag(true);

                bridge.invoke("CloudExperienceHost.Telemetry.logEvent", "RetryUserOobeDevicePairing");
                this._beginPairingAccessory();
            }
        }

        onNextClicked() {
            if (!this.processingFlag()) {
                this.processingFlag(true);

                this._nextOrDone();
            }
        }

        _nextOrDone() {
            let nextAccessoryIndex = this.currentAccessoryIndex() + 1;
            if (nextAccessoryIndex < this.accessories.length) {
                this._disconnectAccessoryListener();
                this.currentAccessoryIndex(nextAccessoryIndex);
            }
            else {
                if (this.pairingStatus() == this.PairingStatusEnum.succeeded) {
                    bridge.fireEvent(constants.Events.done, constants.AppResult.success);
                }
                else if (this.pairingStatus() == this.PairingStatusEnum.failed) {
                    bridge.fireEvent(constants.Events.done, constants.AppResult.failed);
                }
                else {
                    bridge.fireEvent(constants.Events.done, constants.AppResult.cancel);
                }
            }
        }

        _disconnectAccessoryListener() {
            if (this.currentAccessory()) {
                this.currentAccessory().removeEventListener("statuschanged", this.pairingStatusChangedListener);
            }
        }

        _onCurrentAccessoryChanged(accessory) {
            this.processingFlag(false);
            accessory.addEventListener("statuschanged", this.pairingStatusChangedListener);
            this._beginPairingAccessory();
        }

        _onPairingStatusChanged(e) {
            this.processingFlag(false);
            this.pairingStatus(e.target.status);
        }

        _onIsPairingChanged(isPairing) {
            this.processingFlag(false);

            // When this fires, the view is changing the content and buttons, so this is almost a good time to update focus
            // (but we need to defer slightly until the querySelector is operating over the incoming footer elements).
            setImmediate(() => {
                let focusElement = this.element.querySelector("[autofocus='true']");
                if (focusElement) {
                    focusElement.focus();
                }
            });

            cxhSpeech.SpeechRecognition.stop();
            if (this.pairingStatus() == this.PairingStatusEnum.failed) {
                this._promptOnErrorPage();
            }
        }

        onPageLoaded() {
            // Kick off pairing of the first accessory
            this._onCurrentAccessoryChanged(this.currentAccessory());
        }

        _promptOnErrorPage() {
            let skipConstraint = new winSpeech.SpeechRecognitionListConstraint([this.resourceStrings.DevicePairSkip1SpeechConstraint, this.resourceStrings.DevicePairSkip2SpeechConstraint]);
            skipConstraint.tag = skipConstraintTag;
            
            let retryConstraint = new winSpeech.SpeechRecognitionListConstraint([this.resourceStrings.DevicePairRetry1SpeechConstraint, this.resourceStrings.DevicePairRetry2SpeechConstraint]);
            retryConstraint.tag = retryConstraintTag;

            cxhSpeech.SpeechRecognition.promptForCommandsAsync(this.resourceStrings.ErrorPageVoiceOver, [skipConstraint, retryConstraint]).done((result) => {
                if (result && !this.processingFlag()) {
                    if (result.constraint.tag == skipConstraintTag) {
                        bridge.invoke("CloudExperienceHost.Telemetry.logEvent", "SkipUserOobeDevicePairing");
                        this.processingFlag(true);
                        this._nextOrDone();
                    }
                    else if (result.constraint.tag == retryConstraintTag) {
                        bridge.invoke("CloudExperienceHost.Telemetry.logEvent", "RetryUserOobeDevicePairing");
                        this.processingFlag(true);
                        this._beginPairingAccessory();
                    }
                }
            });
        }

        _startPairing() {
            // I saw an "object disconnected" error here while debugging.
            // Probably just due to debugging RuntimeBroker,
            // but handling just in case as it left the app stuck saying it was searching when it wasn't.
            try {
                this.currentAccessory().startPairing();
            }
            catch (ex) {
                this.processingFlag(false);

                this.pairingStatus(this.PairingStatusEnum.failed);
                bridge.invoke("CloudExperienceHost.Telemetry.logEvent", "UnexpectedErrorStartDevicePairing");
            }
        }

        _beginPairingAccessory() {
            this.pairingStatus(this.PairingStatusEnum.discovering);

            cxhSpeech.SpeechRecognition.stop();
            let speechPromise = cxhSpeech.SpeechSynthesis.speakAsync(this.resourceStrings.InstructionPageVoiceOver);
            // Give the user a few seconds to see the page before we start actually pairing
            // This also ensures we have time to read the above string before potentially navigating to the error page
            // And makes it clear that the retry button is doing something even if the retry actually fails immediately
            WinJS.Promise.join([speechPromise, WinJS.Promise.timeout(3000)]).done(() => {
                this._startPairing();
            }, () => {
                this._startPairing();
            });
        }
    }
    return DevicePairingViewModel;
});

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.1 [PHP 8 Update] [02.02.2022] maintained byC99Shell Github | Generation time: 0.6681 ]--