← Back to team overview

hybrid-graphics-linux team mailing list archive

Testing on Acer 5742G

 

Hi all,
I've tested your acpi_call module on an Acer 5742G with an i5 core processor
and an NVidia GT 540M, with Optimus obviously! ^^

Here the test results:
Trying \_SB.PCI0.P0P1.VGA._OFF: failed
Trying \_SB.PCI0.P0P2.VGA._OFF: works!

these are the other infos from my laptop:
sudo dmidecode -s system-product-name && sudo dmidecode -s system-version
Aspire 5742G
V1.10

lspci -vnnn | perl -lne 'print if /^\d+\:.+(\[\S+\:\S+\])/' | grep VGA
00:02.0 VGA compatible controller [0300]: Intel Corporation Core Processor
Integrated Graphics Controller [8086:0046] (rev 02) (prog-if 00 [VGA
controller])
01:00.0 VGA compatible controller [0300]: nVidia Corporation Device
[10de:0df4] (rev a1) (prog-if 00 [VGA controller])

And last the attachment contains a DSDT.dsl dump from my acpi.

HTH
A.
/*
 * Intel ACPI Component Architecture
 * AML Disassembler version 20100304
 *
 * Disassembly of DSDT.dat, Thu Apr 21 08:17:13 2011
 *
 *
 * Original Table Header:
 *     Signature        "DSDT"
 *     Length           0x0000DEA8 (57000)
 *     Revision         0x02
 *     Checksum         0xC3
 *     OEM ID           "ACRSYS"
 *     OEM Table ID     "ACRPRDCT"
 *     OEM Revision     0x00000001 (1)
 *     Compiler ID      "1025"
 *     Compiler Version 0x01000013 (16777235)
 */
DefinitionBlock ("DSDT.aml", "DSDT", 2, "ACRSYS", "ACRPRDCT", 0x00000001)
{
    External (PDC7)
    External (PDC6)
    External (PDC5)
    External (PDC4)
    External (PDC3)
    External (PDC2)
    External (PDC1)
    External (PDC0)
    External (CFGD)
    External (HNOT, MethodObj)    // 1 Arguments
    External (\_PR_.CPU0._PPC)

    Name (SP2O, 0x4E)
    Name (SP1O, 0x2E)
    Name (IO1B, 0x0600)
    Name (IO1L, 0x70)
    Name (IO2B, 0x0600)
    Name (IO2L, 0x20)
    Name (IO3B, 0x0290)
    Name (IO3L, 0x10)
    Name (SP3O, 0x2E)
    Name (IO4B, 0x0A20)
    Name (IO4L, 0x20)
    Name (MCHB, 0xFED10000)
    Name (MCHL, 0x4000)
    Name (EGPB, 0xFED19000)
    Name (EGPL, 0x1000)
    Name (DMIB, 0xFED1B000)
    Name (DMIL, 0x1000)
    Name (IFPB, 0xFED14000)
    Name (IFPL, 0x1000)
    Name (PEBS, 0xE0000000)
    Name (PELN, 0x10000000)
    Name (TTTB, 0xFED20000)
    Name (TTTL, 0x00020000)
    Name (SMBS, 0xEFA0)
    Name (PBLK, 0x0410)
    Name (PMBS, 0x0400)
    Name (PMLN, 0x80)
    Name (LVL2, 0x0414)
    Name (LVL3, 0x0415)
    Name (LVL4, 0x0416)
    Name (SMIP, 0xB2)
    Name (GPBS, 0x0500)
    Name (GPLN, 0x80)
    Name (APCB, 0xFEC00000)
    Name (APCL, 0x1000)
    Name (PM30, 0x0430)
    Name (SRCB, 0xFED1C000)
    Name (SRCL, 0x4000)
    Name (SUSW, 0xFF)
    Name (HPTB, 0xFED00000)
    Name (HPTC, 0xFED1F404)
    Name (ACPH, 0xDE)
    Name (ASSB, Zero)
    Name (AOTB, Zero)
    Name (AAXB, Zero)
    Name (PEHP, Zero)
    Name (SHPC, One)
    Name (PEPM, Zero)
    Name (PEER, Zero)
    Name (PECS, Zero)
    Name (ITKE, Zero)
    Name (DSSP, Zero)
    Name (FMBL, One)
    Name (FDTP, 0x02)
    Name (BRF, One)
    Name (BPH, 0x02)
    Name (BLC, 0x03)
    Name (BRFS, 0x04)
    Name (BPHS, 0x05)
    Name (BLCT, 0x06)
    Name (BRF4, 0x07)
    Name (BEP, 0x08)
    Name (BBF, 0x09)
    Name (BOF, 0x0A)
    Name (BPT, 0x0B)
    Name (TRTP, One)
    Name (TRTD, 0x02)
    Name (TRTI, 0x03)
    Name (GCDD, One)
    Name (DSTA, 0x0A)
    Name (DSLO, 0x0C)
    Name (DSLC, 0x0E)
    Name (PITS, 0x10)
    Name (SBCS, 0x12)
    Name (SALS, 0x13)
    Name (LSSS, 0x2A)
    Name (SOOT, 0x35)
    Name (PDBR, 0x4D)
    Name (SMBL, 0x10)
    OperationRegion (GNVS, SystemMemory, 0x937AE018, 0x0000FD78)
    Field (GNVS, AnyAcc, Lock, Preserve)
    {
        OSYS,   16, 
        SMIF,   8, 
        PRM0,   8, 
        PRM1,   8, 
        SCIF,   8, 
        PRM2,   8, 
        PRM3,   8, 
        LCKF,   8, 
        PRM4,   8, 
        PRM5,   8, 
        P80D,   32, 
        LIDS,   8, 
        PWRS,   8, 
        DBGS,   8, 
        THOF,   8, 
        ACT1,   8, 
        ACTT,   8, 
        PSVT,   8, 
        TC1V,   8, 
        TC2V,   8, 
        TSPV,   8, 
        CRTT,   8, 
        DTSE,   8, 
        DTS1,   8, 
        DTS2,   8, 
        DTSF,   8, 
                Offset (0x28), 
        APIC,   8, 
        TCNT,   8, 
        PCP0,   8, 
        PCP1,   8, 
        PPCM,   8, 
        PPMF,   32, 
                Offset (0x32), 
        NATP,   8, 
        CMAP,   8, 
        CMBP,   8, 
        LPTP,   8, 
        FDCP,   8, 
        COMA,   8, 
        COMB,   8, 
        SMSC,   8, 
        W381,   8, 
        SMC1,   8, 
        IGDS,   8, 
        TLST,   8, 
        CADL,   8, 
        PADL,   8, 
        CSTE,   16, 
        NSTE,   16, 
        SSTE,   16, 
        NDID,   8, 
        DID1,   32, 
        DID2,   32, 
        DID3,   32, 
        DID4,   32, 
        DID5,   32, 
        KSV0,   32, 
        KSV1,   8, 
                Offset (0x67), 
        BLCS,   8, 
        BRTL,   8, 
        ALSE,   8, 
        ALAF,   8, 
        LLOW,   8, 
        LHIH,   8, 
                Offset (0x6E), 
        EMAE,   8, 
        EMAP,   16, 
        EMAL,   16, 
                Offset (0x74), 
        MEFE,   8, 
        DSTS,   8, 
                Offset (0x7A), 
        MORD,   8, 
        TPRM,   8, 
        PPRR,   32, 
        PPRO,   8, 
        LPPR,   8, 
        GTF0,   56, 
        GTF2,   56, 
        IDEM,   8, 
        GTF1,   56, 
        BID,    8, 
                Offset (0xAA), 
        ASLB,   32, 
        IBTT,   8, 
        IPAT,   8, 
        ITVF,   8, 
        ITVM,   8, 
        IPSC,   8, 
        IBLC,   8, 
        IBIA,   8, 
        ISSC,   8, 
        I409,   8, 
        I509,   8, 
        I609,   8, 
        I709,   8, 
        IPCF,   8, 
        IDMS,   8, 
        IF1E,   8, 
        HVCO,   8, 
        NXD1,   32, 
        NXD2,   32, 
        NXD3,   32, 
        NXD4,   32, 
        NXD5,   32, 
        NXD6,   32, 
        NXD7,   32, 
        NXD8,   32, 
        GSMI,   8, 
        PAVP,   8, 
                Offset (0xE1), 
        OSCC,   8, 
        NEXP,   8, 
        SDGV,   8, 
        SDDV,   8, 
                Offset (0xEB), 
        DSEN,   8, 
        ECON,   8, 
        GPIC,   8, 
        CTYP,   8, 
        L01C,   8, 
        VFN0,   8, 
        VFN1,   8, 
                Offset (0x100), 
        NVGA,   32, 
        NVHA,   32, 
        AMDA,   32, 
        DID6,   32, 
        DID7,   32, 
        DID8,   32, 
        EBAS,   32, 
        CPSP,   32, 
        EECP,   32, 
        EVCP,   32, 
        XBAS,   32, 
        OBS1,   32, 
        OBS2,   32, 
        OBS3,   32, 
        OBS4,   32, 
        OBS5,   32, 
        OBS6,   32, 
        OBS7,   32, 
        OBS8,   32, 
                Offset (0x157), 
        ATPM,   8, 
        PTPM,   8, 
        ATPT,   8, 
        PTPT,   8, 
        PNHM,   32, 
        TBAB,   32, 
        TBAH,   32, 
        RTIE,   8, 
        TSOD,   8, 
        ATPP,   8, 
        PTPP,   8, 
        PFLV,   8, 
        BREV,   8, 
        DPBM,   8, 
        DPCM,   8, 
        DPDM,   8, 
        ALFP,   8, 
        IMON,   8, 
        SROM,   32, 
        VROM,   516096, 
        S3DS,   8, 
        PMEE,   8
    }

    OperationRegion (OGNS, SystemMemory, 0x937ADF98, 0x00000038)
    Field (OGNS, AnyAcc, Lock, Preserve)
    {
        OG00,   8, 
        OG01,   8, 
        OG02,   8, 
        OG03,   8, 
        OG04,   8, 
        OG05,   8, 
        OG06,   8, 
        OG07,   8, 
        OG08,   8, 
        OG09,   8, 
        OG10,   8, 
        DI00,   320, 
        TPAD,   8, 
        DPRT,   8, 
        DVGA,   8, 
        D3GT,   8, 
        CCDT,   8
    }

    Mutex (PSMX, 0x00)
    Method (IHWM, 2, NotSerialized)
    {
        Acquire (PSMX, 0xFFFF)
        Store (Arg0, PRM0)
        Store (Arg1, DI00)
        Store (0xD1, APMC)
        Store (DI00, Local0)
        Release (PSMX)
        Return (Local0)
    }

    Name (FEBC, Buffer (0x08)
    {
        /* 0000 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
    })
    OperationRegion (MBOX, SystemMemory, 0x937BEA98, 0x00000321)
    Field (MBOX, AnyAcc, NoLock, Preserve)
    {
        PCI1,   8, 
        PCI2,   8, 
        PCI3,   8, 
        PCI4,   8, 
        PCI5,   8, 
        PCI6,   8, 
        PCI7,   8, 
        PCI8,   8, 
        NLCK,   8, 
        ZIPE,   8, 
        COA1,   8, 
        CAIO,   8, 
        CAIP,   8, 
        CAMD,   8, 
        CADA,   8, 
        COB1,   8, 
        CBIO,   8, 
        CBIP,   8, 
        CBMD,   8, 
        CBDA,   8, 
        FHSD,   8, 
        COMC,   8, 
        CCIO,   8, 
        CCIP,   8, 
        CCMD,   8, 
        CCDA,   8, 
        COMD,   8, 
        CDIO,   8, 
        CDIP,   8, 
        CDMD,   8, 
        CDDA,   8, 
        LPT1,   8, 
        L1IO,   8, 
        L1IP,   8, 
        L1MD,   8, 
        L1DA,   8, 
        LPT2,   8, 
        L2IO,   8, 
        L2IP,   8, 
        L2MD,   8, 
        L2DA,   8, 
        LPT3,   8, 
        L3IO,   8, 
        L3IP,   8, 
        L3MD,   8, 
        L3DA,   8, 
        FDDC,   8, 
        FDWP,   8, 
        HGMP,   8, 
        LGMP,   8, 
        MIDI,   8, 
        AZLA,   8, 
        AUDO,   8, 
        MODM,   8, 
        IDEC,   8, 
        SSED,   8, 
        PACT,   8, 
        SCFG,   8, 
        AMOD,   8, 
        IMOD,   8, 
        LCFG,   8, 
        IDLY,   8, 
        PMTP,   8, 
        PM32,   8, 
        PMBM,   8, 
        PMTM,   8, 
        PSTP,   8, 
        PSIO,   8, 
        PSBM,   8, 
        PSTM,   8, 
        IDE0,   8, 
        IDE1,   8, 
        IDE2,   8, 
        IDE3,   8, 
        IDE4,   8, 
        IDE5,   8, 
        IDE6,   8, 
        IDE7,   8, 
        HIUB,   8, 
        LUBS,   8, 
        PLYT,   8, 
        EDCG,   8, 
        SDFY,   8, 
        SDTC,   8, 
        SDRP,   8, 
        SDCL,   8, 
        SDRC,   8, 
        SDRE,   8, 
        FC2L,   8, 
        FC3L,   8, 
        FCS4,   8, 
        APIM,   8, 
        HPTS,   8, 
        HPTA,   8, 
        EMAS,   8, 
        VGAO,   8, 
        SOFF,   8, 
        KBPO,   8, 
        MSPO,   8, 
        USBB,   8, 
        EVTL,   8, 
        SYBE,   8, 
        ETLC,   8, 
        ACPV,   8, 
        TPMD,   8, 
        TPMO,   8, 
        TPMC,   8, 
        TPMM,   8, 
        TPCC,   8, 
        TPLC,   8, 
        TPLR,   32, 
        QBOT,   8, 
        BOTQ,   8, 
        PBOT,   8, 
        M256,   8, 
        PEGF,   8, 
        OSY1,   16, 
        BMTP,   8, 
        BNPT,   8, 
        LNMT,   8, 
        NBTO,   8, 
        NABD,   8, 
        NEBD,   8, 
        NLBD,   8, 
        DFBT,   16, 
        NPSP,   16, 
        LANG,   8, 
        UACL,   8, 
        SUPS,   8, 
        DVET,   8, 
        S3RS,   8, 
        DAS1,   8, 
        DAS3,   8, 
        WKPM,   8, 
        WKMD,   8, 
        WKS5,   8, 
        HOUR,   8, 
        MINS,   8, 
        SECS,   8, 
        DOFM,   8, 
        NBTV,   64, 
        BTOD,   64, 
        SPVP,   16, 
        POPW,   16, 
        USPW,   16, 
        HDPW,   16, 
        SAHP,   16, 
        SAHF,   8, 
        SUVF,   8, 
        USRF,   8, 
        UMPW,   8, 
        SMHP,   16, 
        SAMP,   16, 
        SAMF,   8, 
        SPFA,   8, 
        SPFB,   8, 
        SPFC,   8, 
        SPFD,   8, 
        SPFE,   8, 
        SPFF,   8, 
        SPFG,   8, 
        SPFH,   8, 
        SPFI,   8, 
        SPFJ,   8, 
        SPFK,   8, 
        SPFL,   8, 
        SPFM,   8, 
        SPFN,   8, 
        SPFO,   8, 
        SPFP,   8, 
        SPFQ,   8, 
        SPFR,   8, 
        SPFS,   8, 
        SPFT,   8, 
        SPFU,   8, 
        SPFV,   8, 
        SPFW,   8, 
        SPFX,   8, 
        SPFY,   8, 
        SPFZ,   8, 
        SPF0,   8, 
        SPF1,   8, 
        SPF2,   8, 
        SPF3,   8, 
        SPF4,   8, 
        SPF5,   8, 
        KRSV,   136, 
        LANE,   8, 
        AORS,   8, 
        P0HP,   8, 
        P1HP,   8, 
        P2HP,   8, 
        P3HP,   8, 
        P4HP,   8, 
        P5HP,   8, 
        P0IL,   8, 
        P1IL,   8, 
        P2IL,   8, 
        D2F1,   8, 
        DVPA,   8, 
        DTGM,   8, 
                Offset (0xF5), 
                Offset (0xF6), 
        BOTT,   8, 
        PANT,   8, 
        TVTP,   8, 
        U201,   8, 
        U202,   8, 
        U111,   8, 
        U112,   8, 
        U113,   8, 
        U114,   8, 
        U115,   8, 
        UPPC,   8, 
        UP00,   8, 
        UP01,   8, 
        UP02,   8, 
        UP03,   8, 
        UP04,   8, 
        UP05,   8, 
        UP06,   8, 
        UP07,   8, 
        UP08,   8, 
        UP09,   8, 
        UP10,   8, 
        UP11,   8, 
        P80R,   8, 
        WDOG,   8, 
        WDTO,   16, 
        WDTB,   16, 
        MASF,   8, 
        MAMT,   8, 
        ABXP,   8, 
        SPIL,   8, 
        PWDW,   8, 
        HETO,   8, 
        AWTR,   16, 
        EOPT,   8, 
        ASFB,   8, 
        MBTX,   8, 
        IDER,   8, 
        SOLE,   8, 
        UCME,   8, 
        MEDM,   8, 
        PPDA,   8, 
        PPCG,   8, 
        PPBV,   8, 
        PPV1,   8, 
        PPPV,   8, 
        PPMV,   8, 
        PRE0,   8, 
        PRE1,   8, 
        PRE2,   8, 
        PRE3,   8, 
        PRE4,   8, 
        PRE5,   8, 
        PRE6,   8, 
        PRE7,   8, 
        PRA0,   8, 
        PRA1,   8, 
        PRA2,   8, 
        PRA3,   8, 
        PRA4,   8, 
        PRA5,   8, 
        PRA6,   8, 
        PRA7,   8, 
        PRU0,   8, 
        PRU1,   8, 
        PRU2,   8, 
        PRU3,   8, 
        PRU4,   8, 
        PRU5,   8, 
        PRU6,   8, 
        PRU7,   8, 
        PRF0,   8, 
        PRF1,   8, 
        PRF2,   8, 
        PRF3,   8, 
        PRF4,   8, 
        PRF5,   8, 
        PRF6,   8, 
        PRF7,   8, 
        PRN0,   8, 
        PRN1,   8, 
        PRN2,   8, 
        PRN3,   8, 
        PRN4,   8, 
        PRN5,   8, 
        PRN6,   8, 
        PRN7,   8, 
        PRC0,   8, 
        PRC1,   8, 
        PRC2,   8, 
        PRC3,   8, 
        PRC4,   8, 
        PRC5,   8, 
        PRC6,   8, 
        PRC7,   8, 
        CTD0,   8, 
        CTD1,   8, 
        CTD2,   8, 
        CTD3,   8, 
        CTD4,   8, 
        CTD5,   8, 
        CTD6,   8, 
        CTD7,   8, 
        PIE0,   8, 
        PIE1,   8, 
        PIE2,   8, 
        PIE3,   8, 
        PIE4,   8, 
        PIE5,   8, 
        PIE6,   8, 
        PIE7,   8, 
        SFE0,   8, 
        SFE1,   8, 
        SFE2,   8, 
        SFE3,   8, 
        SFE4,   8, 
        SFE5,   8, 
        SFE6,   8, 
        SFE7,   8, 
        SNE0,   8, 
        SNE1,   8, 
        SNE2,   8, 
        SNE3,   8, 
        SNE4,   8, 
        SNE5,   8, 
        SNE6,   8, 
        SNE7,   8, 
        SCE0,   8, 
        SCE1,   8, 
        SCE2,   8, 
        SCE3,   8, 
        SCE4,   8, 
        SCE5,   8, 
        SCE6,   8, 
        SCE7,   8, 
        PPS0,   8, 
        PPS1,   8, 
        PPS2,   8, 
        PPS3,   8, 
        PPS4,   8, 
        PPS5,   8, 
        PPS6,   8, 
        PPS7,   8, 
        PHP0,   8, 
        PHP1,   8, 
        PHP2,   8, 
        PHP3,   8, 
        PHP4,   8, 
        PHP5,   8, 
        PHP6,   8, 
        PHP7,   8, 
        PEGA,   8, 
        PGAA,   8, 
        PGL0,   8, 
        PL0A,   8, 
        PGL1,   8, 
                Offset (0x196), 
        PAV1,   8, 
        ISTC,   8, 
        TRML,   8, 
        ATHF,   8, 
        PTTP,   8, 
        XDMD,   8, 
        PCRR,   8, 
        PROH,   8, 
        TUBM,   8, 
        TSTE,   8, 
        BPST,   8, 
        VTST,   8, 
        CSTS,   8, 
        ENCS,   8, 
        ENC6,   8, 
        CMPE,   8, 
        MDST,   8, 
        PEXC,   8, 
        TXTS,   8, 
        VTDE,   8, 
        CART,   8, 
        CATT,   8, 
        STBE,   8, 
        PEBE,   8, 
        PCBE,   8, 
        EHBE,   8, 
        UHBE,   8, 
        HABE,   8, 
        ERS2,   8, 
        GLPM,   8, 
        GRTT,   8, 
        CRID,   8, 
        ATLF,   8, 
        PTC1,   8, 
        PTC2,   8, 
        PTSP,   8, 
        CTTP,   8, 
        HTSP,   8, 
        U116,   8, 
        U117,   8, 
        UP12,   8, 
        UP13,   8, 
        DALC,   8, 
        ENC7,   8, 
        CSIT,   8, 
        CSIF,   8, 
        CSL1,   8, 
        MIRP,   8, 
        MEMF,   8, 
        CHIL,   8, 
        RKIL,   8, 
        QPIF,   8, 
        DLMF,   8, 
        GPPS,   8, 
        AGLP,   8, 
        EIPS,   8, 
        MTUB,   8, 
        CPEC,   8, 
        IPSP,   8, 
        CTLT,   8, 
        CTLV,   16, 
        MPLT,   8, 
        MPLV,   16, 
        PPLT,   8, 
        PPLV,   16, 
        CPLT,   8, 
        CPLV,   16, 
        RTIF,   8, 
        DPPM,   8, 
        RELT,   8, 
        INTR,   8, 
        PATD,   8, 
        COHE,   8, 
        CTBO,   8, 
        FBOT,   8, 
        CTRD,   8, 
        CERD,   8, 
        MTRD,   8, 
        PTRD,   8, 
        ALEL,   8, 
        CALE,   8, 
        MALE,   8, 
        PALE,   8, 
        DALE,   8, 
        TODM,   8, 
        D1TR,   8, 
        D2TR,   8, 
        D3TR,   8, 
        D4TR,   8, 
        LFPC,   8, 
        RMHM,   8, 
        METR,   8, 
        ECML,   8, 
        MPEC,   8, 
        TRTS,   8, 
        M30A,   64, 
        M30S,   16, 
        PPOL,   8, 
        HPSP,   8, 
        TVCC,   8, 
        PFLG,   8, 
        HYCM,   8, 
        HBDP,   8, 
        TVFC,   8, 
        DPMD,   8, 
        CACK,   8, 
        AZHI,   8, 
        IMEP,   8, 
        IMFE,   8, 
        SAG3,   8, 
        CRSV,   16, 
        WMDT,   16, 
        WPWT,   16, 
        PSW0,   8, 
        PSW1,   8, 
        D2DF,   8, 
        F12F,   8, 
        ETNS,   8, 
        ORSV,   488, 
        DRSV,   800, 
        MEFD,   8, 
        FWVB,   8, 
        USBP,   8, 
        FWPR,   8, 
        MELF,   8, 
        MEFQ,   8, 
        HP0S,   8, 
        HP1S,   8, 
        HP2S,   8, 
        HP3S,   8, 
        HP4S,   8, 
        HP5S,   8, 
        ENIF,   8, 
        PEG1,   8, 
        CPMD,   8, 
        TBMS,   8, 
        HTFG,   8, 
        PRSV,   664, 
        DISC,   8
    }

    OperationRegion (SMIO, SystemIO, 0xB2, 0x02)
    Field (SMIO, ByteAcc, NoLock, Preserve)
    {
        APMC,   8, 
        APMD,   8
    }

    Method (OSMI, 1, NotSerialized)
    {
        Store (Arg0, APMD)
        Store (0xB2, APMC)
        Stall (0xFF)
        Stall (0xFF)
        Stall (0xFF)
        Stall (0xFF)
        Stall (0xFF)
        Stall (0xFF)
    }

    Name (CPTY, Zero)
    Scope (_SB)
    {
        Name (PR00, Package (0x2B)
        {
            Package (0x04)
            {
                0x0001FFFF, 
                Zero, 
                LNKA, 
                Zero
            }, 

            Package (0x04)
            {
                0x0001FFFF, 
                One, 
                LNKB, 
                Zero
            }, 

            Package (0x04)
            {
                0x0001FFFF, 
                0x02, 
                LNKC, 
                Zero
            }, 

            Package (0x04)
            {
                0x0001FFFF, 
                0x03, 
                LNKD, 
                Zero
            }, 

            Package (0x04)
            {
                0x0002FFFF, 
                Zero, 
                LNKA, 
                Zero
            }, 

            Package (0x04)
            {
                0x001FFFFF, 
                Zero, 
                LNKF, 
                Zero
            }, 

            Package (0x04)
            {
                0x001FFFFF, 
                One, 
                LNKD, 
                Zero
            }, 

            Package (0x04)
            {
                0x001FFFFF, 
                0x02, 
                LNKD, 
                Zero
            }, 

            Package (0x04)
            {
                0x001FFFFF, 
                0x03, 
                LNKA, 
                Zero
            }, 

            Package (0x04)
            {
                0x001DFFFF, 
                Zero, 
                LNKH, 
                Zero
            }, 

            Package (0x04)
            {
                0x001DFFFF, 
                One, 
                LNKD, 
                Zero
            }, 

            Package (0x04)
            {
                0x001DFFFF, 
                0x02, 
                LNKC, 
                Zero
            }, 

            Package (0x04)
            {
                0x001DFFFF, 
                0x03, 
                LNKA, 
                Zero
            }, 

            Package (0x04)
            {
                0x001AFFFF, 
                Zero, 
                LNKA, 
                Zero
            }, 

            Package (0x04)
            {
                0x001AFFFF, 
                One, 
                LNKF, 
                Zero
            }, 

            Package (0x04)
            {
                0x001AFFFF, 
                0x02, 
                LNKD, 
                Zero
            }, 

            Package (0x04)
            {
                0x001AFFFF, 
                0x03, 
                LNKC, 
                Zero
            }, 

            Package (0x04)
            {
                0x001BFFFF, 
                Zero, 
                LNKG, 
                Zero
            }, 

            Package (0x04)
            {
                0x001CFFFF, 
                Zero, 
                LNKB, 
                Zero
            }, 

            Package (0x04)
            {
                0x001CFFFF, 
                One, 
                LNKA, 
                Zero
            }, 

            Package (0x04)
            {
                0x001CFFFF, 
                0x02, 
                LNKC, 
                Zero
            }, 

            Package (0x04)
            {
                0x001CFFFF, 
                0x03, 
                LNKD, 
                Zero
            }, 

            Package (0x04)
            {
                0x0019FFFF, 
                Zero, 
                LNKE, 
                Zero
            }, 

            Package (0x04)
            {
                0x0016FFFF, 
                Zero, 
                LNKA, 
                Zero
            }, 

            Package (0x04)
            {
                0x0016FFFF, 
                One, 
                LNKB, 
                Zero
            }, 

            Package (0x04)
            {
                0x0016FFFF, 
                0x02, 
                LNKC, 
                Zero
            }, 

            Package (0x04)
            {
                0x0016FFFF, 
                0x03, 
                LNKD, 
                Zero
            }, 

            Package (0x04)
            {
                0x0003FFFF, 
                Zero, 
                LNKA, 
                Zero
            }, 

            Package (0x04)
            {
                0x0003FFFF, 
                One, 
                LNKB, 
                Zero
            }, 

            Package (0x04)
            {
                0x0003FFFF, 
                0x02, 
                LNKC, 
                Zero
            }, 

            Package (0x04)
            {
                0x0003FFFF, 
                0x03, 
                LNKD, 
                Zero
            }, 

            Package (0x04)
            {
                0x0004FFFF, 
                Zero, 
                LNKA, 
                Zero
            }, 

            Package (0x04)
            {
                0x0004FFFF, 
                One, 
                LNKB, 
                Zero
            }, 

            Package (0x04)
            {
                0x0004FFFF, 
                0x02, 
                LNKC, 
                Zero
            }, 

            Package (0x04)
            {
                0x0004FFFF, 
                0x03, 
                LNKD, 
                Zero
            }, 

            Package (0x04)
            {
                0x0005FFFF, 
                Zero, 
                LNKA, 
                Zero
            }, 

            Package (0x04)
            {
                0x0005FFFF, 
                One, 
                LNKB, 
                Zero
            }, 

            Package (0x04)
            {
                0x0005FFFF, 
                0x02, 
                LNKC, 
                Zero
            }, 

            Package (0x04)
            {
                0x0005FFFF, 
                0x03, 
                LNKD, 
                Zero
            }, 

            Package (0x04)
            {
                0x0006FFFF, 
                Zero, 
                LNKA, 
                Zero
            }, 

            Package (0x04)
            {
                0x0006FFFF, 
                One, 
                LNKB, 
                Zero
            }, 

            Package (0x04)
            {
                0x0006FFFF, 
                0x02, 
                LNKC, 
                Zero
            }, 

            Package (0x04)
            {
                0x0006FFFF, 
                0x03, 
                LNKD, 
                Zero
            }
        })
        Name (AR00, Package (0x2B)
        {
            Package (0x04)
            {
                0x0001FFFF, 
                Zero, 
                Zero, 
                0x10
            }, 

            Package (0x04)
            {
                0x0001FFFF, 
                One, 
                Zero, 
                0x11
            }, 

            Package (0x04)
            {
                0x0001FFFF, 
                0x02, 
                Zero, 
                0x12
            }, 

            Package (0x04)
            {
                0x0001FFFF, 
                0x03, 
                Zero, 
                0x13
            }, 

            Package (0x04)
            {
                0x0002FFFF, 
                Zero, 
                Zero, 
                0x10
            }, 

            Package (0x04)
            {
                0x001FFFFF, 
                Zero, 
                Zero, 
                0x15
            }, 

            Package (0x04)
            {
                0x001FFFFF, 
                One, 
                Zero, 
                0x13
            }, 

            Package (0x04)
            {
                0x001FFFFF, 
                0x02, 
                Zero, 
                0x13
            }, 

            Package (0x04)
            {
                0x001FFFFF, 
                0x03, 
                Zero, 
                0x10
            }, 

            Package (0x04)
            {
                0x001DFFFF, 
                Zero, 
                Zero, 
                0x17
            }, 

            Package (0x04)
            {
                0x001DFFFF, 
                One, 
                Zero, 
                0x13
            }, 

            Package (0x04)
            {
                0x001DFFFF, 
                0x02, 
                Zero, 
                0x12
            }, 

            Package (0x04)
            {
                0x001DFFFF, 
                0x03, 
                Zero, 
                0x10
            }, 

            Package (0x04)
            {
                0x001AFFFF, 
                Zero, 
                Zero, 
                0x10
            }, 

            Package (0x04)
            {
                0x001AFFFF, 
                One, 
                Zero, 
                0x15
            }, 

            Package (0x04)
            {
                0x001AFFFF, 
                0x02, 
                Zero, 
                0x13
            }, 

            Package (0x04)
            {
                0x001AFFFF, 
                0x03, 
                Zero, 
                0x12
            }, 

            Package (0x04)
            {
                0x001BFFFF, 
                Zero, 
                Zero, 
                0x16
            }, 

            Package (0x04)
            {
                0x001CFFFF, 
                Zero, 
                Zero, 
                0x11
            }, 

            Package (0x04)
            {
                0x001CFFFF, 
                One, 
                Zero, 
                0x10
            }, 

            Package (0x04)
            {
                0x001CFFFF, 
                0x02, 
                Zero, 
                0x12
            }, 

            Package (0x04)
            {
                0x001CFFFF, 
                0x03, 
                Zero, 
                0x13
            }, 

            Package (0x04)
            {
                0x0019FFFF, 
                Zero, 
                Zero, 
                0x14
            }, 

            Package (0x04)
            {
                0x0016FFFF, 
                Zero, 
                Zero, 
                0x10
            }, 

            Package (0x04)
            {
                0x0016FFFF, 
                One, 
                Zero, 
                0x11
            }, 

            Package (0x04)
            {
                0x0016FFFF, 
                0x02, 
                Zero, 
                0x12
            }, 

            Package (0x04)
            {
                0x0016FFFF, 
                0x03, 
                Zero, 
                0x13
            }, 

            Package (0x04)
            {
                0x0003FFFF, 
                Zero, 
                Zero, 
                0x10
            }, 

            Package (0x04)
            {
                0x0003FFFF, 
                One, 
                Zero, 
                0x11
            }, 

            Package (0x04)
            {
                0x0003FFFF, 
                0x02, 
                Zero, 
                0x12
            }, 

            Package (0x04)
            {
                0x0003FFFF, 
                0x03, 
                Zero, 
                0x13
            }, 

            Package (0x04)
            {
                0x0004FFFF, 
                Zero, 
                Zero, 
                0x10
            }, 

            Package (0x04)
            {
                0x0004FFFF, 
                One, 
                Zero, 
                0x11
            }, 

            Package (0x04)
            {
                0x0004FFFF, 
                0x02, 
                Zero, 
                0x12
            }, 

            Package (0x04)
            {
                0x0004FFFF, 
                0x03, 
                Zero, 
                0x13
            }, 

            Package (0x04)
            {
                0x0005FFFF, 
                Zero, 
                Zero, 
                0x10
            }, 

            Package (0x04)
            {
                0x0005FFFF, 
                One, 
                Zero, 
                0x11
            }, 

            Package (0x04)
            {
                0x0005FFFF, 
                0x02, 
                Zero, 
                0x12
            }, 

            Package (0x04)
            {
                0x0005FFFF, 
                0x03, 
                Zero, 
                0x13
            }, 

            Package (0x04)
            {
                0x0006FFFF, 
                Zero, 
                Zero, 
                0x10
            }, 

            Package (0x04)
            {
                0x0006FFFF, 
                One, 
                Zero, 
                0x11
            }, 

            Package (0x04)
            {
                0x0006FFFF, 
                0x02, 
                Zero, 
                0x12
            }, 

            Package (0x04)
            {
                0x0006FFFF, 
                0x03, 
                Zero, 
                0x13
            }
        })
        Name (PR02, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF, 
                Zero, 
                LNKA, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                One, 
                LNKB, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x02, 
                LNKC, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x03, 
                LNKD, 
                Zero
            }
        })
        Name (AR02, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF, 
                Zero, 
                Zero, 
                0x10
            }, 

            Package (0x04)
            {
                0xFFFF, 
                One, 
                Zero, 
                0x11
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x02, 
                Zero, 
                0x12
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x03, 
                Zero, 
                0x13
            }
        })
        Name (PR04, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF, 
                Zero, 
                LNKA, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                One, 
                LNKB, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x02, 
                LNKC, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x03, 
                LNKD, 
                Zero
            }
        })
        Name (AR04, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF, 
                Zero, 
                Zero, 
                0x10
            }, 

            Package (0x04)
            {
                0xFFFF, 
                One, 
                Zero, 
                0x11
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x02, 
                Zero, 
                0x12
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x03, 
                Zero, 
                0x13
            }
        })
        Name (PR05, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF, 
                Zero, 
                LNKB, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                One, 
                LNKC, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x02, 
                LNKD, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x03, 
                LNKA, 
                Zero
            }
        })
        Name (AR05, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF, 
                Zero, 
                Zero, 
                0x11
            }, 

            Package (0x04)
            {
                0xFFFF, 
                One, 
                Zero, 
                0x12
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x02, 
                Zero, 
                0x13
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x03, 
                Zero, 
                0x10
            }
        })
        Name (PR06, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF, 
                Zero, 
                LNKC, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                One, 
                LNKD, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x02, 
                LNKA, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x03, 
                LNKB, 
                Zero
            }
        })
        Name (AR06, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF, 
                Zero, 
                Zero, 
                0x12
            }, 

            Package (0x04)
            {
                0xFFFF, 
                One, 
                Zero, 
                0x13
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x02, 
                Zero, 
                0x10
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x03, 
                Zero, 
                0x11
            }
        })
        Name (PR07, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF, 
                Zero, 
                LNKD, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                One, 
                LNKA, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x02, 
                LNKB, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x03, 
                LNKC, 
                Zero
            }
        })
        Name (AR07, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF, 
                Zero, 
                Zero, 
                0x13
            }, 

            Package (0x04)
            {
                0xFFFF, 
                One, 
                Zero, 
                0x10
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x02, 
                Zero, 
                0x11
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x03, 
                Zero, 
                0x12
            }
        })
        Name (PR08, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF, 
                Zero, 
                LNKA, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                One, 
                LNKB, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x02, 
                LNKC, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x03, 
                LNKD, 
                Zero
            }
        })
        Name (AR08, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF, 
                Zero, 
                Zero, 
                0x10
            }, 

            Package (0x04)
            {
                0xFFFF, 
                One, 
                Zero, 
                0x11
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x02, 
                Zero, 
                0x12
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x03, 
                Zero, 
                0x13
            }
        })
        Name (PR09, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF, 
                Zero, 
                LNKB, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                One, 
                LNKC, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x02, 
                LNKD, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x03, 
                LNKA, 
                Zero
            }
        })
        Name (AR09, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF, 
                Zero, 
                Zero, 
                0x11
            }, 

            Package (0x04)
            {
                0xFFFF, 
                One, 
                Zero, 
                0x12
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x02, 
                Zero, 
                0x13
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x03, 
                Zero, 
                0x10
            }
        })
        Name (PR0A, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF, 
                Zero, 
                LNKC, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                One, 
                LNKD, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x02, 
                LNKA, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x03, 
                LNKB, 
                Zero
            }
        })
        Name (AR0A, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF, 
                Zero, 
                Zero, 
                0x12
            }, 

            Package (0x04)
            {
                0xFFFF, 
                One, 
                Zero, 
                0x13
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x02, 
                Zero, 
                0x10
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x03, 
                Zero, 
                0x11
            }
        })
        Name (PR0B, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF, 
                Zero, 
                LNKD, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                One, 
                LNKA, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x02, 
                LNKB, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x03, 
                LNKC, 
                Zero
            }
        })
        Name (AR0B, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF, 
                Zero, 
                Zero, 
                0x13
            }, 

            Package (0x04)
            {
                0xFFFF, 
                One, 
                Zero, 
                0x10
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x02, 
                Zero, 
                0x11
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x03, 
                Zero, 
                0x12
            }
        })
        Name (PR01, Package (0x0C)
        {
            Package (0x04)
            {
                0xFFFF, 
                Zero, 
                LNKF, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                One, 
                LNKG, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x02, 
                LNKH, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x03, 
                LNKE, 
                Zero
            }, 

            Package (0x04)
            {
                0x0001FFFF, 
                Zero, 
                LNKG, 
                Zero
            }, 

            Package (0x04)
            {
                0x0001FFFF, 
                One, 
                LNKF, 
                Zero
            }, 

            Package (0x04)
            {
                0x0001FFFF, 
                0x02, 
                LNKE, 
                Zero
            }, 

            Package (0x04)
            {
                0x0001FFFF, 
                0x03, 
                LNKH, 
                Zero
            }, 

            Package (0x04)
            {
                0x0005FFFF, 
                Zero, 
                LNKC, 
                Zero
            }, 

            Package (0x04)
            {
                0x0005FFFF, 
                One, 
                LNKE, 
                Zero
            }, 

            Package (0x04)
            {
                0x0005FFFF, 
                0x02, 
                LNKG, 
                Zero
            }, 

            Package (0x04)
            {
                0x0005FFFF, 
                0x03, 
                LNKF, 
                Zero
            }
        })
        Name (AR01, Package (0x0C)
        {
            Package (0x04)
            {
                0xFFFF, 
                Zero, 
                Zero, 
                0x15
            }, 

            Package (0x04)
            {
                0xFFFF, 
                One, 
                Zero, 
                0x16
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x02, 
                Zero, 
                0x17
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x03, 
                Zero, 
                0x14
            }, 

            Package (0x04)
            {
                0x0001FFFF, 
                Zero, 
                Zero, 
                0x16
            }, 

            Package (0x04)
            {
                0x0001FFFF, 
                One, 
                Zero, 
                0x15
            }, 

            Package (0x04)
            {
                0x0001FFFF, 
                0x02, 
                Zero, 
                0x14
            }, 

            Package (0x04)
            {
                0x0001FFFF, 
                0x03, 
                Zero, 
                0x17
            }, 

            Package (0x04)
            {
                0x0005FFFF, 
                Zero, 
                Zero, 
                0x12
            }, 

            Package (0x04)
            {
                0x0005FFFF, 
                One, 
                Zero, 
                0x14
            }, 

            Package (0x04)
            {
                0x0005FFFF, 
                0x02, 
                Zero, 
                0x16
            }, 

            Package (0x04)
            {
                0x0005FFFF, 
                0x03, 
                Zero, 
                0x15
            }
        })
        Name (PR0C, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF, 
                Zero, 
                LNKA, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                One, 
                LNKB, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x02, 
                LNKC, 
                Zero
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x03, 
                LNKD, 
                Zero
            }
        })
        Name (AR0C, Package (0x04)
        {
            Package (0x04)
            {
                0xFFFF, 
                Zero, 
                Zero, 
                0x10
            }, 

            Package (0x04)
            {
                0xFFFF, 
                One, 
                Zero, 
                0x11
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x02, 
                Zero, 
                0x12
            }, 

            Package (0x04)
            {
                0xFFFF, 
                0x03, 
                Zero, 
                0x13
            }
        })
        Name (PRSA, ResourceTemplate ()
        {
            IRQ (Level, ActiveLow, Shared, )
                {3,4,5,6,7,10,11,12,14,15}
        })
        Alias (PRSA, PRSB)
        Alias (PRSA, PRSC)
        Alias (PRSA, PRSD)
        Alias (PRSA, PRSE)
        Alias (PRSA, PRSF)
        Alias (PRSA, PRSG)
        Alias (PRSA, PRSH)
        Device (PCI0)
        {
            Name (_HID, EisaId ("PNP0A08"))
            Name (_CID, EisaId ("PNP0A03"))
            Name (_ADR, Zero)
            Method (^BN00, 0, NotSerialized)
            {
                Return (Zero)
            }

            Method (_BBN, 0, NotSerialized)
            {
                Return (BN00 ())
            }

            Name (_UID, Zero)
            Method (_PRT, 0, NotSerialized)
            {
                If (PICM)
                {
                    Return (AR00)
                }

                Return (PR00)
            }

            Device (AZAL)
            {
                Name (_ADR, 0x001B0000)
                OperationRegion (HDCS, PCI_Config, 0x54, 0x04)
                Field (HDCS, DWordAcc, NoLock, Preserve)
                {
                        ,   15, 
                    PMES,   1
                }

                Method (_PRW, 0, NotSerialized)
                {
                    If (LEqual (WKMD, One))
                    {
                        Return (Package (0x02)
                        {
                            0x0D, 
                            0x03
                        })
                    }
                    Else
                    {
                        Return (Package (0x02)
                        {
                            0x0D, 
                            Zero
                        })
                    }
                }
            }

            OperationRegion (GPIO, SystemIO, 0x0500, 0x40)
            Field (GPIO, ByteAcc, NoLock, Preserve)
            {
                        Offset (0x0C), 
                GP00,   1, 
                GP01,   1, 
                GP02,   1, 
                GP03,   1, 
                GP04,   1, 
                GP05,   1, 
                GP06,   1, 
                GP07,   1, 
                GP08,   1, 
                GP09,   1, 
                GP10,   1, 
                GP11,   1, 
                GP12,   1, 
                GP13,   1, 
                GP14,   1, 
                GP15,   1, 
                GP16,   1, 
                GP17,   1, 
                GP18,   1, 
                GP19,   1, 
                GP20,   1, 
                GP21,   1, 
                GP22,   1, 
                GP23,   1, 
                GP24,   1, 
                GP25,   1, 
                GP26,   1, 
                GP27,   1, 
                GP28,   1, 
                GP29,   1, 
                GP30,   1, 
                GP31,   1, 
                        Offset (0x2C), 
                    ,   6, 
                HDME,   1, 
                        Offset (0x38), 
                GP32,   1, 
                GP33,   1, 
                GP34,   1, 
                GP35,   1, 
                GP36,   1, 
                GP37,   1, 
                GP38,   1, 
                GP39,   1, 
                GP40,   1, 
                GP41,   1, 
                GP42,   1, 
                GP43,   1, 
                GP44,   1, 
                GP45,   1, 
                GP46,   1, 
                GP47,   1, 
                GP48,   1, 
                GP49,   1, 
                GP50,   1, 
                GP51,   1, 
                GP52,   1, 
                GP53,   1, 
                GP54,   1, 
                GP55,   1, 
                GP56,   1, 
                GP57,   1, 
                GP58,   1, 
                GP59,   1, 
                GP60,   1, 
                GP61,   1, 
                GP62,   1, 
                GP63,   1
            }

            OperationRegion (HBUS, PCI_Config, 0x40, 0xC0)
            Field (HBUS, DWordAcc, NoLock, Preserve)
            {
                EPEN,   1, 
                    ,   11, 
                EPBR,   20, 
                        Offset (0x08), 
                MHEN,   1, 
                    ,   13, 
                MHBR,   18, 
                        Offset (0x10), 
                IIEN,   1, 
                    ,   11, 
                DIBI,   20, 
                    ,   1, 
                PEGA,   1, 
                    ,   1, 
                IGDE,   1, 
                        Offset (0x28), 
                DIEN,   1, 
                    ,   11, 
                DIBR,   20, 
                        Offset (0x30), 
                IPEN,   1, 
                    ,   11, 
                IPBR,   20, 
                        Offset (0x62), 
                TUUD,   16, 
                        Offset (0x70), 
                    ,   4, 
                TLUD,   12, 
                        Offset (0x89), 
                    ,   3, 
                GTSE,   1, 
                        Offset (0x8A)
            }

            OperationRegion (MCHT, SystemMemory, 0xFED10000, 0x1100)
            Field (MCHT, ByteAcc, NoLock, Preserve)
            {
                        Offset (0xD40), 
                ADVE,   1, 
                    ,   11, 
                ADVT,   20, 
                        Offset (0x101E), 
                T0IS,   16, 
                        Offset (0x105E), 
                T1IS,   16, 
                        Offset (0x10EF), 
                ESCS,   8
            }

            Name (BUF0, ResourceTemplate ()
            {
                WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
                    0x0000,             // Granularity
                    0x0000,             // Range Minimum
                    0x00FE,             // Range Maximum
                    0x0000,             // Translation Offset
                    0x00FF,             // Length
                    ,, )
                DWordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
                    0x00000000,         // Granularity
                    0x00000000,         // Range Minimum
                    0x00000CF7,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00000CF8,         // Length
                    ,, , TypeStatic)
                IO (Decode16,
                    0x0CF8,             // Range Minimum
                    0x0CF8,             // Range Maximum
                    0x01,               // Alignment
                    0x08,               // Length
                    )
                DWordIO (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
                    0x00000000,         // Granularity
                    0x00000D00,         // Range Minimum
                    0x0000FFFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x0000F300,         // Length
                    ,, , TypeStatic)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x000A0000,         // Range Minimum
                    0x000BFFFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00020000,         // Length
                    ,, , AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x000C0000,         // Range Minimum
                    0x000C3FFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00004000,         // Length
                    ,, , AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x000C4000,         // Range Minimum
                    0x000C7FFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00004000,         // Length
                    ,, , AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x000C8000,         // Range Minimum
                    0x000CBFFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00004000,         // Length
                    ,, , AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x000CC000,         // Range Minimum
                    0x000CFFFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00004000,         // Length
                    ,, , AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x000D0000,         // Range Minimum
                    0x000D3FFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00004000,         // Length
                    ,, , AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x000D4000,         // Range Minimum
                    0x000D7FFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00004000,         // Length
                    ,, , AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x000D8000,         // Range Minimum
                    0x000DBFFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00004000,         // Length
                    ,, , AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x000DC000,         // Range Minimum
                    0x000DFFFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00004000,         // Length
                    ,, , AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x000E0000,         // Range Minimum
                    0x000E3FFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00004000,         // Length
                    ,, , AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x000E4000,         // Range Minimum
                    0x000E7FFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00004000,         // Length
                    ,, , AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x000E8000,         // Range Minimum
                    0x000EBFFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00004000,         // Length
                    ,, , AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x000EC000,         // Range Minimum
                    0x000EFFFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00004000,         // Length
                    ,, , AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x000F0000,         // Range Minimum
                    0x000FFFFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00010000,         // Length
                    ,, , AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0x00000000,         // Range Minimum
                    0xFEBFFFFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00000000,         // Length
                    ,, , AddressRangeMemory, TypeStatic)
                DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, Cacheable, ReadWrite,
                    0x00000000,         // Granularity
                    0xFED40000,         // Range Minimum
                    0xFED44FFF,         // Range Maximum
                    0x00000000,         // Translation Offset
                    0x00000000,         // Length
                    ,, , AddressRangeMemory, TypeStatic)
            })
            Method (_CRS, 0, Serialized)
            {
                If (^^CPBG.IMCH.PM1L)
                {
                    CreateDWordField (BUF0, 0x7C, C0LN)
                    Store (Zero, C0LN)
                }

                If (LEqual (^^CPBG.IMCH.PM1L, One))
                {
                    CreateBitField (BUF0, 0x0358, C0RW)
                    Store (Zero, C0RW)
                }

                If (^^CPBG.IMCH.PM1H)
                {
                    CreateDWordField (BUF0, 0x96, C4LN)
                    Store (Zero, C4LN)
                }

                If (LEqual (^^CPBG.IMCH.PM1H, One))
                {
                    CreateBitField (BUF0, 0x0428, C4RW)
                    Store (Zero, C4RW)
                }

                If (^^CPBG.IMCH.PM2L)
                {
                    CreateDWordField (BUF0, 0xB0, C8LN)
                    Store (Zero, C8LN)
                }

                If (LEqual (^^CPBG.IMCH.PM2L, One))
                {
                    CreateBitField (BUF0, 0x04F8, C8RW)
                    Store (Zero, C8RW)
                }

                If (^^CPBG.IMCH.PM2H)
                {
                    CreateDWordField (BUF0, 0xCA, CCLN)
                    Store (Zero, CCLN)
                }

                If (LEqual (^^CPBG.IMCH.PM2H, One))
                {
                    CreateBitField (BUF0, 0x05C8, CCRW)
                    Store (Zero, CCRW)
                }

                If (^^CPBG.IMCH.PM3L)
                {
                    CreateDWordField (BUF0, 0xE4, D0LN)
                    Store (Zero, D0LN)
                }

                If (LEqual (^^CPBG.IMCH.PM3L, One))
                {
                    CreateBitField (BUF0, 0x0698, D0RW)
                    Store (Zero, D0RW)
                }

                If (^^CPBG.IMCH.PM3H)
                {
                    CreateDWordField (BUF0, 0xFE, D4LN)
                    Store (Zero, D4LN)
                }

                If (LEqual (^^CPBG.IMCH.PM3H, One))
                {
                    CreateBitField (BUF0, 0x0768, D4RW)
                    Store (Zero, D4RW)
                }

                If (^^CPBG.IMCH.PM4L)
                {
                    CreateDWordField (BUF0, 0x0118, D8LN)
                    Store (Zero, D8LN)
                }

                If (LEqual (^^CPBG.IMCH.PM4L, One))
                {
                    CreateBitField (BUF0, 0x0838, D8RW)
                    Store (Zero, D8RW)
                }

                If (^^CPBG.IMCH.PM4H)
                {
                    CreateDWordField (BUF0, 0x0132, DCLN)
                    Store (Zero, DCLN)
                }

                If (LEqual (^^CPBG.IMCH.PM4H, One))
                {
                    CreateBitField (BUF0, 0x0908, DCRW)
                    Store (Zero, DCRW)
                }

                If (^^CPBG.IMCH.PM5L)
                {
                    CreateDWordField (BUF0, 0x014C, E0LN)
                    Store (Zero, E0LN)
                }

                If (LEqual (^^CPBG.IMCH.PM5L, One))
                {
                    CreateBitField (BUF0, 0x09D8, E0RW)
                    Store (Zero, E0RW)
                }

                If (^^CPBG.IMCH.PM5H)
                {
                    CreateDWordField (BUF0, 0x0166, E4LN)
                    Store (Zero, E4LN)
                }

                If (LEqual (^^CPBG.IMCH.PM5H, One))
                {
                    CreateBitField (BUF0, 0x0AA8, E4RW)
                    Store (Zero, E4RW)
                }

                If (^^CPBG.IMCH.PM6L)
                {
                    CreateDWordField (BUF0, 0x0180, E8LN)
                    Store (Zero, E8LN)
                }

                If (LEqual (^^CPBG.IMCH.PM6L, One))
                {
                    CreateBitField (BUF0, 0x0B78, E8RW)
                    Store (Zero, E8RW)
                }

                If (^^CPBG.IMCH.PM6H)
                {
                    CreateDWordField (BUF0, 0x019A, ECLN)
                    Store (Zero, ECLN)
                }

                If (LEqual (^^CPBG.IMCH.PM6H, One))
                {
                    CreateBitField (BUF0, 0x0C48, ECRW)
                    Store (Zero, ECRW)
                }

                If (^^CPBG.IMCH.PM0H)
                {
                    CreateDWordField (BUF0, 0x01B4, F0LN)
                    Store (Zero, F0LN)
                }

                If (LEqual (^^CPBG.IMCH.PM0H, One))
                {
                    CreateBitField (BUF0, 0x0D18, F0RW)
                    Store (Zero, F0RW)
                }

                CreateDWordField (BUF0, 0x01C2, M1MN)
                CreateDWordField (BUF0, 0x01C6, M1MX)
                CreateDWordField (BUF0, 0x01CE, M1LN)
                If (Or (LEqual (And (PNHM, 0x000FFFF0), 0x000106E0), LEqual (And (
                    PNHM, 0x000FFFF0), 0x000106A0)))
                {
                    If (LGreaterEqual (PNHM, 0x000106E1))
                    {
                        Store (^IO10.TOLM, Local0)
                        ShiftLeft (Increment (Local0), 0x1A, M1MN)
                    }
                    Else
                    {
                        Store (^IIO0.TOLM, Local0)
                        ShiftLeft (Increment (Local0), 0x1A, M1MN)
                    }
                }
                Else
                {
                    ShiftLeft (TLUD, 0x14, M1MN)
                }

                Add (Subtract (M1MX, M1MN), One, M1LN)
                Return (BUF0)
            }

            Name (GUID, Buffer (0x10)
            {
                /* 0000 */    0x5B, 0x4D, 0xDB, 0x33, 0xF7, 0x1F, 0x1C, 0x40, 
                /* 0008 */    0x96, 0x57, 0x74, 0x41, 0xC0, 0x3D, 0xD7, 0x66
            })
            Name (SUPP, Zero)
            Name (CTRL, Zero)
            Method (_OSC, 4, Serialized)
            {
                Store (Arg3, Local0)
                CreateDWordField (Local0, Zero, CDW1)
                CreateDWordField (Local0, 0x04, CDW2)
                CreateDWordField (Local0, 0x08, CDW3)
                If (LAnd (LEqual (Arg0, GUID), NEXP))
                {
                    Store (CDW2, SUPP)
                    Store (CDW3, CTRL)
                    If (Not (And (CDW1, One)))
                    {
                        If (And (CTRL, 0x02))
                        {
                            NHPG ()
                        }

                        If (And (CTRL, 0x04))
                        {
                            NPME ()
                        }
                    }

                    If (LNotEqual (Arg1, One))
                    {
                        Or (CDW1, 0x08, CDW1)
                    }

                    If (LNotEqual (CDW3, CTRL))
                    {
                        Or (CDW1, 0x10, CDW1)
                    }

                    Store (CTRL, CDW3)
                    Store (CTRL, OSCC)
                    Return (Local0)
                }
                Else
                {
                    Or (CDW1, 0x04, CDW1)
                    Return (Local0)
                }
            }

            Name (SLWK, Zero)
            Device (GFX0)
            {
                Name (_ADR, 0x00020000)
                OperationRegion (UMAP, PCI_Config, Zero, 0x10)
                Field (UMAP, AnyAcc, NoLock, WriteAsZeros)
                {
                    VID,    16
                }

                Method (_DOS, 1, NotSerialized)
                {
                    Store (And (Arg0, 0x07), DSEN)
                    Name (_T_0, Zero)
                    Store (SLWK, _T_0)
                    If (LEqual (_T_0, Zero))
                    {
                        Store (One, SLWK)
                        Store (One, Local3)
                        If (LEqual (^^P0P2.VGA.DPMO, 0x05))
                        {
                            Store (0x99, ^^P0P2.VGA.BKEY)
                            Notify (GFX0, 0xD0)
                            Store (Zero, Local3)
                        }

                        If (LEqual (^^P0P2.VGA.DPMO, 0x04))
                        {
                            Store (One, GP53)
                        }

                        If (LEqual (^^P0P2.VGA.DPMO, One))
                        {
                            Store (One, GP53)
                        }
                    }
                    Else
                    {
                        If (LEqual (_T_0, 0x53)) {}
                        Else
                        {
                            If (LEqual (_T_0, 0x54)) {}
                            Else
                            {
                                If (LEqual (_T_0, 0xE3))
                                {
                                    If (LGreaterEqual (OSYS, 0x07D6))
                                    {
                                        Store (One, GP53)
                                    }

                                    If (LEqual (^^P0P2.VGA.DPMO, 0x04))
                                    {
                                        Store (CMSR (0x3E), Local0)
                                        If (LEqual (Local0, Zero))
                                        {
                                            Store (Zero, PEGA)
                                        }
                                    }
                                }
                                Else
                                {
                                    If (LEqual (_T_0, 0xE4))
                                    {
                                        If (LGreaterEqual (OSYS, 0x07D6))
                                        {
                                            Store (One, GP53)
                                            Store (0xE0, P80H)
                                        }
                                    }
                                }
                            }
                        }
                    }
                }

                Method (_DOD, 0, NotSerialized)
                {
                    Store (0x04, NDID)
                    If (LEqual (NDID, One))
                    {
                        Name (TMP1, Package (0x01)
                        {
                            0xFFFFFFFF
                        })
                        Store (Or (0x00010000, DID1), Index (TMP1, Zero))
                        Return (TMP1)
                    }

                    If (LEqual (NDID, 0x02))
                    {
                        Name (TMP2, Package (0x02)
                        {
                            0xFFFFFFFF, 
                            0xFFFFFFFF
                        })
                        Store (Or (0x00010000, DID1), Index (TMP2, Zero))
                        Store (Or (0x00010000, DID2), Index (TMP2, One))
                        Return (TMP2)
                    }

                    If (LEqual (NDID, 0x03))
                    {
                        Name (TMP3, Package (0x03)
                        {
                            0xFFFFFFFF, 
                            0xFFFFFFFF, 
                            0xFFFFFFFF
                        })
                        Store (Or (0x00010000, DID1), Index (TMP3, Zero))
                        Store (Or (0x00010000, DID2), Index (TMP3, One))
                        Store (Or (0x00010000, DID3), Index (TMP3, 0x02))
                        Return (TMP3)
                    }

                    If (LEqual (NDID, 0x04))
                    {
                        Name (TMP4, Package (0x04)
                        {
                            0xFFFFFFFF, 
                            0xFFFFFFFF, 
                            0xFFFFFFFF, 
                            0xFFFFFFFF
                        })
                        Store (DID1, Index (TMP4, Zero))
                        Store (DID2, Index (TMP4, One))
                        Store (DID3, Index (TMP4, 0x02))
                        Store (DID4, Index (TMP4, 0x03))
                        Return (TMP4)
                    }

                    If (LGreater (NDID, 0x04))
                    {
                        Name (TMP5, Package (0x05)
                        {
                            0xFFFFFFFF, 
                            0xFFFFFFFF, 
                            0xFFFFFFFF, 
                            0xFFFFFFFF, 
                            0xFFFFFFFF
                        })
                        Store (Or (0x00010000, DID1), Index (TMP5, Zero))
                        Store (Or (0x00010000, DID2), Index (TMP5, One))
                        Store (Or (0x00010000, DID3), Index (TMP5, 0x02))
                        Store (Or (0x00010000, DID4), Index (TMP5, 0x03))
                        Store (Or (0x00010000, DID5), Index (TMP5, 0x04))
                        Return (TMP5)
                    }

                    Return (Package (0x01)
                    {
                        0x0400
                    })
                }

                Device (DD01)
                {
                    Method (_ADR, 0, Serialized)
                    {
                        If (LEqual (DID1, Zero))
                        {
                            Return (One)
                        }
                        Else
                        {
                            Return (And (0xFFFF, DID1))
                        }
                    }

                    Method (_DCS, 0, NotSerialized)
                    {
                        Return (CDDS (DID1))
                    }

                    Method (_DGS, 0, NotSerialized)
                    {
                        Return (NDDS (DID1))
                    }

                    Method (_DSS, 1, NotSerialized)
                    {
                        If (LEqual (And (Arg0, 0xC0000000), 0xC0000000))
                        {
                            Store (NSTE, CSTE)
                        }
                    }
                }

                Device (DD02)
                {
                    Method (_ADR, 0, Serialized)
                    {
                        If (LEqual (DID2, Zero))
                        {
                            Return (0x02)
                        }
                        Else
                        {
                            Return (And (0xFFFF, DID2))
                        }
                    }

                    Method (_DCS, 0, NotSerialized)
                    {
                        Return (CDDS (DID2))
                    }

                    Method (_DGS, 0, NotSerialized)
                    {
                        Return (NDDS (DID2))
                    }

                    Method (_DSS, 1, NotSerialized)
                    {
                        If (LEqual (And (Arg0, 0xC0000000), 0xC0000000))
                        {
                            Store (NSTE, CSTE)
                        }
                    }
                }

                Device (DD03)
                {
                    Method (_ADR, 0, Serialized)
                    {
                        If (LEqual (^^^P0P2.VGA.DPMO, 0x04))
                        {
                            If (LEqual (SLWK, 0xE4))
                            {
                                Store (CMSR (0x3E), Local0)
                                If (LEqual (Local0, Zero))
                                {
                                    Store (Zero, PEGA)
                                }
                            }
                        }

                        If (LEqual (DID3, Zero))
                        {
                            Return (0x03)
                        }
                        Else
                        {
                            Return (And (0xFFFF, DID3))
                        }
                    }

                    Method (_DCS, 0, NotSerialized)
                    {
                        If (LEqual (DID3, Zero))
                        {
                            Return (0x0B)
                        }
                        Else
                        {
                            Return (CDDS (DID3))
                        }
                    }

                    Method (_DGS, 0, NotSerialized)
                    {
                        Return (NDDS (DID3))
                    }

                    Method (_DSS, 1, NotSerialized)
                    {
                        If (LEqual (And (Arg0, 0xC0000000), 0xC0000000))
                        {
                            Store (NSTE, CSTE)
                        }
                    }

                    Name (BRTS, Zero)
                    Method (_BCL, 0, NotSerialized)
                    {
                        Return (Package (0x0C)
                        {
                            0x46, 
                            0x28, 
                            0x0A, 
                            0x14, 
                            0x1E, 
                            0x28, 
                            0x32, 
                            0x3C, 
                            0x46, 
                            0x50, 
                            0x5A, 
                            0x64
                        })
                    }

                    Method (_BCM, 1, NotSerialized)
                    {
                        Divide (Arg0, 0x0A, Local0, Local1)
                        Decrement (Local1)
                        Store (Local1, ^^^LPCB.EC0.BRTS)
                    }

                    Method (_BQC, 0, NotSerialized)
                    {
                        Store (^^^LPCB.EC0.BRTS, Local0)
                        Sleep (0x64)
                        Add (Local0, One, Local0)
                        Multiply (Local0, 0x0A, Local0)
                        Store (0x64, P80H)
                        Return (Local0)
                    }
                }

                Device (DD04)
                {
                    Method (_ADR, 0, Serialized)
                    {
                        If (LEqual (DID4, Zero))
                        {
                            Return (0x04)
                        }
                        Else
                        {
                            Return (And (0xFFFF, DID4))
                        }
                    }

                    Method (_DCS, 0, NotSerialized)
                    {
                        If (LEqual (DID4, Zero))
                        {
                            Return (0x0B)
                        }
                        Else
                        {
                            Return (CDDS (DID4))
                        }
                    }

                    Method (_DGS, 0, NotSerialized)
                    {
                        Return (NDDS (DID4))
                    }

                    Method (_DSS, 1, NotSerialized)
                    {
                        If (LEqual (And (Arg0, 0xC0000000), 0xC0000000))
                        {
                            Store (NSTE, CSTE)
                        }
                    }
                }

                Device (DD05)
                {
                    Method (_ADR, 0, Serialized)
                    {
                        If (LEqual (DID5, Zero))
                        {
                            Return (0x05)
                        }
                        Else
                        {
                            Return (And (0xFFFF, DID5))
                        }
                    }

                    Method (_DCS, 0, NotSerialized)
                    {
                        If (LEqual (DID5, Zero))
                        {
                            Return (0x0B)
                        }
                        Else
                        {
                            Return (CDDS (DID5))
                        }
                    }

                    Method (_DGS, 0, NotSerialized)
                    {
                        Return (NDDS (DID5))
                    }

                    Method (_DSS, 1, NotSerialized)
                    {
                        If (LEqual (And (Arg0, 0xC0000000), 0xC0000000))
                        {
                            Store (NSTE, CSTE)
                        }
                    }
                }

                Device (DD06)
                {
                    Method (_ADR, 0, Serialized)
                    {
                        If (LEqual (DID6, Zero))
                        {
                            Return (0x06)
                        }
                        Else
                        {
                            Return (And (0xFFFF, DID6))
                        }
                    }

                    Method (_DCS, 0, NotSerialized)
                    {
                        If (LEqual (DID6, Zero))
                        {
                            Return (0x0B)
                        }
                        Else
                        {
                            Return (CDDS (DID6))
                        }
                    }

                    Method (_DGS, 0, NotSerialized)
                    {
                        Return (NDDS (DID6))
                    }

                    Method (_DSS, 1, NotSerialized)
                    {
                        If (LEqual (And (Arg0, 0xC0000000), 0xC0000000))
                        {
                            Store (NSTE, CSTE)
                        }
                    }
                }

                Device (DD07)
                {
                    Method (_ADR, 0, Serialized)
                    {
                        If (LEqual (DID7, Zero))
                        {
                            Return (0x07)
                        }
                        Else
                        {
                            Return (And (0xFFFF, DID7))
                        }
                    }

                    Method (_DCS, 0, NotSerialized)
                    {
                        If (LEqual (DID7, Zero))
                        {
                            Return (0x0B)
                        }
                        Else
                        {
                            Return (CDDS (DID7))
                        }
                    }

                    Method (_DGS, 0, NotSerialized)
                    {
                        Return (NDDS (DID7))
                    }

                    Method (_DSS, 1, NotSerialized)
                    {
                        If (LEqual (And (Arg0, 0xC0000000), 0xC0000000))
                        {
                            Store (NSTE, CSTE)
                        }
                    }
                }

                Device (DD08)
                {
                    Method (_ADR, 0, Serialized)
                    {
                        If (LEqual (DID8, Zero))
                        {
                            Return (0x08)
                        }
                        Else
                        {
                            Return (And (0xFFFF, DID8))
                        }
                    }

                    Method (_DCS, 0, NotSerialized)
                    {
                        If (LEqual (DID8, Zero))
                        {
                            Return (0x0B)
                        }
                        Else
                        {
                            Return (CDDS (DID8))
                        }
                    }

                    Method (_DGS, 0, NotSerialized)
                    {
                        Return (NDDS (DID8))
                    }

                    Method (_DSS, 1, NotSerialized)
                    {
                        If (LEqual (And (Arg0, 0xC0000000), 0xC0000000))
                        {
                            Store (NSTE, CSTE)
                        }
                    }
                }

                Method (SDDL, 1, NotSerialized)
                {
                    Increment (NDID)
                    Store (And (Arg0, 0x0F0F), Local0)
                    Or (0x80000000, Local0, Local1)
                    If (LEqual (DIDL, Local0))
                    {
                        Return (Local1)
                    }

                    If (LEqual (DDL2, Local0))
                    {
                        Return (Local1)
                    }

                    If (LEqual (DDL3, Local0))
                    {
                        Return (Local1)
                    }

                    If (LEqual (DDL4, Local0))
                    {
                        Return (Local1)
                    }

                    If (LEqual (DDL5, Local0))
                    {
                        Return (Local1)
                    }

                    If (LEqual (DDL6, Local0))
                    {
                        Return (Local1)
                    }

                    If (LEqual (DDL7, Local0))
                    {
                        Return (Local1)
                    }

                    If (LEqual (DDL8, Local0))
                    {
                        Return (Local1)
                    }

                    Return (Zero)
                }

                Method (CDDS, 1, NotSerialized)
                {
                    And (Arg0, 0xFFFF, Local0)
                    If (LEqual (CADL, Local0))
                    {
                        Return (0x1F)
                    }

                    If (LEqual (CAL2, Local0))
                    {
                        Return (0x1F)
                    }

                    If (LEqual (CAL3, Local0))
                    {
                        Return (0x1F)
                    }

                    If (LEqual (CAL4, Local0))
                    {
                        Return (0x1F)
                    }

                    If (LEqual (CAL5, Local0))
                    {
                        Return (0x1F)
                    }

                    If (LEqual (CAL6, Local0))
                    {
                        Return (0x1F)
                    }

                    If (LEqual (CAL7, Local0))
                    {
                        Return (0x1F)
                    }

                    If (LEqual (CAL8, Local0))
                    {
                        Return (0x1F)
                    }

                    Return (0x1D)
                }

                Method (NDDS, 1, NotSerialized)
                {
                    And (Arg0, 0xFFFF, Local0)
                    If (LEqual (NADL, Local0))
                    {
                        Return (One)
                    }

                    If (LEqual (NDL2, Local0))
                    {
                        Return (One)
                    }

                    If (LEqual (NDL3, Local0))
                    {
                        Return (One)
                    }

                    If (LEqual (NDL4, Local0))
                    {
                        Return (One)
                    }

                    If (LEqual (NDL5, Local0))
                    {
                        Return (One)
                    }

                    If (LEqual (NDL6, Local0))
                    {
                        Return (One)
                    }

                    If (LEqual (NDL7, Local0))
                    {
                        Return (One)
                    }

                    If (LEqual (NDL8, Local0))
                    {
                        Return (One)
                    }

                    Return (Zero)
                }

                Method (CPDS, 1, NotSerialized)
                {
                    And (Arg0, 0xFFFF, Local0)
                    If (LEqual (CPDL, Local0))
                    {
                        Return (One)
                    }

                    If (LEqual (CPL2, Local0))
                    {
                        Return (One)
                    }

                    If (LEqual (CPL3, Local0))
                    {
                        Return (One)
                    }

                    Return (Zero)
                }

                Name (MXIF, Package (0x04)
                {
                    0x03, 
                    Package (0x02)
                    {
                        0x80010100, 
                        Buffer (0x04)
                        {
                            0x01, 0x03, 0x03, 0x00
                        }
                    }, 

                    Package (0x02)
                    {
                        0x80000400, 
                        Buffer (0x04)
                        {
                            0x02, 0x03, 0x03, 0x00
                        }
                    }, 

                    Package (0x02)
                    {
                        0x80007330, 
                        Buffer (0x04)
                        {
                            0x04, 0x03, 0x03, 0x03
                        }
                    }
                })
                Scope (^^PCI0)
                {
                    OperationRegion (MCHP, PCI_Config, 0x40, 0xC0)
                    Field (MCHP, AnyAcc, NoLock, Preserve)
                    {
                                Offset (0x60), 
                        TASM,   10, 
                                Offset (0x62)
                    }
                }

                OperationRegion (IGDP, PCI_Config, 0x40, 0xC0)
                Field (IGDP, AnyAcc, NoLock, Preserve)
                {
                            Offset (0x12), 
                        ,   1, 
                    GIVD,   1, 
                        ,   2, 
                    GUMA,   3, 
                            Offset (0x14), 
                        ,   4, 
                    GMFN,   1, 
                            Offset (0x18), 
                            Offset (0xA4), 
                    ASLE,   8, 
                            Offset (0xA8), 
                    GSSE,   1, 
                    GSSB,   14, 
                    GSES,   1, 
                            Offset (0xB0), 
                        ,   12, 
                    CDVL,   1, 
                            Offset (0xB2), 
                            Offset (0xB5), 
                    LBPC,   8, 
                            Offset (0xBC), 
                    ASLS,   32
                }

                OperationRegion (IGDM, SystemMemory, ASLB, 0x2000)
                Field (IGDM, AnyAcc, NoLock, Preserve)
                {
                    SIGN,   128, 
                    SIZE,   32, 
                    OVER,   32, 
                    SVER,   256, 
                    VVER,   128, 
                    GVER,   128, 
                    MBOX,   32, 
                    DMOD,   32, 
                            Offset (0x100), 
                    DRDY,   32, 
                    CSTS,   32, 
                    CEVT,   32, 
                            Offset (0x120), 
                    DIDL,   32, 
                    DDL2,   32, 
                    DDL3,   32, 
                    DDL4,   32, 
                    DDL5,   32, 
                    DDL6,   32, 
                    DDL7,   32, 
                    DDL8,   32, 
                    CPDL,   32, 
                    CPL2,   32, 
                    CPL3,   32, 
                    CPL4,   32, 
                    CPL5,   32, 
                    CPL6,   32, 
                    CPL7,   32, 
                    CPL8,   32, 
                    CADL,   32, 
                    CAL2,   32, 
                    CAL3,   32, 
                    CAL4,   32, 
                    CAL5,   32, 
                    CAL6,   32, 
                    CAL7,   32, 
                    CAL8,   32, 
                    NADL,   32, 
                    NDL2,   32, 
                    NDL3,   32, 
                    NDL4,   32, 
                    NDL5,   32, 
                    NDL6,   32, 
                    NDL7,   32, 
                    NDL8,   32, 
                    ASLP,   32, 
                    TIDX,   32, 
                    CHPD,   32, 
                    CLID,   32, 
                    CDCK,   32, 
                    SXSW,   32, 
                    EVTS,   32, 
                    CNOT,   32, 
                    NRDY,   32, 
                            Offset (0x200), 
                    SCIE,   1, 
                    GEFC,   4, 
                    GXFC,   3, 
                    GESF,   8, 
                            Offset (0x204), 
                    PARM,   32, 
                    DSLP,   32, 
                            Offset (0x300), 
                    ARDY,   32, 
                    ASLC,   32, 
                    TCHE,   32, 
                    ALSI,   32, 
                    BCLP,   32, 
                    PFIT,   32, 
                    CBLV,   32, 
                    BCLM,   320, 
                    CPFM,   32, 
                    EPFM,   32, 
                    PLUT,   592, 
                    PFMB,   32, 
                    CCDV,   32, 
                    PCFT,   32, 
                            Offset (0x400), 
                    GVD1,   49152, 
                    PHED,   32, 
                    BDDC,   2048
                }

                Name (DBTB, Package (0x15)
                {
                    Zero, 
                    0x07, 
                    0x38, 
                    0x01C0, 
                    0x0E00, 
                    0x3F, 
                    0x01C7, 
                    0x0E07, 
                    0x01F8, 
                    0x0E38, 
                    0x0FC0, 
                    Zero, 
                    Zero, 
                    Zero, 
                    Zero, 
                    Zero, 
                    0x7000, 
                    0x7007, 
                    0x7038, 
                    0x71C0, 
                    0x7E00
                })
                Name (CDCT, Package (0x05)
                {
                    Package (0x02)
                    {
                        0xE4, 
                        0x0140
                    }, 

                    Package (0x02)
                    {
                        0xDE, 
                        0x014D
                    }, 

                    Package (0x02)
                    {
                        0xDE, 
                        0x014D
                    }, 

                    Package (0x02)
                    {
                        Zero, 
                        Zero
                    }, 

                    Package (0x02)
                    {
                        0xDE, 
                        0x014D
                    }
                })
                Name (SUCC, One)
                Name (NVLD, 0x02)
                Name (CRIT, 0x04)
                Name (NCRT, 0x06)
                Method (GSCI, 0, Serialized)
                {
                    Method (GBDA, 0, Serialized)
                    {
                        If (LEqual (GESF, Zero))
                        {
                            Store (0x0679, PARM)
                            Store (Zero, GESF)
                            Return (SUCC)
                        }

                        If (LEqual (GESF, One))
                        {
                            Store (0x0240, PARM)
                            Store (Zero, GESF)
                            Return (SUCC)
                        }

                        If (LEqual (GESF, 0x04))
                        {
                            And (PARM, 0xEFFF0000, PARM)
                            And (PARM, ShiftLeft (DerefOf (Index (DBTB, IBTT)), 0x10), 
                                PARM)
                            Or (IBTT, PARM, PARM)
                            Store (Zero, GESF)
                            Return (SUCC)
                        }

                        If (LEqual (GESF, 0x05))
                        {
                            Store (IPSC, PARM)
                            Or (PARM, ShiftLeft (IPAT, 0x08), PARM)
                            Add (PARM, 0x0100, PARM)
                            Or (PARM, ShiftLeft (LIDS, 0x10), PARM)
                            Add (PARM, 0x00010000, PARM)
                            Or (PARM, ShiftLeft (IBIA, 0x14), PARM)
                            Store (Zero, GESF)
                            Return (SUCC)
                        }

                        If (LEqual (GESF, 0x06))
                        {
                            Store (ITVF, PARM)
                            Or (PARM, ShiftLeft (ITVM, 0x04), PARM)
                            Store (Zero, GESF)
                            Return (SUCC)
                        }

                        If (LEqual (GESF, 0x07))
                        {
                            Store (GIVD, PARM)
                            XOr (PARM, One, PARM)
                            Or (PARM, ShiftLeft (GMFN, One), PARM)
                            Or (PARM, 0x1800, PARM)
                            Or (PARM, ShiftLeft (IDMS, 0x11), PARM)
                            Or (ShiftLeft (DerefOf (Index (DerefOf (Index (CDCT, HVCO)), CDVL
                                )), 0x15), PARM, PARM)
                            Store (One, GESF)
                            Return (SUCC)
                        }

                        If (LEqual (GESF, 0x0A))
                        {
                            Store (Zero, PARM)
                            If (ISSC)
                            {
                                Or (PARM, 0x03, PARM)
                            }

                            Store (Zero, GESF)
                            Return (SUCC)
                        }

                        If (LEqual (GESF, 0x0B))
                        {
                            Store (KSV0, PARM)
                            Store (KSV1, GESF)
                            Return (SUCC)
                        }

                        Store (Zero, GESF)
                        Return (CRIT)
                    }

                    Method (SBCB, 0, Serialized)
                    {
                        If (LEqual (GESF, Zero))
                        {
                            Store (Zero, PARM)
                            Store (0x000F87FD, PARM)
                            Store (Zero, GESF)
                            Return (SUCC)
                        }

                        If (LEqual (GESF, One))
                        {
                            Store (Zero, GESF)
                            Store (Zero, PARM)
                            Return (SUCC)
                        }

                        If (LEqual (GESF, 0x03))
                        {
                            Store (Zero, GESF)
                            Store (Zero, PARM)
                            Return (SUCC)
                        }

                        If (LEqual (GESF, 0x04))
                        {
                            Store (Zero, GESF)
                            Store (Zero, PARM)
                            Return (SUCC)
                        }

                        If (LEqual (GESF, 0x05))
                        {
                            Store (Zero, GESF)
                            Store (Zero, PARM)
                            Return (SUCC)
                        }

                        If (LEqual (GESF, 0x06))
                        {
                            Store (And (PARM, 0x0F), ITVF)
                            Store (ShiftRight (And (PARM, 0xF0), 0x04), ITVM)
                            Store (Zero, GESF)
                            Store (Zero, PARM)
                            Return (SUCC)
                        }

                        If (LEqual (GESF, 0x07))
                        {
                            If (LEqual (PARM, Zero))
                            {
                                Store (CLID, Local0)
                                If (And (0x80000000, Local0))
                                {
                                    And (CLID, 0x0F, CLID)
                                    GLID (CLID)
                                }
                            }

                            Store (Zero, GESF)
                            Store (Zero, PARM)
                            Return (SUCC)
                        }

                        If (LEqual (GESF, 0x08))
                        {
                            Store (Zero, GESF)
                            Store (Zero, PARM)
                            Return (SUCC)
                        }

                        If (LEqual (GESF, 0x09))
                        {
                            And (PARM, 0xFF, IBTT)
                            Store (Zero, GESF)
                            Store (Zero, PARM)
                            Return (SUCC)
                        }

                        If (LEqual (GESF, 0x0A))
                        {
                            And (PARM, 0xFF, IPSC)
                            If (And (ShiftRight (PARM, 0x08), 0xFF))
                            {
                                And (ShiftRight (PARM, 0x08), 0xFF, IPAT)
                                Decrement (IPAT)
                            }

                            And (ShiftRight (PARM, 0x14), 0x07, IBIA)
                            Store (Zero, GESF)
                            Store (Zero, PARM)
                            Return (SUCC)
                        }

                        If (LEqual (GESF, 0x0B))
                        {
                            And (ShiftRight (PARM, One), One, IF1E)
                            If (And (PARM, 0x0001E000))
                            {
                                And (ShiftRight (PARM, 0x0D), 0x0F, IDMS)
                            }
                            Else
                            {
                                And (ShiftRight (PARM, 0x11), 0x0F, IDMS)
                            }

                            Store (Zero, GESF)
                            Store (Zero, PARM)
                            Return (SUCC)
                        }

                        If (LEqual (GESF, 0x10))
                        {
                            Store (Zero, GESF)
                            Store (Zero, PARM)
                            Return (SUCC)
                        }

                        If (LEqual (GESF, 0x11))
                        {
                            Store (ShiftLeft (LIDS, 0x08), PARM)
                            Add (PARM, 0x0100, PARM)
                            Store (Zero, GESF)
                            Return (SUCC)
                        }

                        If (LEqual (GESF, 0x12))
                        {
                            If (And (PARM, One))
                            {
                                If (LEqual (ShiftRight (PARM, One), One))
                                {
                                    Store (One, ISSC)
                                }
                                Else
                                {
                                    Store (Zero, GESF)
                                    Return (CRIT)
                                }
                            }
                            Else
                            {
                                Store (Zero, ISSC)
                            }

                            Store (Zero, GESF)
                            Store (Zero, PARM)
                            Return (SUCC)
                        }

                        If (LEqual (GESF, 0x13))
                        {
                            Store (Zero, GESF)
                            Store (Zero, PARM)
                            Return (SUCC)
                        }

                        If (LEqual (GESF, 0x14))
                        {
                            And (PARM, 0x0F, PAVP)
                            Store (Zero, GESF)
                            Store (Zero, PARM)
                            Return (SUCC)
                        }

                        Store (Zero, GESF)
                        Return (SUCC)
                    }

                    If (LEqual (GEFC, 0x04))
                    {
                        Store (GBDA (), GXFC)
                    }

                    If (LEqual (GEFC, 0x06))
                    {
                        Store (SBCB (), GXFC)
                    }

                    Store (Zero, GEFC)
                    Store (One, SCIS)
                    Store (Zero, GSSE)
                    Store (Zero, SCIE)
                    Return (Zero)
                }

                Method (PDRD, 0, NotSerialized)
                {
                    If (LNot (DRDY))
                    {
                        Sleep (ASLP)
                    }

                    Return (LNot (DRDY))
                }

                Method (PSTS, 0, NotSerialized)
                {
                    If (LGreater (CSTS, 0x02))
                    {
                        Sleep (ASLP)
                    }

                    Return (LEqual (CSTS, 0x03))
                }

                Method (GNOT, 2, NotSerialized)
                {
                    If (PDRD ())
                    {
                        Return (One)
                    }

                    Store (Arg0, CEVT)
                    Store (0x03, CSTS)
                    If (LAnd (LEqual (CHPD, Zero), LEqual (Arg1, Zero)))
                    {
                        If (LOr (LGreater (OSYS, 0x07D0), LLess (OSYS, 0x07D6)))
                        {
                            Notify (PCI0, Arg1)
                        }
                        Else
                        {
                            Notify (GFX0, Arg1)
                        }
                    }

                    If (CondRefOf (HNOT))
                    {
                        HNOT (Arg0)
                    }
                    Else
                    {
                        Notify (GFX0, 0x80)
                    }

                    Return (Zero)
                }

                Method (GHDS, 1, NotSerialized)
                {
                    Store (Arg0, TIDX)
                    Return (GNOT (One, Zero))
                }

                Method (GLID, 1, NotSerialized)
                {
                    Store (Arg0, CLID)
                    Return (GNOT (0x02, Zero))
                }

                Method (GDCK, 1, NotSerialized)
                {
                    Store (Arg0, CDCK)
                    Return (GNOT (0x04, Zero))
                }

                Method (PARD, 0, NotSerialized)
                {
                    If (LNot (ARDY))
                    {
                        Sleep (ASLP)
                    }

                    Return (LNot (ARDY))
                }

                Method (AINT, 2, NotSerialized)
                {
                    If (LNot (And (TCHE, ShiftLeft (One, Arg0))))
                    {
                        Return (One)
                    }

                    If (PARD ())
                    {
                        Return (One)
                    }

                    If (LEqual (Arg0, 0x02))
                    {
                        If (CPFM)
                        {
                            And (CPFM, 0x0F, Local0)
                            And (EPFM, 0x0F, Local1)
                            If (LEqual (Local0, One))
                            {
                                If (And (Local1, 0x06))
                                {
                                    Store (0x06, PFIT)
                                }
                                Else
                                {
                                    If (And (Local1, 0x08))
                                    {
                                        Store (0x08, PFIT)
                                    }
                                    Else
                                    {
                                        Store (One, PFIT)
                                    }
                                }
                            }

                            If (LEqual (Local0, 0x06))
                            {
                                If (And (Local1, 0x08))
                                {
                                    Store (0x08, PFIT)
                                }
                                Else
                                {
                                    If (And (Local1, One))
                                    {
                                        Store (One, PFIT)
                                    }
                                    Else
                                    {
                                        Store (0x06, PFIT)
                                    }
                                }
                            }

                            If (LEqual (Local0, 0x08))
                            {
                                If (And (Local1, One))
                                {
                                    Store (One, PFIT)
                                }
                                Else
                                {
                                    If (And (Local1, 0x06))
                                    {
                                        Store (0x06, PFIT)
                                    }
                                    Else
                                    {
                                        Store (0x08, PFIT)
                                    }
                                }
                            }
                        }
                        Else
                        {
                            XOr (PFIT, 0x07, PFIT)
                        }

                        Or (PFIT, 0x80000000, PFIT)
                        Store (0x04, ASLC)
                    }
                    Else
                    {
                        If (LEqual (Arg0, One))
                        {
                            Store (Divide (Multiply (Arg1, 0xFF), 0x64, ), BCLP)
                            Or (BCLP, 0x80000000, BCLP)
                            Store (0x02, ASLC)
                        }
                        Else
                        {
                            If (LEqual (Arg0, Zero))
                            {
                                Store (Arg1, ALSI)
                                Store (One, ASLC)
                            }
                            Else
                            {
                                Return (One)
                            }
                        }
                    }

                    Store (One, ASLE)
                    Return (Zero)
                }

                Method (SCIP, 0, NotSerialized)
                {
                    If (LNotEqual (OVER, Zero))
                    {
                        Return (LNot (GSMI))
                    }

                    Return (Zero)
                }

                Name (ATPB, Buffer (0x0100) {})
                Name (DSID, 0xFFFFFFFF)
                Name (HSID, 0xFFFFFFFF)
                Method (ATPX, 2, Serialized)
                {
                    If (LEqual (Arg0, Zero))
                    {
                        Return (PX00 ())
                    }

                    If (LEqual (Arg0, One))
                    {
                        Return (PX01 ())
                    }

                    If (LEqual (Arg0, 0x02))
                    {
                        Return (PX02 (DerefOf (Index (Arg1, 0x02))))
                    }

                    If (LEqual (Arg0, 0x03))
                    {
                        Return (PX03 (DerefOf (Index (Arg1, 0x02))))
                    }

                    If (LEqual (Arg0, 0x05))
                    {
                        Return (PX05 (DerefOf (Index (Arg1, 0x02))))
                    }

                    If (LEqual (Arg0, 0x06))
                    {
                        Return (PX06 (DerefOf (Index (Arg1, 0x02))))
                    }

                    CreateWordField (ATPB, Zero, SSZE)
                    CreateWordField (ATPB, 0x02, VERN)
                    CreateDWordField (ATPB, 0x04, SFUN)
                    Store (Zero, SSZE)
                    Store (Zero, VERN)
                    Store (Zero, SFUN)
                    Return (ATPB)
                }

                Method (PX00, 0, NotSerialized)
                {
                    CreateWordField (ATPB, Zero, SSZE)
                    CreateWordField (ATPB, 0x02, VERN)
                    CreateDWordField (ATPB, 0x04, SFUN)
                    Store (0x08, SSZE)
                    Store (One, VERN)
                    Store (0x07, SFUN)
                    Return (ATPB)
                }

                Method (PX01, 0, NotSerialized)
                {
                    CreateWordField (ATPB, Zero, SSZE)
                    CreateDWordField (ATPB, 0x02, VMSK)
                    CreateDWordField (ATPB, 0x06, FLGS)
                    Store (0x0A, SSZE)
                    Store (0x0F, VMSK)
                    Store (0x0B, FLGS)
                    Return (ATPB)
                }

                Method (PX02, 1, NotSerialized)
                {
                    CreateWordField (ATPB, Zero, SSZE)
                    CreateByteField (ATPB, 0x02, PWST)
                    Store (0x03, SSZE)
                    And (Arg0, One, PWST)
                    If (PWST)
                    {
                        Store (One, PEGA)
                        Store (0x00010100, ^^P0P2.VGA.XE18)
                        Store (^^P0P2.VGA.XB04, ^^P0P2.VGA.XE04)
                        Store (^^P0P2.VGA.XB0C, ^^P0P2.VGA.XE0C)
                        Store (^^P0P2.VGA.XB3C, ^^P0P2.VGA.XE3C)
                        Store (Zero, ^^P0P2.VGA.XRST)
                        Store (Zero, IGDS)
                        Store (Zero, GP16)
                        Store (Zero, GP36)
                        Sleep (0x64)
                        Store (One, GP36)
                        Sleep (0x64)
                        Store (One, GP16)
                        Sleep (0x64)
                        ^^P0P2.VGA.OX16 ()
                        Sleep (0x64)
                        Store (Zero, GP01)
                        Store (0x1025, ^^P0P2.VGA.SVID)
                        Store (0x0488, ^^P0P2.VGA.SSID)
                        Store (0x1025, ^^P0P2.VGA1.SVID)
                        Store (0x0488, ^^P0P2.VGA1.SSID)
                        Store (0x43, ^^P0P2.VGA.D0LX)
                        Store (0x43, ^^P0P2.VGA1.D1LX)
                        Store (Zero, ^^P0P2.VGA.X030)
                        Store (0x50, ^^P0P2.VGA.X034)
                        Store (Zero, ^^P0P2.VGA.X038)
                        Store (0x0110, ^^P0P2.VGA.X03C)
                    }
                    Else
                    {
                        Store (One, IGDS)
                        ^^P0P2.VGA.FX16 ()
                        Store (Zero, GP16)
                        Store (Zero, GP36)
                        Store (One, GP01)
                    }

                    Sleep (0x03E8)
                    Notify (P0P2, Zero)
                    Return (ATPB)
                }

                Method (PX03, 1, NotSerialized)
                {
                    CreateWordField (ATPB, Zero, SSZE)
                    CreateWordField (ATPB, 0x02, DPSW)
                    Store (0x04, SSZE)
                    And (Arg0, One, DPSW)
                    If (DPSW)
                    {
                        Store (Zero, GP52)
                        Store (Zero, GP01)
                        Store (One, GP53)
                        Store (Zero, ^^LPCB.EC0.DSPM)
                    }
                    Else
                    {
                        Store (One, GP52)
                        Store (One, GP01)
                        Store (One, GP53)
                        Store (One, ^^LPCB.EC0.DSPM)
                        Store (Zero, ^^LPCB.EC0.SKTB)
                        Store (Zero, ^^LPCB.EC0.SKTA)
                    }

                    Return (ATPB)
                }

                Method (PX05, 1, NotSerialized)
                {
                    CreateWordField (ATPB, Zero, SSZE)
                    CreateWordField (ATPB, 0x02, DPSS)
                    Store (Zero, SSZE)
                    And (Arg0, One, DPSS)
                    Return (ATPB)
                }

                Method (PX06, 1, NotSerialized)
                {
                    CreateWordField (ATPB, Zero, SSZE)
                    CreateWordField (ATPB, 0x02, DPED)
                    Store (Zero, SSZE)
                    And (Arg0, One, DPED)
                    CMSW (0x3E, DPED)
                    If (LEqual (^^WMID.BAEF, Zero))
                    {
                        If (LEqual (^^P0P2.VGA.BKEY, One))
                        {
                            If (LEqual (DPED, Zero))
                            {
                                Store (One, ^^LPCB.EC0.BPWN)
                            }
                            Else
                            {
                                Store (Zero, ^^LPCB.EC0.BPWN)
                            }
                        }
                    }

                    Store (Zero, ^^P0P2.VGA.BKEY)
                    If (LEqual (DPED, Zero))
                    {
                        Store (Zero, PEGA)
                    }

                    Return (ATPB)
                }

                Name (TVGA, Buffer (0xFC00)
                {
                    0x00
                })
                Method (_ROM, 2, NotSerialized)
                {
                    Store (VROM, TVGA)
                    Return (TVGA)
                }

                Method (ATRM, 2, Serialized)
                {
                    Add (Arg0, Arg1, Local0)
                    If (LLessEqual (Local0, SROM))
                    {
                        Multiply (Arg1, 0x08, Local1)
                        Multiply (Arg0, 0x08, Local2)
                        Store (VROM, TVGA)
                        CreateField (TVGA, Local2, Local1, TEMP)
                        Name (RETB, Buffer (Arg1) {})
                        Store (TEMP, RETB)
                        Return (RETB)
                    }
                    Else
                    {
                        If (LLess (Arg0, SROM))
                        {
                            Subtract (SROM, Arg0, Local3)
                            Multiply (Local3, 0x08, Local1)
                            Multiply (Arg0, 0x08, Local2)
                            Store (VROM, TVGA)
                            CreateField (TVGA, Local2, Local1, TEM)
                            Name (RETC, Buffer (Local3) {})
                            Store (TEM, RETC)
                            Return (RETC)
                        }
                        Else
                        {
                            Name (RETD, Buffer (One) {})
                            Return (RETD)
                        }
                    }
                }

                Name (ATIB, Buffer (0x0100) {})
                Method (ATIF, 2, Serialized)
                {
                    If (LEqual (Arg0, Zero))
                    {
                        Return (AF00 ())
                    }

                    If (LEqual (Arg0, One))
                    {
                        Return (AF01 ())
                    }

                    If (LEqual (Arg0, 0x02))
                    {
                        Return (AF02 ())
                    }

                    If (LEqual (Arg0, 0x03))
                    {
                        Return (AF03 (DerefOf (Index (Arg1, 0x02)), DerefOf (Index (Arg1, 
                            0x04))))
                    }
                    Else
                    {
                        CreateWordField (ATIB, Zero, SSZE)
                        CreateWordField (ATIB, 0x02, VERN)
                        CreateDWordField (ATIB, 0x04, NMSK)
                        CreateDWordField (ATIB, 0x08, SFUN)
                        Store (Zero, SSZE)
                        Store (Zero, VERN)
                        Store (Zero, NMSK)
                        Store (Zero, SFUN)
                        Return (ATIB)
                    }
                }

                Method (AF00, 0, NotSerialized)
                {
                    CreateWordField (ATIB, Zero, SSZE)
                    CreateWordField (ATIB, 0x02, VERN)
                    CreateDWordField (ATIB, 0x04, NMSK)
                    CreateDWordField (ATIB, 0x08, SFUN)
                    Store (0x0C, SSZE)
                    Store (One, VERN)
                    Store (0x51, NMSK)
                    Store (0x51, NMSF)
                    Store (0x07, SFUN)
                    Return (ATIB)
                }

                Method (AF01, 0, NotSerialized)
                {
                    CreateWordField (ATIB, Zero, SSZE)
                    CreateDWordField (ATIB, 0x02, VMSK)
                    CreateDWordField (ATIB, 0x06, FLGS)
                    Store (0x0A, SSZE)
                    Store (0x03, VMSK)
                    Store (One, FLGS)
                    Return (ATIB)
                }

                Name (PSBR, Buffer (0x04)
                {
                    0x00, 0x00, 0x00, 0x00
                })
                Name (SEXM, Zero)
                Name (STHG, Zero)
                Name (STHI, Zero)
                Name (SFPG, Zero)
                Name (SFPI, Zero)
                Name (SSPS, Zero)
                Name (SSDM, 0x0A)
                Name (SCDY, Zero)
                Name (NMSF, Zero)
                Name (SACC, Buffer (0x03)
                {
                    0x01, 0x02, 0x03
                })
                Name (SACH, Buffer (0x03)
                {
                    0x01, 0x08, 0x09
                })
                Name (SACT, Buffer (0x05)
                {
                    0x01, 0x02, 0x08, 0x03, 0x09
                })
                Method (AF02, 0, NotSerialized)
                {
                    CreateBitField (PSBR, Zero, PDSW)
                    CreateBitField (PSBR, One, PEXM)
                    CreateBitField (PSBR, 0x02, PTHR)
                    CreateBitField (PSBR, 0x03, PFPS)
                    CreateBitField (PSBR, 0x04, PSPS)
                    CreateBitField (PSBR, 0x05, PDCC)
                    CreateBitField (PSBR, 0x06, PDDS)
                    CreateWordField (ATIB, Zero, SSZE)
                    CreateDWordField (ATIB, 0x02, PSBI)
                    CreateByteField (ATIB, 0x06, EXPM)
                    CreateByteField (ATIB, 0x07, THRM)
                    CreateByteField (ATIB, 0x08, THID)
                    CreateByteField (ATIB, 0x09, FPWR)
                    CreateWordField (ATIB, 0x0A, FPID)
                    CreateWordField (ATIB, 0x0B, SPWR)
                    Store (0x0C, SSZE)
                    Store (PSBR, PSBI)
                    If (PDSW)
                    {
                        Store (Zero, PDSW)
                    }

                    If (PEXM)
                    {
                        Store (SEXM, EXPM)
                        Store (Zero, SEXM)
                        Store (Zero, PEXM)
                    }

                    If (PTHR)
                    {
                        Store (STHG, THRM)
                        Store (STHI, THID)
                        Store (Zero, STHG)
                        Store (Zero, STHI)
                        Store (Zero, PTHR)
                    }

                    If (PFPS)
                    {
                        Store (SFPG, FPWR)
                        Store (SFPI, FPID)
                        Store (Zero, SFPG)
                        Store (Zero, SFPI)
                        Store (Zero, PFPS)
                    }

                    If (PSPS)
                    {
                        Store (SSPS, SPWR)
                        Store (Zero, PSPS)
                    }

                    If (PDCC)
                    {
                        Store (Zero, PDCC)
                    }

                    If (PDDS)
                    {
                        Store (Zero, PDDS)
                    }

                    Return (ATIB)
                }

                Method (AF03, 2, NotSerialized)
                {
                    Name (NXTD, Zero)
                    Name (INDX, Zero)
                    CreateWordField (ATIB, Zero, SSZE)
                    CreateWordField (ATIB, 0x02, SSDP)
                    CreateWordField (ATIB, 0x04, SCDP)
                    Store (Arg0, SSDP)
                    Store (Arg1, SCDP)
                    Store (SSDP, Local1)
                    And (Local1, 0x0B, Local1)
                    Store (SCDP, Local2)
                    Or (Local2, One, Local2)
                    Store (Zero, Local0)
                    Store (0x03, INDX)
                    If (LEqual (SCDP, 0x0B))
                    {
                        Store (0x05, INDX)
                    }

                    While (LLess (Local0, INDX))
                    {
                        If (LEqual (Local2, 0x03))
                        {
                            Store (DerefOf (Index (SACC, Local0)), Local3)
                        }
                        Else
                        {
                            If (LEqual (Local2, 0x09))
                            {
                                Store (DerefOf (Index (SACH, Local0)), Local3)
                            }
                            Else
                            {
                                Store (DerefOf (Index (SACT, Local0)), Local3)
                            }
                        }

                        If (LEqual (Local3, Local1))
                        {
                            Increment (Local0)
                            If (LEqual (Local0, INDX))
                            {
                                Store (Zero, Local0)
                            }

                            Store (Local0, NXTD)
                            Store (INDX, Local0)
                        }
                        Else
                        {
                            Increment (Local0)
                        }
                    }

                    If (LEqual (NXTD, INDX))
                    {
                        Store (Zero, SSDP)
                    }
                    Else
                    {
                        Store (NXTD, Local0)
                        If (LEqual (Local2, 0x03))
                        {
                            Store (DerefOf (Index (SACC, Local0)), Local3)
                        }
                        Else
                        {
                            If (LEqual (Local2, 0x09))
                            {
                                Store (DerefOf (Index (SACH, Local0)), Local3)
                            }
                            Else
                            {
                                Store (DerefOf (Index (SACT, Local0)), Local3)
                            }
                        }

                        Store (Local3, SSDP)
                    }

                    Store (0x04, SSZE)
                    Return (ATIB)
                }

                Method (AFN0, 0, Serialized)
                {
                    CreateBitField (PSBR, Zero, PDSW)
                    If (And (NMSF, One))
                    {
                        Store (One, PDSW)
                        Notify (GFX0, 0x81)
                    }
                }

                Method (AFN1, 1, Serialized)
                {
                    If (And (NMSF, 0x02))
                    {
                        Store (Arg0, Local0)
                        And (Local0, 0x03, Local0)
                        Store (Local0, SEXM)
                        CreateBitField (PSBR, One, PEXM)
                        Store (One, PEXM)
                        Notify (GFX0, 0x81)
                    }
                }

                Method (AFN2, 2, Serialized)
                {
                    If (And (NMSF, 0x04))
                    {
                        Store (Arg0, Local0)
                        Store (Local0, STHI)
                        Store (Arg1, Local0)
                        Store (And (Local0, 0x03, Local0), STHG)
                        CreateBitField (PSBR, 0x02, PTHR)
                        Store (One, PTHR)
                        Notify (GFX0, 0x81)
                    }
                }

                Method (AFN3, 2, Serialized)
                {
                    If (And (NMSF, 0x08))
                    {
                        Store (Arg0, Local0)
                        Store (Local0, SFPI)
                        Store (Arg1, Local0)
                        Store (And (Local0, 0x03, Local0), SFPG)
                        CreateBitField (PSBR, 0x03, PFPS)
                        Store (One, PFPS)
                        Notify (GFX0, 0x81)
                    }
                }

                Method (AFN4, 1, Serialized)
                {
                    If (And (NMSF, 0x10))
                    {
                        Store (Arg0, Local0)
                        Store (SSPS, Local1)
                        Store (Local0, SSPS)
                        CreateBitField (PSBR, 0x04, PSPS)
                        If (LNotEqual (Local0, Local1))
                        {
                            Store (One, PSPS)
                            Notify (GFX0, 0x81)
                        }
                    }
                }

                Method (AFN5, 0, Serialized)
                {
                    CreateBitField (PSBR, 0x05, PDCC)
                    If (And (NMSF, 0x20))
                    {
                        Store (One, PDCC)
                        Notify (GFX0, 0x81)
                    }
                }

                Method (AFN6, 0, Serialized)
                {
                    CreateBitField (PSBR, 0x06, PDDS)
                    If (And (NMSF, 0x40))
                    {
                        Store (One, PDDS)
                        Notify (GFX0, 0x81)
                    }
                }
            }

            Device (P0P2)
            {
                Method (_ADR, 0, NotSerialized)
                {
                    If (Or (LEqual (And (PNHM, 0x000FFFF0), 0x000106E0), LEqual (And (
                        PNHM, 0x000FFFF0), 0x000106A0)))
                    {
                        Store (0x00030000, CPTY)
                    }
                    Else
                    {
                        Store (0x00010000, CPTY)
                    }

                    Return (CPTY)
                }

                Method (_PRT, 0, NotSerialized)
                {
                    If (PICM)
                    {
                        Return (AR02)
                    }

                    Return (PR02)
                }

                Device (PEGP)
                {
                    Name (_ADR, 0xFFFF)
                }

                Device (VGA1)
                {
                    Name (_ADR, One)
                    OperationRegion (PSID, PCI_Config, 0x40, 0xC0)
                    Field (PSID, AnyAcc, NoLock, Preserve)
                    {
                        NVID,   32, 
                                Offset (0x0C), 
                        SVID,   16, 
                        SSID,   16, 
                                Offset (0x28), 
                        D1LX,   8
                    }

                    Method (_STA, 0, NotSerialized)
                    {
                        If (LOr (LEqual (DISC, One), LEqual (DISC, 0x02)))
                        {
                            Return (0x0F)
                        }

                        Return (Zero)
                    }
                }

                OperationRegion (DMIB, SystemMemory, 0xFED18000, 0x1000)
                Field (DMIB, DWordAcc, Lock, Preserve)
                {
                            Offset (0xC34), 
                    LLGE,   1, 
                        ,   28, 
                    PCGE,   1, 
                        ,   1, 
                    LGGE,   1
                }

                Device (VGA)
                {
                    Name (_ADR, Zero)
                    OperationRegion (PVID, PCI_Config, Zero, 0x04)
                    Field (PVID, AnyAcc, NoLock, Preserve)
                    {
                        DVI0,   16, 
                        DVI1,   16
                    }

                    OperationRegion (PSID, PCI_Config, 0x40, 0xC0)
                    Field (PSID, AnyAcc, NoLock, Preserve)
                    {
                        SVD2,   16, 
                        SSD2,   16, 
                                Offset (0x0C), 
                        SVID,   16, 
                        SSID,   16, 
                                Offset (0x28), 
                        D0LX,   8
                    }

                    Name (SWIT, One)
                    Name (CRTA, One)
                    Name (LCDA, One)
                    Name (TVAA, One)
                    Name (VLDF, One)
                    Name (DPMO, Zero)
                    Name (DPMG, Zero)
                    Name (NDFG, Zero)
                    Name (BKEY, Zero)
                    Name (FKEY, Zero)
                    Name (_PSC, Zero)
                    Name (OMPR, 0x02)
                    Name (VGAB, Buffer (0xFB)
                    {
                        /* 0000 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                        /* 0008 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                        /* 0010 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                        /* 0018 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                        /* 0020 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                        /* 0028 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                        /* 0030 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                        /* 0038 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                        /* 0040 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                        /* 0048 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                        /* 0050 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                        /* 0058 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                        /* 0060 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                        /* 0068 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                        /* 0070 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                        /* 0078 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                        /* 0080 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                        /* 0088 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                        /* 0090 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                        /* 0098 */    0x00, 0x00, 0x00
                    })
                    Method (OX16, 0, NotSerialized)
                    {
                        Sleep (0x64)
                        Store (Zero, LLGE)
                        Store (Zero, LGGE)
                        Store (Zero, PEPO)
                        Store (Zero, ROE0)
                        Store (Zero, ROE1)
                        Store (Zero, ROE2)
                        Store (Zero, ROE3)
                        Store (Zero, ROE4)
                        Store (Zero, ROE5)
                        Store (Zero, ROE6)
                        Store (Zero, ROE7)
                        Store (Zero, ROE8)
                        Store (Zero, ROE9)
                        Store (Zero, ROEA)
                        Store (Zero, ROEB)
                        Store (Zero, ROEC)
                        Store (Zero, ROED)
                        Store (Zero, ROEE)
                        Store (Zero, ROEF)
                        Store (Zero, HCLQ)
                        Store (Zero, UNWA)
                        Store (Zero, PEDQ)
                        Store (Zero, LNKD)
                        Store (One, LLGE)
                        Store (One, LGGE)
                        Store (0xA9, P80H)
                        While (LLess (LNKS, 0x07))
                        {
                            Sleep (One)
                        }
                    }

                    Method (FX16, 0, NotSerialized)
                    {
                        Store (Zero, LLGE)
                        Store (Zero, LGGE)
                        Store (One, LNKD)
                        Store (0xA2, P80H)
                        While (LNotEqual (LNKS, Zero))
                        {
                            Sleep (One)
                        }

                        Store (0xA3, P80H)
                        Store (One, PEDQ)
                        Store (Zero, LNKD)
                        Store (0xA4, P80H)
                        While (LNotEqual (PIDQ, One))
                        {
                            Sleep (One)
                        }

                        Store (0xA5, P80H)
                        Store (One, HCLQ)
                        Store (One, UNWA)
                        Store (0x07, PEPO)
                        Store (One, ROE0)
                        Store (One, ROE1)
                        Store (One, ROE2)
                        Store (One, ROE3)
                        Store (One, ROE4)
                        Store (One, ROE5)
                        Store (One, ROE6)
                        Store (One, ROE7)
                        Store (One, ROE8)
                        Store (One, ROE9)
                        Store (One, ROEA)
                        Store (One, ROEB)
                        Store (One, ROEC)
                        Store (One, ROED)
                        Store (One, ROEE)
                        Store (One, ROEF)
                        Store (One, LLGE)
                        Store (One, LGGE)
                    }

                    Method (_PS0, 0, NotSerialized)
                    {
                        Store (0xA0, P80H)
                        Store (Zero, _PSC)
                        If (LEqual (DPMD, 0x02))
                        {
                            If (LEqual (GP36, Zero))
                            {
                                Store (Zero, GP16)
                                Sleep (0x64)
                                Store (One, GP36)
                                Sleep (0x64)
                                Store (One, GP16)
                                OX16 ()
                                Store (Zero, CMDR)
                                Store (VGAB, VGAR)
                                Store (0x06, CMDR)
                                Store (0xA1, P80H)
                            }

                            Store (Zero, HDAO)
                        }
                    }

                    Method (_PS1, 0, NotSerialized)
                    {
                        Store (One, _PSC)
                    }

                    Method (_PS3, 0, NotSerialized)
                    {
                        Store (0xA6, P80H)
                        If (LEqual (OMPR, 0x03))
                        {
                            Store (VGAR, VGAB)
                            FX16 ()
                            Store (Zero, GP16)
                            Store (Zero, GP36)
                            Sleep (0x0177)
                            Store (0x03, _PSC)
                        }

                        Store (0x02, OMPR)
                        Store (0xA8, P80H)
                    }

                    Method (_DOS, 1, NotSerialized)
                    {
                        Store (And (Arg0, 0x07), DSEN)
                    }

                    Method (_DOD, 0, NotSerialized)
                    {
                        If (LOr (LEqual (DISC, One), LEqual (DISC, 0x02)))
                        {
                            If (LEqual (DPMO, 0x04))
                            {
                                Return (Package (0x03)
                                {
                                    0x80000100, 
                                    0x0400, 
                                    0x80007330
                                })
                            }
                            Else
                            {
                                Return (Package (0x03)
                                {
                                    0x0110, 
                                    0x80000100, 
                                    0x80007330
                                })
                            }
                        }

                        Return (Zero)
                    }

                    Device (CRT)
                    {
                        Method (_ADR, 0, NotSerialized)
                        {
                            Return (0x80000100)
                        }

                        Method (_DCS, 0, NotSerialized)
                        {
                            Return (0x1F)
                        }

                        Method (_DGS, 0, NotSerialized)
                        {
                            Return (One)
                        }

                        Method (_DSS, 1, NotSerialized)
                        {
                        }
                    }

                    Device (LCD)
                    {
                        Method (_ADR, 0, NotSerialized)
                        {
                            If (LEqual (DPMO, 0x04))
                            {
                                Return (0x0400)
                            }
                            Else
                            {
                                Return (0x0110)
                            }
                        }

                        Method (_DCS, 0, NotSerialized)
                        {
                            Return (0x1F)
                        }

                        Method (_DGS, 0, NotSerialized)
                        {
                            Return (One)
                        }

                        Method (_DSS, 1, NotSerialized)
                        {
                        }

                        Name (BRTS, Zero)
                        Method (_BCL, 0, NotSerialized)
                        {
                            Return (Package (0x0C)
                            {
                                0x46, 
                                0x28, 
                                0x0A, 
                                0x14, 
                                0x1E, 
                                0x28, 
                                0x32, 
                                0x3C, 
                                0x46, 
                                0x50, 
                                0x5A, 
                                0x64
                            })
                        }

                        Method (_BCM, 1, NotSerialized)
                        {
                            Divide (Arg0, 0x0A, Local0, Local1)
                            Decrement (Local1)
                            Store (Local1, ^^^^LPCB.EC0.BRTS)
                        }

                        Method (_BQC, 0, NotSerialized)
                        {
                            Store (^^^^LPCB.EC0.BRTS, Local0)
                            Sleep (0x64)
                            Add (Local0, One, Local0)
                            Multiply (Local0, 0x0A, Local0)
                            Store (0x64, P80H)
                            Return (Local0)
                        }
                    }

                    Device (HDV0)
                    {
                        Name (_ADR, 0x80007330)
                        Method (_DGS, 0, NotSerialized)
                        {
                            And (SWIT, 0x08, Local0)
                            If (Local0)
                            {
                                Return (One)
                            }
                            Else
                            {
                                Return (Zero)
                            }
                        }

                        Method (_DCS, 0, NotSerialized)
                        {
                            Return (0x1F)
                        }

                        Method (_DSS, 1, NotSerialized)
                        {
                        }
                    }

                    Method (_DSM, 4, NotSerialized)
                    {
                        Return (^^^GFX0._DSM (Arg0, Arg1, Arg2, Arg3))
                    }

                    OperationRegion (XPCI, SystemMemory, 0xE0008000, 0x1000)
                    Field (XPCI, DWordAcc, Lock, Preserve)
                    {
                                Offset (0x04), 
                        XE04,   32, 
                                Offset (0x0C), 
                        XE0C,   32, 
                                Offset (0x18), 
                        XE18,   32, 
                                Offset (0x3C), 
                        XE3C,   22, 
                        XRST,   1, 
                                Offset (0xB0), 
                        ASPM,   2, 
                            ,   2, 
                        LNKD,   1, 
                            ,   1, 
                        RCCC,   1, 
                                Offset (0x1FC), 
                                Offset (0x1FD), 
                            ,   1, 
                        UNWA,   1, 
                                Offset (0x214), 
                                Offset (0x216), 
                        LNKS,   4, 
                                Offset (0x225), 
                        DQDA,   1, 
                                Offset (0xC28), 
                        HCLQ,   1, 
                                Offset (0xC34), 
                            ,   30, 
                        PEDQ,   1, 
                        PIDQ,   1, 
                                Offset (0xDFC), 
                            ,   1, 
                        PEPO,   3, 
                                Offset (0xE08), 
                            ,   31, 
                        ROE0,   1, 
                                Offset (0xE28), 
                            ,   31, 
                        ROE1,   1, 
                                Offset (0xE48), 
                            ,   31, 
                        ROE2,   1, 
                                Offset (0xE68), 
                            ,   31, 
                        ROE3,   1, 
                                Offset (0xE88), 
                            ,   31, 
                        ROE4,   1, 
                                Offset (0xEA8), 
                            ,   31, 
                        ROE5,   1, 
                                Offset (0xEC8), 
                            ,   31, 
                        ROE6,   1, 
                                Offset (0xEE8), 
                            ,   31, 
                        ROE7,   1, 
                                Offset (0xF08), 
                            ,   31, 
                        ROE8,   1, 
                                Offset (0xF28), 
                            ,   31, 
                        ROE9,   1, 
                                Offset (0xF48), 
                            ,   31, 
                        ROEA,   1, 
                                Offset (0xF68), 
                            ,   31, 
                        ROEB,   1, 
                                Offset (0xF88), 
                            ,   31, 
                        ROEC,   1, 
                                Offset (0xFA8), 
                            ,   31, 
                        ROED,   1, 
                                Offset (0xFC8), 
                            ,   31, 
                        ROEE,   1, 
                                Offset (0xFE8), 
                            ,   31, 
                        ROEF,   1
                    }

                    OperationRegion (NVAU, SystemMemory, 0xE0101000, 0x80)
                    Field (NVAU, DWordAcc, Lock, Preserve)
                    {
                                Offset (0x40), 
                        NVID,   32
                    }

                    OperationRegion (BPCF, SystemMemory, 0xE0100000, 0x1000)
                    Field (BPCF, DWordAcc, Lock, Preserve)
                    {
                                Offset (0x04), 
                        CMDR,   8, 
                        VGAR,   2008
                    }

                    OperationRegion (BPCI, SystemMemory, 0xE0100000, 0x1000)
                    Field (BPCI, DWordAcc, Lock, Preserve)
                    {
                        X000,   32, 
                        X004,   32, 
                        X008,   32, 
                        X00C,   32, 
                        X010,   32, 
                        X014,   32, 
                        X018,   32, 
                        X01C,   32, 
                        X020,   32, 
                        X024,   32, 
                        X028,   32, 
                        X02C,   32, 
                        X030,   32, 
                        X034,   32, 
                        X038,   32, 
                        X03C,   32, 
                        X040,   32, 
                                Offset (0x48), 
                                Offset (0x4C), 
                        X04C,   32, 
                        X050,   32, 
                                Offset (0x80), 
                        X080,   32, 
                                Offset (0x88), 
                        X088,   2, 
                            ,   3, 
                            ,   1, 
                        ECCC,   1, 
                                Offset (0x8A), 
                                Offset (0x8B), 
                            ,   4, 
                        ESCC,   1, 
                                Offset (0x114), 
                        TCVC,   8, 
                                Offset (0x48B), 
                            ,   1, 
                        HDAO,   1
                    }

                    OperationRegion (VBRM, SystemMemory, 0x93746018, 0x00010000)
                    Field (VBRM, AnyAcc, NoLock, Preserve)
                    {
                        VBF1,   262144, 
                        VBF2,   262144
                    }

                    Name (XVSV, Buffer (0x48) {})
                    CreateDWordField (XVSV, Zero, XB00)
                    CreateDWordField (XVSV, 0x04, XB04)
                    CreateDWordField (XVSV, 0x08, XB08)
                    CreateDWordField (XVSV, 0x0C, XB0C)
                    CreateDWordField (XVSV, 0x10, XB10)
                    CreateDWordField (XVSV, 0x14, XB14)
                    CreateDWordField (XVSV, 0x18, XB18)
                    CreateDWordField (XVSV, 0x1C, XB1C)
                    CreateDWordField (XVSV, 0x20, XB20)
                    CreateDWordField (XVSV, 0x24, XB24)
                    CreateDWordField (XVSV, 0x28, XB28)
                    CreateDWordField (XVSV, 0x2C, XB2C)
                    CreateDWordField (XVSV, 0x30, XB30)
                    CreateDWordField (XVSV, 0x34, XB34)
                    CreateDWordField (XVSV, 0x38, XB38)
                    CreateDWordField (XVSV, 0x3C, XB3C)
                    CreateDWordField (XVSV, 0x40, XB40)
                    CreateDWordField (XVSV, 0x44, XB4C)
                    Name (XGSV, Buffer (0x0C) {})
                    CreateDWordField (XGSV, Zero, PB04)
                    CreateDWordField (XGSV, 0x04, PB0C)
                    CreateDWordField (XGSV, 0x08, PB3C)
                    Name (SVON, Zero)
                    Method (XSAV, 0, NotSerialized)
                    {
                        If (LEqual (SVON, One))
                        {
                            Return (Zero)
                        }

                        Store (One, SVON)
                        Store (X000, XB00)
                        Store (X004, XB04)
                        Store (X008, XB08)
                        Store (X00C, XB0C)
                        Store (X010, XB10)
                        Store (X014, XB14)
                        Store (X018, XB18)
                        Store (X01C, XB1C)
                        Store (X020, XB20)
                        Store (X024, XB24)
                        Store (X028, XB28)
                        Store (X02C, XB2C)
                        Store (X030, XB30)
                        Store (X034, XB34)
                        Store (X038, XB38)
                        Store (X03C, XB3C)
                        Store (X040, XB40)
                        Store (X04C, XB4C)
                        Store (XE04, XB04)
                        Store (XE0C, XB0C)
                        Store (XE3C, XB3C)
                    }

                    Method (XRES, 0, NotSerialized)
                    {
                        Store (XB00, X000)
                        Store (XB04, X004)
                        Store (XB08, X008)
                        Store (XB0C, X00C)
                        Store (XB10, X010)
                        Store (XB14, X014)
                        Store (XB18, X018)
                        Store (XB1C, X01C)
                        Store (XB20, X020)
                        Store (XB24, X024)
                        Store (XB28, X028)
                        Store (XB2C, X02C)
                        Store (XB30, X030)
                        Store (XB34, X034)
                        Store (XB38, X038)
                        Store (XB3C, X03C)
                        Store (XB40, X040)
                        Store (XB4C, X04C)
                    }

                    Method (IPBR, 0, NotSerialized)
                    {
                        Store (One, TCVC)
                        If (LEqual (ESCC, One))
                        {
                            Store (One, ECCC)
                            Store (One, RCCC)
                        }
                    }

                    Name (TMPS, Zero)
                    Method (_ON, 0, NotSerialized)
                    {
                    }

                    Method (_OFF, 0, NotSerialized)
                    {
                    }

                    Method (PLAT, 0, NotSerialized)
                    {
                        If (LEqual (DPMO, One))
                        {
                            Store (One, DPMG)
                        }

                        If (LAnd (LEqual (^^^GFX0.VID, 0x8086), LEqual (DPMD, Zero)))
                        {
                            Store (One, DPMG)
                        }
                        Else
                        {
                            Store (CMSR (0x3E), Local0)
                            If (LOr (LEqual (DPMO, 0x04), LEqual (DPMO, 0x02)))
                            {
                                If (LEqual (DPMD, One))
                                {
                                    Store (0x02, DPMG)
                                }
                                Else
                                {
                                    If (LEqual (Local0, Zero))
                                    {
                                        Store (One, DPMG)
                                    }
                                    Else
                                    {
                                        Store (0x02, DPMG)
                                    }
                                }
                            }

                            If (LOr (LEqual (DPMO, 0x05), LEqual (DPMO, 0x03)))
                            {
                                If (LEqual (DPMD, One))
                                {
                                    Store (0x03, DPMG)
                                }
                                Else
                                {
                                    If (LEqual (Local0, One))
                                    {
                                        Store (One, DPMG)
                                    }
                                    Else
                                    {
                                        Store (0x03, DPMG)
                                    }
                                }
                            }
                        }
                    }

                    Method (_STA, 0, NotSerialized)
                    {
                        If (LEqual (DISC, 0x03))
                        {
                            Return (0x0F)
                        }
                        Else
                        {
                            If (LAnd (GP36, GP16))
                            {
                                Return (0x0F)
                            }
                            Else
                            {
                                Return (Zero)
                            }
                        }
                    }

                    Method (MXDS, 1, NotSerialized)
                    {
                        Name (_T_0, Zero)
                        Store (Arg0, _T_0)
                        If (LEqual (_T_0, Zero))
                        {
                            Store (LNot (GP01), GP01)
                            Sleep (0x64)
                            Store (LNot (GP52), GP52)
                            Store (LNot (GP53), GP53)
                            Store (LNot (^^^LPCB.EC0.DSPM), ^^^LPCB.EC0.DSPM)
                            Return (GP52)
                        }
                        Else
                        {
                            If (LEqual (_T_0, One))
                            {
                                Store (Zero, GP01)
                                Store (Zero, GP52)
                                Store (Zero, GP53)
                                Store (Zero, ^^^LPCB.EC0.DSPM)
                            }
                        }
                    }

                    Method (GOBT, 1, NotSerialized)
                    {
                        Name (GEVK, Buffer (0xE6)
                        {
                            /* 0000 */    0x0F, 0x4B, 0x25, 0x56, 0x83, 0x64, 0xA4, 0x80, 
                            /* 0008 */    0x4B, 0x56, 0xE6, 0x00, 0x00, 0x00, 0x01, 0x00, 
                            /* 0010 */    0x31, 0x34, 0x38, 0x35, 0x39, 0x37, 0x34, 0x35, 
                            /* 0018 */    0x36, 0x39, 0x38, 0x35, 0x47, 0x65, 0x6E, 0x75, 
                            /* 0020 */    0x69, 0x6E, 0x65, 0x20, 0x4E, 0x56, 0x49, 0x44, 
                            /* 0028 */    0x49, 0x41, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 
                            /* 0030 */    0x66, 0x69, 0x65, 0x64, 0x20, 0x4F, 0x70, 0x74, 
                            /* 0038 */    0x69, 0x6D, 0x75, 0x73, 0x20, 0x52, 0x65, 0x61, 
                            /* 0040 */    0x64, 0x79, 0x20, 0x4D, 0x6F, 0x74, 0x68, 0x65, 
                            /* 0048 */    0x72, 0x62, 0x6F, 0x61, 0x72, 0x64, 0x20, 0x66, 
                            /* 0050 */    0x6F, 0x72, 0x20, 0x61, 0x63, 0x65, 0x72, 0x20, 
                            /* 0058 */    0x6A, 0x65, 0x35, 0x31, 0x63, 0x70, 0x20, 0x62, 
                            /* 0060 */    0x75, 0x67, 0x20, 0x37, 0x32, 0x35, 0x33, 0x20, 
                            /* 0068 */    0x2D, 0x20, 0x2A, 0x22, 0x55, 0x53, 0x46, 0x56, 
                            /* 0070 */    0x41, 0x55, 0x5F, 0x2E, 0x5F, 0x54, 0x46, 0x46, 
                            /* 0078 */    0x2E, 0x29, 0x28, 0x58, 0x54, 0x2B, 0x47, 0x31, 
                            /* 0080 */    0x41, 0x2D, 0x5F, 0x44, 0x5C, 0x2C, 0x49, 0x39, 
                            /* 0088 */    0x20, 0x20, 0x23, 0x33, 0x2B, 0x50, 0x48, 0x53, 
                            /* 0090 */    0x33, 0x20, 0x5F, 0x3B, 0x59, 0x38, 0x44, 0x2B, 
                            /* 0098 */    0x2A, 0x32, 0x3C, 0x25, 0x5A, 0x31, 0x20, 0x2D, 
                            /* 00A0 */    0x20, 0x43, 0x6F, 0x70, 0x79, 0x72, 0x69, 0x67, 
                            /* 00A8 */    0x68, 0x74, 0x20, 0x32, 0x30, 0x31, 0x30, 0x20, 
                            /* 00B0 */    0x4E, 0x56, 0x49, 0x44, 0x49, 0x41, 0x20, 0x43, 
                            /* 00B8 */    0x6F, 0x72, 0x70, 0x6F, 0x72, 0x61, 0x74, 0x69, 
                            /* 00C0 */    0x6F, 0x6E, 0x20, 0x41, 0x6C, 0x6C, 0x20, 0x52, 
                            /* 00C8 */    0x69, 0x67, 0x68, 0x74, 0x73, 0x20, 0x52, 0x65, 
                            /* 00D0 */    0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x2D, 0x31, 
                            /* 00D8 */    0x34, 0x38, 0x35, 0x39, 0x37, 0x34, 0x35, 0x36, 
                            /* 00E0 */    0x39, 0x38, 0x35, 0x28, 0x52, 0x29
                        })
                        Name (GSVK, Buffer (0xE6)
                        {
                            /* 0000 */    0xF7, 0x6D, 0x73, 0xE7, 0x0F, 0x6D, 0xA4, 0x4F, 
                            /* 0008 */    0x4B, 0x56, 0xE6, 0x00, 0x00, 0x00, 0x01, 0x00, 
                            /* 0010 */    0x31, 0x34, 0x38, 0x35, 0x39, 0x37, 0x34, 0x35, 
                            /* 0018 */    0x36, 0x39, 0x38, 0x35, 0x47, 0x65, 0x6E, 0x75, 
                            /* 0020 */    0x69, 0x6E, 0x65, 0x20, 0x4E, 0x56, 0x49, 0x44, 
                            /* 0028 */    0x49, 0x41, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 
                            /* 0030 */    0x66, 0x69, 0x65, 0x64, 0x20, 0x4F, 0x70, 0x74, 
                            /* 0038 */    0x69, 0x6D, 0x75, 0x73, 0x20, 0x52, 0x65, 0x61, 
                            /* 0040 */    0x64, 0x79, 0x20, 0x4D, 0x6F, 0x74, 0x68, 0x65, 
                            /* 0048 */    0x72, 0x62, 0x6F, 0x61, 0x72, 0x64, 0x20, 0x66, 
                            /* 0050 */    0x6F, 0x72, 0x20, 0x62, 0x75, 0x67, 0x20, 0x37, 
                            /* 0058 */    0x33, 0x36, 0x39, 0x34, 0x33, 0x20, 0x20, 0x20, 
                            /* 0060 */    0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 
                            /* 0068 */    0x2D, 0x20, 0x59, 0x5C, 0x2B, 0x20, 0x42, 0x5D, 
                            /* 0070 */    0x3C, 0x4A, 0x26, 0x22, 0x5E, 0x5E, 0x3C, 0x27, 
                            /* 0078 */    0x3A, 0x22, 0x2A, 0x45, 0x3D, 0x37, 0x56, 0x4A, 
                            /* 0080 */    0x4E, 0x5D, 0x3B, 0x2B, 0x2E, 0x27, 0x4D, 0x28, 
                            /* 0088 */    0x4A, 0x45, 0x32, 0x4E, 0x32, 0x22, 0x26, 0x44, 
                            /* 0090 */    0x2F, 0x24, 0x49, 0x50, 0x3E, 0x4D, 0x5B, 0x55, 
                            /* 0098 */    0x27, 0x5A, 0x5F, 0x34, 0x54, 0x36, 0x20, 0x2D, 
                            /* 00A0 */    0x20, 0x43, 0x6F, 0x70, 0x79, 0x72, 0x69, 0x67, 
                            /* 00A8 */    0x68, 0x74, 0x20, 0x32, 0x30, 0x31, 0x30, 0x20, 
                            /* 00B0 */    0x4E, 0x56, 0x49, 0x44, 0x49, 0x41, 0x20, 0x43, 
                            /* 00B8 */    0x6F, 0x72, 0x70, 0x6F, 0x72, 0x61, 0x74, 0x69, 
                            /* 00C0 */    0x6F, 0x6E, 0x20, 0x41, 0x6C, 0x6C, 0x20, 0x52, 
                            /* 00C8 */    0x69, 0x67, 0x68, 0x74, 0x73, 0x20, 0x52, 0x65, 
                            /* 00D0 */    0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x2D, 0x31, 
                            /* 00D8 */    0x34, 0x38, 0x35, 0x39, 0x37, 0x34, 0x35, 0x36, 
                            /* 00E0 */    0x39, 0x38, 0x35, 0x28, 0x52, 0x29
                        })
                        CreateWordField (Arg0, 0x02, USRG)
                        If (LEqual (USRG, 0x564B))
                        {
                            If (LEqual (DVI1, 0x0DF1))
                            {
                                Return (GEVK)
                            }
                            Else
                            {
                                If (LEqual (DVI1, 0x0DF4))
                                {
                                    Return (GSVK)
                                }
                            }
                        }

                        Return (Zero)
                    }

                    Method (_ROM, 2, NotSerialized)
                    {
                        If (LGreater (Add (Arg0, Arg1), 0x00010000))
                        {
                            Subtract (Arg0, 0x00010000, Arg0)
                        }

                        If (LGreaterEqual (Arg0, 0x8000))
                        {
                            Return (GETB (Subtract (Arg0, 0x8000), Arg1, VBF2))
                        }

                        Return (GETB (Arg0, Arg1, VBF1))
                    }

                    Method (GETB, 3, Serialized)
                    {
                        Multiply (Arg0, 0x08, Local0)
                        Multiply (Arg1, 0x08, Local1)
                        CreateField (Arg2, Local0, Local1, TBF3)
                        Return (TBF3)
                    }

                    Scope (CRT)
                    {
                        Method (MXMX, 1, NotSerialized)
                        {
                            Return (One)
                        }

                        Method (MXDS, 1, NotSerialized)
                        {
                            Return (^^MXDS (Arg0))
                        }
                    }

                    Scope (HDV0)
                    {
                        Method (MXMX, 1, NotSerialized)
                        {
                            Return (One)
                        }

                        Method (MXDS, 1, NotSerialized)
                        {
                            Return (^^MXDS (Arg0))
                        }
                    }

                    Scope (LCD)
                    {
                        Method (MXMX, 1, NotSerialized)
                        {
                            Return (One)
                        }

                        Method (MXDS, 1, NotSerialized)
                        {
                            Return (^^MXDS (Arg0))
                        }
                    }

                    Scope (^^GFX0.DD01)
                    {
                        Method (MXMX, 1, NotSerialized)
                        {
                            Return (One)
                        }

                        Method (MXDS, 1, NotSerialized)
                        {
                            Return (^^MXDS (Arg0))
                        }
                    }

                    Scope (^^GFX0.DD02)
                    {
                        Method (MXMX, 1, NotSerialized)
                        {
                            Return (One)
                        }

                        Method (MXDS, 1, NotSerialized)
                        {
                            Return (^^MXDS (Arg0))
                        }
                    }

                    Scope (^^GFX0.DD03)
                    {
                        Method (MXMX, 1, NotSerialized)
                        {
                            Return (One)
                        }

                        Method (MXDS, 1, NotSerialized)
                        {
                            Return (^^MXDS (Arg0))
                        }
                    }

                    Scope (^^GFX0.DD04)
                    {
                        Method (MXMX, 1, NotSerialized)
                        {
                            Return (One)
                        }

                        Method (MXDS, 1, NotSerialized)
                        {
                            Return (^^MXDS (Arg0))
                        }
                    }

                    Scope (^^GFX0.DD05)
                    {
                        Method (MXMX, 1, NotSerialized)
                        {
                            Return (One)
                        }

                        Method (MXDS, 1, NotSerialized)
                        {
                            Return (^^MXDS (Arg0))
                        }
                    }

                    Scope (^^GFX0)
                    {
                        Method (MXDS, 1, NotSerialized)
                        {
                            Name (_T_0, Zero)
                            Store (Arg0, _T_0)
                            If (LEqual (_T_0, Zero))
                            {
                                Return (GP52)
                            }
                            Else
                            {
                                If (LEqual (_T_0, One))
                                {
                                    Store (One, GP01)
                                    Store (One, GP52)
                                    Store (One, GP53)
                                    Store (One, ^^LPCB.EC0.DSPM)
                                }
                            }
                        }

                        OperationRegion (MXOP, SystemMemory, 0x93745F18, 0x000000C8)
                        Field (MXOP, AnyAcc, NoLock, Preserve)
                        {
                            MXMB,   1600
                        }

                        Method (GMXM, 3, NotSerialized)
                        {
                            Store (0xC8, Local0)
                            Name (BUMA, Buffer (Local0) {})
                            If (CondRefOf (MXMB, Local6))
                            {
                                Store (MXMB, BUMA)
                            }

                            Store (Zero, Local1)
                            Store (Zero, Local5)
                            While (One)
                            {
                                Add (Local1, 0x06, Local2)
                                Store (DerefOf (Index (BUMA, Local2)), Local3)
                                If (Local3)
                                {
                                    Add (Local3, 0x08, Local3)
                                }
                                Else
                                {
                                    Break
                                }

                                Store (Local1, Local4)
                                Add (Local4, 0x04, Local4)
                                If (LEqual (DerefOf (Index (BUMA, Local4)), Arg0))
                                {
                                    Increment (Local4)
                                    If (LEqual (DerefOf (Index (BUMA, Local4)), Arg1))
                                    {
                                        If (LEqual (Local5, Arg2))
                                        {
                                            Multiply (Local1, 0x08, Local1)
                                            Multiply (Local3, 0x08, Local3)
                                            CreateField (BUMA, Local1, Local3, TMPB)
                                            Return (TMPB)
                                        }
                                        Else
                                        {
                                            Increment (Local5)
                                        }
                                    }
                                }

                                Add (Local1, Local3, Local1)
                                If (LGreater (Local1, Local0))
                                {
                                    Break
                                }
                            }

                            Return (Buffer (0x08)
                            {
                                0x00
                            })
                        }

                        Name (PYMK, Zero)
                        Name (BDMK, Zero)
                        Method (_DSM, 4, NotSerialized)
                        {
                            If (LEqual (Arg0, Buffer (0x10)
                                    {
                                        /* 0000 */    0x00, 0xA4, 0x04, 0x40, 0x7D, 0x91, 0xF2, 0x4C, 
                                        /* 0008 */    0xB8, 0x9C, 0x79, 0xB6, 0x2F, 0xD5, 0x56, 0x65
                                    }))
                            {
                                If (LNotEqual (Arg1, 0x0300))
                                {
                                    Return (0x80000002)
                                }

                                Name (_T_0, Zero)
                                Store (Arg2, _T_0)
                                If (LEqual (_T_0, Zero))
                                {
                                    If (LEqual (DISC, 0x03))
                                    {
                                        Return (Zero)
                                    }

                                    Return (0x0001001F)
                                }
                                Else
                                {
                                    If (LEqual (_T_0, 0x04))
                                    {
                                        Return (0x03EF0000)
                                    }
                                    Else
                                    {
                                        If (LEqual (_T_0, 0x05))
                                        {
                                            Return (0x00F00020)
                                        }
                                        Else
                                        {
                                            If (LEqual (_T_0, 0x06))
                                            {
                                                Return (Package (0x0C)
                                                {
                                                    0x0110, 
                                                    0x2C, 
                                                    0x80000100, 
                                                    0x2C, 
                                                    0x80007330, 
                                                    0x2C, 
                                                    0x0110, 
                                                    0x80000100, 
                                                    0x2C, 
                                                    0x0110, 
                                                    0x80007330, 
                                                    0x2C
                                                })
                                            }
                                            Else
                                            {
                                                If (LEqual (_T_0, 0x10))
                                                {
                                                    Return (GMXM (0x03, Zero, Zero))
                                                }
                                                Else
                                                {
                                                    If (LEqual (_T_0, 0x12))
                                                    {
                                                        Return (Package (0x04)
                                                        {
                                                            0xD0, 
                                                            Buffer (0x10)
                                                            {
                                                                /* 0000 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                                                                /* 0008 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
                                                            }, 

                                                            0xDF, 
                                                            Buffer (0x10)
                                                            {
                                                                /* 0000 */    0xB6, 0x6F, 0x0D, 0x36, 0x4E, 0x1D, 0xA6, 0x4F, 
                                                                /* 0008 */    0xB8, 0x48, 0x1B, 0xE3, 0x3D, 0xD8, 0xEC, 0x7B
                                                            }
                                                        })
                                                    }
                                                    Else
                                                    {
                                                        If (LEqual (_T_0, 0x18))
                                                        {
                                                            Return (0x30)
                                                        }
                                                        Else
                                                        {
                                                            If (LEqual (_T_0, 0x19))
                                                            {
                                                                Return (0x80000002)
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }

                            If (LEqual (Arg0, Buffer (0x10)
                                    {
                                        /* 0000 */    0xD3, 0x73, 0xD8, 0x7E, 0xD0, 0xC2, 0x4F, 0x4E, 
                                        /* 0008 */    0xA8, 0x54, 0x0F, 0x13, 0x17, 0xB0, 0x1C, 0x2C
                                    }))
                            {
                                Name (_T_1, Zero)
                                Store (Arg2, _T_1)
                                If (LEqual (_T_1, Zero))
                                {
                                    Return (0x03)
                                }
                                Else
                                {
                                    If (LEqual (_T_1, One))
                                    {
                                        If (LEqual (^^P0P2.VGA.DPMO, 0x04))
                                        {
                                            Return (MXIF)
                                        }
                                        Else
                                        {
                                            Return (MXNF)
                                        }
                                    }
                                }
                            }

                            If (LEqual (Arg0, Buffer (0x10)
                                    {
                                        /* 0000 */    0xF8, 0xD8, 0x86, 0xA4, 0xDA, 0x0B, 0x1B, 0x47, 
                                        /* 0008 */    0xA7, 0x2B, 0x60, 0x42, 0xA6, 0xB5, 0xBE, 0xE0
                                    }))
                            {
                                Store (Zero, Local0)
                                Store (ShiftLeft (DerefOf (Index (Arg3, 0x03)), 0x18), Local0)
                                Add (ShiftLeft (DerefOf (Index (Arg3, 0x02)), 0x10), Local0, 
                                    Local0)
                                Add (ShiftLeft (DerefOf (Index (Arg3, One)), 0x08), Local0, 
                                    Local0)
                                Add (ShiftLeft (DerefOf (Index (Arg3, Zero)), Zero), Local0, 
                                    Local0)
                                If (LNotEqual (Arg1, 0x0100))
                                {
                                    Return (Buffer (0x04)
                                    {
                                        0x02, 0x00, 0x00, 0x80
                                    })
                                }

                                Name (SUBF, Zero)
                                Store (Arg2, SUBF)
                                If (LEqual (SUBF, Zero))
                                {
                                    If (LEqual (DISC, 0x03))
                                    {
                                        Return (Buffer (0x04)
                                        {
                                            0x01, 0x00, 0x01, 0x0C
                                        })
                                    }
                                    Else
                                    {
                                        Return (Buffer (0x04)
                                        {
                                            0x00, 0x00, 0x00, 0x00
                                        })
                                    }
                                }
                                Else
                                {
                                    If (LEqual (SUBF, 0x10))
                                    {
                                        Return (^^P0P2.VGA.GOBT (Arg3))
                                    }

                                    If (LEqual (SUBF, 0x1A))
                                    {
                                        CreateField (Arg3, 0x18, 0x02, OPCE)
                                        CreateField (Arg3, Zero, One, FLCH)
                                        If (And (ToInteger (FLCH), LNotEqual (ToInteger (OPCE), 
                                            ^^P0P2.VGA.OMPR)))
                                        {
                                            Store (OPCE, ^^P0P2.VGA.OMPR)
                                        }

                                        Store (Buffer (0x04)
                                            {
                                                0x00, 0x00, 0x00, 0x00
                                            }, Local0)
                                        CreateField (Local0, Zero, One, OPEN)
                                        CreateField (Local0, 0x03, 0x02, CGCS)
                                        CreateField (Local0, 0x06, One, SHPC)
                                        CreateField (Local0, 0x18, 0x03, DGPC)
                                        Store (One, OPEN)
                                        Store (One, DGPC)
                                        If (LAnd (GP36, GP16))
                                        {
                                            Store (0x03, CGCS)
                                        }
                                        Else
                                        {
                                            Store (Zero, CGCS)
                                        }

                                        Return (Local0)
                                    }

                                    If (LEqual (SUBF, 0x1B))
                                    {
                                        If (And (Local0, 0x02))
                                        {
                                            If (And (Local0, One))
                                            {
                                                CMSW (0x3E, One)
                                                Return (Buffer (0x04)
                                                {
                                                    0x01, 0x00, 0x00, 0x00
                                                })
                                            }
                                            Else
                                            {
                                                CMSW (0x3E, Zero)
                                                Return (Buffer (0x04)
                                                {
                                                    0x00, 0x00, 0x00, 0x00
                                                })
                                            }
                                        }
                                        Else
                                        {
                                            Return (Buffer (0x04)
                                            {
                                                0x00, 0x00, 0x00, 0x00
                                            })
                                        }
                                    }

                                    Return (Buffer (0x04)
                                    {
                                        0x02, 0x00, 0x00, 0x80
                                    })
                                }
                            }

                            If (LEqual (Arg0, Buffer (0x10)
                                    {
                                        /* 0000 */    0xA0, 0xA0, 0x95, 0x9D, 0x60, 0x00, 0x48, 0x4D, 
                                        /* 0008 */    0xB3, 0x4D, 0x7E, 0x5F, 0xEA, 0x12, 0x9F, 0xD4
                                    }))
                            {
                                If (LNotEqual (Arg1, 0x0102))
                                {
                                    Return (0x80000002)
                                }

                                If (LEqual (Arg2, Zero))
                                {
                                    If (LEqual (DISC, 0x03))
                                    {
                                        Return (Buffer (0x04)
                                        {
                                            0x00, 0x00, 0x00, 0x00
                                        })
                                    }
                                    Else
                                    {
                                        Return (Buffer (0x04)
                                        {
                                            0x7F, 0x00, 0x00, 0x00
                                        })
                                    }
                                }

                                If (LEqual (Arg2, One))
                                {
                                    Name (_T_2, Zero)
                                    Store (^^P0P2.VGA.SSID, _T_2)
                                    If (LEqual (_T_2, 0x0487))
                                    {
                                        Return (0x0002F000)
                                    }
                                    Else
                                    {
                                        If (LEqual (_T_2, 0x0488))
                                        {
                                            Return (0x030003FF)
                                        }
                                        Else
                                        {
                                            Return (0x01FE0000)
                                        }
                                    }
                                }

                                If (LEqual (Arg2, 0x02))
                                {
                                    CreateByteField (Arg3, Zero, DSM0)
                                    CreateByteField (Arg3, One, DSM1)
                                    If (And (DSM1, One))
                                    {
                                        And (DSM0, 0xE0, Local0)
                                        Store (Local0, BDMK)
                                    }

                                    If (And (DSM0, 0x10))
                                    {
                                        And (DSM0, 0x0F, Local0)
                                        Notify (GFX0, 0xD9)
                                        CMSW (0x3E, Local0)
                                        Store (Local0, ^^P0P2.VGA.TMPS)
                                        Store (Zero, ^^P0P2.VGA.BKEY)
                                        Return (Local0)
                                    }
                                    Else
                                    {
                                        Store (Zero, Local0)
                                        If (LEqual (^^P0P2.VGA.BKEY, One))
                                        {
                                            Store (CMSR (0x3E), Local0)
                                            Increment (Local0)
                                            If (LGreater (Local0, 0x02))
                                            {
                                                Store (One, Local0)
                                            }
                                        }

                                        If (LEqual (^^P0P2.VGA.BKEY, 0x99))
                                        {
                                            Store (CMSR (0x3E), Local0)
                                            If (LGreater (Local0, 0x02))
                                            {
                                                Store (Zero, Local0)
                                            }
                                        }

                                        Store (Zero, ^^P0P2.VGA.FKEY)
                                        Return (Local0)
                                    }
                                }

                                If (LEqual (Arg2, 0x03))
                                {
                                    CreateByteField (Arg3, Zero, PWF0)
                                    CreateByteField (Arg3, One, PWF1)
                                    And (PWF0, 0x03, Local0)
                                    Name (_T_3, Zero)
                                    Store (Local0, _T_3)
                                    If (LEqual (_T_3, Zero))
                                    {
                                        Return (GP36)
                                    }
                                    Else
                                    {
                                        If (LEqual (_T_3, One))
                                        {
                                            Store (0x1E, P80H)
                                            ^^P0P2.VGA._ON ()
                                            Store (0x1F, P80H)
                                            Return (GP36)
                                        }
                                        Else
                                        {
                                            If (LEqual (_T_3, 0x02))
                                            {
                                                Store (0x0E, P80H)
                                                ^^P0P2.VGA._OFF ()
                                                Store (0x0F, P80H)
                                                Return (GP36)
                                            }
                                        }
                                    }
                                }

                                If (LEqual (Arg2, 0x04))
                                {
                                    Store (0x2E, P80H)
                                    Return (0x00012000)
                                }

                                If (LEqual (Arg2, 0x05))
                                {
                                    If (And (DerefOf (Index (Arg3, 0x03)), One))
                                    {
                                        Store (DerefOf (Index (Arg3, One)), Local0)
                                        ShiftRight (Local0, 0x04, Local0)
                                        Store (DerefOf (Index (Arg3, 0x02)), Local1)
                                        ShiftLeft (Local1, 0x04, Local1)
                                        Or (Local0, Local1, Local0)
                                        Store (DerefOf (Index (Arg3, Zero)), Local2)
                                        Store (DerefOf (Index (Arg3, One)), Local1)
                                        And (Local1, 0x0F, Local1)
                                        ShiftLeft (Local1, 0x04, Local1)
                                        Or (Local2, Local1, Local2)
                                        Store (GATD (Local2, Local0), Local1)
                                        ShiftLeft (Local1, 0x08, Local1)
                                        Store (0x00F00021, Local3)
                                        Or (Local3, Local1, Local3)
                                        Return (Local3)
                                    }
                                }

                                If (LEqual (Arg2, 0x06))
                                {
                                    Return (Package (0x0C)
                                    {
                                        0x0110, 
                                        0x2C, 
                                        0x80000100, 
                                        0x2C, 
                                        0x80007330, 
                                        0x2C, 
                                        0x0110, 
                                        0x80000100, 
                                        0x2C, 
                                        0x0110, 
                                        0x80007330, 
                                        0x2C
                                    })
                                }

                                If (LEqual (Arg2, 0x10))
                                {
                                    Return (GMXM (0x03, Zero, Zero))
                                }

                                If (LEqual (Arg2, 0x18))
                                {
                                    Return (0x30)
                                }

                                Return (0x80000002)
                            }

                            Return (0x80000002)
                        }

                        Method (GATD, 2, NotSerialized)
                        {
                            If (LEqual (Arg0, 0x06))
                            {
                                Name (_T_0, Zero)
                                Store (Arg1, _T_0)
                                If (LEqual (_T_0, 0x02))
                                {
                                    Return (0x04)
                                }
                                Else
                                {
                                    If (LEqual (_T_0, 0x06))
                                    {
                                        Return (0x02)
                                    }
                                    Else
                                    {
                                        Return (One)
                                    }
                                }
                            }
                            Else
                            {
                                If (LEqual (Arg0, 0x0A))
                                {
                                    Name (_T_1, Zero)
                                    Store (Arg1, _T_1)
                                    If (LEqual (_T_1, 0x02))
                                    {
                                        Return (0x05)
                                    }
                                    Else
                                    {
                                        If (LEqual (_T_1, 0x0A))
                                        {
                                            Return (0x03)
                                        }
                                        Else
                                        {
                                            Return (One)
                                        }
                                    }
                                }
                                Else
                                {
                                    If (LEqual (Arg0, 0x0E))
                                    {
                                        Name (_T_2, Zero)
                                        Store (Arg1, _T_2)
                                        If (LEqual (_T_2, 0x02))
                                        {
                                            Return (0x02)
                                        }
                                        Else
                                        {
                                            If (LEqual (_T_2, 0x04))
                                            {
                                                Return (0x03)
                                            }
                                            Else
                                            {
                                                If (LEqual (_T_2, 0x08))
                                                {
                                                    Return (0x04)
                                                }
                                                Else
                                                {
                                                    If (LEqual (_T_2, 0x06))
                                                    {
                                                        Return (0x05)
                                                    }
                                                    Else
                                                    {
                                                        Return (One)
                                                    }
                                                }
                                            }
                                        }
                                    }
                                    Else
                                    {
                                        If (LEqual (Arg0, 0x03))
                                        {
                                            Name (_T_3, Zero)
                                            Store (Arg1, _T_3)
                                            If (LEqual (_T_3, One))
                                            {
                                                Return (0x04)
                                            }
                                            Else
                                            {
                                                If (LEqual (_T_3, 0x03))
                                                {
                                                    Return (0x02)
                                                }
                                                Else
                                                {
                                                    Return (One)
                                                }
                                            }
                                        }
                                        Else
                                        {
                                            If (LEqual (Arg0, 0x05))
                                            {
                                                Name (_T_4, Zero)
                                                Store (Arg1, _T_4)
                                                If (LEqual (_T_4, One))
                                                {
                                                    Return (0x05)
                                                }
                                                Else
                                                {
                                                    If (LEqual (_T_4, 0x05))
                                                    {
                                                        Return (0x03)
                                                    }
                                                    Else
                                                    {
                                                        Return (One)
                                                    }
                                                }
                                            }
                                            Else
                                            {
                                                If (LEqual (Arg0, 0x07))
                                                {
                                                    Name (_T_5, Zero)
                                                    Store (Arg1, _T_5)
                                                    If (LEqual (_T_5, One))
                                                    {
                                                        Return (0x02)
                                                    }
                                                    Else
                                                    {
                                                        If (LEqual (_T_5, 0x02))
                                                        {
                                                            Return (0x03)
                                                        }
                                                        Else
                                                        {
                                                            If (LEqual (_T_5, 0x04))
                                                            {
                                                                Return (0x04)
                                                            }
                                                            Else
                                                            {
                                                                If (LEqual (_T_5, 0x03))
                                                                {
                                                                    Return (0x05)
                                                                }
                                                                Else
                                                                {
                                                                    Return (One)
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                                Else
                                                {
                                                    Return (One)
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }

                        Method (MXMI, 1, NotSerialized)
                        {
                            If (LEqual (Arg0, 0x20))
                            {
                                Return (Arg0)
                            }

                            If (LEqual (Arg0, 0x21))
                            {
                                Return (Arg0)
                            }

                            If (LEqual (Arg0, 0x30))
                            {
                                Return (Arg0)
                            }

                            If (LEqual (Arg0, Zero))
                            {
                                Return (0x30)
                            }

                            Return (Zero)
                        }

                        Method (MXMS, 1, NotSerialized)
                        {
                            If (LEqual (Arg0, 0x20))
                            {
                                Return (GMXM (0x02, Zero, Zero))
                            }
                            Else
                            {
                                If (LEqual (Arg0, 0x21))
                                {
                                    Return (GMXM (0x02, One, Zero))
                                }
                                Else
                                {
                                    Return (GMXM (0x03, Zero, Zero))
                                }
                            }
                        }

                        Name (MXNF, Package (0x04)
                        {
                            0x03, 
                            Package (0x02)
                            {
                                0x0110, 
                                Buffer (0x04)
                                {
                                    0x02, 0x03, 0x03, 0x00
                                }
                            }, 

                            Package (0x02)
                            {
                                0x80000100, 
                                Buffer (0x04)
                                {
                                    0x01, 0x03, 0x03, 0x00
                                }
                            }, 

                            Package (0x02)
                            {
                                0x80007330, 
                                Buffer (0x04)
                                {
                                    0x04, 0x03, 0x03, 0x03
                                }
                            }
                        })
                    }

                    Scope (^^^PCI0)
                    {
                        Device (WMI1)
                        {
                            Name (_HID, "pnp0c14")
                            Name (_UID, "MXM2")
                            Name (MXM3, Buffer (0x31)
                            {
                                /* 0000 */    0x4D, 0x58, 0x4D, 0x5F, 0x03, 0x00, 0x29, 0x00, 
                                /* 0008 */    0x30, 0x11, 0xB8, 0xFF, 0xF9, 0x3E, 0x0A, 0x00, 
                                /* 0010 */    0x00, 0x00, 0x8A, 0xFD, 0xF9, 0x3E, 0x0A, 0x00, 
                                /* 0018 */    0x20, 0x29, 0x52, 0xFC, 0xF9, 0x3E, 0x00, 0x00, 
                                /* 0020 */    0x01, 0xE8, 0x03, 0x00, 0x03, 0x01, 0xE8, 0x03, 
                                /* 0028 */    0xE5, 0x0D, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 
                                /* 0030 */    0xE3
                            })
                            Name (_WDG, Buffer (0x026C)
                            {
                                /* 0000 */    0x3C, 0x5C, 0xCB, 0xF6, 0xAE, 0x9C, 0xBD, 0x4E, 
                                /* 0008 */    0xB5, 0x77, 0x93, 0x1E, 0xA3, 0x2A, 0x2C, 0xC0, 
                                /* 0010 */    0x4D, 0x58, 0x01, 0x02, 0x21, 0x12, 0x90, 0x05, 
                                /* 0018 */    0x66, 0xD5, 0xD1, 0x11, 0xB2, 0xF0, 0x00, 0xA0, 
                                /* 0020 */    0xC9, 0x06, 0x29, 0x10, 0x58, 0x4D, 0x01, 0x00, 
                                /* 0028 */    0x62, 0xDE, 0x6B, 0xE0, 0x75, 0xEE, 0xF4, 0x48, 
                                /* 0030 */    0xA5, 0x83, 0xB2, 0x3E, 0x69, 0xAB, 0xFB, 0x91, 
                                /* 0038 */    0x80, 0x00, 0x01, 0x08, 0x0F, 0xBD, 0xDE, 0x3A, 
                                /* 0040 */    0x5F, 0x0C, 0xED, 0x46, 0xAB, 0x2E, 0x04, 0x96, 
                                /* 0048 */    0x2B, 0x4F, 0xDC, 0xBC, 0x81, 0x00, 0x01, 0x08, 
                                /* 0050 */    0x11, 0x93, 0x51, 0x1E, 0x75, 0x3E, 0x08, 0x42, 
                                /* 0058 */    0xB0, 0x5E, 0xEB, 0xE1, 0x7E, 0x3F, 0xF4, 0x1F, 
                                /* 0060 */    0x86, 0x00, 0x01, 0x08, 0x41, 0x53, 0xF8, 0x37, 
                                /* 0068 */    0x18, 0x44, 0x24, 0x4F, 0x85, 0x33, 0x38, 0xFF, 
                                /* 0070 */    0xC7, 0x29, 0x55, 0x42, 0x87, 0x00, 0x01, 0x08, 
                                /* 0078 */    0x40, 0x2F, 0x1A, 0x92, 0xC4, 0x0D, 0x2D, 0x40, 
                                /* 0080 */    0xAC, 0x18, 0xB4, 0x84, 0x44, 0xEF, 0x9E, 0xD2, 
                                /* 0088 */    0xD0, 0x00, 0x01, 0x08, 0x95, 0x30, 0x26, 0x93, 
                                /* 0090 */    0x5F, 0xDA, 0xA0, 0x46, 0x8B, 0x1C, 0xDB, 0x2F, 
                                /* 0098 */    0x1F, 0x7D, 0x66, 0xAF, 0xD1, 0x00, 0x01, 0x08, 
                                /* 00A0 */    0x06, 0x70, 0x90, 0xBE, 0x03, 0xD6, 0x14, 0x47, 
                                /* 00A8 */    0x9A, 0xE2, 0x9D, 0xBA, 0x89, 0x97, 0xA8, 0x05, 
                                /* 00B0 */    0xD2, 0x00, 0x01, 0x08, 0xE1, 0x55, 0xD3, 0x21, 
                                /* 00B8 */    0x8D, 0x49, 0x1F, 0x4C, 0xAE, 0x01, 0x05, 0xCE, 
                                /* 00C0 */    0xF8, 0xDD, 0x05, 0x3F, 0xD3, 0x00, 0x01, 0x08, 
                                /* 00C8 */    0xF1, 0xED, 0xBC, 0xED, 0xC9, 0xBB, 0x0E, 0x42, 
                                /* 00D0 */    0xA3, 0xC0, 0x32, 0x2B, 0x1D, 0x37, 0xC3, 0xAA, 
                                /* 00D8 */    0xD4, 0x00, 0x01, 0x08, 0xE1, 0x84, 0x7E, 0x37, 
                                /* 00E0 */    0xDE, 0x13, 0xFB, 0x41, 0xA0, 0x96, 0x0F, 0x08, 
                                /* 00E8 */    0x52, 0x8B, 0xA6, 0x89, 0xD5, 0x00, 0x01, 0x08, 
                                /* 00F0 */    0x61, 0xD3, 0x2A, 0xC1, 0xA9, 0x9F, 0x74, 0x4C, 
                                /* 00F8 */    0x90, 0x1F, 0x95, 0xCB, 0x09, 0x45, 0xCF, 0x3E, 
                                /* 0100 */    0xD9, 0x00, 0x01, 0x08, 0xDE, 0xE4, 0x4B, 0x15, 
                                /* 0108 */    0x0A, 0x1C, 0x0D, 0x48, 0xB2, 0x37, 0xFC, 0x5D, 
                                /* 0110 */    0xA9, 0xFA, 0xD2, 0x6F, 0xDA, 0x00, 0x01, 0x08, 
                                /* 0118 */    0x06, 0x80, 0x84, 0x42, 0x86, 0x88, 0x0E, 0x49, 
                                /* 0120 */    0x8C, 0x72, 0x2B, 0xDC, 0xA9, 0x3A, 0x8A, 0x09, 
                                /* 0128 */    0xDB, 0x00, 0x01, 0x08, 0xD9, 0x5E, 0x17, 0xB7, 
                                /* 0130 */    0x95, 0xC9, 0x93, 0x4D, 0x8F, 0x71, 0xEA, 0x25, 
                                /* 0138 */    0xB3, 0xA4, 0x75, 0x62, 0xDC, 0x00, 0x01, 0x08, 
                                /* 0140 */    0x50, 0x2C, 0xCB, 0xA7, 0x79, 0x89, 0x90, 0x49, 
                                /* 0148 */    0xB5, 0x1A, 0x09, 0x50, 0x42, 0xF8, 0x84, 0xDD, 
                                /* 0150 */    0xDD, 0x00, 0x01, 0x08, 0xC4, 0x4C, 0x71, 0x92, 
                                /* 0158 */    0xC7, 0xBE, 0xEE, 0x48, 0x99, 0x07, 0x5B, 0x6A, 
                                /* 0160 */    0xB2, 0x95, 0x4F, 0xD0, 0xE0, 0x00, 0x01, 0x08, 
                                /* 0168 */    0xBA, 0xFF, 0x40, 0x8F, 0x1B, 0xB4, 0xFE, 0x47, 
                                /* 0170 */    0x82, 0x74, 0x00, 0x3A, 0xFA, 0xB5, 0xD8, 0xAA, 
                                /* 0178 */    0xE1, 0x00, 0x01, 0x08, 0x67, 0x53, 0x73, 0x33, 
                                /* 0180 */    0x20, 0x11, 0xF4, 0x47, 0xB6, 0x0B, 0x19, 0x1A, 
                                /* 0188 */    0x8E, 0x71, 0x8A, 0x4E, 0xE2, 0x00, 0x01, 0x08, 
                                /* 0190 */    0xE4, 0x54, 0x3F, 0x37, 0x50, 0x53, 0x0B, 0x4F, 
                                /* 0198 */    0xA8, 0x77, 0x85, 0x89, 0x6C, 0xD1, 0x4F, 0x2F, 
                                /* 01A0 */    0xE3, 0x00, 0x01, 0x08, 0x20, 0xF5, 0x83, 0x5F, 
                                /* 01A8 */    0xC3, 0xD9, 0x6A, 0x4D, 0x8D, 0xE7, 0x67, 0x6A, 
                                /* 01B0 */    0x0D, 0xCB, 0xDD, 0xF7, 0xE4, 0x00, 0x01, 0x08, 
                                /* 01B8 */    0xEB, 0x5C, 0x0F, 0x8E, 0x69, 0x69, 0x2B, 0x4C, 
                                /* 01C0 */    0xB5, 0xC3, 0x7A, 0x1F, 0xF2, 0xB3, 0xBB, 0xC5, 
                                /* 01C8 */    0xE5, 0x00, 0x01, 0x08, 0x18, 0x91, 0xFE, 0x08, 
                                /* 01D0 */    0x0F, 0x84, 0x84, 0x48, 0x82, 0xD7, 0x4A, 0x0A, 
                                /* 01D8 */    0x28, 0xC2, 0x54, 0x9F, 0xE6, 0x00, 0x01, 0x08, 
                                /* 01E0 */    0x39, 0xFB, 0x29, 0xFB, 0x6D, 0xB3, 0x2A, 0x44, 
                                /* 01E8 */    0xB3, 0x51, 0x33, 0x7F, 0xD6, 0xDD, 0x97, 0xEE, 
                                /* 01F0 */    0xE7, 0x00, 0x01, 0x08, 0xC3, 0x2C, 0xD3, 0xBB, 
                                /* 01F8 */    0xE3, 0xB9, 0x64, 0x47, 0xAE, 0xF6, 0x86, 0x06, 
                                /* 0200 */    0x7A, 0xB1, 0xB1, 0xD5, 0xE8, 0x00, 0x01, 0x08, 
                                /* 0208 */    0x9F, 0x83, 0x56, 0xA0, 0xE9, 0x44, 0x42, 0x45, 
                                /* 0210 */    0x9C, 0x0F, 0x9C, 0xFA, 0x88, 0x57, 0x9F, 0xA6, 
                                /* 0218 */    0xE9, 0x00, 0x01, 0x08, 0x9D, 0xE8, 0xCB, 0xB2, 
                                /* 0220 */    0xAD, 0x1B, 0x29, 0x4D, 0x85, 0x7B, 0xCB, 0x7B, 
                                /* 0228 */    0xCF, 0xF8, 0x6E, 0xA6, 0xEA, 0x00, 0x01, 0x08, 
                                /* 0230 */    0x57, 0x3B, 0xAC, 0xA5, 0x31, 0xCC, 0x38, 0x42, 
                                /* 0238 */    0xB0, 0xFE, 0xAD, 0x3B, 0x07, 0xEC, 0x12, 0x13, 
                                /* 0240 */    0xEB, 0x00, 0x01, 0x08, 0xD2, 0x85, 0xE4, 0xB3, 
                                /* 0248 */    0xC1, 0x3C, 0x94, 0x4B, 0x8F, 0x31, 0x77, 0xBA, 
                                /* 0250 */    0x2F, 0xDC, 0x9E, 0xBE, 0xEF, 0x00, 0x01, 0x08, 
                                /* 0258 */    0xB6, 0x6F, 0x0D, 0x36, 0x4E, 0x1D, 0xA6, 0x4F, 
                                /* 0260 */    0xB8, 0x48, 0x1B, 0xE3, 0x3D, 0xD8, 0xEC, 0x7B, 
                                /* 0268 */    0xF0, 0x00, 0x01, 0x08
                            })
                            Method (WMMX, 3, NotSerialized)
                            {
                                CreateDWordField (Arg2, Zero, FUNC)
                                If (LGreaterEqual (SizeOf (Arg2), 0x04))
                                {
                                    CreateDWordField (Arg2, 0x04, ARGA)
                                }

                                If (LGreaterEqual (SizeOf (Arg2), 0x08))
                                {
                                    CreateDWordField (Arg2, 0x08, ARGB)
                                }

                                If (LEqual (FUNC, 0x4C43425F))
                                {
                                    Return (^^GFX0.DD03._BCL ())
                                }

                                If (LEqual (FUNC, 0x4D43425F)) {}
                                If (LEqual (FUNC, 0x444F445F))
                                {
                                    If (And (Arg1, 0x0100))
                                    {
                                        If (LEqual (And (Arg1, 0xFF), Zero))
                                        {
                                            Return (^^GFX0._DOD ())
                                        }

                                        If (LEqual (And (Arg1, 0xFF), One))
                                        {
                                            Return (^^P0P2.VGA._DOD ())
                                        }
                                    }
                                    Else
                                    {
                                        If (LEqual (Arg1, 0x10))
                                        {
                                            Return (^^GFX0._DOD ())
                                        }

                                        If (LEqual (Arg1, Zero))
                                        {
                                            Return (^^P0P2.VGA._DOD ())
                                        }
                                    }
                                }

                                If (LEqual (FUNC, 0x534F445F)) {}
                                If (LEqual (FUNC, 0x5343445F)) {}
                                If (LEqual (FUNC, 0x4D4F525F)) {}
                                If (LEqual (FUNC, 0x47504F4E))
                                {
                                    ^^P0P2.VGA._PS0 ()
                                }

                                If (LEqual (FUNC, 0x4D53445F))
                                {
                                    If (LGreaterEqual (SizeOf (Arg2), 0x18))
                                    {
                                        CreateField (Arg2, 0x20, 0x80, MUID)
                                        CreateDWordField (Arg2, 0x14, REVI)
                                        CreateDWordField (Arg2, 0x18, SFNC)
                                        CreateDWordField (Arg2, 0x1C, ARGD)
                                        If (And (Arg1, 0x0100))
                                        {
                                            If (LEqual (And (Arg1, 0xFF), Zero)) {}
                                            If (LEqual (And (Arg1, 0xFF), One))
                                            {
                                                Return (^^P0P2.VGA._DSM (MUID, REVI, SFNC, ARGD))
                                            }
                                        }
                                        Else
                                        {
                                            If (LEqual (Arg1, 0x10)) {}
                                            If (LEqual (Arg1, Zero))
                                            {
                                                Return (^^P0P2.VGA._DSM (MUID, REVI, SFNC, ARGD))
                                            }
                                        }
                                    }
                                }

                                If (LEqual (FUNC, 0x584D584D)) {}
                                If (LEqual (FUNC, 0x5344584D)) {}
                                If (LEqual (FUNC, 0x494D584D))
                                {
                                    Return (^^GFX0.MXMI (ARGA))
                                }

                                If (LEqual (FUNC, 0x534D584D))
                                {
                                    If (And (Arg1, 0x0100))
                                    {
                                        If (LEqual (And (Arg1, 0xFF), One))
                                        {
                                            Return (^^GFX0.MXMS (ARGA))
                                        }
                                    }
                                    Else
                                    {
                                        If (LEqual (Arg1, Zero))
                                        {
                                            Return (^^GFX0.MXMS (ARGA))
                                        }
                                    }
                                }

                                Return (Zero)
                            }
                        }
                    }

                    Name (ATPB, Buffer (0x0100) {})
                    Name (DSID, 0xFFFFFFFF)
                    Name (HSID, 0xFFFFFFFF)
                    Method (ATPX, 2, Serialized)
                    {
                        If (LEqual (Arg0, Zero))
                        {
                            Return (PX00 ())
                        }

                        If (LEqual (Arg0, One))
                        {
                            Return (PX01 ())
                        }

                        If (LEqual (Arg0, 0x02))
                        {
                            Return (PX02 (DerefOf (Index (Arg1, 0x02))))
                        }

                        If (LEqual (Arg0, 0x03))
                        {
                            Return (PX03 (DerefOf (Index (Arg1, 0x02))))
                        }

                        If (LEqual (Arg0, 0x05))
                        {
                            Return (PX05 (DerefOf (Index (Arg1, 0x02))))
                        }

                        If (LEqual (Arg0, 0x06))
                        {
                            Return (PX06 (DerefOf (Index (Arg1, 0x02))))
                        }

                        CreateWordField (ATPB, Zero, SSZE)
                        CreateWordField (ATPB, 0x02, VERN)
                        CreateDWordField (ATPB, 0x04, SFUN)
                        Store (Zero, SSZE)
                        Store (Zero, VERN)
                        Store (Zero, SFUN)
                        Return (ATPB)
                    }

                    Method (PX00, 0, NotSerialized)
                    {
                        CreateWordField (ATPB, Zero, SSZE)
                        CreateWordField (ATPB, 0x02, VERN)
                        CreateDWordField (ATPB, 0x04, SFUN)
                        Store (0x08, SSZE)
                        Store (One, VERN)
                        Store (0x07, SFUN)
                        Return (ATPB)
                    }

                    Method (PX01, 0, NotSerialized)
                    {
                        CreateWordField (ATPB, Zero, SSZE)
                        CreateDWordField (ATPB, 0x02, VMSK)
                        CreateDWordField (ATPB, 0x06, FLGS)
                        Store (0x0A, SSZE)
                        Store (0x0F, VMSK)
                        Store (0x0B, FLGS)
                        Return (ATPB)
                    }

                    Method (PX02, 1, NotSerialized)
                    {
                        CreateWordField (ATPB, Zero, SSZE)
                        CreateByteField (ATPB, 0x02, PWST)
                        Store (0x03, SSZE)
                        And (Arg0, One, PWST)
                        If (PWST)
                        {
                            Store (One, PEGA)
                            Store (Zero, IGDS)
                            Store (Zero, GP16)
                            Store (Zero, GP36)
                            Sleep (0x64)
                            Store (One, GP36)
                            Sleep (0x64)
                            Store (One, GP16)
                            OSMI (0x92)
                            Sleep (0x64)
                            Store (0x1025, SVID)
                            Store (0x0488, SSID)
                            Store (0x1025, ^^VGA1.SVID)
                            Store (0x0488, ^^VGA1.SSID)
                            Store (0x43, D0LX)
                            Store (0x43, ^^VGA1.D1LX)
                            Store (Zero, X030)
                            Store (0x50, X034)
                            Store (Zero, X038)
                            Store (0x0110, X03C)
                        }
                        Else
                        {
                            Store (One, IGDS)
                            OSMI (0x93)
                            Store (Zero, GP16)
                            Store (Zero, GP36)
                            Store (Zero, PEGA)
                        }

                        Sleep (0x03E8)
                        Notify (P0P2, Zero)
                        Return (ATPB)
                    }

                    Method (PX03, 1, NotSerialized)
                    {
                        CreateWordField (ATPB, Zero, SSZE)
                        CreateWordField (ATPB, 0x02, DPSW)
                        Store (0x04, SSZE)
                        And (Arg0, One, DPSW)
                        If (DPSW)
                        {
                            Store (Zero, GP52)
                            Store (Zero, GP01)
                            Store (Zero, GP53)
                            Store (Zero, ^^^LPCB.EC0.DSPM)
                        }
                        Else
                        {
                            Store (One, GP52)
                            Store (One, GP01)
                            Store (One, GP53)
                            Store (One, ^^^LPCB.EC0.DSPM)
                            Store (Zero, ^^^LPCB.EC0.SKTB)
                            Store (Zero, ^^^LPCB.EC0.SKTA)
                        }

                        Return (ATPB)
                    }

                    Method (PX05, 1, NotSerialized)
                    {
                        CreateWordField (ATPB, Zero, SSZE)
                        CreateWordField (ATPB, 0x02, DPSS)
                        Store (Zero, SSZE)
                        And (Arg0, One, DPSS)
                        Return (ATPB)
                    }

                    Method (PX06, 1, NotSerialized)
                    {
                        CreateWordField (ATPB, Zero, SSZE)
                        CreateWordField (ATPB, 0x02, DPED)
                        Store (Zero, SSZE)
                        And (Arg0, One, DPED)
                        CMSW (0x3E, DPED)
                        If (LEqual (^^^WMID.BAEF, Zero))
                        {
                            If (LEqual (BKEY, One))
                            {
                                If (LEqual (DPED, Zero))
                                {
                                    Store (One, ^^^LPCB.EC0.BPWN)
                                }
                                Else
                                {
                                    Store (Zero, ^^^LPCB.EC0.BPWN)
                                }
                            }
                        }

                        Store (Zero, BKEY)
                        Return (ATPB)
                    }

                    Name (TVGA, Buffer (0xFC00)
                    {
                        0x00
                    })
                    Method (ATRM, 2, Serialized)
                    {
                        Add (Arg0, Arg1, Local0)
                        If (LLessEqual (Local0, SROM))
                        {
                            Multiply (Arg1, 0x08, Local1)
                            Multiply (Arg0, 0x08, Local2)
                            Store (VROM, TVGA)
                            CreateField (TVGA, Local2, Local1, TEMP)
                            Name (RETB, Buffer (Arg1) {})
                            Store (TEMP, RETB)
                            Return (RETB)
                        }
                        Else
                        {
                            If (LLess (Arg0, SROM))
                            {
                                Subtract (SROM, Arg0, Local3)
                                Multiply (Local3, 0x08, Local1)
                                Multiply (Arg0, 0x08, Local2)
                                Store (VROM, TVGA)
                                CreateField (TVGA, Local2, Local1, TEM)
                                Name (RETC, Buffer (Local3) {})
                                Store (TEM, RETC)
                                Return (RETC)
                            }
                            Else
                            {
                                Name (RETD, Buffer (One) {})
                                Return (RETD)
                            }
                        }
                    }

                    Name (ATIB, Buffer (0x0100) {})
                    Method (ATIF, 2, Serialized)
                    {
                        If (LEqual (Arg0, Zero))
                        {
                            Return (AF00 ())
                        }

                        If (LEqual (Arg0, One))
                        {
                            Return (AF01 ())
                        }

                        If (LEqual (Arg0, 0x02))
                        {
                            Return (AF02 ())
                        }

                        If (LEqual (Arg0, 0x03))
                        {
                            Return (AF03 (DerefOf (Index (Arg1, 0x02)), DerefOf (Index (Arg1, 
                                0x04))))
                        }
                        Else
                        {
                            CreateWordField (ATIB, Zero, SSZE)
                            CreateWordField (ATIB, 0x02, VERN)
                            CreateDWordField (ATIB, 0x04, NMSK)
                            CreateDWordField (ATIB, 0x08, SFUN)
                            Store (Zero, SSZE)
                            Store (Zero, VERN)
                            Store (Zero, NMSK)
                            Store (Zero, SFUN)
                            Return (ATIB)
                        }
                    }

                    Method (AF00, 0, NotSerialized)
                    {
                        CreateWordField (ATIB, Zero, SSZE)
                        CreateWordField (ATIB, 0x02, VERN)
                        CreateDWordField (ATIB, 0x04, NMSK)
                        CreateDWordField (ATIB, 0x08, SFUN)
                        Store (0x0C, SSZE)
                        Store (One, VERN)
                        Store (0x51, NMSK)
                        Store (0x51, NMSF)
                        Store (0x07, SFUN)
                        Return (ATIB)
                    }

                    Method (AF01, 0, NotSerialized)
                    {
                        CreateWordField (ATIB, Zero, SSZE)
                        CreateDWordField (ATIB, 0x02, VMSK)
                        CreateDWordField (ATIB, 0x06, FLGS)
                        Store (0x0A, SSZE)
                        Store (0x03, VMSK)
                        Store (One, FLGS)
                        Return (ATIB)
                    }

                    Name (PSBR, Buffer (0x04)
                    {
                        0x00, 0x00, 0x00, 0x00
                    })
                    Name (SEXM, Zero)
                    Name (STHG, Zero)
                    Name (STHI, Zero)
                    Name (SFPG, Zero)
                    Name (SFPI, Zero)
                    Name (SSPS, Zero)
                    Name (SSDM, 0x0A)
                    Name (SCDY, Zero)
                    Name (NMSF, Zero)
                    Name (SACC, Buffer (0x03)
                    {
                        0x01, 0x02, 0x03
                    })
                    Name (SACH, Buffer (0x03)
                    {
                        0x01, 0x08, 0x09
                    })
                    Name (SACT, Buffer (0x05)
                    {
                        0x01, 0x02, 0x08, 0x03, 0x09
                    })
                    Method (AF02, 0, NotSerialized)
                    {
                        CreateBitField (PSBR, Zero, PDSW)
                        CreateBitField (PSBR, One, PEXM)
                        CreateBitField (PSBR, 0x02, PTHR)
                        CreateBitField (PSBR, 0x03, PFPS)
                        CreateBitField (PSBR, 0x04, PSPS)
                        CreateBitField (PSBR, 0x05, PDCC)
                        CreateBitField (PSBR, 0x06, PDDS)
                        CreateWordField (ATIB, Zero, SSZE)
                        CreateDWordField (ATIB, 0x02, PSBI)
                        CreateByteField (ATIB, 0x06, EXPM)
                        CreateByteField (ATIB, 0x07, THRM)
                        CreateByteField (ATIB, 0x08, THID)
                        CreateByteField (ATIB, 0x09, FPWR)
                        CreateWordField (ATIB, 0x0A, FPID)
                        CreateWordField (ATIB, 0x0B, SPWR)
                        Store (0x0C, SSZE)
                        Store (PSBR, PSBI)
                        If (PDSW)
                        {
                            Store (Zero, PDSW)
                        }

                        If (PEXM)
                        {
                            Store (SEXM, EXPM)
                            Store (Zero, SEXM)
                            Store (Zero, PEXM)
                        }

                        If (PTHR)
                        {
                            Store (STHG, THRM)
                            Store (STHI, THID)
                            Store (Zero, STHG)
                            Store (Zero, STHI)
                            Store (Zero, PTHR)
                        }

                        If (PFPS)
                        {
                            Store (SFPG, FPWR)
                            Store (SFPI, FPID)
                            Store (Zero, SFPG)
                            Store (Zero, SFPI)
                            Store (Zero, PFPS)
                        }

                        If (PSPS)
                        {
                            Store (SSPS, SPWR)
                            Store (Zero, PSPS)
                        }

                        If (PDCC)
                        {
                            Store (Zero, PDCC)
                        }

                        If (PDDS)
                        {
                            Store (Zero, PDDS)
                        }

                        Return (ATIB)
                    }

                    Method (AF03, 2, NotSerialized)
                    {
                        Name (NXTD, Zero)
                        Name (INDX, Zero)
                        CreateWordField (ATIB, Zero, SSZE)
                        CreateWordField (ATIB, 0x02, SSDP)
                        CreateWordField (ATIB, 0x04, SCDP)
                        Store (Arg0, SSDP)
                        Store (Arg1, SCDP)
                        Store (SSDP, Local1)
                        And (Local1, 0x0B, Local1)
                        Store (SCDP, Local2)
                        Or (Local2, One, Local2)
                        Store (Zero, Local0)
                        Store (0x03, INDX)
                        If (LEqual (SCDP, 0x0B))
                        {
                            Store (0x05, INDX)
                        }

                        While (LLess (Local0, INDX))
                        {
                            If (LEqual (Local2, 0x03))
                            {
                                Store (DerefOf (Index (SACC, Local0)), Local3)
                            }
                            Else
                            {
                                If (LEqual (Local2, 0x09))
                                {
                                    Store (DerefOf (Index (SACH, Local0)), Local3)
                                }
                                Else
                                {
                                    Store (DerefOf (Index (SACT, Local0)), Local3)
                                }
                            }

                            If (LEqual (Local3, Local1))
                            {
                                Increment (Local0)
                                If (LEqual (Local0, INDX))
                                {
                                    Store (Zero, Local0)
                                }

                                Store (Local0, NXTD)
                                Store (INDX, Local0)
                            }
                            Else
                            {
                                Increment (Local0)
                            }
                        }

                        If (LEqual (NXTD, INDX))
                        {
                            Store (Zero, SSDP)
                        }
                        Else
                        {
                            Store (NXTD, Local0)
                            If (LEqual (Local2, 0x03))
                            {
                                Store (DerefOf (Index (SACC, Local0)), Local3)
                            }
                            Else
                            {
                                If (LEqual (Local2, 0x09))
                                {
                                    Store (DerefOf (Index (SACH, Local0)), Local3)
                                }
                                Else
                                {
                                    Store (DerefOf (Index (SACT, Local0)), Local3)
                                }
                            }

                            Store (Local3, SSDP)
                        }

                        Store (0x04, SSZE)
                        Return (ATIB)
                    }

                    Method (AFN0, 0, Serialized)
                    {
                        CreateBitField (PSBR, Zero, PDSW)
                        If (And (NMSF, One))
                        {
                            Store (One, PDSW)
                            Notify (VGA, 0x81)
                        }
                    }

                    Method (AFN1, 1, Serialized)
                    {
                        If (And (NMSF, 0x02))
                        {
                            Store (Arg0, Local0)
                            And (Local0, 0x03, Local0)
                            Store (Local0, SEXM)
                            CreateBitField (PSBR, One, PEXM)
                            Store (One, PEXM)
                            Notify (VGA, 0x81)
                        }
                    }

                    Method (AFN2, 2, Serialized)
                    {
                        If (And (NMSF, 0x04))
                        {
                            Store (Arg0, Local0)
                            Store (Local0, STHI)
                            Store (Arg1, Local0)
                            Store (And (Local0, 0x03, Local0), STHG)
                            CreateBitField (PSBR, 0x02, PTHR)
                            Store (One, PTHR)
                            Notify (VGA, 0x81)
                        }
                    }

                    Method (AFN3, 2, Serialized)
                    {
                        If (And (NMSF, 0x08))
                        {
                            Store (Arg0, Local0)
                            Store (Local0, SFPI)
                            Store (Arg1, Local0)
                            Store (And (Local0, 0x03, Local0), SFPG)
                            CreateBitField (PSBR, 0x03, PFPS)
                            Store (One, PFPS)
                            Notify (VGA, 0x81)
                        }
                    }

                    Method (AFN4, 1, Serialized)
                    {
                        If (And (NMSF, 0x10))
                        {
                            Store (Arg0, Local0)
                            Store (SSPS, Local1)
                            Store (Local0, SSPS)
                            CreateBitField (PSBR, 0x04, PSPS)
                            If (LNotEqual (Local0, Local1))
                            {
                                Store (One, PSPS)
                                Notify (VGA, 0x81)
                            }
                        }
                    }

                    Method (AFN5, 0, Serialized)
                    {
                        CreateBitField (PSBR, 0x05, PDCC)
                        If (And (NMSF, 0x20))
                        {
                            Store (One, PDCC)
                            Notify (VGA, 0x81)
                        }
                    }

                    Method (AFN6, 0, Serialized)
                    {
                        CreateBitField (PSBR, 0x06, PDDS)
                        If (And (NMSF, 0x40))
                        {
                            Store (One, PDDS)
                            Notify (VGA, 0x81)
                        }
                    }
                }
            }

            Device (P0P1)
            {
                Name (_ADR, 0x001E0000)
                Method (_PRW, 0, NotSerialized)
                {
                    If (WKPM)
                    {
                        Return (Package (0x02)
                        {
                            0x0B, 
                            0x04
                        })
                    }
                    Else
                    {
                        Return (Package (0x02)
                        {
                            0x0B, 
                            Zero
                        })
                    }
                }

                Method (_PRT, 0, NotSerialized)
                {
                    If (PICM)
                    {
                        Return (AR01)
                    }

                    Return (PR01)
                }
            }

            Device (LPCB)
            {
                Name (_ADR, 0x001F0000)
                Scope (\_SB)
                {
                    OperationRegion (PCI0.LPCB.LPC1, PCI_Config, 0x40, 0xC0)
                    Field (PCI0.LPCB.LPC1, AnyAcc, NoLock, Preserve)
                    {
                                Offset (0x20), 
                        PARC,   8, 
                        PBRC,   8, 
                        PCRC,   8, 
                        PDRC,   8, 
                                Offset (0x28), 
                        PERC,   8, 
                        PFRC,   8, 
                        PGRC,   8, 
                        PHRC,   8
                    }

                    Device (LNKA)
                    {
                        Name (_HID, EisaId ("PNP0C0F"))
                        Name (_UID, One)
                        Method (_DIS, 0, Serialized)
                        {
                            Or (PARC, 0x80, PARC)
                        }

                        Name (_PRS, ResourceTemplate ()
                        {
                            IRQ (Level, ActiveLow, Shared, )
                                {1,3,4,5,6,7,10,12,14,15}
                        })
                        Method (_CRS, 0, Serialized)
                        {
                            Name (RTLA, ResourceTemplate ()
                            {
                                IRQ (Level, ActiveLow, Shared, )
                                    {}
                            })
                            CreateWordField (RTLA, One, IRQ0)
                            Store (Zero, IRQ0)
                            ShiftLeft (One, And (PARC, 0x0F), IRQ0)
                            Return (RTLA)
                        }

                        Method (_SRS, 1, Serialized)
                        {
                            CreateWordField (Arg0, One, IRQ0)
                            FindSetRightBit (IRQ0, Local0)
                            Decrement (Local0)
                            Store (Local0, PARC)
                        }

                        Method (_STA, 0, Serialized)
                        {
                            If (And (PARC, 0x80))
                            {
                                Return (0x09)
                            }
                            Else
                            {
                                Return (0x0B)
                            }
                        }
                    }

                    Device (LNKB)
                    {
                        Name (_HID, EisaId ("PNP0C0F"))
                        Name (_UID, 0x02)
                        Method (_DIS, 0, Serialized)
                        {
                            Or (PBRC, 0x80, PBRC)
                        }

                        Name (_PRS, ResourceTemplate ()
                        {
                            IRQ (Level, ActiveLow, Shared, )
                                {1,3,4,5,6,7,11,12,14,15}
                        })
                        Method (_CRS, 0, Serialized)
                        {
                            Name (RTLB, ResourceTemplate ()
                            {
                                IRQ (Level, ActiveLow, Shared, )
                                    {}
                            })
                            CreateWordField (RTLB, One, IRQ0)
                            Store (Zero, IRQ0)
                            ShiftLeft (One, And (PBRC, 0x0F), IRQ0)
                            Return (RTLB)
                        }

                        Method (_SRS, 1, Serialized)
                        {
                            CreateWordField (Arg0, One, IRQ0)
                            FindSetRightBit (IRQ0, Local0)
                            Decrement (Local0)
                            Store (Local0, PBRC)
                        }

                        Method (_STA, 0, Serialized)
                        {
                            If (And (PBRC, 0x80))
                            {
                                Return (0x09)
                            }
                            Else
                            {
                                Return (0x0B)
                            }
                        }
                    }

                    Device (LNKC)
                    {
                        Name (_HID, EisaId ("PNP0C0F"))
                        Name (_UID, 0x03)
                        Method (_DIS, 0, Serialized)
                        {
                            Or (PCRC, 0x80, PCRC)
                        }

                        Name (_PRS, ResourceTemplate ()
                        {
                            IRQ (Level, ActiveLow, Shared, )
                                {1,3,4,5,6,7,10,12,14,15}
                        })
                        Method (_CRS, 0, Serialized)
                        {
                            Name (RTLC, ResourceTemplate ()
                            {
                                IRQ (Level, ActiveLow, Shared, )
                                    {}
                            })
                            CreateWordField (RTLC, One, IRQ0)
                            Store (Zero, IRQ0)
                            ShiftLeft (One, And (PCRC, 0x0F), IRQ0)
                            Return (RTLC)
                        }

                        Method (_SRS, 1, Serialized)
                        {
                            CreateWordField (Arg0, One, IRQ0)
                            FindSetRightBit (IRQ0, Local0)
                            Decrement (Local0)
                            Store (Local0, PCRC)
                        }

                        Method (_STA, 0, Serialized)
                        {
                            If (And (PCRC, 0x80))
                            {
                                Return (0x09)
                            }
                            Else
                            {
                                Return (0x0B)
                            }
                        }
                    }

                    Device (LNKD)
                    {
                        Name (_HID, EisaId ("PNP0C0F"))
                        Name (_UID, 0x04)
                        Method (_DIS, 0, Serialized)
                        {
                            Or (PDRC, 0x80, PDRC)
                        }

                        Name (_PRS, ResourceTemplate ()
                        {
                            IRQ (Level, ActiveLow, Shared, )
                                {1,3,4,5,6,7,11,12,14,15}
                        })
                        Method (_CRS, 0, Serialized)
                        {
                            Name (RTLD, ResourceTemplate ()
                            {
                                IRQ (Level, ActiveLow, Shared, )
                                    {}
                            })
                            CreateWordField (RTLD, One, IRQ0)
                            Store (Zero, IRQ0)
                            ShiftLeft (One, And (PDRC, 0x0F), IRQ0)
                            Return (RTLD)
                        }

                        Method (_SRS, 1, Serialized)
                        {
                            CreateWordField (Arg0, One, IRQ0)
                            FindSetRightBit (IRQ0, Local0)
                            Decrement (Local0)
                            Store (Local0, PDRC)
                        }

                        Method (_STA, 0, Serialized)
                        {
                            If (And (PDRC, 0x80))
                            {
                                Return (0x09)
                            }
                            Else
                            {
                                Return (0x0B)
                            }
                        }
                    }

                    Device (LNKE)
                    {
                        Name (_HID, EisaId ("PNP0C0F"))
                        Name (_UID, 0x05)
                        Method (_DIS, 0, Serialized)
                        {
                            Or (PERC, 0x80, PERC)
                        }

                        Name (_PRS, ResourceTemplate ()
                        {
                            IRQ (Level, ActiveLow, Shared, )
                                {1,3,4,5,6,7,10,12,14,15}
                        })
                        Method (_CRS, 0, Serialized)
                        {
                            Name (RTLE, ResourceTemplate ()
                            {
                                IRQ (Level, ActiveLow, Shared, )
                                    {}
                            })
                            CreateWordField (RTLE, One, IRQ0)
                            Store (Zero, IRQ0)
                            ShiftLeft (One, And (PERC, 0x0F), IRQ0)
                            Return (RTLE)
                        }

                        Method (_SRS, 1, Serialized)
                        {
                            CreateWordField (Arg0, One, IRQ0)
                            FindSetRightBit (IRQ0, Local0)
                            Decrement (Local0)
                            Store (Local0, PERC)
                        }

                        Method (_STA, 0, Serialized)
                        {
                            If (And (PERC, 0x80))
                            {
                                Return (0x09)
                            }
                            Else
                            {
                                Return (0x0B)
                            }
                        }
                    }

                    Device (LNKF)
                    {
                        Name (_HID, EisaId ("PNP0C0F"))
                        Name (_UID, 0x06)
                        Method (_DIS, 0, Serialized)
                        {
                            Or (PFRC, 0x80, PFRC)
                        }

                        Name (_PRS, ResourceTemplate ()
                        {
                            IRQ (Level, ActiveLow, Shared, )
                                {1,3,4,5,6,7,11,12,14,15}
                        })
                        Method (_CRS, 0, Serialized)
                        {
                            Name (RTLF, ResourceTemplate ()
                            {
                                IRQ (Level, ActiveLow, Shared, )
                                    {}
                            })
                            CreateWordField (RTLF, One, IRQ0)
                            Store (Zero, IRQ0)
                            ShiftLeft (One, And (PFRC, 0x0F), IRQ0)
                            Return (RTLF)
                        }

                        Method (_SRS, 1, Serialized)
                        {
                            CreateWordField (Arg0, One, IRQ0)
                            FindSetRightBit (IRQ0, Local0)
                            Decrement (Local0)
                            Store (Local0, PFRC)
                        }

                        Method (_STA, 0, Serialized)
                        {
                            If (And (PFRC, 0x80))
                            {
                                Return (0x09)
                            }
                            Else
                            {
                                Return (0x0B)
                            }
                        }
                    }

                    Device (LNKG)
                    {
                        Name (_HID, EisaId ("PNP0C0F"))
                        Name (_UID, 0x07)
                        Method (_DIS, 0, Serialized)
                        {
                            Or (PGRC, 0x80, PGRC)
                        }

                        Name (_PRS, ResourceTemplate ()
                        {
                            IRQ (Level, ActiveLow, Shared, )
                                {1,3,4,5,6,7,10,12,14,15}
                        })
                        Method (_CRS, 0, Serialized)
                        {
                            Name (RTLG, ResourceTemplate ()
                            {
                                IRQ (Level, ActiveLow, Shared, )
                                    {}
                            })
                            CreateWordField (RTLG, One, IRQ0)
                            Store (Zero, IRQ0)
                            ShiftLeft (One, And (PGRC, 0x0F), IRQ0)
                            Return (RTLG)
                        }

                        Method (_SRS, 1, Serialized)
                        {
                            CreateWordField (Arg0, One, IRQ0)
                            FindSetRightBit (IRQ0, Local0)
                            Decrement (Local0)
                            Store (Local0, PGRC)
                        }

                        Method (_STA, 0, Serialized)
                        {
                            If (And (PGRC, 0x80))
                            {
                                Return (0x09)
                            }
                            Else
                            {
                                Return (0x0B)
                            }
                        }
                    }

                    Device (LNKH)
                    {
                        Name (_HID, EisaId ("PNP0C0F"))
                        Name (_UID, 0x08)
                        Method (_DIS, 0, Serialized)
                        {
                            Or (PHRC, 0x80, PHRC)
                        }

                        Name (_PRS, ResourceTemplate ()
                        {
                            IRQ (Level, ActiveLow, Shared, )
                                {1,3,4,5,6,7,11,12,14,15}
                        })
                        Method (_CRS, 0, Serialized)
                        {
                            Name (RTLH, ResourceTemplate ()
                            {
                                IRQ (Level, ActiveLow, Shared, )
                                    {}
                            })
                            CreateWordField (RTLH, One, IRQ0)
                            Store (Zero, IRQ0)
                            ShiftLeft (One, And (PHRC, 0x0F), IRQ0)
                            Return (RTLH)
                        }

                        Method (_SRS, 1, Serialized)
                        {
                            CreateWordField (Arg0, One, IRQ0)
                            FindSetRightBit (IRQ0, Local0)
                            Decrement (Local0)
                            Store (Local0, PHRC)
                        }

                        Method (_STA, 0, Serialized)
                        {
                            If (And (PHRC, 0x80))
                            {
                                Return (0x09)
                            }
                            Else
                            {
                                Return (0x0B)
                            }
                        }
                    }
                }

                OperationRegion (LPC0, PCI_Config, 0x40, 0xC0)
                Field (LPC0, AnyAcc, NoLock, Preserve)
                {
                            Offset (0x40), 
                    IOD0,   8, 
                    IOD1,   8, 
                            Offset (0xB0), 
                    RAEN,   1, 
                        ,   13, 
                    RCBA,   18
                }

                Device (BAT0)
                {
                    Name (_HID, EisaId ("PNP0C0A"))
                    Name (_UID, One)
                    Name (_PCL, Package (0x01)
                    {
                        _SB
                    })
                    Name (PBIF, Package (0x0D)
                    {
                        One, 
                        0x0FA0, 
                        0x0FA0, 
                        One, 
                        0x39D0, 
                        0x0190, 
                        0x78, 
                        0x0108, 
                        0x0EC4, 
                        "Li_Ion_4000mA ", 
                        "1234", 
                        "Lion", 
                        "Acer "
                    })
                    Name (PBST, Package (0x04)
                    {
                        One, 
                        0xFFFFFFFF, 
                        0xFFFFFFFF, 
                        0x39D0
                    })
                    Method (_STA, 0, NotSerialized)
                    {
                        If (ECON)
                        {
                            If (^^EC0.BAL1)
                            {
                                Sleep (0xC8)
                                Return (0x1F)
                            }
                            Else
                            {
                                Sleep (0xC8)
                                Return (0x0F)
                            }
                        }
                        Else
                        {
                            Sleep (0xC8)
                            Return (0x1F)
                        }
                    }

                    Method (_BIF, 0, NotSerialized)
                    {
                        If (ECON)
                        {
                            Sleep (0x64)
                            Store (^^EC0.BDC0, Index (PBIF, One))
                            Sleep (0x64)
                            Store (^^EC0.BFC0, Index (PBIF, 0x02))
                            Sleep (0x64)
                            Store (^^EC0.BDV0, Index (PBIF, 0x04))
                            Sleep (0x64)
                            Store (^^EC0.BDC0, Local2)
                            Divide (Local2, 0x64, Local6, Local2)
                            Multiply (Local2, 0x05, Local3)
                            Store (Local3, Index (PBIF, 0x05))
                            Multiply (Local2, 0x03, Local4)
                            Store (Local4, Index (PBIF, 0x06))
                            Sleep (0x64)
                            If (LGreaterEqual (OSYS, 0x07D6))
                            {
                                ToHexString (^^EC0.BSN0, Local2)
                                Mid (Local2, 0x02, 0x04, Local3)
                                Store (Local3, Index (PBIF, 0x0A))
                                Sleep (0x64)
                            }

                            Store (^^EC0.BTMF, Local1)
                            Sleep (0x64)
                            If (LEqual (Local1, One))
                            {
                                Store ("SANYO ", Index (PBIF, 0x0C))
                            }
                            Else
                            {
                                If (LEqual (Local1, 0x02))
                                {
                                    Store ("SONY ", Index (PBIF, 0x0C))
                                }
                                Else
                                {
                                    If (LEqual (Local1, 0x04))
                                    {
                                        Store ("PANASONIC ", Index (PBIF, 0x0C))
                                    }
                                    Else
                                    {
                                        If (LEqual (Local1, 0x03))
                                        {
                                            Store ("Simplo ", Index (PBIF, 0x0C))
                                        }
                                        Else
                                        {
                                            Store ("COMPAL ", Index (PBIF, 0x0C))
                                        }
                                    }
                                }
                            }
                        }

                        Return (PBIF)
                    }

                    Method (_BST, 0, NotSerialized)
                    {
                        If (ECON)
                        {
                            Sleep (0x64)
                            Store (^^EC0.BST0, Local0)
                            And (Local0, 0x07, Local0)
                            Store (Local0, Index (PBST, Zero))
                            Sleep (0x64)
                            Store (^^EC0.GAU0, Local2)
                            Sleep (0x64)
                            Store (^^EC0.BPV0, Local3)
                            Sleep (0x64)
                            Store (^^EC0.BFC0, Local1)
                            Sleep (0x64)
                            If (Local2)
                            {
                                Multiply (Local2, Local1, Local2)
                                Divide (Local2, 0x64, Local6, Local2)
                                If (Local6)
                                {
                                    Increment (Local2)
                                }
                            }

                            Store (^^EC0.BAC0, Local1)
                            If (And (Local1, 0x8000, Local1))
                            {
                                Store (^^EC0.BAC0, Local1)
                                Subtract (0xFFFF, Local1, Local1)
                            }
                            Else
                            {
                                Store (Zero, Local1)
                            }

                            Sleep (0x64)
                            Store (Local1, Index (PBST, One))
                            Store (Local2, Index (PBST, 0x02))
                            Store (Local3, Index (PBST, 0x03))
                        }

                        Return (PBST)
                    }
                }

                Device (AC)
                {
                    Name (_HID, "ACPI0003")
                    Name (_PCL, Package (0x01)
                    {
                        _SB
                    })
                    Method (_PSR, 0, NotSerialized)
                    {
                        If (ECON)
                        {
                            Store (^^EC0.ADPT, PWRS)
                            Sleep (0x01F4)
                        }

                        Return (PWRS)
                    }
                }

                Device (PWRB)
                {
                    Name (_HID, EisaId ("PNP0C0C"))
                }

                Device (LID0)
                {
                    Name (_HID, EisaId ("PNP0C0D"))
                    Method (_LID, 0, NotSerialized)
                    {
                        Return (LPDL)
                    }
                }

                Device (SLPB)
                {
                    Name (_HID, EisaId ("PNP0C0E"))
                }

                Device (DMAC)
                {
                    Name (_HID, EisaId ("PNP0200"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0000,             // Range Minimum
                            0x0000,             // Range Maximum
                            0x01,               // Alignment
                            0x20,               // Length
                            )
                        IO (Decode16,
                            0x0081,             // Range Minimum
                            0x0081,             // Range Maximum
                            0x01,               // Alignment
                            0x11,               // Length
                            )
                        IO (Decode16,
                            0x0093,             // Range Minimum
                            0x0093,             // Range Maximum
                            0x01,               // Alignment
                            0x0D,               // Length
                            )
                        IO (Decode16,
                            0x00C0,             // Range Minimum
                            0x00C0,             // Range Maximum
                            0x01,               // Alignment
                            0x20,               // Length
                            )
                        DMA (Compatibility, NotBusMaster, Transfer8_16, )
                            {4}
                    })
                }

                Device (FWHD)
                {
                    Name (_HID, EisaId ("INT0800"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        Memory32Fixed (ReadOnly,
                            0xFF000000,         // Address Base
                            0x01000000,         // Address Length
                            )
                    })
                }

                Device (HPET)
                {
                    Name (_HID, EisaId ("PNP0103"))
                    Name (_UID, Zero)
                    Name (BUF0, ResourceTemplate ()
                    {
                        Memory32Fixed (ReadWrite,
                            0xFED00000,         // Address Base
                            0x00000400,         // Address Length
                            )
                    })
                    Method (_STA, 0, NotSerialized)
                    {
                        If (LGreaterEqual (OSYS, 0x07D1))
                        {
                            If (HPAE)
                            {
                                Return (0x0F)
                            }
                        }
                        Else
                        {
                            If (HPAE)
                            {
                                Return (0x0B)
                            }
                        }

                        Return (Zero)
                    }

                    Method (_CRS, 0, Serialized)
                    {
                        If (HPAE)
                        {
                            CreateDWordField (BUF0, 0x04, HPT0)
                            If (LEqual (HPAS, One))
                            {
                                Store (0xFED01000, HPT0)
                            }

                            If (LEqual (HPAS, 0x02))
                            {
                                Store (0xFED02000, HPT0)
                            }

                            If (LEqual (HPAS, 0x03))
                            {
                                Store (0xFED03000, HPT0)
                            }
                        }

                        Return (BUF0)
                    }
                }

                Device (IPIC)
                {
                    Name (_HID, EisaId ("PNP0000"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0020,             // Range Minimum
                            0x0020,             // Range Maximum
                            0x01,               // Alignment
                            0x02,               // Length
                            )
                        IO (Decode16,
                            0x0024,             // Range Minimum
                            0x0024,             // Range Maximum
                            0x01,               // Alignment
                            0x02,               // Length
                            )
                        IO (Decode16,
                            0x0028,             // Range Minimum
                            0x0028,             // Range Maximum
                            0x01,               // Alignment
                            0x02,               // Length
                            )
                        IO (Decode16,
                            0x002C,             // Range Minimum
                            0x002C,             // Range Maximum
                            0x01,               // Alignment
                            0x02,               // Length
                            )
                        IO (Decode16,
                            0x0030,             // Range Minimum
                            0x0030,             // Range Maximum
                            0x01,               // Alignment
                            0x02,               // Length
                            )
                        IO (Decode16,
                            0x0034,             // Range Minimum
                            0x0034,             // Range Maximum
                            0x01,               // Alignment
                            0x02,               // Length
                            )
                        IO (Decode16,
                            0x0038,             // Range Minimum
                            0x0038,             // Range Maximum
                            0x01,               // Alignment
                            0x02,               // Length
                            )
                        IO (Decode16,
                            0x003C,             // Range Minimum
                            0x003C,             // Range Maximum
                            0x01,               // Alignment
                            0x02,               // Length
                            )
                        IO (Decode16,
                            0x00A0,             // Range Minimum
                            0x00A0,             // Range Maximum
                            0x01,               // Alignment
                            0x02,               // Length
                            )
                        IO (Decode16,
                            0x00A4,             // Range Minimum
                            0x00A4,             // Range Maximum
                            0x01,               // Alignment
                            0x02,               // Length
                            )
                        IO (Decode16,
                            0x00A8,             // Range Minimum
                            0x00A8,             // Range Maximum
                            0x01,               // Alignment
                            0x02,               // Length
                            )
                        IO (Decode16,
                            0x00AC,             // Range Minimum
                            0x00AC,             // Range Maximum
                            0x01,               // Alignment
                            0x02,               // Length
                            )
                        IO (Decode16,
                            0x00B0,             // Range Minimum
                            0x00B0,             // Range Maximum
                            0x01,               // Alignment
                            0x02,               // Length
                            )
                        IO (Decode16,
                            0x00B4,             // Range Minimum
                            0x00B4,             // Range Maximum
                            0x01,               // Alignment
                            0x02,               // Length
                            )
                        IO (Decode16,
                            0x00B8,             // Range Minimum
                            0x00B8,             // Range Maximum
                            0x01,               // Alignment
                            0x02,               // Length
                            )
                        IO (Decode16,
                            0x00BC,             // Range Minimum
                            0x00BC,             // Range Maximum
                            0x01,               // Alignment
                            0x02,               // Length
                            )
                        IO (Decode16,
                            0x04D0,             // Range Minimum
                            0x04D0,             // Range Maximum
                            0x01,               // Alignment
                            0x02,               // Length
                            )
                        IRQNoFlags ()
                            {2}
                    })
                }

                Device (MATH)
                {
                    Name (_HID, EisaId ("PNP0C04"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x00F0,             // Range Minimum
                            0x00F0,             // Range Maximum
                            0x01,               // Alignment
                            0x01,               // Length
                            )
                        IRQNoFlags ()
                            {13}
                    })
                }

                Device (LDRC)
                {
                    Name (_HID, EisaId ("PNP0C02"))
                    Name (_UID, 0x02)
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x002E,             // Range Minimum
                            0x002E,             // Range Maximum
                            0x01,               // Alignment
                            0x02,               // Length
                            )
                        IO (Decode16,
                            0x004E,             // Range Minimum
                            0x004E,             // Range Maximum
                            0x01,               // Alignment
                            0x02,               // Length
                            )
                        IO (Decode16,
                            0x0061,             // Range Minimum
                            0x0061,             // Range Maximum
                            0x01,               // Alignment
                            0x01,               // Length
                            )
                        IO (Decode16,
                            0x0063,             // Range Minimum
                            0x0063,             // Range Maximum
                            0x01,               // Alignment
                            0x01,               // Length
                            )
                        IO (Decode16,
                            0x0065,             // Range Minimum
                            0x0065,             // Range Maximum
                            0x01,               // Alignment
                            0x01,               // Length
                            )
                        IO (Decode16,
                            0x0067,             // Range Minimum
                            0x0067,             // Range Maximum
                            0x01,               // Alignment
                            0x01,               // Length
                            )
                        IO (Decode16,
                            0x0068,             // Range Minimum
                            0x0068,             // Range Maximum
                            0x01,               // Alignment
                            0x01,               // Length
                            )
                        IO (Decode16,
                            0x006C,             // Range Minimum
                            0x006C,             // Range Maximum
                            0x01,               // Alignment
                            0x01,               // Length
                            )
                        IO (Decode16,
                            0x0070,             // Range Minimum
                            0x0070,             // Range Maximum
                            0x01,               // Alignment
                            0x01,               // Length
                            )
                        IO (Decode16,
                            0x0080,             // Range Minimum
                            0x0080,             // Range Maximum
                            0x01,               // Alignment
                            0x01,               // Length
                            )
                        IO (Decode16,
                            0x0092,             // Range Minimum
                            0x0092,             // Range Maximum
                            0x01,               // Alignment
                            0x01,               // Length
                            )
                        IO (Decode16,
                            0x00B2,             // Range Minimum
                            0x00B2,             // Range Maximum
                            0x01,               // Alignment
                            0x02,               // Length
                            )
                        IO (Decode16,
                            0x0680,             // Range Minimum
                            0x0680,             // Range Maximum
                            0x01,               // Alignment
                            0x20,               // Length
                            )
                        IO (Decode16,
                            0xFF2C,             // Range Minimum
                            0xFF2C,             // Range Maximum
                            0x01,               // Alignment
                            0x04,               // Length
                            )
                        IO (Decode16,
                            0x0800,             // Range Minimum
                            0x0800,             // Range Maximum
                            0x01,               // Alignment
                            0x10,               // Length
                            )
                        IO (Decode16,
                            0xFFFF,             // Range Minimum
                            0xFFFF,             // Range Maximum
                            0x01,               // Alignment
                            0x01,               // Length
                            )
                        IO (Decode16,
                            0xFFFF,             // Range Minimum
                            0xFFFF,             // Range Maximum
                            0x01,               // Alignment
                            0x01,               // Length
                            )
                        IO (Decode16,
                            0x0400,             // Range Minimum
                            0x0400,             // Range Maximum
                            0x01,               // Alignment
                            0x80,               // Length
                            )
                        IO (Decode16,
                            0x0500,             // Range Minimum
                            0x0500,             // Range Maximum
                            0x01,               // Alignment
                            0x80,               // Length
                            )
                        IO (Decode16,
                            0x164E,             // Range Minimum
                            0x164E,             // Range Maximum
                            0x01,               // Alignment
                            0x02,               // Length
                            )
                    })
                }

                Device (RTC)
                {
                    Name (_HID, EisaId ("PNP0B00"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0070,             // Range Minimum
                            0x0070,             // Range Maximum
                            0x01,               // Alignment
                            0x08,               // Length
                            )
                        IRQNoFlags ()
                            {8}
                    })
                }

                Device (TIMR)
                {
                    Name (_HID, EisaId ("PNP0100"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0040,             // Range Minimum
                            0x0040,             // Range Maximum
                            0x01,               // Alignment
                            0x04,               // Length
                            )
                        IO (Decode16,
                            0x0050,             // Range Minimum
                            0x0050,             // Range Maximum
                            0x10,               // Alignment
                            0x04,               // Length
                            )
                        IRQNoFlags ()
                            {0}
                    })
                }

                Device (EC0)
                {
                    Name (_HID, EisaId ("PNP0C09"))
                    Name (_UID, One)
                    Name (_GPE, 0x17)
                    Name (BKFG, Zero)
                    Method (_CRS, 0, NotSerialized)
                    {
                        Name (BFFR, ResourceTemplate ()
                        {
                            IO (Decode16,
                                0x0062,             // Range Minimum
                                0x0062,             // Range Maximum
                                0x00,               // Alignment
                                0x01,               // Length
                                )
                            IO (Decode16,
                                0x0066,             // Range Minimum
                                0x0066,             // Range Maximum
                                0x00,               // Alignment
                                0x01,               // Length
                                )
                        })
                        Return (BFFR)
                    }

                    Name (_ADR, 0x00020000)
                    OperationRegion (HDCS, PCI_Config, Zero, One)
                    Field (HDCS, ByteAcc, NoLock, Preserve)
                    {
                        OBV,    8
                    }

                    OperationRegion (ERAM, EmbeddedControl, Zero, 0xFF)
                    Field (ERAM, ByteAcc, Lock, Preserve)
                    {
                            ,   3, 
                        LANC,   1, 
                        BPWN,   1, 
                                Offset (0x01), 
                        BTNN,   8, 
                                Offset (0x03), 
                        LMEN,   1, 
                                Offset (0x08), 
                        DSPM,   1, 
                                Offset (0x19), 
                        BATD,   56, 
                                Offset (0x60), 
                        SMPR,   8, 
                        SMST,   8, 
                        SMAD,   8, 
                        SMCM,   8, 
                        SMDR,   32, 
                        BCNT,   8, 
                        SMAA,   8, 
                        SMD0,   8, 
                        SMD1,   8, 
                                Offset (0x90), 
                                Offset (0x91), 
                                Offset (0x92), 
                                Offset (0x93), 
                                Offset (0x94), 
                        ERIB,   16, 
                        ERBD,   8, 
                                Offset (0x98), 
                                Offset (0x99), 
                        OSIF,   1, 
                                Offset (0x9A), 
                        BAL1,   1, 
                        BAL2,   1, 
                        BAL3,   1, 
                        BAL4,   1, 
                        BCL1,   1, 
                        BCL2,   1, 
                        BCL3,   1, 
                        BCL4,   1, 
                        BPU1,   1, 
                        BPU2,   1, 
                        BPU3,   1, 
                        BPU4,   1, 
                        BOS1,   1, 
                        BOS2,   1, 
                        BOS3,   1, 
                        BOS4,   1, 
                        PHDD,   1, 
                        IFDD,   1, 
                        IODD,   1, 
                        SHDD,   1, 
                        LS20,   1, 
                        EFDD,   1, 
                        ECRT,   1, 
                                Offset (0x9D), 
                        SBTN,   1, 
                        VIDO,   1, 
                        VOLD,   1, 
                        VOLU,   1, 
                        MUTE,   1, 
                        CONT,   1, 
                        BRGT,   1, 
                        HBTN,   1, 
                        S4SE,   1, 
                        SKEY,   1, 
                        BKEY,   1, 
                        TKEY,   1, 
                        FKEY,   1, 
                        DVDM,   1, 
                        DIGM,   1, 
                        CDLK,   1, 
                            ,   1, 
                        LIDO,   1, 
                        PMEE,   1, 
                        PBET,   1, 
                        RIIN,   1, 
                        BTWK,   1, 
                        DKIN,   1, 
                                Offset (0xA0), 
                            ,   6, 
                        SWTH,   1, 
                        HWTH,   1, 
                        DKT0,   1, 
                        DKT1,   1, 
                            ,   2, 
                        OSUD,   1, 
                        OSDK,   1, 
                        OSSU,   1, 
                        DKCG,   1, 
                        ODTS,   8, 
                        S1LD,   1, 
                        S3LD,   1, 
                        VGAQ,   1, 
                        PCMQ,   1, 
                        PCMR,   1, 
                        ADPT,   1, 
                        SYS6,   1, 
                        SYS7,   1, 
                        PWAK,   1, 
                        MWAK,   1, 
                        LWAK,   1, 
                        RWAK,   1, 
                            ,   2, 
                        KWAK,   1, 
                        MSWK,   1, 
                        CCAC,   1, 
                        AOAC,   1, 
                        BLAC,   1, 
                        PSRC,   1, 
                        BOAC,   1, 
                        LCAC,   1, 
                        AAAC,   1, 
                        ACAC,   1, 
                        PCEC,   8, 
                        THON,   8, 
                        THSD,   8, 
                        THEM,   8, 
                        TCNL,   8, 
                        THRS,   8, 
                        THSE,   8, 
                        FSSN,   4, 
                        FANU,   4, 
                        PTVL,   3, 
                            ,   3, 
                        TTSR,   1, 
                        TTHR,   1, 
                        TSTH,   1, 
                        TSBC,   1, 
                        TSBF,   1, 
                        TSPL,   1, 
                        TSBT,   1, 
                            ,   2, 
                        THTA,   1, 
                        CTMP,   8, 
                        LTMP,   8, 
                        SKTA,   8, 
                        SKTB,   8, 
                        SKTC,   8, 
                        SKTD,   8, 
                        NBTP,   8, 
                        LANP,   1, 
                        LCDS,   1, 
                                Offset (0xB8), 
                        BTPV,   8, 
                        BRTS,   8, 
                        CTRS,   8, 
                        WLAT,   1, 
                        BTAT,   1, 
                        WLEX,   1, 
                        BTEX,   1, 
                        KLSW,   1, 
                        WLOK,   1, 
                        D3GT,   1, 
                        D3GX,   1, 
                        PJID,   8, 
                        CPUN,   8, 
                        THFN,   8, 
                        MLED,   1, 
                        SCHG,   1, 
                        SCCF,   1, 
                        SCPF,   1, 
                        ACIS,   1, 
                                Offset (0xC0), 
                            ,   4, 
                        BTMF,   3, 
                        BTY0,   1, 
                        BST0,   8, 
                        BRC0,   16, 
                        BSN0,   16, 
                        BPV0,   16, 
                        BDV0,   16, 
                        BDC0,   16, 
                        BFC0,   16, 
                        GAU0,   8, 
                        BSCY,   8, 
                        BSCU,   16, 
                        BAC0,   16, 
                        BTW0,   8, 
                        BATV,   8, 
                        BPTC,   8, 
                        BTTC,   8, 
                        BTMA,   16, 
                        BTSC,   8, 
                        BCIX,   8, 
                        CCBA,   8, 
                        CBOT,   8, 
                        BTSS,   16, 
                        OVCC,   8, 
                        CCFC,   8, 
                        BADC,   8, 
                        BSC1,   16, 
                        BSC2,   16, 
                        BSC3,   16, 
                        BSC4,   16, 
                        BDME,   16, 
                                Offset (0xEE), 
                                Offset (0xEF), 
                                Offset (0xF0), 
                        BTS1,   8, 
                        BTS2,   8, 
                        BSCS,   16, 
                        BDAD,   16, 
                        BACV,   16, 
                                Offset (0xF9), 
                        BATM,   16
                    }

                    OperationRegion (CCLK, SystemIO, 0x0410, 0x04)
                    Field (CCLK, DWordAcc, NoLock, Preserve)
                    {
                            ,   1, 
                        DUTY,   3, 
                        THEN,   1, 
                                Offset (0x01), 
                        FTT,    1, 
                            ,   8, 
                        TSTS,   1
                    }

                    Mutex (FAMX, 0x00)
                    Method (FANG, 1, NotSerialized)
                    {
                        Acquire (FAMX, 0xFFFF)
                        Store (Arg0, ERIB)
                        Store (ERBD, Local0)
                        Release (FAMX)
                        Return (Local0)
                    }

                    Method (FANW, 2, NotSerialized)
                    {
                        Acquire (FAMX, 0xFFFF)
                        Store (Arg0, ERIB)
                        Store (Arg1, ERBD)
                        Release (FAMX)
                        Return (Arg1)
                    }

                    Method (TUVR, 1, NotSerialized)
                    {
                        Return (0x03)
                    }

                    Method (THRO, 1, NotSerialized)
                    {
                        If (LEqual (Arg0, Zero))
                        {
                            Return (TTHR)
                        }
                        Else
                        {
                            If (LEqual (Arg0, One))
                            {
                                Return (PTVL)
                            }
                            Else
                            {
                                If (LEqual (Arg0, 0x02))
                                {
                                    Return (TTHR)
                                }
                                Else
                                {
                                    Return (0xFF)
                                }
                            }
                        }
                    }

                    Method (CLCK, 1, NotSerialized)
                    {
                        If (LEqual (Arg0, Zero))
                        {
                            Store (Zero, THEN)
                        }
                        Else
                        {
                            Store (Arg0, DUTY)
                            Store (One, THEN)
                        }

                        Return (THEN)
                    }

                    Method (PCLK, 0, NotSerialized)
                    {
                        Store (PTVL, Local0)
                        If (LEqual (Local0, Zero))
                        {
                            Store (Zero, THEN)
                        }
                        Else
                        {
                            Not (Local0, Local0)
                            Add (Local0, One, Local0)
                            And (Local0, 0x07, Local0)
                            Store (Local0, DUTY)
                            If (LEqual (Local0, Zero))
                            {
                                Store (Zero, THEN)
                            }
                            Else
                            {
                                Store (One, THEN)
                            }
                        }
                    }

                    Method (_REG, 2, NotSerialized)
                    {
                        If (LEqual (Arg0, 0x03))
                        {
                            Store (Arg1, ECON)
                            If (LIDO)
                            {
                                ^^^GFX0.GLID (Zero)
                            }
                            Else
                            {
                                ^^^GFX0.GLID (One)
                            }

                            ^^^GFX0.GLID (One)
                        }
                    }

                    Method (_Q11, 0, NotSerialized)
                    {
                        If (LGreaterEqual (OSYS, 0x07D6))
                        {
                            If (LEqual (OBV, 0xFF))
                            {
                                Notify (^^^P0P2.VGA.LCD, 0x87)
                            }
                            Else
                            {
                                ^^^P0P2.VGA.PLAT ()
                                If (LEqual (^^^P0P2.VGA.DPMG, 0x02))
                                {
                                    Notify (^^^P0P2.VGA.LCD, 0x87)
                                    Store (0x11, P80H)
                                }
                                Else
                                {
                                    Notify (^^^GFX0.DD03, 0x87)
                                    Store (One, P80H)
                                }
                            }
                        }
                        Else
                        {
                            If (LNotEqual (OBV, 0xFF))
                            {
                                Store (BRTS, Local1)
                                Add (Local1, One, Local1)
                                ^^^GFX0.AINT (One, Multiply (Local1, 0x0A))
                            }
                        }
                    }

                    Method (_Q12, 0, NotSerialized)
                    {
                        If (LGreaterEqual (OSYS, 0x07D6))
                        {
                            If (LEqual (OBV, 0xFF))
                            {
                                Notify (^^^P0P2.VGA.LCD, 0x86)
                            }
                            Else
                            {
                                ^^^P0P2.VGA.PLAT ()
                                If (LEqual (^^^P0P2.VGA.DPMG, 0x02))
                                {
                                    Notify (^^^P0P2.VGA.LCD, 0x86)
                                    Store (0x12, P80H)
                                }
                                Else
                                {
                                    Notify (^^^GFX0.DD03, 0x86)
                                    Store (0x02, P80H)
                                }
                            }
                        }
                        Else
                        {
                            If (LNotEqual (OBV, 0xFF))
                            {
                                Store (BRTS, Local1)
                                Add (Local1, One, Local1)
                                ^^^GFX0.AINT (One, Multiply (Local1, 0x0A))
                            }
                        }
                    }

                    Method (_Q1C, 0, NotSerialized)
                    {
                        Store ("_Q1C", Debug)
                        ^^^P0P2.VGA.PLAT ()
                        If (LEqual (^^^P0P2.VGA.DPMG, One))
                        {
                            If (LNot (^^^GFX0.DRDY))
                            {
                                OSMI (0x91)
                            }
                            Else
                            {
                                If (LOr (^^^GFX0.CPDS (0x0100), ^^^GFX0.CPDS (0x80007330)))
                                {
                                    ^^^GFX0.GHDS (One)
                                }
                            }
                        }

                        If (LEqual (^^^P0P2.VGA.DPMG, 0x02))
                        {
                            If (LEqual (^^^GFX0.VID, 0x8086))
                            {
                                ^^^GFX0.AFN0 ()
                            }
                            Else
                            {
                                ^^^P0P2.VGA.AFN0 ()
                            }
                        }

                        If (LEqual (^^^P0P2.VGA.DPMG, 0x03))
                        {
                            Notify (^^^P0P2.VGA, 0x80)
                            Store (Zero, VIDO)
                        }
                    }

                    Method (_Q1D, 0, NotSerialized)
                    {
                        Store (0x55, P80H)
                        Store (PTVL, ETNS)
                        Sleep (0x64)
                        OSMI (0x94)
                        Sleep (0x01F4)
                        Store (0xAA, P80H)
                    }

                    Method (_Q22, 0, NotSerialized)
                    {
                        Notify (BAT0, 0x80)
                    }

                    Method (_Q25, 0, NotSerialized)
                    {
                        Notify (BAT0, 0x81)
                        Notify (BAT0, 0x80)
                    }

                    Method (_Q2A, 0, NotSerialized)
                    {
                    }

                    Method (_Q2B, 0, NotSerialized)
                    {
                    }

                    Method (_Q34, 0, NotSerialized)
                    {
                        If (LEqual (^^^WMID.BAEF, One))
                        {
                            Store (BTAT, Local1)
                            Store (^^^WMID.BLTD, Local2)
                            Add (Local2, Local1, Local2)
                            Store (Local2, ^^^WMID.NTDC)
                            Notify (WMID, 0x80)
                        }
                    }

                    Method (_Q37, 0, NotSerialized)
                    {
                        Notify (AC, Zero)
                        Sleep (0x03F0)
                        Notify (BAT0, 0x80)
                        Store (One, PWRS)
                        PNOT ()
                        If (LLessEqual (OSYS, 0x07D6))
                        {
                            Store (0x02, BLAN)
                        }
                    }

                    Method (_Q38, 0, NotSerialized)
                    {
                        Notify (AC, One)
                        Sleep (0x03F0)
                        Notify (BAT0, 0x80)
                        Store (Zero, PWRS)
                        PNOT ()
                        If (LLessEqual (OSYS, 0x07D6))
                        {
                            Store (0x03, BLAN)
                        }
                    }

                    Method (_Q42, 0, NotSerialized)
                    {
                        If (LEqual (TUBM, One))
                        {
                            Store (One, \_PR.CPU0._PPC)
                            PNOT ()
                        }
                    }

                    Method (_Q43, 0, NotSerialized)
                    {
                        If (LEqual (TUBM, One))
                        {
                            Store (Zero, \_PR.CPU0._PPC)
                            PNOT ()
                        }
                    }

                    Method (_Q60, 0, NotSerialized)
                    {
                        If (LEqual (^^^WMID.BAEF, One))
                        {
                            Store (WLAT, Local1)
                            Store (^^^WMID.WLSD, Local2)
                            Add (Local2, Local1, Local2)
                            Store (Local2, ^^^WMID.NTDC)
                            Notify (WMID, 0x80)
                        }
                    }

                    Method (_Q61, 0, NotSerialized)
                    {
                        Store (0x61, P80H)
                        If (LEqual (^^^WMID.BAEF, One))
                        {
                            XOr (BPWN, One, BPWN)
                            Store (Zero, Local1)
                            If (LEqual (BPWN, One))
                            {
                                Store (One, Local1)
                            }

                            Store (^^^WMID.BUOF, Local2)
                            Add (Local2, Local1, Local2)
                            Store (Local2, ^^^WMID.NTDC)
                            Notify (WMID, 0x80)
                        }
                    }

                    Method (_Q4F, 0, NotSerialized)
                    {
                        If (LEqual (^^^WMID.BAEF, One))
                        {
                            Store (One, Local1)
                            If (LEqual (LANC, One))
                            {
                                Store (Zero, Local1)
                            }

                            Store (^^^WMID.LANI, Local2)
                            Add (Local2, Local1, Local2)
                            Store (Local2, ^^^WMID.NTDC)
                            Notify (WMID, 0x80)
                        }
                    }

                    Method (_Q50, 0, NotSerialized)
                    {
                        If (LEqual (^^^WMID.BAEF, One))
                        {
                            Store (Zero, Local1)
                            If (LEqual (LCDS, One))
                            {
                                Store (One, Local1)
                            }

                            Store (^^^WMID.LDOF, Local2)
                            Add (Local2, Local1, Local2)
                            Store (Local2, ^^^WMID.NTDC)
                            Notify (WMID, 0x80)
                        }
                    }

                    Method (_Q45, 0, NotSerialized)
                    {
                        If (^^^WMID.LMST)
                        {
                            Store (One, Index (FEBC, Zero))
                            Store (BTNN, Index (FEBC, One))
                            Notify (WMID, 0xBC)
                        }
                    }

                    Method (_Q46, 0, NotSerialized)
                    {
                        If (^^^WMID.LMST)
                        {
                            Store (0x02, Index (FEBC, Zero))
                            Store (BTNN, Index (FEBC, One))
                            Notify (WMID, 0xBC)
                        }
                    }
                }

                Device (KBC0)
                {
                    Name (_HID, EisaId ("PNP0303"))
                    Method (_STA, 0, NotSerialized)
                    {
                        Return (0x0F)
                    }

                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0060,             // Range Minimum
                            0x0060,             // Range Maximum
                            0x01,               // Alignment
                            0x01,               // Length
                            )
                        IO (Decode16,
                            0x0064,             // Range Minimum
                            0x0064,             // Range Maximum
                            0x01,               // Alignment
                            0x01,               // Length
                            )
                        IRQ (Edge, ActiveHigh, Exclusive, )
                            {1}
                    })
                }

                Device (MSE0)
                {
                    Name (_HID, EisaId ("PNP0F13"))
                    Method (_STA, 0, NotSerialized)
                    {
                        If (LEqual (And (TPAD, One), One))
                        {
                            Return (Zero)
                        }
                        Else
                        {
                            Return (0x0F)
                        }
                    }

                    Name (_CRS, ResourceTemplate ()
                    {
                        IRQ (Edge, ActiveHigh, Exclusive, )
                            {12}
                    })
                }

                Device (MSS0)
                {
                    Name (_HID, EisaId ("SYN1B16"))
                    Name (_CID, Package (0x03)
                    {
                        EisaId ("SYN1B00"), 
                        EisaId ("SYN0002"), 
                        EisaId ("PNP0F13")
                    })
                    Method (_STA, 0, NotSerialized)
                    {
                        If (LEqual (And (TPAD, One), One))
                        {
                            Return (0x0F)
                        }
                        Else
                        {
                            Return (Zero)
                        }
                    }

                    Name (_CRS, ResourceTemplate ()
                    {
                        IRQ (Edge, ActiveHigh, Exclusive, )
                            {12}
                    })
                }
            }

            Device (EHC1)
            {
                Name (_ADR, 0x001D0000)
                Device (RHUB)
                {
                    Name (_ADR, Zero)
                    Device (PRT1)
                    {
                        Name (_ADR, One)
                        Name (_UPC, Package (0x04)
                        {
                            Zero, 
                            0xFF, 
                            Zero, 
                            Zero
                        })
                    }
                }

                OperationRegion (U1CS, PCI_Config, 0xC4, 0x04)
                Field (U1CS, DWordAcc, NoLock, Preserve)
                {
                    U1EN,   2
                }

                Method (_PSW, 1, NotSerialized)
                {
                    If (Arg0)
                    {
                        Store (0x03, U1EN)
                    }
                    Else
                    {
                        Store (Zero, U1EN)
                    }
                }

                Method (_S3D, 0, NotSerialized)
                {
                    Return (0x02)
                }

                Method (_S4D, 0, NotSerialized)
                {
                    Return (0x02)
                }

                Name (_PRW, Package (0x02)
                {
                    0x0D, 
                    0x03
                })
            }

            Device (USB1)
            {
                Name (_ADR, 0x001D0001)
                OperationRegion (U1CS, PCI_Config, 0xC4, 0x04)
                Field (U1CS, DWordAcc, NoLock, Preserve)
                {
                    U1EN,   2
                }

                Method (_PSW, 1, NotSerialized)
                {
                    If (Arg0)
                    {
                        Store (0x03, U1EN)
                    }
                    Else
                    {
                        Store (Zero, U1EN)
                    }
                }

                Method (_S3D, 0, NotSerialized)
                {
                    Return (0x02)
                }

                Method (_S4D, 0, NotSerialized)
                {
                    Return (0x02)
                }

                Device (HUBN)
                {
                    Name (_ADR, Zero)
                    Device (PRT1)
                    {
                        Name (_ADR, One)
                        Method (_RMV, 0, NotSerialized)
                        {
                            Return (Zero)
                        }

                        Method (_DSM, 4, Serialized)
                        {
                            If (LEqual (Arg0, Buffer (0x10)
                                    {
                                        /* 0000 */    0x8F, 0x70, 0xFC, 0xA5, 0x75, 0x87, 0xA6, 0x4B, 
                                        /* 0008 */    0xBD, 0x0C, 0xBA, 0x90, 0xA1, 0xEC, 0x72, 0xF8
                                    }))
                            {
                                Name (_T_0, Zero)
                                Store (ToInteger (Arg2), _T_0)
                                If (LEqual (_T_0, Zero))
                                {
                                    Name (_T_1, Zero)
                                    Store (ToInteger (Arg1), _T_1)
                                    If (LEqual (_T_1, One))
                                    {
                                        Return (Buffer (One)
                                        {
                                            0x07
                                        })
                                    }
                                    Else
                                    {
                                        Return (Buffer (One)
                                        {
                                            0x00
                                        })
                                    }
                                }
                                Else
                                {
                                    If (LEqual (_T_0, One))
                                    {
                                        Return (One)
                                    }
                                    Else
                                    {
                                        If (LEqual (_T_0, 0x02))
                                        {
                                            Return (SDGV)
                                        }
                                        Else
                                        {
                                            Return (Zero)
                                        }
                                    }
                                }
                            }
                            Else
                            {
                                Return (Zero)
                            }
                        }
                    }

                    Device (PRT2)
                    {
                        Name (_ADR, 0x02)
                        Method (_RMV, 0, NotSerialized)
                        {
                            Return (Zero)
                        }

                        Method (_DSM, 4, Serialized)
                        {
                            If (LEqual (Arg0, Buffer (0x10)
                                    {
                                        /* 0000 */    0x8F, 0x70, 0xFC, 0xA5, 0x75, 0x87, 0xA6, 0x4B, 
                                        /* 0008 */    0xBD, 0x0C, 0xBA, 0x90, 0xA1, 0xEC, 0x72, 0xF8
                                    }))
                            {
                                Name (_T_0, Zero)
                                Store (ToInteger (Arg2), _T_0)
                                If (LEqual (_T_0, Zero))
                                {
                                    Name (_T_1, Zero)
                                    Store (ToInteger (Arg1), _T_1)
                                    If (LEqual (_T_1, One))
                                    {
                                        Return (Buffer (One)
                                        {
                                            0x07
                                        })
                                    }
                                    Else
                                    {
                                        Return (Buffer (One)
                                        {
                                            0x00
                                        })
                                    }
                                }
                                Else
                                {
                                    If (LEqual (_T_0, One))
                                    {
                                        Return (One)
                                    }
                                    Else
                                    {
                                        If (LEqual (_T_0, 0x02))
                                        {
                                            Return (SDGV)
                                        }
                                        Else
                                        {
                                            Return (Zero)
                                        }
                                    }
                                }
                            }
                            Else
                            {
                                Return (Zero)
                            }
                        }
                    }
                }

                Name (_PRW, Package (0x02)
                {
                    0x03, 
                    0x03
                })
            }

            Device (USB2)
            {
                Name (_ADR, 0x001D0002)
                OperationRegion (U1CS, PCI_Config, 0xC4, 0x04)
                Field (U1CS, DWordAcc, NoLock, Preserve)
                {
                    U1EN,   2
                }

                Method (_PSW, 1, NotSerialized)
                {
                    If (Arg0)
                    {
                        Store (0x03, U1EN)
                    }
                    Else
                    {
                        Store (Zero, U1EN)
                    }
                }

                Method (_S3D, 0, NotSerialized)
                {
                    Return (0x02)
                }

                Method (_S4D, 0, NotSerialized)
                {
                    Return (0x02)
                }

                Device (HUBN)
                {
                    Name (_ADR, Zero)
                    Device (PRT1)
                    {
                        Name (_ADR, One)
                        Method (_RMV, 0, NotSerialized)
                        {
                            Return (Zero)
                        }

                        Method (_DSM, 4, Serialized)
                        {
                            If (LEqual (Arg0, Buffer (0x10)
                                    {
                                        /* 0000 */    0x8F, 0x70, 0xFC, 0xA5, 0x75, 0x87, 0xA6, 0x4B, 
                                        /* 0008 */    0xBD, 0x0C, 0xBA, 0x90, 0xA1, 0xEC, 0x72, 0xF8
                                    }))
                            {
                                Name (_T_0, Zero)
                                Store (ToInteger (Arg2), _T_0)
                                If (LEqual (_T_0, Zero))
                                {
                                    Name (_T_1, Zero)
                                    Store (ToInteger (Arg1), _T_1)
                                    If (LEqual (_T_1, One))
                                    {
                                        Return (Buffer (One)
                                        {
                                            0x07
                                        })
                                    }
                                    Else
                                    {
                                        Return (Buffer (One)
                                        {
                                            0x00
                                        })
                                    }
                                }
                                Else
                                {
                                    If (LEqual (_T_0, One))
                                    {
                                        Return (One)
                                    }
                                    Else
                                    {
                                        If (LEqual (_T_0, 0x02))
                                        {
                                            Return (SDGV)
                                        }
                                        Else
                                        {
                                            Return (Zero)
                                        }
                                    }
                                }
                            }
                            Else
                            {
                                Return (Zero)
                            }
                        }
                    }

                    Device (PRT2)
                    {
                        Name (_ADR, 0x02)
                        Method (_RMV, 0, NotSerialized)
                        {
                            Return (Zero)
                        }

                        Method (_DSM, 4, Serialized)
                        {
                            If (LEqual (Arg0, Buffer (0x10)
                                    {
                                        /* 0000 */    0x8F, 0x70, 0xFC, 0xA5, 0x75, 0x87, 0xA6, 0x4B, 
                                        /* 0008 */    0xBD, 0x0C, 0xBA, 0x90, 0xA1, 0xEC, 0x72, 0xF8
                                    }))
                            {
                                Name (_T_0, Zero)
                                Store (ToInteger (Arg2), _T_0)
                                If (LEqual (_T_0, Zero))
                                {
                                    Name (_T_1, Zero)
                                    Store (ToInteger (Arg1), _T_1)
                                    If (LEqual (_T_1, One))
                                    {
                                        Return (Buffer (One)
                                        {
                                            0x07
                                        })
                                    }
                                    Else
                                    {
                                        Return (Buffer (One)
                                        {
                                            0x00
                                        })
                                    }
                                }
                                Else
                                {
                                    If (LEqual (_T_0, One))
                                    {
                                        Return (One)
                                    }
                                    Else
                                    {
                                        If (LEqual (_T_0, 0x02))
                                        {
                                            Return (SDGV)
                                        }
                                        Else
                                        {
                                            Return (Zero)
                                        }
                                    }
                                }
                            }
                            Else
                            {
                                Return (Zero)
                            }
                        }
                    }
                }

                Name (_PRW, Package (0x02)
                {
                    0x04, 
                    0x03
                })
            }

            Device (USB3)
            {
                Name (_ADR, 0x001D0003)
                OperationRegion (U1CS, PCI_Config, 0xC4, 0x04)
                Field (U1CS, DWordAcc, NoLock, Preserve)
                {
                    U1EN,   2
                }

                Method (_PSW, 1, NotSerialized)
                {
                    If (Arg0)
                    {
                        Store (0x03, U1EN)
                    }
                    Else
                    {
                        Store (Zero, U1EN)
                    }
                }

                Method (_S3D, 0, NotSerialized)
                {
                    Return (0x02)
                }

                Method (_S4D, 0, NotSerialized)
                {
                    Return (0x02)
                }

                Device (HUBN)
                {
                    Name (_ADR, Zero)
                    Device (PRT1)
                    {
                        Name (_ADR, One)
                        Method (_RMV, 0, NotSerialized)
                        {
                            Return (Zero)
                        }

                        Method (_DSM, 4, Serialized)
                        {
                            If (LEqual (Arg0, Buffer (0x10)
                                    {
                                        /* 0000 */    0x8F, 0x70, 0xFC, 0xA5, 0x75, 0x87, 0xA6, 0x4B, 
                                        /* 0008 */    0xBD, 0x0C, 0xBA, 0x90, 0xA1, 0xEC, 0x72, 0xF8
                                    }))
                            {
                                Name (_T_0, Zero)
                                Store (ToInteger (Arg2), _T_0)
                                If (LEqual (_T_0, Zero))
                                {
                                    Name (_T_1, Zero)
                                    Store (ToInteger (Arg1), _T_1)
                                    If (LEqual (_T_1, One))
                                    {
                                        Return (Buffer (One)
                                        {
                                            0x07
                                        })
                                    }
                                    Else
                                    {
                                        Return (Buffer (One)
                                        {
                                            0x00
                                        })
                                    }
                                }
                                Else
                                {
                                    If (LEqual (_T_0, One))
                                    {
                                        Return (One)
                                    }
                                    Else
                                    {
                                        If (LEqual (_T_0, 0x02))
                                        {
                                            Return (SDGV)
                                        }
                                        Else
                                        {
                                            Return (Zero)
                                        }
                                    }
                                }
                            }
                            Else
                            {
                                Return (Zero)
                            }
                        }
                    }

                    Device (PRT2)
                    {
                        Name (_ADR, 0x02)
                        Method (_RMV, 0, NotSerialized)
                        {
                            Return (Zero)
                        }

                        Method (_DSM, 4, Serialized)
                        {
                            If (LEqual (Arg0, Buffer (0x10)
                                    {
                                        /* 0000 */    0x8F, 0x70, 0xFC, 0xA5, 0x75, 0x87, 0xA6, 0x4B, 
                                        /* 0008 */    0xBD, 0x0C, 0xBA, 0x90, 0xA1, 0xEC, 0x72, 0xF8
                                    }))
                            {
                                Name (_T_0, Zero)
                                Store (ToInteger (Arg2), _T_0)
                                If (LEqual (_T_0, Zero))
                                {
                                    Name (_T_1, Zero)
                                    Store (ToInteger (Arg1), _T_1)
                                    If (LEqual (_T_1, One))
                                    {
                                        Return (Buffer (One)
                                        {
                                            0x07
                                        })
                                    }
                                    Else
                                    {
                                        Return (Buffer (One)
                                        {
                                            0x00
                                        })
                                    }
                                }
                                Else
                                {
                                    If (LEqual (_T_0, One))
                                    {
                                        Return (One)
                                    }
                                    Else
                                    {
                                        If (LEqual (_T_0, 0x02))
                                        {
                                            Return (SDGV)
                                        }
                                        Else
                                        {
                                            Return (Zero)
                                        }
                                    }
                                }
                            }
                            Else
                            {
                                Return (Zero)
                            }
                        }
                    }
                }

                Name (_PRW, Package (0x02)
                {
                    0x0C, 
                    0x03
                })
            }

            Device (USB4)
            {
                Name (_ADR, 0x001D0004)
                OperationRegion (U1CS, PCI_Config, 0xC4, 0x04)
                Field (U1CS, DWordAcc, NoLock, Preserve)
                {
                    U1EN,   2
                }

                Method (_PSW, 1, NotSerialized)
                {
                    If (Arg0)
                    {
                        Store (0x03, U1EN)
                    }
                    Else
                    {
                        Store (Zero, U1EN)
                    }
                }

                Method (_S3D, 0, NotSerialized)
                {
                    Return (0x02)
                }

                Method (_S4D, 0, NotSerialized)
                {
                    Return (0x02)
                }

                Device (HUBN)
                {
                    Name (_ADR, Zero)
                    Device (PRT1)
                    {
                        Name (_ADR, One)
                        Method (_RMV, 0, NotSerialized)
                        {
                            Return (Zero)
                        }

                        Method (_DSM, 4, Serialized)
                        {
                            If (LEqual (Arg0, Buffer (0x10)
                                    {
                                        /* 0000 */    0x8F, 0x70, 0xFC, 0xA5, 0x75, 0x87, 0xA6, 0x4B, 
                                        /* 0008 */    0xBD, 0x0C, 0xBA, 0x90, 0xA1, 0xEC, 0x72, 0xF8
                                    }))
                            {
                                Name (_T_0, Zero)
                                Store (ToInteger (Arg2), _T_0)
                                If (LEqual (_T_0, Zero))
                                {
                                    Name (_T_1, Zero)
                                    Store (ToInteger (Arg1), _T_1)
                                    If (LEqual (_T_1, One))
                                    {
                                        Return (Buffer (One)
                                        {
                                            0x07
                                        })
                                    }
                                    Else
                                    {
                                        Return (Buffer (One)
                                        {
                                            0x00
                                        })
                                    }
                                }
                                Else
                                {
                                    If (LEqual (_T_0, One))
                                    {
                                        Return (One)
                                    }
                                    Else
                                    {
                                        If (LEqual (_T_0, 0x02))
                                        {
                                            Return (SDGV)
                                        }
                                        Else
                                        {
                                            Return (Zero)
                                        }
                                    }
                                }
                            }
                            Else
                            {
                                Return (Zero)
                            }
                        }
                    }

                    Device (PRT2)
                    {
                        Name (_ADR, 0x02)
                        Method (_RMV, 0, NotSerialized)
                        {
                            Return (Zero)
                        }

                        Method (_DSM, 4, Serialized)
                        {
                            If (LEqual (Arg0, Buffer (0x10)
                                    {
                                        /* 0000 */    0x8F, 0x70, 0xFC, 0xA5, 0x75, 0x87, 0xA6, 0x4B, 
                                        /* 0008 */    0xBD, 0x0C, 0xBA, 0x90, 0xA1, 0xEC, 0x72, 0xF8
                                    }))
                            {
                                Name (_T_0, Zero)
                                Store (ToInteger (Arg2), _T_0)
                                If (LEqual (_T_0, Zero))
                                {
                                    Name (_T_1, Zero)
                                    Store (ToInteger (Arg1), _T_1)
                                    If (LEqual (_T_1, One))
                                    {
                                        Return (Buffer (One)
                                        {
                                            0x07
                                        })
                                    }
                                    Else
                                    {
                                        Return (Buffer (One)
                                        {
                                            0x00
                                        })
                                    }
                                }
                                Else
                                {
                                    If (LEqual (_T_0, One))
                                    {
                                        Return (One)
                                    }
                                    Else
                                    {
                                        If (LEqual (_T_0, 0x02))
                                        {
                                            Return (SDGV)
                                        }
                                        Else
                                        {
                                            Return (Zero)
                                        }
                                    }
                                }
                            }
                            Else
                            {
                                Return (Zero)
                            }
                        }
                    }
                }

                Name (_PRW, Package (0x02)
                {
                    0x0E, 
                    0x03
                })
            }

            Device (EHC2)
            {
                Name (_ADR, 0x001A0000)
                Device (RHUB)
                {
                    Name (_ADR, Zero)
                    Device (PRT1)
                    {
                        Name (_ADR, One)
                        Name (_UPC, Package (0x04)
                        {
                            Zero, 
                            0xFF, 
                            Zero, 
                            Zero
                        })
                        Device (PRT1)
                        {
                            Name (_ADR, One)
                            Name (_UPC, Package (0x04)
                            {
                                0xFF, 
                                0xFF, 
                                Zero, 
                                Zero
                            })
                            Name (_PLD, Buffer (0x10)
                            {
                                0x81, 0x00, 0x30, 0x00
                            })
                        }

                        Device (PRT2)
                        {
                            Name (_ADR, 0x02)
                            Name (_UPC, Package (0x04)
                            {
                                0xFF, 
                                0xFF, 
                                Zero, 
                                Zero
                            })
                            Name (_PLD, Buffer (0x10)
                            {
                                0x81, 0x00, 0x30, 0x00
                            })
                        }

                        Device (PRT3)
                        {
                            Name (_ADR, 0x03)
                            Name (_UPC, Package (0x04)
                            {
                                0xFF, 
                                0xFF, 
                                Zero, 
                                Zero
                            })
                            Name (_PLD, Buffer (0x10)
                            {
                                0x81, 0x00, 0x30, 0x00
                            })
                        }

                        Device (PRT4)
                        {
                            Name (_ADR, 0x04)
                            Name (_UPC, Package (0x04)
                            {
                                0xFF, 
                                0xFF, 
                                Zero, 
                                Zero
                            })
                            Name (_PLD, Buffer (0x10)
                            {
                                0x81, 0x00, 0x30, 0x00
                            })
                        }

                        Device (PRT5)
                        {
                            Name (_ADR, 0x05)
                            Name (_UPC, Package (0x04)
                            {
                                0xFF, 
                                0xFF, 
                                Zero, 
                                Zero
                            })
                            Name (_PLD, Buffer (0x10)
                            {
                                0x81, 0x00, 0x30, 0x00
                            })
                        }

                        Device (PRT6)
                        {
                            Name (_ADR, 0x06)
                            Name (_UPC, Package (0x04)
                            {
                                0xFF, 
                                0xFF, 
                                Zero, 
                                Zero
                            })
                            Name (_PLD, Buffer (0x10)
                            {
                                0x81, 0x00, 0x30, 0x00
                            })
                        }
                    }
                }

                OperationRegion (U1CS, PCI_Config, 0xC4, 0x04)
                Field (U1CS, DWordAcc, NoLock, Preserve)
                {
                    U1EN,   2
                }

                Method (_PSW, 1, NotSerialized)
                {
                    If (Arg0)
                    {
                        Store (0x03, U1EN)
                    }
                    Else
                    {
                        Store (Zero, U1EN)
                    }
                }

                Method (_S3D, 0, NotSerialized)
                {
                    Return (0x02)
                }

                Method (_S4D, 0, NotSerialized)
                {
                    Return (0x02)
                }
            }

            Device (USB5)
            {
                Name (_ADR, 0x001A0001)
                OperationRegion (U1CS, PCI_Config, 0xC4, 0x04)
                Field (U1CS, DWordAcc, NoLock, Preserve)
                {
                    U1EN,   2
                }

                Method (_PSW, 1, NotSerialized)
                {
                    If (Arg0)
                    {
                        Store (0x03, U1EN)
                    }
                    Else
                    {
                        Store (Zero, U1EN)
                    }
                }

                Method (_S3D, 0, NotSerialized)
                {
                    Return (0x02)
                }

                Method (_S4D, 0, NotSerialized)
                {
                    Return (0x02)
                }

                Device (HUBN)
                {
                    Name (_ADR, Zero)
                    Device (PRT1)
                    {
                        Name (_ADR, One)
                        Method (_RMV, 0, NotSerialized)
                        {
                            Return (Zero)
                        }

                        Method (_DSM, 4, Serialized)
                        {
                            If (LEqual (Arg0, Buffer (0x10)
                                    {
                                        /* 0000 */    0x8F, 0x70, 0xFC, 0xA5, 0x75, 0x87, 0xA6, 0x4B, 
                                        /* 0008 */    0xBD, 0x0C, 0xBA, 0x90, 0xA1, 0xEC, 0x72, 0xF8
                                    }))
                            {
                                Name (_T_0, Zero)
                                Store (ToInteger (Arg2), _T_0)
                                If (LEqual (_T_0, Zero))
                                {
                                    Name (_T_1, Zero)
                                    Store (ToInteger (Arg1), _T_1)
                                    If (LEqual (_T_1, One))
                                    {
                                        Return (Buffer (One)
                                        {
                                            0x07
                                        })
                                    }
                                    Else
                                    {
                                        Return (Buffer (One)
                                        {
                                            0x00
                                        })
                                    }
                                }
                                Else
                                {
                                    If (LEqual (_T_0, One))
                                    {
                                        Return (One)
                                    }
                                    Else
                                    {
                                        If (LEqual (_T_0, 0x02))
                                        {
                                            Return (SDGV)
                                        }
                                        Else
                                        {
                                            Return (Zero)
                                        }
                                    }
                                }
                            }
                            Else
                            {
                                Return (Zero)
                            }
                        }
                    }

                    Device (PRT2)
                    {
                        Name (_ADR, 0x02)
                        Method (_RMV, 0, NotSerialized)
                        {
                            Return (Zero)
                        }

                        Method (_DSM, 4, Serialized)
                        {
                            If (LEqual (Arg0, Buffer (0x10)
                                    {
                                        /* 0000 */    0x8F, 0x70, 0xFC, 0xA5, 0x75, 0x87, 0xA6, 0x4B, 
                                        /* 0008 */    0xBD, 0x0C, 0xBA, 0x90, 0xA1, 0xEC, 0x72, 0xF8
                                    }))
                            {
                                Name (_T_0, Zero)
                                Store (ToInteger (Arg2), _T_0)
                                If (LEqual (_T_0, Zero))
                                {
                                    Name (_T_1, Zero)
                                    Store (ToInteger (Arg1), _T_1)
                                    If (LEqual (_T_1, One))
                                    {
                                        Return (Buffer (One)
                                        {
                                            0x07
                                        })
                                    }
                                    Else
                                    {
                                        Return (Buffer (One)
                                        {
                                            0x00
                                        })
                                    }
                                }
                                Else
                                {
                                    If (LEqual (_T_0, One))
                                    {
                                        Return (One)
                                    }
                                    Else
                                    {
                                        If (LEqual (_T_0, 0x02))
                                        {
                                            Return (SDGV)
                                        }
                                        Else
                                        {
                                            Return (Zero)
                                        }
                                    }
                                }
                            }
                            Else
                            {
                                Return (Zero)
                            }
                        }
                    }
                }

                Name (_PRW, Package (0x02)
                {
                    0x05, 
                    0x03
                })
            }

            Device (USB6)
            {
                Name (_ADR, 0x001A0002)
                OperationRegion (U1CS, PCI_Config, 0xC4, 0x04)
                Field (U1CS, DWordAcc, NoLock, Preserve)
                {
                    U1EN,   2
                }

                Method (_PSW, 1, NotSerialized)
                {
                    If (Arg0)
                    {
                        Store (0x03, U1EN)
                    }
                    Else
                    {
                        Store (Zero, U1EN)
                    }
                }

                Method (_S3D, 0, NotSerialized)
                {
                    Return (0x02)
                }

                Method (_S4D, 0, NotSerialized)
                {
                    Return (0x02)
                }

                Device (HUBN)
                {
                    Name (_ADR, Zero)
                    Device (PRT1)
                    {
                        Name (_ADR, One)
                        Method (_RMV, 0, NotSerialized)
                        {
                            Return (Zero)
                        }

                        Method (_DSM, 4, Serialized)
                        {
                            If (LEqual (Arg0, Buffer (0x10)
                                    {
                                        /* 0000 */    0x8F, 0x70, 0xFC, 0xA5, 0x75, 0x87, 0xA6, 0x4B, 
                                        /* 0008 */    0xBD, 0x0C, 0xBA, 0x90, 0xA1, 0xEC, 0x72, 0xF8
                                    }))
                            {
                                Name (_T_0, Zero)
                                Store (ToInteger (Arg2), _T_0)
                                If (LEqual (_T_0, Zero))
                                {
                                    Name (_T_1, Zero)
                                    Store (ToInteger (Arg1), _T_1)
                                    If (LEqual (_T_1, One))
                                    {
                                        Return (Buffer (One)
                                        {
                                            0x07
                                        })
                                    }
                                    Else
                                    {
                                        Return (Buffer (One)
                                        {
                                            0x00
                                        })
                                    }
                                }
                                Else
                                {
                                    If (LEqual (_T_0, One))
                                    {
                                        Return (One)
                                    }
                                    Else
                                    {
                                        If (LEqual (_T_0, 0x02))
                                        {
                                            Return (SDGV)
                                        }
                                        Else
                                        {
                                            Return (Zero)
                                        }
                                    }
                                }
                            }
                            Else
                            {
                                Return (Zero)
                            }
                        }
                    }

                    Device (PRT2)
                    {
                        Name (_ADR, 0x02)
                        Method (_RMV, 0, NotSerialized)
                        {
                            Return (Zero)
                        }

                        Method (_DSM, 4, Serialized)
                        {
                            If (LEqual (Arg0, Buffer (0x10)
                                    {
                                        /* 0000 */    0x8F, 0x70, 0xFC, 0xA5, 0x75, 0x87, 0xA6, 0x4B, 
                                        /* 0008 */    0xBD, 0x0C, 0xBA, 0x90, 0xA1, 0xEC, 0x72, 0xF8
                                    }))
                            {
                                Name (_T_0, Zero)
                                Store (ToInteger (Arg2), _T_0)
                                If (LEqual (_T_0, Zero))
                                {
                                    Name (_T_1, Zero)
                                    Store (ToInteger (Arg1), _T_1)
                                    If (LEqual (_T_1, One))
                                    {
                                        Return (Buffer (One)
                                        {
                                            0x07
                                        })
                                    }
                                    Else
                                    {
                                        Return (Buffer (One)
                                        {
                                            0x00
                                        })
                                    }
                                }
                                Else
                                {
                                    If (LEqual (_T_0, One))
                                    {
                                        Return (One)
                                    }
                                    Else
                                    {
                                        If (LEqual (_T_0, 0x02))
                                        {
                                            Return (SDGV)
                                        }
                                        Else
                                        {
                                            Return (Zero)
                                        }
                                    }
                                }
                            }
                            Else
                            {
                                Return (Zero)
                            }
                        }
                    }
                }

                Name (_PRW, Package (0x02)
                {
                    0x20, 
                    0x03
                })
            }

            Device (USB7)
            {
                Name (_ADR, 0x001A0003)
                OperationRegion (U1CS, PCI_Config, 0xC4, 0x04)
                Field (U1CS, DWordAcc, NoLock, Preserve)
                {
                    U1EN,   2
                }

                Method (_PSW, 1, NotSerialized)
                {
                    If (Arg0)
                    {
                        Store (0x03, U1EN)
                    }
                    Else
                    {
                        Store (Zero, U1EN)
                    }
                }

                Method (_S3D, 0, NotSerialized)
                {
                    Return (0x02)
                }

                Method (_S4D, 0, NotSerialized)
                {
                    Return (0x02)
                }

                Device (HUBN)
                {
                    Name (_ADR, Zero)
                    Device (PRT1)
                    {
                        Name (_ADR, One)
                        Method (_RMV, 0, NotSerialized)
                        {
                            Return (Zero)
                        }

                        Method (_DSM, 4, Serialized)
                        {
                            If (LEqual (Arg0, Buffer (0x10)
                                    {
                                        /* 0000 */    0x8F, 0x70, 0xFC, 0xA5, 0x75, 0x87, 0xA6, 0x4B, 
                                        /* 0008 */    0xBD, 0x0C, 0xBA, 0x90, 0xA1, 0xEC, 0x72, 0xF8
                                    }))
                            {
                                Name (_T_0, Zero)
                                Store (ToInteger (Arg2), _T_0)
                                If (LEqual (_T_0, Zero))
                                {
                                    Name (_T_1, Zero)
                                    Store (ToInteger (Arg1), _T_1)
                                    If (LEqual (_T_1, One))
                                    {
                                        Return (Buffer (One)
                                        {
                                            0x07
                                        })
                                    }
                                    Else
                                    {
                                        Return (Buffer (One)
                                        {
                                            0x00
                                        })
                                    }
                                }
                                Else
                                {
                                    If (LEqual (_T_0, One))
                                    {
                                        Return (One)
                                    }
                                    Else
                                    {
                                        If (LEqual (_T_0, 0x02))
                                        {
                                            Return (SDGV)
                                        }
                                        Else
                                        {
                                            Return (Zero)
                                        }
                                    }
                                }
                            }
                            Else
                            {
                                Return (Zero)
                            }
                        }
                    }

                    Device (PRT2)
                    {
                        Name (_ADR, 0x02)
                        Method (_RMV, 0, NotSerialized)
                        {
                            Return (Zero)
                        }

                        Method (_DSM, 4, Serialized)
                        {
                            If (LEqual (Arg0, Buffer (0x10)
                                    {
                                        /* 0000 */    0x8F, 0x70, 0xFC, 0xA5, 0x75, 0x87, 0xA6, 0x4B, 
                                        /* 0008 */    0xBD, 0x0C, 0xBA, 0x90, 0xA1, 0xEC, 0x72, 0xF8
                                    }))
                            {
                                Name (_T_0, Zero)
                                Store (ToInteger (Arg2), _T_0)
                                If (LEqual (_T_0, Zero))
                                {
                                    Name (_T_1, Zero)
                                    Store (ToInteger (Arg1), _T_1)
                                    If (LEqual (_T_1, One))
                                    {
                                        Return (Buffer (One)
                                        {
                                            0x07
                                        })
                                    }
                                    Else
                                    {
                                        Return (Buffer (One)
                                        {
                                            0x00
                                        })
                                    }
                                }
                                Else
                                {
                                    If (LEqual (_T_0, One))
                                    {
                                        Return (One)
                                    }
                                    Else
                                    {
                                        If (LEqual (_T_0, 0x02))
                                        {
                                            Return (SDGV)
                                        }
                                        Else
                                        {
                                            Return (Zero)
                                        }
                                    }
                                }
                            }
                            Else
                            {
                                Return (Zero)
                            }
                        }
                    }
                }

                Name (_PRW, Package (0x02)
                {
                    0x25, 
                    0x03
                })
            }

            Device (RP01)
            {
                Name (_ADR, 0x001C0000)
                OperationRegion (PXCS, PCI_Config, 0x40, 0xC0)
                Field (PXCS, AnyAcc, NoLock, WriteAsZeros)
                {
                            Offset (0x12), 
                        ,   13, 
                    LASX,   1, 
                            Offset (0x1A), 
                    ABPX,   1, 
                        ,   2, 
                    PDCX,   1, 
                        ,   2, 
                    PDSX,   1, 
                            Offset (0x1B), 
                    LSCX,   1, 
                            Offset (0x20), 
                            Offset (0x22), 
                    PSPX,   1, 
                            Offset (0x98), 
                        ,   30, 
                    HPEX,   1, 
                    PMEX,   1, 
                        ,   30, 
                    HPSX,   1, 
                    PMSX,   1
                }

                Method (_PRW, 0, NotSerialized)
                {
                    If (WKPM)
                    {
                        Return (Package (0x02)
                        {
                            0x09, 
                            0x04
                        })
                    }
                    Else
                    {
                        Return (Package (0x02)
                        {
                            0x09, 
                            Zero
                        })
                    }
                }

                Method (_PRT, 0, NotSerialized)
                {
                    If (PICM)
                    {
                        Return (AR04)
                    }

                    Return (PR04)
                }
            }

            Device (RP02)
            {
                Name (_ADR, 0x001C0001)
                OperationRegion (PXCS, PCI_Config, 0x40, 0xC0)
                Field (PXCS, AnyAcc, NoLock, WriteAsZeros)
                {
                            Offset (0x12), 
                        ,   13, 
                    LASX,   1, 
                            Offset (0x1A), 
                    ABPX,   1, 
                        ,   2, 
                    PDCX,   1, 
                        ,   2, 
                    PDSX,   1, 
                            Offset (0x1B), 
                    LSCX,   1, 
                            Offset (0x20), 
                            Offset (0x22), 
                    PSPX,   1, 
                            Offset (0x98), 
                        ,   30, 
                    HPEX,   1, 
                    PMEX,   1, 
                        ,   30, 
                    HPSX,   1, 
                    PMSX,   1
                }

                Method (_PRT, 0, NotSerialized)
                {
                    If (PICM)
                    {
                        Return (AR05)
                    }

                    Return (PR05)
                }
            }

            Device (RP03)
            {
                Name (_ADR, 0x001C0002)
                OperationRegion (PXCS, PCI_Config, 0x40, 0xC0)
                Field (PXCS, AnyAcc, NoLock, WriteAsZeros)
                {
                            Offset (0x12), 
                        ,   13, 
                    LASX,   1, 
                            Offset (0x1A), 
                    ABPX,   1, 
                        ,   2, 
                    PDCX,   1, 
                        ,   2, 
                    PDSX,   1, 
                            Offset (0x1B), 
                    LSCX,   1, 
                            Offset (0x20), 
                            Offset (0x22), 
                    PSPX,   1, 
                            Offset (0x98), 
                        ,   30, 
                    HPEX,   1, 
                    PMEX,   1, 
                        ,   30, 
                    HPSX,   1, 
                    PMSX,   1
                }

                Method (_PRT, 0, NotSerialized)
                {
                    If (PICM)
                    {
                        Return (AR06)
                    }

                    Return (PR06)
                }
            }

            Device (RP04)
            {
                Name (_ADR, 0x001C0003)
                OperationRegion (PXCS, PCI_Config, 0x40, 0xC0)
                Field (PXCS, AnyAcc, NoLock, WriteAsZeros)
                {
                            Offset (0x12), 
                        ,   13, 
                    LASX,   1, 
                            Offset (0x1A), 
                    ABPX,   1, 
                        ,   2, 
                    PDCX,   1, 
                        ,   2, 
                    PDSX,   1, 
                            Offset (0x1B), 
                    LSCX,   1, 
                            Offset (0x20), 
                            Offset (0x22), 
                    PSPX,   1, 
                            Offset (0x98), 
                        ,   30, 
                    HPEX,   1, 
                    PMEX,   1, 
                        ,   30, 
                    HPSX,   1, 
                    PMSX,   1
                }

                Method (_PRT, 0, NotSerialized)
                {
                    If (PICM)
                    {
                        Return (AR07)
                    }

                    Return (PR07)
                }
            }

            Device (RP05)
            {
                Name (_ADR, 0x001C0004)
                OperationRegion (PXCS, PCI_Config, 0x40, 0xC0)
                Field (PXCS, AnyAcc, NoLock, WriteAsZeros)
                {
                            Offset (0x12), 
                        ,   13, 
                    LASX,   1, 
                            Offset (0x1A), 
                    ABPX,   1, 
                        ,   2, 
                    PDCX,   1, 
                        ,   2, 
                    PDSX,   1, 
                            Offset (0x1B), 
                    LSCX,   1, 
                            Offset (0x20), 
                            Offset (0x22), 
                    PSPX,   1, 
                            Offset (0x98), 
                        ,   30, 
                    HPEX,   1, 
                    PMEX,   1, 
                        ,   30, 
                    HPSX,   1, 
                    PMSX,   1
                }

                Method (_PRT, 0, NotSerialized)
                {
                    If (PICM)
                    {
                        Return (AR08)
                    }

                    Return (PR08)
                }
            }

            Device (RP06)
            {
                Name (_ADR, 0x001C0005)
                OperationRegion (PXCS, PCI_Config, 0x40, 0xC0)
                Field (PXCS, AnyAcc, NoLock, WriteAsZeros)
                {
                            Offset (0x12), 
                        ,   13, 
                    LASX,   1, 
                            Offset (0x1A), 
                    ABPX,   1, 
                        ,   2, 
                    PDCX,   1, 
                        ,   2, 
                    PDSX,   1, 
                            Offset (0x1B), 
                    LSCX,   1, 
                            Offset (0x20), 
                            Offset (0x22), 
                    PSPX,   1, 
                            Offset (0x98), 
                        ,   30, 
                    HPEX,   1, 
                    PMEX,   1, 
                        ,   30, 
                    HPSX,   1, 
                    PMSX,   1
                }

                Method (_PRT, 0, NotSerialized)
                {
                    If (PICM)
                    {
                        Return (AR09)
                    }

                    Return (PR09)
                }
            }

            Device (RP07)
            {
                Name (_ADR, 0x001C0006)
                OperationRegion (PXCS, PCI_Config, 0x40, 0xC0)
                Field (PXCS, AnyAcc, NoLock, WriteAsZeros)
                {
                            Offset (0x12), 
                        ,   13, 
                    LASX,   1, 
                            Offset (0x1A), 
                    ABPX,   1, 
                        ,   2, 
                    PDCX,   1, 
                        ,   2, 
                    PDSX,   1, 
                            Offset (0x1B), 
                    LSCX,   1, 
                            Offset (0x20), 
                            Offset (0x22), 
                    PSPX,   1, 
                            Offset (0x98), 
                        ,   30, 
                    HPEX,   1, 
                    PMEX,   1, 
                        ,   30, 
                    HPSX,   1, 
                    PMSX,   1
                }

                Method (_PRT, 0, NotSerialized)
                {
                    If (PICM)
                    {
                        Return (AR0A)
                    }

                    Return (PR0A)
                }
            }

            Device (RP08)
            {
                Name (_ADR, 0x001C0007)
                OperationRegion (PXCS, PCI_Config, 0x40, 0xC0)
                Field (PXCS, AnyAcc, NoLock, WriteAsZeros)
                {
                            Offset (0x12), 
                        ,   13, 
                    LASX,   1, 
                            Offset (0x1A), 
                    ABPX,   1, 
                        ,   2, 
                    PDCX,   1, 
                        ,   2, 
                    PDSX,   1, 
                            Offset (0x1B), 
                    LSCX,   1, 
                            Offset (0x20), 
                            Offset (0x22), 
                    PSPX,   1, 
                            Offset (0x98), 
                        ,   30, 
                    HPEX,   1, 
                    PMEX,   1, 
                        ,   30, 
                    HPSX,   1, 
                    PMSX,   1
                }

                Method (_PRT, 0, NotSerialized)
                {
                    If (PICM)
                    {
                        Return (AR0B)
                    }

                    Return (PR0B)
                }
            }

            Device (IO10)
            {
                Name (_ADR, 0x00080000)
                OperationRegion (IBUS, PCI_Config, 0xD0, 0xE0)
                Field (IBUS, DWordAcc, NoLock, Preserve)
                {
                        ,   26, 
                    TOLM,   6, 
                        ,   26, 
                    TOHM,   38, 
                            Offset (0xB0), 
                    VTEN,   1, 
                        ,   11, 
                    VTBA,   20
                }
            }

            Device (IO1X)
            {
                Name (_ADR, 0x00080001)
                OperationRegion (PBIC, PCI_Config, Zero, 0xF0)
                Field (PBIC, DWordAcc, NoLock, Preserve)
                {
                            Offset (0x7C), 
                    SR0,    32, 
                    SR1,    32, 
                    SR2,    32, 
                    SR3,    32, 
                    SR4,    32, 
                    SR5,    32, 
                    SR6,    32, 
                    SR7,    32, 
                    SR8,    32, 
                    SR9,    32
                }
            }

            Device (IIO0)
            {
                Name (_ADR, 0x00140000)
                OperationRegion (IBUS, PCI_Config, 0xD0, 0xE0)
                Field (IBUS, DWordAcc, NoLock, Preserve)
                {
                        ,   26, 
                    TOLM,   6, 
                        ,   26, 
                    TOHM,   38, 
                            Offset (0xB0), 
                    VTEN,   1, 
                        ,   11, 
                    VTBA,   20
                }
            }

            Device (IIOX)
            {
                Name (_ADR, 0x00140001)
                OperationRegion (PBIC, PCI_Config, Zero, 0xF0)
                Field (PBIC, DWordAcc, NoLock, Preserve)
                {
                            Offset (0x7C), 
                    SR0,    32, 
                    SR1,    32, 
                    SR2,    32, 
                    SR3,    32, 
                    SR4,    32, 
                    SR5,    32, 
                    SR6,    32, 
                    SR7,    32, 
                    SR8,    32, 
                    SR9,    32
                }
            }

            Device (THRM)
            {
                Name (_ADR, 0x001F0006)
                OperationRegion (THEL, PCI_Config, Zero, 0xF0)
                Field (THEL, DWordAcc, NoLock, Preserve)
                {
                            Offset (0x40), 
                    THEN,   1, 
                    ADDR,   2, 
                    PREF,   1, 
                    TRSV,   8, 
                    TBAR,   20
                }
            }

            Device (PEG5)
            {
                Name (_ADR, 0x00050000)
                Name (_PRW, Package (0x02)
                {
                    0x09, 
                    0x04
                })
                Method (_PRT, 0, NotSerialized)
                {
                    If (PICM)
                    {
                        Return (AR0C)
                    }

                    Return (PR0C)
                }
            }

            Device (WMID)
            {
                Name (_HID, "PNP0C14")
                Name (_UID, "APGe")
                Name (ERRD, 0x00010000)
                Name (BTMP, Buffer (0x04)
                {
                    0x00, 0x00, 0x00, 0x00
                })
                Name (BODD, Buffer (0x04)
                {
                    0x00, 0x00, 0x00, 0x00
                })
                Name (BUFF, Buffer (0x08)
                {
                    /* 0000 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
                })
                CreateByteField (BUFF, Zero, BF00)
                CreateByteField (BUFF, One, BF01)
                CreateByteField (BUFF, 0x02, BF02)
                CreateByteField (BUFF, 0x03, BF03)
                CreateByteField (BUFF, 0x04, BF04)
                CreateByteField (BUFF, 0x05, BF05)
                CreateByteField (BUFF, 0x06, BF06)
                CreateByteField (BUFF, 0x07, BF07)
                Name (BUF1, Buffer (0x04)
                {
                    0x00, 0x00, 0x00, 0x00
                })
                Name (AADS, Buffer (0x04)
                {
                    0x00
                })
                CreateField (AADS, Zero, 0x04, AS00)
                CreateField (AADS, 0x04, One, AS01)
                CreateField (AADS, 0x05, One, AS02)
                CreateField (AADS, 0x06, One, AS03)
                CreateField (AADS, 0x07, One, AS04)
                CreateField (AADS, 0x10, 0x10, AS05)
                Name (BAEF, Zero)
                Name (BADF, Zero)
                Name (BADG, Package (0x0F)
                {
                    Zero, 
                    Zero, 
                    Zero, 
                    Zero, 
                    Zero, 
                    Zero, 
                    Zero, 
                    0x00010000, 
                    0x00010000, 
                    Zero, 
                    Zero, 
                    Zero, 
                    0x00010000, 
                    Zero, 
                    Zero
                })
                Name (WLDS, Zero)
                Name (WLED, Zero)
                Name (BTDS, Zero)
                Name (BTED, Zero)
                Name (BLDS, Zero)
                Name (BLED, Zero)
                Name (NTDC, Zero)
                Name (NTDV, Zero)
                Name (WLSD, 0x0100)
                Name (WLSE, 0x0101)
                Name (BLTD, 0x0200)
                Name (BLTE, 0x0201)
                Name (LBL0, 0x0300)
                Name (LBL1, 0x0301)
                Name (LBL2, 0x0302)
                Name (LBL3, 0x0303)
                Name (LBL4, 0x0304)
                Name (LBL5, 0x0305)
                Name (LBL6, 0x0306)
                Name (LBL7, 0x0307)
                Name (LBL8, 0x0308)
                Name (LBL9, 0x0309)
                Name (LBLA, 0x030A)
                Name (LBLB, 0x030B)
                Name (LBLC, 0x030C)
                Name (LBLD, 0x030D)
                Name (LBLE, 0x030E)
                Name (LBLF, 0x030F)
                Name (CADI, 0x0401)
                Name (CADO, 0x0400)
                Name (GSEE, 0x0501)
                Name (GSED, 0x0502)
                Name (VAPI, 0x0601)
                Name (VAPO, 0x0600)
                Name (WBBO, 0x0701)
                Name (WBBI, 0x0700)
                Name (G3MD, 0x0800)
                Name (G3ME, 0x0801)
                Name (LANI, 0x0900)
                Name (LANO, 0x0901)
                Name (LDOF, 0x0A00)
                Name (LDON, 0x0A01)
                Name (BUOF, 0x0B00)
                Name (BUON, 0x0B01)
                Name (FNKE, 0x00010002)
                Name (FNF5, 0x00015001)
                Name (BBSB, Buffer (0x04)
                {
                    0x00, 0x00, 0x00, 0x00
                })
                CreateField (BBSB, Zero, 0x10, BBD0)
                CreateField (BBSB, 0x10, 0x10, BBD1)
                Name (TLS0, Zero)
                Name (TLS1, One)
                Name (TLS2, 0x02)
                Name (TLS3, 0x03)
                Name (TLS4, 0x04)
                Name (TLS5, 0x05)
                Name (TLS6, 0x06)
                Name (TLS7, 0x07)
                Name (BCDS, Package (0x0D)
                {
                    0x00010000, 
                    0x00010000, 
                    0x00010000, 
                    0x00010000, 
                    0x00010000, 
                    0x00010000, 
                    0x00010000, 
                    0x00010000, 
                    0x00010000, 
                    0x00010000, 
                    0x00010000, 
                    0x00010000, 
                    0x00010000
                })
                Name (BDDS, Buffer (0x04)
                {
                    0x00, 0x00, 0x00, 0x00
                })
                CreateField (BDDS, Zero, 0x10, BDD0)
                CreateField (BDDS, 0x10, 0x10, BDD1)
                Name (DSY0, Buffer (0x28)
                {
                    /* 0000 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    /* 0008 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    /* 0010 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    /* 0018 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    /* 0020 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
                })
                Name (DSY1, Buffer (0x18)
                {
                    /* 0000 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    /* 0008 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    /* 0010 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
                })
                Name (DSY2, Buffer (0x10)
                {
                    /* 0000 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    /* 0008 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
                })
                Name (DSY3, Buffer (0x18)
                {
                    /* 0000 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    /* 0008 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    /* 0010 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
                })
                Name (DSY4, Buffer (0x10)
                {
                    /* 0000 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    /* 0008 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
                })
                Name (DSY5, Buffer (0x28)
                {
                    /* 0000 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    /* 0008 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    /* 0010 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    /* 0018 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    /* 0020 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
                })
                CreateField (DSY0, Zero, 0x40, DY00)
                CreateField (DSY0, 0x40, 0x40, DY01)
                CreateField (DSY0, 0x80, 0x40, DY02)
                CreateField (DSY0, 0xC0, 0x40, DY03)
                CreateField (DSY0, 0x0100, 0x40, DY04)
                CreateField (DSY1, Zero, 0x40, DY10)
                CreateField (DSY1, 0x40, 0x40, DY11)
                CreateField (DSY1, 0x80, 0x40, DY12)
                CreateField (DSY2, Zero, 0x40, DY20)
                CreateField (DSY2, 0x40, 0x10, DY21)
                CreateField (DSY2, 0x50, 0x10, DY22)
                CreateField (DSY0, Zero, 0xC0, DSX4)
                Name (BEDS, Package (0x13)
                {
                    Zero, 
                    Zero, 
                    Zero, 
                    Zero, 
                    Zero, 
                    Zero, 
                    Zero, 
                    Zero, 
                    Zero, 
                    Zero, 
                    Zero, 
                    Zero, 
                    Zero, 
                    Zero, 
                    Zero, 
                    Zero, 
                    Zero, 
                    Zero, 
                    Zero
                })
                Name (WIT0, Zero)
                Name (DSY6, Buffer (0x14)
                {
                    /* 0000 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    /* 0008 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    /* 0010 */    0x00, 0x00, 0x00, 0x00
                })
                CreateField (DSY6, Zero, 0x20, DY60)
                CreateField (DSY6, 0x20, 0x20, DY61)
                CreateField (DSY6, 0x40, 0x20, DY62)
                CreateField (DSY6, 0x60, 0x20, DY63)
                CreateField (DSY6, 0x80, 0x20, DY64)
                Name (WPRW, Buffer (0x14)
                {
                    /* 0000 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    /* 0008 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    /* 0010 */    0x00, 0x00, 0x00, 0x00
                })
                CreateField (WPRW, Zero, 0x08, WWD0)
                CreateField (WPRW, 0x08, 0x08, WWD1)
                CreateField (WPRW, 0x10, 0x08, WWD2)
                CreateField (WPRW, 0x18, 0x08, WWD3)
                CreateField (WPRW, 0x20, 0x08, WWD4)
                CreateField (WPRW, 0x28, 0x20, WWD5)
                Name (WPCI, Buffer (0x04)
                {
                    0x00, 0x00, 0x00, 0x00
                })
                CreateField (WPCI, Zero, 0x08, WPIR)
                CreateField (WPCI, 0x08, 0x03, WPIF)
                CreateField (WPCI, 0x0B, 0x05, WPID)
                CreateField (WPCI, 0x10, 0x08, WPIB)
                Name (BFDS, Package (0x04)
                {
                    0x02, 
                    0x02, 
                    0x02, 
                    0x02
                })
                Name (GSTS, Zero)
                Name (BFEF, Zero)
                Name (BGEF, Zero)
                Name (BGDS, Package (0x01)
                {
                    One
                })
                Name (BOOT, Buffer (0x28)
                {
                    /* 0000 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    /* 0008 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    /* 0010 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    /* 0018 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    /* 0020 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
                })
                CreateField (BOOT, Zero, 0x80, BO01)
                CreateField (BOOT, 0x80, 0x10, BO02)
                CreateField (BOOT, 0x90, 0x08, BO03)
                CreateField (BOOT, 0x98, 0x08, BO04)
                CreateField (BOOT, Zero, 0x20, PSID)
                CreateField (BOOT, 0x20, 0x20, SUPL)
                CreateField (BOOT, 0x40, 0x0100, SUPD)
                Name (PNAM, Buffer (0x46)
                {
                    /* 0000 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    /* 0008 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    /* 0010 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    /* 0018 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    /* 0020 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    /* 0028 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    /* 0030 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    /* 0038 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
                    /* 0040 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00
                })
                Name (LMST, Zero)
                Method (AAF1, 0, NotSerialized)
                {
                    Store (^^LPCB.EC0.WLEX, AS00)
                    Store (^^LPCB.EC0.BTEX, AS01)
                    Store (Zero, AS02)
                    Store (^^LPCB.EC0.D3GX, AS03)
                    Store (Zero, AS04)
                    Store (Zero, AS05)
                }

                Method (WGDS, 1, NotSerialized)
                {
                    Name (_T_0, Zero)
                    Store (Arg0, _T_0)
                    If (LEqual (_T_0, One))
                    {
                        Store (^^LPCB.EC0.WLAT, Index (BADG, Zero))
                    }
                    Else
                    {
                        If (LEqual (_T_0, 0x02))
                        {
                            Store (^^LPCB.EC0.BTAT, Index (BADG, One))
                        }
                        Else
                        {
                            If (LEqual (_T_0, 0x03))
                            {
                                Store (^^LPCB.EC0.BRTS, Index (BADG, 0x02))
                            }
                            Else
                            {
                                If (LEqual (_T_0, 0x08))
                                {
                                    Store (One, Index (BADG, 0x07))
                                }
                                Else
                                {
                                    If (LEqual (_T_0, 0x09))
                                    {
                                        Store (IHWM (0x0C, Zero), Local0)
                                        Store (Local0, Index (BADG, 0x08))
                                    }
                                    Else
                                    {
                                        If (LEqual (_T_0, 0x0A))
                                        {
                                            Store (^^LPCB.EC0.D3GX, Index (BADG, 0x09))
                                        }
                                        Else
                                        {
                                            If (LEqual (_T_0, 0x0C))
                                            {
                                                Store (^^LPCB.EC0.LANC, Index (BADG, 0x0B))
                                            }
                                            Else
                                            {
                                                If (LEqual (_T_0, 0x0D))
                                                {
                                                    Store (^^LPCB.EC0.LCDS, Index (BADG, 0x0C))
                                                }
                                                Else
                                                {
                                                    If (LEqual (_T_0, 0x0E))
                                                    {
                                                        Store (^^LPCB.EC0.BPWN, Index (BADG, 0x0D))
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }

                Method (WSDS, 2, NotSerialized)
                {
                    Store (Arg1, BUFF)
                    Store (Arg0, Local0)
                    Store (BF00, Local1)
                    Store (Zero, Index (BADG, Subtract (Local0, One)))
                    Name (_T_0, Zero)
                    Store (Local1, _T_0)
                    If (LEqual (_T_0, Zero))
                    {
                        Name (_T_1, Zero)
                        Store (Local0, _T_1)
                        If (LEqual (_T_1, 0x04))
                        {
                            Store (Zero, ^^LPCB.EC0.WLAT)
                        }
                        Else
                        {
                            If (LEqual (_T_1, 0x05))
                            {
                                Store (Zero, ^^LPCB.EC0.BTAT)
                            }
                            Else
                            {
                                If (LEqual (_T_1, 0x06))
                                {
                                    Store (Zero, ^^LPCB.EC0.BRTS)
                                }
                                Else
                                {
                                    If (LEqual (_T_1, 0x07))
                                    {
                                        Store (Zero, BAEF)
                                    }
                                    Else
                                    {
                                        If (LEqual (_T_1, 0x0B))
                                        {
                                            Store (Zero, ^^LPCB.EC0.D3GT)
                                        }
                                        Else
                                        {
                                            If (LEqual (_T_1, 0x0F))
                                            {
                                                Store (Zero, ^^LPCB.EC0.BPWN)
                                            }
                                            Else
                                            {
                                                Store (0x0100, Index (BADG, Subtract (Local0, One)))
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                    Else
                    {
                        Name (_T_2, Zero)
                        Store (Local0, _T_2)
                        If (LEqual (_T_2, 0x04))
                        {
                            Store (One, ^^LPCB.EC0.WLAT)
                        }
                        Else
                        {
                            If (LEqual (_T_2, 0x05))
                            {
                                Store (One, ^^LPCB.EC0.BTAT)
                            }
                            Else
                            {
                                If (LEqual (_T_2, 0x06))
                                {
                                    Store (Local1, ^^LPCB.EC0.BRTS)
                                }
                                Else
                                {
                                    If (LEqual (_T_2, 0x07))
                                    {
                                        Store (One, BAEF)
                                    }
                                    Else
                                    {
                                        If (LEqual (_T_2, 0x0B))
                                        {
                                            Store (One, ^^LPCB.EC0.D3GT)
                                        }
                                        Else
                                        {
                                            If (LEqual (_T_2, 0x0F))
                                            {
                                                Store (One, ^^LPCB.EC0.BPWN)
                                            }
                                            Else
                                            {
                                                Store (0x0100, Index (BADG, Subtract (Local0, One)))
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }

                Method (OEMN, 0, NotSerialized)
                {
                    If (LEqual (BGEF, One))
                    {
                        Store (NTDV, Local0)
                        If (LNotEqual (Local0, Zero))
                        {
                            Store (Zero, NTDV)
                            Return (Local0)
                        }
                    }

                    If (LEqual (BAEF, One))
                    {
                        Store (NTDC, Local0)
                        If (LNotEqual (Local0, Zero))
                        {
                            Store (Zero, NTDC)
                            Return (Local0)
                        }
                    }

                    If (LEqual (BFEF, One)) {}
                }

                Method (STRL, 2, NotSerialized)
                {
                    Store (Arg0, Local0)
                    Store (Arg1, BUFF)
                    Store (Zero, BBSB)
                    Name (_T_0, Zero)
                    Store (Local0, _T_0)
                    If (LEqual (_T_0, One))
                    {
                        Store (^^LPCB.EC0.THRO (Zero), Local1)
                        If (And (Local1, One))
                        {
                            Store (^^LPCB.EC0.THRO (One), Local1)
                            Store (Local1, BBSB)
                        }
                    }
                    Else
                    {
                        If (LEqual (_T_0, 0x02))
                        {
                            Store (BF00, Local1)
                            ^^LPCB.EC0.CLCK (Local1)
                        }
                        Else
                        {
                            Store (0x00010000, BBSB)
                        }
                    }
                }

                Method (GCPU, 1, NotSerialized)
                {
                    Store (DSY5, DSY0)
                    Store (Arg0, Local0)
                    Store (IHWM (Zero, Arg0), Local2)
                    Store (Local2, DSY6)
                    Store (DY60, DY00)
                    Store (DY61, DY01)
                    Store (DY62, DY02)
                    Store (DY63, DY03)
                }

                Method (MSRR, 1, NotSerialized)
                {
                    Store (DSY3, DSY1)
                    Store (Arg0, DY00)
                    Store (IHWM (One, Arg0), Local2)
                    Store (Local2, DSY6)
                    Store (DY60, DY10)
                    Store (DY61, DY11)
                    Store (Zero, WIT0)
                    Store (WIT0, DY12)
                }

                Method (MSRW, 1, NotSerialized)
                {
                    Store (DSY3, DSY1)
                    Store (IHWM (0x02, Arg0), Local2)
                    Store (Local2, DSY6)
                    Store (DY60, DY10)
                    Store (DY61, DY11)
                    Store (Zero, WIT0)
                    Store (WIT0, DY12)
                }

                Method (C4C3, 2, NotSerialized)
                {
                    If (LEqual (Arg0, 0x04))
                    {
                        Store (Arg1, BTMP)
                        Store (Zero, Index (BCDS, 0x09))
                    }
                    Else
                    {
                        Store (BTMP, Index (BCDS, 0x09))
                    }
                }

                Method (CPUF, 0, NotSerialized)
                {
                    Store (^^LPCB.EC0.THFN, Local0)
                    Multiply (Local0, 0x64, Local1)
                    Store (Local1, Index (BCDS, 0x0A))
                }

                Method (CPUT, 0, NotSerialized)
                {
                    Store (^^LPCB.EC0.CTMP, Index (BCDS, 0x0B))
                }

                Method (PCIR, 1, NotSerialized)
                {
                    Store (Arg0, Local0)
                    Store (IHWM (0x03, Arg0), Local2)
                    Store (Local2, DY20)
                    Store (Local2, DSY6)
                    Store (DSY4, DSY2)
                    Store (DY60, DY20)
                }

                Method (PCIW, 1, NotSerialized)
                {
                    Store (Arg0, Local0)
                    Store (Arg0, DY20)
                    Store (IHWM (0x04, Arg0), Local2)
                    Store (Local2, DSY6)
                    Store (DY61, BUFF)
                }

                Method (CPUS, 0, NotSerialized)
                {
                    Store (IHWM (0x05, Zero), Local2)
                    Store (Local2, BUFF)
                    Store (BUFF, Index (BCDS, 0x0C))
                }

                Method (PCID, 1, NotSerialized)
                {
                    Store (IHWM (0x06, Arg0), Local2)
                    Store (Local2, DSY6)
                }

                Method (BTIF, 2, NotSerialized)
                {
                    Store (Arg0, Local0)
                    Store (Arg1, BUFF)
                    If (LEqual (Local0, 0x13))
                    {
                        Store (BF00, Local1)
                        Store (BF04, BF00)
                        Store (Local1, BF04)
                    }

                    If (LEqual (Local0, 0x0D))
                    {
                        Store (BF02, BF00)
                        Store (BF01, Local1)
                        Store (BF02, BF00)
                        Store (BF01, Local1)
                    }

                    If (LEqual (Local0, 0x0E))
                    {
                        If (LEqual (BF00, Zero))
                        {
                            Store (0xFF, BF00)
                        }
                        Else
                        {
                            Store (BF00, Local1)
                            Store (One, BF00)
                        }
                    }

                    Name (_T_0, Zero)
                    Store (BF00, _T_0)
                    If (LEqual (_T_0, One))
                    {
                        If (LEqual (^^LPCB.EC0.BDC0, Zero))
                        {
                            Store (0x00020000, Local1)
                            Decrement (Local0)
                            Store (Local1, Index (BEDS, Local0))
                        }
                        Else
                        {
                            Name (_T_1, Zero)
                            Store (Local0, _T_1)
                            If (LEqual (_T_1, One))
                            {
                                Store (Zero, Index (BEDS, Zero))
                            }
                            Else
                            {
                                If (LEqual (_T_1, 0x02))
                                {
                                    Store (^^LPCB.EC0.BPTC, Index (BEDS, One))
                                }
                                Else
                                {
                                    If (LEqual (_T_1, 0x03))
                                    {
                                        Store (^^LPCB.EC0.BPV0, Index (BEDS, 0x02))
                                    }
                                    Else
                                    {
                                        If (LEqual (_T_1, 0x04))
                                        {
                                            Store (^^LPCB.EC0.BSCU, Index (BEDS, 0x03))
                                        }
                                        Else
                                        {
                                            If (LEqual (_T_1, 0x05))
                                            {
                                                Store (^^LPCB.EC0.BRC0, Index (BEDS, 0x04))
                                            }
                                            Else
                                            {
                                                If (LEqual (_T_1, 0x06))
                                                {
                                                    Store (^^LPCB.EC0.BFC0, Index (BEDS, 0x05))
                                                }
                                                Else
                                                {
                                                    If (LEqual (_T_1, 0x07))
                                                    {
                                                        Store (^^LPCB.EC0.BSCY, Index (BEDS, 0x06))
                                                    }
                                                    Else
                                                    {
                                                        If (LEqual (_T_1, 0x08))
                                                        {
                                                            Store (^^LPCB.EC0.BDC0, Index (BEDS, 0x07))
                                                        }
                                                        Else
                                                        {
                                                            If (LEqual (_T_1, 0x09))
                                                            {
                                                                Store (^^LPCB.EC0.BDV0, Index (BEDS, 0x08))
                                                            }
                                                            Else
                                                            {
                                                                If (LEqual (_T_1, 0x0A))
                                                                {
                                                                    Store (^^LPCB.EC0.BDAD, Index (BEDS, 0x09))
                                                                }
                                                                Else
                                                                {
                                                                    If (LEqual (_T_1, 0x0B))
                                                                    {
                                                                        Store (^^LPCB.EC0.BSN0, Index (BEDS, 0x0A))
                                                                    }
                                                                    Else
                                                                    {
                                                                        If (LEqual (_T_1, 0x0C))
                                                                        {
                                                                            If (LEqual (^^LPCB.EC0.ACIS, One))
                                                                            {
                                                                                Store (Zero, ^^LPCB.EC0.PSRC)
                                                                                Store (One, Index (BEDS, 0x0B))
                                                                            }
                                                                            Else
                                                                            {
                                                                                Store (0x00020000, Index (BEDS, 0x0B))
                                                                            }
                                                                        }
                                                                        Else
                                                                        {
                                                                            If (LEqual (_T_1, 0x0D))
                                                                            {
                                                                                Store (Local1, ^^LPCB.EC0.BTMA)
                                                                                Store (One, ^^LPCB.EC0.SCCF)
                                                                                Store (One, Index (BEDS, 0x0C))
                                                                            }
                                                                            Else
                                                                            {
                                                                                If (LEqual (_T_1, 0x0E))
                                                                                {
                                                                                    Store (Local1, ^^LPCB.EC0.BTPV)
                                                                                    Store (Zero, ^^LPCB.EC0.SCHG)
                                                                                    Store (One, ^^LPCB.EC0.SCPF)
                                                                                    Store (One, Index (BEDS, 0x0D))
                                                                                }
                                                                                Else
                                                                                {
                                                                                    If (LEqual (_T_1, 0x0F)) {}
                                                                                    Else
                                                                                    {
                                                                                        If (LEqual (_T_1, 0x10))
                                                                                        {
                                                                                            Store (^^LPCB.EC0.BDME, Index (BEDS, 0x0F))
                                                                                        }
                                                                                        Else
                                                                                        {
                                                                                            If (LEqual (_T_1, 0x11))
                                                                                            {
                                                                                                If (And (One, ^^LPCB.EC0.ADPT))
                                                                                                {
                                                                                                    Store (0x02BC, Index (BEDS, 0x10))
                                                                                                }
                                                                                                Else
                                                                                                {
                                                                                                    Store (0x0190, Index (BEDS, 0x10))
                                                                                                }
                                                                                            }
                                                                                            Else
                                                                                            {
                                                                                                If (LEqual (_T_1, 0x12))
                                                                                                {
                                                                                                    If (And (One, ^^LPCB.EC0.ADPT))
                                                                                                    {
                                                                                                        Store (0x01F4, Index (BEDS, 0x11))
                                                                                                    }
                                                                                                    Else
                                                                                                    {
                                                                                                        Store (0x02, Index (BEDS, 0x11))
                                                                                                    }
                                                                                                }
                                                                                                Else
                                                                                                {
                                                                                                    If (LEqual (_T_1, 0x13))
                                                                                                    {
                                                                                                        Name (_T_2, Zero)
                                                                                                        Store (BF04, _T_2)
                                                                                                        If (LEqual (_T_2, 0x03))
                                                                                                        {
                                                                                                            Store (^^LPCB.EC0.BATM, Local1)
                                                                                                            And (Local1, 0x7FFF, Local1)
                                                                                                            Store (Local1, Index (BEDS, 0x12))
                                                                                                        }
                                                                                                        Else
                                                                                                        {
                                                                                                            If (LEqual (_T_2, 0x08))
                                                                                                            {
                                                                                                                Store (^^LPCB.EC0.BTTC, Local0)
                                                                                                                Add (Local0, 0x0111, Local0)
                                                                                                                Multiply (Local0, 0x0A, Local0)
                                                                                                                Store (Local0, Index (BEDS, 0x12))
                                                                                                            }
                                                                                                            Else
                                                                                                            {
                                                                                                                If (LEqual (_T_2, 0x09))
                                                                                                                {
                                                                                                                    Store (^^LPCB.EC0.BPV0, Index (BEDS, 0x12))
                                                                                                                }
                                                                                                                Else
                                                                                                                {
                                                                                                                    If (LEqual (_T_2, 0x0A))
                                                                                                                    {
                                                                                                                        Store (^^LPCB.EC0.BSCU, Index (BEDS, 0x12))
                                                                                                                    }
                                                                                                                    Else
                                                                                                                    {
                                                                                                                        If (LEqual (_T_2, 0x0F))
                                                                                                                        {
                                                                                                                            Store (^^LPCB.EC0.BRC0, Index (BEDS, 0x12))
                                                                                                                        }
                                                                                                                        Else
                                                                                                                        {
                                                                                                                            If (LEqual (_T_2, 0x17))
                                                                                                                            {
                                                                                                                                Store (^^LPCB.EC0.BSCY, Index (BEDS, 0x12))
                                                                                                                            }
                                                                                                                            Else
                                                                                                                            {
                                                                                                                                If (LEqual (_T_2, 0x18))
                                                                                                                                {
                                                                                                                                    Store (^^LPCB.EC0.BDC0, Index (BEDS, 0x12))
                                                                                                                                }
                                                                                                                                Else
                                                                                                                                {
                                                                                                                                    If (LEqual (_T_2, 0x19))
                                                                                                                                    {
                                                                                                                                        Store (^^LPCB.EC0.BDV0, Index (BEDS, 0x12))
                                                                                                                                    }
                                                                                                                                    Else
                                                                                                                                    {
                                                                                                                                        If (LEqual (_T_2, 0x1B))
                                                                                                                                        {
                                                                                                                                            Store (^^LPCB.EC0.BDAD, Index (BEDS, 0x12))
                                                                                                                                        }
                                                                                                                                        Else
                                                                                                                                        {
                                                                                                                                            If (LEqual (_T_2, 0x1C))
                                                                                                                                            {
                                                                                                                                                Store (^^LPCB.EC0.BSN0, Index (BEDS, 0x12))
                                                                                                                                            }
                                                                                                                                            Else
                                                                                                                                            {
                                                                                                                                            }
                                                                                                                                        }
                                                                                                                                    }
                                                                                                                                }
                                                                                                                            }
                                                                                                                        }
                                                                                                                    }
                                                                                                                }
                                                                                                            }
                                                                                                        }
                                                                                                    }
                                                                                                    Else
                                                                                                    {
                                                                                                    }
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                    }
                                                                                }
                                                                            }
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                    Else
                    {
                        Name (_T_3, Zero)
                        Store (Local0, _T_3)
                        If (LEqual (_T_3, One))
                        {
                            Store (0x00020000, Index (BEDS, Zero))
                        }
                        Else
                        {
                            If (LEqual (_T_3, 0x02))
                            {
                                Store (0x00020000, Index (BEDS, One))
                            }
                            Else
                            {
                                If (LEqual (_T_3, 0x03))
                                {
                                    Store (0x00020000, Index (BEDS, 0x02))
                                }
                                Else
                                {
                                    If (LEqual (_T_3, 0x04))
                                    {
                                        Store (0x00020000, Index (BEDS, 0x03))
                                    }
                                    Else
                                    {
                                        If (LEqual (_T_3, 0x05))
                                        {
                                            Store (0x00020000, Index (BEDS, 0x04))
                                        }
                                        Else
                                        {
                                            If (LEqual (_T_3, 0x06))
                                            {
                                                Store (0x00020000, Index (BEDS, 0x05))
                                            }
                                            Else
                                            {
                                                If (LEqual (_T_3, 0x07))
                                                {
                                                    Store (0x00020000, Index (BEDS, 0x06))
                                                }
                                                Else
                                                {
                                                    If (LEqual (_T_3, 0x08))
                                                    {
                                                        Store (0x00020000, Index (BEDS, 0x07))
                                                    }
                                                    Else
                                                    {
                                                        If (LEqual (_T_3, 0x09))
                                                        {
                                                            Store (0x00020000, Index (BEDS, 0x08))
                                                        }
                                                        Else
                                                        {
                                                            If (LEqual (_T_3, 0x0A))
                                                            {
                                                                Store (0x00020000, Index (BEDS, 0x09))
                                                            }
                                                            Else
                                                            {
                                                                If (LEqual (_T_3, 0x0B))
                                                                {
                                                                    Store (0x00020000, Index (BEDS, 0x0A))
                                                                }
                                                                Else
                                                                {
                                                                    If (LEqual (_T_3, 0x0C))
                                                                    {
                                                                        If (LEqual (^^LPCB.EC0.BDC0, Zero))
                                                                        {
                                                                            Store (0x00030000, Index (BEDS, 0x0B))
                                                                        }
                                                                        Else
                                                                        {
                                                                            Store (One, ^^LPCB.EC0.PSRC)
                                                                            Store (One, Index (BEDS, 0x0B))
                                                                        }
                                                                    }
                                                                    Else
                                                                    {
                                                                        If (LEqual (_T_3, 0x0D))
                                                                        {
                                                                            Store (0x00020000, Index (BEDS, 0x0C))
                                                                        }
                                                                        Else
                                                                        {
                                                                            If (LEqual (_T_3, 0x0E))
                                                                            {
                                                                                Store (One, ^^LPCB.EC0.SCHG)
                                                                                Store (One, ^^LPCB.EC0.SCPF)
                                                                                Store (One, Index (BEDS, 0x0D))
                                                                            }
                                                                            Else
                                                                            {
                                                                                If (LEqual (_T_3, 0x0F))
                                                                                {
                                                                                    Store (0x00020000, Index (BEDS, 0x0E))
                                                                                }
                                                                                Else
                                                                                {
                                                                                    If (LEqual (_T_3, 0x10))
                                                                                    {
                                                                                        Store (0x00020000, Index (BEDS, 0x0F))
                                                                                    }
                                                                                    Else
                                                                                    {
                                                                                        If (LEqual (_T_3, 0x11))
                                                                                        {
                                                                                            If (And (One, ^^LPCB.EC0.ADPT))
                                                                                            {
                                                                                                Store (0x02BC, Index (BEDS, 0x10))
                                                                                            }
                                                                                            Else
                                                                                            {
                                                                                                Store (0x0190, Index (BEDS, 0x10))
                                                                                            }
                                                                                        }
                                                                                        Else
                                                                                        {
                                                                                            If (LEqual (_T_3, 0x12))
                                                                                            {
                                                                                                If (And (One, ^^LPCB.EC0.ADPT))
                                                                                                {
                                                                                                    Store (0x01F4, Index (BEDS, 0x11))
                                                                                                }
                                                                                                Else
                                                                                                {
                                                                                                    Store (0x02, Index (BEDS, 0x11))
                                                                                                }
                                                                                            }
                                                                                        }
                                                                                    }
                                                                                }
                                                                            }
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }

                Method (CKGS, 0, NotSerialized)
                {
                    Store (One, GSTS)
                    Return (GSTS)
                }

                Method (WSHP, 1, NotSerialized)
                {
                }

                Method (WSSL, 1, NotSerialized)
                {
                }

                Method (WSSP, 1, NotSerialized)
                {
                }

                Method (WSSE, 1, NotSerialized)
                {
                }

                Method (WSVE, 1, NotSerialized)
                {
                    Store (Arg0, Local0)
                    If (LEqual (Local0, One))
                    {
                        Store (One, BGEF)
                    }
                    Else
                    {
                        Store (Zero, BGEF)
                    }

                    Store (Zero, Index (BGDS, Zero))
                }

                Method (GBDS, 0, NotSerialized)
                {
                    IHWM (0x07, Zero)
                    Store (DI00, DSY4)
                    Store (DSY4, BO01)
                    Store (Zero, BO02)
                    Store (Zero, BO03)
                    Store (Zero, BO04)
                }

                Method (SBDS, 1, NotSerialized)
                {
                    IHWM (0x08, Arg0)
                }

                Method (CPSE, 1, NotSerialized)
                {
                    IHWM (0x09, Arg0)
                    Store (DI00, BUF1)
                }

                Method (SPSW, 1, NotSerialized)
                {
                    IHWM (0x0A, Arg0)
                    Store (DI00, BUF1)
                }

                Method (CPSW, 1, NotSerialized)
                {
                    IHWM (0x0B, Arg0)
                    Store (DI00, BUF1)
                }

                Method (D3GE, 0, NotSerialized)
                {
                    Store (D3GT, Local0)
                    Name (_T_0, Zero)
                    Store (Local0, _T_0)
                    If (LEqual (_T_0, Zero))
                    {
                        Store (Zero, BUF1)
                    }
                    Else
                    {
                        If (LEqual (_T_0, One))
                        {
                            Store (One, BUF1)
                        }
                        Else
                        {
                            If (LEqual (_T_0, 0x02))
                            {
                                Store (0x02, BUF1)
                            }
                            Else
                            {
                                If (LEqual (_T_0, 0x03))
                                {
                                    Store (0x03, BUF1)
                                }
                                Else
                                {
                                    If (LEqual (_T_0, 0x04))
                                    {
                                        Store (0x04, BUF1)
                                    }
                                    Else
                                    {
                                        Store (0x00010000, BUF1)
                                    }
                                }
                            }
                        }
                    }
                }

                Method (GVGA, 0, NotSerialized)
                {
                    Store (DVGA, Local0)
                    Name (_T_0, Zero)
                    Store (Local0, _T_0)
                    If (LNotEqual (Match (Package (0x02)
                                    {
                                        Zero, 
                                        0xFF
                                    }, MEQ, _T_0, MTR, Zero, Zero), Ones))
                    {
                        Store (Zero, BUF1)
                    }
                    Else
                    {
                        If (LEqual (_T_0, 0x02))
                        {
                            Store (0x02, BUF1)
                        }
                        Else
                        {
                            If (LEqual (_T_0, 0x03))
                            {
                                If (LEqual (DISC, 0x03))
                                {
                                    Store (0x06, BUF1)
                                }
                                Else
                                {
                                    Store (0x03, BUF1)
                                }
                            }
                            Else
                            {
                                If (LEqual (_T_0, 0x04))
                                {
                                    Store (0x04, BUF1)
                                }
                                Else
                                {
                                    Store (0x00010000, BUF1)
                                }
                            }
                        }
                    }
                }

                Method (DCCD, 0, NotSerialized)
                {
                    Store (CCDT, Local0)
                    And (Local0, 0x0F, Local0)
                    Store (Local0, BUF1)
                }

                Method (DTPD, 0, NotSerialized)
                {
                    Store (TPAD, Local0)
                    Name (_T_0, Zero)
                    Store (Local0, _T_0)
                    If (LNotEqual (Match (Package (0x02)
                                    {
                                        Zero, 
                                        0xFF
                                    }, MEQ, _T_0, MTR, Zero, Zero), Ones))
                    {
                        Store (Zero, BUF1)
                    }
                    Else
                    {
                        If (LEqual (_T_0, One))
                        {
                            Store (One, BUF1)
                        }
                        Else
                        {
                            If (LEqual (_T_0, 0x02))
                            {
                                Store (0x02, BUF1)
                            }
                            Else
                            {
                                If (LEqual (_T_0, 0x04))
                                {
                                    Store (0x03, BUF1)
                                }
                                Else
                                {
                                    Store (0x00010000, BUF1)
                                }
                            }
                        }
                    }
                }

                Method (LMON, 0, NotSerialized)
                {
                    Store (One, ^^LPCB.EC0.LMEN)
                    Store (One, LMST)
                    Return (Zero)
                }

                Method (LMOF, 0, NotSerialized)
                {
                    Store (Zero, ^^LPCB.EC0.LMEN)
                    Store (Zero, LMST)
                    Return (Zero)
                }

                Method (GCMS, 2, NotSerialized)
                {
                    Store (Zero, Local0)
                    Store (Zero, Local1)
                    Store (Zero, Local2)
                    Store (Zero, Local3)
                    If (^^LPCB.EC0.WLEX)
                    {
                        If (And (COMS, 0x80))
                        {
                            Or (Local0, 0x80, Local0)
                        }

                        If (And (COMS, One))
                        {
                            Or (Local0, One, Local0)
                        }

                        If (^^LPCB.EC0.WLAT)
                        {
                            If (And (COMS, 0x80))
                            {
                                Or (Local1, 0x80, Local1)
                            }

                            If (And (COMS, One))
                            {
                                Or (Local1, One, Local1)
                            }
                        }
                        Else
                        {
                            If (And (COMS, 0x80))
                            {
                                Or (Local3, 0x80, Local3)
                            }

                            If (And (COMS, One))
                            {
                                Or (Local3, One, Local3)
                            }

                            Not (Local3, Local2)
                            And (Local1, Local2, Local1)
                        }
                    }
                    Else
                    {
                        Not (0x81, Local2)
                        And (Local0, Local2, Local0)
                        And (Local1, Local2, Local1)
                    }

                    If (^^LPCB.EC0.BTEX)
                    {
                        Or (Local0, 0x0800, Local0)
                        If (^^LPCB.EC0.BTAT)
                        {
                            Or (Local1, 0x0800, Local1)
                        }
                        Else
                        {
                            Not (0x0800, Local2)
                            And (Local1, Local2, Local1)
                        }
                    }
                    Else
                    {
                        Not (0x0800, Local2)
                        And (Local0, Local2, Local0)
                        And (Local1, Local2, Local1)
                    }

                    If (^^LPCB.EC0.D3GX)
                    {
                        Or (Local0, 0x40, Local0)
                        If (^^LPCB.EC0.D3GT)
                        {
                            Or (Local1, 0x40, Local1)
                        }
                        Else
                        {
                            Not (0x40, Local2)
                            And (Local1, Local2, Local1)
                        }
                    }
                    Else
                    {
                        Not (0x40, Local2)
                        And (Local0, Local2, Local0)
                        And (Local1, Local2, Local1)
                    }

                    Store (Local0, Arg0)
                    Store (Local1, Arg1)
                    Return (Zero)
                }

                Method (SCMS, 2, NotSerialized)
                {
                    Store (Zero, Local0)
                    If (And (Arg1, One))
                    {
                        If (^^LPCB.EC0.WLEX)
                        {
                            Store (One, ^^LPCB.EC0.WLAT)
                        }
                        Else
                        {
                            If (LNotEqual (Arg0, 0xFFFF))
                            {
                                Return (0xE2)
                            }
                        }
                    }
                    Else
                    {
                        If (^^LPCB.EC0.WLEX)
                        {
                            Store (Zero, ^^LPCB.EC0.WLAT)
                        }
                    }

                    If (And (COMS, 0x80))
                    {
                        If (And (Arg1, 0x80))
                        {
                            If (^^LPCB.EC0.WLEX)
                            {
                                Store (One, ^^LPCB.EC0.WLAT)
                            }
                            Else
                            {
                                If (LNotEqual (Arg0, 0xFFFF))
                                {
                                    Return (0xE2)
                                }
                            }
                        }
                        Else
                        {
                            If (^^LPCB.EC0.WLEX)
                            {
                                Store (Zero, ^^LPCB.EC0.WLAT)
                            }
                        }
                    }

                    If (And (Arg1, 0x0800))
                    {
                        If (^^LPCB.EC0.BTEX)
                        {
                            Store (One, ^^LPCB.EC0.BTAT)
                        }
                        Else
                        {
                            If (LNotEqual (Arg0, 0xFFFF))
                            {
                                Return (0xE2)
                            }
                        }
                    }
                    Else
                    {
                        If (^^LPCB.EC0.BTEX)
                        {
                            Store (Zero, ^^LPCB.EC0.BTAT)
                        }
                    }

                    If (And (Arg1, 0x40))
                    {
                        If (^^LPCB.EC0.D3GX)
                        {
                            Store (One, ^^LPCB.EC0.D3GT)
                        }
                        Else
                        {
                            If (LNotEqual (Arg0, 0xFFFF))
                            {
                                Return (0xE2)
                            }
                        }
                    }
                    Else
                    {
                        If (^^LPCB.EC0.D3GX)
                        {
                            Store (Zero, ^^LPCB.EC0.D3GT)
                        }
                    }

                    Return (Zero)
                }

                Method (GAPS, 1, NotSerialized)
                {
                    Return (0xE1)
                }

                Method (SAPS, 2, NotSerialized)
                {
                    Return (0xE1)
                }

                Method (GMES, 1, NotSerialized)
                {
                    Return (0xE1)
                }

                Method (SMES, 2, NotSerialized)
                {
                    Return (0xE1)
                }

                Method (GDSS, 1, NotSerialized)
                {
                    Return (0xE1)
                }

                Method (SDSS, 2, NotSerialized)
                {
                    Return (0xE1)
                }

                Method (GOTS, 1, NotSerialized)
                {
                    Store (Zero, Local0)
                    If (LEqual (^^LPCB.EC0.TKEY, Zero))
                    {
                        Or (Local0, 0x02, Local0)
                    }

                    If (^^LPCB.EC0.BPWN)
                    {
                        Or (Local0, 0x10, Local0)
                    }

                    Store (Local0, Arg0)
                    Return (Zero)
                }

                Method (SOTS, 2, NotSerialized)
                {
                    If (And (Arg0, 0x02))
                    {
                        If (And (Arg1, 0x02))
                        {
                            Store (Zero, ^^LPCB.EC0.TKEY)
                        }
                        Else
                        {
                            Store (One, ^^LPCB.EC0.TKEY)
                        }
                    }

                    If (And (Arg0, 0x10))
                    {
                        If (And (Arg1, 0x10))
                        {
                            Store (One, ^^LPCB.EC0.BPWN)
                        }
                        Else
                        {
                            Store (Zero, ^^LPCB.EC0.BPWN)
                        }
                    }

                    Return (Zero)
                }

                Name (_WDG, Buffer (0x0140)
                {
                    /* 0000 */    0x09, 0x4E, 0x76, 0x95, 0x56, 0xFB, 0x83, 0x4E, 
                    /* 0008 */    0xB3, 0x1A, 0x37, 0x76, 0x1F, 0x60, 0x99, 0x4A, 
                    /* 0010 */    0x41, 0x41, 0x01, 0x01, 0x58, 0xF2, 0xF4, 0x6A, 
                    /* 0018 */    0x01, 0xB4, 0xFD, 0x42, 0xBE, 0x91, 0x3D, 0x4A, 
                    /* 0020 */    0xC2, 0xD7, 0xC0, 0xD3, 0x42, 0x41, 0x01, 0x02, 
                    /* 0028 */    0xAC, 0x61, 0x1A, 0xCC, 0x56, 0x42, 0xA3, 0x41, 
                    /* 0030 */    0xB9, 0xE0, 0x05, 0xA4, 0x45, 0xAD, 0xE2, 0xF5, 
                    /* 0038 */    0x80, 0x00, 0x01, 0x08, 0x53, 0x44, 0x8C, 0xE7, 
                    /* 0040 */    0x27, 0x02, 0x61, 0x48, 0x9E, 0xDE, 0xF5, 0x60, 
                    /* 0048 */    0x0B, 0x4A, 0x3D, 0x39, 0x42, 0x42, 0x01, 0x02, 
                    /* 0050 */    0x7B, 0x4F, 0xE0, 0xAA, 0xC5, 0xB3, 0x65, 0x48, 
                    /* 0058 */    0x95, 0xD6, 0x9F, 0xAC, 0x7F, 0xF3, 0xE9, 0x2B, 
                    /* 0060 */    0x42, 0x43, 0x01, 0x02, 0x79, 0x4C, 0xF9, 0xCF, 
                    /* 0068 */    0x77, 0x6C, 0xF7, 0x4A, 0xAC, 0x56, 0x7D, 0xD0, 
                    /* 0070 */    0xCE, 0x01, 0xC9, 0x97, 0x42, 0x44, 0x01, 0x02, 
                    /* 0078 */    0xC5, 0x2E, 0x77, 0x79, 0xB1, 0x04, 0xFD, 0x4B, 
                    /* 0080 */    0x84, 0x3C, 0x61, 0xE7, 0xF7, 0x7B, 0x6C, 0xC9, 
                    /* 0088 */    0x42, 0x45, 0x01, 0x02, 0xB7, 0xA0, 0xC9, 0xA7, 
                    /* 0090 */    0x9D, 0x4C, 0x72, 0x4C, 0x83, 0xBB, 0x53, 0xA3, 
                    /* 0098 */    0x45, 0x91, 0x71, 0xDF, 0x42, 0x46, 0x01, 0x02, 
                    /* 00A0 */    0x4F, 0x06, 0x3A, 0x65, 0x3A, 0xA2, 0x5F, 0x48, 
                    /* 00A8 */    0xB3, 0xD9, 0x13, 0xF6, 0x53, 0x2A, 0x01, 0x82, 
                    /* 00B0 */    0x42, 0x47, 0x01, 0x02, 0x45, 0xDD, 0x23, 0x59, 
                    /* 00B8 */    0x80, 0x04, 0xD5, 0x4E, 0xB6, 0x1A, 0xC9, 0xEC, 
                    /* 00C0 */    0x6C, 0x90, 0xE2, 0x6A, 0x42, 0x48, 0x01, 0x02, 
                    /* 00C8 */    0x97, 0x13, 0xAA, 0xFA, 0x88, 0x11, 0x8F, 0x44, 
                    /* 00D0 */    0x85, 0x16, 0x9A, 0x07, 0x98, 0x7D, 0xD3, 0x8A, 
                    /* 00D8 */    0x42, 0x49, 0x01, 0x02, 0xA7, 0xB1, 0x85, 0xDB, 
                    /* 00E0 */    0x9A, 0x06, 0xBB, 0x4A, 0xA2, 0xB5, 0xD1, 0x86, 
                    /* 00E8 */    0xA2, 0x1B, 0x80, 0xF1, 0x81, 0x00, 0x01, 0x08, 
                    /* 00F0 */    0x91, 0x6B, 0x91, 0x36, 0x64, 0x1A, 0x83, 0x45, 
                    /* 00F8 */    0x84, 0xD0, 0x53, 0x83, 0x0F, 0xB9, 0x10, 0x8D, 
                    /* 0100 */    0x82, 0x00, 0x01, 0x08, 0x5E, 0xA1, 0x6A, 0x67, 
                    /* 0108 */    0x47, 0x6A, 0x9F, 0x4D, 0xA2, 0xCC, 0x1E, 0x6D, 
                    /* 0110 */    0x18, 0xD1, 0x40, 0x26, 0xBC, 0x00, 0x01, 0x08, 
                    /* 0118 */    0xEA, 0x69, 0xEF, 0x61, 0x5C, 0x86, 0xC3, 0x4B, 
                    /* 0120 */    0xA5, 0x02, 0xA0, 0xDE, 0xBA, 0x0C, 0xB5, 0x31, 
                    /* 0128 */    0x41, 0x41, 0x01, 0x02, 0x21, 0x12, 0x90, 0x05, 
                    /* 0130 */    0x66, 0xD5, 0xD1, 0x11, 0xB2, 0xF0, 0x00, 0xA0, 
                    /* 0138 */    0xC9, 0x06, 0x29, 0x10, 0x41, 0x42, 0x01, 0x00
                })
                Method (WQAA, 1, NotSerialized)
                {
                    AAF1 ()
                    Store (AADS, BUFF)
                    Return (BUFF)
                }

                Name (WQAB, Buffer (0x042A)
                {
                    /* 0000 */    0x46, 0x4F, 0x4D, 0x42, 0x01, 0x00, 0x00, 0x00, 
                    /* 0008 */    0x1A, 0x04, 0x00, 0x00, 0x38, 0x10, 0x00, 0x00, 
                    /* 0010 */    0x44, 0x53, 0x00, 0x01, 0x1A, 0x7D, 0xDA, 0x54, 
                    /* 0018 */    0x18, 0xCF, 0x87, 0x00, 0x01, 0x06, 0x18, 0x42, 
                    /* 0020 */    0x10, 0x07, 0x10, 0x22, 0x21, 0x04, 0x12, 0x01, 
                    /* 0028 */    0xA1, 0xC8, 0x2C, 0x0C, 0x86, 0x10, 0x38, 0x2E, 
                    /* 0030 */    0x24, 0x15, 0x07, 0x85, 0x12, 0x02, 0xA1, 0xFE, 
                    /* 0038 */    0x04, 0xF2, 0x2B, 0x00, 0xA1, 0x43, 0x01, 0x32, 
                    /* 0040 */    0x05, 0x18, 0x14, 0xE0, 0x14, 0x41, 0x04, 0xBD, 
                    /* 0048 */    0x0A, 0xB0, 0x29, 0xC0, 0xA4, 0x00, 0x8B, 0x02, 
                    /* 0050 */    0xB4, 0x0B, 0xB0, 0x2C, 0x40, 0xB7, 0x00, 0xE9, 
                    /* 0058 */    0xB0, 0x44, 0x24, 0x38, 0x4A, 0x0C, 0x38, 0x4A, 
                    /* 0060 */    0x27, 0xB6, 0x70, 0xC3, 0x06, 0x2F, 0x14, 0x45, 
                    /* 0068 */    0x33, 0x88, 0x92, 0xA0, 0x72, 0x01, 0xBE, 0x11, 
                    /* 0070 */    0x04, 0x5E, 0xAE, 0x00, 0xC9, 0x13, 0x90, 0x66, 
                    /* 0078 */    0x01, 0x86, 0x05, 0x58, 0x17, 0x20, 0x7B, 0x08, 
                    /* 0080 */    0x54, 0xEA, 0x10, 0x50, 0x72, 0x86, 0x80, 0x1A, 
                    /* 0088 */    0x40, 0xAB, 0x13, 0x10, 0x7E, 0xA5, 0x53, 0x42, 
                    /* 0090 */    0x12, 0x84, 0x33, 0x56, 0xF1, 0xF8, 0x9A, 0x45, 
                    /* 0098 */    0xD3, 0x73, 0x92, 0x73, 0x0C, 0x39, 0x1E, 0x17, 
                    /* 00A0 */    0x7A, 0x10, 0x3C, 0xAA, 0x04, 0x10, 0x26, 0x7F, 
                    /* 00A8 */    0xC8, 0x0A, 0x07, 0x83, 0xD2, 0x30, 0x16, 0xEA, 
                    /* 00B0 */    0x62, 0xD4, 0xA8, 0x91, 0xB2, 0x01, 0x19, 0xA2, 
                    /* 00B8 */    0x24, 0x38, 0xD4, 0xA8, 0x2D, 0x51, 0x80, 0xF9, 
                    /* 00C0 */    0x71, 0x68, 0x76, 0x6D, 0x8F, 0x85, 0x40, 0x32, 
                    /* 00C8 */    0x69, 0x43, 0x41, 0x49, 0x81, 0xD0, 0xD8, 0xCE, 
                    /* 00D0 */    0xD4, 0x33, 0x8A, 0x78, 0xA4, 0x86, 0x49, 0xE0, 
                    /* 00D8 */    0x51, 0x44, 0x36, 0x1A, 0x87, 0xC6, 0x0E, 0xC3, 
                    /* 00E0 */    0xC3, 0x0C, 0x76, 0x10, 0x87, 0x71, 0xCC, 0x91, 
                    /* 00E8 */    0x13, 0x78, 0x42, 0x47, 0x7A, 0xE4, 0x85, 0xCD, 
                    /* 00F0 */    0x53, 0xA8, 0x31, 0x9A, 0x83, 0x22, 0x82, 0x8F, 
                    /* 00F8 */    0x02, 0xE8, 0x31, 0x85, 0x3D, 0xDA, 0xD8, 0xE7, 
                    /* 0100 */    0x6B, 0xE1, 0x83, 0x15, 0xC6, 0x11, 0x1C, 0x57, 
                    /* 0108 */    0x82, 0xFF, 0xFF, 0x89, 0x1F, 0x4A, 0x8F, 0x70, 
                    /* 0110 */    0x12, 0x34, 0x45, 0x0A, 0x72, 0xD4, 0x18, 0x59, 
                    /* 0118 */    0x38, 0xD2, 0x3A, 0x2B, 0x32, 0x77, 0x03, 0x1B, 
                    /* 0120 */    0xA8, 0x31, 0x01, 0xBA, 0x46, 0x22, 0x82, 0xE3, 
                    /* 0128 */    0x39, 0x10, 0x8C, 0x0C, 0x08, 0x79, 0x3E, 0x17, 
                    /* 0130 */    0x68, 0x84, 0x26, 0xB0, 0x7B, 0x01, 0xDA, 0x04, 
                    /* 0138 */    0x78, 0x83, 0xD0, 0x38, 0x22, 0x04, 0x6E, 0x6D, 
                    /* 0140 */    0x12, 0xB2, 0x85, 0x43, 0xE6, 0x15, 0x2B, 0x4A, 
                    /* 0148 */    0x8C, 0x63, 0x3A, 0xB2, 0x1A, 0x51, 0x84, 0x54, 
                    /* 0150 */    0xD9, 0xCD, 0x40, 0x08, 0x51, 0x62, 0x86, 0x8C, 
                    /* 0158 */    0x18, 0x2C, 0xC8, 0x63, 0x44, 0x0C, 0x0F, 0xD1, 
                    /* 0160 */    0x70, 0x91, 0xDA, 0x1F, 0x04, 0x91, 0xF7, 0x98, 
                    /* 0168 */    0xD0, 0x79, 0xC0, 0x91, 0x46, 0x83, 0x3A, 0x2C, 
                    /* 0170 */    0xF8, 0x4C, 0xE0, 0xC9, 0x3D, 0x23, 0x78, 0x6C, 
                    /* 0178 */    0xE7, 0x1C, 0xE4, 0x3C, 0x8F, 0xED, 0x11, 0xE2, 
                    /* 0180 */    0x61, 0xC0, 0xC3, 0x66, 0xB7, 0x04, 0x9F, 0x2D, 
                    /* 0188 */    0x7C, 0x3A, 0xC0, 0xBB, 0x06, 0xD4, 0xB5, 0xE0, 
                    /* 0190 */    0xA1, 0x80, 0x4D, 0x32, 0x1C, 0x66, 0x88, 0x1E, 
                    /* 0198 */    0x6B, 0xB8, 0x13, 0x38, 0x44, 0x06, 0xE8, 0xB1, 
                    /* 01A0 */    0xFA, 0x3C, 0x80, 0x9B, 0xDB, 0xC9, 0x1C, 0xFA, 
                    /* 01A8 */    0xFB, 0x44, 0xB3, 0x37, 0x09, 0x42, 0x70, 0x3C, 
                    /* 01B0 */    0xBE, 0x44, 0xB0, 0x09, 0x3F, 0x3A, 0x90, 0x41, 
                    /* 01B8 */    0xA0, 0x46, 0x66, 0x68, 0x0F, 0xF5, 0xB4, 0x5E, 
                    /* 01C0 */    0x06, 0x7C, 0x0C, 0x30, 0x81, 0xC5, 0x42, 0x48, 
                    /* 01C8 */    0x01, 0x84, 0xC6, 0x03, 0x7E, 0xC5, 0x07, 0x0F, 
                    /* 01D0 */    0x72, 0x63, 0xF0, 0x7C, 0x7D, 0x86, 0xD0, 0xC9, 
                    /* 01D8 */    0x42, 0x46, 0x56, 0xE1, 0xF1, 0xD0, 0xE3, 0x82, 
                    /* 01E0 */    0xEF, 0x08, 0x98, 0x0B, 0x83, 0x87, 0xEE, 0x21, 
                    /* 01E8 */    0x3D, 0x1F, 0x58, 0xD2, 0x21, 0x83, 0xFE, 0xFF, 
                    /* 01F0 */    0x45, 0x9D, 0x56, 0xF8, 0xA1, 0x82, 0x9E, 0x27, 
                    /* 01F8 */    0x18, 0x6C, 0xD0, 0xB0, 0x1E, 0xCC, 0x39, 0xF9, 
                    /* 0200 */    0xCF, 0xE2, 0xB1, 0xC1, 0x07, 0xC4, 0x7B, 0x9F, 
                    /* 0208 */    0x35, 0x19, 0xC1, 0xC9, 0x1A, 0xD0, 0x87, 0x07, 
                    /* 0210 */    0xDC, 0xA1, 0x02, 0xBC, 0x30, 0x87, 0xC5, 0xAF, 
                    /* 0218 */    0x15, 0x70, 0x0F, 0x0B, 0x6C, 0x94, 0x7C, 0x34, 
                    /* 0220 */    0x1E, 0xC2, 0x59, 0x3C, 0x0D, 0x18, 0xC6, 0xE8, 
                    /* 0228 */    0x4F, 0x01, 0xB0, 0x6F, 0x18, 0x1E, 0x8B, 0x0F, 
                    /* 0230 */    0x3A, 0x3E, 0xE9, 0x80, 0x63, 0x70, 0xFC, 0x0A, 
                    /* 0238 */    0x83, 0x3B, 0xE9, 0x00, 0x8F, 0xB9, 0x3E, 0xE9, 
                    /* 0240 */    0x80, 0xED, 0x7C, 0xC0, 0x4E, 0x39, 0xD0, 0x4C, 
                    /* 0248 */    0x80, 0xB0, 0x00, 0x6F, 0x04, 0xC9, 0x5A, 0x37, 
                    /* 0250 */    0x85, 0xF1, 0xFF, 0xFF, 0x94, 0x03, 0xB8, 0xBA, 
                    /* 0258 */    0x4B, 0xF8, 0x04, 0x01, 0x56, 0x8C, 0xE7, 0x0D, 
                    /* 0260 */    0x8B, 0x06, 0xD4, 0x08, 0x9E, 0x1F, 0x60, 0x1F, 
                    /* 0268 */    0x73, 0xE0, 0x5F, 0x6D, 0x7C, 0xBE, 0x09, 0x72, 
                    /* 0270 */    0x52, 0x41, 0x0E, 0xE5, 0xF5, 0xE6, 0xC9, 0x21, 
                    /* 0278 */    0xCC, 0x8B, 0xCE, 0x13, 0x8E, 0x87, 0x56, 0x21, 
                    /* 0280 */    0x88, 0x9C, 0x1D, 0x73, 0x08, 0xD2, 0x03, 0x8E, 
                    /* 0288 */    0x51, 0x0C, 0x72, 0x66, 0x51, 0xA3, 0x45, 0x31, 
                    /* 0290 */    0x5E, 0x90, 0x68, 0x11, 0x8F, 0xE0, 0x31, 0x87, 
                    /* 0298 */    0xC5, 0x3A, 0x10, 0xE8, 0x1F, 0xE5, 0x63, 0x0E, 
                    /* 02A0 */    0x70, 0xFF, 0xFF, 0x1F, 0x73, 0x00, 0x47, 0xF2, 
                    /* 02A8 */    0x8E, 0x24, 0xA0, 0x1A, 0x15, 0xBF, 0x32, 0xB0, 
                    /* 02B0 */    0x33, 0x09, 0x30, 0x89, 0xF2, 0xF4, 0xD0, 0x38, 
                    /* 02B8 */    0xAD, 0xF1, 0x39, 0x20, 0x1B, 0x27, 0x21, 0x3A, 
                    /* 02C0 */    0x08, 0x2B, 0xA1, 0xD2, 0x08, 0xDE, 0x23, 0x7C, 
                    /* 02C8 */    0x6B, 0x88, 0xFB, 0x6C, 0xE0, 0xF9, 0x60, 0xD2, 
                    /* 02D0 */    0x1F, 0x14, 0x74, 0xFE, 0x31, 0xB8, 0x73, 0x93, 
                    /* 02D8 */    0x28, 0xF7, 0x80, 0x28, 0xBC, 0x93, 0x1E, 0x83, 
                    /* 02E0 */    0x28, 0x88, 0x01, 0x1D, 0x03, 0x42, 0x56, 0x0E, 
                    /* 02E8 */    0x02, 0xE8, 0xEB, 0x84, 0x8F, 0x0C, 0x3E, 0x67, 
                    /* 02F0 */    0x44, 0x39, 0x23, 0x1F, 0x30, 0x1E, 0x17, 0xD8, 
                    /* 02F8 */    0x70, 0x7C, 0x10, 0xE0, 0x07, 0x14, 0xDF, 0x0C, 
                    /* 0300 */    0x8C, 0x6D, 0x35, 0xC7, 0x1D, 0x14, 0x98, 0xE1, 
                    /* 0308 */    0x5F, 0x60, 0x4C, 0xE0, 0x7B, 0xC6, 0xCB, 0x00, 
                    /* 0310 */    0xBC, 0xFF, 0xFF, 0x6D, 0x07, 0x7B, 0xC6, 0x78, 
                    /* 0318 */    0x2C, 0xB1, 0xBE, 0xC3, 0x00, 0x28, 0x80, 0x3C, 
                    /* 0320 */    0x7D, 0x9F, 0x68, 0x1E, 0x01, 0xD8, 0x18, 0x1E, 
                    /* 0328 */    0x6A, 0x8C, 0x66, 0x74, 0x1E, 0x7F, 0xAE, 0xA8, 
                    /* 0330 */    0xC0, 0x73, 0xA5, 0x20, 0x9E, 0xAB, 0xC3, 0x40, 
                    /* 0338 */    0xC8, 0xC9, 0x5C, 0x51, 0xB7, 0x17, 0x8F, 0xC8, 
                    /* 0340 */    0x3E, 0xA7, 0x4A, 0x06, 0xCB, 0x09, 0xA2, 0xBC, 
                    /* 0348 */    0x6A, 0xC0, 0x3A, 0x08, 0x44, 0x64, 0xF3, 0xF0, 
                    /* 0350 */    0x5D, 0x09, 0x3F, 0x5B, 0x3E, 0x18, 0x5F, 0x25, 
                    /* 0358 */    0xE0, 0x0F, 0x97, 0x9F, 0x4A, 0xDE, 0x4D, 0x12, 
                    /* 0360 */    0x58, 0xE0, 0x74, 0x41, 0x0E, 0x8F, 0x11, 0xB4, 
                    /* 0368 */    0x1E, 0x59, 0xB8, 0x4B, 0xD1, 0x71, 0xF1, 0xDB, 
                    /* 0370 */    0x81, 0x6F, 0x3C, 0xEC, 0x4E, 0x83, 0xBB, 0x88, 
                    /* 0378 */    0x61, 0x60, 0x3D, 0x52, 0x0E, 0x6B, 0xB4, 0xB0, 
                    /* 0380 */    0x07, 0xFC, 0xC6, 0xE1, 0xE3, 0x8A, 0x67, 0x66, 
                    /* 0388 */    0x8C, 0xB0, 0xBE, 0xA7, 0x80, 0xE3, 0x4E, 0x06, 
                    /* 0390 */    0x3F, 0xC0, 0xD8, 0x10, 0xFF, 0xFF, 0x2B, 0x10, 
                    /* 0398 */    0xF8, 0xCE, 0x1A, 0xEC, 0x4A, 0x66, 0x90, 0x17, 
                    /* 03A0 */    0x25, 0x9F, 0x6B, 0x8C, 0x1E, 0xE8, 0x7D, 0x03, 
                    /* 03A8 */    0x7F, 0x13, 0x82, 0x7D, 0x03, 0x81, 0x33, 0x14, 
                    /* 03B0 */    0xDF, 0x40, 0x80, 0xC3, 0x31, 0x02, 0x77, 0x03, 
                    /* 03B8 */    0x01, 0xD6, 0x77, 0x08, 0x76, 0x03, 0x01, 0x96, 
                    /* 03C0 */    0xA7, 0x17, 0xDC, 0x0D, 0x04, 0x9C, 0xFF, 0xFF, 
                    /* 03C8 */    0x1B, 0x08, 0x70, 0xB9, 0xBF, 0xB0, 0x1B, 0x08, 
                    /* 03D0 */    0x30, 0x1F, 0xB5, 0x6F, 0x20, 0x80, 0xA5, 0xB3, 
                    /* 03D8 */    0x06, 0xBB, 0x81, 0x80, 0x5F, 0xA1, 0x4D, 0x9F, 
                    /* 03E0 */    0x1A, 0x8D, 0x5A, 0x35, 0x28, 0x53, 0xA3, 0x4C, 
                    /* 03E8 */    0x83, 0x5A, 0x7D, 0x2A, 0x35, 0x66, 0xCC, 0xC6, 
                    /* 03F0 */    0xE8, 0xBD, 0x74, 0x8D, 0xDD, 0x71, 0x40, 0x68, 
                    /* 03F8 */    0xF0, 0x87, 0x9C, 0x40, 0x1C, 0xDE, 0x03, 0x08, 
                    /* 0400 */    0x93, 0xBE, 0x38, 0x81, 0x38, 0xE6, 0xA1, 0x51, 
                    /* 0408 */    0x46, 0x40, 0xF4, 0xFF, 0xCF, 0x0C, 0x22, 0x20, 
                    /* 0410 */    0x27, 0x54, 0x01, 0xC4, 0xF2, 0x82, 0x08, 0xC8, 
                    /* 0418 */    0x4A, 0xD6, 0x20, 0x20, 0xCB, 0x02, 0x11, 0x90, 
                    /* 0420 */    0x45, 0xE8, 0x00, 0x62, 0x92, 0x40, 0x04, 0xE4, 
                    /* 0428 */    0xFF, 0x3F
                })
                OperationRegion (SBAA, SystemMemory, 0x000EA39E, 0x0100)
                Field (SBAA, AnyAcc, NoLock, Preserve)
                {
                    TPAA,   8, 
                    LNTH,   8, 
                            Offset (0x04), 
                    COMS,   16, 
                            Offset (0x0E), 
                    BTND,   1928
                }

                Method (FBFS, 2, NotSerialized)
                {
                    If (LNotEqual (TPAA, 0xAA))
                    {
                        Return (0xFF)
                    }

                    If (LLess (LNTH, 0x12))
                    {
                        Return (0xFF)
                    }

                    Subtract (LNTH, 0x0E, Local0)
                    Store (Zero, Local1)
                    Store (BTND, Local2)
                    While (LLess (Local1, Local0))
                    {
                        If (LEqual (Arg0, DerefOf (Index (Local2, Local1))))
                        {
                            If (LGreaterEqual (Subtract (Local0, Local1), 0x04))
                            {
                                Store (DerefOf (Index (Local2, Add (Local1, 0x02))), Arg1)
                                Store (DerefOf (Index (Local2, Add (Local1, 0x03))), Local3)
                                Or (ShiftLeft (Local3, 0x08), DerefOf (Arg1), Arg1)
                                Return (Zero)
                            }
                        }

                        Add (Local1, 0x04, Local1)
                    }

                    Return (0xFF)
                }

                Method (EVBC, 0, NotSerialized)
                {
                    Store (DerefOf (Index (FEBC, Zero)), Local0)
                    If (LOr (LEqual (Local0, Zero), LGreater (Local0, 0x02)))
                    {
                        Store (Zero, Index (FEBC, Zero))
                        Store (Zero, Index (FEBC, One))
                        Return (FEBC)
                    }

                    If (LEqual (Local0, One))
                    {
                        Store (DerefOf (Index (FEBC, One)), Local1)
                        Store (Zero, Local2)
                        Store (Zero, Local3)
                        Store (Zero, Local4)
                        If (LAnd (LGreater (Local1, Zero), LLess (Local1, 0x20)))
                        {
                            Store (GCMS (RefOf (Local4), RefOf (Local2)), Local3)
                        }
                        Else
                        {
                            If (LAnd (LGreater (Local1, 0x80), LLess (Local1, 0xFF)))
                            {
                                Store (GOTS (RefOf (Local2)), Local3)
                            }
                        }

                        If (LNotEqual (Local3, Zero))
                        {
                            Store (Zero, Index (FEBC, Zero))
                            Store (Zero, Index (FEBC, One))
                            Return (FEBC)
                        }

                        Store (And (Local2, 0xFF), Index (FEBC, 0x02))
                        ShiftRight (Local2, 0x08, Local2)
                        Store (And (Local2, 0xFF), Index (FEBC, 0x03))
                    }
                    Else
                    {
                        Store (Zero, Index (FEBC, 0x02))
                        Store (Zero, Index (FEBC, 0x03))
                    }

                    Store (Zero, Index (FEBC, 0x04))
                    Store (Zero, Index (FEBC, 0x05))
                    Store (Zero, Index (FEBC, 0x06))
                    Store (Zero, Index (FEBC, 0x07))
                    Return (FEBC)
                }

                Method (WMAA, 3, NotSerialized)
                {
                    Store (Zero, Local0)
                    If (LEqual (Arg1, One))
                    {
                        Store (Buffer (0x04)
                            {
                                0x00, 0x00, 0x00, 0x00
                            }, Local0)
                        Name (_T_0, Zero)
                        Store (DerefOf (Index (Arg2, Zero)), _T_0)
                        If (LEqual (_T_0, One))
                        {
                            And (DerefOf (Index (Arg2, 0x05)), One, Local3)
                            ShiftRight (DerefOf (Index (Arg2, 0x05)), 0x06, Local4)
                            And (Local4, 0x03, Local4)
                            If (LEqual (Local3, One))
                            {
                                LMON ()
                            }

                            If (LEqual (Local4, One))
                            {
                                Store (Zero, Local1)
                                Store (DerefOf (Index (Arg2, One)), Local1)
                                Or (ShiftLeft (DerefOf (Index (Arg2, 0x02)), 0x08), Local1, 
                                    Local1)
                                Store (SCMS (0xFFFF, Local1), Local2)
                                If (LNotEqual (Local2, Zero))
                                {
                                    Store (Local2, Index (Local0, Zero))
                                    Return (Local0)
                                }

                                Store (Zero, Local1)
                                Store (DerefOf (Index (Arg2, 0x03)), Local1)
                                Or (ShiftLeft (DerefOf (Index (Arg2, 0x04)), 0x08), Local1, 
                                    Local1)
                                Store (SOTS (0xFFFF, Local1), Local2)
                                If (LNotEqual (Local2, Zero))
                                {
                                    Store (Local2, Index (Local0, Zero))
                                    Return (Local0)
                                }
                            }

                            If (LEqual (Local3, Zero))
                            {
                                LMOF ()
                            }
                        }
                        Else
                        {
                            If (LEqual (_T_0, 0x02))
                            {
                                Store (Zero, Local1)
                                Store (DerefOf (Index (Arg2, 0x02)), Local1)
                                Or (ShiftLeft (DerefOf (Index (Arg2, 0x03)), 0x08), Local1, 
                                    Local1)
                                Store (DerefOf (Index (Arg2, One)), Local3)
                                Store (Zero, Local4)
                                Store (FBFS (Local3, RefOf (Local4)), Local2)
                                If (LNotEqual (Local2, Zero))
                                {
                                    Store (0xFFFF, Local4)
                                }

                                If (LAnd (LGreater (Local3, Zero), LLess (Local3, 0x20)))
                                {
                                    Store (SCMS (Local4, Local1), Local2)
                                }
                                Else
                                {
                                    If (LAnd (LGreater (Local3, 0x20), LLess (Local3, 0x40)))
                                    {
                                        Store (SAPS (Local4, Local1), Local2)
                                    }
                                    Else
                                    {
                                        If (LAnd (LGreater (Local3, 0x40), LLess (Local3, 0x60)))
                                        {
                                            Store (SMES (Local4, Local1), Local2)
                                        }
                                        Else
                                        {
                                            If (LAnd (LGreater (Local3, 0x60), LLess (Local3, 0x80)))
                                            {
                                                Store (SDSS (Local4, Local1), Local2)
                                            }
                                            Else
                                            {
                                                If (LAnd (LGreater (Local3, 0x80), LLess (Local3, 0xFF)))
                                                {
                                                    Store (SOTS (Local4, Local1), Local2)
                                                }
                                                Else
                                                {
                                                    Store (0xE4, Local2)
                                                }
                                            }
                                        }
                                    }
                                }

                                Store (Local2, Index (Local0, Zero))
                                If (LNotEqual (Local2, Zero))
                                {
                                    Store (Local3, Index (Local0, 0x02))
                                }
                            }
                            Else
                            {
                                Store (0xE4, Index (Local0, Zero))
                            }
                        }
                    }
                    Else
                    {
                        If (LEqual (Arg1, 0x02))
                        {
                            Store (Buffer (0x08)
                                {
                                    /* 0000 */    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
                                }, Local0)
                            Name (_T_1, Zero)
                            Store (DerefOf (Index (Arg2, Zero)), _T_1)
                            If (LEqual (_T_1, One))
                            {
                                Store (Zero, Local1)
                                Store (DerefOf (Index (Arg2, 0x02)), Local2)
                                Or (ShiftLeft (DerefOf (Index (Arg2, 0x03)), 0x08), Local2, 
                                    Local2)
                                Store (DerefOf (Index (Arg2, One)), Local3)
                                If (LAnd (LGreater (Local3, Zero), LLess (Local3, 0x20)))
                                {
                                    Store (GCMS (RefOf (Local5), RefOf (Local1)), Local4)
                                    If (LEqual (Local4, Zero))
                                    {
                                        If (LEqual (And (Local2, Local5), Zero))
                                        {
                                            Store (0xE2, Local4)
                                        }
                                    }
                                }
                                Else
                                {
                                    If (LAnd (LGreater (Local3, 0x20), LLess (Local3, 0x40)))
                                    {
                                        Store (GAPS (RefOf (Local1)), Local4)
                                    }
                                    Else
                                    {
                                        If (LAnd (LGreater (Local3, 0x40), LLess (Local3, 0x60)))
                                        {
                                            Store (GMES (RefOf (Local1)), Local4)
                                        }
                                        Else
                                        {
                                            If (LAnd (LGreater (Local3, 0x60), LLess (Local3, 0x80)))
                                            {
                                                Store (GDSS (RefOf (Local1)), Local4)
                                            }
                                            Else
                                            {
                                                If (LAnd (LGreater (Local3, 0x80), LLess (Local3, 0xFF)))
                                                {
                                                    Store (GOTS (RefOf (Local1)), Local4)
                                                }
                                                Else
                                                {
                                                    Store (0xE4, Local4)
                                                }
                                            }
                                        }
                                    }
                                }

                                If (LEqual (Local2, Zero))
                                {
                                    Store (0xE2, Local4)
                                }

                                Store (Local4, Index (Local0, Zero))
                                And (Local1, Local2, Local1)
                                Store (And (Local1, 0xFF), Index (Local0, 0x02))
                                Store (ShiftRight (Local1, 0x08), Index (Local0, 0x03))
                            }
                            Else
                            {
                                Store (0xE4, Index (Local0, Zero))
                            }
                        }
                    }

                    Return (Local0)
                }

                Method (WMBA, 3, NotSerialized)
                {
                    Name (_T_0, Zero)
                    Store (Arg1, _T_0)
                    If (LNotEqual (Match (Package (0x09)
                                    {
                                        One, 
                                        0x02, 
                                        0x03, 
                                        0x08, 
                                        0x09, 
                                        0x0A, 
                                        0x0C, 
                                        0x0D, 
                                        0x0E
                                    }, MEQ, _T_0, MTR, Zero, Zero), Ones))
                    {
                        Store (Zero, Local0)
                    }
                    Else
                    {
                        If (LNotEqual (Match (Package (0x06)
                                        {
                                            0x04, 
                                            0x05, 
                                            0x06, 
                                            0x07, 
                                            0x0B, 
                                            0x0F
                                        }, MEQ, _T_0, MTR, Zero, Zero), Ones))
                        {
                            If (LEqual (Arg1, 0x07))
                            {
                                Store (Arg2, BUFF)
                                If (BF00)
                                {
                                    Store (One, BAEF)
                                }
                            }

                            Store (One, Local0)
                        }
                    }

                    If (Local0)
                    {
                        WSDS (Arg1, Arg2)
                    }
                    Else
                    {
                        WGDS (Arg1)
                    }

                    Store (DerefOf (Index (BADG, Subtract (Arg1, One))), BUFF)
                    Return (BUFF)
                }

                Method (_WED, 1, NotSerialized)
                {
                    If (LGreaterEqual (Arg0, 0x80))
                    {
                        If (LLess (Arg0, 0x83))
                        {
                            Return (OEMN ())
                        }
                    }

                    If (LEqual (Arg0, 0xBC))
                    {
                        Return (EVBC ())
                    }
                }

                Method (WMBB, 3, NotSerialized)
                {
                    STRL (Arg1, Arg2)
                    If (LEqual (Arg1, One))
                    {
                        Store (BBSB, BUFF)
                    }

                    If (LEqual (Arg1, 0x02))
                    {
                        Store (BBD1, BUFF)
                    }

                    Return (BUFF)
                }

                Method (WMBC, 3, NotSerialized)
                {
                    If (LEqual (Arg1, 0x05))
                    {
                        Return (BODD)
                    }

                    If (LEqual (Arg1, 0x0E))
                    {
                        Store (Arg2, BODD)
                        Return (Zero)
                    }
                }

                Method (WMBD, 3, NotSerialized)
                {
                    If (LEqual (Arg1, One))
                    {
                        Store (Arg2, BUFF)
                        Store (BUFF, Local0)
                        Store (Arg2, WIT0)
                        GCPU (WIT0)
                        Return (DSY0)
                    }

                    If (LEqual (Arg1, 0x02))
                    {
                        Store (Arg2, Local0)
                        MSRR (Arg2)
                        Return (DSY1)
                    }

                    If (LEqual (Arg1, 0x03))
                    {
                        Store (Arg2, Local0)
                        MSRW (Arg2)
                        Return (DSY1)
                    }

                    If (LEqual (Arg1, 0x04))
                    {
                        C4C3 (Arg1, Arg2)
                        ShiftRight (DerefOf (Index (BCDS, Add (Arg1, 0x05))), 0x10, 
                            BUFF)
                        Return (BUFF)
                    }

                    If (LEqual (Arg1, 0x05))
                    {
                        C4C3 (Arg1, Arg2)
                        Store (DerefOf (Index (BCDS, Add (Arg1, 0x04))), BUFF)
                        Return (BUFF)
                    }

                    If (LEqual (Arg1, 0x06))
                    {
                        CPUF ()
                        Store (DerefOf (Index (BCDS, Add (Arg1, 0x04))), BUFF)
                        Return (BUFF)
                    }

                    If (LEqual (Arg1, 0x07))
                    {
                        CPUT ()
                        Store (DerefOf (Index (BCDS, Add (Arg1, 0x04))), BUFF)
                        Return (BUFF)
                    }

                    If (LEqual (Arg1, 0x08))
                    {
                        Store (Arg2, WPRW)
                        Store (WWD1, WPIR)
                        Store (WWD2, WPIF)
                        Store (WWD3, WPID)
                        Store (WWD4, WPIB)
                        Concatenate (WPCI, WWD0, Local0)
                        PCIR (Local0)
                        Return (DSY2)
                    }

                    If (LEqual (Arg1, 0x09))
                    {
                        Store (Arg2, DSY6)
                        Store (DY60, Local0)
                        Store (Arg2, DSY0)
                        Store (DY01, WPRW)
                        Store (WWD1, WPIR)
                        Store (WWD2, WPIF)
                        Store (WWD3, WPID)
                        Store (WWD4, WPIB)
                        Store (WPCI, Local1)
                        Concatenate (DY60, WPCI, Local0)
                        Concatenate (Local0, WWD0, Local1)
                        PCIW (Local1)
                        Return (BUFF)
                    }

                    If (LEqual (Arg1, 0x0A))
                    {
                        CPUS ()
                        Store (DerefOf (Index (BCDS, Add (Arg1, 0x02))), BUFF)
                        Return (BUFF)
                    }

                    If (LEqual (Arg1, 0x0B))
                    {
                        PCID (Arg2)
                        Return (DSY6)
                    }
                }

                Method (WMBE, 3, NotSerialized)
                {
                    BTIF (Arg1, Arg2)
                    Store (DerefOf (Index (BEDS, Subtract (Arg1, One))), BUFF)
                    Return (BUFF)
                }

                Method (WMBF, 3, NotSerialized)
                {
                }

                Method (WMBG, 3, NotSerialized)
                {
                    Store (Arg2, BUFF)
                    WSVE (BF00)
                    Store (DerefOf (Index (BGDS, Subtract (Arg1, One))), BUFF)
                    Store (BUFF, Debug)
                    Return (BUFF)
                }

                Method (WMBH, 3, NotSerialized)
                {
                    If (LEqual (Arg1, One))
                    {
                        CPSE (Arg2)
                        Return (BUF1)
                    }

                    If (LEqual (Arg1, 0x02))
                    {
                        SPSW (Arg2)
                        Return (BUF1)
                    }

                    If (LEqual (Arg1, 0x03))
                    {
                        CPSW (Arg2)
                        Return (BUF1)
                    }

                    If (LEqual (Arg1, 0x04))
                    {
                        GBDS ()
                        Return (BOOT)
                    }

                    If (LEqual (Arg1, 0x05))
                    {
                        SBDS (Arg2)
                        Store (Zero, Index (BUF1, Zero))
                        Store (Zero, Index (BUF1, One))
                        Store (Zero, Index (BUF1, 0x02))
                        Store (Zero, Index (BUF1, 0x03))
                        Return (BUF1)
                    }

                    If (LEqual (Arg1, 0x0A))
                    {
                        If (LEqual (D2DF, Zero))
                        {
                            Store (One, Index (BUF1, Zero))
                        }
                        Else
                        {
                            Store (Zero, Index (BUF1, Zero))
                        }

                        Store (Zero, Index (BUF1, 0x02))
                        Store (Zero, Index (BUF1, 0x03))
                        Return (BUF1)
                    }
                }

                Method (WMBI, 3, NotSerialized)
                {
                    If (LEqual (Arg1, 0x03))
                    {
                        Store (DPRT, BUF1)
                        Return (BUF1)
                    }

                    If (LEqual (Arg1, 0x06))
                    {
                        GVGA ()
                        Return (BUF1)
                    }

                    If (LEqual (Arg1, 0x07))
                    {
                        DCCD ()
                        Return (BUF1)
                    }

                    If (LEqual (Arg1, 0x08))
                    {
                        DTPD ()
                        Return (BUF1)
                    }

                    If (LEqual (Arg1, 0x09))
                    {
                        Return (0x08)
                    }

                    If (LEqual (Arg1, 0x0A))
                    {
                        D3GE ()
                        Return (BUF1)
                    }

                    If (LEqual (Arg1, 0x0B))
                    {
                        Return (Zero)
                    }
                }
            }
        }
    }

    Scope (_PR)
    {
        Processor (CPU0, 0x01, 0x00000410, 0x06) {}
        Processor (CPU1, 0x02, 0x00000410, 0x06) {}
        Processor (CPU2, 0x03, 0x00000410, 0x06) {}
        Processor (CPU3, 0x04, 0x00000410, 0x06) {}
        Processor (CPU4, 0x05, 0x00000410, 0x06) {}
        Processor (CPU5, 0x06, 0x00000410, 0x06) {}
        Processor (CPU6, 0x07, 0x00000410, 0x06) {}
        Processor (CPU7, 0x08, 0x00000410, 0x06) {}
    }

    Mutex (MUTX, 0x00)
    OperationRegion (PRT0, SystemIO, 0x80, 0x04)
    Field (PRT0, DWordAcc, Lock, Preserve)
    {
        P80H,   32
    }

    Method (P8XH, 3, Serialized)
    {
        If (LEqual (Arg0, Zero))
        {
            Store (Or (And (P80D, 0xFFFFFF00), Arg1), P80D)
        }

        If (LEqual (Arg0, One))
        {
            Store (Or (And (P80D, 0xFFFF00FF), ShiftLeft (Arg1, 0x08)
                ), P80D)
        }

        If (LEqual (Arg0, 0x02))
        {
            Store (Or (And (P80D, 0xFF00FFFF), ShiftLeft (Arg1, 0x10)
                ), P80D)
        }

        If (LEqual (Arg0, 0x03))
        {
            Store (Or (And (P80D, 0x00FFFFFF), ShiftLeft (Arg1, 0x18)
                ), P80D)
        }

        If (LEqual (Arg0, 0x04))
        {
            Store (Or (And (P80D, Zero), Arg1), P80D)
        }

        If (LEqual (Arg2, Zero)) {}
        If (LEqual (Arg2, One))
        {
            Store (P80D, P80H)
        }
    }

    OperationRegion (SPRT, SystemIO, 0xB2, 0x02)
    Field (SPRT, ByteAcc, Lock, Preserve)
    {
        SSMP,   8
    }

    OperationRegion (CMS1, SystemIO, 0x72, 0x02)
    Field (CMS1, ByteAcc, NoLock, Preserve)
    {
        CMSI,   8, 
        CMSD,   8
    }

    Method (CMSW, 2, NotSerialized)
    {
        Store (Arg0, CMSI)
        Store (Arg1, CMSD)
    }

    Method (CMSR, 1, NotSerialized)
    {
        Store (Arg0, CMSI)
        Return (CMSD)
    }

    OperationRegion (CMT1, SystemIO, 0x70, 0x02)
    Field (CMT1, ByteAcc, NoLock, Preserve)
    {
        CMTI,   8, 
        CMTD,   8
    }

    Method (CMTW, 2, NotSerialized)
    {
        Store (Arg0, CMTI)
        Store (Arg1, CMTD)
    }

    Method (CMTR, 1, NotSerialized)
    {
        Store (Arg0, CMTI)
        Return (CMTD)
    }

    Method (_PIC, 1, NotSerialized)
    {
        Store (Arg0, GPIC)
        Store (Arg0, PICM)
    }

    Method (_PTS, 1, NotSerialized)
    {
        Store (Zero, P80D)
        P8XH (Zero, Arg0, Zero)
        If (LEqual (Arg0, 0x03))
        {
            P8XH (0x04, 0x53, Zero)
            P8XH (0x04, 0x53, One)
            OSMI (0x80)
            \_SB.PCI0.GFX0.GLID (0x03)
        }

        If (LEqual (Arg0, 0x04))
        {
            P8XH (0x04, 0x54, Zero)
            P8XH (0x04, 0x54, One)
            OSMI (0x82)
            \_SB.PCI0.GFX0.GLID (0x03)
        }
    }

    Method (_WAK, 1, Serialized)
    {
        Store (Zero, P80D)
        If (LOr (LEqual (Arg0, 0x03), LEqual (Arg0, 0x04)))
        {
            If (LEqual (PMEE, One))
            {
                Store (One, PMEN)
            }

            If (LEqual (OSYS, 0x07D2))
            {
                If (And (CFGD, One))
                {
                    If (LGreater (\_PR.CPU0._PPC, Zero))
                    {
                        Subtract (\_PR.CPU0._PPC, One, \_PR.CPU0._PPC)
                        PNOT ()
                        Add (\_PR.CPU0._PPC, One, \_PR.CPU0._PPC)
                        PNOT ()
                    }
                    Else
                    {
                        Add (\_PR.CPU0._PPC, One, \_PR.CPU0._PPC)
                        PNOT ()
                        Subtract (\_PR.CPU0._PPC, One, \_PR.CPU0._PPC)
                        PNOT ()
                    }
                }
            }

            If (LLessEqual (OSYS, 0x07D6))
            {
                If (LEqual (\_SB.PCI0.GP31, One))
                {
                    Store (0x02, BLAN)
                }
                Else
                {
                    Store (0x03, BLAN)
                }
            }
        }

        If (LEqual (Arg0, 0x03))
        {
            P8XH (0x04, 0xE3, One)
            Store (0xE3, \_SB.PCI0.SLWK)
            If (LGreaterEqual (OSYS, 0x07D6))
            {
                Notify (\_SB.PCI0.LPCB.PWRB, 0x02)
            }
        }

        If (LEqual (Arg0, 0x04))
        {
            P8XH (0x04, 0xE4, One)
            Store (0xE4, \_SB.PCI0.SLWK)
            Notify (\_SB.PCI0.LPCB.PWRB, 0x02)
            OSMI (0x83)
        }

        P8XH (0x04, 0x33, One)
        Return (Package (0x02)
        {
            Zero, 
            Zero
        })
    }

    Method (GETB, 3, Serialized)
    {
        Multiply (Arg0, 0x08, Local0)
        Multiply (Arg1, 0x08, Local1)
        CreateField (Arg2, Local0, Local1, TBF3)
        Return (TBF3)
    }

    Method (PNOT, 0, Serialized)
    {
        If (LGreater (TCNT, One))
        {
            If (And (PDC0, 0x08))
            {
                Notify (\_PR.CPU0, 0x80)
                If (And (PDC0, 0x10))
                {
                    Sleep (0x64)
                    Notify (\_PR.CPU0, 0x81)
                }
            }

            If (And (PDC1, 0x08))
            {
                Notify (\_PR.CPU1, 0x80)
                If (And (PDC1, 0x10))
                {
                    Sleep (0x64)
                    Notify (\_PR.CPU1, 0x81)
                }
            }

            If (And (PDC2, 0x08))
            {
                Notify (\_PR.CPU2, 0x80)
                If (And (PDC2, 0x10))
                {
                    Sleep (0x64)
                    Notify (\_PR.CPU2, 0x81)
                }
            }

            If (And (PDC3, 0x08))
            {
                Notify (\_PR.CPU3, 0x80)
                If (And (PDC3, 0x10))
                {
                    Sleep (0x64)
                    Notify (\_PR.CPU3, 0x81)
                }
            }

            If (And (PDC4, 0x08))
            {
                Notify (\_PR.CPU4, 0x80)
                If (And (PDC4, 0x10))
                {
                    Sleep (0x64)
                    Notify (\_PR.CPU4, 0x81)
                }
            }

            If (And (PDC5, 0x08))
            {
                Notify (\_PR.CPU5, 0x80)
                If (And (PDC5, 0x10))
                {
                    Sleep (0x64)
                    Notify (\_PR.CPU5, 0x81)
                }
            }

            If (And (PDC6, 0x08))
            {
                Notify (\_PR.CPU6, 0x80)
                If (And (PDC6, 0x10))
                {
                    Sleep (0x64)
                    Notify (\_PR.CPU6, 0x81)
                }
            }

            If (And (PDC7, 0x08))
            {
                Notify (\_PR.CPU7, 0x80)
                If (And (PDC7, 0x10))
                {
                    Sleep (0x64)
                    Notify (\_PR.CPU7, 0x81)
                }
            }
        }
        Else
        {
            Notify (\_PR.CPU0, 0x80)
            Sleep (0x64)
            Notify (\_PR.CPU0, 0x81)
        }
    }

    Method (TRAP, 2, Serialized)
    {
        Store (Arg1, SMIF)
        If (LEqual (Arg0, TRTP))
        {
            Store (Zero, TRP0)
        }

        If (LEqual (Arg0, TRTD))
        {
            Store (Arg1, DTSF)
            Store (Zero, TRPD)
            Return (DTSF)
        }

        If (LEqual (Arg0, TRTI))
        {
            Store (Zero, TRPH)
        }

        Return (SMIF)
    }

    Scope (_SB.PCI0)
    {
        Method (_INI, 0, NotSerialized)
        {
            ^P0P2.VGA.XSAV ()
            Store (0x07D0, OSYS)
            If (CondRefOf (_OSI, Local0))
            {
                If (_OSI ("Windows 2001"))
                {
                    Store (0x07D1, OSYS)
                }

                If (_OSI ("Windows 2001 SP1"))
                {
                    Store (0x07D1, OSYS)
                }

                If (_OSI ("Windows 2001 SP2"))
                {
                    Store (0x07D2, OSYS)
                }

                If (_OSI ("Windows 2006"))
                {
                    Store (0x07D6, OSYS)
                }

                If (_OSI ("Windows 2009"))
                {
                    Store (0x07D9, OSYS)
                }

                If (_OSI ("Linux"))
                {
                    Store (0x03E8, OSYS)
                    OSMI (0x72)
                }

                If (LLessEqual (OSYS, 0x07D6))
                {
                    If (LEqual (GP31, One))
                    {
                        Store (0x02, BLAN)
                    }
                    Else
                    {
                        Store (0x03, BLAN)
                    }
                }
            }

            Store (Zero, ^P0P2.VGA.DPMO)
            If (LEqual (DALC, One))
            {
                If (LEqual (DPMD, Zero))
                {
                    Store (One, ^P0P2.VGA.DPMO)
                }

                If (LEqual (DPMD, One))
                {
                    If (LEqual (^P0P2.VGA.DVI0, 0x1002))
                    {
                        Store (0x02, ^P0P2.VGA.DPMO)
                    }

                    If (LEqual (^P0P2.VGA.DVI0, 0x10DE))
                    {
                        Store (0x03, ^P0P2.VGA.DPMO)
                    }
                }

                If (LEqual (DPMD, 0x02))
                {
                    If (LEqual (^P0P2.VGA.DVI0, 0x1002))
                    {
                        Store (0x04, ^P0P2.VGA.DPMO)
                    }

                    If (LEqual (^P0P2.VGA.DVI0, 0x10DE))
                    {
                        Store (0x05, ^P0P2.VGA.DPMO)
                        If (LEqual (DISC, 0x03))
                        {
                            Store (One, ^P0P2.VGA.DPMO)
                        }
                    }
                }
            }
            Else
            {
                If (LEqual (^P0P2.VGA.DVI0, 0x1002))
                {
                    Store (0x02, ^P0P2.VGA.DPMO)
                }

                If (LEqual (^P0P2.VGA.DVI0, 0x10DE))
                {
                    Store (0x03, ^P0P2.VGA.DPMO)
                }
            }
        }

        Method (NHPG, 0, Serialized)
        {
            Store (Zero, ^RP01.HPEX)
            Store (Zero, ^RP02.HPEX)
            Store (Zero, ^RP03.HPEX)
            Store (Zero, ^RP04.HPEX)
            Store (Zero, ^RP05.HPEX)
            Store (Zero, ^RP06.HPEX)
            Store (Zero, ^RP07.HPEX)
            Store (Zero, ^RP08.HPEX)
            Store (One, ^RP01.HPSX)
            Store (One, ^RP02.HPSX)
            Store (One, ^RP03.HPSX)
            Store (One, ^RP04.HPSX)
            Store (One, ^RP05.HPSX)
            Store (One, ^RP06.HPSX)
            Store (One, ^RP07.HPSX)
            Store (One, ^RP08.HPSX)
        }

        Method (NPME, 0, Serialized)
        {
            Store (Zero, ^RP01.PMEX)
            Store (Zero, ^RP02.PMEX)
            Store (Zero, ^RP03.PMEX)
            Store (Zero, ^RP04.PMEX)
            Store (Zero, ^RP05.PMEX)
            Store (Zero, ^RP06.PMEX)
            Store (Zero, ^RP07.PMEX)
            Store (Zero, ^RP08.PMEX)
            Store (One, ^RP01.PMSX)
            Store (One, ^RP02.PMSX)
            Store (One, ^RP03.PMSX)
            Store (One, ^RP04.PMSX)
            Store (One, ^RP05.PMSX)
            Store (One, ^RP06.PMSX)
            Store (One, ^RP07.PMSX)
            Store (One, ^RP08.PMSX)
        }
    }

    Scope (\)
    {
        Name (PICM, Zero)
    }

    Scope (_SB.PCI0)
    {
        Device (PDRC)
        {
            Name (_HID, EisaId ("PNP0C02"))
            Name (_UID, One)
            Name (BUF0, ResourceTemplate ()
            {
                Memory32Fixed (ReadWrite,
                    0x00000000,         // Address Base
                    0x00004000,         // Address Length
                    )
                Memory32Fixed (ReadWrite,
                    0x00000000,         // Address Base
                    0x00004000,         // Address Length
                    )
                Memory32Fixed (ReadWrite,
                    0x00000000,         // Address Base
                    0x00001000,         // Address Length
                    )
                Memory32Fixed (ReadWrite,
                    0x00000000,         // Address Base
                    0x00001000,         // Address Length
                    )
                Memory32Fixed (ReadWrite,
                    0x00000000,         // Address Base
                    0x00000000,         // Address Length
                    )
                Memory32Fixed (ReadWrite,
                    0x00000000,         // Address Base
                    0x00001000,         // Address Length
                    )
                Memory32Fixed (ReadWrite,
                    0xFED20000,         // Address Base
                    0x00020000,         // Address Length
                    )
                Memory32Fixed (ReadOnly,
                    0xFED90000,         // Address Base
                    0x00004000,         // Address Length
                    )
                Memory32Fixed (ReadWrite,
                    0xFED45000,         // Address Base
                    0x0004B000,         // Address Length
                    )
                Memory32Fixed (ReadOnly,
                    0xFF000000,         // Address Base
                    0x01000000,         // Address Length
                    )
                Memory32Fixed (ReadOnly,
                    0xFEE00000,         // Address Base
                    0x00100000,         // Address Length
                    )
            })
            Method (_CRS, 0, Serialized)
            {
                CreateDWordField (BUF0, 0x04, RBR0)
                ShiftLeft (^^LPCB.RCBA, 0x0E, RBR0)
                If (Or (LEqual (And (PNHM, 0x000FFFF0), 0x000106E0), LEqual (And (
                    PNHM, 0x000FFFF0), 0x000106A0)))
                {
                    CreateDWordField (BUF0, 0x14, MBLN)
                    Store (Zero, MBLN)
                }
                Else
                {
                    CreateDWordField (BUF0, 0x10, MBR0)
                    ShiftLeft (MHBR, 0x0E, MBR0)
                }

                CreateDWordField (BUF0, 0x1C, DBR0)
                ShiftLeft (DIBR, 0x0C, DBR0)
                If (Or (LEqual (And (PNHM, 0x000FFFF0), 0x000106E0), LEqual (And (
                    PNHM, 0x000FFFF0), 0x000106A0)))
                {
                    ShiftLeft (DIBI, 0x0C, DBR0)
                }

                If (Or (LEqual (And (PNHM, 0x000FFFF0), 0x000106E0), LEqual (And (
                    PNHM, 0x000FFFF0), 0x000106A0)))
                {
                    CreateDWordField (BUF0, 0x2C, EBLN)
                    Store (Zero, EBLN)
                }
                Else
                {
                    CreateDWordField (BUF0, 0x28, EBR0)
                    ShiftLeft (EPBR, 0x0C, EBR0)
                }

                CreateDWordField (BUF0, 0x34, XBR0)
                ShiftLeft (^^^CPBG.IMCH.PXBR, 0x14, XBR0)
                CreateDWordField (BUF0, 0x38, XSZ0)
                ShiftRight (0x10000000, ^^^CPBG.IMCH.PXSZ, XSZ0)
                CreateDWordField (BUF0, 0x40, TBR0)
                Store (TBAB, TBR0)
                CreateDWordField (BUF0, 0x58, VTB0)
                CreateDWordField (BUF0, 0x5C, VTLN)
                If (Or (LEqual (And (PNHM, 0x000FFFF0), 0x000106E0), LEqual (And (
                    PNHM, 0x000FFFF0), 0x000106A0)))
                {
                    If (LGreaterEqual (PNHM, 0x000106E1))
                    {
                        If (^^IO10.VTEN)
                        {
                            ShiftLeft (^^IO10.VTBA, 0x0C, VTB0)
                        }
                        Else
                        {
                            Store (Zero, VTLN)
                        }
                    }
                    Else
                    {
                        If (^^IIO0.VTEN)
                        {
                            ShiftLeft (^^IIO0.VTBA, 0x0C, VTB0)
                        }
                        Else
                        {
                            Store (Zero, VTLN)
                        }
                    }
                }
                Else
                {
                    If (ADVE)
                    {
                        ShiftLeft (ADVT, 0x0C, VTB0)
                    }
                    Else
                    {
                        Store (Zero, VTLN)
                    }
                }

                Return (BUF0)
            }
        }
    }

    Scope (\)
    {
        OperationRegion (IO_T, SystemIO, 0x0800, 0x10)
        Field (IO_T, ByteAcc, NoLock, Preserve)
        {
            TRPI,   16, 
                    Offset (0x04), 
                    Offset (0x06), 
                    Offset (0x08), 
            TRP0,   8, 
                    Offset (0x0A), 
                    Offset (0x0B), 
                    Offset (0x0C), 
                    Offset (0x0D), 
                    Offset (0x0E), 
                    Offset (0x0F), 
                    Offset (0x10)
        }

        OperationRegion (IO_D, SystemIO, 0x0810, 0x04)
        Field (IO_D, ByteAcc, NoLock, Preserve)
        {
            TRPD,   8
        }

        OperationRegion (IO_H, SystemIO, 0x1000, 0x04)
        Field (IO_H, ByteAcc, NoLock, Preserve)
        {
            TRPH,   8
        }

        OperationRegion (PMIO, SystemIO, PMBS, 0x80)
        Field (PMIO, ByteAcc, NoLock, Preserve)
        {
                    Offset (0x20), 
                ,   2, 
            SPST,   1, 
                    Offset (0x28), 
                ,   11, 
            PMEN,   1, 
                    Offset (0x42), 
                ,   1, 
            GPEC,   1, 
                    Offset (0x64), 
                ,   9, 
            SCIS,   1, 
                    Offset (0x66)
        }

        OperationRegion (GPIO, SystemIO, GPBS, 0x64)
        Field (GPIO, ByteAcc, NoLock, Preserve)
        {
            GU00,   8, 
            GU01,   8, 
            GU02,   8, 
            GU03,   8, 
            GIO0,   8, 
            GIO1,   8, 
            GIO2,   8, 
            GIO3,   8, 
                    Offset (0x0C), 
            GL00,   8, 
            GL01,   8, 
            GL02,   8, 
                ,   3, 
            GP27,   1, 
            GP28,   1, 
                    Offset (0x10), 
                    Offset (0x18), 
            GB00,   8, 
            GB01,   8, 
            GB02,   8, 
            GB03,   8, 
                    Offset (0x2C), 
            GIV0,   8, 
                ,   3, 
            LPDL,   1, 
                    Offset (0x2E), 
            GIV2,   8, 
            GIV3,   8, 
            GU04,   8, 
            GU05,   8, 
            GU06,   8, 
            GU07,   8, 
            GIO4,   8, 
            GIO5,   8, 
            GIO6,   8, 
            GIO7,   8, 
                ,   5, 
                ,   1, 
                    Offset (0x39), 
            GL05,   8, 
            GL06,   8, 
            GL07,   8, 
                    Offset (0x40), 
            GU08,   8, 
            GU09,   8, 
            GU0A,   8, 
            GU0B,   8, 
            GIO8,   8, 
            GIO9,   8, 
            GIOA,   8, 
            GIOB,   8, 
            GL08,   8, 
            GL09,   8, 
            GL0A,   8, 
            GL0B,   8
        }

        OperationRegion (RCRB, SystemMemory, SRCB, 0x4000)
        Field (RCRB, DWordAcc, Lock, Preserve)
        {
                    Offset (0x1A8), 
            BLAN,   8, 
                    Offset (0x1000), 
                    Offset (0x3000), 
                    Offset (0x3404), 
            HPAS,   2, 
                ,   5, 
            HPAE,   1, 
                    Offset (0x3418), 
                ,   1, 
                ,   1, 
            SATD,   1, 
            SMBD,   1, 
            HDAD,   1, 
                    Offset (0x341A), 
            RP1D,   1, 
            RP2D,   1, 
            RP3D,   1, 
            RP4D,   1, 
            RP5D,   1, 
            RP6D,   1, 
            RP7D,   1, 
            RP8D,   1
        }

        Method (GPI0, 4, NotSerialized)
        {
            If (LEqual (Or (Arg0, Arg1), Zero))
            {
                Return (0xFFFFFFFF)
            }
            Else
            {
                If (And (LEqual (Arg0, Zero), LEqual (Arg1, One)))
                {
                    Return (0x0384)
                }
            }

            Return (Multiply (0x1E, Subtract (0x09, Add (Arg2, Arg3))
                ))
        }

        Method (GDMA, 2, NotSerialized)
        {
            If (LEqual (Arg0, One))
            {
                If (LEqual (Arg1, One))
                {
                    Return (0x0F)
                }
            }

            Return (0xFFFFFFFF)
        }

        Method (SFLG, 5, NotSerialized)
        {
            Store (Zero, Local0)
            Or (Arg1, Local0, Local0)
            Or (ShiftLeft (Arg0, One), Local0, Local0)
            Or (ShiftLeft (Arg2, 0x03), Local0, Local0)
            Or (ShiftLeft (Arg3, 0x02), Local0, Local0)
            Or (ShiftLeft (Arg4, 0x04), Local0, Local0)
            Return (Local0)
        }

        Method (SPIO, 3, NotSerialized)
        {
            Name (PBUF, Buffer (0x05)
            {
                0x00, 0x00, 0x00, 0x00, 0x00
            })
            CreateByteField (PBUF, Zero, RCT)
            CreateByteField (PBUF, One, ISP)
            CreateByteField (PBUF, 0x02, FAST)
            CreateByteField (PBUF, 0x03, DMAE)
            CreateByteField (PBUF, 0x04, PIOT)
            If (LOr (LEqual (Arg0, Zero), LEqual (Arg0, 0xFFFFFFFF)))
            {
                Return (PBUF)
            }

            If (LGreater (Arg0, 0xF0))
            {
                Store (One, DMAE)
                Store (Zero, PIOT)
            }
            Else
            {
                Store (One, FAST)
                If (And (Arg1, 0x02))
                {
                    If (And (LEqual (Arg0, 0x78), And (Arg2, 0x02)))
                    {
                        Store (0x03, RCT)
                        Store (0x02, ISP)
                        Store (0x04, PIOT)
                        Return (PBUF)
                    }

                    If (And (LLessEqual (Arg0, 0xB4), And (Arg2, One)
                        ))
                    {
                        Store (One, RCT)
                        Store (0x02, ISP)
                        Store (0x03, PIOT)
                        Return (PBUF)
                    }
                    Else
                    {
                        Store (Zero, RCT)
                        Store (One, ISP)
                        Store (0x02, PIOT)
                    }
                }
            }

            Return (PBUF)
        }

        Method (SDMA, 3, NotSerialized)
        {
            Name (PBUF, Buffer (0x05)
            {
                0x00, 0x00, 0x00, 0x00
            })
            CreateByteField (PBUF, Zero, PCT)
            CreateByteField (PBUF, One, PCB)
            CreateByteField (PBUF, 0x02, UDMT)
            CreateByteField (PBUF, 0x03, UDME)
            CreateByteField (PBUF, 0x04, DMAT)
            If (LOr (LEqual (Arg0, Zero), LEqual (Arg0, 0xFFFFFFFF)))
            {
                Return (PBUF)
            }

            If (LLessEqual (Arg0, 0x78))
            {
                If (And (Arg1, 0x04))
                {
                    Store (One, UDME)
                    If (And (LLessEqual (Arg0, 0x0F), And (Arg2, 0x40)
                        ))
                    {
                        Store (One, UDMT)
                        Store (One, PCB)
                        Store (One, PCT)
                        Store (0x06, DMAT)
                        Return (PBUF)
                    }

                    If (And (LLessEqual (Arg0, 0x14), And (Arg2, 0x20)
                        ))
                    {
                        Store (One, UDMT)
                        Store (One, PCB)
                        Store (One, PCT)
                        Store (0x05, DMAT)
                        Return (PBUF)
                    }

                    If (And (LLessEqual (Arg0, 0x1E), And (Arg2, 0x10)
                        ))
                    {
                        Store (One, PCB)
                        Store (0x02, PCT)
                        Store (0x04, DMAT)
                        Return (PBUF)
                    }

                    If (And (LLessEqual (Arg0, 0x2D), And (Arg2, 0x08)
                        ))
                    {
                        Store (One, PCB)
                        Store (One, PCT)
                        Store (0x03, DMAT)
                        Return (PBUF)
                    }

                    If (And (LLessEqual (Arg0, 0x3C), And (Arg2, 0x04)
                        ))
                    {
                        Store (0x02, PCT)
                        Store (0x02, DMAT)
                        Return (PBUF)
                    }

                    If (And (LLessEqual (Arg0, 0x5A), And (Arg2, 0x02)
                        ))
                    {
                        Store (One, PCT)
                        Store (One, DMAT)
                        Return (PBUF)
                    }

                    If (And (LLessEqual (Arg0, 0x78), And (Arg2, One)
                        ))
                    {
                        Store (Zero, DMAT)
                    }
                }
            }

            Return (PBUF)
        }
    }

    Scope (_SB.PCI0)
    {
        Device (SBUS)
        {
            Name (_ADR, 0x001F0003)
            OperationRegion (SMBP, PCI_Config, 0x40, 0xC0)
            Field (SMBP, DWordAcc, NoLock, Preserve)
            {
                    ,   2, 
                I2CE,   1
            }

            OperationRegion (SMPB, PCI_Config, 0x20, 0x04)
            Field (SMPB, DWordAcc, NoLock, Preserve)
            {
                    ,   5, 
                SBAR,   11
            }

            OperationRegion (SMBI, SystemIO, ShiftLeft (SBAR, 0x05), 0x10)
            Field (SMBI, ByteAcc, NoLock, Preserve)
            {
                HSTS,   8, 
                        Offset (0x02), 
                HCON,   8, 
                HCOM,   8, 
                TXSA,   8, 
                DAT0,   8, 
                DAT1,   8, 
                HBDR,   8, 
                PECR,   8, 
                RXSA,   8, 
                SDAT,   16
            }

            Method (SSXB, 2, Serialized)
            {
                If (STRT ())
                {
                    Return (Zero)
                }

                Store (Zero, I2CE)
                Store (0xBF, HSTS)
                Store (Arg0, TXSA)
                Store (Arg1, HCOM)
                Store (0x48, HCON)
                If (COMP ())
                {
                    Or (HSTS, 0xFF, HSTS)
                    Return (One)
                }

                Return (Zero)
            }

            Method (SRXB, 1, Serialized)
            {
                If (STRT ())
                {
                    Return (0xFFFF)
                }

                Store (Zero, I2CE)
                Store (0xBF, HSTS)
                Store (Or (Arg0, One), TXSA)
                Store (0x44, HCON)
                If (COMP ())
                {
                    Or (HSTS, 0xFF, HSTS)
                    Return (DAT0)
                }

                Return (0xFFFF)
            }

            Method (SWRB, 3, Serialized)
            {
                If (STRT ())
                {
                    Return (Zero)
                }

                Store (Zero, I2CE)
                Store (0xBF, HSTS)
                Store (Arg0, TXSA)
                Store (Arg1, HCOM)
                Store (Arg2, DAT0)
                Store (0x48, HCON)
                If (COMP ())
                {
                    Or (HSTS, 0xFF, HSTS)
                    Return (One)
                }

                Return (Zero)
            }

            Method (SRDB, 2, Serialized)
            {
                If (STRT ())
                {
                    Return (0xFFFF)
                }

                Store (Zero, I2CE)
                Store (0xBF, HSTS)
                Store (Or (Arg0, One), TXSA)
                Store (Arg1, HCOM)
                Store (0x48, HCON)
                If (COMP ())
                {
                    Or (HSTS, 0xFF, HSTS)
                    Return (DAT0)
                }

                Return (0xFFFF)
            }

            Method (SWRW, 3, Serialized)
            {
                If (STRT ())
                {
                    Return (Zero)
                }

                Store (Zero, I2CE)
                Store (0xBF, HSTS)
                Store (Arg0, TXSA)
                Store (Arg1, HCOM)
                And (Arg2, 0xFF, DAT1)
                And (ShiftRight (Arg2, 0x08), 0xFF, DAT0)
                Store (0x4C, HCON)
                If (COMP ())
                {
                    Or (HSTS, 0xFF, HSTS)
                    Return (One)
                }

                Return (Zero)
            }

            Method (SRDW, 2, Serialized)
            {
                If (STRT ())
                {
                    Return (0xFFFF)
                }

                Store (Zero, I2CE)
                Store (0xBF, HSTS)
                Store (Or (Arg0, One), TXSA)
                Store (Arg1, HCOM)
                Store (0x4C, HCON)
                If (COMP ())
                {
                    Or (HSTS, 0xFF, HSTS)
                    Return (Or (ShiftLeft (DAT0, 0x08), DAT1))
                }

                Return (0xFFFFFFFF)
            }

            Method (SBLW, 4, Serialized)
            {
                If (STRT ())
                {
                    Return (Zero)
                }

                Store (Arg3, I2CE)
                Store (0xBF, HSTS)
                Store (Arg0, TXSA)
                Store (Arg1, HCOM)
                Store (SizeOf (Arg2), DAT0)
                Store (Zero, Local1)
                Store (DerefOf (Index (Arg2, Zero)), HBDR)
                Store (0x54, HCON)
                While (LGreater (SizeOf (Arg2), Local1))
                {
                    Store (0x0FA0, Local0)
                    While (LAnd (LNot (And (HSTS, 0x80)), Local0))
                    {
                        Decrement (Local0)
                        Stall (0x32)
                    }

                    If (LNot (Local0))
                    {
                        KILL ()
                        Return (Zero)
                    }

                    Store (0x80, HSTS)
                    Increment (Local1)
                    If (LGreater (SizeOf (Arg2), Local1))
                    {
                        Store (DerefOf (Index (Arg2, Local1)), HBDR)
                    }
                }

                If (COMP ())
                {
                    Or (HSTS, 0xFF, HSTS)
                    Return (One)
                }

                Return (Zero)
            }

            Method (SBLR, 3, Serialized)
            {
                Name (TBUF, Buffer (0x0100) {})
                If (STRT ())
                {
                    Return (Zero)
                }

                Store (Arg2, I2CE)
                Store (0xBF, HSTS)
                Store (Or (Arg0, One), TXSA)
                Store (Arg1, HCOM)
                Store (0x54, HCON)
                Store (0x0FA0, Local0)
                While (LAnd (LNot (And (HSTS, 0x80)), Local0))
                {
                    Decrement (Local0)
                    Stall (0x32)
                }

                If (LNot (Local0))
                {
                    KILL ()
                    Return (Zero)
                }

                Store (DAT0, Index (TBUF, Zero))
                Store (0x80, HSTS)
                Store (One, Local1)
                While (LLess (Local1, DerefOf (Index (TBUF, Zero))))
                {
                    Store (0x0FA0, Local0)
                    While (LAnd (LNot (And (HSTS, 0x80)), Local0))
                    {
                        Decrement (Local0)
                        Stall (0x32)
                    }

                    If (LNot (Local0))
                    {
                        KILL ()
                        Return (Zero)
                    }

                    Store (HBDR, Index (TBUF, Local1))
                    Store (0x80, HSTS)
                    Increment (Local1)
                }

                If (COMP ())
                {
                    Or (HSTS, 0xFF, HSTS)
                    Return (TBUF)
                }

                Return (Zero)
            }

            Method (STRT, 0, Serialized)
            {
                Store (0xC8, Local0)
                While (Local0)
                {
                    If (And (HSTS, 0x40))
                    {
                        Decrement (Local0)
                        Sleep (One)
                        If (LEqual (Local0, Zero))
                        {
                            Return (One)
                        }
                    }
                    Else
                    {
                        Store (Zero, Local0)
                    }
                }

                Store (0x0FA0, Local0)
                While (Local0)
                {
                    If (And (HSTS, One))
                    {
                        Decrement (Local0)
                        Stall (0x32)
                        If (LEqual (Local0, Zero))
                        {
                            KILL ()
                        }
                    }
                    Else
                    {
                        Return (Zero)
                    }
                }

                Return (One)
            }

            Method (COMP, 0, Serialized)
            {
                Store (0x0FA0, Local0)
                While (Local0)
                {
                    If (And (HSTS, 0x02))
                    {
                        Return (One)
                    }
                    Else
                    {
                        Decrement (Local0)
                        Stall (0x32)
                        If (LEqual (Local0, Zero))
                        {
                            KILL ()
                        }
                    }
                }

                Return (Zero)
            }

            Method (KILL, 0, Serialized)
            {
                Or (HCON, 0x02, HCON)
                Or (HSTS, 0xFF, HSTS)
            }
        }
    }

    Scope (_GPE)
    {
        Method (_L01, 0, NotSerialized)
        {
            Add (L01C, One, L01C)
            If (LAnd (LEqual (RP1D, Zero), \_SB.PCI0.RP01.HPSX))
            {
                Sleep (0x64)
                If (\_SB.PCI0.RP01.PDCX)
                {
                    Store (One, \_SB.PCI0.RP01.PDCX)
                    Store (One, \_SB.PCI0.RP01.HPSX)
                }
                Else
                {
                    Store (One, \_SB.PCI0.RP01.HPSX)
                }
            }

            If (LAnd (LEqual (RP2D, Zero), \_SB.PCI0.RP02.HPSX))
            {
                Sleep (0x64)
                If (\_SB.PCI0.RP02.PDCX)
                {
                    Store (One, \_SB.PCI0.RP02.PDCX)
                    Store (One, \_SB.PCI0.RP02.HPSX)
                }
                Else
                {
                    Store (One, \_SB.PCI0.RP02.HPSX)
                }
            }

            If (LAnd (LEqual (RP3D, Zero), \_SB.PCI0.RP03.HPSX))
            {
                Sleep (0x64)
                If (\_SB.PCI0.RP03.PDCX)
                {
                    Store (One, \_SB.PCI0.RP03.PDCX)
                    Store (One, \_SB.PCI0.RP03.HPSX)
                    Notify (\_SB.PCI0.RP03, Zero)
                }
                Else
                {
                    Store (One, \_SB.PCI0.RP03.HPSX)
                }
            }

            If (LAnd (LEqual (RP4D, Zero), \_SB.PCI0.RP04.HPSX))
            {
                Sleep (0x64)
                If (\_SB.PCI0.RP04.PDCX)
                {
                    Store (One, \_SB.PCI0.RP04.PDCX)
                    Store (One, \_SB.PCI0.RP04.HPSX)
                    Notify (\_SB.PCI0.RP04, Zero)
                }
                Else
                {
                    Store (One, \_SB.PCI0.RP04.HPSX)
                }
            }

            If (LAnd (LEqual (RP5D, Zero), \_SB.PCI0.RP05.HPSX))
            {
                Sleep (0x64)
                If (\_SB.PCI0.RP05.PDCX)
                {
                    Store (One, \_SB.PCI0.RP05.PDCX)
                    Store (One, \_SB.PCI0.RP05.HPSX)
                    Notify (\_SB.PCI0.RP05, Zero)
                }
                Else
                {
                    Store (One, \_SB.PCI0.RP05.HPSX)
                }
            }

            If (LAnd (LEqual (RP6D, Zero), \_SB.PCI0.RP06.HPSX))
            {
                Sleep (0x64)
                If (\_SB.PCI0.RP06.PDCX)
                {
                    Store (One, \_SB.PCI0.RP06.PDCX)
                    Store (One, \_SB.PCI0.RP06.HPSX)
                    Notify (\_SB.PCI0.RP06, Zero)
                }
                Else
                {
                    Store (One, \_SB.PCI0.RP06.HPSX)
                }
            }

            If (LAnd (LEqual (RP7D, Zero), \_SB.PCI0.RP07.HPSX))
            {
                Sleep (0x64)
                If (\_SB.PCI0.RP07.PDCX)
                {
                    Store (One, \_SB.PCI0.RP07.PDCX)
                    Store (One, \_SB.PCI0.RP07.HPSX)
                    Notify (\_SB.PCI0.RP07, Zero)
                }
                Else
                {
                    Store (One, \_SB.PCI0.RP07.HPSX)
                }
            }

            If (LAnd (LEqual (RP8D, Zero), \_SB.PCI0.RP08.HPSX))
            {
                Sleep (0x64)
                If (\_SB.PCI0.RP08.PDCX)
                {
                    Store (One, \_SB.PCI0.RP08.PDCX)
                    Store (One, \_SB.PCI0.RP08.HPSX)
                    Notify (\_SB.PCI0.RP08, Zero)
                }
                Else
                {
                    Store (One, \_SB.PCI0.RP08.HPSX)
                }
            }
        }

        Method (_L06, 0, NotSerialized)
        {
            If (LAnd (\_SB.PCI0.GFX0.GSSE, LNot (GSMI)))
            {
                \_SB.PCI0.GFX0.GSCI ()
            }
        }

        Method (_L07, 0, NotSerialized)
        {
            Store (0x20, \_SB.PCI0.SBUS.HSTS)
        }

        Method (_L1B, 0, NotSerialized)
        {
            Not (LPDL, LPDL)
            Store (\_SB.PCI0.LPCB.EC0.LIDO, Local0)
            Not (Local0, Local0)
            If (LGreaterEqual (OSYS, 0x07D6))
            {
                Add (Local0, 0x02)
                \_SB.PCI0.GFX0.GLID (Local0)
            }

            Notify (\_SB.PCI0.LPCB.LID0, 0x80)
        }

        Method (_L09, 0, NotSerialized)
        {
            Notify (\_SB.PCI0.RP01, 0x02)
            Notify (\_SB.PCI0.RP02, 0x02)
            Notify (\_SB.PCI0.RP03, 0x02)
            Notify (\_SB.PCI0.RP04, 0x02)
            Notify (\_SB.PCI0.RP05, 0x02)
            Notify (\_SB.PCI0.RP06, 0x02)
            Notify (\_SB.PCI0.RP07, 0x02)
            Notify (\_SB.PCI0.RP08, 0x02)
        }

        Method (_L0B, 0, NotSerialized)
        {
            Notify (\_SB.PCI0.P0P1, 0x02)
        }

        Method (_L0D, 0, NotSerialized)
        {
            Notify (\_SB.PCI0.EHC1, 0x02)
        }

        Method (_L03, 0, NotSerialized)
        {
            Notify (\_SB.PCI0.USB1, 0x02)
        }

        Method (_L04, 0, NotSerialized)
        {
            Notify (\_SB.PCI0.USB2, 0x02)
        }

        Method (_L0C, 0, NotSerialized)
        {
            Notify (\_SB.PCI0.USB3, 0x02)
        }

        Method (_L0E, 0, NotSerialized)
        {
            Notify (\_SB.PCI0.USB4, 0x02)
        }

        Method (_L05, 0, NotSerialized)
        {
            Notify (\_SB.PCI0.USB5, 0x02)
        }

        Method (_L20, 0, NotSerialized)
        {
            Notify (\_SB.PCI0.USB6, 0x02)
        }

        Method (_L25, 0, NotSerialized)
        {
            Notify (\_SB.PCI0.USB7, 0x02)
        }

        Method (_L16, 0, NotSerialized)
        {
            If (LGreaterEqual (OSYS, 0x07D6))
            {
                If (\_SB.PCI0.GP06)
                {
                    Store (One, \_SB.PCI0.HDME)
                }
                Else
                {
                    Store (Zero, \_SB.PCI0.HDME)
                }

                Sleep (0x03E8)
                If (LEqual (\_SB.PCI0.GP06, Zero))
                {
                    Store ("HDMI PLUG IN", Debug)
                    Store (CMSR (0x3E), Local0)
                    If (LEqual (\_SB.PCI0.P0P2.VGA.DPMO, 0x04))
                    {
                        If (LEqual (Local0, Zero))
                        {
                            \_SB.PCI0.GFX0.AFN6 ()
                        }
                    }
                }
            }
        }
    }

    OperationRegion (PBIC, PCI_Config, Zero, 0xF0)
    Field (PBIC, DWordAcc, NoLock, Preserve)
    {
                Offset (0x7C), 
        SR0,    32, 
        SR1,    32, 
        SR2,    32, 
        SR3,    32, 
        SR4,    32, 
        SR5,    32, 
        SR6,    32, 
        SR7,    32, 
        SR8,    32, 
        SR9,    32
    }

    OperationRegion (IBUS, PCI_Config, 0xD0, 0xE0)
    Field (IBUS, DWordAcc, NoLock, Preserve)
    {
            ,   26, 
        TOLM,   6, 
            ,   26, 
        TOHM,   38, 
                Offset (0xB0), 
        VTEN,   1, 
            ,   11, 
        VTBA,   20
    }

    Scope (_SB)
    {
        Device (CPBG)
        {
            Name (_HID, EisaId ("PNP0A03"))
            Name (_UID, 0xFF)
            Name (_BBN, 0xFF)
            Name (_ADR, Zero)
            Name (_CRS, ResourceTemplate ()
            {
                WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
                    0x0000,             // Granularity
                    0x00FF,             // Range Minimum
                    0x00FF,             // Range Maximum
                    0x0000,             // Translation Offset
                    0x0001,             // Length
                    ,, )
            })
            Device (IMCH)
            {
                Name (_ADR, One)
                OperationRegion (PBUS, PCI_Config, Zero, 0xC0)
                Field (PBUS, DWordAcc, NoLock, Preserve)
                {
                            Offset (0x40), 
                        ,   4, 
                    PM0H,   2, 
                            Offset (0x41), 
                    PM1L,   2, 
                        ,   2, 
                    PM1H,   2, 
                            Offset (0x42), 
                    PM2L,   2, 
                        ,   2, 
                    PM2H,   2, 
                            Offset (0x43), 
                    PM3L,   2, 
                        ,   2, 
                    PM3H,   2, 
                            Offset (0x44), 
                    PM4L,   2, 
                        ,   2, 
                    PM4H,   2, 
                            Offset (0x45), 
                    PM5L,   2, 
                        ,   2, 
                    PM5H,   2, 
                            Offset (0x46), 
                    PM6L,   2, 
                        ,   2, 
                    PM6H,   2, 
                            Offset (0x47), 
                            Offset (0x48), 
                        ,   7, 
                    HENA,   1, 
                            Offset (0x50), 
                    PXEN,   1, 
                    PXSZ,   2, 
                        ,   17, 
                    PXBR,   12
                }
            }
        }
    }

    Name (_S0, Package (0x04)
    {
        Zero, 
        Zero, 
        Zero, 
        Zero
    })
    If (LEqual (S3DS, One))
    {
        Name (_S3, Package (0x04)
        {
            0x05, 
            Zero, 
            Zero, 
            Zero
        })
    }

    Name (_S4, Package (0x04)
    {
        0x06, 
        Zero, 
        Zero, 
        Zero
    })
    Name (_S5, Package (0x04)
    {
        0x07, 
        Zero, 
        Zero, 
        Zero
    })
}